managed-deepagents 0.9.2-dev.9 → 0.10.0-dev.1

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 (84) hide show
  1. package/README.md +155 -0
  2. package/dist/agent-auth.d.ts +1 -1
  3. package/dist/agent-auth.d.ts.map +1 -1
  4. package/dist/agent-auth.js +36 -12
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/channels/github/connections.d.ts +11 -0
  7. package/dist/channels/github/connections.d.ts.map +1 -0
  8. package/dist/channels/github/connections.js +14 -0
  9. package/dist/channels/github/connections.js.map +1 -0
  10. package/dist/channels/github/index.d.ts +15 -0
  11. package/dist/channels/github/index.d.ts.map +1 -0
  12. package/dist/channels/github/index.js +336 -0
  13. package/dist/channels/github/index.js.map +1 -0
  14. package/dist/channels/github/schema.d.ts +3894 -0
  15. package/dist/channels/github/schema.d.ts.map +1 -0
  16. package/dist/channels/github/schema.js +190 -0
  17. package/dist/channels/github/schema.js.map +1 -0
  18. package/dist/channels/github/types.d.ts +100 -0
  19. package/dist/channels/github/types.d.ts.map +1 -0
  20. package/dist/channels/github/types.js +2 -0
  21. package/dist/channels/github/types.js.map +1 -0
  22. package/dist/channels/http/http.d.ts.map +1 -1
  23. package/dist/channels/http/http.js +100 -15
  24. package/dist/channels/http/http.js.map +1 -1
  25. package/dist/channels/http/index.d.ts +2 -1
  26. package/dist/channels/http/index.d.ts.map +1 -1
  27. package/dist/channels/http/index.js +11 -1
  28. package/dist/channels/http/index.js.map +1 -1
  29. package/dist/channels/http/ingress.d.ts +27 -2
  30. package/dist/channels/http/ingress.d.ts.map +1 -1
  31. package/dist/channels/http/ingress.js +106 -13
  32. package/dist/channels/http/ingress.js.map +1 -1
  33. package/dist/channels/http/threads.d.ts +7 -0
  34. package/dist/channels/http/threads.d.ts.map +1 -0
  35. package/dist/channels/http/threads.js +10 -0
  36. package/dist/channels/http/threads.js.map +1 -0
  37. package/dist/channels/http/types.d.ts +42 -1
  38. package/dist/channels/http/types.d.ts.map +1 -1
  39. package/dist/channels/reserved-connections.d.ts +12 -0
  40. package/dist/channels/reserved-connections.d.ts.map +1 -0
  41. package/dist/channels/reserved-connections.js +28 -0
  42. package/dist/channels/reserved-connections.js.map +1 -0
  43. package/dist/channels/run-input.d.ts +38 -0
  44. package/dist/channels/run-input.d.ts.map +1 -0
  45. package/dist/channels/run-input.js +95 -0
  46. package/dist/channels/run-input.js.map +1 -0
  47. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  48. package/dist/channels/trigger/ingress.js +1 -19
  49. package/dist/channels/trigger/ingress.js.map +1 -1
  50. package/dist/channels/types.d.ts.map +1 -1
  51. package/dist/channels/types.js +14 -9
  52. package/dist/channels/types.js.map +1 -1
  53. package/dist/connections.d.ts +8 -0
  54. package/dist/connections.d.ts.map +1 -1
  55. package/dist/connections.js +41 -6
  56. package/dist/connections.js.map +1 -1
  57. package/dist/connectors/mcp/index.d.ts +2 -2
  58. package/dist/connectors/mcp/index.d.ts.map +1 -1
  59. package/dist/connectors/mcp/index.js +16 -15
  60. package/dist/connectors/mcp/index.js.map +1 -1
  61. package/dist/credential-gate.d.ts +2 -0
  62. package/dist/credential-gate.d.ts.map +1 -1
  63. package/dist/credential-gate.js +16 -3
  64. package/dist/credential-gate.js.map +1 -1
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/ingress/runs.d.ts +43 -1
  69. package/dist/ingress/runs.d.ts.map +1 -1
  70. package/dist/ingress/runs.js +95 -2
  71. package/dist/ingress/runs.js.map +1 -1
  72. package/dist/namespaces.d.ts +6 -0
  73. package/dist/namespaces.d.ts.map +1 -1
  74. package/dist/namespaces.js +2 -0
  75. package/dist/namespaces.js.map +1 -1
  76. package/dist/runtime/auth.d.ts +5 -0
  77. package/dist/runtime/auth.d.ts.map +1 -1
  78. package/dist/runtime/auth.js +75 -5
  79. package/dist/runtime/auth.js.map +1 -1
  80. package/dist/runtime/sandbox-manager.d.ts +1 -1
  81. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  82. package/dist/runtime/sandbox-manager.js +3 -3
  83. package/dist/runtime/sandbox-manager.js.map +1 -1
  84. package/package.json +7 -7
