@tangle-network/agent-interface 0.37.0 → 0.39.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.
@@ -1,4 +1,5 @@
1
1
  import { mergeAgentProfiles } from "./agent-profile.js";
2
+ import { canonicalAgentProfileJson } from "./agent-profile-canonical.js";
2
3
  const agentProfileDiffPropertyAxes = [
3
4
  "prompt",
4
5
  "model",
@@ -20,6 +21,110 @@ void _agentProfileDiffPropertyAxesAreExhaustive;
20
21
  export function defineAgentProfileDiff(diff) {
21
22
  return diff;
22
23
  }
24
+ const agentProfileResourceDiffPropertyAxes = [
25
+ "files",
26
+ "tools",
27
+ "skills",
28
+ "agents",
29
+ "commands",
30
+ "instructions",
31
+ "failOnError",
32
+ ];
33
+ const _agentProfileResourceDiffPropertyAxesAreExhaustive = true;
34
+ void _agentProfileResourceDiffPropertyAxesAreExhaustive;
35
+ /**
36
+ * Construct deterministic ordered profile patches that reproduce `candidate`'s
37
+ * canonical profile value exactly when applied to `baseline`.
38
+ *
39
+ * Profile overlays append arrays and merge records, so changed fields are reset
40
+ * first and then replaced. Comparison and copied values follow the same
41
+ * undefined-entry normalization as profile identity. The returned values use
42
+ * the existing {@link AgentProfileDiff} contract; an unchanged profile returns
43
+ * no steps.
44
+ */
45
+ export function diffAgentProfiles(baseline, candidate) {
46
+ const remove = {};
47
+ const set = {};
48
+ if (profileValuesDiffer(baseline.name, candidate.name) ||
49
+ profileValuesDiffer(baseline.description, candidate.description) ||
50
+ profileValuesDiffer(baseline.version, candidate.version)) {
51
+ remove.identity = true;
52
+ if (candidate.name !== undefined)
53
+ set.name = candidate.name;
54
+ if (candidate.description !== undefined) {
55
+ set.description = candidate.description;
56
+ }
57
+ if (candidate.version !== undefined)
58
+ set.version = candidate.version;
59
+ }
60
+ if (profileValuesDiffer(baseline.tags, candidate.tags)) {
61
+ remove.tags = true;
62
+ if (candidate.tags !== undefined) {
63
+ set.tags = canonicalProfileValue(candidate.tags);
64
+ }
65
+ }
66
+ for (const axis of agentProfileDiffPropertyAxes) {
67
+ if (axis === "resources") {
68
+ replaceChangedProfileResources(baseline.resources, candidate.resources, remove, set);
69
+ continue;
70
+ }
71
+ if (!profileValuesDiffer(baseline[axis], candidate[axis]))
72
+ continue;
73
+ Object.assign(remove, { [axis]: true });
74
+ const value = candidate[axis];
75
+ if (value !== undefined) {
76
+ Object.assign(set, { [axis]: canonicalProfileValue(value) });
77
+ }
78
+ }
79
+ if (Object.keys(remove).length === 0)
80
+ return [];
81
+ const reset = {
82
+ kind: "agent-profile-diff",
83
+ remove,
84
+ };
85
+ if (Object.keys(set).length === 0)
86
+ return [reset];
87
+ return [reset, { kind: "agent-profile-diff", set }];
88
+ }
89
+ function replaceChangedProfileResources(baseline, candidate, remove, set) {
90
+ if (!profileValuesDiffer(baseline, candidate))
91
+ return;
92
+ const resourceRemove = {};
93
+ const resourceSet = {};
94
+ let changedSubfields = 0;
95
+ for (const axis of agentProfileResourceDiffPropertyAxes) {
96
+ if (!profileValuesDiffer(baseline?.[axis], candidate?.[axis]))
97
+ continue;
98
+ changedSubfields += 1;
99
+ Object.assign(resourceRemove, { [axis]: true });
100
+ const value = candidate?.[axis];
101
+ if (value !== undefined) {
102
+ Object.assign(resourceSet, { [axis]: canonicalProfileValue(value) });
103
+ }
104
+ }
105
+ // Distinguish an absent resources object from an explicitly empty one.
106
+ if (changedSubfields === 0) {
107
+ remove.resources = true;
108
+ if (candidate !== undefined) {
109
+ set.resources = canonicalProfileValue(candidate);
110
+ }
111
+ return;
112
+ }
113
+ remove.resources = resourceRemove;
114
+ const canonicalCandidate = canonicalProfileValue(candidate);
115
+ if (Object.keys(resourceSet).length > 0 ||
116
+ (canonicalCandidate !== undefined &&
117
+ Object.keys(canonicalCandidate).length === 0)) {
118
+ set.resources = resourceSet;
119
+ }
120
+ }
121
+ function profileValuesDiffer(baseline, candidate) {
122
+ return (canonicalAgentProfileJson(baseline) !== canonicalAgentProfileJson(candidate));
123
+ }
124
+ function canonicalProfileValue(value) {
125
+ const json = canonicalAgentProfileJson(value);
126
+ return (json === undefined ? undefined : JSON.parse(json));
127
+ }
23
128
  function asMutable(value) {
24
129
  return value ? [...value] : undefined;
25
130
  }
@@ -174,12 +279,26 @@ export function applyAgentProfileDiff(base, diff) {
174
279
  const merged = mergeAgentProfiles(base, diff.set) ?? {};
175
280
  return applyRemoval(merged, diff.remove);
176
281
  }
282
+ function hasRemovalOperation(value) {
283
+ if (value === true)
284
+ return true;
285
+ if (Array.isArray(value))
286
+ return value.length > 0;
287
+ if (value && typeof value === "object") {
288
+ return Object.values(value).some(hasRemovalOperation);
289
+ }
290
+ return false;
291
+ }
177
292
  export function changedAgentProfileAxes(diff) {
178
293
  const axes = new Set();
179
294
  const set = diff.set;
180
295
  if (set) {
181
- if (set.name || set.description || set.version || set.tags)
296
+ if (set.name !== undefined ||
297
+ set.description !== undefined ||
298
+ set.version !== undefined ||
299
+ set.tags !== undefined) {
182
300
  axes.add("identity");
301
+ }
183
302
  for (const axis of agentProfileDiffPropertyAxes) {
184
303
  if (set[axis] !== undefined)
185
304
  axes.add(axis);
@@ -187,10 +306,11 @@ export function changedAgentProfileAxes(diff) {
187
306
  }
188
307
  const remove = diff.remove;
189
308
  if (remove) {
190
- if (remove.identity || remove.tags)
309
+ if (hasRemovalOperation(remove.identity) || hasRemovalOperation(remove.tags)) {
191
310
  axes.add("identity");
311
+ }
192
312
  for (const axis of agentProfileDiffPropertyAxes) {
193
- if (remove[axis] !== undefined)
313
+ if (hasRemovalOperation(remove[axis]))
194
314
  axes.add(axis);
195
315
  }
196
316
  }
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import type { AgentProfile, AgentProfileMcpServer } from "./agent-profile.js";
2
+ import { type AgentProfile, type AgentProfileMcpServer } from "./agent-profile.js";
3
3
  import type { AgentProfileDiff } from "./profile-diff.js";
4
4
  import { type SandboxSizePreset } from "./sandbox-size.js";
5
5
  export declare const agentProfilePermissionValueSchema: z.ZodEnum<{
@@ -11,11 +11,7 @@ export declare const agentProfilePermissionSchema: z.ZodUnion<readonly [z.ZodEnu
11
11
  allow: "allow";
12
12
  ask: "ask";
13
13
  deny: "deny";
14
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
15
- allow: "allow";
16
- ask: "ask";
17
- deny: "deny";
18
- }>>]>;
14
+ }>, z.ZodType<Record<string, "allow" | "ask" | "deny">, unknown, z.core.$ZodTypeInternals<Record<string, "allow" | "ask" | "deny">, unknown>>]>;
19
15
  export declare const agentProfileResourceRefSchema: z.ZodUnion<readonly [z.ZodObject<{
20
16
  kind: z.ZodLiteral<"inline">;
21
17
  name: z.ZodString;
@@ -137,51 +133,102 @@ export declare const agentProfileModelHintsSchema: z.ZodObject<{
137
133
  xhigh: "xhigh";
138
134
  ultracode: "ultracode";
139
135
  }>>;
140
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
136
+ metadata: z.ZodOptional<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
141
137
  }, z.core.$strict>;
142
138
  export declare const agentProfilePromptSchema: z.ZodObject<{
143
139
  systemPrompt: z.ZodOptional<z.ZodString>;
144
140
  instructions: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
141
  }, z.core.$strict>;
142
+ export declare const agentProfilePublicConfigValueSchema: z.ZodObject<{
143
+ kind: z.ZodLiteral<"public">;
144
+ value: z.ZodString;
145
+ }, z.core.$strict>;
146
+ export declare const agentProfileSecretRefSchema: z.ZodObject<{
147
+ kind: z.ZodLiteral<"secret-ref">;
148
+ key: z.ZodString;
149
+ format: z.ZodOptional<z.ZodEnum<{
150
+ raw: "raw";
151
+ bearer: "bearer";
152
+ }>>;
153
+ }, z.core.$strict>;
154
+ export declare const agentProfileConfigValueSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
155
+ kind: z.ZodLiteral<"public">;
156
+ value: z.ZodString;
157
+ }, z.core.$strict>, z.ZodObject<{
158
+ kind: z.ZodLiteral<"secret-ref">;
159
+ key: z.ZodString;
160
+ format: z.ZodOptional<z.ZodEnum<{
161
+ raw: "raw";
162
+ bearer: "bearer";
163
+ }>>;
164
+ }, z.core.$strict>], "kind">;
165
+ export declare const agentProfileEnvironmentSchema: z.ZodType<Record<string, {
166
+ kind: "public";
167
+ value: string;
168
+ } | {
169
+ kind: "secret-ref";
170
+ key: string;
171
+ format?: "raw" | "bearer" | undefined;
172
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
173
+ kind: "public";
174
+ value: string;
175
+ } | {
176
+ kind: "secret-ref";
177
+ key: string;
178
+ format?: "raw" | "bearer" | undefined;
179
+ }>, unknown>>;
180
+ export declare const agentProfileHeaderSchema: z.ZodType<Record<string, {
181
+ kind: "public";
182
+ value: string;
183
+ } | {
184
+ kind: "secret-ref";
185
+ key: string;
186
+ format?: "raw" | "bearer" | undefined;
187
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
188
+ kind: "public";
189
+ value: string;
190
+ } | {
191
+ kind: "secret-ref";
192
+ key: string;
193
+ format?: "raw" | "bearer" | undefined;
194
+ }>, unknown>>;
146
195
  export declare const agentSubagentProfileSchema: z.ZodObject<{
147
196
  description: z.ZodOptional<z.ZodString>;
148
197
  prompt: z.ZodOptional<z.ZodString>;
149
198
  model: z.ZodOptional<z.ZodString>;
150
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
151
- permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
152
- allow: "allow";
153
- ask: "ask";
154
- deny: "deny";
155
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
156
- allow: "allow";
157
- ask: "ask";
158
- deny: "deny";
159
- }>>]>>>;
199
+ tools: z.ZodOptional<z.ZodType<Record<string, boolean>, unknown, z.core.$ZodTypeInternals<Record<string, boolean>, unknown>>>;
200
+ permissions: z.ZodOptional<z.ZodType<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown, z.core.$ZodTypeInternals<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown>>>;
160
201
  maxSteps: z.ZodOptional<z.ZodNumber>;
