managed-deepagents 0.0.3-dev.34 → 0.0.3-dev.37
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/langsmith.d.ts +133 -0
- package/dist/connectors/langsmith.d.ts.map +1 -0
- package/dist/connectors/langsmith.js +262 -0
- package/dist/connectors/langsmith.js.map +1 -0
- package/dist/connectors.d.ts +7 -2
- package/dist/connectors.d.ts.map +1 -1
- package/dist/connectors.js +18 -1
- package/dist/connectors.js.map +1 -1
- package/dist/identity.d.ts +273 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +358 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/auth.d.ts +54 -0
- package/dist/runtime/auth.d.ts.map +1 -0
- package/dist/runtime/auth.js +191 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/connector.d.ts +138 -0
- package/dist/runtime/connector.d.ts.map +1 -0
- package/dist/runtime/connector.js +82 -0
- package/dist/runtime/connector.js.map +1 -0
- package/dist/runtime/credentials.d.ts +60 -0
- package/dist/runtime/credentials.d.ts.map +1 -0
- package/dist/runtime/credentials.js +189 -0
- package/dist/runtime/credentials.js.map +1 -0
- package/dist/runtime/identity-http.d.ts +27 -0
- package/dist/runtime/identity-http.d.ts.map +1 -0
- package/dist/runtime/identity-http.js +150 -0
- package/dist/runtime/identity-http.js.map +1 -0
- package/dist/runtime/identity-runtime.d.ts +54 -0
- package/dist/runtime/identity-runtime.d.ts.map +1 -0
- package/dist/runtime/identity-runtime.js +151 -0
- package/dist/runtime/identity-runtime.js.map +1 -0
- package/dist/runtime/index.d.ts +13 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +39 -12
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/langsmith-connector.d.ts +112 -0
- package/dist/runtime/langsmith-connector.d.ts.map +1 -0
- package/dist/runtime/langsmith-connector.js +411 -0
- package/dist/runtime/langsmith-connector.js.map +1 -0
- package/dist/runtime/managed-middleware.d.ts +25 -0
- package/dist/runtime/managed-middleware.d.ts.map +1 -0
- package/dist/runtime/managed-middleware.js +76 -0
- package/dist/runtime/managed-middleware.js.map +1 -0
- package/dist/runtime/managed-tools.d.ts +61 -0
- package/dist/runtime/managed-tools.d.ts.map +1 -0
- package/dist/runtime/managed-tools.js +102 -0
- package/dist/runtime/managed-tools.js.map +1 -0
- package/dist/runtime/types.d.ts +23 -7
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/validated-token.d.ts +25 -0
- package/dist/runtime/validated-token.d.ts.map +1 -0
- package/dist/runtime/validated-token.js +260 -0
- package/dist/runtime/validated-token.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -8
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangSmith connector — authoring surface.
|
|
3
|
+
*
|
|
4
|
+
* A capability-delegation layer for *external / untrusted* callers (browsers,
|
|
5
|
+
* channels, schedules). The deployment declares a small set of constrained
|
|
6
|
+
* LangSmith capabilities; MDA performs them server-side with the workspace key
|
|
7
|
+
* and returns allowlisted responses. The browser never receives
|
|
8
|
+
* `LANGSMITH_API_KEY`.
|
|
9
|
+
*
|
|
10
|
+
* This module is authoring-only: typed per-resource builders + presets that
|
|
11
|
+
* compile to grants, plus eager validation. The runtime enforcement engine lives
|
|
12
|
+
* in `runtime/langsmith-connector.ts` and is imported lazily by the connector's
|
|
13
|
+
* `http` hook so authoring installs stay light.
|
|
14
|
+
*/
|
|
15
|
+
import { type Connector } from "../runtime/connector.js";
|
|
16
|
+
/** External caller surfaces, mapped onto identity ingress / `source.provider`. */
|
|
17
|
+
export type LangSmithCallerSurface = "browser" | "trusted_backend" | "channel" | "schedule";
|
|
18
|
+
/** Ownership scope MDA proves from `runtime.identity` before the operation. */
|
|
19
|
+
export type LangSmithCapabilityScope = "agent" | "tenant" | "actor" | "thread" | "run";
|
|
20
|
+
/** LangSmith resource families the connector can delegate. */
|
|
21
|
+
export type LangSmithResource = "runs" | "threads" | "feedback" | "datasets" | "examples" | "annotation_queues" | "annotations" | "experiments" | "prompts" | "projects";
|
|
22
|
+
/** Response shaping for a capability (allowlist first, redact as backstop). */
|
|
23
|
+
export interface LangSmithResponseShape {
|
|
24
|
+
include?: string[];
|
|
25
|
+
redact?: string[];
|
|
26
|
+
}
|
|
27
|
+
/** A compiled capability grant. Builders and presets produce these. */
|
|
28
|
+
export interface LangSmithCapability {
|
|
29
|
+
id: string;
|
|
30
|
+
exposeTo: LangSmithCallerSurface[];
|
|
31
|
+
resource: LangSmithResource;
|
|
32
|
+
actions: string[];
|
|
33
|
+
scope: LangSmithCapabilityScope;
|
|
34
|
+
constraints?: Record<string, unknown>;
|
|
35
|
+
response?: LangSmithResponseShape;
|
|
36
|
+
/** Explicit acknowledgement required to include per-resource sensitive fields. */
|
|
37
|
+
allowSensitive?: string[];
|
|
38
|
+
}
|
|
39
|
+
/** The raw connector config the builders sugar over. */
|
|
40
|
+
export interface LangSmithConnectorConfig {
|
|
41
|
+
capabilities: LangSmithCapability[];
|
|
42
|
+
}
|
|
43
|
+
export interface RunsCapabilityOptions {
|
|
44
|
+
id: string;
|
|
45
|
+
exposeTo: LangSmithCallerSurface[];
|
|
46
|
+
actions: Array<"read" | "share">;
|
|
47
|
+
scope: LangSmithCapabilityScope;
|
|
48
|
+
include?: string[];
|
|
49
|
+
redact?: string[];
|
|
50
|
+
allowSensitive?: string[];
|
|
51
|
+
}
|
|
52
|
+
export declare function runs(options: RunsCapabilityOptions): LangSmithCapability;
|
|
53
|
+
export interface FeedbackCapabilityOptions {
|
|
54
|
+
id: string;
|
|
55
|
+
exposeTo: LangSmithCallerSurface[];
|
|
56
|
+
actions: Array<"create" | "update" | "delete">;
|
|
57
|
+
scope?: LangSmithCapabilityScope;
|
|
58
|
+
keys: string[];
|
|
59
|
+
scores?: string[];
|
|
60
|
+
maxCommentChars?: number;
|
|
61
|
+
onePerActor?: boolean;
|
|
62
|
+
include?: string[];
|
|
63
|
+
}
|
|
64
|
+
export declare function feedback(options: FeedbackCapabilityOptions): LangSmithCapability;
|
|
65
|
+
export interface ExamplesCapabilityOptions {
|
|
66
|
+
id: string;
|
|
67
|
+
exposeTo: LangSmithCallerSurface[];
|
|
68
|
+
actions: Array<"create">;
|
|
69
|
+
scope?: LangSmithCapabilityScope;
|
|
70
|
+
dataset: string;
|
|
71
|
+
allowedFields?: string[];
|
|
72
|
+
maxExamplesPerThread?: number;
|
|
73
|
+
include?: string[];
|
|
74
|
+
}
|
|
75
|
+
export declare function examples(options: ExamplesCapabilityOptions): LangSmithCapability;
|
|
76
|
+
export interface AnnotationQueuesCapabilityOptions {
|
|
77
|
+
id: string;
|
|
78
|
+
exposeTo: LangSmithCallerSurface[];
|
|
79
|
+
actions: Array<"enqueue_run">;
|
|
80
|
+
scope?: LangSmithCapabilityScope;
|
|
81
|
+
queue: string;
|
|
82
|
+
allowedPriorities?: string[];
|
|
83
|
+
maxNoteChars?: number;
|
|
84
|
+
}
|
|
85
|
+
export declare function annotationQueues(options: AnnotationQueuesCapabilityOptions): LangSmithCapability;
|
|
86
|
+
export interface PromptsCapabilityOptions {
|
|
87
|
+
id: string;
|
|
88
|
+
exposeTo: LangSmithCallerSurface[];
|
|
89
|
+
actions: Array<"read_metadata">;
|
|
90
|
+
scope?: LangSmithCapabilityScope;
|
|
91
|
+
include?: string[];
|
|
92
|
+
redact?: string[];
|
|
93
|
+
}
|
|
94
|
+
export declare function prompts(options: PromptsCapabilityOptions): LangSmithCapability;
|
|
95
|
+
export interface ThreadsCapabilityOptions {
|
|
96
|
+
id: string;
|
|
97
|
+
exposeTo: LangSmithCallerSurface[];
|
|
98
|
+
actions: Array<"read" | "update_metadata">;
|
|
99
|
+
scope?: LangSmithCapabilityScope;
|
|
100
|
+
metadataKeys?: string[];
|
|
101
|
+
maxTitleChars?: number;
|
|
102
|
+
include?: string[];
|
|
103
|
+
allowSensitive?: string[];
|
|
104
|
+
}
|
|
105
|
+
export declare function threads(options: ThreadsCapabilityOptions): LangSmithCapability;
|
|
106
|
+
/**
|
|
107
|
+
* The whole browser feedback surface: create/update/delete one bounded feedback
|
|
108
|
+
* per actor on a run, plus capturing the conversation into a fixed dataset.
|
|
109
|
+
* Emits deterministic namespaced ids so the public route contract is stable.
|
|
110
|
+
*/
|
|
111
|
+
export declare function chatFeedback(options: {
|
|
112
|
+
dataset: string;
|
|
113
|
+
}): LangSmithCapability[];
|
|
114
|
+
/** A read-only, redacted trace viewer: run summary + share link. */
|
|
115
|
+
export declare function traceViewer(): LangSmithCapability[];
|
|
116
|
+
/**
|
|
117
|
+
* Fail-closed authoring checks that do not require the identity config. The
|
|
118
|
+
* identity-dependent checks (scope/ingress sanity, tenancy) run when the
|
|
119
|
+
* connector's `http` hook is mounted, where the resolved identity is available.
|
|
120
|
+
*/
|
|
121
|
+
export declare function validateLangSmithConnector(capabilities: LangSmithCapability[]): void;
|
|
122
|
+
/** The branded LangSmith connector (implements only the `http` hook). */
|
|
123
|
+
export interface LangSmithConnector extends Connector {
|
|
124
|
+
readonly kind: "langsmith";
|
|
125
|
+
readonly capabilities: LangSmithCapability[];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Build a branded LangSmith connector from capabilities (or preset-produced
|
|
129
|
+
* capability arrays). Runs {@link validateLangSmithConnector} eagerly, then
|
|
130
|
+
* returns a connector whose `http` hook mounts the enforcement engine.
|
|
131
|
+
*/
|
|
132
|
+
export declare function connector(...capabilities: Array<LangSmithCapability | LangSmithCapability[]>): LangSmithConnector;
|
|
133
|
+
//# sourceMappingURL=langsmith.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langsmith.d.ts","sourceRoot":"","sources":["../../src/connectors/langsmith.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,yBAAyB,CAAC;AAEjC,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,iBAAiB,GACjB,SAAS,GACT,UAAU,CAAC;AAEf,+EAA+E;AAC/E,MAAM,MAAM,wBAAwB,GAChC,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,KAAK,CAAC;AAEV,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,SAAS,GACT,UAAU,CAAC;AAEf,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,wBAAwB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAoCD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,wBAAwB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAexE;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,yBAAyB,GACjC,mBAAmB,CAerB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,yBAAyB,GACjC,mBAAmB,CAcrB;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iCAAiC,GACzC,mBAAmB,CAerB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,wBAAwB,GAChC,mBAAmB,CAYrB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,wBAAwB,GAChC,mBAAmB,CAmBrB;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,EAAE,CAqBxB;AAED,oEAAoE;AACpE,wBAAgB,WAAW,IAAI,mBAAmB,EAAE,CASnD;AAID;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,mBAAmB,EAAE,GAClC,IAAI,CAWN;AA6ED,yEAAyE;AACzE,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,GAAG,YAAY,EAAE,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,EAAE,CAAC,GAClE,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangSmith connector — authoring surface.
|
|
3
|
+
*
|
|
4
|
+
* A capability-delegation layer for *external / untrusted* callers (browsers,
|
|
5
|
+
* channels, schedules). The deployment declares a small set of constrained
|
|
6
|
+
* LangSmith capabilities; MDA performs them server-side with the workspace key
|
|
7
|
+
* and returns allowlisted responses. The browser never receives
|
|
8
|
+
* `LANGSMITH_API_KEY`.
|
|
9
|
+
*
|
|
10
|
+
* This module is authoring-only: typed per-resource builders + presets that
|
|
11
|
+
* compile to grants, plus eager validation. The runtime enforcement engine lives
|
|
12
|
+
* in `runtime/langsmith-connector.ts` and is imported lazily by the connector's
|
|
13
|
+
* `http` hook so authoring installs stay light.
|
|
14
|
+
*/
|
|
15
|
+
import { CONNECTOR_BRAND, } from "../runtime/connector.js";
|
|
16
|
+
/** Conservative default `include` allowlists per resource (browser-safe). */
|
|
17
|
+
const DEFAULT_INCLUDE = {
|
|
18
|
+
runs: ["id", "status", "start_time", "end_time", "url", "metadata"],
|
|
19
|
+
feedback: ["id", "run_id", "key", "score", "created_at"],
|
|
20
|
+
examples: ["id", "dataset_id", "created_at"],
|
|
21
|
+
prompts: ["name", "commit_hash", "updated_at"],
|
|
22
|
+
threads: ["thread_id", "created_at", "metadata.title"],
|
|
23
|
+
};
|
|
24
|
+
/** Fields that can never reach a browser without an explicit `allowSensitive`. */
|
|
25
|
+
const SENSITIVE_FIELDS = {
|
|
26
|
+
runs: ["inputs", "outputs", "events"],
|
|
27
|
+
prompts: ["content", "messages"],
|
|
28
|
+
threads: ["messages", "values"],
|
|
29
|
+
};
|
|
30
|
+
/** Constraint keys each resource understands. Unknown keys fail validation. */
|
|
31
|
+
const ALLOWED_CONSTRAINT_KEYS = {
|
|
32
|
+
runs: [],
|
|
33
|
+
feedback: ["keys", "scores", "maxCommentChars", "onePerActor"],
|
|
34
|
+
examples: ["dataset", "allowedFields", "maxExamplesPerThread"],
|
|
35
|
+
annotation_queues: ["queue", "allowedPriorities", "maxNoteChars"],
|
|
36
|
+
prompts: [],
|
|
37
|
+
threads: ["metadataKeys", "maxTitleChars"],
|
|
38
|
+
};
|
|
39
|
+
function omitUndefined(value) {
|
|
40
|
+
return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined));
|
|
41
|
+
}
|
|
42
|
+
export function runs(options) {
|
|
43
|
+
return {
|
|
44
|
+
id: options.id,
|
|
45
|
+
exposeTo: options.exposeTo,
|
|
46
|
+
resource: "runs",
|
|
47
|
+
actions: options.actions,
|
|
48
|
+
scope: options.scope,
|
|
49
|
+
response: {
|
|
50
|
+
include: options.include ?? DEFAULT_INCLUDE.runs,
|
|
51
|
+
redact: options.redact ?? SENSITIVE_FIELDS.runs,
|
|
52
|
+
},
|
|
53
|
+
...(options.allowSensitive
|
|
54
|
+
? { allowSensitive: options.allowSensitive }
|
|
55
|
+
: {}),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function feedback(options) {
|
|
59
|
+
return {
|
|
60
|
+
id: options.id,
|
|
61
|
+
exposeTo: options.exposeTo,
|
|
62
|
+
resource: "feedback",
|
|
63
|
+
actions: options.actions,
|
|
64
|
+
scope: options.scope ?? "run",
|
|
65
|
+
constraints: omitUndefined({
|
|
66
|
+
keys: options.keys,
|
|
67
|
+
scores: options.scores,
|
|
68
|
+
maxCommentChars: options.maxCommentChars,
|
|
69
|
+
onePerActor: options.onePerActor,
|
|
70
|
+
}),
|
|
71
|
+
response: { include: options.include ?? DEFAULT_INCLUDE.feedback },
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function examples(options) {
|
|
75
|
+
return {
|
|
76
|
+
id: options.id,
|
|
77
|
+
exposeTo: options.exposeTo,
|
|
78
|
+
resource: "examples",
|
|
79
|
+
actions: options.actions,
|
|
80
|
+
scope: options.scope ?? "thread",
|
|
81
|
+
constraints: omitUndefined({
|
|
82
|
+
dataset: options.dataset,
|
|
83
|
+
allowedFields: options.allowedFields,
|
|
84
|
+
maxExamplesPerThread: options.maxExamplesPerThread,
|
|
85
|
+
}),
|
|
86
|
+
response: { include: options.include ?? DEFAULT_INCLUDE.examples },
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export function annotationQueues(options) {
|
|
90
|
+
return {
|
|
91
|
+
id: options.id,
|
|
92
|
+
exposeTo: options.exposeTo,
|
|
93
|
+
resource: "annotation_queues",
|
|
94
|
+
actions: options.actions,
|
|
95
|
+
scope: options.scope ?? "run",
|
|
96
|
+
constraints: omitUndefined({
|
|
97
|
+
queue: options.queue,
|
|
98
|
+
allowedPriorities: options.allowedPriorities,
|
|
99
|
+
maxNoteChars: options.maxNoteChars,
|
|
100
|
+
}),
|
|
101
|
+
// Enqueue is a write with no readable body; include stays minimal.
|
|
102
|
+
response: { include: ["id"] },
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export function prompts(options) {
|
|
106
|
+
return {
|
|
107
|
+
id: options.id,
|
|
108
|
+
exposeTo: options.exposeTo,
|
|
109
|
+
resource: "prompts",
|
|
110
|
+
actions: options.actions,
|
|
111
|
+
scope: options.scope ?? "agent",
|
|
112
|
+
response: {
|
|
113
|
+
include: options.include ?? DEFAULT_INCLUDE.prompts,
|
|
114
|
+
redact: options.redact ?? SENSITIVE_FIELDS.prompts,
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export function threads(options) {
|
|
119
|
+
return {
|
|
120
|
+
id: options.id,
|
|
121
|
+
exposeTo: options.exposeTo,
|
|
122
|
+
resource: "threads",
|
|
123
|
+
actions: options.actions,
|
|
124
|
+
scope: options.scope ?? "actor",
|
|
125
|
+
constraints: omitUndefined({
|
|
126
|
+
metadataKeys: options.metadataKeys,
|
|
127
|
+
maxTitleChars: options.maxTitleChars,
|
|
128
|
+
}),
|
|
129
|
+
response: {
|
|
130
|
+
include: options.include ?? DEFAULT_INCLUDE.threads,
|
|
131
|
+
redact: SENSITIVE_FIELDS.threads,
|
|
132
|
+
},
|
|
133
|
+
...(options.allowSensitive
|
|
134
|
+
? { allowSensitive: options.allowSensitive }
|
|
135
|
+
: {}),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
// --- Presets ---------------------------------------------------------------
|
|
139
|
+
/**
|
|
140
|
+
* The whole browser feedback surface: create/update/delete one bounded feedback
|
|
141
|
+
* per actor on a run, plus capturing the conversation into a fixed dataset.
|
|
142
|
+
* Emits deterministic namespaced ids so the public route contract is stable.
|
|
143
|
+
*/
|
|
144
|
+
export function chatFeedback(options) {
|
|
145
|
+
return [
|
|
146
|
+
feedback({
|
|
147
|
+
id: "langsmith:chat-feedback",
|
|
148
|
+
exposeTo: ["browser"],
|
|
149
|
+
actions: ["create", "update", "delete"],
|
|
150
|
+
scope: "run",
|
|
151
|
+
keys: ["user_score"],
|
|
152
|
+
scores: ["positive", "negative"],
|
|
153
|
+
maxCommentChars: 2000,
|
|
154
|
+
onePerActor: true,
|
|
155
|
+
}),
|
|
156
|
+
examples({
|
|
157
|
+
id: "langsmith:chat-feedback-examples",
|
|
158
|
+
exposeTo: ["browser"],
|
|
159
|
+
actions: ["create"],
|
|
160
|
+
scope: "thread",
|
|
161
|
+
dataset: options.dataset,
|
|
162
|
+
allowedFields: ["messages", "answer", "feedback", "source"],
|
|
163
|
+
}),
|
|
164
|
+
];
|
|
165
|
+
}
|
|
166
|
+
/** A read-only, redacted trace viewer: run summary + share link. */
|
|
167
|
+
export function traceViewer() {
|
|
168
|
+
return [
|
|
169
|
+
runs({
|
|
170
|
+
id: "langsmith:trace-viewer",
|
|
171
|
+
exposeTo: ["browser"],
|
|
172
|
+
actions: ["read", "share"],
|
|
173
|
+
scope: "thread",
|
|
174
|
+
}),
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
// --- Validation ------------------------------------------------------------
|
|
178
|
+
/**
|
|
179
|
+
* Fail-closed authoring checks that do not require the identity config. The
|
|
180
|
+
* identity-dependent checks (scope/ingress sanity, tenancy) run when the
|
|
181
|
+
* connector's `http` hook is mounted, where the resolved identity is available.
|
|
182
|
+
*/
|
|
183
|
+
export function validateLangSmithConnector(capabilities) {
|
|
184
|
+
if (capabilities.length === 0) {
|
|
185
|
+
throw new Error("langsmith.connector(...) requires at least one capability.");
|
|
186
|
+
}
|
|
187
|
+
const seen = new Set();
|
|
188
|
+
for (const capability of capabilities) {
|
|
189
|
+
validateCapability(capability, seen);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function validateCapability(capability, seen) {
|
|
193
|
+
if (!capability.id) {
|
|
194
|
+
throw new Error("Every LangSmith capability requires an `id`.");
|
|
195
|
+
}
|
|
196
|
+
if (seen.has(capability.id)) {
|
|
197
|
+
throw new Error(`Duplicate LangSmith capability id: "${capability.id}".`);
|
|
198
|
+
}
|
|
199
|
+
seen.add(capability.id);
|
|
200
|
+
if (capability.exposeTo.length === 0) {
|
|
201
|
+
throw new Error(`LangSmith capability "${capability.id}" must declare at least one exposeTo surface.`);
|
|
202
|
+
}
|
|
203
|
+
if (capability.actions.length === 0) {
|
|
204
|
+
throw new Error(`LangSmith capability "${capability.id}" must declare at least one action.`);
|
|
205
|
+
}
|
|
206
|
+
// Every external-surface grant needs an explicit include allowlist.
|
|
207
|
+
const include = capability.response?.include;
|
|
208
|
+
if (!include || include.length === 0) {
|
|
209
|
+
throw new Error(`LangSmith capability "${capability.id}" must set response.include ` +
|
|
210
|
+
`(fail-closed: unknown fields are dropped).`);
|
|
211
|
+
}
|
|
212
|
+
assertSensitiveOptIn(capability, include);
|
|
213
|
+
assertKnownConstraintKeys(capability);
|
|
214
|
+
}
|
|
215
|
+
function assertSensitiveOptIn(capability, include) {
|
|
216
|
+
const sensitive = SENSITIVE_FIELDS[capability.resource] ?? [];
|
|
217
|
+
const acknowledged = new Set(capability.allowSensitive ?? []);
|
|
218
|
+
const browserExposed = capability.exposeTo.includes("browser");
|
|
219
|
+
if (!browserExposed) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
for (const field of include) {
|
|
223
|
+
const root = field.split(".")[0] ?? field;
|
|
224
|
+
if (sensitive.includes(root) && !acknowledged.has(root)) {
|
|
225
|
+
throw new Error(`LangSmith capability "${capability.id}" includes sensitive field ` +
|
|
226
|
+
`"${root}" for a browser surface. Add allowSensitive: ["${root}"] to ` +
|
|
227
|
+
`acknowledge exposing it.`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function assertKnownConstraintKeys(capability) {
|
|
232
|
+
const allowed = ALLOWED_CONSTRAINT_KEYS[capability.resource];
|
|
233
|
+
if (!capability.constraints || allowed === undefined) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
for (const key of Object.keys(capability.constraints)) {
|
|
237
|
+
if (!allowed.includes(key)) {
|
|
238
|
+
throw new Error(`LangSmith capability "${capability.id}" has unknown constraint ` +
|
|
239
|
+
`"${key}" for resource "${capability.resource}".`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Build a branded LangSmith connector from capabilities (or preset-produced
|
|
245
|
+
* capability arrays). Runs {@link validateLangSmithConnector} eagerly, then
|
|
246
|
+
* returns a connector whose `http` hook mounts the enforcement engine.
|
|
247
|
+
*/
|
|
248
|
+
export function connector(...capabilities) {
|
|
249
|
+
const flat = capabilities.flat();
|
|
250
|
+
validateLangSmithConnector(flat);
|
|
251
|
+
const instance = {
|
|
252
|
+
[CONNECTOR_BRAND]: true,
|
|
253
|
+
kind: "langsmith",
|
|
254
|
+
capabilities: flat,
|
|
255
|
+
async http(ctx) {
|
|
256
|
+
const { mountLangSmithRoutes } = await import("../runtime/langsmith-connector.js");
|
|
257
|
+
mountLangSmithRoutes(ctx, flat);
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
return instance;
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=langsmith.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langsmith.js","sourceRoot":"","sources":["../../src/connectors/langsmith.ts"],"names":[],"mappings":"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"}
|
package/dist/connectors.d.ts
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
* });
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
+
import { type Connector } from "./runtime/connector.js";
|
|
38
39
|
/** Per-server MCP tool selection. Names are raw, unprefixed MCP tool names. */
|
|
39
40
|
export interface McpToolSelectionConfig {
|
|
40
41
|
/**
|
|
@@ -110,8 +111,12 @@ export interface McpServersConfig {
|
|
|
110
111
|
*/
|
|
111
112
|
onConnectionError?: "throw";
|
|
112
113
|
}
|
|
113
|
-
/**
|
|
114
|
-
|
|
114
|
+
/**
|
|
115
|
+
* The connector exported from a `connectors/` module for MCP. It is a branded
|
|
116
|
+
* managed {@link Connector} whose `tools` hook loads the declared MCP tools at
|
|
117
|
+
* runtime, plus the raw config the loader reads.
|
|
118
|
+
*/
|
|
119
|
+
export interface McpServersDefinition extends McpServersConfig, Connector {
|
|
115
120
|
/** Internal discriminator used by the MDA loader. */
|
|
116
121
|
readonly kind: "mcp_servers";
|
|
117
122
|
}
|
package/dist/connectors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB;IACnE,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED
|
|
1
|
+
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEzE,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB;IACnE,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB,EAAE,SAAS;IACvE,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GACvB,oBAAoB,CA4CtB"}
|
package/dist/connectors.js
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
* });
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
+
import { CONNECTOR_BRAND } from "./runtime/connector.js";
|
|
38
39
|
/**
|
|
39
40
|
* Declare the MCP servers whose tools should be loaded and added to the managed
|
|
40
41
|
* Deep Agent at runtime.
|
|
@@ -61,7 +62,23 @@ export function defineMcpServers(config) {
|
|
|
61
62
|
for (const [name, server] of entries) {
|
|
62
63
|
validateRemoteServer(name, server);
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
+
const definition = { kind: "mcp_servers", ...config };
|
|
66
|
+
// Brand it as a connector without exposing the symbol as an enumerable field.
|
|
67
|
+
Object.defineProperty(definition, CONNECTOR_BRAND, {
|
|
68
|
+
value: true,
|
|
69
|
+
enumerable: false,
|
|
70
|
+
});
|
|
71
|
+
// The tools hook runs at agent-graph construction time (inside the managed
|
|
72
|
+
// runtime), so the MCP client loader is imported lazily — authoring-only
|
|
73
|
+
// installs never pull in `@langchain/mcp-adapters`.
|
|
74
|
+
Object.defineProperty(definition, "tools", {
|
|
75
|
+
value: async () => {
|
|
76
|
+
const { loadManagedMcpTools } = await import("./runtime/connectors-manager.js");
|
|
77
|
+
return loadManagedMcpTools(definition);
|
|
78
|
+
},
|
|
79
|
+
enumerable: false,
|
|
80
|
+
});
|
|
81
|
+
return definition;
|
|
65
82
|
}
|
|
66
83
|
/** Allowed remote transports. Stdio is intentionally unsupported in v0. */
|
|
67
84
|
const REMOTE_TRANSPORTS = new Set(["http", "sse"]);
|
package/dist/connectors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"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"}
|