managed-deepagents 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/connectors/langsmith.d.ts +385 -0
  2. package/dist/connectors/langsmith.d.ts.map +1 -0
  3. package/dist/connectors/langsmith.js +431 -0
  4. package/dist/connectors/langsmith.js.map +1 -0
  5. package/dist/connectors.d.ts +7 -2
  6. package/dist/connectors.d.ts.map +1 -1
  7. package/dist/connectors.js +18 -1
  8. package/dist/connectors.js.map +1 -1
  9. package/dist/identity/index.d.ts +88 -0
  10. package/dist/identity/index.d.ts.map +1 -0
  11. package/dist/identity/index.js +303 -0
  12. package/dist/identity/index.js.map +1 -0
  13. package/dist/identity/supabase.d.ts +48 -0
  14. package/dist/identity/supabase.d.ts.map +1 -0
  15. package/dist/identity/supabase.js +139 -0
  16. package/dist/identity/supabase.js.map +1 -0
  17. package/dist/identity/types.d.ts +185 -0
  18. package/dist/identity/types.d.ts.map +1 -0
  19. package/dist/identity/types.js +8 -0
  20. package/dist/identity/types.js.map +1 -0
  21. package/dist/index.d.ts +5 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/runtime/auth.d.ts +56 -0
  26. package/dist/runtime/auth.d.ts.map +1 -0
  27. package/dist/runtime/auth.js +204 -0
  28. package/dist/runtime/auth.js.map +1 -0
  29. package/dist/runtime/connector.d.ts +138 -0
  30. package/dist/runtime/connector.d.ts.map +1 -0
  31. package/dist/runtime/connector.js +82 -0
  32. package/dist/runtime/connector.js.map +1 -0
  33. package/dist/runtime/credentials.d.ts +68 -0
  34. package/dist/runtime/credentials.d.ts.map +1 -0
  35. package/dist/runtime/credentials.js +212 -0
  36. package/dist/runtime/credentials.js.map +1 -0
  37. package/dist/runtime/identity-http.d.ts +27 -0
  38. package/dist/runtime/identity-http.d.ts.map +1 -0
  39. package/dist/runtime/identity-http.js +159 -0
  40. package/dist/runtime/identity-http.js.map +1 -0
  41. package/dist/runtime/identity-runtime.d.ts +54 -0
  42. package/dist/runtime/identity-runtime.d.ts.map +1 -0
  43. package/dist/runtime/identity-runtime.js +151 -0
  44. package/dist/runtime/identity-runtime.js.map +1 -0
  45. package/dist/runtime/index.d.ts +14 -1
  46. package/dist/runtime/index.d.ts.map +1 -1
  47. package/dist/runtime/index.js +114 -68
  48. package/dist/runtime/index.js.map +1 -1
  49. package/dist/runtime/langsmith-connector.d.ts +247 -0
  50. package/dist/runtime/langsmith-connector.d.ts.map +1 -0
  51. package/dist/runtime/langsmith-connector.js +1175 -0
  52. package/dist/runtime/langsmith-connector.js.map +1 -0
  53. package/dist/runtime/managed-middleware.d.ts +25 -0
  54. package/dist/runtime/managed-middleware.d.ts.map +1 -0
  55. package/dist/runtime/managed-middleware.js +76 -0
  56. package/dist/runtime/managed-middleware.js.map +1 -0
  57. package/dist/runtime/managed-tools.d.ts +61 -0
  58. package/dist/runtime/managed-tools.d.ts.map +1 -0
  59. package/dist/runtime/managed-tools.js +102 -0
  60. package/dist/runtime/managed-tools.js.map +1 -0
  61. package/dist/runtime/sandbox-manager.d.ts +3 -2
  62. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  63. package/dist/runtime/sandbox-manager.js.map +1 -1
  64. package/dist/runtime/setup-script.d.ts +4 -7
  65. package/dist/runtime/setup-script.d.ts.map +1 -1
  66. package/dist/runtime/setup-script.js.map +1 -1
  67. package/dist/runtime/types.d.ts +23 -21
  68. package/dist/runtime/types.d.ts.map +1 -1
  69. package/dist/runtime/validated-token.d.ts +53 -0
  70. package/dist/runtime/validated-token.d.ts.map +1 -0
  71. package/dist/runtime/validated-token.js +411 -0
  72. package/dist/runtime/validated-token.js.map +1 -0
  73. package/dist/types.d.ts +15 -0
  74. package/dist/types.d.ts.map +1 -1
  75. package/package.json +12 -8
