managed-deepagents 0.9.6-dev.15 → 0.9.6-dev.17

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 (343) hide show
  1. package/README.md +57 -953
  2. package/dist/agent-auth.d.ts +1 -1
  3. package/dist/agent-auth.d.ts.map +1 -1
  4. package/dist/agent-auth.js +12 -36
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/channels/assistant-text.d.ts +0 -24
  7. package/dist/channels/assistant-text.d.ts.map +1 -1
  8. package/dist/channels/assistant-text.js +1 -65
  9. package/dist/channels/assistant-text.js.map +1 -1
  10. package/dist/channels/binding.d.ts +1 -20
  11. package/dist/channels/binding.d.ts.map +1 -1
  12. package/dist/channels/binding.js +10 -39
  13. package/dist/channels/binding.js.map +1 -1
  14. package/dist/channels/http/http.d.ts.map +1 -1
  15. package/dist/channels/http/http.js +65 -386
  16. package/dist/channels/http/http.js.map +1 -1
  17. package/dist/channels/http/index.d.ts +1 -2
  18. package/dist/channels/http/index.d.ts.map +1 -1
  19. package/dist/channels/http/index.js +10 -14
  20. package/dist/channels/http/index.js.map +1 -1
  21. package/dist/channels/http/ingress.d.ts +5 -65
  22. package/dist/channels/http/ingress.d.ts.map +1 -1
  23. package/dist/channels/http/ingress.js +33 -149
  24. package/dist/channels/http/ingress.js.map +1 -1
  25. package/dist/channels/http/types.d.ts +2 -143
  26. package/dist/channels/http/types.d.ts.map +1 -1
  27. package/dist/channels/message-schema.d.ts +0 -2
  28. package/dist/channels/message-schema.d.ts.map +1 -1
  29. package/dist/channels/message-schema.js +0 -4
  30. package/dist/channels/message-schema.js.map +1 -1
  31. package/dist/channels/messaging-registry.d.ts +0 -16
  32. package/dist/channels/messaging-registry.d.ts.map +1 -1
  33. package/dist/channels/messaging-registry.js +0 -29
  34. package/dist/channels/messaging-registry.js.map +1 -1
  35. package/dist/channels/runtime.d.ts +1 -1
  36. package/dist/channels/runtime.d.ts.map +1 -1
  37. package/dist/channels/runtime.js +1 -1
  38. package/dist/channels/runtime.js.map +1 -1
  39. package/dist/channels/schedule-delivery.d.ts +1 -1
  40. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  41. package/dist/channels/schedule-delivery.js +23 -12
  42. package/dist/channels/schedule-delivery.js.map +1 -1
  43. package/dist/channels/slack/api.d.ts +0 -2
  44. package/dist/channels/slack/api.d.ts.map +1 -1
  45. package/dist/channels/slack/api.js +0 -6
  46. package/dist/channels/slack/api.js.map +1 -1
  47. package/dist/channels/slack/files.d.ts.map +1 -1
  48. package/dist/channels/slack/files.js +3 -2
  49. package/dist/channels/slack/files.js.map +1 -1
  50. package/dist/channels/slack/index.d.ts +2 -76
  51. package/dist/channels/slack/index.d.ts.map +1 -1
  52. package/dist/channels/slack/index.js +6 -177
  53. package/dist/channels/slack/index.js.map +1 -1
  54. package/dist/channels/slack/message-content.d.ts.map +1 -1
  55. package/dist/channels/slack/message-content.js +28 -23
  56. package/dist/channels/slack/message-content.js.map +1 -1
  57. package/dist/channels/source-providers.js +1 -1
  58. package/dist/channels/source-providers.js.map +1 -1
  59. package/dist/channels/trigger/client.d.ts.map +1 -1
  60. package/dist/channels/trigger/client.js +12 -6
  61. package/dist/channels/trigger/client.js.map +1 -1
  62. package/dist/channels/trigger/http.d.ts +3 -114
  63. package/dist/channels/trigger/http.d.ts.map +1 -1
  64. package/dist/channels/trigger/http.js +82 -314
  65. package/dist/channels/trigger/http.js.map +1 -1
  66. package/dist/channels/trigger/identity-context.d.ts +1 -1
  67. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  68. package/dist/channels/trigger/identity-context.js +3 -5
  69. package/dist/channels/trigger/identity-context.js.map +1 -1
  70. package/dist/channels/trigger/ingress.d.ts +1 -38
  71. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  72. package/dist/channels/trigger/ingress.js +24 -49
  73. package/dist/channels/trigger/ingress.js.map +1 -1
  74. package/dist/channels/trigger/types.d.ts +3 -82
  75. package/dist/channels/trigger/types.d.ts.map +1 -1
  76. package/dist/channels/trigger/types.js +0 -36
  77. package/dist/channels/trigger/types.js.map +1 -1
  78. package/dist/channels/types.d.ts +3 -19
  79. package/dist/channels/types.d.ts.map +1 -1
  80. package/dist/channels/types.js +0 -2
  81. package/dist/channels/types.js.map +1 -1
  82. package/dist/concurrency/batch-processor.d.ts +51 -0
  83. package/dist/concurrency/batch-processor.d.ts.map +1 -0
  84. package/dist/concurrency/batch-processor.js +99 -0
  85. package/dist/concurrency/batch-processor.js.map +1 -0
  86. package/dist/connections.d.ts +1 -42
  87. package/dist/connections.d.ts.map +1 -1
  88. package/dist/connections.js +14 -127
  89. package/dist/connections.js.map +1 -1
  90. package/dist/credential-gate.d.ts +0 -2
  91. package/dist/credential-gate.d.ts.map +1 -1
  92. package/dist/credential-gate.js +3 -37
  93. package/dist/credential-gate.js.map +1 -1
  94. package/dist/define-deep-agent.d.ts.map +1 -1
  95. package/dist/define-deep-agent.js +0 -6
  96. package/dist/define-deep-agent.js.map +1 -1
  97. package/dist/identity/loopback.d.ts +7 -2
  98. package/dist/identity/loopback.d.ts.map +1 -1
  99. package/dist/identity/loopback.js +15 -4
  100. package/dist/identity/loopback.js.map +1 -1
  101. package/dist/identity/slack/links.js +3 -2
  102. package/dist/identity/slack/links.js.map +1 -1
  103. package/dist/index.d.ts +4 -15
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/ingress/index.d.ts +8 -0
  108. package/dist/ingress/index.d.ts.map +1 -1
  109. package/dist/ingress/index.js +32 -2
  110. package/dist/ingress/index.js.map +1 -1
  111. package/dist/ingress/loopback.js +4 -3
  112. package/dist/ingress/loopback.js.map +1 -1
  113. package/dist/ingress/runs.d.ts +1 -74
  114. package/dist/ingress/runs.d.ts.map +1 -1
  115. package/dist/ingress/runs.js +16 -176
  116. package/dist/ingress/runs.js.map +1 -1
  117. package/dist/managed-composition.d.ts.map +1 -1
  118. package/dist/managed-composition.js +13 -8
  119. package/dist/managed-composition.js.map +1 -1
  120. package/dist/memory/instructions-middleware.d.ts.map +1 -1
  121. package/dist/memory/instructions-middleware.js +6 -5
  122. package/dist/memory/instructions-middleware.js.map +1 -1
  123. package/dist/namespaces.d.ts +21 -21
  124. package/dist/namespaces.d.ts.map +1 -1
  125. package/dist/namespaces.js +29 -4
  126. package/dist/namespaces.js.map +1 -1
  127. package/dist/resilience/retry.d.ts +21 -0
  128. package/dist/resilience/retry.d.ts.map +1 -0
  129. package/dist/resilience/retry.js +40 -0
  130. package/dist/resilience/retry.js.map +1 -0
  131. package/dist/runtime/auth.d.ts.map +1 -1
  132. package/dist/runtime/auth.js +21 -151
  133. package/dist/runtime/auth.js.map +1 -1
  134. package/dist/runtime/channel.d.ts +0 -6
  135. package/dist/runtime/channel.d.ts.map +1 -1
  136. package/dist/runtime/channel.js.map +1 -1
  137. package/dist/runtime/graph-build-timing.d.ts +30 -0
  138. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  139. package/dist/runtime/graph-build-timing.js +50 -0
  140. package/dist/runtime/graph-build-timing.js.map +1 -0
  141. package/dist/runtime/http.d.ts +15 -0
  142. package/dist/runtime/http.d.ts.map +1 -1
  143. package/dist/runtime/http.js +37 -0
  144. package/dist/runtime/http.js.map +1 -1
  145. package/dist/runtime/identity-http.d.ts +0 -2
  146. package/dist/runtime/identity-http.d.ts.map +1 -1
  147. package/dist/runtime/identity-http.js +16 -40
  148. package/dist/runtime/identity-http.js.map +1 -1
  149. package/dist/runtime/identity-runtime.d.ts +0 -10
  150. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  151. package/dist/runtime/identity-runtime.js +0 -22
  152. package/dist/runtime/identity-runtime.js.map +1 -1
  153. package/dist/runtime/index.d.ts.map +1 -1
  154. package/dist/runtime/index.js +47 -46
  155. package/dist/runtime/index.js.map +1 -1
  156. package/dist/runtime/langsmith-env.d.ts +19 -0
  157. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  158. package/dist/runtime/langsmith-env.js +38 -0
  159. package/dist/runtime/langsmith-env.js.map +1 -0
  160. package/dist/runtime/log.d.ts +8 -14
  161. package/dist/runtime/log.d.ts.map +1 -1
  162. package/dist/runtime/log.js +16 -7
  163. package/dist/runtime/log.js.map +1 -1
  164. package/dist/runtime/managed-middleware.d.ts.map +1 -1
  165. package/dist/runtime/managed-middleware.js +1 -14
  166. package/dist/runtime/managed-middleware.js.map +1 -1
  167. package/dist/runtime/managed-tools.d.ts +10 -10
  168. package/dist/runtime/managed-tools.d.ts.map +1 -1
  169. package/dist/runtime/managed-tools.js +24 -24
  170. package/dist/runtime/managed-tools.js.map +1 -1
  171. package/dist/runtime/memory/mounts.d.ts +82 -11
  172. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  173. package/dist/runtime/memory/mounts.js +173 -34
  174. package/dist/runtime/memory/mounts.js.map +1 -1
  175. package/dist/runtime/memory/policy.d.ts.map +1 -1
  176. package/dist/runtime/memory/policy.js +3 -1
  177. package/dist/runtime/memory/policy.js.map +1 -1
  178. package/dist/runtime/run-input.d.ts +0 -10
  179. package/dist/runtime/run-input.d.ts.map +1 -1
  180. package/dist/runtime/run-input.js +19 -47
  181. package/dist/runtime/run-input.js.map +1 -1
  182. package/dist/runtime/sandbox-manager.d.ts +1 -1
  183. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  184. package/dist/runtime/sandbox-manager.js +10 -15
  185. package/dist/runtime/sandbox-manager.js.map +1 -1
  186. package/dist/runtime/schedule-auth.d.ts +0 -17
  187. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  188. package/dist/runtime/schedule-auth.js +3 -40
  189. package/dist/runtime/schedule-auth.js.map +1 -1
  190. package/dist/runtime/selected-skills-backend.d.ts +3 -3
  191. package/dist/runtime/selected-skills-backend.d.ts.map +1 -1
  192. package/dist/runtime/selected-skills-backend.js +5 -5
  193. package/dist/runtime/selected-skills-backend.js.map +1 -1
  194. package/dist/runtime/types.d.ts +1 -5
  195. package/dist/runtime/types.d.ts.map +1 -1
  196. package/dist/runtime-schedules.d.ts +0 -13
  197. package/dist/runtime-schedules.d.ts.map +1 -1
  198. package/dist/runtime-schedules.js +22 -86
  199. package/dist/runtime-schedules.js.map +1 -1
  200. package/dist/sandbox.d.ts +6 -0
  201. package/dist/sandbox.d.ts.map +1 -1
  202. package/dist/sandbox.js +7 -3
  203. package/dist/sandbox.js.map +1 -1
  204. package/dist/schedule-channel.d.ts +2 -5
  205. package/dist/schedule-channel.d.ts.map +1 -1
  206. package/dist/schedule-channel.js +12 -13
  207. package/dist/schedule-channel.js.map +1 -1
  208. package/dist/telemetry/lifecycle.d.ts +26 -0
  209. package/dist/telemetry/lifecycle.d.ts.map +1 -0
  210. package/dist/telemetry/lifecycle.js +49 -0
  211. package/dist/telemetry/lifecycle.js.map +1 -0
  212. package/dist/telemetry/metadata.d.ts.map +1 -1
  213. package/dist/telemetry/metadata.js +4 -4
  214. package/dist/telemetry/metadata.js.map +1 -1
  215. package/dist/telemetry/otel/context.d.ts +57 -0
  216. package/dist/telemetry/otel/context.d.ts.map +1 -0
  217. package/dist/telemetry/otel/context.js +122 -0
  218. package/dist/telemetry/otel/context.js.map +1 -0
  219. package/dist/telemetry/otel/exporter.d.ts +53 -0
  220. package/dist/telemetry/otel/exporter.d.ts.map +1 -0
  221. package/dist/telemetry/otel/exporter.js +190 -0
  222. package/dist/telemetry/otel/exporter.js.map +1 -0
  223. package/dist/telemetry/otel/index.d.ts +6 -0
  224. package/dist/telemetry/otel/index.d.ts.map +1 -0
  225. package/dist/telemetry/otel/index.js +3 -0
  226. package/dist/telemetry/otel/index.js.map +1 -0
  227. package/dist/telemetry/otel/otlp.d.ts +44 -0
  228. package/dist/telemetry/otel/otlp.d.ts.map +1 -0
  229. package/dist/telemetry/otel/otlp.js +7 -0
  230. package/dist/telemetry/otel/otlp.js.map +1 -0
  231. package/dist/telemetry/otel/truncate.d.ts +10 -0
  232. package/dist/telemetry/otel/truncate.d.ts.map +1 -0
  233. package/dist/telemetry/otel/truncate.js +39 -0
  234. package/dist/telemetry/otel/truncate.js.map +1 -0
  235. package/dist/telemetry/run-listener.d.ts +1 -1
  236. package/dist/telemetry/run-listener.d.ts.map +1 -1
  237. package/dist/telemetry/run-listener.js +32 -2
  238. package/dist/telemetry/run-listener.js.map +1 -1
  239. package/dist/telemetry/transport/posthog.d.ts +13 -1
  240. package/dist/telemetry/transport/posthog.d.ts.map +1 -1
  241. package/dist/telemetry/transport/posthog.js +68 -30
  242. package/dist/telemetry/transport/posthog.js.map +1 -1
  243. package/package.json +11 -11
  244. package/dist/channels/actor.d.ts +0 -43
  245. package/dist/channels/actor.d.ts.map +0 -1
  246. package/dist/channels/actor.js +0 -2
  247. package/dist/channels/actor.js.map +0 -1
  248. package/dist/channels/delivery.d.ts +0 -21
  249. package/dist/channels/delivery.d.ts.map +0 -1
  250. package/dist/channels/delivery.js +0 -196
  251. package/dist/channels/delivery.js.map +0 -1
  252. package/dist/channels/github/connections.d.ts +0 -11
  253. package/dist/channels/github/connections.d.ts.map +0 -1
  254. package/dist/channels/github/connections.js +0 -14
  255. package/dist/channels/github/connections.js.map +0 -1
  256. package/dist/channels/github/index.d.ts +0 -8
  257. package/dist/channels/github/index.d.ts.map +0 -1
  258. package/dist/channels/github/index.js +0 -274
  259. package/dist/channels/github/index.js.map +0 -1
  260. package/dist/channels/github/mentions.d.ts +0 -12
  261. package/dist/channels/github/mentions.d.ts.map +0 -1
  262. package/dist/channels/github/mentions.js +0 -185
  263. package/dist/channels/github/mentions.js.map +0 -1
  264. package/dist/channels/github/schema.d.ts +0 -4165
  265. package/dist/channels/github/schema.d.ts.map +0 -1
  266. package/dist/channels/github/schema.js +0 -221
  267. package/dist/channels/github/schema.js.map +0 -1
  268. package/dist/channels/github/types.d.ts +0 -163
  269. package/dist/channels/github/types.d.ts.map +0 -1
  270. package/dist/channels/github/types.js +0 -2
  271. package/dist/channels/github/types.js.map +0 -1
  272. package/dist/channels/http/endpoint.d.ts +0 -95
  273. package/dist/channels/http/endpoint.d.ts.map +0 -1
  274. package/dist/channels/http/endpoint.js +0 -276
  275. package/dist/channels/http/endpoint.js.map +0 -1
  276. package/dist/channels/http/provider.d.ts +0 -119
  277. package/dist/channels/http/provider.d.ts.map +0 -1
  278. package/dist/channels/http/provider.js +0 -227
  279. package/dist/channels/http/provider.js.map +0 -1
  280. package/dist/channels/http/studio.d.ts +0 -24
  281. package/dist/channels/http/studio.d.ts.map +0 -1
  282. package/dist/channels/http/studio.js +0 -95
  283. package/dist/channels/http/studio.js.map +0 -1
  284. package/dist/channels/http/threads.d.ts +0 -7
  285. package/dist/channels/http/threads.d.ts.map +0 -1
  286. package/dist/channels/http/threads.js +0 -10
  287. package/dist/channels/http/threads.js.map +0 -1
  288. package/dist/channels/linear/connections.d.ts +0 -11
  289. package/dist/channels/linear/connections.d.ts.map +0 -1
  290. package/dist/channels/linear/connections.js +0 -14
  291. package/dist/channels/linear/connections.js.map +0 -1
  292. package/dist/channels/linear/graphql.d.ts +0 -57
  293. package/dist/channels/linear/graphql.d.ts.map +0 -1
  294. package/dist/channels/linear/graphql.js +0 -167
  295. package/dist/channels/linear/graphql.js.map +0 -1
  296. package/dist/channels/linear/index.d.ts +0 -9
  297. package/dist/channels/linear/index.d.ts.map +0 -1
  298. package/dist/channels/linear/index.js +0 -489
  299. package/dist/channels/linear/index.js.map +0 -1
  300. package/dist/channels/linear/schema.d.ts +0 -1050
  301. package/dist/channels/linear/schema.d.ts.map +0 -1
  302. package/dist/channels/linear/schema.js +0 -255
  303. package/dist/channels/linear/schema.js.map +0 -1
  304. package/dist/channels/linear/types.d.ts +0 -162
  305. package/dist/channels/linear/types.d.ts.map +0 -1
  306. package/dist/channels/linear/types.js +0 -2
  307. package/dist/channels/linear/types.js.map +0 -1
  308. package/dist/channels/reserved-connections.d.ts +0 -12
  309. package/dist/channels/reserved-connections.d.ts.map +0 -1
  310. package/dist/channels/reserved-connections.js +0 -55
  311. package/dist/channels/reserved-connections.js.map +0 -1
  312. package/dist/channels/run-input.d.ts +0 -71
  313. package/dist/channels/run-input.d.ts.map +0 -1
  314. package/dist/channels/run-input.js +0 -155
  315. package/dist/channels/run-input.js.map +0 -1
  316. package/dist/channels/slack/connections.d.ts +0 -6
  317. package/dist/channels/slack/connections.d.ts.map +0 -1
  318. package/dist/channels/slack/connections.js +0 -6
  319. package/dist/channels/slack/connections.js.map +0 -1
  320. package/dist/channels/slack/events.d.ts +0 -272
  321. package/dist/channels/slack/events.d.ts.map +0 -1
  322. package/dist/channels/slack/events.js +0 -235
  323. package/dist/channels/slack/events.js.map +0 -1
  324. package/dist/channels/slack/status.d.ts +0 -76
  325. package/dist/channels/slack/status.d.ts.map +0 -1
  326. package/dist/channels/slack/status.js +0 -427
  327. package/dist/channels/slack/status.js.map +0 -1
  328. package/dist/runtime/channel-icon.d.ts +0 -22
  329. package/dist/runtime/channel-icon.d.ts.map +0 -1
  330. package/dist/runtime/channel-icon.js +0 -70
  331. package/dist/runtime/channel-icon.js.map +0 -1
  332. package/dist/runtime/managed-thread.d.ts +0 -60
  333. package/dist/runtime/managed-thread.d.ts.map +0 -1
  334. package/dist/runtime/managed-thread.js +0 -76
  335. package/dist/runtime/managed-thread.js.map +0 -1
  336. package/dist/runtime/thread-record.d.ts +0 -81
  337. package/dist/runtime/thread-record.d.ts.map +0 -1
  338. package/dist/runtime/thread-record.js +0 -205
  339. package/dist/runtime/thread-record.js.map +0 -1
  340. package/dist/values.d.ts +0 -15
  341. package/dist/values.d.ts.map +0 -1
  342. package/dist/values.js +0 -31
  343. package/dist/values.js.map +0 -1
