managed-deepagents 0.10.0-dev.6 → 0.10.0-dev.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +100 -58
  2. package/dist/channels/github/connections.d.ts.map +1 -1
  3. package/dist/channels/github/connections.js +2 -2
  4. package/dist/channels/github/connections.js.map +1 -1
  5. package/dist/channels/github/index.d.ts +1 -1
  6. package/dist/channels/github/index.d.ts.map +1 -1
  7. package/dist/channels/github/index.js +52 -93
  8. package/dist/channels/github/index.js.map +1 -1
  9. package/dist/channels/github/schema.d.ts.map +1 -1
  10. package/dist/channels/github/schema.js +1 -3
  11. package/dist/channels/github/schema.js.map +1 -1
  12. package/dist/channels/github/types.d.ts +38 -10
  13. package/dist/channels/github/types.d.ts.map +1 -1
  14. package/dist/channels/http/forward.d.ts +13 -0
  15. package/dist/channels/http/forward.d.ts.map +1 -0
  16. package/dist/channels/http/forward.js +128 -0
  17. package/dist/channels/http/forward.js.map +1 -0
  18. package/dist/channels/http/http.d.ts.map +1 -1
  19. package/dist/channels/http/http.js +94 -95
  20. package/dist/channels/http/http.js.map +1 -1
  21. package/dist/channels/http/index.d.ts +1 -1
  22. package/dist/channels/http/index.d.ts.map +1 -1
  23. package/dist/channels/http/index.js +9 -0
  24. package/dist/channels/http/index.js.map +1 -1
  25. package/dist/channels/http/ingress.d.ts +26 -11
  26. package/dist/channels/http/ingress.d.ts.map +1 -1
  27. package/dist/channels/http/ingress.js +19 -34
  28. package/dist/channels/http/ingress.js.map +1 -1
  29. package/dist/channels/http/provider.d.ts +83 -0
  30. package/dist/channels/http/provider.d.ts.map +1 -0
  31. package/dist/channels/http/provider.js +176 -0
  32. package/dist/channels/http/provider.js.map +1 -0
  33. package/dist/channels/http/studio.d.ts +7 -5
  34. package/dist/channels/http/studio.d.ts.map +1 -1
  35. package/dist/channels/http/studio.js +12 -12
  36. package/dist/channels/http/studio.js.map +1 -1
  37. package/dist/channels/http/types.d.ts +53 -15
  38. package/dist/channels/http/types.d.ts.map +1 -1
  39. package/dist/channels/linear/connections.d.ts.map +1 -1
  40. package/dist/channels/linear/connections.js +2 -2
  41. package/dist/channels/linear/connections.js.map +1 -1
  42. package/dist/channels/linear/graphql.d.ts +5 -17
  43. package/dist/channels/linear/graphql.d.ts.map +1 -1
  44. package/dist/channels/linear/graphql.js +55 -57
  45. package/dist/channels/linear/graphql.js.map +1 -1
  46. package/dist/channels/linear/index.d.ts +1 -1
  47. package/dist/channels/linear/index.d.ts.map +1 -1
  48. package/dist/channels/linear/index.js +162 -160
  49. package/dist/channels/linear/index.js.map +1 -1
  50. package/dist/channels/linear/schema.d.ts +173 -144
  51. package/dist/channels/linear/schema.d.ts.map +1 -1
  52. package/dist/channels/linear/schema.js +45 -12
  53. package/dist/channels/linear/schema.js.map +1 -1
  54. package/dist/channels/linear/types.d.ts +42 -21
  55. package/dist/channels/linear/types.d.ts.map +1 -1
  56. package/dist/channels/message-schema.d.ts +2 -0
  57. package/dist/channels/message-schema.d.ts.map +1 -1
  58. package/dist/channels/message-schema.js +4 -0
  59. package/dist/channels/message-schema.js.map +1 -1
  60. package/dist/channels/run-input.d.ts +3 -9
  61. package/dist/channels/run-input.d.ts.map +1 -1
  62. package/dist/channels/run-input.js +7 -17
  63. package/dist/channels/run-input.js.map +1 -1
  64. package/dist/channels/trigger/client.js +7 -3
  65. package/dist/channels/trigger/client.js.map +1 -1
  66. package/dist/channels/trigger/http.d.ts.map +1 -1
  67. package/dist/channels/trigger/http.js +6 -3
  68. package/dist/channels/trigger/http.js.map +1 -1
  69. package/dist/channels/trigger/tracing-project.d.ts +16 -0
  70. package/dist/channels/trigger/tracing-project.d.ts.map +1 -0
  71. package/dist/channels/trigger/tracing-project.js +54 -0
  72. package/dist/channels/trigger/tracing-project.js.map +1 -0
  73. package/dist/channels/trigger/types.d.ts +6 -0
  74. package/dist/channels/trigger/types.d.ts.map +1 -1
  75. package/dist/channels/trigger/types.js.map +1 -1
  76. package/dist/connections.d.ts +6 -0
  77. package/dist/connections.d.ts.map +1 -1
  78. package/dist/connections.js +27 -0
  79. package/dist/connections.js.map +1 -1
  80. package/dist/connectors/mcp/index.d.ts.map +1 -1
  81. package/dist/connectors/mcp/index.js +52 -2
  82. package/dist/connectors/mcp/index.js.map +1 -1
  83. package/dist/credential-gate.d.ts.map +1 -1
  84. package/dist/credential-gate.js +13 -3
  85. package/dist/credential-gate.js.map +1 -1
  86. package/dist/identity/options.d.ts +0 -9
  87. package/dist/identity/options.d.ts.map +1 -1
  88. package/dist/identity/options.js +1 -6
  89. package/dist/identity/options.js.map +1 -1
  90. package/dist/identity/types.d.ts +0 -6
  91. package/dist/identity/types.d.ts.map +1 -1
  92. package/dist/index.d.ts +3 -3
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/ingress/runs.d.ts +2 -4
  96. package/dist/ingress/runs.d.ts.map +1 -1
  97. package/dist/ingress/runs.js +5 -6
  98. package/dist/ingress/runs.js.map +1 -1
  99. package/dist/runtime/auth.d.ts +0 -9
  100. package/dist/runtime/auth.d.ts.map +1 -1
  101. package/dist/runtime/auth.js +2 -55
  102. package/dist/runtime/auth.js.map +1 -1
  103. package/dist/runtime/schedule-auth.d.ts +1 -1
  104. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  105. package/dist/runtime/schedule-auth.js +12 -4
  106. package/dist/runtime/schedule-auth.js.map +1 -1
  107. package/dist/runtime-schedules.js +6 -6
  108. package/dist/runtime-schedules.js.map +1 -1
  109. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/channels/github/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/channels/github/schema.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { nonblankStringSchema } from "../message-schema.js";