@@ -0,0 +1,431 @@
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 mounted synchronously by the
13
+ * connector's `http` hook so routes register before LangGraph captures the
14
+ * custom HTTP app.
15
+ */
16
+ import { CONNECTOR_BRAND, } from "../runtime/connector.js";
17
+ import { mountLangSmithRoutes } from "../runtime/langsmith-connector.js";
18
+ /** Conservative default `include` allowlists per resource (browser-safe). */
19
+ const DEFAULT_INCLUDE = {
20
+ runs: ["id", "status", "start_time", "end_time", "url", "metadata"],
21
+ feedback: ["id", "run_id", "key", "score", "created_at"],
22
+ examples: ["id", "dataset_id", "created_at"],
23
+ prompts: ["name", "commit_hash", "updated_at"],
24
+ threads: ["thread_id", "created_at", "metadata.title"],
25
+ };
26
+ /** Fields that can never reach a browser without an explicit `allowSensitive`. */
27
+ const SENSITIVE_FIELDS = {
28
+ runs: ["inputs", "outputs", "events"],
29
+ prompts: ["content", "messages"],
30
+ threads: ["messages", "values"],
31
+ };
32
+ /** Constraint keys each resource understands. Unknown keys fail validation. */
33
+ const ALLOWED_CONSTRAINT_KEYS = {
34
+ runs: [],
35
+ feedback: ["keys", "scores", "maxCommentChars", "onePerActor"],
36
+ examples: ["dataset", "allowedFields", "maxExamplesPerThread"],
37
+ annotation_queues: ["queue", "allowedPriorities", "maxNoteChars"],
38
+ prompts: [],
39
+ threads: ["metadataKeys", "maxTitleChars"],
40
+ };
41
+ function omitUndefined(value) {
42
+ return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined));
43
+ }
44
+ /**
45
+ * Build a `runs` capability grant (`read` / `share`).
46
+ *
47
+ * Use for redacted trace summaries and share links. Prefer {@link traceViewer}
48
+ * when the default browser surface is enough.
49
+ *
50
+ * @param options - Grant id, surfaces, actions, scope, and optional response shaping.
51
+ * @returns A compiled {@link LangSmithCapability} for the `runs` resource.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * langsmith.runs({
56
+ * id: "app:run-summary",
57
+ * exposeTo: ["browser"],
58
+ * actions: ["read", "share"],
59
+ * scope: "thread",
60
+ * })
61
+ * ```
62
+ */
63
+ export function runs(options) {
64
+ return {
65
+ id: options.id,
66
+ exposeTo: options.exposeTo,
67
+ resource: "runs",
68
+ actions: options.actions,
69
+ scope: options.scope,
70
+ response: {
71
+ include: options.include ?? DEFAULT_INCLUDE.runs,
72
+ redact: options.redact ?? SENSITIVE_FIELDS.runs,
73
+ },
74
+ ...(options.allowSensitive
75
+ ? { allowSensitive: options.allowSensitive }
76
+ : {}),
77
+ };
78
+ }
79
+ /**
80
+ * Build a `feedback` capability grant (`create` / `update` / `delete`).
81
+ *
82
+ * Constrains keys, optional categorical scores, comment length, and
83
+ * per-actor uniqueness. Prefer {@link chatFeedback} for the common browser
84
+ * thumbs-up/down + dataset capture surface.
85
+ *
86
+ * @param options - Grant id, surfaces, actions, key/score constraints, and shaping.
87
+ * @returns A compiled {@link LangSmithCapability} for the `feedback` resource.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * langsmith.feedback({
92
+ * id: "app:user-score",
93
+ * exposeTo: ["browser"],
94
+ * actions: ["create", "update", "delete"],
95
+ * scope: "run",
96
+ * keys: ["user_score"],
97
+ * scores: ["positive", "negative"],
98
+ * onePerActor: true,
99
+ * })
100
+ * ```
101
+ */
102
+ export function feedback(options) {
103
+ return {
104
+ id: options.id,
105
+ exposeTo: options.exposeTo,
106
+ resource: "feedback",
107
+ actions: options.actions,
108
+ scope: options.scope ?? "run",
109
+ constraints: omitUndefined({
110
+ keys: options.keys,
111
+ scores: options.scores,
112
+ maxCommentChars: options.maxCommentChars,
113
+ onePerActor: options.onePerActor,
114
+ }),
115
+ response: { include: options.include ?? DEFAULT_INCLUDE.feedback },
116
+ };
117
+ }
118
+ /**
119
+ * Build an `examples` capability grant (`create` into a fixed dataset).
120
+ *
121
+ * The dataset name is fixed in the grant so callers cannot write to arbitrary
122
+ * datasets. Prefer {@link chatFeedback} when pairing with run feedback.
123
+ *
124
+ * @param options - Grant id, surfaces, dataset, and optional field/thread caps.
125
+ * @returns A compiled {@link LangSmithCapability} for the `examples` resource.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * langsmith.examples({
130
+ * id: "app:capture-thread",
131
+ * exposeTo: ["browser"],
132
+ * actions: ["create"],
133
+ * scope: "thread",
134
+ * dataset: "public-feedback",
135
+ * allowedFields: ["messages", "answer", "feedback", "source"],
136
+ * })
137
+ * ```
138
+ */
139
+ export function examples(options) {
140
+ return {
141
+ id: options.id,
142
+ exposeTo: options.exposeTo,
143
+ resource: "examples",
144
+ actions: options.actions,
145
+ scope: options.scope ?? "thread",
146
+ constraints: omitUndefined({
147
+ dataset: options.dataset,
148
+ allowedFields: options.allowedFields,
149
+ maxExamplesPerThread: options.maxExamplesPerThread,
150
+ }),
151
+ response: { include: options.include ?? DEFAULT_INCLUDE.examples },
152
+ };
153
+ }
154
+ /**
155
+ * Build an `annotation_queues` capability grant (`enqueue_run` into a fixed queue).
156
+ *
157
+ * The queue is fixed in the grant so callers cannot enqueue into arbitrary
158
+ * queues.
159
+ *
160
+ * @param options - Grant id, surfaces, queue, and optional priority/note limits.
161
+ * @returns A compiled {@link LangSmithCapability} for the `annotation_queues` resource.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * langsmith.annotationQueues({
166
+ * id: "app:enqueue-review",
167
+ * exposeTo: ["trusted_backend"],
168
+ * actions: ["enqueue_run"],
169
+ * scope: "run",
170
+ * queue: "human-review",
171
+ * })
172
+ * ```
173
+ */
174
+ export function annotationQueues(options) {
175
+ return {
176
+ id: options.id,
177
+ exposeTo: options.exposeTo,
178
+ resource: "annotation_queues",
179
+ actions: options.actions,
180
+ scope: options.scope ?? "run",
181
+ constraints: omitUndefined({
182
+ queue: options.queue,
183
+ allowedPriorities: options.allowedPriorities,
184
+ maxNoteChars: options.maxNoteChars,
185
+ }),
186
+ // Enqueue is a write with no readable body; include stays minimal.
187
+ response: { include: ["id"] },
188
+ };
189
+ }
190
+ /**
191
+ * Build a `prompts` capability grant (`read_metadata`).
192
+ *
193
+ * Returns prompt metadata only by default; prompt body fields stay redacted.
194
+ *
195
+ * @param options - Grant id, surfaces, and optional response shaping.
196
+ * @returns A compiled {@link LangSmithCapability} for the `prompts` resource.
197
+ *
198
+ * @example
199
+ * ```ts
200
+ * langsmith.prompts({
201
+ * id: "app:prompt-meta",
202
+ * exposeTo: ["browser"],
203
+ * actions: ["read_metadata"],
204
+ * scope: "agent",
205
+ * })
206
+ * ```
207
+ */
208
+ export function prompts(options) {
209
+ return {
210
+ id: options.id,
211
+ exposeTo: options.exposeTo,
212
+ resource: "prompts",
213
+ actions: options.actions,
214
+ scope: options.scope ?? "agent",
215
+ response: {
216
+ include: options.include ?? DEFAULT_INCLUDE.prompts,
217
+ redact: options.redact ?? SENSITIVE_FIELDS.prompts,
218
+ },
219
+ };
220
+ }
221
+ /**
222
+ * Build a `threads` capability grant (`read` / `update_metadata`).
223
+ *
224
+ * Thread message bodies stay redacted unless `allowSensitive` acknowledges
225
+ * them for a browser surface.
226
+ *
227
+ * @param options - Grant id, surfaces, actions, metadata constraints, and shaping.
228
+ * @returns A compiled {@link LangSmithCapability} for the `threads` resource.
229
+ *
230
+ * @example
231
+ * ```ts
232
+ * langsmith.threads({
233
+ * id: "app:thread-title",
234
+ * exposeTo: ["browser"],
235
+ * actions: ["read", "update_metadata"],
236
+ * scope: "actor",
237
+ * metadataKeys: ["title"],
238
+ * maxTitleChars: 120,
239
+ * })
240
+ * ```
241
+ */
242
+ export function threads(options) {
243
+ return {
244
+ id: options.id,
245
+ exposeTo: options.exposeTo,
246
+ resource: "threads",
247
+ actions: options.actions,
248
+ scope: options.scope ?? "actor",
249
+ constraints: omitUndefined({
250
+ metadataKeys: options.metadataKeys,
251
+ maxTitleChars: options.maxTitleChars,
252
+ }),
253
+ response: {
254
+ include: options.include ?? DEFAULT_INCLUDE.threads,
255
+ redact: SENSITIVE_FIELDS.threads,
256
+ },
257
+ ...(options.allowSensitive
258
+ ? { allowSensitive: options.allowSensitive }
259
+ : {}),
260
+ };
261
+ }
262
+ // --- Presets ---------------------------------------------------------------
263
+ /**
264
+ * Browser chat feedback preset: thumbs up/down on a run, plus optional dataset
265
+ * capture of the conversation.
266
+ *
267
+ * Expands to two grants with stable capability ids (safe to hard-code in
268
+ * clients):
269
+ *
270
+ * - `langsmith:chat-feedback` — run-scoped {@link feedback} for browsers.
271
+ * Key `user_score`, scores `positive`/`negative`, comments ≤ 2000 chars,
272
+ * `onePerActor: true`.
273
+ * - `langsmith:chat-feedback-examples` — thread-scoped {@link examples} create
274
+ * into `dataset`, allowing fields `messages`, `answer`, `feedback`, `source`.
275
+ *
276
+ * Pass the returned array (or spread it) into {@link connector}.
277
+ *
278
+ * @param options.dataset - LangSmith dataset name for the examples capability.
279
+ * @returns Capability grants for feedback + example capture.
280
+ *
281
+ * @example
282
+ * ```ts
283
+ * export default langsmith.connector(
284
+ * langsmith.chatFeedback({ dataset: "public-feedback" }),
285
+ * );
286
+ * // POST /connectors/langsmith/capabilities/langsmith:chat-feedback
287
+ * ```
288
+ */
289
+ export function chatFeedback(options) {
290
+ return [
291
+ feedback({
292
+ id: "langsmith:chat-feedback",
293
+ exposeTo: ["browser"],
294
+ actions: ["create", "update", "delete"],
295
+ scope: "run",
296
+ keys: ["user_score"],
297
+ scores: ["positive", "negative"],
298
+ maxCommentChars: 2000,
299
+ onePerActor: true,
300
+ }),
301
+ examples({
302
+ id: "langsmith:chat-feedback-examples",
303
+ exposeTo: ["browser"],
304
+ actions: ["create"],
305
+ scope: "thread",
306
+ dataset: options.dataset,
307
+ allowedFields: ["messages", "answer", "feedback", "source"],
308
+ }),
309
+ ];
310
+ }
311
+ /**
312
+ * Browser trace viewer preset: read a redacted run summary and create a share
313
+ * link for the caller's thread.
314
+ *
315
+ * Expands to one grant with a stable capability id:
316
+ *
317
+ * - `langsmith:trace-viewer` — thread-scoped {@link runs} with actions
318
+ * `read` and `share`, exposed to `browser`. Responses include
319
+ * `id` / `status` / `start_time` / `end_time` / `url` / `metadata` and redact
320
+ * `inputs` / `outputs` / `events` by default.
321
+ *
322
+ * Pass the returned array (or spread it) into {@link connector}.
323
+ *
324
+ * @returns Capability grant for redacted run read/share.
325
+ *
326
+ * @example
327
+ * ```ts
328
+ * export default langsmith.connector(langsmith.traceViewer());
329
+ * // POST /connectors/langsmith/capabilities/langsmith:trace-viewer
330
+ * ```
331
+ */
332
+ export function traceViewer() {
333
+ return [
334
+ runs({
335
+ id: "langsmith:trace-viewer",
336
+ exposeTo: ["browser"],
337
+ actions: ["read", "share"],
338
+ scope: "thread",
339
+ }),
340
+ ];
341
+ }
342
+ // --- Validation ------------------------------------------------------------
343
+ /**
344
+ * Fail-closed authoring checks that do not require the identity config. The
345
+ * identity-dependent checks (scope/ingress sanity, tenancy) run when the
346
+ * connector's `http` hook is mounted, where the resolved identity is available.
347
+ */
348
+ export function validateLangSmithConnector(capabilities) {
349
+ if (capabilities.length === 0) {
350
+ throw new Error("langsmith.connector(...) requires at least one capability.");
351
+ }
352
+ const seen = new Set();
353
+ for (const capability of capabilities) {
354
+ validateCapability(capability, seen);
355
+ }
356
+ }
357
+ function validateCapability(capability, seen) {
358
+ if (!capability.id) {
359
+ throw new Error("Every LangSmith capability requires an `id`.");
360
+ }
361
+ if (seen.has(capability.id)) {
362
+ throw new Error(`Duplicate LangSmith capability id: "${capability.id}".`);
363
+ }
364
+ seen.add(capability.id);
365
+ if (capability.exposeTo.length === 0) {
366
+ throw new Error(`LangSmith capability "${capability.id}" must declare at least one exposeTo surface.`);
367
+ }
368
+ if (capability.actions.length === 0) {
369
+ throw new Error(`LangSmith capability "${capability.id}" must declare at least one action.`);
370
+ }
371
+ // Every external-surface grant needs an explicit include allowlist.
372
+ const include = capability.response?.include;
373
+ if (!include || include.length === 0) {
374
+ throw new Error(`LangSmith capability "${capability.id}" must set response.include ` +
375
+ `(fail-closed: unknown fields are dropped).`);
376
+ }
377
+ assertSensitiveOptIn(capability, include);
378
+ assertKnownConstraintKeys(capability);
379
+ }
380
+ function assertSensitiveOptIn(capability, include) {
381
+ const sensitive = SENSITIVE_FIELDS[capability.resource] ?? [];
382
+ const acknowledged = new Set(capability.allowSensitive ?? []);
383
+ const browserExposed = capability.exposeTo.includes("browser");
384
+ if (!browserExposed) {
385
+ return;
386
+ }
387
+ for (const field of include) {
388
+ const root = field.split(".")[0] ?? field;
389
+ if (sensitive.includes(root) && !acknowledged.has(root)) {
390
+ throw new Error(`LangSmith capability "${capability.id}" includes sensitive field ` +
391
+ `"${root}" for a browser surface. Add allowSensitive: ["${root}"] to ` +
392
+ `acknowledge exposing it.`);
393
+ }
394
+ }
395
+ }
396
+ function assertKnownConstraintKeys(capability) {
397
+ const allowed = ALLOWED_CONSTRAINT_KEYS[capability.resource];
398
+ if (!capability.constraints || allowed === undefined) {
399
+ return;
400
+ }
401
+ for (const key of Object.keys(capability.constraints)) {
402
+ if (!allowed.includes(key)) {
403
+ throw new Error(`LangSmith capability "${capability.id}" has unknown constraint ` +
404
+ `"${key}" for resource "${capability.resource}".`);
405
+ }
406
+ }
407
+ }
408
+ /**
409
+ * Build a branded LangSmith connector from capabilities (or preset-produced
410
+ * capability arrays). Runs {@link validateLangSmithConnector} eagerly, then
411
+ * returns a connector whose `http` hook mounts the enforcement engine.
412
+ */
413
+ export function connector(...capabilities) {
414
+ const flat = capabilities.flat();
415
+ validateLangSmithConnector(flat);
416
+ const instance = {
417
+ [CONNECTOR_BRAND]: true,
418
+ kind: "langsmith",
419
+ capabilities: flat,
420
+ /**
421
+ * Mount must be synchronous: `buildManagedHttpApp` does not await hooks,
422
+ * and LangGraph captures custom routes at import time. A dynamic `import()`
423
+ * here races that capture and leaves connector paths as platform 404s.
424
+ */
425
+ http(ctx) {
426
+ mountLangSmithRoutes(ctx, flat);
427
+ },
428
+ };
429
+ return instance;
430
+ }
431
+ //# 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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"}
@@ -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
- /** The object exported from `connectors/mcp.ts`. */
114
- export interface McpServersDefinition extends McpServersConfig {
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
  }
