managed-deepagents 0.10.0-dev.17 → 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 +508 -80
- 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/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +13 -11
- package/dist/channels/github/index.js.map +1 -1
- package/dist/channels/github/schema.d.ts +50 -1
- package/dist/channels/github/schema.d.ts.map +1 -1
- package/dist/channels/github/schema.js +12 -0
- package/dist/channels/github/schema.js.map +1 -1
- package/dist/channels/http/endpoint.d.ts +6 -4
- package/dist/channels/http/endpoint.d.ts.map +1 -1
- package/dist/channels/http/endpoint.js.map +1 -1
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +4 -10
- package/dist/channels/http/http.js.map +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 +2 -2
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +9 -21
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/provider.d.ts +10 -5
- package/dist/channels/http/provider.d.ts.map +1 -1
- package/dist/channels/http/provider.js +17 -10
- package/dist/channels/http/provider.js.map +1 -1
- package/dist/channels/http/studio.d.ts +5 -5
- package/dist/channels/http/studio.d.ts.map +1 -1
- package/dist/channels/http/studio.js +4 -6
- package/dist/channels/http/studio.js.map +1 -1
- package/dist/channels/http/types.d.ts +7 -1
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/linear/index.d.ts.map +1 -1
- package/dist/channels/linear/index.js +16 -11
- package/dist/channels/linear/index.js.map +1 -1
- package/dist/channels/linear/schema.d.ts +11 -25
- package/dist/channels/linear/schema.d.ts.map +1 -1
- package/dist/channels/linear/schema.js +6 -0
- package/dist/channels/linear/schema.js.map +1 -1
- package/dist/channels/linear/types.d.ts +9 -2
- package/dist/channels/linear/types.d.ts.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.map +1 -1
- package/dist/channels/reserved-connections.js +10 -0
- package/dist/channels/reserved-connections.js.map +1 -1
- package/dist/channels/run-input.d.ts +11 -0
- package/dist/channels/run-input.d.ts.map +1 -1
- package/dist/channels/run-input.js +18 -8
- 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 +44 -2
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +124 -3
- 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/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/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/runs.d.ts +22 -0
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +45 -1
- 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 +0 -21
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +0 -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 +90 -63
- package/dist/runtime/auth.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 -23
- 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
- package/dist/channels/http/reply.d.ts +0 -20
- package/dist/channels/http/reply.d.ts.map +0 -1
- package/dist/channels/http/reply.js +0 -116
- package/dist/channels/http/reply.js.map +0 -1
package/dist/ingress/runs.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { ChannelError } from "../channels/errors.js";
|
|
2
|
+
import { nextThreadRecord, parseThreadRecord, storesThreadRecord, threadRecordMetadata, } from "../runtime/thread-record.js";
|
|
3
|
+
/**
|
|
4
|
+
* Every {@link MultitaskStrategy}, for channels that check one, by name.
|
|
5
|
+
* LangGraph exports the strategies as a type only, so this is keyed by that
|
|
6
|
+
* type: it stops compiling when LangGraph adds or drops one.
|
|
7
|
+
*/
|
|
8
|
+
export const MULTITASK_STRATEGIES = {
|
|
9
|
+
enqueue: "enqueue",
|
|
10
|
+
interrupt: "interrupt",
|
|
11
|
+
rollback: "rollback",
|
|
12
|
+
reject: "reject",
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Whether a run didn't start because a run started on its thread meanwhile
|
|
16
|
+
* and `reject` leaves the thread to it.
|
|
17
|
+
*/
|
|
18
|
+
export function rejectedAsBusy(strategy, error) {
|
|
19
|
+
return strategy === "reject" && lookupStatus(error) === 409;
|
|
20
|
+
}
|
|
2
21
|
/** Run metadata naming the provider delivery that started the run. */
|
|
3
22
|
export const DELIVERY_KEY_METADATA = "mda_delivery_key";
|
|
4
23
|
/**
|
|
@@ -30,6 +49,20 @@ export async function recordThreadDelivery(client, threadId, deliveryKey) {
|
|
|
30
49
|
metadata: { [DELIVERY_KEYS_METADATA]: keys.slice(-DELIVERY_LOOKBACK_RUNS) },
|
|
31
50
|
});
|
|
32
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Record the event's channel and sender on the thread before its run starts:
|
|
54
|
+
* the Agent Server copies thread metadata into a run when it creates one.
|
|
55
|
+
* Two events at once may each miss the other's sender; the sender's next
|
|
56
|
+
* event adds them again.
|
|
57
|
+
*/
|
|
58
|
+
async function recordThreadOrigin(client, threadId, metadata, origin) {
|
|
59
|
+
const next = nextThreadRecord(parseThreadRecord(metadata), origin.binding, origin.senderId);
|
|
60
|
+
if (storesThreadRecord(metadata, next))
|
|
61
|
+
return;
|
|
62
|
+
await client.threads.update(threadId, {
|
|
63
|
+
metadata: threadRecordMetadata(next),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
33
66
|
export async function ingressThreadState(client, threadId, deliveryKey) {
|
|
34
67
|
let thread;
|
|
35
68
|
try {
|
|
@@ -128,10 +161,17 @@ export function lookupStatus(error) {
|
|
|
128
161
|
}
|
|
129
162
|
/** Create the addressed thread and enqueue a run without waiting for its result. */
|
|
130
163
|
export async function startIngressRun(client, input) {
|
|
131
|
-
|
|
164
|
+
const origin = input.threadOrigin;
|
|
165
|
+
// An existing thread ignores the metadata and comes back with its own.
|
|
166
|
+
const thread = await client.threads.create({
|
|
132
167
|
threadId: input.threadId,
|
|
133
168
|
ifExists: "do_nothing",
|
|
169
|
+
...(origin && {
|
|
170
|
+
metadata: threadRecordMetadata(nextThreadRecord(null, origin.binding, origin.senderId)),
|
|
171
|
+
}),
|
|
134
172
|
});
|
|
173
|
+
if (origin)
|
|
174
|
+
await recordThreadOrigin(client, input.threadId, thread?.metadata, origin);
|
|
135
175
|
const run = await client.runs.create(input.threadId, input.assistantId, {
|
|
136
176
|
input: { ...input.state, messages: input.messages },
|
|
137
177
|
...(input.metadata !== undefined ? { metadata: input.metadata } : {}),
|
|
@@ -144,6 +184,10 @@ export async function startIngressRun(client, input) {
|
|
|
144
184
|
}
|
|
145
185
|
/** Enqueue a keyed interrupt response on an existing thread. */
|
|
146
186
|
export async function resumeIngressRun(client, input) {
|
|
187
|
+
if (input.threadOrigin) {
|
|
188
|
+
const thread = await client.threads.get(input.threadId);
|
|
189
|
+
await recordThreadOrigin(client, input.threadId, thread.metadata, input.threadOrigin);
|
|
190
|
+
}
|
|
147
191
|
const run = await client.runs.create(input.threadId, input.assistantId, {
|
|
148
192
|
command: { resume: input.resume },
|
|
149
193
|
...(input.config !== undefined ? { config: input.config } : {}),
|
package/dist/ingress/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/ingress/runs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/ingress/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-composition.d.ts","sourceRoot":"","sources":["../src/managed-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-composition.d.ts","sourceRoot":"","sources":["../src/managed-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAGxE,eAAO,MAAM,0BAA0B,iIACyF,CAAC;AAmCjI,0DAA0D;AAC1D,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,iBAAiB,GAAG,IAAI,CAgB1B;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAejE;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,gBAAgB,CAAC,KAAK,CAAC,CAiBzB;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC9B,IAAI,CAIN;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBlE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAqB1D;AAyCD,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CA4BrE;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,qBAAqB,EACrC,MAAM,EAAE,OAAO,GAAG,OAAO,CAuD1B"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { isConnector } from "./runtime/connector.js";
|
|
2
2
|
import { normalizeMemoryLayers } from "./memory/layers.js";
|
|
3
|
+
import { isPlainObject } from "./values.js";
|
|
3
4
|
export const DYNAMIC_MEMORY_ALLOW_ERROR = "Dynamically selected memory cannot use `allow`. Select memory layers or return null from the dynamic agent resolver instead.";
|
|
4
5
|
const SKILL_NAME = /^[a-z][a-z0-9-]{0,63}$/;
|
|
5
6
|
const SKILL_FILE_SEGMENT = /^[A-Za-z0-9._-]+$/;
|
|
6
|
-
function isPlainRecord(value) {
|
|
7
|
-
if (value === null || typeof value !== "object")
|
|
8
|
-
return false;
|
|
9
|
-
const prototype = Object.getPrototypeOf(value);
|
|
10
|
-
return prototype === Object.prototype || prototype === null;
|
|
11
|
-
}
|
|
12
7
|
function isMcpServersDefinition(value) {
|
|
13
8
|
return isConnector(value) && value.kind === "mcp_servers";
|
|
14
9
|
}
|
|
@@ -22,7 +17,7 @@ function snapshotSandboxValue(value, copies) {
|
|
|
22
17
|
copy.push(...value.map((item) => snapshotSandboxValue(item, copies)));
|
|
23
18
|
return Object.freeze(copy);
|
|
24
19
|
}
|
|
25
|
-
if (!
|
|
20
|
+
if (!isPlainObject(value))
|
|
26
21
|
return value;
|
|
27
22
|
const existing = copies.get(value);
|
|
28
23
|
if (existing !== undefined)
|
|
@@ -38,9 +33,9 @@ function snapshotSandboxValue(value, copies) {
|
|
|
38
33
|
export function snapshotSandboxSelection(value) {
|
|
39
34
|
if (value === null)
|
|
40
35
|
return null;
|
|
41
|
-
if (!
|
|
36
|
+
if (!isPlainObject(value) ||
|
|
42
37
|
value.kind !== "sandbox" ||
|
|
43
|
-
!
|
|
38
|
+
!isPlainObject(value.options)) {
|
|
44
39
|
throw new TypeError("sandbox must be a SandboxDefinition or null");
|
|
45
40
|
}
|
|
46
41
|
return Object.freeze({
|
|
@@ -67,9 +62,9 @@ export function snapshotMcpSelection(value) {
|
|
|
67
62
|
}
|
|
68
63
|
/** Validate and snapshot a memory definition selected for a run. */
|
|
69
64
|
export function snapshotMemorySelection(value) {
|
|
70
|
-
if (!
|
|
65
|
+
if (!isPlainObject(value) ||
|
|
71
66
|
value.kind !== "memory" ||
|
|
72
|
-
!
|
|
67
|
+
!isPlainObject(value.config) ||
|
|
73
68
|
value.config.version !== 2 ||
|
|
74
69
|
!Array.isArray(value.config.scope)) {
|
|
75
70
|
throw new TypeError("memory must be created with defineMemory(...)");
|
|
@@ -134,7 +129,7 @@ function copyGeneratedSkill(value) {
|
|
|
134
129
|
}
|
|
135
130
|
let files;
|
|
136
131
|
if ("files" in value) {
|
|
137
|
-
if (!
|
|
132
|
+
if (!isPlainObject(value.files)) {
|
|
138
133
|
throw new TypeError("skills files must be a mapping of text files");
|
|
139
134
|
}
|
|
140
135
|
const entries = Object.entries(value.files);
|
|
@@ -160,7 +155,7 @@ export function snapshotSkillSelection(value) {
|
|
|
160
155
|
for (const item of value) {
|
|
161
156
|
const skill = typeof item === "string"
|
|
162
157
|
? item
|
|
163
|
-
:
|
|
158
|
+
: isPlainObject(item)
|
|
164
159
|
? copyGeneratedSkill(item)
|
|
165
160
|
: null;
|
|
166
161
|
if (skill === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-composition.js","sourceRoot":"","sources":["../src/managed-composition.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-composition.js","sourceRoot":"","sources":["../src/managed-composition.ts"],"names":[],"mappings":"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"}
|
package/dist/namespaces.d.ts
CHANGED
|
@@ -19,28 +19,7 @@ import { githubChannel } from "./channels/github/index.js";
|
|
|
19
19
|
import { linearChannel } from "./channels/linear/index.js";
|
|
20
20
|
import { httpChannel } from "./channels/http/index.js";
|
|
21
21
|
import { slackChannel } from "./channels/slack/index.js";
|
|
22
|
-
import { defineMcp } from "./connectors/mcp/index.js";
|
|
23
22
|
export { auth } from "./identity/index.js";
|
|
24
|
-
/** @internal */
|
|
25
|
-
export declare const CONNECTORS_MCP_DEPRECATION = "connectors.mcp(...) is deprecated; use defineMcp(...) instead. It will be removed in 0.8.0.";
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated Use {@link defineMcp} instead. The `connectors` namespace will
|
|
28
|
-
* be removed in 0.8.0.
|
|
29
|
-
*
|
|
30
|
-
* Docs live on this interface so IDE hover on `connectors.mcp` stays useful.
|
|
31
|
-
*/
|
|
32
|
-
export interface Connectors {
|
|
33
|
-
/**
|
|
34
|
-
* @deprecated Use {@link defineMcp} instead. `connectors.mcp` will be removed
|
|
35
|
-
* in 0.8.0.
|
|
36
|
-
*/
|
|
37
|
-
mcp: typeof defineMcp;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @deprecated Use {@link defineMcp} instead. The `connectors` namespace will
|
|
41
|
-
* be removed in 0.8.0.
|
|
42
|
-
*/
|
|
43
|
-
export declare const connectors: Connectors;
|
|
44
23
|
/**
|
|
45
24
|
* Inbound messaging surfaces. Exported from `channels/*`.
|
|
46
25
|
*
|
package/dist/namespaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,OAAO,YAAY,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,QAKtB,CAAC"}
|
package/dist/namespaces.js
CHANGED
|
@@ -19,36 +19,7 @@ import { githubChannel } from "./channels/github/index.js";
|
|
|
19
19
|
import { linearChannel } from "./channels/linear/index.js";
|
|
20
20
|
import { httpChannel } from "./channels/http/index.js";
|
|
21
21
|
import { slackChannel } from "./channels/slack/index.js";
|
|
22
|
-
import { defineMcp } from "./connectors/mcp/index.js";
|
|
23
22
|
export { auth } from "./identity/index.js";
|
|
24
|
-
/** @internal */
|
|
25
|
-
export const CONNECTORS_MCP_DEPRECATION = "connectors.mcp(...) is deprecated; use defineMcp(...) instead. It will be removed in 0.8.0.";
|
|
26
|
-
function emitConnectorsMcpDeprecation() {
|
|
27
|
-
if (typeof process !== "undefined" &&
|
|
28
|
-
typeof process.emitWarning === "function") {
|
|
29
|
-
process.emitWarning(CONNECTORS_MCP_DEPRECATION, {
|
|
30
|
-
type: "DeprecationWarning",
|
|
31
|
-
code: "MDA_CONNECTORS_MCP",
|
|
32
|
-
});
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
console.warn(CONNECTORS_MCP_DEPRECATION);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated Use {@link defineMcp} instead. `connectors.mcp` will be removed
|
|
39
|
-
* in 0.8.0.
|
|
40
|
-
*/
|
|
41
|
-
function deprecatedMcp(config) {
|
|
42
|
-
emitConnectorsMcpDeprecation();
|
|
43
|
-
return defineMcp(config);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @deprecated Use {@link defineMcp} instead. The `connectors` namespace will
|
|
47
|
-
* be removed in 0.8.0.
|
|
48
|
-
*/
|
|
49
|
-
export const connectors = {
|
|
50
|
-
mcp: deprecatedMcp,
|
|
51
|
-
};
|
|
52
23
|
/**
|
|
53
24
|
* Inbound messaging surfaces. Factories are assigned by reference so signatures
|
|
54
25
|
* stay in step with the channel modules. Hover docs come from {@link Channels}.
|
package/dist/namespaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAoD3C;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;CAClB,CAAC"}
|
package/dist/runtime/auth.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Auth } from "@langchain/langgraph-sdk/auth";
|
|
2
2
|
import type { AuthEventValueMap } from "@langchain/langgraph-sdk/auth";
|
|
3
3
|
import { type IdentityConfig, type IdentityDefinition, type RuntimeIdentity } from "../identity/index.js";
|
|
4
|
-
import { CHANNEL_THREAD_METADATA } from "./identity-runtime.js";
|
|
5
4
|
/**
|
|
6
5
|
* Reserved transport for the trusted-backend ingress mode. User identity
|
|
7
6
|
* travels as reserved headers (mapped into `config.configurable` by the generated
|
|
@@ -37,7 +36,6 @@ export declare const LANGSMITH_API_KEY_ENV = "LANGSMITH_API_KEY";
|
|
|
37
36
|
export declare const LANGCHAIN_API_KEY_ENV = "LANGCHAIN_API_KEY";
|
|
38
37
|
/** Internal Trigger-channel principal used to start and observe Agent runs. */
|
|
39
38
|
export declare const CHANNEL_SERVICE_USER = "mda:channel";
|
|
40
|
-
export { CHANNEL_THREAD_METADATA };
|
|
41
39
|
/** Owner-key namespace for threads owned by a channel source conversation. */
|
|
42
40
|
export declare const CHANNEL_THREAD_OWNER_PREFIX = "mda:source-thread:";
|
|
43
41
|
/**
|
|
@@ -211,4 +209,5 @@ export declare function threadOwnerKey(user: ManagedUser): string;
|
|
|
211
209
|
export declare function isChannelEventsRequest(request: Request): boolean;
|
|
212
210
|
/** Placeholder identity so middleware allows provider-signed channel Events. */
|
|
213
211
|
export declare function channelEventsBypassUser(): ManagedUser;
|
|
212
|
+
export {};
|
|
214
213
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EAGL,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/auth.js
CHANGED
|
@@ -2,10 +2,12 @@ import { setTimeout as sleep } from "node:timers/promises";
|
|
|
2
2
|
import { Auth, HTTPException, isStudioUser, } from "@langchain/langgraph-sdk/auth";
|
|
3
3
|
import { isTrustedSourceProvider } from "../channels/source-providers.js";
|
|
4
4
|
import {} from "../identity/index.js";
|
|
5
|
-
import { buildRuntimeIdentity,
|
|
5
|
+
import { buildRuntimeIdentity, runtimeUserId } from "./identity-runtime.js";
|
|
6
6
|
import { logger } from "./log.js";
|
|
7
|
+
import { hasThreadRecordKeys, parseThreadRecord, stripThreadRecordKeys, } from "./thread-record.js";
|
|
7
8
|
import { resolveValidatedTokenUser } from "./validated-token.js";
|
|
8
|
-
import { authorizeSchedule, scheduleAccess, scheduleHandoffUser, } from "./schedule-auth.js";
|
|
9
|
+
import { authorizeSchedule, isScheduleThreadRecord, scheduleAccess, scheduleHandoffUser, } from "./schedule-auth.js";
|
|
10
|
+
import { isRecord } from "../values.js";
|
|
9
11
|
/**
|
|
10
12
|
* Reserved transport for the trusted-backend ingress mode. User identity
|
|
11
13
|
* travels as reserved headers (mapped into `config.configurable` by the generated
|
|
@@ -62,7 +64,6 @@ const CHANNEL_EVENTS_PATH = /^\/(?:v1\/)?channels\/[^/]+\/events\/?$/;
|
|
|
62
64
|
const CONNECTOR_EVENTS_PATH = /^\/connectors\/[^/]+\/events\/?$/;
|
|
63
65
|
/** Synthetic user so middleware_first allows adapter-authenticated Events ingress. */
|
|
64
66
|
const CHANNEL_EVENTS_USER = "mda:channel-events";
|
|
65
|
-
export { CHANNEL_THREAD_METADATA };
|
|
66
67
|
/** Owner-key namespace for threads owned by a channel source conversation. */
|
|
67
68
|
export const CHANNEL_THREAD_OWNER_PREFIX = "mda:source-thread:";
|
|
68
69
|
/**
|
|
@@ -100,27 +101,35 @@ export function buildManagedAuth(identity) {
|
|
|
100
101
|
return resolveValidatedTokenUser(cfg, http, request);
|
|
101
102
|
});
|
|
102
103
|
// Let Studio inspect every deployment thread so channel-triggered runs and
|
|
103
|
-
// their interrupts are visible there, and answer
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
104
|
+
// their interrupts are visible there, and answer interrupts on any thread,
|
|
105
|
+
// which channels link to. Keep other mutations owner-scoped: Studio
|
|
106
|
+
// identity is reachable by any holder of a workspace LangSmith API key, so
|
|
107
|
+
// exempting all thread actions would also let that key alter caller threads
|
|
108
|
+
// or speak in a channel's conversation.
|
|
108
109
|
auth.on("threads", ({ user, action, value }) => {
|
|
109
110
|
if (action === "search" && scheduleAccess(user))
|
|
110
111
|
return true;
|
|
112
|
+
// Read before the record keys are stripped: naming one is not a resume.
|
|
113
|
+
const resumeOnly = isStudioUser(user) && action === "create_run" && isResumeOnly(value);
|
|
114
|
+
guardThreadRecord(user, action, value);
|
|
111
115
|
if (isLocalDevUnscopedUser(user)) {
|
|
112
116
|
return true;
|
|
113
117
|
}
|
|
114
118
|
if (isStudioUser(user) && (action === "read" || action === "search")) {
|
|
115
119
|
return true;
|
|
116
120
|
}
|
|
121
|
+
// Studio may stop a run on any thread, as it may resume one there, so a
|
|
122
|
+
// runaway channel run can be cancelled from the deployment UI. Only
|
|
123
|
+
// `interrupt` on one thread: `rollback` deletes checkpoints, and a bulk
|
|
124
|
+
// cancel without a thread would stop every run in the deployment.
|
|
125
|
+
if (isStudioUser(user) &&
|
|
126
|
+
action === "update" &&
|
|
127
|
+
isSingleThreadInterrupt(value)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
117
130
|
if (isStudioUser(user) && action === "create_run") {
|
|
118
|
-
if (
|
|
119
|
-
|
|
120
|
-
[CHANNEL_THREAD_METADATA]: "true",
|
|
121
|
-
};
|
|
122
|
-
return channelThreads;
|
|
123
|
-
}
|
|
131
|
+
if (resumeOnly)
|
|
132
|
+
return true;
|
|
124
133
|
// Owner-scoped below, so Studio sees "not found"; say why, by shape only.
|
|
125
134
|
logger.info(`studio run is not a resume, so it is owner-scoped ${JSON.stringify(runShape(value))}`);
|
|
126
135
|
}
|
|
@@ -128,20 +137,7 @@ export function buildManagedAuth(identity) {
|
|
|
128
137
|
const key = threadOwnerKey(managed);
|
|
129
138
|
if (value && typeof value === "object") {
|
|
130
139
|
const container = value;
|
|
131
|
-
|
|
132
|
-
const { [CHANNEL_THREAD_METADATA]: _claimed, ...metadata } = container.metadata ?? {};
|
|
133
|
-
container.metadata = {
|
|
134
|
-
...metadata,
|
|
135
|
-
owner: key,
|
|
136
|
-
// Searches keep finding threads made before the marker existed.
|
|
137
|
-
...(action !== "search" &&
|
|
138
|
-
channelConversationOwnerKey(managed) && {
|
|
139
|
-
[CHANNEL_THREAD_METADATA]: "true",
|
|
140
|
-
}),
|
|
141
|
-
};
|
|
142
|
-
// A run's config metadata merges into what the run sees as well, so a
|
|
143
|
-
// run can't claim the marker there either.
|
|
144
|
-
dropChannelThreadMarker(value.config);
|
|
140
|
+
container.metadata = { ...container.metadata, owner: key };
|
|
145
141
|
}
|
|
146
142
|
return { owner: key };
|
|
147
143
|
});
|
|
@@ -166,10 +162,13 @@ export function buildManagedAuth(identity) {
|
|
|
166
162
|
// their own scoping.
|
|
167
163
|
auth.on("*", ({ user, resource, action, value }) => {
|
|
168
164
|
// An assistant's metadata merges into its runs' too, so no caller, Studio
|
|
169
|
-
// included, may
|
|
165
|
+
// included, may give an assistant a thread record.
|
|
170
166
|
if (resource === "assistants") {
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
if (isRecord(value)) {
|
|
168
|
+
stripThreadRecordKeys(value.metadata);
|
|
169
|
+
if (isRecord(value.config))
|
|
170
|
+
stripThreadRecordKeys(value.config.metadata);
|
|
171
|
+
}
|
|
173
172
|
}
|
|
174
173
|
if (isStudioUser(user) || isLocalDevUnscopedUser(user)) {
|
|
175
174
|
return true;
|
|
@@ -479,7 +478,7 @@ async function verifyLangSmithApiKey(endpoint, headers) {
|
|
|
479
478
|
message: "LangSmith API-key verification returned an invalid response",
|
|
480
479
|
});
|
|
481
480
|
}
|
|
482
|
-
if (!
|
|
481
|
+
if (!isRecord(verified)) {
|
|
483
482
|
throw new HTTPException(503, {
|
|
484
483
|
message: "LangSmith API-key verification returned an invalid response",
|
|
485
484
|
});
|
|
@@ -566,8 +565,14 @@ async function fetchLangSmithVerification(url, headers) {
|
|
|
566
565
|
await sleep(Math.random() * Math.min(100 * 2 ** attempt, 200));
|
|
567
566
|
}
|
|
568
567
|
}
|
|
569
|
-
|
|
570
|
-
|
|
568
|
+
/**
|
|
569
|
+
* True for a run-cancel `threads:update` that interrupts runs on one thread.
|
|
570
|
+
*
|
|
571
|
+
* Run cancellation is the only thread update that carries `action`; metadata
|
|
572
|
+
* patches and state updates never set it.
|
|
573
|
+
*/
|
|
574
|
+
function isSingleThreadInterrupt(value) {
|
|
575
|
+
return (isRecord(value) && value.action === "interrupt" && value.thread_id != null);
|
|
571
576
|
}
|
|
572
577
|
function isLangSmithApiKeyAuth(http) {
|
|
573
578
|
return typeof http === "object" && http.mode === "langsmith_api_key";
|
|
@@ -630,48 +635,83 @@ function localDevServiceUser(request) {
|
|
|
630
635
|
* checkpoint and the user's breakpoints, so none of those can be refused.
|
|
631
636
|
*/
|
|
632
637
|
function isResumeOnly(value) {
|
|
633
|
-
if (!
|
|
638
|
+
if (!isRecord(value))
|
|
634
639
|
return false;
|
|
635
640
|
const { thread_id: threadId, kwargs } = value;
|
|
636
641
|
if (typeof threadId !== "string" || !threadId.trim())
|
|
637
642
|
return false;
|
|
638
|
-
if (!
|
|
643
|
+
if (!isRecord(kwargs) || kwargs.input != null)
|
|
639
644
|
return false;
|
|
640
645
|
if (kwargs.webhook != null)
|
|
641
646
|
return false;
|
|
642
|
-
// The run's metadata merges over the thread's; it may not
|
|
643
|
-
if (
|
|
647
|
+
// The run's metadata merges over the thread's; it may not touch its record.
|
|
648
|
+
if (claimsThreadRecord(value.metadata))
|
|
644
649
|
return false;
|
|
645
650
|
const { config } = kwargs;
|
|
646
|
-
if (config != null && !
|
|
651
|
+
if (config != null && !isRecord(config))
|
|
647
652
|
return false;
|
|
648
|
-
if (
|
|
653
|
+
if (isRecord(config) && claimsThreadRecord(config.metadata)) {
|
|
649
654
|
return false;
|
|
650
655
|
}
|
|
651
656
|
const { command } = kwargs;
|
|
652
|
-
return (
|
|
657
|
+
return (isRecord(command) &&
|
|
653
658
|
Object.keys(command).every((key) => key === "resume") &&
|
|
654
659
|
command.resume != null);
|
|
655
660
|
}
|
|
656
|
-
/** Whether run metadata names
|
|
657
|
-
function
|
|
661
|
+
/** Whether run metadata names a thread-record key at all. */
|
|
662
|
+
function claimsThreadRecord(metadata) {
|
|
658
663
|
if (metadata == null)
|
|
659
664
|
return false;
|
|
660
|
-
return
|
|
665
|
+
return !isRecord(metadata) || hasThreadRecordKeys(metadata);
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* Strip the thread record from a payload unless managed ingress writes it.
|
|
669
|
+
*
|
|
670
|
+
* The Agent Server protects no metadata key, and a run's metadata merges over
|
|
671
|
+
* its thread's, so only a thread create or update by the conversation's own
|
|
672
|
+
* channel caller keeps a record, and only one for that conversation. Runs
|
|
673
|
+
* carry none, except a cron fire whose new-thread record names its
|
|
674
|
+
* execution. Searches only filter, so they keep theirs.
|
|
675
|
+
*/
|
|
676
|
+
function guardThreadRecord(user, action, value) {
|
|
677
|
+
if (action === "search" || !isRecord(value))
|
|
678
|
+
return;
|
|
679
|
+
const { metadata, config, kwargs } = value;
|
|
680
|
+
// A cron fire's run metadata is its cron's, which becomes a new thread's
|
|
681
|
+
// metadata; cron auth already checked that record against the execution.
|
|
682
|
+
const keepRecord = action === "create" || action === "update"
|
|
683
|
+
? isIngressThreadRecord(user, metadata)
|
|
684
|
+
: action === "create_run" &&
|
|
685
|
+
user.mda_scheduled_run === true &&
|
|
686
|
+
isScheduleThreadRecord(metadata, user);
|
|
687
|
+
stripThreadRecordKeys(metadata, { keepRecord });
|
|
688
|
+
stripThreadRecordKeys(isRecord(config) ? config.metadata : undefined);
|
|
689
|
+
const runConfig = isRecord(kwargs) ? kwargs.config : undefined;
|
|
690
|
+
stripThreadRecordKeys(isRecord(runConfig) ? runConfig.metadata : undefined);
|
|
691
|
+
}
|
|
692
|
+
/** Whether metadata holds a well-formed record of the caller's own conversation. */
|
|
693
|
+
function isIngressThreadRecord(user, metadata) {
|
|
694
|
+
if (!channelConversationOwnerKey(user))
|
|
695
|
+
return false;
|
|
696
|
+
const origin = parseThreadRecord(metadata, { exact: true })?.origin;
|
|
697
|
+
return (!!origin &&
|
|
698
|
+
origin.channel.provider === user.mda_source_provider &&
|
|
699
|
+
origin.channel.source_thread_key === user.mda_source_thread_id &&
|
|
700
|
+
(origin.sender === null || origin.sender === user.mda_user_id));
|
|
661
701
|
}
|
|
662
702
|
/** What a run payload holds, without its values, to explain a refusal. */
|
|
663
703
|
function runShape(value) {
|
|
664
|
-
if (!
|
|
704
|
+
if (!isRecord(value))
|
|
665
705
|
return { value: typeof value };
|
|
666
706
|
const { thread_id: threadId, kwargs } = value;
|
|
667
|
-
const input =
|
|
668
|
-
const command =
|
|
707
|
+
const input = isRecord(kwargs) ? kwargs.input : undefined;
|
|
708
|
+
const command = isRecord(kwargs) ? kwargs.command : undefined;
|
|
669
709
|
return {
|
|
670
710
|
threadId: typeof threadId,
|
|
671
|
-
webhook:
|
|
672
|
-
kwargs:
|
|
711
|
+
webhook: isRecord(kwargs) && kwargs.webhook != null,
|
|
712
|
+
kwargs: isRecord(kwargs) ? "object" : typeof kwargs,
|
|
673
713
|
input: input === null ? "null" : Array.isArray(input) ? "array" : typeof input,
|
|
674
|
-
command:
|
|
714
|
+
command: isRecord(command)
|
|
675
715
|
? Object.keys(command)
|
|
676
716
|
.slice(0, 8)
|
|
677
717
|
.map((key) => logger.logIdentifier(key))
|
|
@@ -680,19 +720,6 @@ function runShape(value) {
|
|
|
680
720
|
: typeof command,
|
|
681
721
|
};
|
|
682
722
|
}
|
|
683
|
-
function isPlainRecord(value) {
|
|
684
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
685
|
-
}
|
|
686
|
-
/**
|
|
687
|
-
* Remove the channel-thread marker from a payload's `metadata`. A run's
|
|
688
|
-
* metadata is its assistant's, thread's, config's and own metadata merged, and
|
|
689
|
-
* only managed ingress may mark a channel's thread.
|
|
690
|
-
*/
|
|
691
|
-
function dropChannelThreadMarker(holder) {
|
|
692
|
-
if (isPlainRecord(holder) && isPlainRecord(holder.metadata)) {
|
|
693
|
-
delete holder.metadata[CHANNEL_THREAD_METADATA];
|
|
694
|
-
}
|
|
695
|
-
}
|
|
696
723
|
/**
|
|
697
724
|
* Derive the owner value `@auth.on.threads` filters on.
|
|
698
725
|
*
|