@@ -1,6 +1,8 @@
1
+ import type { MultitaskStrategy } from "../../ingress/runs.js";
1
2
  import { type MessageContent } from "@langchain/core/messages";
2
3
  import type { ChannelBinding } from "../binding.js";
3
4
  import { type StartedIngressRun } from "../../ingress/runs.js";
5
+ import type { NormalizedRunInput } from "../run-input.js";
4
6
  interface HttpIngressSource {
5
7
  userId: string;
6
8
  sourceThreadKey: string;
@@ -10,10 +12,33 @@ interface HttpIngressSource {
10
12
  interface StartHttpIngressInput extends HttpIngressSource {
11
13
  threadId: string;
12
14
  assistantId: string;
13
- input: MessageContent;
15
+ /** What a new run starts with. */
16
+ input?: MessageContent;
17
+ /** What a new run starts with when there is no `input`, asked only then. */
18
+ prepare?: () => Promise<NormalizedRunInput | undefined>;
14
19
  context?: Record<string, unknown>;
20
+ /** The provider's delivery ID; a thread runs each delivery once. */
21
+ deliveryKey?: string;
22
+ /**
23
+ * What a new turn does while the thread runs: wait for the run
24
+ * (`enqueue`, the default), cancel it (`interrupt` keeps its progress,
25
+ * `rollback` discards it), or start nothing (`reject`).
26
+ */
27
+ multitaskStrategy?: MultitaskStrategy;
15
28
  }
16
- export declare function startHttpIngressAgent(input: StartHttpIngressInput): Promise<StartedIngressRun>;
29
+ /** A started run, or why the thread took none: `ignored` when there is nothing to start. */
30
+ export type HttpIngressStart = StartedIngressRun | {
31
+ skipped: "paused";
32
+ /** The paused thread's assistant, for links into LangSmith Studio. */
33
+ assistantId?: string;
34
+ } | {
35
+ skipped: "duplicate" | "busy" | "rejected" | "ignored";
36
+ };
37
+ /** Wait until the thread's queued and running runs have finished. */
38
+ export declare function waitForHttpIngressThread(input: HttpIngressSource & {
39
+ threadId: string;
40
+ }): Promise<void>;
41
+ export declare function startHttpIngressAgent(input: StartHttpIngressInput): Promise<HttpIngressStart>;
17
42
  export declare function observeHttpIngressAgent(input: HttpIngressSource & StartedIngressRun): Promise<StartedIngressRun & {
18
43
  replyContent: MessageContent | null;
19
44
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ingress.d.ts","sourceRoot":"","sources":["../../../src/channels/http/ingress.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC7C;AAED,UAAU,qBAAsB,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,GAC3C,OAAO,CAAC,iBAAiB,GAAG;IAAE,YAAY,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAAC,CAmCtE"}
1
+ {"version":3,"file":"ingress.d.ts","sourceRoot":"","sources":["../../../src/channels/http/ingress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAQL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAS1D,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC7C;AAED,UAAU,qBAAsB,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB;IACE,OAAO,EAAE,QAAQ,CAAC;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IAAE,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/D,qEAAqE;AACrE,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,iBAAiB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAsE3B;AA8CD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,GAC3C,OAAO,CAAC,iBAAiB,GAAG;IAAE,YAAY,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAAC,CA8CtE"}
@@ -2,11 +2,21 @@
2
2
  import { INTERRUPT } from "@langchain/langgraph";
3
3
  import { HumanMessage, } from "@langchain/core/messages";
4
4
  import { extractAssistantContent } from "../assistant-text.js";
5
+ import { logger } from "../../runtime/log.js";
5
6
  import { buildIngressRunContext } from "../../ingress/index.js";
6
7
  import { ChannelError } from "../errors.js";
7
8
  import { validateMessage } from "../runtime.js";
8
9
  import { createIngressLoopbackClient, hasLoopbackCredential, } from "../../ingress/loopback.js";
9
- import { startIngressRun, observeIngressRun, } from "../../ingress/runs.js";
10
+ import { DELIVERY_KEY_METADATA, ingressThreadState, lookupStatus, startIngressRun, waitForIdleThread, observeIngressRun, recordThreadDelivery, } from "../../ingress/runs.js";
11
+ /** Wait until the thread's queued and running runs have finished. */
12
+ export async function waitForHttpIngressThread(input) {
13
+ const client = createIngressLoopbackClient({
14
+ userId: input.userId,
15
+ sourceThreadKey: input.sourceThreadKey,
16
+ sourceProvider: input.sourceProvider ?? input.binding.provider,
17
+ });
18
+ await waitForIdleThread(client, input.threadId);
19
+ }
10
20
  export async function startHttpIngressAgent(input) {
11
21
  if (!hasLoopbackCredential()) {
12
22
  throw new ChannelError("channel_run_failed", "managed loopback authentication is not configured");
@@ -16,14 +26,89 @@ export async function startHttpIngressAgent(input) {
16
26
  sourceThreadKey: input.sourceThreadKey,
17
27
  sourceProvider: input.sourceProvider ?? input.binding.provider,
18
28
  });
19
- const message = typeof input.input === "string"
20
- ? new HumanMessage(input.input)
29
+ const { state, assistantId } = await ingressThreadState(client, input.threadId, input.deliveryKey);
30
+ const metadata = input.deliveryKey !== undefined && {
31
+ metadata: { [DELIVERY_KEY_METADATA]: input.deliveryKey },
32
+ };
33
+ // A new turn would abandon the decision the thread waits on.
34
+ if (state === "paused")
35
+ return {
36
+ skipped: "paused",
37
+ ...(assistantId !== undefined && { assistantId }),
38
+ };
39
+ const strategy = input.multitaskStrategy ?? "enqueue";
40
+ // `interrupt` and `rollback` start now and cancel the active run.
41
+ const cancelsActiveRun = strategy === "interrupt" || strategy === "rollback";
42
+ if (state === "busy" && strategy === "reject")
43
+ return { skipped: "rejected" };
44
+ if (state !== "ready" && !(state === "busy" && cancelsActiveRun))
45
+ return { skipped: state };
46
+ const prepared = input.input !== undefined
47
+ ? contentRunInput(input.input)
48
+ : await input.prepare?.();
49
+ if (!prepared)
50
+ return { skipped: "ignored" };
51
+ let started;
52
+ try {
53
+ started = await startIngressRun(client, {
54
+ threadId: input.threadId,
55
+ assistantId: input.assistantId,
56
+ ...metadata,
57
+ multitaskStrategy: strategy,
58
+ messages: prepared.messages,
59
+ ...(Object.keys(prepared.state).length && { state: prepared.state }),
60
+ ...buildIngressRunContext({
61
+ // The binding already holds a message's content; prepared input
62
+ // replaces it.
63
+ binding: input.input !== undefined
64
+ ? input.binding
65
+ : {
66
+ ...input.binding,
67
+ event: {
68
+ type: "message",
69
+ messages: prepared.messages,
70
+ },
71
+ },
72
+ context: prepared.context ?? input.context,
73
+ }),
74
+ });
75
+ }
76
+ catch (error) {
77
+ // A run started meanwhile: `reject` leaves the thread to it.
78
+ if (strategy === "reject" && lookupStatus(error) === 409)
79
+ return { skipped: "rejected" };
80
+ throw error;
81
+ }
82
+ await recordRollbackDelivery(client, input);
83
+ return started;
84
+ }
85
+ /**
86
+ * Under `rollback`, record the delivery on its thread: a later message
87
+ * deletes this run with its delivery key, but the thread keeps the key, so a
88
+ * redelivery stays a duplicate.
89
+ */
90
+ async function recordRollbackDelivery(client, input) {
91
+ if (input.multitaskStrategy !== "rollback" || input.deliveryKey === undefined)
92
+ return;
93
+ try {
94
+ await recordThreadDelivery(client, input.threadId, input.deliveryKey);
95
+ }
96
+ catch (error) {
97
+ // The run started; only a redelivery after its rollback would repeat it.
98
+ logger.warn(`channel delivery was not recorded on its thread ${JSON.stringify({
99
+ threadId: input.threadId,
100
+ status: lookupStatus(error),
101
+ })}`);
102
+ }
103
+ }
104
+ /** A message's content as run input. */
105
+ function contentRunInput(content) {
106
+ const message = typeof content === "string"
107
+ ? new HumanMessage(content)
21
108
  : new HumanMessage({
22
- contentBlocks: input.input,
109
+ contentBlocks: content,
23
110
  });
24
- return startIngressRun(client, {
25
- threadId: input.threadId,
26
- assistantId: input.assistantId,
111
+ return {
27
112
  messages: [
28
113
  {
29
114
  role: "human",
@@ -31,11 +116,8 @@ export async function startHttpIngressAgent(input) {
31
116
  response_metadata: message.response_metadata,
32
117
  },
33
118
  ],
34
- ...buildIngressRunContext({
35
- binding: input.binding,
36
- context: input.context,
37
- }),
38
- });
119
+ state: {},
120
+ };
39
121
  }
40
122
  export async function observeHttpIngressAgent(input) {
41
123
  const client = createIngressLoopbackClient({
@@ -43,7 +125,18 @@ export async function observeHttpIngressAgent(input) {
43
125
  sourceThreadKey: input.sourceThreadKey,
44
126
  sourceProvider: input.sourceProvider ?? input.binding.provider,
45
127
  });
46
- const { values, status } = await observeIngressRun(client, input);
128
+ let observed;
129
+ try {
130
+ observed = await observeIngressRun(client, input);
131
+ }
132
+ catch (error) {
133
+ // `rollback` deletes the run a newer message replaced; it has no reply.
134
+ if (lookupStatus(error) !== 404)
135
+ throw error;
136
+ logger.info(`channel run was replaced ${JSON.stringify({ threadId: input.threadId })}`);
137
+ return { replyContent: null, threadId: input.threadId, runId: input.runId };
138
+ }
139
+ const { values, status } = observed;
47
140
  if (status === "interrupted") {
48
141
  return { replyContent: null, threadId: input.threadId, runId: input.runId };
49
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ingress.js","sourceRoot":"","sources":["../../../src/channels/http/ingress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingress.js","sourceRoot":"","sources":["../../../src/channels/http/ingress.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EACL,YAAY,GAGb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC;AA6C/B,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAA+C;IAE/C,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;KAC/D,CAAC,CAAC;IACH,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAA4B;IAE5B,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,YAAY,CACpB,oBAAoB,EACpB,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;KAC/D,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CACrD,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,WAAW,CAClB,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI;QAClD,QAAQ,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE;KACzD,CAAC;IACF,6DAA6D;IAC7D,IAAI,KAAK,KAAK,QAAQ;QACpB,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;SAClD,CAAC;IACJ,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACtD,kEAAkE;IAClE,MAAM,gBAAgB,GAAG,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,CAAC;IAC7E,IAAI,KAAK,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC9E,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,gBAAgB,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,MAAM,QAAQ,GACZ,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9B,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC7C,IAAI,OAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,QAAQ;YACX,iBAAiB,EAAE,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpE,GAAG,sBAAsB,CAAC;gBACxB,gEAAgE;gBAChE,eAAe;gBACf,OAAO,EACL,KAAK,CAAC,KAAK,KAAK,SAAS;oBACvB,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC;wBACE,GAAG,KAAK,CAAC,OAAO;wBAChB,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,QAAQ,CAAC,QAAuB;yBAC3C;qBACF;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;aAC3C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6DAA6D;QAC7D,IAAI,QAAQ,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG;YACtD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAsD,EACtD,KAA4B;IAE5B,IAAI,KAAK,CAAC,iBAAiB,KAAK,UAAU,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAC3E,OAAO;IACT,IAAI,CAAC;QACH,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,MAAM,CAAC,IAAI,CACT,mDAAmD,IAAI,CAAC,SAAS,CAAC;YAChE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;SAC5B,CAAC,EAAE,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,wCAAwC;AACxC,SAAS,eAAe,CAAC,OAAuB;IAC9C,MAAM,OAAO,GACX,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,IAAI,YAAY,CAAC;YACf,aAAa,EAAE,OAAkC;SAClD,CAAC,CAAC;IACT,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO,CAAC,OAAoB;gBACrC,iBAAiB,EAAE,OAAO,CAAC,iBAA8B;aAC1D;SACF;QACD,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAA4C;IAE5C,MAAM,MAAM,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;KAC/D,CAAC,CAAC;IACH,IAAI,QAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,MAAM,KAAK,CAAC;QAC7C,MAAM,CAAC,IAAI,CACT,4BAA4B,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAC3E,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CACpB,oBAAoB,EACpB,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GACT,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,WAAW,GACf,UAAU;QACV,OAAO,UAAU,KAAK,QAAQ;QAC9B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,IAAI;QAClB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9E,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,CAAC;IACpD,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The thread for one provider conversation, such as an issue or a chat: the
3
+ * same channel and key always give the same UUID, so each message continues
4
+ * the conversation. The Python runtime derives the same IDs.
5
+ */
6
+ export declare function channelThreadId(channelName: string, key: string): string;
7
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/channels/http/threads.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxE"}
@@ -0,0 +1,10 @@
1
+ import { v5 as uuidv5 } from "uuid";
2
+ /**
3
+ * The thread for one provider conversation, such as an issue or a chat: the
4
+ * same channel and key always give the same UUID, so each message continues
5
+ * the conversation. The Python runtime derives the same IDs.
6
+ */
7
+ export function channelThreadId(channelName, key) {
8
+ return uuidv5(`mda-thread:v1:${JSON.stringify([channelName, key])}`, uuidv5.URL);
9
+ }
10
+ //# sourceMappingURL=threads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/channels/http/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,GAAW;IAC9D,OAAO,MAAM,CACX,iBAAiB,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,EACrD,MAAM,CAAC,GAAG,CACX,CAAC;AACJ,CAAC"}
@@ -1,11 +1,23 @@
1
+ import type { MultitaskStrategy } from "../../ingress/runs.js";
1
2
  import type { MessageContent } from "@langchain/core/messages";
2
3
  import type { ChannelMessage, JsonValue } from "../types.js";
4
+ import type { ChannelRunResult } from "../run-input.js";
3
5
  export interface HttpChannelInboundMessage {
4
6
  userId: string;
7
+ /** See {@link channelThreadId} for one thread per provider conversation. */
5
8
  threadId: string;
6
9
  /** Provider destination, independent of the LangGraph thread UUID. */
7
10
  target: JsonValue;
8
- content: MessageContent;
11
+ /**
12
+ * What a new run starts with. Without it, the adapter's `input` supplies it
13
+ * once MDA knows the thread takes a new turn.
14
+ */
15
+ content?: MessageContent;
16
+ /**
17
+ * The provider's ID for this delivery. A thread runs each delivery once, so
18
+ * a redelivered event starts nothing.
19
+ */
20
+ deliveryKey?: string;
9
21
  }
10
22
  export type HttpChannelParseResult = {
11
23
  type: "message";
@@ -29,11 +41,40 @@ export interface HttpPostedMessage {
29
41
  }
30
42
  export interface HttpChannelAdapter {
31
43
  provider: string;
44
+ providerConfig?: Record<string, JsonValue>;
45
+ /**
46
+ * What a message that starts a turn does while its thread already runs:
47
+ * `enqueue` (the default) waits for the run and starts after it,
48
+ * `interrupt` cancels the run, keeping its progress, and starts at once,
49
+ * `rollback` cancels it and discards its progress, and `reject` starts
50
+ * nothing. Messages to a thread that waits on an interrupt start nothing
51
+ * either way.
52
+ */
53
+ multitaskStrategy?: MultitaskStrategy;
32
54
  verify(context: HttpChannelRequest): boolean | Promise<boolean>;
33
55
  /** Decode the verified request body in the provider's format. */
34
56
  parse(context: HttpChannelRequest): HttpChannelParseResult | Promise<HttpChannelParseResult>;
35
57
  post?(input: HttpChannelPostInput): Promise<HttpPostedMessage>;
36
58
  onError?(error: unknown, target: JsonValue): Promise<void>;
59
+ /**
60
+ * What a message without `content` starts a run with, asked only once the
61
+ * thread takes a new turn, never while it waits on an interrupt. `null` or
62
+ * `undefined` starts nothing.
63
+ */
64
+ input?(message: HttpChannelInboundMessage, rawEvent: JsonValue | undefined): ChannelRunResult | null | undefined | Promise<ChannelRunResult | null | undefined>;
65
+ /**
66
+ * The message's thread waits on a decision, so MDA started no run; tell the
67
+ * sender where to make it. Failures are logged.
68
+ */
69
+ onPaused?(target: JsonValue, run: HttpChannelRunInfo): Promise<void>;
70
+ }
71
+ /** The thread a notice is about, for links into LangSmith Studio. */
72
+ export interface HttpChannelRunInfo {
73
+ threadId: string;
74
+ /** The assistant that runs on the thread, when known. */
75
+ assistantId?: string;
76
+ /** The provider event of the delivery the notice is about, when parsed. */
77
+ rawEvent?: JsonValue;
37
78
  }
38
79
  export interface HttpChannelRequest {
39
80
  request: Request;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE5C,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,CACH,OAAO,EAAE,kBAAkB,GAC1B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE5C,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,CACH,OAAO,EAAE,kBAAkB,GAC1B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;OAIG;IACH,KAAK,CAAC,CACJ,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAE7B,gBAAgB,GAChB,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Why a channel's reserved agent connection cannot be read as a user
3
+ * connection, or undefined for any other slug. Reading the GitHub App's token
4
+ * as the person running the agent is not supported yet.
5
+ */
6
+ export declare function reservedUserConnectionError(slug: string): string | undefined;
7
+ /**
8
+ * The connection that actually holds a channel's reserved agent connection;
9
+ * other slugs pass through unchanged.
10
+ */
11
+ export declare function reservedAgentConnectionSlug(slug: string, deploymentId: string | undefined): string;
12
+ //# sourceMappingURL=reserved-connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-connections.d.ts","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ5E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAGR"}
@@ -0,0 +1,28 @@
1
+ import { GITHUB_TOKEN_SLUG, githubAppConnectionSlug, } from "./github/connections.js";
2
+ // First-party channels' reserved agent connection names, listed here so
3
+ // resolution does not depend on adapter modules being loaded.
4
+ const builtinReservedConnections = new Map([
5
+ [GITHUB_TOKEN_SLUG, (deploymentId) => githubAppConnectionSlug(deploymentId)],
6
+ ]);
7
+ /**
8
+ * Why a channel's reserved agent connection cannot be read as a user
9
+ * connection, or undefined for any other slug. Reading the GitHub App's token
10
+ * as the person running the agent is not supported yet.
11
+ */
12
+ export function reservedUserConnectionError(slug) {
13
+ if (!builtinReservedConnections.has(slug))
14
+ return undefined;
15
+ const name = JSON.stringify(slug);
16
+ return (`${name} is not supported as a user connection yet: it is the GitHub App's ` +
17
+ `installation token, an agent connection. Use connections.get(${name}, ` +
18
+ `{ type: "agent" }) to act on GitHub as the App.`);
19
+ }
20
+ /**
21
+ * The connection that actually holds a channel's reserved agent connection;
22
+ * other slugs pass through unchanged.
23
+ */
24
+ export function reservedAgentConnectionSlug(slug, deploymentId) {
25
+ const resolve = builtinReservedConnections.get(slug);
26
+ return resolve && deploymentId ? resolve(deploymentId) : slug;
27
+ }
28
+ //# sourceMappingURL=reserved-connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-connections.js","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,8DAA8D;AAC9D,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAGxC;IACA,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;CAC7E,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACL,GAAG,IAAI,qEAAqE;QAC5E,gEAAgE,IAAI,IAAI;QACxE,iDAAiD,CAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,YAAgC;IAEhC,MAAM,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * What a channel handler starts a run with, in the shapes `agent.invoke`
3
+ * takes, normalized to the JSON the Agent Server accepts.
4
+ */
5
+ import { type BaseMessage, type BaseMessageLike } from "@langchain/core/messages";
6
+ import type { LangGraphRunnableConfig } from "@langchain/langgraph";
7
+ import type { JsonObject } from "./manifest.js";
8
+ /**
9
+ * State to start a run with, as `agent.invoke` takes it: `messages` plus any
10
+ * other keys of the agent's state.
11
+ */
12
+ export interface ChannelStateInput {
13
+ messages?: BaseMessageLike[];
14
+ [key: string]: unknown;
15
+ }
16
+ /** A user message's text, a message, or state to start a run with. */
17
+ export type ChannelRunInput = string | BaseMessage | ChannelStateInput;
18
+ /** Run options a handler may set with its input, as `agent.invoke` takes them. */
19
+ export type ChannelRunOptions = Pick<LangGraphRunnableConfig<Record<string, unknown>>, "context">;
20
+ /**
21
+ * What a channel handler may return to start a run: the input, or the input
22
+ * with run options, as `agent.invoke(input, options)` takes them.
23
+ */
24
+ export type ChannelRunResult = ChannelRunInput | readonly [ChannelRunInput, ChannelRunOptions];
25
+ /** A handler's result as the Agent Server takes it. */
26
+ export interface NormalizedRunInput {
27
+ /** Messages as JSON, each with a `role`. */
28
+ messages: JsonObject[];
29
+ /** Other state keys. */
30
+ state: JsonObject;
31
+ context?: JsonObject;
32
+ }
33
+ /**
34
+ * Normalize what a handler returned. `null` and `undefined` start nothing;
35
+ * anything else that is not valid input throws a `TypeError`.
36
+ */
37
+ export declare function normalizeRunInput(value: unknown): NormalizedRunInput | undefined;
38
+ //# sourceMappingURL=run-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-input.d.ts","sourceRoot":"","sources":["../../src/channels/run-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEvE,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChD,SAAS,CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAElD,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,wBAAwB;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,kBAAkB,GAAG,SAAS,CAsBhC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * What a channel handler starts a run with, in the shapes `agent.invoke`
3
+ * takes, normalized to the JSON the Agent Server accepts.
4
+ */
5
+ import { HumanMessage, coerceMessageLikeToMessage, isBaseMessage, } from "@langchain/core/messages";
6
+ import { isJsonValue } from "./message-schema.js";
7
+ const MESSAGE_ROLES = new Set([
8
+ "human",
9
+ "ai",
10
+ "system",
11
+ "tool",
12
+ ]);
13
+ /**
14
+ * Normalize what a handler returned. `null` and `undefined` start nothing;
15
+ * anything else that is not valid input throws a `TypeError`.
16
+ */
17
+ export function normalizeRunInput(value) {
18
+ if (value === null || value === undefined)
19
+ return undefined;
20
+ const [input, options] = Array.isArray(value)
21
+ ? value
22
+ : [value, undefined];
23
+ if (Array.isArray(value) && value.length !== 2 && value.length !== 1)
24
+ throw new TypeError("run input must be [input, options]");
25
+ const normalized = normalizeInput(input);
26
+ if (options === undefined)
27
+ return normalized;
28
+ if (!isPlainObject(options))
29
+ throw new TypeError("run options must be an object");
30
+ const { context, ...rest } = options;
31
+ if (Object.keys(rest).length)
32
+ throw new TypeError(`unsupported run option ${Object.keys(rest).join(", ")}; use context`);
33
+ if (context === undefined)
34
+ return normalized;
35
+ if (!isPlainObject(context) || !isJsonValue(context))
36
+ throw new TypeError("run context must be a JSON object");
37
+ if ("channel" in context)
38
+ throw new TypeError("context.channel is reserved for managed ingress");
39
+ return { ...normalized, context: context };
40
+ }
41
+ function normalizeInput(input) {
42
+ if (typeof input === "string") {
43
+ if (!input.trim())
44
+ throw new TypeError("run input must not be blank");
45
+ return { messages: [messageJson(new HumanMessage(input))], state: {} };
46
+ }
47
+ if (isBaseMessage(input))
48
+ return { messages: [messageJson(input)], state: {} };
49
+ if (!isPlainObject(input))
50
+ throw new TypeError("run input must be a string, a message, or an object of state");
51
+ const { messages, ...state } = input;
52
+ if (messages !== undefined && !Array.isArray(messages))
53
+ throw new TypeError("run input messages must be an array");
54
+ if (!isJsonValue(state))
55
+ throw new TypeError("run input state must be JSON");
56
+ const normalized = (messages ?? []).map(messageLike);
57
+ if (!normalized.length && !Object.keys(state).length)
58
+ throw new TypeError("run input must not be empty");
59
+ return { messages: normalized, state: state };
60
+ }
61
+ function messageLike(message) {
62
+ if (typeof message === "string" && !message.trim())
63
+ throw new TypeError("a message must not be blank");
64
+ try {
65
+ return messageJson(coerceMessageLikeToMessage(message));
66
+ }
67
+ catch (error) {
68
+ if (error instanceof TypeError)
69
+ throw error;
70
+ throw new TypeError("a message must be a string, a message, or JSON");
71
+ }
72
+ }
73
+ /**
74
+ * A message as the JSON the Agent Server turns back into a message: its
75
+ * `toDict()` fields with a `role`. `toDict()` puts content built from
76
+ * `contentBlocks` under `content_blocks`, which the server does not read, so
77
+ * the message's `content` is sent instead.
78
+ */
79
+ function messageJson(message) {
80
+ const role = message.getType();
81
+ if (!MESSAGE_ROLES.has(role))
82
+ throw new TypeError(`unsupported message type ${role}`);
83
+ const { content_blocks: _blocks, ...fields } = message.toDict().data;
84
+ const json = { ...fields, role, content: message.content };
85
+ if (!isJsonValue(json))
86
+ throw new TypeError("a message must be JSON");
87
+ return json;
88
+ }
89
+ function isPlainObject(value) {
90
+ if (value === null || typeof value !== "object" || Array.isArray(value))
91
+ return false;
92
+ const prototype = Object.getPrototypeOf(value);
93
+ return prototype === Object.prototype || prototype === null;
94
+ }
95
+ //# sourceMappingURL=run-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/channels/run-input.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ingress.d.ts","sourceRoot":"","sources":["../../../src/channels/trigger/ingress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AASvD,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B9B;AAkBD,6DAA6D;AAC7D,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B;AAED,iEAAiE;AACjE,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc9B"}
1
+ {"version":3,"file":"ingress.d.ts","sourceRoot":"","sources":["../../../src/channels/trigger/ingress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AASvD,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B9B;AAED,6DAA6D;AAC7D,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B;AAED,iEAAiE;AACjE,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc9B"}
@@ -2,7 +2,7 @@
2
2
  import { Client } from "@langchain/langgraph-sdk";
3
3
  import { buildIngressRunContext } from "../../ingress/index.js";
4
4
  import { resolveLoopbackApiUrl } from "../../identity/loopback.js";
5
- import { startIngressRun, resumeIngressRun, observeIngressRun, } from "../../ingress/runs.js";
5
+ import { startIngressRun, resumeIngressRun, observeIngressRun, lookupStatus, } from "../../ingress/runs.js";
6
6
  import { ChannelError } from "../errors.js";
7
7
  import { USER_HEADER, LANGCHAIN_API_KEY_ENV, AGENT_AUTH_PRINCIPAL_HEADER, SOURCE_PROVIDER_HEADER, SOURCE_THREAD_HEADER, } from "../../runtime/auth.js";
8
8
  /**
@@ -39,24 +39,6 @@ export async function ingressThreadInterrupts(input) {
39
39
  }
40
40
  return pending;
41
41
  }
42
- /**
43
- * HTTP status behind a failed loopback read.
44
- *
45
- * `AsyncCaller.fetch` rejects with the raw `Response`, so the status is usually
46
- * on the thrown value itself; wrapped clients expose it under `response`.
47
- */
48
- function lookupStatus(error) {
49
- if (typeof error !== "object" || error === null)
50
- return undefined;
51
- const direct = error.status;
52
- if (typeof direct === "number")
53
- return direct;
54
- const response = error.response;
55
- if (typeof response !== "object" || response === null)
56
- return undefined;
57
- const nested = response.status;
58
- return typeof nested === "number" ? nested : undefined;
59
- }
60
42
  /** Create a Trigger-addressed thread and enqueue its run. */
61
43
  export async function startIngressAgent(input) {
62
44
  const client = createTriggerIngressLoopbackClient({
@@ -1 +1 @@
1
- {"version":3,"file":"ingress.js","sourceRoot":"","sources":["../../../src/channels/trigger/ingress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingress.js","sourceRoot":"","sources":["../../../src/channels/trigger/ingress.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}