@@ -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,oDAAoD;AACpD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GACvB,oBAAoB,CA2BtB"}
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"}
@@ -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
- return { kind: "mcp_servers", ...config };
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"]);
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * The managed `identity.ts` declaration primitive.
3
+ *
4
+ * A project's root `identity.ts` exports a named `identity` created with
5
+ * `defineIdentity(...)` (or `defineIdentity.preset(...)`). The compiler
6
+ * discovers it, generates the custom-auth handler, and wires thread/memory
7
+ * scoping and downstream credentials.
8
+ *
9
+ * This module is pure authoring-time config construction plus eager validation —
10
+ * it has no runtime dependency (the `providers.*` helpers return plain data).
11
+ */
12
+ import { type SupabaseProviderOptions } from "./supabase.js";
13
+ import type { IdentityConfig, IdentityDefinition, IdentityPresetName, ValidatedTokenProvider } from "./types.js";
14
+ export type { CredentialResolver, CredentialResolverConfig, CredentialScope, CredentialTarget, HttpIngress, IdentityConfig, IdentityDefinition, IdentityPresetName, MemoryScope, ResolvedCredential, RuntimeIdentity, Tenancy, ThreadScope, ValidatedTokenIngress, ValidatedTokenProvider, } from "./types.js";
15
+ export type { SupabaseProviderOptions, SupabaseRegion } from "./supabase.js";
16
+ export { supabaseAuthV1Base } from "./supabase.js";
17
+ /** The signature of {@link defineIdentity}, including its `.preset` helper. */
18
+ export interface DefineIdentity {
19
+ (config: IdentityConfig): IdentityDefinition;
20
+ /**
21
+ * Start from a named archetype and optionally override any subset of it. The
22
+ * headline API for the common case.
23
+ */
24
+ preset(name: IdentityPresetName, overrides?: DeepPartial<IdentityConfig>): IdentityDefinition;
25
+ }
26
+ /**
27
+ * Declare the identity contract for the deployment.
28
+ *
29
+ * Most developers call {@link defineIdentity.preset} instead. The three scoping
30
+ * axes are the power-user layer underneath.
31
+ */
32
+ export declare const defineIdentity: DefineIdentity;
33
+ /**
34
+ * Provider integrations — authoring-time sugar over {@link ValidatedTokenProvider}.
35
+ * Each returns a plain provider object you can spread-and-override, so
36
+ * there is no new runtime surface.
37
+ */
38
+ export declare const providers: {
39
+ auth0({ domain, audience, }: {
40
+ domain: string;
41
+ audience?: string;
42
+ }): ValidatedTokenProvider;
43
+ clerk({ domain }: {
44
+ domain: string;
45
+ }): ValidatedTokenProvider;
46
+ okta({ domain, audience, }: {
47
+ domain: string;
48
+ audience?: string;
49
+ }): ValidatedTokenProvider;
50
+ cognito({ userPoolId, region, }: {
51
+ userPoolId: string;
52
+ region: string;
53
+ }): ValidatedTokenProvider;
54
+ entra({ tenantId, audience, }: {
55
+ tenantId: string;
56
+ audience?: string;
57
+ }): ValidatedTokenProvider;
58
+ google({ audience }?: {
59
+ audience?: string;
60
+ }): ValidatedTokenProvider;
61
+ /** @see {@link supabaseProvider} */
62
+ supabase(options: SupabaseProviderOptions): ValidatedTokenProvider;
63
+ /** Universal fallback for any OIDC-compliant IdP via discovery. */
64
+ oidc({ issuer, audience, }: {
65
+ issuer: string;
66
+ audience?: string;
67
+ }): ValidatedTokenProvider;
68
+ /**
69
+ * GitHub OAuth access tokens (opaque bearer tokens, not JWTs). MDA verifies
70
+ * each request by calling `GET https://api.github.com/user` with the token.
71
+ */
72
+ github(): ValidatedTokenProvider;
73
+ /** MDA-issued anonymous/guest tokens. */
74
+ guest({ ttl, actorPrefix, }?: {
75
+ ttl?: string;
76
+ actorPrefix?: string;
77
+ }): ValidatedTokenProvider;
78
+ };
79
+ /**
80
+ * Eagerly reject illegal identity configs at authoring time so misconfig never
81
+ * reaches the compiler or runtime.
82
+ */
83
+ export declare function validateIdentity(config: IdentityConfig): void;
84
+ /** Recursively merge plain objects; arrays and primitives from `patch` win. */
85
+ type DeepPartial<T> = T extends object ? {
86
+ [K in keyof T]?: DeepPartial<T[K]>;
87
+ } : T;
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,uBAAuB,EAAoB,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAElB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA8BnD,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC7C;;;OAGG;IACH,MAAM,CACJ,IAAI,EAAE,kBAAkB,EACxB,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,GACtC,kBAAkB,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,cAoB5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS;iCAIjB;QACD,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,sBAAsB;sBAUR;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,sBAAsB;gCAY1D;QACD,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,sBAAsB;qCAavB;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,sBAAsB;mCAavB;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,sBAAsB;0BAUL;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAQ,sBAAsB;IAUxE,oCAAoC;sBAClB,uBAAuB,GAAG,sBAAsB;IAIlE,mEAAmE;gCAIhE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,sBAAsB;IAU1B;;;OAGG;cACO,sBAAsB;IAehC,yCAAyC;kCAItC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAQ,sBAAsB;CAWxE,CAAC;AAIF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA0E7D;AA2ED,+EAA+E;AAC/E,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAClC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAC"}