161
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
202
+ metadata: z.ZodOptional<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
162
203
  }, z.core.$strict>;
163
204
  export declare const agentProfileHookCommandSchema: z.ZodObject<{
164
205
  command: z.ZodString;
165
206
  timeoutMs: z.ZodOptional<z.ZodNumber>;
166
207
  blocking: z.ZodOptional<z.ZodBoolean>;
167
208
  matcher: z.ZodOptional<z.ZodString>;
168
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
209
+ env: z.ZodOptional<z.ZodType<Record<string, {
210
+ kind: "public";
211
+ value: string;
212
+ } | {
213
+ kind: "secret-ref";
214
+ key: string;
215
+ format?: "raw" | "bearer" | undefined;
216
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
217
+ kind: "public";
218
+ value: string;
219
+ } | {
220
+ kind: "secret-ref";
221
+ key: string;
222
+ format?: "raw" | "bearer" | undefined;
223
+ }>, unknown>>>;
169
224
  }, z.core.$strict>;
170
225
  export declare const agentProfileModeSchema: z.ZodObject<{
171
226
  description: z.ZodOptional<z.ZodString>;
172
227
  model: z.ZodOptional<z.ZodString>;
173
228
  prompt: z.ZodOptional<z.ZodString>;
174
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
175
- permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
176
- allow: "allow";
177
- ask: "ask";
178
- deny: "deny";
179
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
180
- allow: "allow";
181
- ask: "ask";
182
- deny: "deny";
183
- }>>]>>>;
184
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
229
+ tools: z.ZodOptional<z.ZodType<Record<string, boolean>, unknown, z.core.$ZodTypeInternals<Record<string, boolean>, unknown>>>;
230
+ permissions: z.ZodOptional<z.ZodType<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown, z.core.$ZodTypeInternals<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown>>>;
231
+ metadata: z.ZodOptional<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
185
232
  }, z.core.$strict>;
