managed-deepagents 0.9.6-dev.15 → 0.9.6-dev.16
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.
- package/README.md +57 -953
- package/dist/agent-auth.d.ts +1 -1
- package/dist/agent-auth.d.ts.map +1 -1
- package/dist/agent-auth.js +12 -36
- package/dist/agent-auth.js.map +1 -1
- package/dist/channels/assistant-text.d.ts +0 -24
- package/dist/channels/assistant-text.d.ts.map +1 -1
- package/dist/channels/assistant-text.js +1 -65
- package/dist/channels/assistant-text.js.map +1 -1
- package/dist/channels/binding.d.ts +1 -20
- package/dist/channels/binding.d.ts.map +1 -1
- package/dist/channels/binding.js +10 -39
- package/dist/channels/binding.js.map +1 -1
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +65 -386
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +1 -2
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +10 -14
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +5 -65
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +33 -149
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/types.d.ts +2 -143
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/message-schema.d.ts +0 -2
- package/dist/channels/message-schema.d.ts.map +1 -1
- package/dist/channels/message-schema.js +0 -4
- package/dist/channels/message-schema.js.map +1 -1
- package/dist/channels/messaging-registry.d.ts +0 -16
- package/dist/channels/messaging-registry.d.ts.map +1 -1
- package/dist/channels/messaging-registry.js +0 -29
- package/dist/channels/messaging-registry.js.map +1 -1
- package/dist/channels/runtime.d.ts +1 -1
- package/dist/channels/runtime.d.ts.map +1 -1
- package/dist/channels/runtime.js +1 -1
- package/dist/channels/runtime.js.map +1 -1
- package/dist/channels/schedule-delivery.d.ts +1 -1
- package/dist/channels/schedule-delivery.d.ts.map +1 -1
- package/dist/channels/schedule-delivery.js +23 -12
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/channels/slack/api.d.ts +0 -2
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +0 -6
- package/dist/channels/slack/api.js.map +1 -1
- package/dist/channels/slack/files.d.ts.map +1 -1
- package/dist/channels/slack/files.js +3 -2
- package/dist/channels/slack/files.js.map +1 -1
- package/dist/channels/slack/index.d.ts +2 -76
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +6 -177
- package/dist/channels/slack/index.js.map +1 -1
- package/dist/channels/slack/message-content.d.ts.map +1 -1
- package/dist/channels/slack/message-content.js +28 -23
- package/dist/channels/slack/message-content.js.map +1 -1
- package/dist/channels/source-providers.js +1 -1
- package/dist/channels/source-providers.js.map +1 -1
- package/dist/channels/trigger/client.d.ts.map +1 -1
- package/dist/channels/trigger/client.js +12 -6
- package/dist/channels/trigger/client.js.map +1 -1
- package/dist/channels/trigger/http.d.ts +3 -114
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +82 -314
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/identity-context.d.ts +1 -1
- package/dist/channels/trigger/identity-context.d.ts.map +1 -1
- package/dist/channels/trigger/identity-context.js +3 -5
- package/dist/channels/trigger/identity-context.js.map +1 -1
- package/dist/channels/trigger/ingress.d.ts +1 -38
- package/dist/channels/trigger/ingress.d.ts.map +1 -1
- package/dist/channels/trigger/ingress.js +24 -49
- package/dist/channels/trigger/ingress.js.map +1 -1
- package/dist/channels/trigger/types.d.ts +3 -82
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js +0 -36
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/channels/types.d.ts +3 -19
- package/dist/channels/types.d.ts.map +1 -1
- package/dist/channels/types.js +0 -2
- package/dist/channels/types.js.map +1 -1
- package/dist/concurrency/batch-processor.d.ts +51 -0
- package/dist/concurrency/batch-processor.d.ts.map +1 -0
- package/dist/concurrency/batch-processor.js +99 -0
- package/dist/concurrency/batch-processor.js.map +1 -0
- package/dist/connections.d.ts +1 -42
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +14 -127
- package/dist/connections.js.map +1 -1
- package/dist/credential-gate.d.ts +0 -2
- package/dist/credential-gate.d.ts.map +1 -1
- package/dist/credential-gate.js +3 -37
- package/dist/credential-gate.js.map +1 -1
- package/dist/define-deep-agent.d.ts.map +1 -1
- package/dist/define-deep-agent.js +0 -6
- package/dist/define-deep-agent.js.map +1 -1
- package/dist/identity/loopback.d.ts +7 -2
- package/dist/identity/loopback.d.ts.map +1 -1
- package/dist/identity/loopback.js +15 -4
- package/dist/identity/loopback.js.map +1 -1
- package/dist/identity/slack/links.js +3 -2
- package/dist/identity/slack/links.js.map +1 -1
- package/dist/index.d.ts +4 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +8 -0
- package/dist/ingress/index.d.ts.map +1 -1
- package/dist/ingress/index.js +32 -2
- package/dist/ingress/index.js.map +1 -1
- package/dist/ingress/loopback.js +4 -3
- package/dist/ingress/loopback.js.map +1 -1
- package/dist/ingress/runs.d.ts +1 -74
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +16 -176
- package/dist/ingress/runs.js.map +1 -1
- package/dist/managed-composition.d.ts.map +1 -1
- package/dist/managed-composition.js +13 -8
- package/dist/managed-composition.js.map +1 -1
- package/dist/memory/instructions-middleware.d.ts.map +1 -1
- package/dist/memory/instructions-middleware.js +6 -5
- package/dist/memory/instructions-middleware.js.map +1 -1
- package/dist/namespaces.d.ts +21 -21
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +29 -4
- package/dist/namespaces.js.map +1 -1
- package/dist/resilience/retry.d.ts +21 -0
- package/dist/resilience/retry.d.ts.map +1 -0
- package/dist/resilience/retry.js +40 -0
- package/dist/resilience/retry.js.map +1 -0
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +21 -151
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/channel.d.ts +0 -6
- package/dist/runtime/channel.d.ts.map +1 -1
- package/dist/runtime/channel.js.map +1 -1
- package/dist/runtime/graph-build-timing.d.ts +30 -0
- package/dist/runtime/graph-build-timing.d.ts.map +1 -0
- package/dist/runtime/graph-build-timing.js +50 -0
- package/dist/runtime/graph-build-timing.js.map +1 -0
- package/dist/runtime/http.d.ts +15 -0
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +37 -0
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/identity-http.d.ts +0 -2
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +16 -40
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +0 -10
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +0 -22
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +47 -46
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/langsmith-env.d.ts +19 -0
- package/dist/runtime/langsmith-env.d.ts.map +1 -0
- package/dist/runtime/langsmith-env.js +38 -0
- package/dist/runtime/langsmith-env.js.map +1 -0
- package/dist/runtime/log.d.ts +8 -14
- package/dist/runtime/log.d.ts.map +1 -1
- package/dist/runtime/log.js +16 -7
- package/dist/runtime/log.js.map +1 -1
- package/dist/runtime/managed-middleware.d.ts.map +1 -1
- package/dist/runtime/managed-middleware.js +1 -14
- package/dist/runtime/managed-middleware.js.map +1 -1
- package/dist/runtime/managed-tools.d.ts +10 -10
- package/dist/runtime/managed-tools.d.ts.map +1 -1
- package/dist/runtime/managed-tools.js +24 -24
- package/dist/runtime/managed-tools.js.map +1 -1
- package/dist/runtime/memory/mounts.d.ts +82 -11
- package/dist/runtime/memory/mounts.d.ts.map +1 -1
- package/dist/runtime/memory/mounts.js +173 -34
- package/dist/runtime/memory/mounts.js.map +1 -1
- package/dist/runtime/memory/policy.d.ts.map +1 -1
- package/dist/runtime/memory/policy.js +3 -1
- package/dist/runtime/memory/policy.js.map +1 -1
- package/dist/runtime/run-input.d.ts +0 -10
- package/dist/runtime/run-input.d.ts.map +1 -1
- package/dist/runtime/run-input.js +19 -47
- package/dist/runtime/run-input.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +1 -1
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +10 -15
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/schedule-auth.d.ts +0 -17
- package/dist/runtime/schedule-auth.d.ts.map +1 -1
- package/dist/runtime/schedule-auth.js +3 -40
- package/dist/runtime/schedule-auth.js.map +1 -1
- package/dist/runtime/selected-skills-backend.d.ts +3 -3
- package/dist/runtime/selected-skills-backend.d.ts.map +1 -1
- package/dist/runtime/selected-skills-backend.js +5 -5
- package/dist/runtime/selected-skills-backend.js.map +1 -1
- package/dist/runtime/types.d.ts +1 -5
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime-schedules.d.ts +0 -13
- package/dist/runtime-schedules.d.ts.map +1 -1
- package/dist/runtime-schedules.js +22 -86
- package/dist/runtime-schedules.js.map +1 -1
- package/dist/sandbox.d.ts +6 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +7 -3
- package/dist/sandbox.js.map +1 -1
- package/dist/schedule-channel.d.ts +2 -5
- package/dist/schedule-channel.d.ts.map +1 -1
- package/dist/schedule-channel.js +12 -13
- package/dist/schedule-channel.js.map +1 -1
- package/dist/telemetry/lifecycle.d.ts +26 -0
- package/dist/telemetry/lifecycle.d.ts.map +1 -0
- package/dist/telemetry/lifecycle.js +49 -0
- package/dist/telemetry/lifecycle.js.map +1 -0
- package/dist/telemetry/metadata.d.ts.map +1 -1
- package/dist/telemetry/metadata.js +4 -4
- package/dist/telemetry/metadata.js.map +1 -1
- package/dist/telemetry/otel/context.d.ts +57 -0
- package/dist/telemetry/otel/context.d.ts.map +1 -0
- package/dist/telemetry/otel/context.js +122 -0
- package/dist/telemetry/otel/context.js.map +1 -0
- package/dist/telemetry/otel/exporter.d.ts +53 -0
- package/dist/telemetry/otel/exporter.d.ts.map +1 -0
- package/dist/telemetry/otel/exporter.js +190 -0
- package/dist/telemetry/otel/exporter.js.map +1 -0
- package/dist/telemetry/otel/index.d.ts +6 -0
- package/dist/telemetry/otel/index.d.ts.map +1 -0
- package/dist/telemetry/otel/index.js +3 -0
- package/dist/telemetry/otel/index.js.map +1 -0
- package/dist/telemetry/otel/otlp.d.ts +44 -0
- package/dist/telemetry/otel/otlp.d.ts.map +1 -0
- package/dist/telemetry/otel/otlp.js +7 -0
- package/dist/telemetry/otel/otlp.js.map +1 -0
- package/dist/telemetry/otel/truncate.d.ts +10 -0
- package/dist/telemetry/otel/truncate.d.ts.map +1 -0
- package/dist/telemetry/otel/truncate.js +39 -0
- package/dist/telemetry/otel/truncate.js.map +1 -0
- package/dist/telemetry/run-listener.d.ts +1 -1
- package/dist/telemetry/run-listener.d.ts.map +1 -1
- package/dist/telemetry/run-listener.js +32 -2
- package/dist/telemetry/run-listener.js.map +1 -1
- package/dist/telemetry/transport/posthog.d.ts +13 -1
- package/dist/telemetry/transport/posthog.d.ts.map +1 -1
- package/dist/telemetry/transport/posthog.js +68 -30
- package/dist/telemetry/transport/posthog.js.map +1 -1
- package/package.json +11 -11
- package/dist/channels/actor.d.ts +0 -43
- package/dist/channels/actor.d.ts.map +0 -1
- package/dist/channels/actor.js +0 -2
- package/dist/channels/actor.js.map +0 -1
- package/dist/channels/delivery.d.ts +0 -21
- package/dist/channels/delivery.d.ts.map +0 -1
- package/dist/channels/delivery.js +0 -196
- package/dist/channels/delivery.js.map +0 -1
- package/dist/channels/github/connections.d.ts +0 -11
- package/dist/channels/github/connections.d.ts.map +0 -1
- package/dist/channels/github/connections.js +0 -14
- package/dist/channels/github/connections.js.map +0 -1
- package/dist/channels/github/index.d.ts +0 -8
- package/dist/channels/github/index.d.ts.map +0 -1
- package/dist/channels/github/index.js +0 -274
- package/dist/channels/github/index.js.map +0 -1
- package/dist/channels/github/mentions.d.ts +0 -12
- package/dist/channels/github/mentions.d.ts.map +0 -1
- package/dist/channels/github/mentions.js +0 -185
- package/dist/channels/github/mentions.js.map +0 -1
- package/dist/channels/github/schema.d.ts +0 -4165
- package/dist/channels/github/schema.d.ts.map +0 -1
- package/dist/channels/github/schema.js +0 -221
- package/dist/channels/github/schema.js.map +0 -1
- package/dist/channels/github/types.d.ts +0 -163
- package/dist/channels/github/types.d.ts.map +0 -1
- package/dist/channels/github/types.js +0 -2
- package/dist/channels/github/types.js.map +0 -1
- package/dist/channels/http/endpoint.d.ts +0 -95
- package/dist/channels/http/endpoint.d.ts.map +0 -1
- package/dist/channels/http/endpoint.js +0 -276
- package/dist/channels/http/endpoint.js.map +0 -1
- package/dist/channels/http/provider.d.ts +0 -119
- package/dist/channels/http/provider.d.ts.map +0 -1
- package/dist/channels/http/provider.js +0 -227
- package/dist/channels/http/provider.js.map +0 -1
- package/dist/channels/http/studio.d.ts +0 -24
- package/dist/channels/http/studio.d.ts.map +0 -1
- package/dist/channels/http/studio.js +0 -95
- package/dist/channels/http/studio.js.map +0 -1
- package/dist/channels/http/threads.d.ts +0 -7
- package/dist/channels/http/threads.d.ts.map +0 -1
- package/dist/channels/http/threads.js +0 -10
- package/dist/channels/http/threads.js.map +0 -1
- package/dist/channels/linear/connections.d.ts +0 -11
- package/dist/channels/linear/connections.d.ts.map +0 -1
- package/dist/channels/linear/connections.js +0 -14
- package/dist/channels/linear/connections.js.map +0 -1
- package/dist/channels/linear/graphql.d.ts +0 -57
- package/dist/channels/linear/graphql.d.ts.map +0 -1
- package/dist/channels/linear/graphql.js +0 -167
- package/dist/channels/linear/graphql.js.map +0 -1
- package/dist/channels/linear/index.d.ts +0 -9
- package/dist/channels/linear/index.d.ts.map +0 -1
- package/dist/channels/linear/index.js +0 -489
- package/dist/channels/linear/index.js.map +0 -1
- package/dist/channels/linear/schema.d.ts +0 -1050
- package/dist/channels/linear/schema.d.ts.map +0 -1
- package/dist/channels/linear/schema.js +0 -255
- package/dist/channels/linear/schema.js.map +0 -1
- package/dist/channels/linear/types.d.ts +0 -162
- package/dist/channels/linear/types.d.ts.map +0 -1
- package/dist/channels/linear/types.js +0 -2
- package/dist/channels/linear/types.js.map +0 -1
- package/dist/channels/reserved-connections.d.ts +0 -12
- package/dist/channels/reserved-connections.d.ts.map +0 -1
- package/dist/channels/reserved-connections.js +0 -55
- package/dist/channels/reserved-connections.js.map +0 -1
- package/dist/channels/run-input.d.ts +0 -71
- package/dist/channels/run-input.d.ts.map +0 -1
- package/dist/channels/run-input.js +0 -155
- package/dist/channels/run-input.js.map +0 -1
- package/dist/channels/slack/connections.d.ts +0 -6
- package/dist/channels/slack/connections.d.ts.map +0 -1
- package/dist/channels/slack/connections.js +0 -6
- package/dist/channels/slack/connections.js.map +0 -1
- package/dist/channels/slack/events.d.ts +0 -272
- package/dist/channels/slack/events.d.ts.map +0 -1
- package/dist/channels/slack/events.js +0 -235
- package/dist/channels/slack/events.js.map +0 -1
- package/dist/channels/slack/status.d.ts +0 -76
- package/dist/channels/slack/status.d.ts.map +0 -1
- package/dist/channels/slack/status.js +0 -427
- package/dist/channels/slack/status.js.map +0 -1
- package/dist/runtime/channel-icon.d.ts +0 -22
- package/dist/runtime/channel-icon.d.ts.map +0 -1
- package/dist/runtime/channel-icon.js +0 -70
- package/dist/runtime/channel-icon.js.map +0 -1
- package/dist/runtime/managed-thread.d.ts +0 -60
- package/dist/runtime/managed-thread.d.ts.map +0 -1
- package/dist/runtime/managed-thread.js +0 -76
- package/dist/runtime/managed-thread.js.map +0 -1
- package/dist/runtime/thread-record.d.ts +0 -81
- package/dist/runtime/thread-record.d.ts.map +0 -1
- package/dist/runtime/thread-record.js +0 -205
- package/dist/runtime/thread-record.js.map +0 -1
- package/dist/values.d.ts +0 -15
- package/dist/values.d.ts.map +0 -1
- package/dist/values.js +0 -31
- 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":"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"}
|
|
@@ -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"}
|