2
3
  // Shared scalar constraints. Dispatch IDs are positive safe integers.
3
- const nonblankStringSchema = z
4
- .string()
5
- .refine((value) => value.trim().length > 0);
6
4
  const nullableTextSchema = z.string().nullable();
7
5
  export const githubIdentifierSchema = z.number().int().positive();
8
6
  /** Receipt metadata only, not a complete GitHub event payload specification. */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/channels/github/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/channels/github/schema.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { z } from "zod";
2
2
  import type { MultitaskStrategy } from "../../ingress/runs.js";
3
3
  import type { githubEventSchema } from "./schema.js";
4
4
  import type { ChannelRunResult } from "../run-input.js";
5
+ import type { EventForward } from "../http/provider.js";
5
6
  /** Handwritten schema subsets; unmodeled provider fields remain unknown. */
6
7
  type EventUnion = z.output<typeof githubEventSchema>;
7
8
  export type SupportedEventKey = EventUnion["key"];
@@ -9,28 +10,36 @@ export type GitHubEvent<K extends SupportedEventKey = SupportedEventKey> = Extra
9
10
  key: K;
10
11
  }>;
11
12
  export type PayloadFor<K extends SupportedEventKey> = GitHubEvent<K>["payload"];
12
- export interface GitHubChannelRuntime {
13
+ /**
14
+ * The conversation's thread an event belongs to. A handler runs before any
15
+ * run exists, so this is not a run's runtime.
16
+ */
17
+ export interface GitHubChannelThread {
18
+ /**
19
+ * The thread's ID: the one a run the handler starts runs on, or, when
20
+ * `interrupted`, the one that waits. Useful for run context that names the
21
+ * thread, such as a token a backend signs for it.
22
+ */
23
+ id: string;
13
24
  channel: {
14
25
  name: string;
15
26
  };
16
- /** The conversation's thread, which the run starts on. */
17
- threadId: string;
18
27
  /**
19
- * Set when the event's conversation waits on a decision. No run starts:
20
- * what the handler returns only decides whether the App tells the issue or
21
- * pull request that a decision is pending, so skip side effects such as
28
+ * Set when the thread waits on an interrupt. No run starts: what the
29
+ * handler returns only decides whether the App tells the issue or pull
30
+ * request that a decision is pending, so skip side effects such as
22
31
  * reactions.
23
32
  */
24
- paused?: true;
33
+ interrupted?: true;
25
34
  }
26
35
  /**
27
36
  * What an event handler returns: a run's input, as `agent.invoke` takes it —
28
37
  * a string, a message such as `new HumanMessage(...)`, state such as
29
- * `{ messages: [...] }`, or `[input, { context }]`. `null` or `undefined`
38
+ * `{ messages: [...] }`, or `[input, { context, metadata }]`. `null` or `undefined`
30
39
  * starts nothing.
31
40
  */
32
41
  export type GitHubEventResult = ChannelRunResult | null | undefined | void;
33
- export type GitHubEventCallback<K extends SupportedEventKey> = (event: GitHubEvent<K>, runtime: GitHubChannelRuntime) => GitHubEventResult | Promise<GitHubEventResult>;
42
+ export type GitHubEventCallback<K extends SupportedEventKey> = (event: GitHubEvent<K>, thread: GitHubChannelThread) => GitHubEventResult | Promise<GitHubEventResult>;
34
43
  /**
35
44
  * What the agent may do with the GitHub App `mda deploy` sets up. Deploy
36
45
  * applies changes to these on every run, except to the App's own
@@ -85,7 +94,7 @@ export interface GitHubChannelOptions {
85
94
  /**
86
95
  * Event handlers that start runs. Return a prompt (string, message, or
87
96
  * state), or nothing to skip. While a thread waits on an interrupt, events
88
- * start nothing: the handler still runs, with `runtime.paused` set, to
97
+ * start nothing: the handler still runs, with `thread.interrupted` set, to
89
98
  * decide whether the issue or pull request is told to continue it in
90
99
  * LangSmith Studio.
91
100
  *
@@ -97,6 +106,25 @@ export interface GitHubChannelOptions {
97
106
  onEvent?: {
98
107
  [K in SupportedEventKey]?: GitHubEventCallback<K>;
99
108
  };
109
+ /**
110
+ * More events for the App to receive, beyond the handled ones, to forward
111
+ * them: they start nothing here. Deploy subscribes the App to them too.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * { events: ["push"], forward: (request) => new Request(url, request) }
116
+ * ```
117
+ */
118
+ events?: SupportedEventKey[];
119
+ /**
120
+ * Send a delivery on to other services, besides acting on it here: return
121
+ * a request, such as `new Request(url, request)`, several, or nothing. It
122
+ * is called for every delivery of a handled or received event that the
123
+ * channel's filters (repositories, the App's own) keep, with the delivery
124
+ * as GitHub sent it, `X-Hub-Signature-256` included, and its parsed event.
125
+ * Sent in the background, best effort; see `channels.http`'s `forward`.
126
+ */
127
+ forward?: EventForward<GitHubEvent>;
100
128
  }