186
233
  export declare const agentProfileConfidentialSchema: z.ZodObject<{
187
234
  tee: z.ZodOptional<z.ZodString>;
@@ -264,7 +311,7 @@ export declare const agentProfileSchema: z.ZodObject<{
264
311
  xhigh: "xhigh";
265
312
  ultracode: "ultracode";
266
313
  }>>;
267
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
314
+ metadata: z.ZodOptional<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
268
315
  }, z.core.$strict>>;
269
316
  harness: z.ZodOptional<z.ZodEnum<{
270
317
  "claude-code": "claude-code";
@@ -281,39 +328,31 @@ export declare const agentProfileSchema: z.ZodObject<{
281
328
  acp: "acp";
282
329
  "cli-base": "cli-base";
283
330
  }>>;
284
- permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
285
- allow: "allow";
286
- ask: "ask";
287
- deny: "deny";
288
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
289
- allow: "allow";
290
- ask: "ask";
291
- deny: "deny";
292
- }>>]>>>;
293
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
294
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<AgentProfileMcpServer, unknown, z.core.$ZodTypeInternals<AgentProfileMcpServer, unknown>>>>;
331
+ permissions: z.ZodOptional<z.ZodType<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown, z.core.$ZodTypeInternals<Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">>, unknown>>>;
332
+ tools: z.ZodOptional<z.ZodType<Record<string, boolean>, unknown, z.core.$ZodTypeInternals<Record<string, boolean>, unknown>>>;
333
+ mcp: z.ZodOptional<z.ZodType<Record<string, AgentProfileMcpServer>, unknown, z.core.$ZodTypeInternals<Record<string, AgentProfileMcpServer>, unknown>>>;
295
334
  connections: z.ZodOptional<z.ZodArray<z.ZodObject<{
296
335
  connectionId: z.ZodString;
297
336
  capabilities: z.ZodArray<z.ZodString>;
298
337
  alias: z.ZodOptional<z.ZodString>;
299
338
  }, z.core.$strict>>>;