@@ -1,235 +0,0 @@
1
- import { logger } from "../../runtime/log.js";
2
- import { CachedRead, } from "../http/provider.js";
3
- import { slackApi, slackBotToken } from "./api.js";
4
- import { isRecord, nonblankString } from "../../values.js";
5
- export const SLACK_MESSAGE_KEYS = [
6
- "mention",
7
- "directMessage",
8
- "message",
9
- ];
10
- export const SLACK_EVENT_KEYS = [...SLACK_MESSAGE_KEYS, "interaction"];
11
- /** The Slack thread of a Trigger message's thread, for a channel named `name`. */
12
- export function slackThread(thread, name) {
13
- return {
14
- id: thread.id,
15
- sourceThreadKey: thread.sourceThreadKey,
16
- channel: { name },
17
- };
18
- }
19
- /**
20
- * A Slack event's fields its endpoints are sent beside its key, delivery ID
21
- * and payload, those its kind has: the one list of them, so
22
- * `SlackEndpointRequest` is typed by it.
23
- */
24
- export const SLACK_ENDPOINT_EVENT_FIELDS = [
25
- "text",
26
- "userId",
27
- "channelId",
28
- "messageTs",
29
- "threadTs",
30
- "files",
31
- "actor",
32
- "actionId",
33
- "value",
34
- ];
35
- /**
36
- * Which kind of message a delivery is. Slack sends a mention as
37
- * `app_mention` under `triggerMode` `"mention"`, and as a `message` that
38
- * names the app's bot user under `"thread"` and `"all"`, so only a channel
39
- * `message` asks who the bot is.
40
- */
41
- export async function slackEventKey(rawEvent) {
42
- if (rawEvent.type === "app_mention")
43
- return "mention";
44
- if (rawEvent.channel_type === "im")
45
- return "directMessage";
46
- const body = nonblankString(rawEvent.text);
47
- if (!body?.includes("<@"))
48
- return "message";
49
- const botUserId = await slackBotUserId();
50
- return botUserId && mentions(body, botUserId) ? "mention" : "message";
51
- }
52
- /**
53
- * Whether a delivery is surely a plain channel message, neither a mention
54
- * nor a direct message. One that names a user while the bot user is unknown
55
- * may be a mention, so it isn't.
56
- */
57
- export async function isPlainSlackMessage(rawEvent) {
58
- if (rawEvent.type === "app_mention" || rawEvent.channel_type === "im")
59
- return false;
60
- const body = nonblankString(rawEvent.text);
61
- if (!body?.includes("<@"))
62
- return true;
63
- const botUserId = await slackBotUserId();
64
- return botUserId !== undefined && !mentions(body, botUserId);
65
- }
66
- function mentions(body, userId) {
67
- return body.includes(`<@${userId}>`) || body.includes(`<@${userId}|`);
68
- }
69
- /** How long the bot user's ID is reused; an app keeps it for good. */
70
- const BOT_USER_TTL_MS = 60 * 60_000;
71
- /** How long a failed lookup is remembered, so each message doesn't ask Slack. */
72
- const MISSING_BOT_USER_TTL_MS = 60_000;
73
- const botUser = new CachedRead(async () => {
74
- try {
75
- const identity = await slackApi(await slackBotToken(), "auth.test", {});
76
- return nonblankString(identity.user_id);
77
- }
78
- catch (error) {
79
- logger.warn(`slack bot user lookup failed; mentions in channel messages count as messages (${logger.safeErrorLabel(error)})`);
80
- return undefined;
81
- }
82
- }, (userId) => (userId ? BOT_USER_TTL_MS : MISSING_BOT_USER_TTL_MS));
83
- /** The app's bot user, from Slack's `auth.test` with its bot token. */
84
- function slackBotUserId() {
85
- return botUser.get();
86
- }
87
- /** Forget the bot user's ID; for tests. */
88
- export function resetSlackBotUser() {
89
- botUser.reset();
90
- }
91
- /**
92
- * What a delivery carries: a message, of the kind Slack's event says, or an
93
- * interaction; `undefined` when it has nothing to read one from.
94
- */
95
- export async function readSlackEvent(event, actor) {
96
- if (event.type === "user_prompt_response")
97
- return slackInteractionEvent(event, actor);
98
- if (!isRecord(event.raw_event))
99
- return undefined;
100
- return slackEvent(await slackEventKey(event.raw_event), event, actor);
101
- }
102
- /** How many deliveries' events a channel keeps until they finish. */
103
- const MAX_DECIDED_EVENTS = 1024;
104
- /**
105
- * The `SlackEvent` a handler got for each delivery, so `onFinish` gets that
106
- * same event rather than reading the delivery again, which could read it as
107
- * another kind. A delivery that never finishes, such as one Trigger Server
108
- * sends again, is dropped once there are many.
109
- */
110
- export class DecidedSlackEvents {
111
- #byDelivery = new Map();
112
- remember(deliveryId, event) {
113
- this.#byDelivery.delete(deliveryId);
114
- this.#byDelivery.set(deliveryId, event);
115
- const [oldest] = this.#byDelivery.keys();
116
- if (this.#byDelivery.size > MAX_DECIDED_EVENTS && oldest !== undefined)
117
- this.#byDelivery.delete(oldest);
118
- }
119
- /**
120
- * What a finished delivery carried: as its handler got it, or read from the
121
- * delivery, with its verified actor, when no handler did.
122
- */
123
- async finished(rawEvent) {
124
- const delivery = finishedDelivery(rawEvent);
125
- if (!delivery)
126
- return undefined;
127
- const decided = this.#byDelivery.get(delivery.delivery_id);
128
- this.#byDelivery.delete(delivery.delivery_id);
129
- return decided ?? readSlackEvent(delivery, finishedActor(rawEvent));
130
- }
131
- }
132
- /** The verified actor a finished message carries; see `TriggerFinishedEvent`. */
133
- function finishedActor(rawEvent) {
134
- return isRecord(rawEvent) && isRecord(rawEvent.actor)
135
- ? rawEvent.actor
136
- : undefined;
137
- }
138
- /**
139
- * The Trigger delivery a finished message or interaction carries; see
140
- * `TriggerFinishedEvent`.
141
- */
142
- export function finishedDelivery(rawEvent) {
143
- return isRecord(rawEvent) && isRecord(rawEvent.delivery)
144
- ? rawEvent.delivery
145
- : undefined;
146
- }
147
- /**
148
- * The message a delivery carries, as a handler reads it, or `undefined` when
149
- * the delivery has no Slack event to read it from.
150
- */
151
- export function slackEvent(key, event, actor) {
152
- const raw = event.raw_event;
153
- if (!isRecord(raw))
154
- return undefined;
155
- const address = isRecord(event.address) ? event.address : {};
156
- const message = isRecord(event.message)
157
- ? event.message
158
- : {};
159
- const channelId = nonblankString(raw.channel) ?? nonblankString(address.conversation_id);
160
- const messageTs = nonblankString(raw.ts) ?? nonblankString(message.id);
161
- if (!channelId || !messageTs)
162
- return undefined;
163
- const userId = nonblankString(raw.user);
164
- return {
165
- key,
166
- deliveryId: event.delivery_id,
167
- text: (typeof raw.text === "string" ? raw.text : undefined) ??
168
- (typeof message.text === "string" ? message.text : ""),
169
- ...(userId && { userId }),
170
- channelId,
171
- messageTs,
172
- threadTs: nonblankString(raw.thread_ts) ??
173
- nonblankString(address.thread_id) ??
174
- messageTs,
175
- files: Array.isArray(raw.files) ? raw.files.flatMap(slackFile) : [],
176
- payload: structuredClone(raw),
177
- // A Slack message's actor is a Slack user.
178
- ...(actor?.provider === "slack" && { actor: { ...actor } }),
179
- };
180
- }
181
- /**
182
- * The interaction a forwarded click or modal submission carries, as a
183
- * handler reads it, or `undefined` without the conversation it happened in.
184
- */
185
- export function slackInteractionEvent(event, actor) {
186
- const raw = isRecord(event.raw_event) ? event.raw_event : {};
187
- const address = isRecord(event.address) ? event.address : {};
188
- const container = isRecord(raw.container) ? raw.container : {};
189
- const message = isRecord(raw.message) ? raw.message : {};
190
- const messageTs = nonblankString(container.message_ts) ?? nonblankString(message.ts);
191
- const channelId = nonblankString(address.conversation_id) ??
192
- nonblankString(container.channel_id) ??
193
- (isRecord(raw.channel) ? nonblankString(raw.channel.id) : undefined);
194
- const threadTs = nonblankString(address.thread_id) ??
195
- nonblankString(container.thread_ts) ??
196
- nonblankString(message.thread_ts) ??
197
- messageTs;
198
- if (!channelId || !threadTs)
199
- return undefined;
200
- const userId = isRecord(raw.user) ? nonblankString(raw.user.id) : undefined;
201
- // Slack's legacy verification token isn't the handler's to have.
202
- const { token: _token, ...payload } = raw;
203
- const interaction = event.interaction;
204
- return {
205
- key: "interaction",
206
- deliveryId: event.delivery_id,
207
- actionId: interaction.action,
208
- ...("value" in interaction &&
209
- interaction.value !== undefined && {
210
- value: structuredClone(interaction.value),
211
- }),
212
- ...(userId && { userId }),
213
- channelId,
214
- ...(messageTs && { messageTs }),
215
- threadTs,
216
- payload: structuredClone(payload),
217
- // The actor of a click in Slack is a Slack user.
218
- ...(actor?.provider === "slack" && { actor: { ...actor } }),
219
- };
220
- }
221
- function slackFile(file) {
222
- if (!isRecord(file) || !nonblankString(file.id))
223
- return [];
224
- return [
225
- {
226
- id: file.id,
227
- ...(nonblankString(file.name) && { name: file.name }),
228
- ...(nonblankString(file.mimetype) && {
229
- mimetype: file.mimetype,
230
- }),
231
- ...(typeof file.size === "number" && { size: file.size }),
232
- },
233
- ];
234
- }
235
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/channels/slack/events.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,UAAU,GAGX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,eAAe;IACf,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,kBAAkB,EAAE,aAAa,CAAU,CAAC;AAyHhF,kFAAkF;AAClF,MAAM,UAAU,WAAW,CACzB,MAA+C,EAC/C,IAAY;IAEZ,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,OAAO,EAAE,EAAE,IAAI,EAAE;KAClB,CAAC;AACJ,CAAC;AAwFD;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,MAAM;IACN,QAAQ;IACR,WAAW;IACX,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;CACC,CAAC;AAMX;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAiC;IAEjC,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,eAAe,CAAC;IAC3D,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC;IACzC,OAAO,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAiC;IAEjC,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI;QACnE,OAAO,KAAK,CAAC;IACf,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC;IACzC,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,sEAAsE;AACtE,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC;AACpC,iFAAiF;AACjF,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,UAAU,CAC5B,KAAK,IAAI,EAAE;IACT,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,aAAa,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,iFAAiF,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CACjH,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CACjE,CAAC;AAEF,uEAAuE;AACvE,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAyE,EACzE,KAAoB;IAEpB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACvC,OAAO,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,UAAU,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,qEAAqE;AACrE,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACpB,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAErD,QAAQ,CAAC,UAAkB,EAAE,KAAiB;QAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,kBAAkB,IAAI,MAAM,KAAK,SAAS;YACpE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,QAA+B;QAE/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAED,iFAAiF;AACjF,SAAS,aAAa,CACpB,QAA+B;IAE/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnD,CAAC,CAAE,QAAQ,CAAC,KAAiC;QAC7C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA+B;IAK/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtD,CAAC,CAAE,QAAQ,CAAC,QAEgC;QAC5C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,GAAM,EACN,KAAiC,EACjC,KAAoB;IAEpB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAE,KAA+B,CAAC,OAAO,CAAC;QAChE,CAAC,CAAG,KAA+B,CAAC,OAAmC;QACvE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GACb,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO;QACL,GAAG;QACH,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,IAAI,EACF,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACrD,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS;QACT,SAAS;QACT,QAAQ,EACN,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;YAC7B,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;YACjC,SAAS;QACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACnE,OAAO,EAAE,eAAe,CAAC,GAAG,CAAiC;QAC7D,2CAA2C;QAC3C,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA4C,EAC5C,KAAoB;IAEpB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,SAAS,GACb,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GACb,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC;QACvC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC;QACpC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,QAAQ,GACZ,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QACjC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC;QACnC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QACjC,SAAS,CAAC;IACZ,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,iEAAiE;IACjE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,OAAO;QACL,GAAG,EAAE,aAAa;QAClB,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,QAAQ,EAAE,WAAW,CAAC,MAAM;QAC5B,GAAG,CAAC,OAAO,IAAI,WAAW;YACxB,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI;YACjC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAc;SACvD,CAAC;QACJ,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS;QACT,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,QAAQ;QACR,OAAO,EAAE,eAAe,CAAC,OAAO,CAAqC;QACrE,iDAAiD;QACjD,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3D,OAAO;QACL;YACE,EAAE,EAAE,IAAI,CAAC,EAAY;YACrB,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAc,EAAE,CAAC;YAC/D,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAkB;aAClC,CAAC;YACF,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1D;KACF,CAAC;AACJ,CAAC"}
@@ -1,76 +0,0 @@
1
- import type { BaseMessage } from "@langchain/core/messages";
2
- import { z } from "zod";
3
- import type { Channel } from "../../runtime/channel.js";
4
- import type { TriggerChannelRuntimeStatus } from "../trigger/types.js";
5
- /** Where a step is: Slack's task statuses. */
6
- export type SlackStatusStepStatus = "pending" | "in_progress" | "complete" | "error";
7
- /** One step of the run's plan; a step without a status is `pending`. */
8
- export interface SlackStatusStep {
9
- title: string;
10
- status?: SlackStatusStepStatus;
11
- }
12
- /**
13
- * The run's status: one line, or a list of steps that Slack shows as a plan,
14
- * each a title or a {@link SlackStatusStep}.
15
- */
16
- export type SlackStatusValue = string | readonly (string | SlackStatusStep)[];
17
- /** The agent's state as a status chooser reads it. */
18
- export interface SlackStatusState {
19
- readonly messages: readonly BaseMessage[];
20
- /** The agent's to-do list, when it keeps one. */
21
- readonly todos?: readonly {
22
- content: string;
23
- status: "pending" | "in_progress" | "completed";
24
- }[];
25
- readonly [key: string]: unknown;
26
- }
27
- /** What a status chooser is told: the agent's state, as of now. */
28
- export interface SlackStatusContext {
29
- readonly state: SlackStatusState;
30
- }
31
- /**
32
- * Picks the run's status from the agent's state, or `null` to leave what's
33
- * shown. May be sync or async.
34
- *
35
- * It is called as the run starts, before and after each model call, and
36
- * every few seconds while a model or tool call runs, one call at a time. A
37
- * sync chooser runs on the event loop, where the timeout cannot stop it, so
38
- * do slow work in an async one.
39
- */
40
- export type SlackStatusChooser = (context: SlackStatusContext) => SlackStatusValue | null | Promise<SlackStatusValue | null>;
41
- /**
42
- * How a channel shows a run's status: always the same value, or a function
43
- * of the agent's state.
44
- */
45
- export type SlackStatusChoice = SlackStatusValue | SlackStatusChooser;
46
- /**
47
- * A status value as Trigger Server takes it, or `undefined` when `value` is
48
- * not one. A plan keeps its first steps, as many as Slack shows.
49
- */
50
- export declare function slackStatusFields(value: unknown): Pick<TriggerChannelRuntimeStatus, "message" | "steps"> | undefined;
51
- /** Whether `value` is a status value a channel can show. */
52
- export declare function isSlackStatusValue(value: unknown): value is SlackStatusValue;
53
- /**
54
- * What a run's `run.started` tells Trigger Server about its status: a custom
55
- * status shows as a plan, whose title is the line, and a fixed one from the
56
- * start. `undefined` keeps Trigger Server's working phrases.
57
- */
58
- export declare function startedStatus(choice: SlackStatusChoice | undefined): TriggerChannelRuntimeStatus | undefined;
59
- /**
60
- * Show what each Slack channel's status chooser says while a run of the
61
- * channel works. Runs from other channels, and channels with a fixed status
62
- * or none, pass through: `run.started` carries a fixed status.
63
- */
64
- export declare function createSlackStatusMiddleware(channels: readonly Channel[]): import("langchain").AgentMiddleware<z.ZodObject<{
65
- todos: z.ZodDefault<z.ZodArray<z.ZodObject<{
66
- content: z.ZodString;
67
- status: z.ZodEnum<{
68
- completed: "completed";
69
- in_progress: "in_progress";
70
- pending: "pending";
71
- }>;
72
- }, z.core.$strip>>>;
73
- }, z.core.$strip>, undefined, unknown, readonly (import("@langchain/core/tools").ServerTool | import("@langchain/core/tools").ClientTool)[], readonly []>;
74
- /** Whether a channel's status needs the status middleware in its runs. */
75
- export declare function hasSlackStatusChooser(channels: readonly Channel[]): boolean;
76
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/status.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAQxD,OAAO,KAAK,EAEV,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,aAAa,GACb,UAAU,GACV,OAAO,CAAC;AAEZ,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC;AAE9E,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;KACjD,EAAE,CAAC;IACJ,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,kBAAkB,KACxB,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AA0CtE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,SAAS,CAapE;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,2BAA2B,GAAG,SAAS,CAIzC;AAyRD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE;;;;;;;;;0JAqFvE;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAM3E"}