101
129
  export {};
102
130
  //# sourceMappingURL=types.d.ts.map
@@ -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;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,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,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;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,OAAO,EAAE,oBAAoB,KAC1B,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;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAAE,CAAC;CACjE"}
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;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,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;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAAE,CAAC;IAChE;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CACrC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Forwarding: an HTTP channel's adapter may send each verified delivery on to
3
+ * other services, as the provider sent it, besides acting on it here.
4
+ */
5
+ import type { ChannelEventsContext } from "../../runtime/channel.js";
6
+ import type { HttpChannelAdapter, HttpChannelParseResult } from "./types.js";
7
+ /**
8
+ * Forward a verified delivery as the adapter's `forward` asks, in the
9
+ * background: the provider gets its answer without waiting, and a failure is
10
+ * logged, never raised.
11
+ */
12
+ export declare function scheduleForwards(ctx: ChannelEventsContext, adapter: HttpChannelAdapter, rawBody: Uint8Array, result: HttpChannelParseResult): void;
13
+ //# sourceMappingURL=forward.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forward.d.ts","sourceRoot":"","sources":["../../../src/channels/http/forward.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAgHpB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,oBAAoB,EACzB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CA2BN"}
@@ -0,0 +1,128 @@
1
+ import { scheduleIngressWork } from "../../ingress/index.js";
2
+ import { logger } from "../../runtime/log.js";
3
+ /** How long one forwarded request may take. */
4
+ const FORWARD_TIMEOUT_MS = 10_000;
5
+ /** The most requests one delivery is forwarded as. */
6
+ const MAX_FORWARDS = 10;
7
+ /**
8
+ * Headers the platform in front of the deployment adds, or that describe the
9
+ * connection rather than the delivery. The provider's own headers, such as its
10
+ * signature and delivery ID, are kept, so the receiver can verify it.
11
+ */
12
+ const DROPPED_HEADERS = new Set([
13
+ "authorization",
14
+ "connection",
15
+ "content-length",
16
+ "cookie",
17
+ "forwarded",
18
+ "host",
19
+ "keep-alive",
20
+ "proxy-authorization",
21
+ "te",
22
+ "trailer",
23
+ "transfer-encoding",
24
+ "upgrade",
25
+ "x-api-key",
26
+ "x-auth-scheme",
27
+ "x-real-ip",
28
+ "x-request-id",
29
+ ]);
30
+ const DROPPED_HEADER_PREFIXES = ["x-forwarded-", "x-mda-", "x-langsmith-"];
31
+ function forwardedHeaders(headers) {
32
+ const kept = new Headers();
33
+ headers.forEach((value, name) => {
34
+ const key = name.toLowerCase();
35
+ if (DROPPED_HEADERS.has(key))
36
+ return;
37
+ if (DROPPED_HEADER_PREFIXES.some((prefix) => key.startsWith(prefix)))
38
+ return;
39
+ kept.append(name, value);
40
+ });
41
+ return kept;
42
+ }
43
+ /** What the adapter's `forward` learns about the delivery. */
44
+ function forwardContext(result) {
45
+ return {
46
+ result: result.type,
47
+ ...("rawEvent" in result &&
48
+ result.rawEvent !== undefined && { rawEvent: result.rawEvent }),
49
+ ...(result.type !== "ignore" && {
50
+ threadId: result.message.threadId.toLowerCase(),
51
+ }),
52
+ };
53
+ }
54
+ /** The requests `forward` returned, checked; anything else is logged. */
55
+ function forwardRequests(value) {
56
+ const requests = (Array.isArray(value) ? value : [value]).filter((request) => request !== null && request !== undefined);
57
+ if (requests.length > MAX_FORWARDS) {
58
+ logger.error(`channel forward returned more than ${MAX_FORWARDS} requests; sending the first ${MAX_FORWARDS}`);
59
+ }
60
+ return requests.slice(0, MAX_FORWARDS).filter((request) => {
61
+ if (!(request instanceof Request)) {
62
+ logger.error("channel forward returned something other than a Request");
63
+ return false;
64
+ }
65
+ let url;
66
+ try {
67
+ url = new URL(request.url);
68
+ }
69
+ catch {
70
+ logger.error("channel forward returned a request without a valid URL");
71
+ return false;
72
+ }
73
+ if ((url.protocol !== "https:" && url.protocol !== "http:") ||
74
+ url.username ||
75
+ url.password) {
76
+ logger.error("channel forward URLs must be http(s), without credentials in them");
77
+ return false;
78
+ }
79
+ return true;
80
+ });
81
+ }
82
+ async function send(request) {
83
+ const host = logger.logIdentifier(new URL(request.url).host);
84
+ try {
85
+ const response = await fetch(request, {
86
+ redirect: "manual",
87
+ signal: AbortSignal.timeout(FORWARD_TIMEOUT_MS),
88
+ });
89
+ // Only the status matters; the body is never read.
90
+ await response.body?.cancel();
91
+ if (!response.ok)
92
+ logger.warn(`channel forward to ${host} answered HTTP ${response.status}`);
93
+ }
94
+ catch (error) {
95
+ logger.error(`channel forward to ${host} failed (${logger.safeErrorLabel(error)})`);
96
+ }
97
+ }
98
+ /**
99
+ * Forward a verified delivery as the adapter's `forward` asks, in the
100
+ * background: the provider gets its answer without waiting, and a failure is
101
+ * logged, never raised.
102
+ */
103
+ export function scheduleForwards(ctx, adapter, rawBody, result) {
104
+ const forward = adapter.forward?.bind(adapter);
105
+ if (!forward)
106
+ return;
107
+ const headers = forwardedHeaders(ctx.request.headers);
108
+ const body = new Uint8Array(rawBody);
109
+ const context = forwardContext(result);
110
+ scheduleIngressWork(async () => {
111
+ const method = ctx.request.method;
112
+ const delivery = new Request(ctx.request.url, {
113
+ method,
114
+ headers,
115
+ ...(method !== "GET" && method !== "HEAD" && { body }),
116
+ });
117
+ let requests;
118
+ try {
119
+ requests = forwardRequests(await forward(delivery, context));
120
+ }
121
+ catch (error) {
122
+ logger.error(`channel forward failed (${logger.safeErrorLabel(error)})`);
123
+ return;
124
+ }
125
+ await Promise.all(requests.map(send));
126
+ }, { label: `channel "${ctx.name}" forward` });
127
+ }
128
+ //# sourceMappingURL=forward.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forward.js","sourceRoot":"","sources":["../../../src/channels/http/forward.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":"AASA,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,YAAY,CAAC;AAUpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAkErE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,oBAAoB,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAmTnB"}
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;AAwCrE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,oBAAoB,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAwTnB"}
@@ -3,7 +3,9 @@ import { immutableCopy, validateMessage } from "../runtime.js";
3
3
  import { isJsonValue } from "../message-schema.js";