300
- subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
301
- description: z.ZodOptional<z.ZodString>;
302
- prompt: z.ZodOptional<z.ZodString>;
303
- model: z.ZodOptional<z.ZodString>;
304
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
305
- permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
306
- allow: "allow";
307
- ask: "ask";
308
- deny: "deny";
309
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
310
- allow: "allow";
311
- ask: "ask";
312
- deny: "deny";
313
- }>>]>>>;
314
- maxSteps: z.ZodOptional<z.ZodNumber>;
315
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
316
- }, z.core.$strict>>>;
339
+ subagents: z.ZodOptional<z.ZodType<Record<string, {
340
+ description?: string | undefined;
341
+ prompt?: string | undefined;
342
+ model?: string | undefined;
343
+ tools?: Record<string, boolean> | undefined;
344
+ permissions?: Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">> | undefined;
345
+ maxSteps?: number | undefined;
346
+ metadata?: Record<string, unknown> | undefined;
347
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
348
+ description?: string | undefined;
349
+ prompt?: string | undefined;
350
+ model?: string | undefined;
351
+ tools?: Record<string, boolean> | undefined;
352
+ permissions?: Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">> | undefined;
353
+ maxSteps?: number | undefined;
354
+ metadata?: Record<string, unknown> | undefined;
355
+ }>, unknown>>>;
317
356
  resources: z.ZodOptional<z.ZodObject<{
318
357
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
319
358
  path: z.ZodString;
@@ -387,37 +426,56 @@ export declare const agentProfileSchema: z.ZodObject<{
387
426
  }, z.core.$strict>]>]>>;
