managed-deepagents 0.0.3-dev.32 → 0.0.3-dev.34
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/dist/connectors.d.ts +2 -7
- package/dist/connectors.d.ts.map +1 -1
- package/dist/connectors.js +1 -18
- package/dist/connectors.js.map +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/index.d.ts +0 -13
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +12 -39
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/types.d.ts +7 -23
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/types.d.ts +0 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -12
- package/dist/connectors/langsmith.d.ts +0 -133
- package/dist/connectors/langsmith.d.ts.map +0 -1
- package/dist/connectors/langsmith.js +0 -262
- package/dist/connectors/langsmith.js.map +0 -1
- package/dist/identity.d.ts +0 -273
- package/dist/identity.d.ts.map +0 -1
- package/dist/identity.js +0 -358
- package/dist/identity.js.map +0 -1
- package/dist/runtime/auth.d.ts +0 -54
- package/dist/runtime/auth.d.ts.map +0 -1
- package/dist/runtime/auth.js +0 -191
- package/dist/runtime/auth.js.map +0 -1
- package/dist/runtime/connector.d.ts +0 -138
- package/dist/runtime/connector.d.ts.map +0 -1
- package/dist/runtime/connector.js +0 -82
- package/dist/runtime/connector.js.map +0 -1
- package/dist/runtime/credentials.d.ts +0 -60
- package/dist/runtime/credentials.d.ts.map +0 -1
- package/dist/runtime/credentials.js +0 -189
- package/dist/runtime/credentials.js.map +0 -1
- package/dist/runtime/identity-http.d.ts +0 -27
- package/dist/runtime/identity-http.d.ts.map +0 -1
- package/dist/runtime/identity-http.js +0 -150
- package/dist/runtime/identity-http.js.map +0 -1
- package/dist/runtime/identity-runtime.d.ts +0 -54
- package/dist/runtime/identity-runtime.d.ts.map +0 -1
- package/dist/runtime/identity-runtime.js +0 -151
- package/dist/runtime/identity-runtime.js.map +0 -1
- package/dist/runtime/langsmith-connector.d.ts +0 -113
- package/dist/runtime/langsmith-connector.d.ts.map +0 -1
- package/dist/runtime/langsmith-connector.js +0 -410
- package/dist/runtime/langsmith-connector.js.map +0 -1
- package/dist/runtime/managed-middleware.d.ts +0 -25
- package/dist/runtime/managed-middleware.d.ts.map +0 -1
- package/dist/runtime/managed-middleware.js +0 -76
- package/dist/runtime/managed-middleware.js.map +0 -1
- package/dist/runtime/managed-tools.d.ts +0 -61
- package/dist/runtime/managed-tools.d.ts.map +0 -1
- package/dist/runtime/managed-tools.js +0 -102
- package/dist/runtime/managed-tools.js.map +0 -1
- package/dist/runtime/validated-token.d.ts +0 -25
- package/dist/runtime/validated-token.d.ts.map +0 -1
- package/dist/runtime/validated-token.js +0 -260
- package/dist/runtime/validated-token.js.map +0 -1
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LangSmith connector — runtime enforcement engine.
|
|
3
|
-
*
|
|
4
|
-
* Mounted by the connector's `http(ctx)` hook on its namespaced sub-router.
|
|
5
|
-
* Exposes one uniform endpoint per capability:
|
|
6
|
-
*
|
|
7
|
-
* POST /connectors/langsmith/capabilities/{capability_id}
|
|
8
|
-
*
|
|
9
|
-
* with a JSON body naming the `action` and its parameters. Per request the
|
|
10
|
-
* engine resolves identity (resolve-or-401), checks the caller surface, checks
|
|
11
|
-
* the action, validates typed constraints, performs the LangSmith operation
|
|
12
|
-
* server-side with the workspace key, and returns an allowlisted response.
|
|
13
|
-
*
|
|
14
|
-
* v0 does NOT prove object ownership (`runId` is treated as an unguessable
|
|
15
|
-
* capability, matching the app being replaced), and has no rate limiting, audit,
|
|
16
|
-
* or multi-workspace fan-out.
|
|
17
|
-
*/
|
|
18
|
-
import { Client } from "langsmith";
|
|
19
|
-
/** An error carrying an HTTP status the engine surfaces to the caller. */
|
|
20
|
-
export class EnforcementError extends Error {
|
|
21
|
-
status;
|
|
22
|
-
constructor(status, message) {
|
|
23
|
-
super(message);
|
|
24
|
-
this.status = status;
|
|
25
|
-
this.name = "EnforcementError";
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Mount the capability route on the connector's namespaced sub-router. Runs the
|
|
30
|
-
* identity-dependent authoring checks at mount time (fails startup on an illegal
|
|
31
|
-
* scope/ingress combination), then registers the uniform POST endpoint.
|
|
32
|
-
*/
|
|
33
|
-
export function mountLangSmithRoutes(ctx, capabilities, client = defaultClient()) {
|
|
34
|
-
validateAgainstIdentity(capabilities, ctx.identity);
|
|
35
|
-
const deps = {
|
|
36
|
-
capabilitiesById: new Map(capabilities.map((c) => [c.id, c])),
|
|
37
|
-
client,
|
|
38
|
-
identityConfig: ctx.identity,
|
|
39
|
-
requireIdentity: ctx.requireIdentity,
|
|
40
|
-
};
|
|
41
|
-
ctx.router.post("/capabilities/:id", (request) => handleCapabilityRequest(request, deps));
|
|
42
|
-
}
|
|
43
|
-
/** Identity-aware authoring validation, run when the app is constructed. */
|
|
44
|
-
export function validateAgainstIdentity(capabilities, identity) {
|
|
45
|
-
const httpMode = identity?.ingress.http;
|
|
46
|
-
const hasValidatedToken = httpMode !== undefined && httpMode !== "trusted_backend";
|
|
47
|
-
const tenancy = identity?.tenancy ?? "single";
|
|
48
|
-
for (const capability of capabilities) {
|
|
49
|
-
const externallyExposed = capability.exposeTo.length > 0;
|
|
50
|
-
const identityScoped = capability.scope === "actor" ||
|
|
51
|
-
capability.scope === "tenant" ||
|
|
52
|
-
capability.scope === "thread" ||
|
|
53
|
-
capability.scope === "run";
|
|
54
|
-
if (!identity) {
|
|
55
|
-
const readOnly = capability.actions.every((a) => a.startsWith("read"));
|
|
56
|
-
if (externallyExposed && !(capability.scope === "agent" && readOnly)) {
|
|
57
|
-
throw new Error(`LangSmith capability "${capability.id}" is exposed externally but the ` +
|
|
58
|
-
`deployment has no identity configured. Only agent-scoped, read-only ` +
|
|
59
|
-
`capabilities may be exposed without identity.`);
|
|
60
|
-
}
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
if (capability.scope === "tenant" && tenancy === "single") {
|
|
64
|
-
throw new Error(`LangSmith capability "${capability.id}" is tenant-scoped but the ` +
|
|
65
|
-
`deployment is tenancy: "single".`);
|
|
66
|
-
}
|
|
67
|
-
if (capability.exposeTo.includes("browser") &&
|
|
68
|
-
identityScoped &&
|
|
69
|
-
!hasValidatedToken) {
|
|
70
|
-
throw new Error(`LangSmith capability "${capability.id}" is ${capability.scope}-scoped and ` +
|
|
71
|
-
`exposed to browser, but the deployment has no validated_token ingress ` +
|
|
72
|
-
`to resolve an end-user identity.`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/** The per-request enforcement pipeline. Returns a JSON `Response`. */
|
|
77
|
-
export async function handleCapabilityRequest(request, deps) {
|
|
78
|
-
try {
|
|
79
|
-
const capabilityId = capabilityIdFromUrl(request.url);
|
|
80
|
-
const capability = deps.capabilitiesById.get(capabilityId);
|
|
81
|
-
if (!capability) {
|
|
82
|
-
throw new EnforcementError(404, `unknown capability "${capabilityId}"`);
|
|
83
|
-
}
|
|
84
|
-
const identity = await deps.requireIdentity(request);
|
|
85
|
-
const surface = callerSurface(identity, deps.identityConfig);
|
|
86
|
-
if (!capability.exposeTo.includes(surface)) {
|
|
87
|
-
throw new EnforcementError(403, `capability "${capability.id}" is not exposed to ${surface}`);
|
|
88
|
-
}
|
|
89
|
-
const body = await parseJsonBody(request);
|
|
90
|
-
const action = String(body.action ?? "");
|
|
91
|
-
if (!capability.actions.includes(action)) {
|
|
92
|
-
throw new EnforcementError(403, `action "${action}" is not allowed for capability "${capability.id}"`);
|
|
93
|
-
}
|
|
94
|
-
const raw = toRecord(await performLangSmithCall(capability, action, body, deps));
|
|
95
|
-
const shaped = shapeResponse(raw, capability);
|
|
96
|
-
return jsonResponse(200, { data: shaped });
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
if (error instanceof EnforcementError) {
|
|
100
|
-
return jsonResponse(error.status, { error: error.message });
|
|
101
|
-
}
|
|
102
|
-
const status = statusFromUnknownError(error);
|
|
103
|
-
return jsonResponse(status, { error: errorMessage(error) });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/** Map the resolved identity + ingress mode to a caller surface. */
|
|
107
|
-
export function callerSurface(identity, identityConfig) {
|
|
108
|
-
const provider = identity.source.provider;
|
|
109
|
-
if (provider === "slack") {
|
|
110
|
-
return "channel";
|
|
111
|
-
}
|
|
112
|
-
if (provider === "schedule") {
|
|
113
|
-
return "schedule";
|
|
114
|
-
}
|
|
115
|
-
// http / cli: browser vs trusted_backend depends on the ingress mode.
|
|
116
|
-
return identityConfig?.ingress.http === "trusted_backend"
|
|
117
|
-
? "trusted_backend"
|
|
118
|
-
: "browser";
|
|
119
|
-
}
|
|
120
|
-
// --- Call mapping ----------------------------------------------------------
|
|
121
|
-
async function performLangSmithCall(capability, action, body, deps) {
|
|
122
|
-
switch (capability.resource) {
|
|
123
|
-
case "feedback":
|
|
124
|
-
return feedbackCall(capability, action, body, deps.client);
|
|
125
|
-
case "runs":
|
|
126
|
-
return runsCall(action, body, deps.client);
|
|
127
|
-
case "examples":
|
|
128
|
-
return examplesCall(capability, body, deps.client);
|
|
129
|
-
case "annotation_queues":
|
|
130
|
-
return annotationQueueCall(capability, body, deps.client);
|
|
131
|
-
case "prompts":
|
|
132
|
-
return deps.client.readPrompt({ name: requireString(body, "name") });
|
|
133
|
-
case "threads":
|
|
134
|
-
return threadsCall(capability, action, body, deps.client);
|
|
135
|
-
default:
|
|
136
|
-
throw new EnforcementError(400, `resource "${capability.resource}" is not supported in v0`);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
async function feedbackCall(capability, action, body, client) {
|
|
140
|
-
const c = capability.constraints ?? {};
|
|
141
|
-
if (action === "create") {
|
|
142
|
-
const key = requireString(body, "key");
|
|
143
|
-
assertAllowed(c.keys, key, "key");
|
|
144
|
-
// Validated against the `scores` allowlist, then handed to the SDK as a
|
|
145
|
-
// categorical score/value (see LangSmithClient docs).
|
|
146
|
-
const score = body.score;
|
|
147
|
-
if (score !== undefined) {
|
|
148
|
-
assertAllowed(c.scores, String(score), "score");
|
|
149
|
-
}
|
|
150
|
-
const comment = optionalComment(body, c.maxCommentChars);
|
|
151
|
-
return client.createFeedback({
|
|
152
|
-
runId: requireString(body, "runId"),
|
|
153
|
-
key,
|
|
154
|
-
...(score !== undefined ? { score } : {}),
|
|
155
|
-
...(comment !== undefined ? { comment } : {}),
|
|
156
|
-
...(typeof body.feedbackId === "string"
|
|
157
|
-
? { feedbackId: body.feedbackId }
|
|
158
|
-
: {}),
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
if (action === "update") {
|
|
162
|
-
const comment = optionalComment(body, c.maxCommentChars);
|
|
163
|
-
const score = body.score;
|
|
164
|
-
return client.updateFeedback({
|
|
165
|
-
feedbackId: requireString(body, "feedbackId"),
|
|
166
|
-
...(score !== undefined ? { score } : {}),
|
|
167
|
-
...(comment !== undefined ? { comment } : {}),
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (action === "delete") {
|
|
171
|
-
return client.deleteFeedback({
|
|
172
|
-
feedbackId: requireString(body, "feedbackId"),
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
throw new EnforcementError(400, `unknown feedback action "${action}"`);
|
|
176
|
-
}
|
|
177
|
-
async function runsCall(action, body, client) {
|
|
178
|
-
const runId = requireString(body, "runId");
|
|
179
|
-
if (action === "read") {
|
|
180
|
-
return client.readRun({ runId });
|
|
181
|
-
}
|
|
182
|
-
if (action === "share") {
|
|
183
|
-
return client.shareRun({ runId });
|
|
184
|
-
}
|
|
185
|
-
throw new EnforcementError(400, `unknown runs action "${action}"`);
|
|
186
|
-
}
|
|
187
|
-
async function examplesCall(capability, body, client) {
|
|
188
|
-
const c = capability.constraints ?? {};
|
|
189
|
-
const dataset = c.dataset;
|
|
190
|
-
if (!dataset) {
|
|
191
|
-
throw new EnforcementError(400, "examples capability has no dataset");
|
|
192
|
-
}
|
|
193
|
-
const inputs = requireObject(body, "inputs");
|
|
194
|
-
const allowedFields = c.allowedFields;
|
|
195
|
-
if (allowedFields) {
|
|
196
|
-
for (const field of Object.keys(inputs)) {
|
|
197
|
-
if (!allowedFields.includes(field)) {
|
|
198
|
-
throw new EnforcementError(400, `field "${field}" is not allowed`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
const outputs = body.outputs && typeof body.outputs === "object"
|
|
203
|
-
? body.outputs
|
|
204
|
-
: undefined;
|
|
205
|
-
return client.createExample({
|
|
206
|
-
dataset,
|
|
207
|
-
inputs,
|
|
208
|
-
...(outputs ? { outputs } : {}),
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
async function annotationQueueCall(capability, body, client) {
|
|
212
|
-
const c = capability.constraints ?? {};
|
|
213
|
-
const queue = c.queue;
|
|
214
|
-
if (!queue) {
|
|
215
|
-
throw new EnforcementError(400, "annotation queue capability has no queue");
|
|
216
|
-
}
|
|
217
|
-
const priority = body.priority;
|
|
218
|
-
if (priority !== undefined) {
|
|
219
|
-
assertAllowed(c.allowedPriorities, String(priority), "priority");
|
|
220
|
-
}
|
|
221
|
-
const note = optionalComment(body, c.maxNoteChars, "note");
|
|
222
|
-
return client.enqueueRun({
|
|
223
|
-
queue,
|
|
224
|
-
runId: requireString(body, "runId"),
|
|
225
|
-
...(typeof priority === "string" ? { priority } : {}),
|
|
226
|
-
...(note !== undefined ? { note } : {}),
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
async function threadsCall(capability, action, body, client) {
|
|
230
|
-
const threadId = requireString(body, "threadId");
|
|
231
|
-
if (action === "read") {
|
|
232
|
-
return client.readThread({ threadId });
|
|
233
|
-
}
|
|
234
|
-
if (action === "update_metadata") {
|
|
235
|
-
const c = capability.constraints ?? {};
|
|
236
|
-
const metadata = requireObject(body, "metadata");
|
|
237
|
-
const metadataKeys = c.metadataKeys;
|
|
238
|
-
if (metadataKeys) {
|
|
239
|
-
for (const key of Object.keys(metadata)) {
|
|
240
|
-
if (!metadataKeys.includes(key)) {
|
|
241
|
-
throw new EnforcementError(400, `metadata key "${key}" is not allowed`);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
const maxTitle = c.maxTitleChars;
|
|
246
|
-
if (maxTitle !== undefined && typeof metadata.title === "string") {
|
|
247
|
-
if (metadata.title.length > maxTitle) {
|
|
248
|
-
throw new EnforcementError(400, `title exceeds ${maxTitle} characters`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return client.updateThreadMetadata({ threadId, metadata });
|
|
252
|
-
}
|
|
253
|
-
throw new EnforcementError(400, `unknown threads action "${action}"`);
|
|
254
|
-
}
|
|
255
|
-
// --- Response shaping ------------------------------------------------------
|
|
256
|
-
/** Apply the capability's `include` allowlist, then drop any `redact` roots. */
|
|
257
|
-
export function shapeResponse(raw, capability) {
|
|
258
|
-
const include = capability.response?.include ?? [];
|
|
259
|
-
const redact = new Set(capability.response?.redact ?? []);
|
|
260
|
-
const picked = {};
|
|
261
|
-
for (const path of include) {
|
|
262
|
-
const [root, ...rest] = path.split(".");
|
|
263
|
-
if (root === undefined || redact.has(root)) {
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
if (rest.length === 0) {
|
|
267
|
-
if (root in raw) {
|
|
268
|
-
picked[root] = raw[root];
|
|
269
|
-
}
|
|
270
|
-
continue;
|
|
271
|
-
}
|
|
272
|
-
const nested = pickNested(raw[root], rest);
|
|
273
|
-
if (nested !== undefined) {
|
|
274
|
-
const existing = picked[root] ?? {};
|
|
275
|
-
picked[root] = { ...existing, [rest.join(".")]: nested };
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return picked;
|
|
279
|
-
}
|
|
280
|
-
function pickNested(value, path) {
|
|
281
|
-
let current = value;
|
|
282
|
-
for (const segment of path) {
|
|
283
|
-
if (current && typeof current === "object" && segment in current) {
|
|
284
|
-
current = current[segment];
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
return undefined;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
return current;
|
|
291
|
-
}
|
|
292
|
-
// --- Helpers ---------------------------------------------------------------
|
|
293
|
-
function capabilityIdFromUrl(url) {
|
|
294
|
-
const { pathname } = new URL(url);
|
|
295
|
-
const marker = "/capabilities/";
|
|
296
|
-
const index = pathname.lastIndexOf(marker);
|
|
297
|
-
if (index === -1) {
|
|
298
|
-
throw new EnforcementError(404, "capability id missing from path");
|
|
299
|
-
}
|
|
300
|
-
return decodeURIComponent(pathname.slice(index + marker.length));
|
|
301
|
-
}
|
|
302
|
-
async function parseJsonBody(request) {
|
|
303
|
-
try {
|
|
304
|
-
const parsed = await request.json();
|
|
305
|
-
if (parsed && typeof parsed === "object") {
|
|
306
|
-
return parsed;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
catch {
|
|
310
|
-
// fall through to the uniform error below
|
|
311
|
-
}
|
|
312
|
-
throw new EnforcementError(400, "request body must be a JSON object");
|
|
313
|
-
}
|
|
314
|
-
function requireString(body, key) {
|
|
315
|
-
const value = body[key];
|
|
316
|
-
if (typeof value !== "string" || value.length === 0) {
|
|
317
|
-
throw new EnforcementError(400, `missing or invalid "${key}"`);
|
|
318
|
-
}
|
|
319
|
-
return value;
|
|
320
|
-
}
|
|
321
|
-
function requireObject(body, key) {
|
|
322
|
-
const value = body[key];
|
|
323
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
324
|
-
throw new EnforcementError(400, `missing or invalid "${key}"`);
|
|
325
|
-
}
|
|
326
|
-
return value;
|
|
327
|
-
}
|
|
328
|
-
function assertAllowed(allowed, value, label) {
|
|
329
|
-
if (allowed && !allowed.includes(value)) {
|
|
330
|
-
throw new EnforcementError(400, `${label} "${value}" is not allowed`);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function optionalComment(body, maxChars, field = "comment") {
|
|
334
|
-
const value = body[field];
|
|
335
|
-
if (value === undefined || value === null) {
|
|
336
|
-
return undefined;
|
|
337
|
-
}
|
|
338
|
-
if (typeof value !== "string") {
|
|
339
|
-
throw new EnforcementError(400, `"${field}" must be a string`);
|
|
340
|
-
}
|
|
341
|
-
if (maxChars !== undefined && value.length > maxChars) {
|
|
342
|
-
throw new EnforcementError(400, `"${field}" exceeds ${maxChars} characters`);
|
|
343
|
-
}
|
|
344
|
-
return value;
|
|
345
|
-
}
|
|
346
|
-
function jsonResponse(status, body) {
|
|
347
|
-
return new Response(JSON.stringify(body), {
|
|
348
|
-
status,
|
|
349
|
-
headers: { "content-type": "application/json" },
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
function statusFromUnknownError(error) {
|
|
353
|
-
const status = error?.status;
|
|
354
|
-
if (typeof status === "number" && status >= 400 && status <= 599) {
|
|
355
|
-
return status;
|
|
356
|
-
}
|
|
357
|
-
return 502;
|
|
358
|
-
}
|
|
359
|
-
function errorMessage(error) {
|
|
360
|
-
if (error instanceof Error) {
|
|
361
|
-
return error.message;
|
|
362
|
-
}
|
|
363
|
-
return "internal error";
|
|
364
|
-
}
|
|
365
|
-
/** Coerce an SDK result (object | void | null) into a plain record for shaping. */
|
|
366
|
-
function toRecord(value) {
|
|
367
|
-
if (value && typeof value === "object") {
|
|
368
|
-
return { ...value };
|
|
369
|
-
}
|
|
370
|
-
return {};
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Default client backed by the `langsmith` SDK {@link Client}. The underlying
|
|
374
|
-
* client is created on first use so building the engine (e.g. for an app with no
|
|
375
|
-
* requests yet) never requires `LANGSMITH_API_KEY`.
|
|
376
|
-
*
|
|
377
|
-
* A connector "score" is numeric/boolean → LangSmith `score`, or categorical
|
|
378
|
-
* (string/object) → LangSmith feedback `value`.
|
|
379
|
-
*/
|
|
380
|
-
export function defaultClient() {
|
|
381
|
-
let client;
|
|
382
|
-
const sdk = () => {
|
|
383
|
-
client ??= new Client({ apiKey: process.env.LANGSMITH_API_KEY });
|
|
384
|
-
return client;
|
|
385
|
-
};
|
|
386
|
-
const isScore = (value) => typeof value === "number" || typeof value === "boolean" || value === null;
|
|
387
|
-
const scoreOrValue = (value) => {
|
|
388
|
-
if (isScore(value)) {
|
|
389
|
-
return { score: value };
|
|
390
|
-
}
|
|
391
|
-
return value === undefined ? {} : { value };
|
|
392
|
-
};
|
|
393
|
-
return {
|
|
394
|
-
createFeedback: ({ runId, key, score, comment, feedbackId }) => sdk().createFeedback(runId, key, {
|
|
395
|
-
...scoreOrValue(score),
|
|
396
|
-
comment,
|
|
397
|
-
feedbackId,
|
|
398
|
-
}),
|
|
399
|
-
updateFeedback: ({ feedbackId, score, comment }) => sdk().updateFeedback(feedbackId, { ...scoreOrValue(score), comment }),
|
|
400
|
-
deleteFeedback: ({ feedbackId }) => sdk().deleteFeedback(feedbackId),
|
|
401
|
-
readRun: ({ runId }) => sdk().readRun(runId),
|
|
402
|
-
shareRun: async ({ runId }) => ({ url: await sdk().shareRun(runId) }),
|
|
403
|
-
createExample: ({ dataset, inputs, outputs }) => sdk().createExample({ inputs, outputs, dataset_name: dataset }),
|
|
404
|
-
enqueueRun: ({ queue, runId }) => sdk().addRunsToAnnotationQueue(queue, [runId]),
|
|
405
|
-
readPrompt: ({ name }) => sdk().getPrompt(name),
|
|
406
|
-
readThread: ({ threadId }) => sdk().readRun(threadId),
|
|
407
|
-
updateThreadMetadata: ({ threadId, metadata }) => sdk().updateRun(threadId, { extra: metadata }),
|
|
408
|
-
};
|
|
409
|
-
}
|
|
410
|
-
//# sourceMappingURL=langsmith-connector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"langsmith-connector.js","sourceRoot":"","sources":["../../src/runtime/langsmith-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { IdentityConfig } from "../identity.js";
|
|
2
|
-
/**
|
|
3
|
-
* A middleware from MDA's perspective: an object carrying optional lifecycle and
|
|
4
|
-
* wrap hooks. Kept structural so the wrapper works across `createMiddleware`
|
|
5
|
-
* objects and class-based `AgentMiddleware` instances alike.
|
|
6
|
-
*/
|
|
7
|
-
export interface ManagedMiddleware {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Wrap a middleware so every hook sees `runtime.identity` (…) without changing
|
|
12
|
-
* its name, schema, registered tools, or class.
|
|
13
|
-
*
|
|
14
|
-
* A `Proxy` intercepts only the hook properties: lifecycle hooks
|
|
15
|
-
* (`beforeAgent`/`beforeModel`/`afterModel`/`afterAgent`, in either function or
|
|
16
|
-
* `{ hook, canJumpTo }` form) get their `runtime` argument augmented, and the
|
|
17
|
-
* `wrap*` hooks get `request.runtime` augmented. Every other property and method
|
|
18
|
-
* — including the middleware brand, `name`, and `stateSchema` — passes through,
|
|
19
|
-
* preserving hook detection, `instanceof`, and framework wiring. Hooks are bound
|
|
20
|
-
* to the original instance so class-based middleware keep their `this`.
|
|
21
|
-
*/
|
|
22
|
-
export declare function withManagedMiddleware<T extends ManagedMiddleware>(middleware: T, cfg?: IdentityConfig): T;
|
|
23
|
-
/** Wrap every middleware in a list with {@link withManagedMiddleware}. */
|
|
24
|
-
export declare function wrapMiddlewareWithManagedRuntime<T extends ManagedMiddleware>(middleware: readonly T[], cfg?: IdentityConfig): T[];
|
|
25
|
-
//# sourceMappingURL=managed-middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"managed-middleware.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMrD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA4ED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,iBAAiB,EAC/D,UAAU,EAAE,CAAC,EACb,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,CAgBH;AAED,0EAA0E;AAC1E,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,iBAAiB,EAC1E,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,EAAE,CAEL"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { managedRuntimeOverrides, } from "./managed-tools.js";
|
|
2
|
-
/** Lifecycle hooks receive `(state, runtime)`; either a fn or `{ hook, canJumpTo }`. */
|
|
3
|
-
const LIFECYCLE_HOOKS = new Set([
|
|
4
|
-
"beforeAgent",
|
|
5
|
-
"beforeModel",
|
|
6
|
-
"afterModel",
|
|
7
|
-
"afterAgent",
|
|
8
|
-
]);
|
|
9
|
-
/** Wrap hooks receive `(request, handler)` with `request.runtime`. */
|
|
10
|
-
const WRAP_HOOKS = new Set(["wrapModelCall", "wrapToolCall"]);
|
|
11
|
-
/**
|
|
12
|
-
* Return a copy of the middleware runtime with the managed primitives
|
|
13
|
-
* (`runtime.identity`, …) layered on. Identity is built from the trusted
|
|
14
|
-
* `runtime.configurable.langgraph_auth_user` the custom-auth handler produced —
|
|
15
|
-
* the same channel tools use — since the platform, not us, invokes the graph and
|
|
16
|
-
* `runtime.context` is caller-supplied per-run data we do not control.
|
|
17
|
-
*/
|
|
18
|
-
function augmentRuntime(runtime, cfg) {
|
|
19
|
-
const overrides = managedRuntimeOverrides(runtime, cfg);
|
|
20
|
-
return Object.keys(overrides).length > 0
|
|
21
|
-
? { ...runtime, ...overrides }
|
|
22
|
-
: runtime;
|
|
23
|
-
}
|
|
24
|
-
function wrapLifecycleHook(target, value, cfg) {
|
|
25
|
-
if (typeof value === "function") {
|
|
26
|
-
const fn = value;
|
|
27
|
-
return (state, runtime) => fn.call(target, state, augmentRuntime(runtime, cfg));
|
|
28
|
-
}
|
|
29
|
-
if (value && typeof value.hook === "function") {
|
|
30
|
-
const original = value;
|
|
31
|
-
const fn = original.hook;
|
|
32
|
-
return {
|
|
33
|
-
...original,
|
|
34
|
-
hook: (state, runtime) => fn.call(target, state, augmentRuntime(runtime, cfg)),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
function wrapWrapHook(target, value, cfg) {
|
|
40
|
-
const fn = value;
|
|
41
|
-
return (request, handler) => fn.call(target, { ...request, runtime: augmentRuntime(request?.runtime, cfg) }, handler);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Wrap a middleware so every hook sees `runtime.identity` (…) without changing
|
|
45
|
-
* its name, schema, registered tools, or class.
|
|
46
|
-
*
|
|
47
|
-
* A `Proxy` intercepts only the hook properties: lifecycle hooks
|
|
48
|
-
* (`beforeAgent`/`beforeModel`/`afterModel`/`afterAgent`, in either function or
|
|
49
|
-
* `{ hook, canJumpTo }` form) get their `runtime` argument augmented, and the
|
|
50
|
-
* `wrap*` hooks get `request.runtime` augmented. Every other property and method
|
|
51
|
-
* — including the middleware brand, `name`, and `stateSchema` — passes through,
|
|
52
|
-
* preserving hook detection, `instanceof`, and framework wiring. Hooks are bound
|
|
53
|
-
* to the original instance so class-based middleware keep their `this`.
|
|
54
|
-
*/
|
|
55
|
-
export function withManagedMiddleware(middleware, cfg) {
|
|
56
|
-
return new Proxy(middleware, {
|
|
57
|
-
get(target, property, receiver) {
|
|
58
|
-
const value = Reflect.get(target, property, receiver);
|
|
59
|
-
if (value == null || typeof property !== "string") {
|
|
60
|
-
return value;
|
|
61
|
-
}
|
|
62
|
-
if (LIFECYCLE_HOOKS.has(property)) {
|
|
63
|
-
return wrapLifecycleHook(target, value, cfg);
|
|
64
|
-
}
|
|
65
|
-
if (WRAP_HOOKS.has(property)) {
|
|
66
|
-
return wrapWrapHook(target, value, cfg);
|
|
67
|
-
}
|
|
68
|
-
return value;
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/** Wrap every middleware in a list with {@link withManagedMiddleware}. */
|
|
73
|
-
export function wrapMiddlewareWithManagedRuntime(middleware, cfg) {
|
|
74
|
-
return middleware.map((entry) => withManagedMiddleware(entry, cfg));
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=managed-middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"managed-middleware.js","sourceRoot":"","sources":["../../src/runtime/managed-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import type { ToolRuntime } from "@langchain/core/tools";
|
|
2
|
-
import type { IdentityConfig, RuntimeIdentity } from "../identity.js";
|
|
3
|
-
import { type CredentialsProvider } from "./credentials.js";
|
|
4
|
-
import type { RuntimeConfigLike } from "./identity-runtime.js";
|
|
5
|
-
export type { RuntimeConfigLike } from "./identity-runtime.js";
|
|
6
|
-
/**
|
|
7
|
-
* A LangChain/LangGraph tool from MDA's perspective: the only surface the runtime
|
|
8
|
-
* seam touches is `invoke(input, runtime)`. Kept structural so the wrapper works
|
|
9
|
-
* across `DynamicStructuredTool`, MCP tools, and any other tool shape.
|
|
10
|
-
*/
|
|
11
|
-
export interface InvokableTool {
|
|
12
|
-
invoke(input: unknown, runtime?: RuntimeConfigLike): unknown;
|
|
13
|
-
}
|
|
14
|
-
/** The managed primitives MDA layers onto the tool runtime. */
|
|
15
|
-
export interface ManagedRuntimeExtras {
|
|
16
|
-
identity?: RuntimeIdentity;
|
|
17
|
-
/**
|
|
18
|
-
* Per-run credential minting for custom mode (`scoping.credentials: "custom"`).
|
|
19
|
-
* Absent in managed/`none` modes. Call `runtime.credentials.for(target)` and
|
|
20
|
-
* attach the returned headers to the downstream request.
|
|
21
|
-
*/
|
|
22
|
-
credentials?: CredentialsProvider;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* The runtime surface managed Deep Agent tools receive: LangGraph's
|
|
26
|
-
* {@link ToolRuntime} plus MDA-managed primitives such as `identity`.
|
|
27
|
-
*
|
|
28
|
-
* Annotate the second parameter of a `tool(...)` handler when you need the
|
|
29
|
-
* frozen identity envelope for the current run.
|
|
30
|
-
*/
|
|
31
|
-
export interface ManagedDeepAgentRuntime<TState = unknown, TContext = unknown> extends ToolRuntime<TState, TContext>, ManagedRuntimeExtras {
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Derive the managed runtime primitives for a run from its config. Identity is
|
|
35
|
-
* built only from the trusted `configurable.langgraph_auth_user` the custom-auth
|
|
36
|
-
* handler produced — the field LangGraph propagates to every node and tool.
|
|
37
|
-
*/
|
|
38
|
-
export declare function managedRuntimeExtras(runtime: RuntimeConfigLike | undefined, cfg?: IdentityConfig): ManagedRuntimeExtras;
|
|
39
|
-
/**
|
|
40
|
-
* The fields MDA overlays onto the runtime a tool/middleware hook receives:
|
|
41
|
-
* the frozen `identity` (when an actor resolved) and a `configurable` with the
|
|
42
|
-
* reserved identity keys stripped (§8) so downstream code can't read a
|
|
43
|
-
* client-spoofed `actor_id`/`tenant_id`. Returns an empty object when there is
|
|
44
|
-
* nothing to change, so the original runtime passes through untouched.
|
|
45
|
-
*/
|
|
46
|
-
export declare function managedRuntimeOverrides(runtime: RuntimeConfigLike | undefined, cfg?: IdentityConfig): ManagedRuntimeExtras & {
|
|
47
|
-
configurable?: Record<string, unknown>;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Wrap a tool so its runtime carries the managed primitives (`runtime.identity`,
|
|
51
|
-
* …) without changing its name, schema, or class.
|
|
52
|
-
*
|
|
53
|
-
* Augments `invoke` (for LangGraph's `ToolNode`) and patches the tool's internal
|
|
54
|
-
* `func`/`coroutine` so identity reaches the authored handler even when LangChain
|
|
55
|
-
* rewrites the runtime into a RunnableConfig before calling the tool function.
|
|
56
|
-
* Every other property/method passes through untouched.
|
|
57
|
-
*/
|
|
58
|
-
export declare function withManagedRuntime<T extends InvokableTool>(managedTool: T, cfg?: IdentityConfig): T;
|
|
59
|
-
/** Wrap every tool in a list with {@link withManagedRuntime}. */
|
|
60
|
-
export declare function wrapToolsWithManagedRuntime<T extends InvokableTool>(tools: readonly T[], cfg?: IdentityConfig): T[];
|
|
61
|
-
//# sourceMappingURL=managed-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC9D;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CAC3E,SAAQ,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB;CAAG;AAEhE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,CAAC,EAAE,cAAc,GACnB,oBAAoB,CAatB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,CAAC,EAAE,cAAc,GACnB,oBAAoB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CA8BnE;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,WAAW,EAAE,CAAC,EACd,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,CAoCH;AAED,iEAAiE;AACjE,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,aAAa,EACjE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,EAAE,CAEL"}
|