4
4
  import { normalizeRunInput } from "../run-input.js";
5
5
  import { cancelHttpIngressRuns, startHttpIngressAgent, observeHttpIngressAgent, waitForHttpIngressThread, } from "./ingress.js";
6
+ import { ChannelError } from "../errors.js";
6
7
  import { scheduleIngressWork } from "../../ingress/index.js";
8
+ import { scheduleForwards } from "./forward.js";
7
9
  import { logger } from "../../runtime/log.js";
8
10
  const ASSISTANT_ID_ENV = "MDA_ASSISTANT_ID";
9
11
  /**
@@ -30,28 +32,6 @@ function joinThreadWaiters(threadId) {
30
32
  threadWaiters.set(threadId, waiters.add(waiter));
31
33
  return waiter;
32
34
  }
33
- /**
34
- * The threads this process recently stopped for a `cancel` result, and which
35
- * target asked. A run cancelled by someone else's stop, such as another
36
- * session on the same issue, tells its own target too; the one who asked was
37
- * already told.
38
- */
39
- const recentStops = new Map();
40
- const RECENT_STOP_MS = 10 * 60 * 1000;
41
- function recordStop(threadId, target) {
42
- const now = Date.now();
43
- for (const [thread, stop] of recentStops)
44
- if (now - stop.at > RECENT_STOP_MS)
45
- recentStops.delete(thread);
46
- recentStops.set(threadId, { target: JSON.stringify(target), at: now });
47
- }
48
- /** Whether this process stopped the thread lately for another target. */
49
- function stoppedForAnother(threadId, target) {
50
- const stop = recentStops.get(threadId);
51
- return (stop !== undefined &&
52
- Date.now() - stop.at <= RECENT_STOP_MS &&
53
- stop.target !== JSON.stringify(target));
54
- }
55
35
  function leaveThreadWaiters(threadId, waiter) {
56
36
  const waiters = threadWaiters.get(threadId);
57
37
  waiters?.delete(waiter);
@@ -88,31 +68,29 @@ export async function handleHttpRequest(ctx, adapter) {
88
68
  if (!validParseResult(result)) {
89
69
  return jsonError(400, "invalid channel parse result");
90
70
  }
71
+ scheduleForwards(ctx, adapter, rawBody, result);
91
72
  if (result.type === "ignore") {
92
73
  return (result.response ?? Response.json({ status: "ignored" }, { status: 202 }));
93
74
  }
94
- let message = result.message;
95
- try {
96
- // A cancel names a thread; it starts nothing, so it needs no content.
97
- validateInboundMessage(message, result.type === "cancel" || adapter.input !== undefined);
98
- message = immutableCopy(message);
99
- }
100
- catch {
101
- return jsonError(400, "invalid channel message");
102
- }
103
75
  const assistantId = process.env[ASSISTANT_ID_ENV]?.trim();
104
76
  if (!assistantId) {
105
77
  return jsonError(500, "channel runtime is not configured");
106
78
  }
107
- const deliveryId = crypto.randomUUID();
108
- const threadId = message.threadId.toLowerCase();
109
- const sourceThreadKey = `http:v1:${JSON.stringify([ctx.name, threadId])}`;
110
- if (result.type === "cancel")
79
+ if (result.type === "cancel") {
80
+ let stop;
81
+ try {
82
+ validateCancelMessage(result.message);
83
+ stop = immutableCopy(result.message);
84
+ }
85
+ catch {
86
+ return jsonError(400, "invalid channel message");
87
+ }
88
+ const threadId = stop.threadId.toLowerCase();
111
89
  return cancelThreadRuns(ctx, adapter, {
112
- userId: message.userId,
113
- sourceThreadKey,
90
+ userId: stop.userId,
91
+ sourceThreadKey: `http:v1:${JSON.stringify([ctx.name, threadId])}`,
114
92
  threadId,
115
- target: message.target,
93
+ target: stop.target,
116
94
  run: {
117
95
  threadId,
118
96
  assistantId,
@@ -122,6 +100,18 @@ export async function handleHttpRequest(ctx, adapter) {
122
100
  },
123
101
  ...(result.response !== undefined && { response: result.response }),
124
102
  });
103
+ }
104
+ let message = result.message;
105
+ try {
106
+ validateInboundMessage(message, adapter.input !== undefined);
107
+ message = immutableCopy(message);
108
+ }
109
+ catch {
110
+ return jsonError(400, "invalid channel message");
111
+ }
112
+ const deliveryId = crypto.randomUUID();
113
+ const threadId = message.threadId.toLowerCase();
114
+ const sourceThreadKey = `http:v1:${JSON.stringify([ctx.name, threadId])}`;
125
115
  const binding = channelContextSchema.parse({
126
116
  name: ctx.name,
127
117
  provider: ctx.channel.kind,
@@ -161,7 +151,7 @@ export async function handleHttpRequest(ctx, adapter) {
161
151
  const inputHook = adapter.input?.bind(adapter);
162
152
  async function prepare() {
163
153
  try {
164
- return normalizeRunInput(await inputHook?.(immutableCopy(message), rawEvent === undefined ? undefined : structuredClone(rawEvent), adapterRequest()));
154
+ return normalizeRunInput(await inputHook?.(immutableCopy(message), rawEvent === undefined ? undefined : structuredClone(rawEvent)));
165
155
  }
166
156
  catch (error) {
167
157
  logger.error(`channel input failed (${logger.safeErrorLabel(error)})`);
@@ -205,69 +195,62 @@ export async function handleHttpRequest(ctx, adapter) {
205
195
  if (!("skipped" in outcome && outcome.skipped === "busy"))
206
196
  leaveThreadWaiters(threadId, waiter);
207
197
  const label = `channel "${ctx.name}" delivery`;
208
- const onPaused = adapter.onPaused?.bind(adapter);
209
- async function notifyPaused(assistantId, stopped) {
210
- if (!onPaused)
198
+ const onInterrupted = adapter.onInterrupted?.bind(adapter);
199
+ const interruptedReasons = new Set(adapter.interruptedReasons ?? ["waiting"]);
200
+ async function notifyInterrupted(assistantId, reason) {
201
+ if (!onInterrupted || !interruptedReasons.has(reason))
211
202
  return;
212
203
  try {
213
204
  // The thread's assistant lets the notice link to it in Studio.
214
- await onPaused(immutableCopy(message.target), {
215
- ...runInfo(assistantId),
216
- ...(stopped && { stopped }),
217
- });
205
+ await onInterrupted(immutableCopy(message.target), runInfo(assistantId), reason);
218
206
  }
219
207
  catch (error) {
220
- logger.error(`channel paused notice failed (${logger.safeErrorLabel(error)})`);
208
+ logger.error(`channel interrupted notice failed (${logger.safeErrorLabel(error)})`);
221
209
  }
222
210
  }
223
- // Another target's stop cancelled this message's run: say so here too.
224
- const onCancelled = adapter.onCancelled?.bind(adapter);
225
- async function notifyCancelled(target, run) {
226
- if (!onCancelled)
227
- return;
211
+ const post = adapter.post?.bind(adapter);
212
+ const onError = adapter.onError?.bind(adapter);
213
+ async function notifyFailed(error) {
228
214
  try {
229
- await onCancelled(immutableCopy(target), { ...run, cancelled: 1 });
215
+ if (onError) {
216
+ await onError(error, immutableCopy(message.target));
217
+ }
218
+ else if (post) {
219
+ await post(immutableCopy({
220
+ type: "content",
221
+ content: "Something went wrong while processing your request.",
222
+ target: message.target,
223
+ }));
224
+ }
230
225
  }
231
- catch (error) {
232
- logger.error(`channel cancel notice failed (${logger.safeErrorLabel(error)})`);
226
+ catch (replyError) {
227
+ const action = onError ? "callback" : "reply";
228
+ logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`);
233
229
  }
234
230
  }
235
- const post = adapter.post?.bind(adapter);
236
- const onError = adapter.onError?.bind(adapter);
237
231
  // The run posts its own answer (see `./reply.ts`): this reports what a run
238
232
  // can't say itself, that it stopped on interrupts, was stopped, or failed.
239
233
  async function deliver(started) {
240
234
  logger.info(`channel run started ${JSON.stringify({ threadId, runId: logger.logIdentifier(started.runId) })}`);
235
+ let outcome;
241
236
  try {
242
- const invocation = await observeHttpIngressAgent({
243
- ...input,
244
- ...started,
245
- });
246
- // Say where to answer the interrupts now, not only when the next message
247
- // finds the thread waiting. The run Studio resumes posts the answer.
248
- if (invocation.paused)
249
- return await notifyPaused(invocation.paused.assistantId, true);
250
- if (invocation.cancelled && stoppedForAnother(threadId, message.target))
251
- await notifyCancelled(message.target, runInfo(assistantId));
237
+ outcome = await observeHttpIngressAgent({ ...input, ...started });
252
238
  }
253
239
  catch (error) {
254
- logger.error(`channel delivery failed (${logger.safeErrorLabel(error)})`);
255
- try {
256
- if (onError) {
257
- await onError(error, immutableCopy(message.target));
258
- }
259
- else if (post) {
260
- await post(immutableCopy({
261
- type: "content",
262
- content: "Something went wrong while processing your request.",
263
- target: message.target,
264
- }));
265
- }
266
- }
267
- catch (replyError) {
268
- const action = onError ? "callback" : "reply";
269
- logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`);
270
- }
240
+ // The run may have answered already; only its own failure is reported.
241
+ logger.error(`channel run could not be observed (${logger.safeErrorLabel(error)})`);
242
+ return;
243
+ }
244
+ switch (outcome.type) {
245
+ case "paused":
246
+ // Say where to answer the interrupts now, not only when the next
247
+ // message finds the thread waiting. The run Studio resumes answers.
248
+ return notifyInterrupted(outcome.assistantId, "stopped");
249
+ case "failed":
250
+ logger.error(`channel run failed ${JSON.stringify({ threadId })}`);
251
+ return notifyFailed(new ChannelError("channel_run_failed", "channel run failed"));
252
+ default:
253
+ return;
271
254
  }
272
255
  }
273
256
  // The thread's current run may still stop for a decision, so the message
@@ -296,16 +279,16 @@ export async function handleHttpRequest(ctx, adapter) {
296
279
  return deliver(next);
297
280
  logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: next.skipped })}`);
298
281
  if (next.skipped === "paused")
299
- await notifyPaused(next.assistantId);
282
+ await notifyInterrupted(next.assistantId, "waiting");
300
283
  }
301
284
  if ("skipped" in outcome) {
302
285
  logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: outcome.skipped })}`);
303
286
  if (outcome.skipped === "busy")
304
287
  scheduleIngressWork(startWhenIdle, { label });
305
- else if (outcome.skipped === "paused" && onPaused) {
288
+ else if (outcome.skipped === "paused" && onInterrupted) {
306
289
  const { assistantId } = outcome;
307
- scheduleIngressWork(() => notifyPaused(assistantId), {
308
- label: `channel "${ctx.name}" paused notice`,
290
+ scheduleIngressWork(() => notifyInterrupted(assistantId, "waiting"), {
291
+ label: `channel "${ctx.name}" interrupted notice`,
309
292
  });
310
293
  }
311
294
  return (result.response ??
@@ -347,15 +330,14 @@ async function cancelThreadRuns(ctx, adapter, input) {
347
330
  // Before the server's cancel, so waiters it wakes see it.
348
331
  for (const waiter of threadWaiters.get(input.threadId) ?? [])
349
332
  waiter.cancelled = true;
350
- recordStop(input.threadId, input.target);
351
333
  let cancelled;
352
334
  try {
353
- cancelled = await cancelHttpIngressRuns({
335
+ cancelled = (await cancelHttpIngressRuns({
354
336
  userId: input.userId,
355
337
  sourceThreadKey: input.sourceThreadKey,
356
338
  sourceProvider: ctx.channel.kind,
357
339
  threadId: input.threadId,
358
- });
340
+ })).length;
359
341
  }
360
342
  catch (error) {
361
343
  logger.error(`channel run could not be cancelled (${logger.safeErrorLabel(error)})`);
@@ -378,19 +360,36 @@ async function cancelThreadRuns(ctx, adapter, input) {
378
360
  return (input.response ??
379
361
  Response.json({ status: "cancelled", cancelled }, { status: 202 }));
380
362
  }
363
+ const CANCEL_MESSAGE_KEYS = new Set([
364
+ "userId",
365
+ "threadId",
366
+ "target",
367
+ ]);
368
+ /** A cancel names a thread and who to tell; it starts nothing. */
369
+ function validateCancelMessage(message) {
370
+ if (!message || typeof message !== "object")
371
+ throw new Error("channel cancel must be an object");
372
+ for (const key of Object.keys(message))
373
+ if (!CANCEL_MESSAGE_KEYS.has(key))
374
+ throw new Error("channel cancel takes only userId, threadId and target");
375
+ validateAddress(message);
376
+ }
381
377
  function validateInboundMessage(message, adapterInput) {
382
- nonblank(message.userId, "channel userId");
383
378
  if (message.deliveryKey !== undefined)
384
379
  nonblank(message.deliveryKey, "channel deliveryKey");
380
+ validateAddress(message);
381
+ // The adapter's `input` supplies what a message without content starts.
382
+ if (message.content !== undefined || !adapterInput)
383
+ validateMessageContent(message.content);
384
+ }
385
+ function validateAddress(message) {
386
+ nonblank(message.userId, "channel userId");
385
387
  if (typeof message.threadId !== "string" ||
386
388
  !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(message.threadId)) {
387
389
  throw new Error("channel threadId must be a UUID");
388
390
  }
389
391
  if (!isJsonValue(message.target))
390
392
  throw new Error("channel target must be JSON");
391
- // The adapter's `input` supplies what a message without content starts.
392
- if (message.content !== undefined || !adapterInput)
393
- validateMessageContent(message.content);
394
393
  }
395
394
  function validateMessageContent(content) {
396
395
  validateMessage({ type: "content", content });