388
427
  failOnError: z.ZodOptional<z.ZodBoolean>;
389
428
  }, z.core.$strict>>;
390
- hooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
391
- command: z.ZodString;
392
- timeoutMs: z.ZodOptional<z.ZodNumber>;
393
- blocking: z.ZodOptional<z.ZodBoolean>;
394
- matcher: z.ZodOptional<z.ZodString>;
395
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
396
- }, z.core.$strict>>>>;
397
- modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
398
- description: z.ZodOptional<z.ZodString>;
399
- model: z.ZodOptional<z.ZodString>;
400
- prompt: z.ZodOptional<z.ZodString>;
401
- tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
402
- permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
403
- allow: "allow";
404
- ask: "ask";
405
- deny: "deny";
406
- }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
407
- allow: "allow";
408
- ask: "ask";
409
- deny: "deny";
410
- }>>]>>>;
411
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
412
- }, z.core.$strict>>>;
429
+ hooks: z.ZodOptional<z.ZodType<Record<string, {
430
+ command: string;
431
+ timeoutMs?: number | undefined;
432
+ blocking?: boolean | undefined;
433
+ matcher?: string | undefined;
434
+ env?: Record<string, {
435
+ kind: "public";
436
+ value: string;
437
+ } | {
438
+ kind: "secret-ref";
439
+ key: string;
440
+ format?: "raw" | "bearer" | undefined;
441
+ }> | undefined;
442
+ }[]>, unknown, z.core.$ZodTypeInternals<Record<string, {
443
+ command: string;
444
+ timeoutMs?: number | undefined;
445
+ blocking?: boolean | undefined;
446
+ matcher?: string | undefined;
447
+ env?: Record<string, {
448
+ kind: "public";
449
+ value: string;
450
+ } | {
451
+ kind: "secret-ref";
452
+ key: string;
453
+ format?: "raw" | "bearer" | undefined;
454
+ }> | undefined;
455
+ }[]>, unknown>>>;
456
+ modes: z.ZodOptional<z.ZodType<Record<string, {
457
+ description?: string | undefined;
458
+ model?: string | undefined;
459
+ prompt?: string | undefined;
460
+ tools?: Record<string, boolean> | undefined;
461
+ permissions?: Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">> | undefined;
462
+ metadata?: Record<string, unknown> | undefined;
463
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
464
+ description?: string | undefined;
465
+ model?: string | undefined;
466
+ prompt?: string | undefined;
467
+ tools?: Record<string, boolean> | undefined;
468
+ permissions?: Record<string, "allow" | "ask" | "deny" | Record<string, "allow" | "ask" | "deny">> | undefined;
469
+ metadata?: Record<string, unknown> | undefined;
470
+ }>, unknown>>>;
413
471
  confidential: z.ZodOptional<z.ZodObject<{
414
472
  tee: z.ZodOptional<z.ZodString>;
415
473
  attestationNonce: z.ZodOptional<z.ZodString>;
416
474
  sealed: z.ZodOptional<z.ZodBoolean>;
417
475
  attestationRefresh: z.ZodOptional<z.ZodBoolean>;
418
476
  }, z.core.$strict>>;
419
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
420
- extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodUndefined]>>>;
477
+ metadata: z.ZodOptional<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
478
+ extensions: z.ZodOptional<z.ZodType<Record<string, Record<string, unknown> | undefined>, unknown, z.core.$ZodTypeInternals<Record<string, Record<string, unknown> | undefined>, unknown>>>;
421
479
  }, z.core.$strict>;
422
480
  export declare const agentProfileDiffSchema: z.ZodType<AgentProfileDiff>;
423
481
  /**