managed-deepagents 0.10.0-dev.16 → 0.10.0-dev.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +809 -71
- 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 +29 -0
- package/dist/channels/assistant-text.d.ts.map +1 -1
- package/dist/channels/assistant-text.js +72 -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.map +1 -1
- package/dist/channels/github/connections.js +2 -2
- package/dist/channels/github/connections.js.map +1 -1
- package/dist/channels/github/index.d.ts +1 -8
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +46 -139
- package/dist/channels/github/index.js.map +1 -1
- 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 +271 -0
- package/dist/channels/github/schema.d.ts.map +1 -1
- package/dist/channels/github/schema.js +34 -3
- package/dist/channels/github/schema.js.map +1 -1
- package/dist/channels/github/types.d.ts +57 -4
- package/dist/channels/github/types.d.ts.map +1 -1
- 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 +322 -86
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +1 -1
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +10 -16
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +40 -5
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +63 -40
- 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/types.d.ts +107 -7
- 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 +2 -2
- package/dist/channels/reserved-connections.d.ts.map +1 -1
- package/dist/channels/reserved-connections.js +36 -9
- package/dist/channels/reserved-connections.js.map +1 -1
- package/dist/channels/run-input.d.ts +35 -2
- package/dist/channels/run-input.d.ts.map +1 -1
- package/dist/channels/run-input.js +74 -14
- package/dist/channels/run-input.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 +9 -20
- 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 +4 -9
- 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 +310 -71
- package/dist/channels/trigger/http.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 -1
- 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 +5 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +14 -1
- package/dist/connections.js.map +1 -1
- package/dist/index.d.ts +13 -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/runs.d.ts +32 -1
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +85 -5
- 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/namespaces.d.ts +15 -21
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +2 -29
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/auth.d.ts +1 -2
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +94 -48
- 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/identity-http.d.ts +2 -0
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +35 -0
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +4 -9
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +12 -25
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +32 -21
- package/dist/runtime/index.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 -2
- package/dist/runtime/managed-tools.d.ts.map +1 -1
- package/dist/runtime/managed-tools.js +10 -8
- package/dist/runtime/managed-tools.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 +48 -2
- package/dist/runtime/run-input.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +1 -1
- 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/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 +83 -20
- 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/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 +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/github/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/github/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E,4EAA4E;AAC5E,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IACrE,OAAO,CAAC,UAAU,EAAE;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAClC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,iBAAiB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE3E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAC7D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,mBAAmB,KACxB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,EAAE;SACP,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,aAAa;KAClE,CAAC;IACF;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC3D;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;CAC9D;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IAC7C,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ChannelRunResult } from "../run-input.js";
|
|
3
|
+
/**
|
|
4
|
+
* The deployment's env var holding the secret it shares with your services:
|
|
5
|
+
* every event endpoint request is signed with it, as Standard Webhooks does.
|
|
6
|
+
* Several, separated by whitespace or commas, each sign the request, for
|
|
7
|
+
* rotation.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SERVICE_SECRET_ENV = "MDA_SERVICE_SECRET";
|
|
10
|
+
/**
|
|
11
|
+
* Where an `onEvent` key's events go when a service of yours decides what
|
|
12
|
+
* they start: its URL, or a `Request` that also carries headers, such as a
|
|
13
|
+
* credential the service checks. See {@link endpointHandler}.
|
|
14
|
+
*/
|
|
15
|
+
export type EventEndpoint = string | URL | Request;
|
|
16
|
+
/** The key a Standard Webhooks secret stands for; a malformed one throws. */
|
|
17
|
+
export declare function signingKey(secret: string): Buffer;
|
|
18
|
+
/**
|
|
19
|
+
* The Standard Webhooks headers that sign one request with `keys`: none
|
|
20
|
+
* without a key. Each key signs `<id>.<timestamp>.<body>`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function signatureHeaders(keys: readonly Buffer[], id: string, timestamp: number, body: string): Record<string, string>;
|
|
23
|
+
/** A channel's event, by the fields every endpoint is sent. */
|
|
24
|
+
type ChannelEvent = {
|
|
25
|
+
key: string;
|
|
26
|
+
deliveryId: string;
|
|
27
|
+
payload: unknown;
|
|
28
|
+
};
|
|
29
|
+
/** The fields of an event every endpoint is sent. */
|
|
30
|
+
declare const EVENT_FIELDS: readonly ["key", "deliveryId", "payload"];
|
|
31
|
+
/** A field any of a union of events has, such as a field of one kind only. */
|
|
32
|
+
export type EventField<E> = E extends unknown ? keyof E : never;
|
|
33
|
+
/**
|
|
34
|
+
* The event a channel sends its endpoint: the event key, the provider's
|
|
35
|
+
* delivery ID and its payload, and the channel's own fields `X`, such as
|
|
36
|
+
* GitHub's `repository` and `mentions`. A channel's own fields are optional,
|
|
37
|
+
* so a receiver takes requests from a deployment that sends fewer. For a
|
|
38
|
+
* union of events, each is typed by the key, with the fields of `X` it has.
|
|
39
|
+
*/
|
|
40
|
+
export type EndpointEvent<E extends ChannelEvent = ChannelEvent, X extends PropertyKey = never> = E extends unknown ? Pick<E, (typeof EVENT_FIELDS)[number]> & Partial<Pick<E, Extract<X, keyof E>>> : never;
|
|
41
|
+
/** The conversation's thread an endpoint request is about. */
|
|
42
|
+
export interface EndpointThread {
|
|
43
|
+
/** The thread the run starts on, or that waits on an interrupt. */
|
|
44
|
+
id: string;
|
|
45
|
+
channel: {
|
|
46
|
+
name: string;
|
|
47
|
+
};
|
|
48
|
+
/** Set when the thread waits on an interrupt: no run starts, whatever the answer. */
|
|
49
|
+
interrupted?: true;
|
|
50
|
+
}
|
|
51
|
+
/** What a channel POSTs its endpoint: the event, and the thread it belongs to. */
|
|
52
|
+
export interface EndpointRequest<E extends ChannelEvent = ChannelEvent, X extends PropertyKey = never> {
|
|
53
|
+
event: EndpointEvent<E, X>;
|
|
54
|
+
thread: EndpointThread;
|
|
55
|
+
}
|
|
56
|
+
declare const answerSchema: z.ZodObject<{
|
|
57
|
+
input: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodCustom<import("../types.js").JsonValue, import("../types.js").JsonValue>>]>;
|
|
58
|
+
context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodCustom<import("../types.js").JsonValue, import("../types.js").JsonValue>>>;
|
|
59
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodCustom<import("../types.js").JsonValue, import("../types.js").JsonValue>>>;
|
|
60
|
+
webhook: z.ZodOptional<z.ZodString>;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
/**
|
|
63
|
+
* What an endpoint answers: the run's input, as a handler returns it (text,
|
|
64
|
+
* or state such as `{ messages }`), with the run options a handler may set,
|
|
65
|
+
* all JSON. An endpoint answers `null` (or HTTP 204) instead to start nothing.
|
|
66
|
+
* The channel checks an answer against the same schema.
|
|
67
|
+
*/
|
|
68
|
+
export type EndpointAnswer = z.infer<typeof answerSchema>;
|
|
69
|
+
/** The handler an endpoint stands for; see {@link endpointHandler}. */
|
|
70
|
+
export type EndpointCallback<E extends ChannelEvent = ChannelEvent> = (event: E, thread: EndpointThread) => Promise<ChannelRunResult | null>;
|
|
71
|
+
/** Whether a handler is one an endpoint stands for. */
|
|
72
|
+
export declare function isEndpointCallback(handler: unknown): boolean;
|
|
73
|
+
/** Whether an `onEvent` value is an endpoint rather than a handler function. */
|
|
74
|
+
export declare function isEventEndpoint(value: unknown): value is EventEndpoint;
|
|
75
|
+
/**
|
|
76
|
+
* The handler an endpoint stands for. When the event's thread takes a turn,
|
|
77
|
+
* MDA POSTs `{ event: { key, deliveryId, payload }, thread: { id, channel,
|
|
78
|
+
* interrupted? } }` as JSON to the endpoint's URL, with the event's `fields`,
|
|
79
|
+
* the channel's own, beside the payload, and a `Request`'s headers,
|
|
80
|
+
* signed when the deployment has `MDA_SERVICE_SECRET`, and starts the
|
|
81
|
+
* run the service answers with: `{ input, context?, metadata?, webhook? }`.
|
|
82
|
+
* `null` or HTTP 204 starts nothing. A network error before the answer, HTTP
|
|
83
|
+
* 429 or a 5xx is tried again, up to three attempts. Any other answer, one cut
|
|
84
|
+
* off, a redirect, or no answer within 60 seconds fails the handler, as a
|
|
85
|
+
* handler that throws does.
|
|
86
|
+
* The URL is https, or http to a loopback host for local development, without
|
|
87
|
+
* credentials in it.
|
|
88
|
+
*
|
|
89
|
+
* The webhook ID is `msg_<deliveryId>` for the call that starts the run, and
|
|
90
|
+
* `msg_<deliveryId>_interrupted` for the one that asks whether to tell the
|
|
91
|
+
* conversation its thread waits on a decision.
|
|
92
|
+
*/
|
|
93
|
+
export declare function endpointHandler<E extends ChannelEvent = ChannelEvent, X extends EventField<E> & string = never>(endpoint: EventEndpoint, label: string, fields?: readonly X[]): EndpointCallback<E>;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/channels/http/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event endpoints: an `onEvent` value that is a URL or a `Request` rather than
|
|
3
|
+
* a function. MDA asks that service of yours what the event starts, for logic
|
|
4
|
+
* that lives outside the deployment.
|
|
5
|
+
*/
|
|
6
|
+
import { createHmac } from "node:crypto";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { jsonValueSchema } from "../message-schema.js";
|
|
9
|
+
/** How long the service may take to answer one attempt. */
|
|
10
|
+
const TIMEOUT_MS = 60_000;
|
|
11
|
+
/**
|
|
12
|
+
* The pauses before trying again after a network error, HTTP 429 or a 5xx:
|
|
13
|
+
* three attempts in all, each with the same webhook ID, so a receiver that
|
|
14
|
+
* dedupes on it acts once.
|
|
15
|
+
*/
|
|
16
|
+
const RETRY_DELAYS_MS = [1_000, 5_000];
|
|
17
|
+
/** The largest answer read; run input may carry images. */
|
|
18
|
+
const MAX_RESPONSE_BYTES = 10 * 1024 * 1024;
|
|
19
|
+
const ANSWER_SHAPE = "event endpoint answer must be null or { input, context?, metadata?, webhook? }";
|
|
20
|
+
/**
|
|
21
|
+
* The deployment's env var holding the secret it shares with your services:
|
|
22
|
+
* every event endpoint request is signed with it, as Standard Webhooks does.
|
|
23
|
+
* Several, separated by whitespace or commas, each sign the request, for
|
|
24
|
+
* rotation.
|
|
25
|
+
*/
|
|
26
|
+
export const SERVICE_SECRET_ENV = "MDA_SERVICE_SECRET";
|
|
27
|
+
/** Standard Webhooks' optional secret prefix. */
|
|
28
|
+
const SECRET_PREFIX = "whsec_";
|
|
29
|
+
/** The key sizes Standard Webhooks allows, in bytes. */
|
|
30
|
+
const MIN_KEY_BYTES = 24;
|
|
31
|
+
const MAX_KEY_BYTES = 64;
|
|
32
|
+
const SECRET_SHAPE = `${SERVICE_SECRET_ENV} must hold Standard Webhooks secrets: padded base64 of 24 to 64 bytes, optionally prefixed with whsec_`;
|
|
33
|
+
let cachedKeys;
|
|
34
|
+
/** The signing keys `MDA_SERVICE_SECRET` holds; none when it's unset. */
|
|
35
|
+
function signingKeys() {
|
|
36
|
+
const secrets = process.env[SERVICE_SECRET_ENV]?.trim() ?? "";
|
|
37
|
+
if (cachedKeys?.secrets !== secrets)
|
|
38
|
+
cachedKeys = {
|
|
39
|
+
secrets,
|
|
40
|
+
// Stray separators, as rotation leaves behind, name no secret.
|
|
41
|
+
keys: secrets
|
|
42
|
+
.split(/[\s,]+/)
|
|
43
|
+
.filter(Boolean)
|
|
44
|
+
.map(signingKey),
|
|
45
|
+
};
|
|
46
|
+
return cachedKeys.keys;
|
|
47
|
+
}
|
|
48
|
+
/** The key a Standard Webhooks secret stands for; a malformed one throws. */
|
|
49
|
+
export function signingKey(secret) {
|
|
50
|
+
const encoded = secret.startsWith(SECRET_PREFIX)
|
|
51
|
+
? secret.slice(SECRET_PREFIX.length)
|
|
52
|
+
: secret;
|
|
53
|
+
// Buffer.from skips characters that aren't base64 and missing padding; the
|
|
54
|
+
// round trip refuses both, as Standard Webhooks libraries' decoders do.
|
|
55
|
+
const key = Buffer.from(encoded, "base64");
|
|
56
|
+
if (!encoded ||
|
|
57
|
+
key.toString("base64") !== encoded ||
|
|
58
|
+
key.byteLength < MIN_KEY_BYTES ||
|
|
59
|
+
key.byteLength > MAX_KEY_BYTES)
|
|
60
|
+
throw new TypeError(SECRET_SHAPE);
|
|
61
|
+
return key;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The Standard Webhooks headers that sign one request with `keys`: none
|
|
65
|
+
* without a key. Each key signs `<id>.<timestamp>.<body>`.
|
|
66
|
+
*/
|
|
67
|
+
export function signatureHeaders(keys, id, timestamp, body) {
|
|
68
|
+
if (!keys.length)
|
|
69
|
+
return {};
|
|
70
|
+
const signed = `${id}.${timestamp}.${body}`;
|
|
71
|
+
return {
|
|
72
|
+
"webhook-id": id,
|
|
73
|
+
"webhook-timestamp": String(timestamp),
|
|
74
|
+
"webhook-signature": keys
|
|
75
|
+
.map((key) => `v1,${createHmac("sha256", key).update(signed).digest("base64")}`)
|
|
76
|
+
.join(" "),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/** The fields of an event every endpoint is sent. */
|
|
80
|
+
const EVENT_FIELDS = ["key", "deliveryId", "payload"];
|
|
81
|
+
const answerSchema = z.strictObject({
|
|
82
|
+
/**
|
|
83
|
+
* The run's input: text, or state such as `{ messages }`. Never an array,
|
|
84
|
+
* which a handler's `[input, options]` would be read as.
|
|
85
|
+
*/
|
|
86
|
+
input: z.union([z.string(), z.record(z.string(), jsonValueSchema)]),
|
|
87
|
+
/** Run context, as `agent.invoke(input, { context })` takes it. */
|
|
88
|
+
context: z.record(z.string(), jsonValueSchema).optional(),
|
|
89
|
+
/** Metadata for the run; see `ChannelRunOptions`. */
|
|
90
|
+
metadata: z.record(z.string(), jsonValueSchema).optional(),
|
|
91
|
+
/** A URL the Agent Server POSTs the finished run to; see `ChannelRunOptions`. */
|
|
92
|
+
webhook: z.string().optional(),
|
|
93
|
+
});
|
|
94
|
+
/** The handlers endpoints stand for, so a channel knows to answer first. */
|
|
95
|
+
const endpointCallbacks = new WeakSet();
|
|
96
|
+
/** Whether a handler is one an endpoint stands for. */
|
|
97
|
+
export function isEndpointCallback(handler) {
|
|
98
|
+
return typeof handler === "function" && endpointCallbacks.has(handler);
|
|
99
|
+
}
|
|
100
|
+
/** Whether an `onEvent` value is an endpoint rather than a handler function. */
|
|
101
|
+
export function isEventEndpoint(value) {
|
|
102
|
+
return (typeof value === "string" ||
|
|
103
|
+
value instanceof URL ||
|
|
104
|
+
value instanceof Request);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The handler an endpoint stands for. When the event's thread takes a turn,
|
|
108
|
+
* MDA POSTs `{ event: { key, deliveryId, payload }, thread: { id, channel,
|
|
109
|
+
* interrupted? } }` as JSON to the endpoint's URL, with the event's `fields`,
|
|
110
|
+
* the channel's own, beside the payload, and a `Request`'s headers,
|
|
111
|
+
* signed when the deployment has `MDA_SERVICE_SECRET`, and starts the
|
|
112
|
+
* run the service answers with: `{ input, context?, metadata?, webhook? }`.
|
|
113
|
+
* `null` or HTTP 204 starts nothing. A network error before the answer, HTTP
|
|
114
|
+
* 429 or a 5xx is tried again, up to three attempts. Any other answer, one cut
|
|
115
|
+
* off, a redirect, or no answer within 60 seconds fails the handler, as a
|
|
116
|
+
* handler that throws does.
|
|
117
|
+
* The URL is https, or http to a loopback host for local development, without
|
|
118
|
+
* credentials in it.
|
|
119
|
+
*
|
|
120
|
+
* The webhook ID is `msg_<deliveryId>` for the call that starts the run, and
|
|
121
|
+
* `msg_<deliveryId>_interrupted` for the one that asks whether to tell the
|
|
122
|
+
* conversation its thread waits on a decision.
|
|
123
|
+
*/
|
|
124
|
+
export function endpointHandler(endpoint, label, fields = []) {
|
|
125
|
+
const template = endpoint instanceof Request ? endpoint : undefined;
|
|
126
|
+
const target = endpointUrl(template ? template.url : String(endpoint), label);
|
|
127
|
+
// A malformed secret throws when the channel is declared, not on each event.
|
|
128
|
+
signingKeys();
|
|
129
|
+
const baseHeaders = new Headers(template?.headers);
|
|
130
|
+
baseHeaders.set("content-type", "application/json");
|
|
131
|
+
baseHeaders.set("accept", "application/json");
|
|
132
|
+
const sent = [...EVENT_FIELDS, ...fields];
|
|
133
|
+
const callback = async (event, thread) => {
|
|
134
|
+
const request = {
|
|
135
|
+
event: pick(event, sent),
|
|
136
|
+
thread: {
|
|
137
|
+
id: thread.id,
|
|
138
|
+
channel: { name: thread.channel.name },
|
|
139
|
+
...(thread.interrupted && { interrupted: true }),
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
// The exact bytes sent are the ones signed.
|
|
143
|
+
const body = JSON.stringify(request);
|
|
144
|
+
const id = `msg_${event.deliveryId}${thread.interrupted ? "_interrupted" : ""}`;
|
|
145
|
+
for (let attempt = 0;; attempt++) {
|
|
146
|
+
const response = await post(target, baseHeaders, id, body).catch((error) => {
|
|
147
|
+
// A timeout isn't tried again: the service may still be acting on it.
|
|
148
|
+
if (attempt < RETRY_DELAYS_MS.length && !isTimeout(error))
|
|
149
|
+
return undefined;
|
|
150
|
+
throw error;
|
|
151
|
+
});
|
|
152
|
+
if (response?.status === 204) {
|
|
153
|
+
await response.body?.cancel();
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
if (response?.ok)
|
|
157
|
+
return runResult(await boundedJson(response));
|
|
158
|
+
await response?.body?.cancel();
|
|
159
|
+
if (response &&
|
|
160
|
+
(attempt >= RETRY_DELAYS_MS.length || !retried(response.status)))
|
|
161
|
+
throw new Error(`event endpoint answered HTTP ${response.status}`);
|
|
162
|
+
await sleep(RETRY_DELAYS_MS[attempt]);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
endpointCallbacks.add(callback);
|
|
166
|
+
return callback;
|
|
167
|
+
}
|
|
168
|
+
/** The event's `fields`; an absent one stays absent. */
|
|
169
|
+
function pick(event, fields) {
|
|
170
|
+
const picked = {};
|
|
171
|
+
for (const field of fields)
|
|
172
|
+
if (event[field] !== undefined)
|
|
173
|
+
picked[field] = event[field];
|
|
174
|
+
// Every field of `EVENT_FIELDS` is one of `fields`.
|
|
175
|
+
return picked;
|
|
176
|
+
}
|
|
177
|
+
/** One attempt, signed afresh: Standard Webhooks timestamps each. */
|
|
178
|
+
function post(target, baseHeaders, id, body) {
|
|
179
|
+
const headers = new Headers(baseHeaders);
|
|
180
|
+
const signature = signatureHeaders(signingKeys(), id, Math.floor(Date.now() / 1000), body);
|
|
181
|
+
for (const [name, value] of Object.entries(signature))
|
|
182
|
+
headers.set(name, value);
|
|
183
|
+
return fetch(target, {
|
|
184
|
+
method: "POST",
|
|
185
|
+
headers,
|
|
186
|
+
body,
|
|
187
|
+
redirect: "manual",
|
|
188
|
+
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/** Whether an answer's status is worth trying again. */
|
|
192
|
+
function retried(status) {
|
|
193
|
+
return status === 429 || status >= 500;
|
|
194
|
+
}
|
|
195
|
+
function isTimeout(error) {
|
|
196
|
+
return error instanceof DOMException && error.name === "TimeoutError";
|
|
197
|
+
}
|
|
198
|
+
function sleep(ms) {
|
|
199
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* The endpoint's URL. Plain http only reaches a loopback host: the answer
|
|
203
|
+
* isn't signed, so anyone on the path could write the run's input otherwise.
|
|
204
|
+
*/
|
|
205
|
+
function endpointUrl(url, label) {
|
|
206
|
+
let parsed;
|
|
207
|
+
try {
|
|
208
|
+
parsed = new URL(url);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
parsed = undefined;
|
|
212
|
+
}
|
|
213
|
+
if (!parsed ||
|
|
214
|
+
!(parsed.protocol === "https:" ||
|
|
215
|
+
(parsed.protocol === "http:" && isLoopback(parsed.hostname))) ||
|
|
216
|
+
parsed.username ||
|
|
217
|
+
parsed.password)
|
|
218
|
+
throw new TypeError(`${label} must be an absolute https URL, or http to localhost, without credentials in it`);
|
|
219
|
+
return parsed.href;
|
|
220
|
+
}
|
|
221
|
+
/** Whether a URL's hostname is this machine. */
|
|
222
|
+
function isLoopback(hostname) {
|
|
223
|
+
return (hostname === "localhost" ||
|
|
224
|
+
hostname.endsWith(".localhost") ||
|
|
225
|
+
hostname === "[::1]" ||
|
|
226
|
+
/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(hostname));
|
|
227
|
+
}
|
|
228
|
+
/** The answer as JSON, read only up to `MAX_RESPONSE_BYTES`. */
|
|
229
|
+
async function boundedJson(response) {
|
|
230
|
+
const declared = Number(response.headers.get("content-length"));
|
|
231
|
+
if (declared > MAX_RESPONSE_BYTES) {
|
|
232
|
+
await response.body?.cancel();
|
|
233
|
+
throw new Error("event endpoint answer is too large");
|
|
234
|
+
}
|
|
235
|
+
const reader = response.body?.getReader();
|
|
236
|
+
const chunks = [];
|
|
237
|
+
let size = 0;
|
|
238
|
+
for (;;) {
|
|
239
|
+
const chunk = await reader?.read();
|
|
240
|
+
if (!chunk || chunk.done)
|
|
241
|
+
break;
|
|
242
|
+
size += chunk.value.byteLength;
|
|
243
|
+
if (size > MAX_RESPONSE_BYTES) {
|
|
244
|
+
await reader?.cancel();
|
|
245
|
+
throw new Error("event endpoint answer is too large");
|
|
246
|
+
}
|
|
247
|
+
chunks.push(chunk.value);
|
|
248
|
+
}
|
|
249
|
+
const text = new TextDecoder().decode(chunks.length === 1 ? chunks[0] : concat(chunks, size));
|
|
250
|
+
try {
|
|
251
|
+
return JSON.parse(text);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
throw new Error("event endpoint answer is not JSON");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
function concat(chunks, size) {
|
|
258
|
+
const joined = new Uint8Array(size);
|
|
259
|
+
let offset = 0;
|
|
260
|
+
for (const chunk of chunks) {
|
|
261
|
+
joined.set(chunk, offset);
|
|
262
|
+
offset += chunk.byteLength;
|
|
263
|
+
}
|
|
264
|
+
return joined;
|
|
265
|
+
}
|
|
266
|
+
/** The run the answer names; the channel checks the input and options as a handler's. */
|
|
267
|
+
function runResult(body) {
|
|
268
|
+
const parsed = answerSchema.nullable().safeParse(body);
|
|
269
|
+
if (!parsed.success)
|
|
270
|
+
throw new Error(ANSWER_SHAPE);
|
|
271
|
+
if (parsed.data === null)
|
|
272
|
+
return null;
|
|
273
|
+
const { input, ...options } = parsed.data;
|
|
274
|
+
return [input, options];
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/channels/http/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAyCrE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,oBAAoB,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CA4YnB"}
|