managed-deepagents 0.9.6-dev.13 → 0.9.6-dev.15
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 +953 -57
- package/dist/agent-auth.d.ts +1 -1
- package/dist/agent-auth.d.ts.map +1 -1
- package/dist/agent-auth.js +36 -12
- package/dist/agent-auth.js.map +1 -1
- package/dist/channels/actor.d.ts +43 -0
- package/dist/channels/actor.d.ts.map +1 -0
- package/dist/channels/actor.js +2 -0
- package/dist/channels/actor.js.map +1 -0
- package/dist/channels/assistant-text.d.ts +24 -0
- package/dist/channels/assistant-text.d.ts.map +1 -1
- package/dist/channels/assistant-text.js +65 -1
- package/dist/channels/assistant-text.js.map +1 -1
- package/dist/channels/binding.d.ts +20 -1
- package/dist/channels/binding.d.ts.map +1 -1
- package/dist/channels/binding.js +39 -10
- package/dist/channels/binding.js.map +1 -1
- package/dist/channels/delivery.d.ts +21 -0
- package/dist/channels/delivery.d.ts.map +1 -0
- package/dist/channels/delivery.js +196 -0
- package/dist/channels/delivery.js.map +1 -0
- package/dist/channels/github/connections.d.ts +11 -0
- package/dist/channels/github/connections.d.ts.map +1 -0
- package/dist/channels/github/connections.js +14 -0
- package/dist/channels/github/connections.js.map +1 -0
- package/dist/channels/github/index.d.ts +8 -0
- package/dist/channels/github/index.d.ts.map +1 -0
- package/dist/channels/github/index.js +274 -0
- package/dist/channels/github/index.js.map +1 -0
- package/dist/channels/github/mentions.d.ts +12 -0
- package/dist/channels/github/mentions.d.ts.map +1 -0
- package/dist/channels/github/mentions.js +185 -0
- package/dist/channels/github/mentions.js.map +1 -0
- package/dist/channels/github/schema.d.ts +4165 -0
- package/dist/channels/github/schema.d.ts.map +1 -0
- package/dist/channels/github/schema.js +221 -0
- package/dist/channels/github/schema.js.map +1 -0
- package/dist/channels/github/types.d.ts +163 -0
- package/dist/channels/github/types.d.ts.map +1 -0
- package/dist/channels/github/types.js +2 -0
- package/dist/channels/github/types.js.map +1 -0
- package/dist/channels/http/endpoint.d.ts +95 -0
- package/dist/channels/http/endpoint.d.ts.map +1 -0
- package/dist/channels/http/endpoint.js +276 -0
- package/dist/channels/http/endpoint.js.map +1 -0
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +386 -65
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +2 -1
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +14 -10
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +65 -5
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +149 -33
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/provider.d.ts +119 -0
- package/dist/channels/http/provider.d.ts.map +1 -0
- package/dist/channels/http/provider.js +227 -0
- package/dist/channels/http/provider.js.map +1 -0
- package/dist/channels/http/studio.d.ts +24 -0
- package/dist/channels/http/studio.d.ts.map +1 -0
- package/dist/channels/http/studio.js +95 -0
- package/dist/channels/http/studio.js.map +1 -0
- package/dist/channels/http/threads.d.ts +7 -0
- package/dist/channels/http/threads.d.ts.map +1 -0
- package/dist/channels/http/threads.js +10 -0
- package/dist/channels/http/threads.js.map +1 -0
- package/dist/channels/http/types.d.ts +143 -2
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/linear/connections.d.ts +11 -0
- package/dist/channels/linear/connections.d.ts.map +1 -0
- package/dist/channels/linear/connections.js +14 -0
- package/dist/channels/linear/connections.js.map +1 -0
- package/dist/channels/linear/graphql.d.ts +57 -0
- package/dist/channels/linear/graphql.d.ts.map +1 -0
- package/dist/channels/linear/graphql.js +167 -0
- package/dist/channels/linear/graphql.js.map +1 -0
- package/dist/channels/linear/index.d.ts +9 -0
- package/dist/channels/linear/index.d.ts.map +1 -0
- package/dist/channels/linear/index.js +489 -0
- package/dist/channels/linear/index.js.map +1 -0
- package/dist/channels/linear/schema.d.ts +1050 -0
- package/dist/channels/linear/schema.d.ts.map +1 -0
- package/dist/channels/linear/schema.js +255 -0
- package/dist/channels/linear/schema.js.map +1 -0
- package/dist/channels/linear/types.d.ts +162 -0
- package/dist/channels/linear/types.d.ts.map +1 -0
- package/dist/channels/linear/types.js +2 -0
- package/dist/channels/linear/types.js.map +1 -0
- package/dist/channels/message-schema.d.ts +2 -0
- package/dist/channels/message-schema.d.ts.map +1 -1
- package/dist/channels/message-schema.js +4 -0
- package/dist/channels/message-schema.js.map +1 -1
- package/dist/channels/messaging-registry.d.ts +16 -0
- package/dist/channels/messaging-registry.d.ts.map +1 -1
- package/dist/channels/messaging-registry.js +29 -0
- package/dist/channels/messaging-registry.js.map +1 -1
- package/dist/channels/reserved-connections.d.ts +12 -0
- package/dist/channels/reserved-connections.d.ts.map +1 -0
- package/dist/channels/reserved-connections.js +55 -0
- package/dist/channels/reserved-connections.js.map +1 -0
- package/dist/channels/run-input.d.ts +71 -0
- package/dist/channels/run-input.d.ts.map +1 -0
- package/dist/channels/run-input.js +155 -0
- package/dist/channels/run-input.js.map +1 -0
- 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 +12 -23
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/channels/slack/api.d.ts +2 -0
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +6 -0
- package/dist/channels/slack/api.js.map +1 -1
- package/dist/channels/slack/connections.d.ts +6 -0
- package/dist/channels/slack/connections.d.ts.map +1 -0
- package/dist/channels/slack/connections.js +6 -0
- package/dist/channels/slack/connections.js.map +1 -0
- package/dist/channels/slack/events.d.ts +272 -0
- package/dist/channels/slack/events.d.ts.map +1 -0
- package/dist/channels/slack/events.js +235 -0
- package/dist/channels/slack/events.js.map +1 -0
- package/dist/channels/slack/files.d.ts.map +1 -1
- package/dist/channels/slack/files.js +2 -3
- package/dist/channels/slack/files.js.map +1 -1
- package/dist/channels/slack/index.d.ts +76 -2
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +177 -6
- 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 +23 -28
- package/dist/channels/slack/message-content.js.map +1 -1
- package/dist/channels/slack/status.d.ts +76 -0
- package/dist/channels/slack/status.d.ts.map +1 -0
- package/dist/channels/slack/status.js +427 -0
- package/dist/channels/slack/status.js.map +1 -0
- 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 +6 -15
- package/dist/channels/trigger/client.js.map +1 -1
- package/dist/channels/trigger/http.d.ts +114 -3
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +314 -82
- 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 +2 -3
- package/dist/channels/trigger/identity-context.js.map +1 -1
- package/dist/channels/trigger/ingress.d.ts +38 -1
- package/dist/channels/trigger/ingress.d.ts.map +1 -1
- package/dist/channels/trigger/ingress.js +47 -19
- package/dist/channels/trigger/ingress.js.map +1 -1
- package/dist/channels/trigger/types.d.ts +82 -3
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js +36 -0
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/channels/types.d.ts +19 -3
- package/dist/channels/types.d.ts.map +1 -1
- package/dist/channels/types.js +2 -0
- package/dist/channels/types.js.map +1 -1
- package/dist/connections.d.ts +31 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +108 -11
- package/dist/connections.js.map +1 -1
- package/dist/credential-gate.d.ts +2 -0
- package/dist/credential-gate.d.ts.map +1 -1
- package/dist/credential-gate.js +37 -3
- package/dist/credential-gate.js.map +1 -1
- package/dist/define-deep-agent.d.ts.map +1 -1
- package/dist/define-deep-agent.js +6 -0
- package/dist/define-deep-agent.js.map +1 -1
- package/dist/identity/loopback.d.ts +1 -6
- package/dist/identity/loopback.d.ts.map +1 -1
- package/dist/identity/loopback.js +2 -12
- package/dist/identity/loopback.js.map +1 -1
- package/dist/index.d.ts +15 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +0 -8
- package/dist/ingress/index.d.ts.map +1 -1
- package/dist/ingress/index.js +2 -32
- package/dist/ingress/index.js.map +1 -1
- package/dist/ingress/runs.d.ts +74 -1
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +176 -16
- package/dist/ingress/runs.js.map +1 -1
- package/dist/managed-composition.d.ts.map +1 -1
- package/dist/managed-composition.js +8 -13
- package/dist/managed-composition.js.map +1 -1
- package/dist/memory/instructions-middleware.d.ts.map +1 -1
- package/dist/memory/instructions-middleware.js +5 -6
- 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 +4 -29
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +151 -21
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/channel-icon.d.ts +22 -0
- package/dist/runtime/channel-icon.d.ts.map +1 -0
- package/dist/runtime/channel-icon.js +70 -0
- package/dist/runtime/channel-icon.js.map +1 -0
- package/dist/runtime/channel.d.ts +6 -0
- package/dist/runtime/channel.d.ts.map +1 -1
- package/dist/runtime/channel.js.map +1 -1
- package/dist/runtime/http.d.ts +0 -15
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +0 -37
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/identity-http.d.ts +2 -0
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +40 -16
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +10 -0
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +22 -0
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +46 -47
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/log.d.ts +14 -8
- package/dist/runtime/log.d.ts.map +1 -1
- package/dist/runtime/log.js +7 -16
- package/dist/runtime/log.js.map +1 -1
- package/dist/runtime/managed-middleware.d.ts.map +1 -1
- package/dist/runtime/managed-middleware.js +14 -1
- package/dist/runtime/managed-middleware.js.map +1 -1
- package/dist/runtime/managed-thread.d.ts +60 -0
- package/dist/runtime/managed-thread.d.ts.map +1 -0
- package/dist/runtime/managed-thread.js +76 -0
- package/dist/runtime/managed-thread.js.map +1 -0
- 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 +11 -82
- package/dist/runtime/memory/mounts.d.ts.map +1 -1
- package/dist/runtime/memory/mounts.js +34 -173
- 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 +1 -3
- package/dist/runtime/memory/policy.js.map +1 -1
- package/dist/runtime/run-input.d.ts +10 -0
- package/dist/runtime/run-input.d.ts.map +1 -1
- package/dist/runtime/run-input.js +47 -19
- 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 +9 -7
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/schedule-auth.d.ts +17 -0
- package/dist/runtime/schedule-auth.d.ts.map +1 -1
- package/dist/runtime/schedule-auth.js +39 -1
- 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/thread-record.d.ts +81 -0
- package/dist/runtime/thread-record.d.ts.map +1 -0
- package/dist/runtime/thread-record.js +205 -0
- package/dist/runtime/thread-record.js.map +1 -0
- package/dist/runtime/types.d.ts +5 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime-schedules.d.ts +13 -0
- package/dist/runtime-schedules.d.ts.map +1 -1
- package/dist/runtime-schedules.js +86 -22
- package/dist/runtime-schedules.js.map +1 -1
- package/dist/sandbox.d.ts +0 -6
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +3 -7
- package/dist/sandbox.js.map +1 -1
- package/dist/schedule-channel.d.ts +5 -2
- package/dist/schedule-channel.d.ts.map +1 -1
- package/dist/schedule-channel.js +13 -12
- package/dist/schedule-channel.js.map +1 -1
- 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 +2 -32
- package/dist/telemetry/run-listener.js.map +1 -1
- package/dist/telemetry/transport/posthog.d.ts +1 -13
- package/dist/telemetry/transport/posthog.d.ts.map +1 -1
- package/dist/telemetry/transport/posthog.js +30 -68
- package/dist/telemetry/transport/posthog.js.map +1 -1
- package/dist/values.d.ts +15 -0
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +31 -0
- package/dist/values.js.map +1 -0
- package/package.json +11 -11
- package/dist/concurrency/batch-processor.d.ts +0 -51
- package/dist/concurrency/batch-processor.d.ts.map +0 -1
- package/dist/concurrency/batch-processor.js +0 -99
- package/dist/concurrency/batch-processor.js.map +0 -1
- package/dist/resilience/retry.d.ts +0 -21
- package/dist/resilience/retry.d.ts.map +0 -1
- package/dist/resilience/retry.js +0 -40
- package/dist/resilience/retry.js.map +0 -1
- package/dist/runtime/graph-build-timing.d.ts +0 -30
- package/dist/runtime/graph-build-timing.d.ts.map +0 -1
- package/dist/runtime/graph-build-timing.js +0 -50
- package/dist/runtime/graph-build-timing.js.map +0 -1
- package/dist/telemetry/lifecycle.d.ts +0 -26
- package/dist/telemetry/lifecycle.d.ts.map +0 -1
- package/dist/telemetry/lifecycle.js +0 -49
- package/dist/telemetry/lifecycle.js.map +0 -1
- package/dist/telemetry/otel/context.d.ts +0 -57
- package/dist/telemetry/otel/context.d.ts.map +0 -1
- package/dist/telemetry/otel/context.js +0 -122
- package/dist/telemetry/otel/context.js.map +0 -1
- package/dist/telemetry/otel/exporter.d.ts +0 -53
- package/dist/telemetry/otel/exporter.d.ts.map +0 -1
- package/dist/telemetry/otel/exporter.js +0 -190
- package/dist/telemetry/otel/exporter.js.map +0 -1
- package/dist/telemetry/otel/index.d.ts +0 -6
- package/dist/telemetry/otel/index.d.ts.map +0 -1
- package/dist/telemetry/otel/index.js +0 -3
- package/dist/telemetry/otel/index.js.map +0 -1
- package/dist/telemetry/otel/otlp.d.ts +0 -44
- package/dist/telemetry/otel/otlp.d.ts.map +0 -1
- package/dist/telemetry/otel/otlp.js +0 -7
- package/dist/telemetry/otel/otlp.js.map +0 -1
- package/dist/telemetry/otel/truncate.d.ts +0 -10
- package/dist/telemetry/otel/truncate.d.ts.map +0 -1
- package/dist/telemetry/otel/truncate.js +0 -39
- package/dist/telemetry/otel/truncate.js.map +0 -1
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
import { channelContextSchema } from "../../run-context.js";
|
|
2
2
|
import { immutableCopy, validateMessage } from "../runtime.js";
|
|
3
3
|
import { isJsonValue } from "../message-schema.js";
|
|
4
|
-
import {
|
|
4
|
+
import { normalizeRunInput } from "../run-input.js";
|
|
5
|
+
import { cancelHttpIngressRuns, httpIngressThreadWaitsOn, startHttpIngressAgent, observeHttpIngressAgent, waitForHttpIngressThread, } from "./ingress.js";
|
|
6
|
+
import { ChannelError } from "../errors.js";
|
|
5
7
|
import { scheduleIngressWork } from "../../ingress/index.js";
|
|
6
8
|
import { logger } from "../../runtime/log.js";
|
|
9
|
+
import { requireNonblank } from "../../values.js";
|
|
7
10
|
const ASSISTANT_ID_ENV = "MDA_ASSISTANT_ID";
|
|
11
|
+
/**
|
|
12
|
+
* Messages in this process that may still wait for their thread, by thread.
|
|
13
|
+
* A message waiting for its busy thread (the default `enqueue` strategy) is
|
|
14
|
+
* no server-side run yet, so the server's cancel can't reach it: a cancel
|
|
15
|
+
* marks the thread's waiters, and they drop themselves. A message joins
|
|
16
|
+
* before its first start and leaves once its fate is settled, so only
|
|
17
|
+
* threads with messages in flight are kept. Messages waiting in another
|
|
18
|
+
* replica aren't reached.
|
|
19
|
+
*
|
|
20
|
+
* This is not durable: a waiting message lives only in this process, so a
|
|
21
|
+
* restart loses it after the provider was already told it arrived. It waits
|
|
22
|
+
* here rather than queueing on the server because a queued run starts as soon
|
|
23
|
+
* as the run before it stops on `interrupt()`, and its new input discards the
|
|
24
|
+
* decision the thread waits on. A server-side queue that holds messages while
|
|
25
|
+
* a thread waits on an interrupt would replace this; see
|
|
26
|
+
* https://github.com/langchain-ai/langgraph/issues/8838.
|
|
27
|
+
*/
|
|
28
|
+
const threadWaiters = new Map();
|
|
29
|
+
function joinThreadWaiters(threadId) {
|
|
30
|
+
const waiter = { cancelled: false };
|
|
31
|
+
const waiters = threadWaiters.get(threadId) ?? new Set();
|
|
32
|
+
threadWaiters.set(threadId, waiters.add(waiter));
|
|
33
|
+
return waiter;
|
|
34
|
+
}
|
|
35
|
+
function leaveThreadWaiters(threadId, waiter) {
|
|
36
|
+
const waiters = threadWaiters.get(threadId);
|
|
37
|
+
waiters?.delete(waiter);
|
|
38
|
+
if (waiters?.size === 0)
|
|
39
|
+
threadWaiters.delete(threadId);
|
|
40
|
+
}
|
|
8
41
|
export async function handleHttpRequest(ctx, adapter) {
|
|
9
42
|
const rawBody = requestBytes(ctx);
|
|
10
43
|
function adapterRequest() {
|
|
@@ -18,7 +51,7 @@ export async function handleHttpRequest(ctx, adapter) {
|
|
|
18
51
|
verified = await adapter.verify(adapterRequest());
|
|
19
52
|
}
|
|
20
53
|
catch (error) {
|
|
21
|
-
logger.error(`channel verification failed (${logger.safeErrorLabel(error)})
|
|
54
|
+
logger.error(`channel verification failed (${logger.safeErrorLabel(error)})`);
|
|
22
55
|
return jsonError(500, "channel verification failed");
|
|
23
56
|
}
|
|
24
57
|
if (!verified) {
|
|
@@ -38,18 +71,43 @@ export async function handleHttpRequest(ctx, adapter) {
|
|
|
38
71
|
if (result.type === "ignore") {
|
|
39
72
|
return (result.response ?? Response.json({ status: "ignored" }, { status: 202 }));
|
|
40
73
|
}
|
|
74
|
+
const assistantId = process.env[ASSISTANT_ID_ENV]?.trim();
|
|
75
|
+
if (!assistantId) {
|
|
76
|
+
return jsonError(500, "channel runtime is not configured");
|
|
77
|
+
}
|
|
78
|
+
if (result.type === "cancel") {
|
|
79
|
+
let stop;
|
|
80
|
+
try {
|
|
81
|
+
validateCancelMessage(result.message);
|
|
82
|
+
stop = immutableCopy(result.message);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return jsonError(400, "invalid channel message");
|
|
86
|
+
}
|
|
87
|
+
const threadId = stop.threadId.toLowerCase();
|
|
88
|
+
return cancelThreadRuns(ctx, adapter, {
|
|
89
|
+
userId: stop.userId,
|
|
90
|
+
sourceThreadKey: `http:v1:${JSON.stringify([ctx.name, threadId])}`,
|
|
91
|
+
threadId,
|
|
92
|
+
target: stop.target,
|
|
93
|
+
delivery: {
|
|
94
|
+
threadId,
|
|
95
|
+
assistantId,
|
|
96
|
+
...(result.rawEvent !== undefined && {
|
|
97
|
+
rawEvent: structuredClone(result.rawEvent),
|
|
98
|
+
}),
|
|
99
|
+
},
|
|
100
|
+
...(result.response !== undefined && { response: result.response }),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
41
103
|
let message = result.message;
|
|
42
104
|
try {
|
|
43
|
-
validateInboundMessage(message);
|
|
105
|
+
validateInboundMessage(message, adapter.input !== undefined);
|
|
44
106
|
message = immutableCopy(message);
|
|
45
107
|
}
|
|
46
108
|
catch {
|
|
47
109
|
return jsonError(400, "invalid channel message");
|
|
48
110
|
}
|
|
49
|
-
const assistantId = process.env[ASSISTANT_ID_ENV]?.trim();
|
|
50
|
-
if (!assistantId) {
|
|
51
|
-
return jsonError(500, "channel runtime is not configured");
|
|
52
|
-
}
|
|
53
111
|
const deliveryId = crypto.randomUUID();
|
|
54
112
|
const threadId = message.threadId.toLowerCase();
|
|
55
113
|
const sourceThreadKey = `http:v1:${JSON.stringify([ctx.name, threadId])}`;
|
|
@@ -59,12 +117,14 @@ export async function handleHttpRequest(ctx, adapter) {
|
|
|
59
117
|
sourceThreadKey,
|
|
60
118
|
event: {
|
|
61
119
|
type: "message",
|
|
62
|
-
messages:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
120
|
+
messages: message.content === undefined
|
|
121
|
+
? []
|
|
122
|
+
: [
|
|
123
|
+
{
|
|
124
|
+
role: "human",
|
|
125
|
+
content: message.content,
|
|
126
|
+
},
|
|
127
|
+
],
|
|
68
128
|
},
|
|
69
129
|
...(result.rawEvent === undefined ? {} : { rawEvent: result.rawEvent }),
|
|
70
130
|
target: message.target,
|
|
@@ -77,59 +137,243 @@ export async function handleHttpRequest(ctx, adapter) {
|
|
|
77
137
|
sourceThreadKey,
|
|
78
138
|
sourceProvider: ctx.channel.kind,
|
|
79
139
|
binding,
|
|
80
|
-
input: message.content,
|
|
81
140
|
assistantId,
|
|
82
141
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
142
|
+
const rawEvent = result.rawEvent;
|
|
143
|
+
const delivery = (assistantId) => ({
|
|
144
|
+
threadId,
|
|
145
|
+
...(assistantId !== undefined && { assistantId }),
|
|
146
|
+
...(result.rawEvent !== undefined && {
|
|
147
|
+
rawEvent: structuredClone(result.rawEvent),
|
|
148
|
+
}),
|
|
149
|
+
});
|
|
150
|
+
// Joined before the first start, so a cancel during it reaches the message.
|
|
151
|
+
const waiter = joinThreadWaiters(threadId);
|
|
152
|
+
/** Set when a cancel dropped the message while its input was decided. */
|
|
153
|
+
let dropped = false;
|
|
154
|
+
const inputHook = adapter.input?.bind(adapter);
|
|
155
|
+
async function prepare() {
|
|
156
|
+
let prepared;
|
|
157
|
+
try {
|
|
158
|
+
prepared = normalizeRunInput(await inputHook?.(immutableCopy(message), rawEvent === undefined ? undefined : structuredClone(rawEvent)));
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
logger.error(`channel input failed (${logger.safeErrorLabel(error)})`);
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
// A slow input, such as an endpoint's, may outlast a cancel.
|
|
165
|
+
if (prepared && waiter.cancelled) {
|
|
166
|
+
logger.info(`channel run dropped: its thread was cancelled while its input was decided ${JSON.stringify({ threadId })}`);
|
|
167
|
+
dropped = true;
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
return prepared;
|
|
86
171
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
172
|
+
const startInput = {
|
|
173
|
+
...input,
|
|
174
|
+
...(message.deliveryKey !== undefined && {
|
|
175
|
+
deliveryKey: message.deliveryKey,
|
|
176
|
+
}),
|
|
177
|
+
...(message.content !== undefined
|
|
178
|
+
? { input: message.content }
|
|
179
|
+
: { prepare }),
|
|
180
|
+
...(adapter.multitaskStrategy && {
|
|
181
|
+
multitaskStrategy: adapter.multitaskStrategy,
|
|
182
|
+
}),
|
|
183
|
+
};
|
|
184
|
+
// Every message gets one `onReceived` and, once it is done, `onFinish`.
|
|
185
|
+
const onReceived = adapter.onReceived?.bind(adapter);
|
|
186
|
+
const received = new Promise((resolve) => {
|
|
187
|
+
if (!onReceived)
|
|
188
|
+
return resolve();
|
|
189
|
+
scheduleIngressWork(async () => {
|
|
190
|
+
try {
|
|
191
|
+
await onReceived(immutableCopy(message.target), delivery(assistantId));
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
logger.error(`channel received notice failed (${logger.safeErrorLabel(error)})`);
|
|
195
|
+
}
|
|
196
|
+
finally {
|
|
197
|
+
resolve();
|
|
198
|
+
}
|
|
199
|
+
}, { label: `channel "${ctx.name}" received notice` });
|
|
200
|
+
});
|
|
201
|
+
const onFinish = adapter.onFinish?.bind(adapter);
|
|
202
|
+
/** Tell the adapter the message is done; the thread's assistant lets a notice link to it. */
|
|
203
|
+
async function finish(done, threadAssistantId) {
|
|
204
|
+
if (!onFinish)
|
|
205
|
+
return;
|
|
206
|
+
await received;
|
|
207
|
+
try {
|
|
208
|
+
await onFinish(immutableCopy(message.target), immutableCopy({
|
|
209
|
+
...delivery(threadAssistantId ?? assistantId),
|
|
210
|
+
...done,
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
logger.error(`channel finish notice failed (${logger.safeErrorLabel(error)})`);
|
|
215
|
+
}
|
|
90
216
|
}
|
|
217
|
+
const label = `channel "${ctx.name}" delivery`;
|
|
91
218
|
const post = adapter.post?.bind(adapter);
|
|
92
219
|
const onError = adapter.onError?.bind(adapter);
|
|
93
|
-
|
|
94
|
-
let replyAttempted = false;
|
|
220
|
+
async function notifyFailed(error) {
|
|
95
221
|
try {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
...started,
|
|
99
|
-
});
|
|
100
|
-
if (!post || invocation.replyContent === null) {
|
|
101
|
-
return;
|
|
222
|
+
if (onError) {
|
|
223
|
+
await onError(error, immutableCopy(message.target));
|
|
102
224
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
225
|
+
else if (post) {
|
|
226
|
+
await post(immutableCopy({
|
|
227
|
+
type: "content",
|
|
228
|
+
content: "Something went wrong while processing your request.",
|
|
229
|
+
target: message.target,
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (replyError) {
|
|
234
|
+
const action = onError ? "callback" : "reply";
|
|
235
|
+
logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// The run posts its own answer (see `./reply.ts`): this reports how it
|
|
239
|
+
// ended, which the run can't say itself.
|
|
240
|
+
async function deliver(started) {
|
|
241
|
+
const { runId } = started;
|
|
242
|
+
logger.info(`channel run started ${JSON.stringify({ threadId, runId: logger.logIdentifier(runId) })}`);
|
|
243
|
+
let outcome;
|
|
244
|
+
try {
|
|
245
|
+
outcome = await observeHttpIngressAgent({ ...input, ...started });
|
|
110
246
|
}
|
|
111
247
|
catch (error) {
|
|
112
|
-
logger.error(`channel
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
248
|
+
logger.error(`channel run could not be observed (${logger.safeErrorLabel(error)})`);
|
|
249
|
+
}
|
|
250
|
+
// The run may have answered already, or may still, so no error is
|
|
251
|
+
// reported; how it ended is unknown.
|
|
252
|
+
if (!outcome)
|
|
253
|
+
return finish({ type: "failed", reason: "observe", interrupts: [] });
|
|
254
|
+
if (outcome.status === "error" || outcome.status === "timeout") {
|
|
255
|
+
logger.error(`channel run failed ${JSON.stringify({ threadId })}`);
|
|
256
|
+
await notifyFailed(new ChannelError("channel_run_failed", "channel run failed"));
|
|
257
|
+
}
|
|
258
|
+
return finish({
|
|
259
|
+
type: "run",
|
|
260
|
+
run: { id: runId, status: outcome.status },
|
|
261
|
+
interrupts: outcome.interrupts,
|
|
262
|
+
}, outcome.assistantId);
|
|
263
|
+
}
|
|
264
|
+
// The thread's current run may still stop for a decision, so the message
|
|
265
|
+
// waits for that run instead of queueing behind it, then checks again.
|
|
266
|
+
// A cancel while the message waits drops it.
|
|
267
|
+
async function startWhenIdle() {
|
|
268
|
+
let next = { skipped: "busy" };
|
|
269
|
+
try {
|
|
270
|
+
while ("skipped" in next && next.skipped === "busy") {
|
|
271
|
+
await waitForHttpIngressThread(input);
|
|
272
|
+
if (waiter.cancelled) {
|
|
273
|
+
logger.info(`channel run dropped: its thread was cancelled while it waited ${JSON.stringify({ threadId })}`);
|
|
274
|
+
return await finish({
|
|
275
|
+
type: "skipped",
|
|
276
|
+
reason: "dropped",
|
|
277
|
+
interrupts: [],
|
|
278
|
+
});
|
|
123
279
|
}
|
|
280
|
+
next = await startHttpIngressAgent(startInput);
|
|
124
281
|
}
|
|
125
|
-
catch (replyError) {
|
|
126
|
-
const action = onError ? "callback" : "reply";
|
|
127
|
-
logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`, replyError);
|
|
128
|
-
}
|
|
129
282
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
283
|
+
catch (error) {
|
|
284
|
+
logger.error(`channel run could not be started (${logger.safeErrorLabel(error)})`);
|
|
285
|
+
return await finish({ type: "failed", reason: "start", interrupts: [] });
|
|
286
|
+
}
|
|
287
|
+
finally {
|
|
288
|
+
leaveThreadWaiters(threadId, waiter);
|
|
289
|
+
}
|
|
290
|
+
if (!("skipped" in next))
|
|
291
|
+
return deliver(next);
|
|
292
|
+
logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: next.skipped })}`);
|
|
293
|
+
await finishSkipped(next);
|
|
294
|
+
}
|
|
295
|
+
/** A message the thread took no run for is done, with why; one that waits says on what. */
|
|
296
|
+
function finishSkipped(skipped) {
|
|
297
|
+
switch (skipped.skipped) {
|
|
298
|
+
case "paused":
|
|
299
|
+
return finish({
|
|
300
|
+
type: "skipped",
|
|
301
|
+
reason: "waiting",
|
|
302
|
+
interrupts: skipped.interrupts,
|
|
303
|
+
}, skipped.assistantId);
|
|
304
|
+
case "ignored":
|
|
305
|
+
return finish({
|
|
306
|
+
type: "skipped",
|
|
307
|
+
reason: dropped ? "dropped" : "ignored",
|
|
308
|
+
interrupts: [],
|
|
309
|
+
});
|
|
310
|
+
case "busy":
|
|
311
|
+
throw new Error("a busy thread's message is not done");
|
|
312
|
+
default:
|
|
313
|
+
return finish({
|
|
314
|
+
type: "skipped",
|
|
315
|
+
reason: skipped.skipped,
|
|
316
|
+
interrupts: [],
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
/** Start the message's run; `undefined` when that failed. */
|
|
321
|
+
async function startFirst() {
|
|
322
|
+
let outcome;
|
|
323
|
+
try {
|
|
324
|
+
outcome = await startHttpIngressAgent(startInput);
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
leaveThreadWaiters(threadId, waiter);
|
|
328
|
+
logger.error(`channel run could not be started (${logger.safeErrorLabel(error)})`);
|
|
329
|
+
// Answered with an error, the provider may redeliver it, as a new
|
|
330
|
+
// delivery: only one it already accepted is done for good.
|
|
331
|
+
if (onFinish)
|
|
332
|
+
scheduleIngressWork(() => finish({
|
|
333
|
+
type: "failed",
|
|
334
|
+
reason: message.background ? "start" : "retry",
|
|
335
|
+
interrupts: [],
|
|
336
|
+
}), { label });
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
// Only a message that waits for its busy thread stays.
|
|
340
|
+
if (!("skipped" in outcome && outcome.skipped === "busy"))
|
|
341
|
+
leaveThreadWaiters(threadId, waiter);
|
|
342
|
+
return outcome;
|
|
343
|
+
}
|
|
344
|
+
/** What follows the first start, in the background. */
|
|
345
|
+
function followUp(outcome) {
|
|
346
|
+
if (!("skipped" in outcome)) {
|
|
347
|
+
scheduleIngressWork(() => deliver(outcome), { label });
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: outcome.skipped })}`);
|
|
351
|
+
const skipped = outcome;
|
|
352
|
+
if (skipped.skipped === "busy")
|
|
353
|
+
scheduleIngressWork(startWhenIdle, { label });
|
|
354
|
+
else if (onFinish)
|
|
355
|
+
scheduleIngressWork(() => finishSkipped(skipped), { label });
|
|
356
|
+
}
|
|
357
|
+
const accepted = () => result.response ??
|
|
358
|
+
Response.json({ status: "accepted", deliveryId }, { status: 202 });
|
|
359
|
+
// Input that may take longer than the provider waits, such as an
|
|
360
|
+
// endpoint's, is decided after it has its answer.
|
|
361
|
+
if (message.background) {
|
|
362
|
+
scheduleIngressWork(async () => {
|
|
363
|
+
const outcome = await startFirst();
|
|
364
|
+
if (outcome)
|
|
365
|
+
followUp(outcome);
|
|
366
|
+
}, { label });
|
|
367
|
+
return accepted();
|
|
368
|
+
}
|
|
369
|
+
const outcome = await startFirst();
|
|
370
|
+
if (!outcome)
|
|
371
|
+
return jsonError(500, "channel run could not be started");
|
|
372
|
+
followUp(outcome);
|
|
373
|
+
return "skipped" in outcome
|
|
374
|
+
? (result.response ??
|
|
375
|
+
Response.json({ status: outcome.skipped }, { status: 202 }))
|
|
376
|
+
: accepted();
|
|
133
377
|
}
|
|
134
378
|
function requestBytes(ctx) {
|
|
135
379
|
if (typeof ctx.rawBody === "string") {
|
|
@@ -150,22 +394,106 @@ function validParseResult(value) {
|
|
|
150
394
|
if (result.rawEvent !== undefined && !isJsonValue(result.rawEvent)) {
|
|
151
395
|
return false;
|
|
152
396
|
}
|
|
153
|
-
return result.type === "ignore" ||
|
|
397
|
+
return (result.type === "ignore" ||
|
|
398
|
+
result.type === "message" ||
|
|
399
|
+
result.type === "cancel");
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Cancel the thread's runs for a `cancel` result, then finish it in the
|
|
403
|
+
* background. Messages waiting here for the thread are dropped too.
|
|
404
|
+
*/
|
|
405
|
+
async function cancelThreadRuns(ctx, adapter, input) {
|
|
406
|
+
// Before the server's cancel, so waiters it wakes see it.
|
|
407
|
+
for (const waiter of threadWaiters.get(input.threadId) ?? [])
|
|
408
|
+
waiter.cancelled = true;
|
|
409
|
+
let cancelled;
|
|
410
|
+
try {
|
|
411
|
+
cancelled = (await cancelHttpIngressRuns({
|
|
412
|
+
userId: input.userId,
|
|
413
|
+
sourceThreadKey: input.sourceThreadKey,
|
|
414
|
+
sourceProvider: ctx.channel.kind,
|
|
415
|
+
threadId: input.threadId,
|
|
416
|
+
})).length;
|
|
417
|
+
}
|
|
418
|
+
catch (error) {
|
|
419
|
+
logger.error(`channel run could not be cancelled (${logger.safeErrorLabel(error)})`);
|
|
420
|
+
return jsonError(500, "channel run could not be cancelled");
|
|
421
|
+
}
|
|
422
|
+
logger.info(`channel runs cancelled ${JSON.stringify({ threadId: input.threadId, cancelled })}`);
|
|
423
|
+
const onFinish = adapter.onFinish?.bind(adapter);
|
|
424
|
+
if (onFinish)
|
|
425
|
+
scheduleIngressWork(async () => {
|
|
426
|
+
try {
|
|
427
|
+
// A thread that waits on a decision still does after the cancel.
|
|
428
|
+
let waitsOn = {
|
|
429
|
+
interrupts: [],
|
|
430
|
+
};
|
|
431
|
+
try {
|
|
432
|
+
waitsOn = await httpIngressThreadWaitsOn({
|
|
433
|
+
userId: input.userId,
|
|
434
|
+
sourceThreadKey: input.sourceThreadKey,
|
|
435
|
+
sourceProvider: ctx.channel.kind,
|
|
436
|
+
threadId: input.threadId,
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
logger.error(`channel thread could not be read (${logger.safeErrorLabel(error)})`);
|
|
441
|
+
}
|
|
442
|
+
await onFinish(immutableCopy(input.target), immutableCopy({
|
|
443
|
+
...input.delivery,
|
|
444
|
+
...(waitsOn.assistantId !== undefined && {
|
|
445
|
+
assistantId: waitsOn.assistantId,
|
|
446
|
+
}),
|
|
447
|
+
type: "skipped",
|
|
448
|
+
reason: "cancel",
|
|
449
|
+
interrupts: waitsOn.interrupts,
|
|
450
|
+
}));
|
|
451
|
+
}
|
|
452
|
+
catch (error) {
|
|
453
|
+
logger.error(`channel finish notice failed (${logger.safeErrorLabel(error)})`);
|
|
454
|
+
}
|
|
455
|
+
}, { label: `channel "${ctx.name}" finish notice` });
|
|
456
|
+
return (input.response ??
|
|
457
|
+
Response.json({ status: "cancelled", cancelled }, { status: 202 }));
|
|
154
458
|
}
|
|
155
|
-
|
|
156
|
-
|
|
459
|
+
const CANCEL_MESSAGE_KEYS = new Set([
|
|
460
|
+
"userId",
|
|
461
|
+
"threadId",
|
|
462
|
+
"target",
|
|
463
|
+
]);
|
|
464
|
+
/** A cancel names a thread and who to tell; it starts nothing. */
|
|
465
|
+
function validateCancelMessage(message) {
|
|
466
|
+
if (!message || typeof message !== "object")
|
|
467
|
+
throw new Error("channel cancel must be an object");
|
|
468
|
+
for (const key of Object.keys(message))
|
|
469
|
+
if (!CANCEL_MESSAGE_KEYS.has(key))
|
|
470
|
+
throw new Error("channel cancel takes only userId, threadId and target");
|
|
471
|
+
validateAddress(message);
|
|
472
|
+
}
|
|
473
|
+
function validateInboundMessage(message, adapterInput) {
|
|
474
|
+
if (message.deliveryKey !== undefined)
|
|
475
|
+
requireNonblank(message.deliveryKey, "channel deliveryKey");
|
|
476
|
+
if (message.background !== undefined &&
|
|
477
|
+
typeof message.background !== "boolean")
|
|
478
|
+
throw new Error("channel background must be a boolean");
|
|
479
|
+
validateAddress(message);
|
|
480
|
+
// The adapter's `input` supplies what a message without content starts.
|
|
481
|
+
if (message.content !== undefined || !adapterInput)
|
|
482
|
+
validateMessageContent(message.content);
|
|
483
|
+
}
|
|
484
|
+
function validateAddress(message) {
|
|
485
|
+
requireNonblank(message.userId, "channel userId");
|
|
157
486
|
if (typeof message.threadId !== "string" ||
|
|
158
487
|
!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(message.threadId)) {
|
|
159
488
|
throw new Error("channel threadId must be a UUID");
|
|
160
489
|
}
|
|
161
490
|
if (!isJsonValue(message.target))
|
|
162
491
|
throw new Error("channel target must be JSON");
|
|
163
|
-
validateMessageContent(message.content);
|
|
164
492
|
}
|
|
165
493
|
function validateMessageContent(content) {
|
|
166
494
|
validateMessage({ type: "content", content });
|
|
167
495
|
if (typeof content === "string") {
|
|
168
|
-
|
|
496
|
+
requireNonblank(content, "channel message content");
|
|
169
497
|
return;
|
|
170
498
|
}
|
|
171
499
|
if (!Array.isArray(content) ||
|
|
@@ -177,13 +505,6 @@ function validateMessageContent(content) {
|
|
|
177
505
|
throw new Error("channel message must contain content blocks");
|
|
178
506
|
}
|
|
179
507
|
}
|
|
180
|
-
function nonblank(value, label) {
|
|
181
|
-
const normalized = value.trim();
|
|
182
|
-
if (!normalized) {
|
|
183
|
-
throw new Error(`${label} must be a non-empty string`);
|
|
184
|
-
}
|
|
185
|
-
return normalized;
|
|
186
|
-
}
|
|
187
508
|
function jsonError(status, message) {
|
|
188
509
|
return Response.json({ error: message }, { status });
|
|
189
510
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAyB,EACzB,OAA2B;IAE3B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,SAAS,cAAc;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,gCAAgC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAC/D,KAAK,CACN,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAA8B,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,CACL,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC;QACH,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe;QACf,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO,CAAC,OAAO;iBACM;aACjC;SACF;QACD,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,QAAQ;QACnB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;QACR,eAAe;QACf,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QAChC,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,WAAW;KACZ,CAAC;IACF,IAAI,OAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,qCAAqC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EACpE,KAAK,CACN,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,mBAAmB,CACjB,KAAK,IAAI,EAAE;QACT,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;gBAC/C,GAAG,KAAK;gBACR,GAAG,OAAO;aACX,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,SAAkB;gBACxB,OAAO,EAAE,UAAU,CAAC,YAAY;aACjC,CAAC;YACF,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,cAAc,GAAG,IAAI,CAAC;YACtB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,4BAA4B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAC3D,KAAK,CACN,CAAC;YACF,IAAI,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACnC,MAAM,IAAI,CACR,aAAa,CAAC;wBACZ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,qDAAqD;wBAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,CAAC,KAAK,CACV,iBAAiB,MAAM,YAAY,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EACvE,UAAU,CACX,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,IAAI,YAAY,EAAE,CAC5C,CAAC;IAEF,OAAO,CACL,MAAM,CAAC,QAAQ;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAyB;IAC7C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAId,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,YAAY,QAAQ,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAkC;IAChE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QACpC,CAAC,iEAAiE,CAAC,IAAI,CACrE,OAAO,CAAC,QAAQ,CACjB,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAuB;IACrD,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,OAAe;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { HttpChannelAdapter } from "./types.js";
|
|
2
2
|
import { type Channel } from "../../runtime/channel.js";
|
|
3
|
-
export type { HttpChannelAdapter, HttpChannelInboundMessage, HttpChannelParseResult, HttpChannelRequest, HttpChannelPostInput, HttpPostedMessage, } from "./types.js";
|
|
3
|
+
export type { HttpChannelAdapter, HttpChannelCancelMessage, HttpChannelInboundMessage, HttpChannelParseResult, HttpChannelRequest, HttpChannelPostInput, HttpDelivery, HttpFinish, HttpFinishedDelivery, HttpFinishedRun, HttpPostedMessage, HttpRunStatus, HttpSkipReason, } from "./types.js";
|
|
4
|
+
export { channelThreadId } from "./threads.js";
|
|
4
5
|
export type HttpChannel = Channel & {
|
|
5
6
|
readonly kind: string;
|
|
6
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAM9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAyCpE"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { immutableCopy } from "../runtime.js";
|
|
2
2
|
import { handleHttpRequest } from "./http.js";
|
|
3
|
+
import { MULTITASK_STRATEGIES } from "../../ingress/runs.js";
|
|
3
4
|
import { CHANNEL_BRAND, } from "../../runtime/channel.js";
|
|
5
|
+
import { requireNonblank } from "../../values.js";
|
|
6
|
+
import { CHANNEL_REPLIES } from "../types.js";
|
|
7
|
+
export { channelThreadId } from "./threads.js";
|
|
8
|
+
const STRATEGIES = new Set(Object.values(MULTITASK_STRATEGIES));
|
|
4
9
|
export function httpChannel(adapter) {
|
|
5
|
-
const provider =
|
|
10
|
+
const provider = requireNonblank(adapter.provider, "channels.http provider");
|
|
11
|
+
if (adapter.multitaskStrategy !== undefined &&
|
|
12
|
+
!STRATEGIES.has(adapter.multitaskStrategy))
|
|
13
|
+
throw new TypeError("channel multitaskStrategy must be enqueue, interrupt, rollback or reject");
|
|
14
|
+
if (adapter.reply !== undefined && !CHANNEL_REPLIES.includes(adapter.reply))
|
|
15
|
+
throw new TypeError("channel reply must be auto or none");
|
|
6
16
|
const channel = { kind: provider };
|
|
7
17
|
hide(channel, CHANNEL_BRAND, true);
|
|
18
|
+
hide(channel, "reply", adapter.reply ?? "auto");
|
|
8
19
|
hide(channel, "events", (ctx) => handleHttpRequest(ctx, adapter));
|
|
9
20
|
const post = adapter.post?.bind(adapter);
|
|
10
21
|
if (post) {
|
|
@@ -20,20 +31,13 @@ export function httpChannel(adapter) {
|
|
|
20
31
|
name,
|
|
21
32
|
provider,
|
|
22
33
|
eventsPath: `/channels/${name}/events`,
|
|
23
|
-
autoReply: post !== undefined,
|
|
34
|
+
autoReply: post !== undefined && adapter.reply !== "none",
|
|
24
35
|
requiredPermissions: [],
|
|
25
36
|
requiredEnv: [],
|
|
26
|
-
providerConfig: {},
|
|
37
|
+
providerConfig: immutableCopy(adapter.providerConfig ?? {}),
|
|
27
38
|
}));
|
|
28
39
|
return channel;
|
|
29
40
|
}
|
|
30
|
-
function nonblank(value, label) {
|
|
31
|
-
const normalized = value.trim();
|
|
32
|
-
if (!normalized) {
|
|
33
|
-
throw new Error(`${label} must be a non-empty string`);
|
|
34
|
-
}
|
|
35
|
-
return normalized;
|
|
36
|
-
}
|
|
37
41
|
function hide(target, key, value) {
|
|
38
42
|
Object.defineProperty(target, key, { value, enumerable: false });
|
|
39
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkB9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,UAAU,GAAyB,IAAI,GAAG,CAC9C,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CACpC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAC7E,IACE,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAE1C,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAC;IACJ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAyB,EAAE,EAAE,CACpD,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAChC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAA4B,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACvC,IAAI,CACF,aAAa,CAAC;gBACZ,GAAG,OAAO;gBACV,MAAM;gBACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;aAClD,CAAC,CACH;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,aAAa,IAAI,SAAS;QACtC,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QACzD,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;KAC5D,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC"}
|