@tangle-network/agent-interface 0.29.0 → 0.30.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.
@@ -93,6 +93,10 @@ export declare const agentCandidateProfilePlanMaterialSchema: z.ZodObject<{
93
93
  kind: z.ZodLiteral<"public">;
94
94
  value: z.ZodString;
95
95
  }, z.core.$strict>>;
96
+ systemPrompt: z.ZodOptional<z.ZodObject<{
97
+ kind: z.ZodLiteral<"public">;
98
+ value: z.ZodString;
99
+ }, z.core.$strict>>;
96
100
  unsupported: z.ZodArray<z.ZodObject<{
97
101
  dimension: z.ZodString;
98
102
  reason: z.ZodString;
@@ -539,6 +543,10 @@ export declare const agentCandidateProfilePlanEvidenceSchema: z.ZodObject<{
539
543
  dimension: string;
540
544
  reason: string;
541
545
  }[];
546
+ systemPrompt?: {
547
+ kind: "public";
548
+ value: string;
549
+ } | undefined;
542
550
  }, unknown, z.core.$ZodTypeInternals<{
543
551
  sourceProfileDigest: `sha256:${string}`;
544
552
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -559,6 +567,10 @@ export declare const agentCandidateProfilePlanEvidenceSchema: z.ZodObject<{
559
567
  dimension: string;
560
568
  reason: string;
561
569
  }[];
570
+ systemPrompt?: {
571
+ kind: "public";
572
+ value: string;
573
+ } | undefined;
562
574
  }, unknown>>;
563
575
  artifact: z.ZodUnion<readonly [z.ZodObject<{
564
576
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -605,6 +617,10 @@ export declare const agentCandidateProfileActivationSchema: z.ZodObject<{
605
617
  dimension: string;
606
618
  reason: string;
607
619
  }[];
620
+ systemPrompt?: {
621
+ kind: "public";
622
+ value: string;
623
+ } | undefined;
608
624
  }, unknown, z.core.$ZodTypeInternals<{
609
625
  sourceProfileDigest: `sha256:${string}`;
610
626
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -625,6 +641,10 @@ export declare const agentCandidateProfileActivationSchema: z.ZodObject<{
625
641
  dimension: string;
626
642
  reason: string;
627
643
  }[];
644
+ systemPrompt?: {
645
+ kind: "public";
646
+ value: string;
647
+ } | undefined;
628
648
  }, unknown>>;
629
649
  artifact: z.ZodUnion<readonly [z.ZodObject<{
630
650
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -115,6 +115,7 @@ export const agentCandidateProfilePlanMaterialSchema = z
115
115
  .strict()),
116
116
  env: environmentConfigSchema,
117
117
  flags: z.array(agentCandidateConfigValueSchema),
118
+ systemPrompt: agentCandidateConfigValueSchema.optional(),
118
119
  unsupported: z
119
120
  .array(z
120
121
  .object({
@@ -1,18 +1,6 @@
1
1
  import { z } from "zod";
2
- export declare const agentCandidateMcpServerSchema: z.ZodObject<{
3
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
4
- command: z.ZodOptional<z.ZodString>;
5
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
6
- kind: z.ZodLiteral<"public">;
7
- value: z.ZodString;
8
- }, z.core.$strict>>>;
9
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
10
- kind: z.ZodLiteral<"public">;
11
- value: z.ZodString;
12
- }, z.core.$strict>>>;
13
- cwd: z.ZodOptional<z.ZodString>;
14
- enabled: z.ZodOptional<z.ZodBoolean>;
15
- }, z.core.$strict>;
2
+ import type { AgentCandidateMcpServer } from "./agent-candidate.js";
3
+ export declare const agentCandidateMcpServerSchema: z.ZodType<AgentCandidateMcpServer>;
16
4
  export declare const agentCandidateHookCommandSchema: z.ZodObject<{
17
5
  executable: z.ZodString;
18
6
  args: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -78,20 +66,7 @@ export declare const agentCandidateProfileSchema: z.ZodObject<{
78
66
  deny: "deny";
79
67
  }>>]>>>;
80
68
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
81
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
82
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
83
- command: z.ZodOptional<z.ZodString>;
84
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
85
- kind: z.ZodLiteral<"public">;
86
- value: z.ZodString;
87
- }, z.core.$strict>>>;
88
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
89
- kind: z.ZodLiteral<"public">;
90
- value: z.ZodString;
91
- }, z.core.$strict>>>;
92
- cwd: z.ZodOptional<z.ZodString>;
93
- enabled: z.ZodOptional<z.ZodBoolean>;
94
- }, z.core.$strict>>>;
69
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<AgentCandidateMcpServer, unknown>>>>;
95
70
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
96
71
  prompt: z.ZodOptional<z.ZodString>;
97
72
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -6,41 +6,29 @@ import { agentProfileConfidentialSchema, agentProfileModeSchema, agentProfileMod
6
6
  const executableSchema = z
7
7
  .string()
8
8
  .refine(isSafeExecutable, "executable must be a canonical non-shell command");
9
- export const agentCandidateMcpServerSchema = z
10
- .object({
9
+ const agentCandidateLocalMcpServerSchema = z.strictObject({
11
10
  transport: z.literal("stdio").optional(),
12
- command: executableSchema.optional(),
11
+ command: executableSchema,
13
12
  args: z.array(agentCandidateConfigValueSchema).optional(),
14
13
  env: environmentConfigSchema.optional(),
15
14
  cwd: z
16
15
  .string()
17
16
  .refine((value) => isSafeRelativePath(value, true), "MCP cwd must be a canonical workspace-relative path")
18
17
  .optional(),
19
- enabled: z.boolean().optional(),
20
- })
21
- .strict()
22
- .superRefine((server, ctx) => {
23
- if (server.enabled === false) {
24
- if (server.transport !== undefined ||
25
- server.command !== undefined ||
26
- server.args !== undefined ||
27
- server.env !== undefined ||
28
- server.cwd !== undefined) {
29
- ctx.addIssue({
30
- code: "custom",
31
- message: "disabled MCP servers cannot carry process fields",
32
- });
33
- }
34
- return;
35
- }
36
- if (server.command === undefined) {
37
- ctx.addIssue({
38
- code: "custom",
39
- path: ["command"],
40
- message: "enabled stdio MCP servers require a command",
41
- });
42
- }
18
+ enabled: z.literal(true).optional(),
19
+ });
20
+ const agentCandidateDisabledMcpServerSchema = z.strictObject({
21
+ enabled: z.literal(false),
22
+ transport: z.undefined().optional(),
23
+ command: z.undefined().optional(),
24
+ args: z.undefined().optional(),
25
+ env: z.undefined().optional(),
26
+ cwd: z.undefined().optional(),
43
27
  });
28
+ export const agentCandidateMcpServerSchema = z.union([
29
+ agentCandidateLocalMcpServerSchema,
30
+ agentCandidateDisabledMcpServerSchema,
31
+ ]);
44
32
  export const agentCandidateHookCommandSchema = z
45
33
  .object({
46
34
  executable: executableSchema,
@@ -67,20 +67,7 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
67
67
  deny: "deny";
68
68
  }>>]>>>;
69
69
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
70
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
71
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
72
- command: z.ZodOptional<z.ZodString>;
73
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
74
- kind: z.ZodLiteral<"public">;
75
- value: z.ZodString;
76
- }, z.core.$strict>>>;
77
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
78
- kind: z.ZodLiteral<"public">;
79
- value: z.ZodString;
80
- }, z.core.$strict>>>;
81
- cwd: z.ZodOptional<z.ZodString>;
82
- enabled: z.ZodOptional<z.ZodBoolean>;
83
- }, z.core.$strict>>>;
70
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
84
71
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
85
72
  prompt: z.ZodOptional<z.ZodString>;
86
73
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -593,20 +580,7 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
593
580
  deny: "deny";
594
581
  }>>]>>>;
595
582
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
596
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
597
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
598
- command: z.ZodOptional<z.ZodString>;
599
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
600
- kind: z.ZodLiteral<"public">;
601
- value: z.ZodString;
602
- }, z.core.$strict>>>;
603
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
604
- kind: z.ZodLiteral<"public">;
605
- value: z.ZodString;
606
- }, z.core.$strict>>>;
607
- cwd: z.ZodOptional<z.ZodString>;
608
- enabled: z.ZodOptional<z.ZodBoolean>;
609
- }, z.core.$strict>>>;
583
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
610
584
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
611
585
  prompt: z.ZodOptional<z.ZodString>;
612
586
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -1484,6 +1458,10 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
1484
1458
  dimension: string;
1485
1459
  reason: string;
1486
1460
  }[];
1461
+ systemPrompt?: {
1462
+ kind: "public";
1463
+ value: string;
1464
+ } | undefined;
1487
1465
  }, unknown, z.core.$ZodTypeInternals<{
1488
1466
  sourceProfileDigest: `sha256:${string}`;
1489
1467
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -1504,6 +1482,10 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
1504
1482
  dimension: string;
1505
1483
  reason: string;
1506
1484
  }[];
1485
+ systemPrompt?: {
1486
+ kind: "public";
1487
+ value: string;
1488
+ } | undefined;
1507
1489
  }, unknown>>;
1508
1490
  artifact: z.ZodUnion<readonly [z.ZodObject<{
1509
1491
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -2809,20 +2791,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
2809
2791
  deny: "deny";
2810
2792
  }>>]>>>;
2811
2793
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
2812
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2813
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
2814
- command: z.ZodOptional<z.ZodString>;
2815
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
2816
- kind: z.ZodLiteral<"public">;
2817
- value: z.ZodString;
2818
- }, z.core.$strict>>>;
2819
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2820
- kind: z.ZodLiteral<"public">;
2821
- value: z.ZodString;
2822
- }, z.core.$strict>>>;
2823
- cwd: z.ZodOptional<z.ZodString>;
2824
- enabled: z.ZodOptional<z.ZodBoolean>;
2825
- }, z.core.$strict>>>;
2794
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
2826
2795
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2827
2796
  prompt: z.ZodOptional<z.ZodString>;
2828
2797
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -3335,20 +3304,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
3335
3304
  deny: "deny";
3336
3305
  }>>]>>>;
3337
3306
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
3338
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3339
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
3340
- command: z.ZodOptional<z.ZodString>;
3341
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
3342
- kind: z.ZodLiteral<"public">;
3343
- value: z.ZodString;
3344
- }, z.core.$strict>>>;
3345
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3346
- kind: z.ZodLiteral<"public">;
3347
- value: z.ZodString;
3348
- }, z.core.$strict>>>;
3349
- cwd: z.ZodOptional<z.ZodString>;
3350
- enabled: z.ZodOptional<z.ZodBoolean>;
3351
- }, z.core.$strict>>>;
3307
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
3352
3308
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3353
3309
  prompt: z.ZodOptional<z.ZodString>;
3354
3310
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -4227,6 +4183,10 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
4227
4183
  dimension: string;
4228
4184
  reason: string;
4229
4185
  }[];
4186
+ systemPrompt?: {
4187
+ kind: "public";
4188
+ value: string;
4189
+ } | undefined;
4230
4190
  }, unknown, z.core.$ZodTypeInternals<{
4231
4191
  sourceProfileDigest: `sha256:${string}`;
4232
4192
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -4247,6 +4207,10 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
4247
4207
  dimension: string;
4248
4208
  reason: string;
4249
4209
  }[];
4210
+ systemPrompt?: {
4211
+ kind: "public";
4212
+ value: string;
4213
+ } | undefined;
4250
4214
  }, unknown>>;
4251
4215
  artifact: z.ZodUnion<readonly [z.ZodObject<{
4252
4216
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -5570,6 +5534,10 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
5570
5534
  dimension: string;
5571
5535
  reason: string;
5572
5536
  }[];
5537
+ systemPrompt?: {
5538
+ kind: "public";
5539
+ value: string;
5540
+ } | undefined;
5573
5541
  }, unknown, z.core.$ZodTypeInternals<{
5574
5542
  sourceProfileDigest: `sha256:${string}`;
5575
5543
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -5590,6 +5558,10 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
5590
5558
  dimension: string;
5591
5559
  reason: string;
5592
5560
  }[];
5561
+ systemPrompt?: {
5562
+ kind: "public";
5563
+ value: string;
5564
+ } | undefined;
5593
5565
  }, unknown>>;
5594
5566
  artifact: z.ZodUnion<readonly [z.ZodObject<{
5595
5567
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -7077,20 +7049,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
7077
7049
  deny: "deny";
7078
7050
  }>>]>>>;
7079
7051
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
7080
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7081
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
7082
- command: z.ZodOptional<z.ZodString>;
7083
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
7084
- kind: z.ZodLiteral<"public">;
7085
- value: z.ZodString;
7086
- }, z.core.$strict>>>;
7087
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7088
- kind: z.ZodLiteral<"public">;
7089
- value: z.ZodString;
7090
- }, z.core.$strict>>>;
7091
- cwd: z.ZodOptional<z.ZodString>;
7092
- enabled: z.ZodOptional<z.ZodBoolean>;
7093
- }, z.core.$strict>>>;
7052
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
7094
7053
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7095
7054
  prompt: z.ZodOptional<z.ZodString>;
7096
7055
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -7603,20 +7562,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
7603
7562
  deny: "deny";
7604
7563
  }>>]>>>;
7605
7564
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
7606
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7607
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
7608
- command: z.ZodOptional<z.ZodString>;
7609
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
7610
- kind: z.ZodLiteral<"public">;
7611
- value: z.ZodString;
7612
- }, z.core.$strict>>>;
7613
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7614
- kind: z.ZodLiteral<"public">;
7615
- value: z.ZodString;
7616
- }, z.core.$strict>>>;
7617
- cwd: z.ZodOptional<z.ZodString>;
7618
- enabled: z.ZodOptional<z.ZodBoolean>;
7619
- }, z.core.$strict>>>;
7565
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
7620
7566
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7621
7567
  prompt: z.ZodOptional<z.ZodString>;
7622
7568
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -8495,6 +8441,10 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
8495
8441
  dimension: string;
8496
8442
  reason: string;
8497
8443
  }[];
8444
+ systemPrompt?: {
8445
+ kind: "public";
8446
+ value: string;
8447
+ } | undefined;
8498
8448
  }, unknown, z.core.$ZodTypeInternals<{
8499
8449
  sourceProfileDigest: `sha256:${string}`;
8500
8450
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -8515,6 +8465,10 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
8515
8465
  dimension: string;
8516
8466
  reason: string;
8517
8467
  }[];
8468
+ systemPrompt?: {
8469
+ kind: "public";
8470
+ value: string;
8471
+ } | undefined;
8518
8472
  }, unknown>>;
8519
8473
  artifact: z.ZodUnion<readonly [z.ZodObject<{
8520
8474
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -9838,6 +9792,10 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
9838
9792
  dimension: string;
9839
9793
  reason: string;
9840
9794
  }[];
9795
+ systemPrompt?: {
9796
+ kind: "public";
9797
+ value: string;
9798
+ } | undefined;
9841
9799
  }, unknown, z.core.$ZodTypeInternals<{
9842
9800
  sourceProfileDigest: `sha256:${string}`;
9843
9801
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -9858,6 +9816,10 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
9858
9816
  dimension: string;
9859
9817
  reason: string;
9860
9818
  }[];
9819
+ systemPrompt?: {
9820
+ kind: "public";
9821
+ value: string;
9822
+ } | undefined;
9861
9823
  }, unknown>>;
9862
9824
  artifact: z.ZodUnion<readonly [z.ZodObject<{
9863
9825
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -215,6 +215,10 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
215
215
  dimension: string;
216
216
  reason: string;
217
217
  }[];
218
+ systemPrompt?: {
219
+ kind: "public";
220
+ value: string;
221
+ } | undefined;
218
222
  }, unknown, z.core.$ZodTypeInternals<{
219
223
  sourceProfileDigest: `sha256:${string}`;
220
224
  harness: "claude-code" | "claude" | "claudish" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "kimi" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
@@ -235,6 +239,10 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
235
239
  dimension: string;
236
240
  reason: string;
237
241
  }[];
242
+ systemPrompt?: {
243
+ kind: "public";
244
+ value: string;
245
+ } | undefined;
238
246
  }, unknown>>;
239
247
  artifact: z.ZodUnion<readonly [z.ZodObject<{
240
248
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -61,20 +61,7 @@ export declare const agentCandidateBundleSchema: z.ZodObject<{
61
61
  deny: "deny";
62
62
  }>>]>>>;
63
63
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
64
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
65
- transport: z.ZodOptional<z.ZodLiteral<"stdio">>;
66
- command: z.ZodOptional<z.ZodString>;
67
- args: z.ZodOptional<z.ZodArray<z.ZodObject<{
68
- kind: z.ZodLiteral<"public">;
69
- value: z.ZodString;
70
- }, z.core.$strict>>>;
71
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
72
- kind: z.ZodLiteral<"public">;
73
- value: z.ZodString;
74
- }, z.core.$strict>>>;
75
- cwd: z.ZodOptional<z.ZodString>;
76
- enabled: z.ZodOptional<z.ZodBoolean>;
77
- }, z.core.$strict>>>;
64
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./agent-candidate.js").AgentCandidateMcpServer, unknown, z.core.$ZodTypeInternals<import("./agent-candidate.js").AgentCandidateMcpServer, unknown>>>>;
78
65
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
79
66
  prompt: z.ZodOptional<z.ZodString>;
80
67
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
@@ -1,4 +1,4 @@
1
- import type { AgentProfile, AgentProfileFileMount, AgentProfileHookCommand, AgentProfileMcpServer, AgentProfileMode, AgentProfileModelHints, AgentProfileResources, AgentSubagentProfile, ReasoningEffort } from "./agent-profile.js";
1
+ import type { AgentProfile, AgentProfileFileMount, AgentProfileHookCommand, AgentProfileMode, AgentProfileModelHints, AgentProfileResources, AgentSubagentProfile, ReasoningEffort } from "./agent-profile.js";
2
2
  import type { HarnessType } from "./harness.js";
3
3
  /** Full SHA-256 digest with an explicit algorithm prefix. */
4
4
  export type Sha256Digest = `sha256:${string}`;
@@ -78,11 +78,23 @@ export interface AgentCandidateResources extends Omit<AgentProfileResources, "fi
78
78
  instructions?: string | AgentCandidateResourceRef;
79
79
  failOnError: true;
80
80
  }
81
- export interface AgentCandidateMcpServer extends Omit<AgentProfileMcpServer, "transport" | "args" | "env" | "headers" | "url" | "metadata"> {
81
+ interface AgentCandidateLocalMcpServer {
82
82
  transport?: "stdio";
83
+ command: string;
83
84
  args?: AgentCandidateConfigValue[];
84
85
  env?: Record<string, AgentCandidateConfigValue>;
85
- }
86
+ cwd?: string;
87
+ enabled?: true;
88
+ }
89
+ interface AgentCandidateDisabledMcpServer {
90
+ enabled: false;
91
+ transport?: never;
92
+ command?: never;
93
+ args?: never;
94
+ env?: never;
95
+ cwd?: never;
96
+ }
97
+ export type AgentCandidateMcpServer = AgentCandidateLocalMcpServer | AgentCandidateDisabledMcpServer;
86
98
  export type AgentCandidateModelHints = Omit<AgentProfileModelHints, "metadata">;
87
99
  export type AgentCandidateSubagentProfile = Omit<AgentSubagentProfile, "metadata">;
88
100
  export type AgentCandidateMode = Omit<AgentProfileMode, "metadata">;
@@ -297,6 +309,8 @@ export interface AgentCandidateProfilePlanMaterial {
297
309
  }>;
298
310
  env: Record<string, AgentCandidateConfigValue>;
299
311
  flags: AgentCandidateConfigValue[];
312
+ /** Exact system-prompt replacement supplied to the harness, when supported. */
313
+ systemPrompt?: AgentCandidateConfigValue;
300
314
  unsupported: Array<{
301
315
  dimension: string;
302
316
  reason: string;
@@ -909,3 +923,4 @@ export interface AgentCandidateBenchmarkResultEvidence {
909
923
  }
910
924
  /** Declare a candidate bundle while retaining literal inference. */
911
925
  export declare function defineAgentCandidateBundle<T extends AgentCandidateBundle>(bundle: T): T;
926
+ export {};
@@ -92,9 +92,9 @@ export interface AgentProfileResources {
92
92
  * - `none` — extended thinking OFF (no reasoning budget at all)
93
93
  * - `minimal` — thinking ON, the lowest budget (distinct from `none`)
94
94
  * - `low` / `medium` / `high` / `xhigh`
95
- * - `ultracode` — maximum (claude-code's "ultracode" run mode; codex's `max` reconciles here).
96
- * A backend without a matching native tier clamps to its nearest (e.g. codex maps `ultracode` → `xhigh`
97
- * on models that support it).
95
+ * - `ultracode` — maximum (Claude Code's `max` and Codex's `ultra` reconcile here).
96
+ * A backend without a matching native tier may clamp down to its strongest supported level, but it
97
+ * must never turn reasoning on for `none` or silently increase a requested effort.
98
98
  */
99
99
  export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "ultracode";
100
100
  /**
@@ -191,17 +191,40 @@ export interface AgentProfileConfidential {
191
191
  /**
192
192
  * Generic MCP server configuration.
193
193
  */
194
- export interface AgentProfileMcpServer {
195
- transport?: "stdio" | "sse" | "http";
196
- command?: string;
194
+ interface AgentProfileMcpServerBase {
195
+ metadata?: Record<string, unknown>;
196
+ }
197
+ interface AgentProfileLocalMcpServer extends AgentProfileMcpServerBase {
198
+ enabled?: true;
199
+ transport?: "stdio";
200
+ command: string;
197
201
  args?: string[];
198
202
  env?: Record<string, string>;
199
203
  cwd?: string;
200
- url?: string;
204
+ url?: never;
205
+ headers?: never;
206
+ }
207
+ interface AgentProfileRemoteMcpServer extends AgentProfileMcpServerBase {
208
+ enabled?: true;
209
+ transport?: "sse" | "http";
210
+ command?: never;
211
+ args?: never;
212
+ env?: never;
213
+ cwd?: never;
214
+ url: string;
201
215
  headers?: Record<string, string>;
202
- enabled?: boolean;
203
- metadata?: Record<string, unknown>;
204
216
  }
217
+ interface AgentProfileDisabledMcpServer extends AgentProfileMcpServerBase {
218
+ enabled: false;
219
+ transport?: never;
220
+ command?: never;
221
+ args?: never;
222
+ env?: never;
223
+ cwd?: never;
224
+ url?: never;
225
+ headers?: never;
226
+ }
227
+ export type AgentProfileMcpServer = AgentProfileLocalMcpServer | AgentProfileRemoteMcpServer | AgentProfileDisabledMcpServer;
205
228
  /**
206
229
  * Hub-managed integration grant. The sandbox runtime resolves each declared
207
230
  * connection/capability pair into an MCP tool backed by Tangle Hub policy.
@@ -317,3 +340,4 @@ export interface AgentProfileValidationResult {
317
340
  * Overlay fields win on conflicts. Array-like instruction sets are appended.
318
341
  */
319
342
  export declare function mergeAgentProfiles(base: AgentProfile | undefined, overlay: AgentProfile | undefined): AgentProfile | undefined;
343
+ export {};
@@ -11,8 +11,8 @@ import { type HarnessType } from "./harness.js";
11
11
  * cli-bridge backends, the sandbox UI pickers, and the router all read one truth instead of each
12
12
  * hand-rolling a divergent copy.
13
13
  *
14
- * Grounded in cli-bridge's real backend clamps (codex is `low..xhigh` for current models, kimi is
15
- * binary on/off, claude carries the full range, cli-base has no agent) — NOT a guessed matrix. The
14
+ * Grounded in the native CLI controls (Codex is `minimal..ultra`, Kimi is binary on/off, Claude is
15
+ * `low..max`, cli-base has no agent) — NOT a guessed matrix. The
16
16
  * per-MODEL reasoning capability (does this specific model reason at all) is dynamic catalog data the
17
17
  * caller supplies.
18
18
  */
@@ -10,8 +10,8 @@ import { canonicalizeHarness } from "./harness.js";
10
10
  * cli-bridge backends, the sandbox UI pickers, and the router all read one truth instead of each
11
11
  * hand-rolling a divergent copy.
12
12
  *
13
- * Grounded in cli-bridge's real backend clamps (codex is `low..xhigh` for current models, kimi is
14
- * binary on/off, claude carries the full range, cli-base has no agent) — NOT a guessed matrix. The
13
+ * Grounded in the native CLI controls (Codex is `minimal..ultra`, Kimi is binary on/off, Claude is
14
+ * `low..max`, cli-base has no agent) — NOT a guessed matrix. The
15
15
  * per-MODEL reasoning capability (does this specific model reason at all) is dynamic catalog data the
16
16
  * caller supplies.
17
17
  */
@@ -125,21 +125,30 @@ export function snapHarnessToModel(harness, modelId) {
125
125
  /**
126
126
  * The explicit reasoning-effort set a harness's runtime accepts when it ISN'T a plain `none…ceiling`
127
127
  * slice — grounded in the cli-bridge adapters (NOT the canonical ladder):
128
- * - codex: current models advertise `low|medium|high|xhigh`; `none` is omitted (use `auto`) and
129
- * legacy `minimal` requests clamp up to `low`.
130
- * - claude-code: `--effort` accepts `low|medium|high|xhigh|max`. `ultracode` is the ladder's stand-in
131
- * for claude's `max` (clamped at runtime); `minimal`→`low` and `none`/`auto`→no flag, so both are
132
- * dropped as redundant.
133
- * - pi / openclaw: `--thinking` accepts `minimalxhigh` (max/ultracode clamp to `xhigh`; no `none`).
134
- * - kimi-code: `--thinking` is BINARY (off/on) `minimal` is the only value that emits
135
- * `--no-thinking`, `high` is "thinking on". So two levels, not five.
128
+ * - codex: `model_reasoning_effort` accepts `minimal|low|medium|high|xhigh|max|ultra`; canonical
129
+ * `ultracode` maps to native `ultra`. Per-model catalog data narrows this list.
130
+ * - claude-code: `--effort` accepts `low|medium|high|xhigh|max`; canonical `ultracode` maps to
131
+ * native `max`. It cannot express `none` or `minimal`.
132
+ * - pi: `--thinking` accepts `off|minimal|low|medium|high|xhigh`; canonical `none` maps to `off`.
133
+ * - openclaw: `--thinking` accepts `off|minimal|low|medium|high|xhigh|max`; canonical `none` maps
134
+ * to `off` and `ultracode` maps to `max`.
135
+ * - kimi-code: `--thinking` is binary. Canonical `none` emits `--no-thinking`; any non-none level
136
+ * emits `--thinking`, represented here by `high`.
136
137
  */
137
138
  const harnessReasoningEffortsOverride = {
138
- codex: ["low", "medium", "high", "xhigh"],
139
+ codex: ["minimal", "low", "medium", "high", "xhigh", "ultracode"],
139
140
  "claude-code": ["low", "medium", "high", "xhigh", "ultracode"],
140
- pi: ["minimal", "low", "medium", "high", "xhigh"],
141
- openclaw: ["minimal", "low", "medium", "high", "xhigh"],
142
- "kimi-code": ["minimal", "high"],
141
+ pi: ["none", "minimal", "low", "medium", "high", "xhigh"],
142
+ openclaw: [
143
+ "none",
144
+ "minimal",
145
+ "low",
146
+ "medium",
147
+ "high",
148
+ "xhigh",
149
+ "ultracode",
150
+ ],
151
+ "kimi-code": ["none", "high"],
143
152
  };
144
153
  /**
145
154
  * The ceiling for harnesses whose set IS a plain `none…ceiling` slice. Only the no-thinking runners
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import type { AgentProfile } from "./agent-profile.js";
2
+ import type { AgentProfile, 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<{
@@ -20,28 +20,28 @@ export declare const agentProfileResourceRefSchema: z.ZodUnion<readonly [z.ZodOb
20
20
  kind: z.ZodLiteral<"inline">;
21
21
  name: z.ZodString;
22
22
  content: z.ZodString;
23
- }, z.core.$strip>, z.ZodObject<{
23
+ }, z.core.$strict>, z.ZodObject<{
24
24
  kind: z.ZodLiteral<"github">;
25
25
  repository: z.ZodOptional<z.ZodString>;
26
26
  path: z.ZodString;
27
27
  ref: z.ZodOptional<z.ZodString>;
28
28
  name: z.ZodOptional<z.ZodString>;
29
- }, z.core.$strip>]>;
29
+ }, z.core.$strict>]>;
30
30
  export declare const agentProfileFileMountSchema: z.ZodObject<{
31
31
  path: z.ZodString;
32
32
  resource: z.ZodUnion<readonly [z.ZodObject<{
33
33
  kind: z.ZodLiteral<"inline">;
34
34
  name: z.ZodString;
35
35
  content: z.ZodString;
36
- }, z.core.$strip>, z.ZodObject<{
36
+ }, z.core.$strict>, z.ZodObject<{
37
37
  kind: z.ZodLiteral<"github">;
38
38
  repository: z.ZodOptional<z.ZodString>;
39
39
  path: z.ZodString;
40
40
  ref: z.ZodOptional<z.ZodString>;
41
41
  name: z.ZodOptional<z.ZodString>;
42
- }, z.core.$strip>]>;
42
+ }, z.core.$strict>]>;
43
43
  executable: z.ZodOptional<z.ZodBoolean>;
44
- }, z.core.$strip>;
44
+ }, z.core.$strict>;
45
45
  export declare const agentProfileResourcesSchema: z.ZodObject<{
46
46
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
47
47
  path: z.ZodString;
@@ -49,72 +49,72 @@ export declare const agentProfileResourcesSchema: z.ZodObject<{
49
49
  kind: z.ZodLiteral<"inline">;
50
50
  name: z.ZodString;
51
51
  content: z.ZodString;
52
- }, z.core.$strip>, z.ZodObject<{
52
+ }, z.core.$strict>, z.ZodObject<{
53
53
  kind: z.ZodLiteral<"github">;
54
54
  repository: z.ZodOptional<z.ZodString>;
55
55
  path: z.ZodString;
56
56
  ref: z.ZodOptional<z.ZodString>;
57
57
  name: z.ZodOptional<z.ZodString>;
58
- }, z.core.$strip>]>;
58
+ }, z.core.$strict>]>;
59
59
  executable: z.ZodOptional<z.ZodBoolean>;
60
- }, z.core.$strip>>>;
60
+ }, z.core.$strict>>>;
61
61
  tools: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
62
62
  kind: z.ZodLiteral<"inline">;
63
63
  name: z.ZodString;
64
64
  content: z.ZodString;
65
- }, z.core.$strip>, z.ZodObject<{
65
+ }, z.core.$strict>, z.ZodObject<{
66
66
  kind: z.ZodLiteral<"github">;
67
67
  repository: z.ZodOptional<z.ZodString>;
68
68
  path: z.ZodString;
69
69
  ref: z.ZodOptional<z.ZodString>;
70
70
  name: z.ZodOptional<z.ZodString>;
71
- }, z.core.$strip>]>>>;
71
+ }, z.core.$strict>]>>>;
72
72
  skills: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
73
73
  kind: z.ZodLiteral<"inline">;
74
74
  name: z.ZodString;
75
75
  content: z.ZodString;
76
- }, z.core.$strip>, z.ZodObject<{
76
+ }, z.core.$strict>, z.ZodObject<{
77
77
  kind: z.ZodLiteral<"github">;
78
78
  repository: z.ZodOptional<z.ZodString>;
79
79
  path: z.ZodString;
80
80
  ref: z.ZodOptional<z.ZodString>;
81
81
  name: z.ZodOptional<z.ZodString>;
82
- }, z.core.$strip>]>>>;
82
+ }, z.core.$strict>]>>>;
83
83
  agents: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
84
84
  kind: z.ZodLiteral<"inline">;
85
85
  name: z.ZodString;
86
86
  content: z.ZodString;
87
- }, z.core.$strip>, z.ZodObject<{
87
+ }, z.core.$strict>, z.ZodObject<{
88
88
  kind: z.ZodLiteral<"github">;
89
89
  repository: z.ZodOptional<z.ZodString>;
90
90
  path: z.ZodString;
91
91
  ref: z.ZodOptional<z.ZodString>;
92
92
  name: z.ZodOptional<z.ZodString>;
93
- }, z.core.$strip>]>>>;
93
+ }, z.core.$strict>]>>>;
94
94
  commands: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
95
95
  kind: z.ZodLiteral<"inline">;
96
96
  name: z.ZodString;
97
97
  content: z.ZodString;
98
- }, z.core.$strip>, z.ZodObject<{
98
+ }, z.core.$strict>, z.ZodObject<{
99
99
  kind: z.ZodLiteral<"github">;
100
100
  repository: z.ZodOptional<z.ZodString>;
101
101
  path: z.ZodString;
102
102
  ref: z.ZodOptional<z.ZodString>;
103
103
  name: z.ZodOptional<z.ZodString>;
104
- }, z.core.$strip>]>>>;
104
+ }, z.core.$strict>]>>>;
105
105
  instructions: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
106
106
  kind: z.ZodLiteral<"inline">;
107
107
  name: z.ZodString;
108
108
  content: z.ZodString;
109
- }, z.core.$strip>, z.ZodObject<{
109
+ }, z.core.$strict>, z.ZodObject<{
110
110
  kind: z.ZodLiteral<"github">;
111
111
  repository: z.ZodOptional<z.ZodString>;
112
112
  path: z.ZodString;
113
113
  ref: z.ZodOptional<z.ZodString>;
114
114
  name: z.ZodOptional<z.ZodString>;
115
- }, z.core.$strip>]>]>>;
115
+ }, z.core.$strict>]>]>>;
116
116
  failOnError: z.ZodOptional<z.ZodBoolean>;
117
- }, z.core.$strip>;
117
+ }, z.core.$strict>;
118
118
  export declare const reasoningEffortSchema: z.ZodEnum<{
119
119
  none: "none";
120
120
  minimal: "minimal";
@@ -138,11 +138,11 @@ export declare const agentProfileModelHintsSchema: z.ZodObject<{
138
138
  ultracode: "ultracode";
139
139
  }>>;
140
140
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
141
- }, z.core.$strip>;
141
+ }, z.core.$strict>;
142
142
  export declare const agentProfilePromptSchema: z.ZodObject<{
143
143
  systemPrompt: z.ZodOptional<z.ZodString>;
144
144
  instructions: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
- }, z.core.$strip>;
145
+ }, z.core.$strict>;
146
146
  export declare const agentSubagentProfileSchema: z.ZodObject<{
147
147
  description: z.ZodOptional<z.ZodString>;
148
148
  prompt: z.ZodOptional<z.ZodString>;
@@ -159,14 +159,14 @@ export declare const agentSubagentProfileSchema: z.ZodObject<{
159
159
  }>>]>>>;
160
160
  maxSteps: z.ZodOptional<z.ZodNumber>;
161
161
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
162
- }, z.core.$strip>;
162
+ }, z.core.$strict>;
163
163
  export declare const agentProfileHookCommandSchema: z.ZodObject<{
164
164
  command: z.ZodString;
165
165
  timeoutMs: z.ZodOptional<z.ZodNumber>;
166
166
  blocking: z.ZodOptional<z.ZodBoolean>;
167
167
  matcher: z.ZodOptional<z.ZodString>;
168
168
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
169
- }, z.core.$strip>;
169
+ }, z.core.$strict>;
170
170
  export declare const agentProfileModeSchema: z.ZodObject<{
171
171
  description: z.ZodOptional<z.ZodString>;
172
172
  model: z.ZodOptional<z.ZodString>;
@@ -182,37 +182,23 @@ export declare const agentProfileModeSchema: z.ZodObject<{
182
182
  deny: "deny";
183
183
  }>>]>>>;
184
184
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
185
- }, z.core.$strip>;
185
+ }, z.core.$strict>;
186
186
  export declare const agentProfileConfidentialSchema: z.ZodObject<{
187
187
  tee: z.ZodOptional<z.ZodString>;
188
188
  attestationNonce: z.ZodOptional<z.ZodString>;
189
189
  sealed: z.ZodOptional<z.ZodBoolean>;
190
190
  attestationRefresh: z.ZodOptional<z.ZodBoolean>;
191
- }, z.core.$strip>;
192
- export declare const agentProfileMcpServerSchema: z.ZodObject<{
193
- transport: z.ZodOptional<z.ZodEnum<{
194
- stdio: "stdio";
195
- sse: "sse";
196
- http: "http";
197
- }>>;
198
- command: z.ZodOptional<z.ZodString>;
199
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
200
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
201
- cwd: z.ZodOptional<z.ZodString>;
202
- url: z.ZodOptional<z.ZodString>;
203
- headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
204
- enabled: z.ZodOptional<z.ZodBoolean>;
205
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
206
- }, z.core.$strip>;
191
+ }, z.core.$strict>;
192
+ export declare const agentProfileMcpServerSchema: z.ZodType<AgentProfileMcpServer>;
207
193
  export declare const agentProfileConnectionSchema: z.ZodObject<{
208
194
  connectionId: z.ZodString;
209
195
  capabilities: z.ZodArray<z.ZodString>;
210
196
  alias: z.ZodOptional<z.ZodString>;
211
- }, z.core.$strip>;
197
+ }, z.core.$strict>;
212
198
  export declare const agentProfilePromptRemovalSchema: z.ZodObject<{
213
199
  systemPrompt: z.ZodOptional<z.ZodLiteral<true>>;
214
200
  instructions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
215
- }, z.core.$strip>;
201
+ }, z.core.$strict>;
216
202
  export declare const agentProfileResourceRemovalSchema: z.ZodObject<{
217
203
  files: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
218
204
  tools: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
@@ -221,14 +207,14 @@ export declare const agentProfileResourceRemovalSchema: z.ZodObject<{
221
207
  commands: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
222
208
  instructions: z.ZodOptional<z.ZodLiteral<true>>;
223
209
  failOnError: z.ZodOptional<z.ZodLiteral<true>>;
224
- }, z.core.$strip>;
210
+ }, z.core.$strict>;
225
211
  export declare const agentProfileDiffRemovalSchema: z.ZodObject<{
226
212
  identity: z.ZodOptional<z.ZodLiteral<true>>;
227
213
  tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
228
214
  prompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
229
215
  systemPrompt: z.ZodOptional<z.ZodLiteral<true>>;
230
216
  instructions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
231
- }, z.core.$strip>]>>;
217
+ }, z.core.$strict>]>>;
232
218
  model: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
233
219
  harness: z.ZodOptional<z.ZodLiteral<true>>;
234
220
  permissions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
@@ -244,13 +230,13 @@ export declare const agentProfileDiffRemovalSchema: z.ZodObject<{
244
230
  commands: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
245
231
  instructions: z.ZodOptional<z.ZodLiteral<true>>;
246
232
  failOnError: z.ZodOptional<z.ZodLiteral<true>>;
247
- }, z.core.$strip>]>>;
233
+ }, z.core.$strict>]>>;
248
234
  hooks: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
249
235
  modes: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
250
236
  confidential: z.ZodOptional<z.ZodLiteral<true>>;
251
237
  metadata: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
252
238
  extensions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodArray<z.ZodString>]>>;
253
- }, z.core.$strip>;
239
+ }, z.core.$strict>;
254
240
  /**
255
241
  * The complete provider-neutral agent profile schema — the runtime validator for
256
242
  * the canonical {@link AgentProfile} TS contract. Kept structurally in lock-step
@@ -264,7 +250,7 @@ export declare const agentProfileSchema: z.ZodObject<{
264
250
  prompt: z.ZodOptional<z.ZodObject<{
265
251
  systemPrompt: z.ZodOptional<z.ZodString>;
266
252
  instructions: z.ZodOptional<z.ZodArray<z.ZodString>>;
267
- }, z.core.$strip>>;
253
+ }, z.core.$strict>>;
268
254
  model: z.ZodOptional<z.ZodObject<{
269
255
  default: z.ZodOptional<z.ZodString>;
270
256
  small: z.ZodOptional<z.ZodString>;
@@ -279,7 +265,7 @@ export declare const agentProfileSchema: z.ZodObject<{
279
265
  ultracode: "ultracode";
280
266
  }>>;
281
267
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
282
- }, z.core.$strip>>;
268
+ }, z.core.$strict>>;
283
269
  harness: z.ZodOptional<z.ZodEnum<{
284
270
  "claude-code": "claude-code";
285
271
  claude: "claude";
@@ -308,26 +294,12 @@ export declare const agentProfileSchema: z.ZodObject<{
308
294
  deny: "deny";
309
295
  }>>]>>>;
310
296
  tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
311
- mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
312
- transport: z.ZodOptional<z.ZodEnum<{
313
- stdio: "stdio";
314
- sse: "sse";
315
- http: "http";
316
- }>>;
317
- command: z.ZodOptional<z.ZodString>;
318
- args: z.ZodOptional<z.ZodArray<z.ZodString>>;
319
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
320
- cwd: z.ZodOptional<z.ZodString>;
321
- url: z.ZodOptional<z.ZodString>;
322
- headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
323
- enabled: z.ZodOptional<z.ZodBoolean>;
324
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
325
- }, z.core.$strip>>>;
297
+ mcp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<AgentProfileMcpServer, unknown, z.core.$ZodTypeInternals<AgentProfileMcpServer, unknown>>>>;
326
298
  connections: z.ZodOptional<z.ZodArray<z.ZodObject<{
327
299
  connectionId: z.ZodString;
328
300
  capabilities: z.ZodArray<z.ZodString>;
329
301
  alias: z.ZodOptional<z.ZodString>;
330
- }, z.core.$strip>>>;
302
+ }, z.core.$strict>>>;
331
303
  subagents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
332
304
  description: z.ZodOptional<z.ZodString>;
333
305
  prompt: z.ZodOptional<z.ZodString>;
@@ -344,7 +316,7 @@ export declare const agentProfileSchema: z.ZodObject<{
344
316
  }>>]>>>;
345
317
  maxSteps: z.ZodOptional<z.ZodNumber>;
346
318
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
347
- }, z.core.$strip>>>;
319
+ }, z.core.$strict>>>;
348
320
  resources: z.ZodOptional<z.ZodObject<{
349
321
  files: z.ZodOptional<z.ZodArray<z.ZodObject<{
350
322
  path: z.ZodString;
@@ -352,79 +324,79 @@ export declare const agentProfileSchema: z.ZodObject<{
352
324
  kind: z.ZodLiteral<"inline">;
353
325
  name: z.ZodString;
354
326
  content: z.ZodString;
355
- }, z.core.$strip>, z.ZodObject<{
327
+ }, z.core.$strict>, z.ZodObject<{
356
328
  kind: z.ZodLiteral<"github">;
357
329
  repository: z.ZodOptional<z.ZodString>;
358
330
  path: z.ZodString;
359
331
  ref: z.ZodOptional<z.ZodString>;
360
332
  name: z.ZodOptional<z.ZodString>;
361
- }, z.core.$strip>]>;
333
+ }, z.core.$strict>]>;
362
334
  executable: z.ZodOptional<z.ZodBoolean>;
363
- }, z.core.$strip>>>;
335
+ }, z.core.$strict>>>;
364
336
  tools: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
365
337
  kind: z.ZodLiteral<"inline">;
366
338
  name: z.ZodString;
367
339
  content: z.ZodString;
368
- }, z.core.$strip>, z.ZodObject<{
340
+ }, z.core.$strict>, z.ZodObject<{
369
341
  kind: z.ZodLiteral<"github">;
370
342
  repository: z.ZodOptional<z.ZodString>;
371
343
  path: z.ZodString;
372
344
  ref: z.ZodOptional<z.ZodString>;
373
345
  name: z.ZodOptional<z.ZodString>;
374
- }, z.core.$strip>]>>>;
346
+ }, z.core.$strict>]>>>;
375
347
  skills: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
376
348
  kind: z.ZodLiteral<"inline">;
377
349
  name: z.ZodString;
378
350
  content: z.ZodString;
379
- }, z.core.$strip>, z.ZodObject<{
351
+ }, z.core.$strict>, z.ZodObject<{
380
352
  kind: z.ZodLiteral<"github">;
381
353
  repository: z.ZodOptional<z.ZodString>;
382
354
  path: z.ZodString;
383
355
  ref: z.ZodOptional<z.ZodString>;
384
356
  name: z.ZodOptional<z.ZodString>;
385
- }, z.core.$strip>]>>>;
357
+ }, z.core.$strict>]>>>;
386
358
  agents: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
387
359
  kind: z.ZodLiteral<"inline">;
388
360
  name: z.ZodString;
389
361
  content: z.ZodString;
390
- }, z.core.$strip>, z.ZodObject<{
362
+ }, z.core.$strict>, z.ZodObject<{
391
363
  kind: z.ZodLiteral<"github">;
392
364
  repository: z.ZodOptional<z.ZodString>;
393
365
  path: z.ZodString;
394
366
  ref: z.ZodOptional<z.ZodString>;
395
367
  name: z.ZodOptional<z.ZodString>;
396
- }, z.core.$strip>]>>>;
368
+ }, z.core.$strict>]>>>;
397
369
  commands: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
398
370
  kind: z.ZodLiteral<"inline">;
399
371
  name: z.ZodString;
400
372
  content: z.ZodString;
401
- }, z.core.$strip>, z.ZodObject<{
373
+ }, z.core.$strict>, z.ZodObject<{
402
374
  kind: z.ZodLiteral<"github">;
403
375
  repository: z.ZodOptional<z.ZodString>;
404
376
  path: z.ZodString;
405
377
  ref: z.ZodOptional<z.ZodString>;
406
378
  name: z.ZodOptional<z.ZodString>;
407
- }, z.core.$strip>]>>>;
379
+ }, z.core.$strict>]>>>;
408
380
  instructions: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
409
381
  kind: z.ZodLiteral<"inline">;
410
382
  name: z.ZodString;
411
383
  content: z.ZodString;
412
- }, z.core.$strip>, z.ZodObject<{
384
+ }, z.core.$strict>, z.ZodObject<{
413
385
  kind: z.ZodLiteral<"github">;
414
386
  repository: z.ZodOptional<z.ZodString>;
415
387
  path: z.ZodString;
416
388
  ref: z.ZodOptional<z.ZodString>;
417
389
  name: z.ZodOptional<z.ZodString>;
418
- }, z.core.$strip>]>]>>;
390
+ }, z.core.$strict>]>]>>;
419
391
  failOnError: z.ZodOptional<z.ZodBoolean>;
420
- }, z.core.$strip>>;
392
+ }, z.core.$strict>>;
421
393
  hooks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
422
394
  command: z.ZodString;
423
395
  timeoutMs: z.ZodOptional<z.ZodNumber>;
424
396
  blocking: z.ZodOptional<z.ZodBoolean>;
425
397
  matcher: z.ZodOptional<z.ZodString>;
426
398
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
427
- }, z.core.$strip>>>>;
399
+ }, z.core.$strict>>>>;
428
400
  modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
429
401
  description: z.ZodOptional<z.ZodString>;
430
402
  model: z.ZodOptional<z.ZodString>;
@@ -440,16 +412,16 @@ export declare const agentProfileSchema: z.ZodObject<{
440
412
  deny: "deny";
441
413
  }>>]>>>;
442
414
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
443
- }, z.core.$strip>>>;
415
+ }, z.core.$strict>>>;
444
416
  confidential: z.ZodOptional<z.ZodObject<{
445
417
  tee: z.ZodOptional<z.ZodString>;
446
418
  attestationNonce: z.ZodOptional<z.ZodString>;
447
419
  sealed: z.ZodOptional<z.ZodBoolean>;
448
420
  attestationRefresh: z.ZodOptional<z.ZodBoolean>;
449
- }, z.core.$strip>>;
421
+ }, z.core.$strict>>;
450
422
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
451
423
  extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodUndefined]>>>;
452
- }, z.core.$strip>;
424
+ }, z.core.$strict>;
453
425
  export declare const agentProfileDiffSchema: z.ZodType<AgentProfileDiff>;
454
426
  /**
455
427
  * A registered capability: a stable id paired with its canonical
@@ -12,12 +12,12 @@ export const agentProfilePermissionSchema = z.union([
12
12
  ]);
13
13
  // Mirrors the canonical AgentProfileResourceRef (inline | github), kind-discriminated.
14
14
  export const agentProfileResourceRefSchema = z.union([
15
- z.object({
15
+ z.strictObject({
16
16
  kind: z.literal("inline"),
17
17
  name: z.string(),
18
18
  content: z.string(),
19
19
  }),
20
- z.object({
20
+ z.strictObject({
21
21
  kind: z.literal("github"),
22
22
  repository: z.string().optional(),
23
23
  path: z.string(),
@@ -25,18 +25,20 @@ export const agentProfileResourceRefSchema = z.union([
25
25
  name: z.string().optional(),
26
26
  }),
27
27
  ]);
28
- export const agentProfileFileMountSchema = z.object({
28
+ export const agentProfileFileMountSchema = z.strictObject({
29
29
  path: z.string(),
30
30
  resource: agentProfileResourceRefSchema,
31
31
  executable: z.boolean().optional(),
32
32
  });
33
- export const agentProfileResourcesSchema = z.object({
33
+ export const agentProfileResourcesSchema = z.strictObject({
34
34
  files: z.array(agentProfileFileMountSchema).optional(),
35
35
  tools: z.array(agentProfileResourceRefSchema).optional(),
36
36
  skills: z.array(agentProfileResourceRefSchema).optional(),
37
37
  agents: z.array(agentProfileResourceRefSchema).optional(),
38
38
  commands: z.array(agentProfileResourceRefSchema).optional(),
39
- instructions: z.union([z.string(), agentProfileResourceRefSchema]).optional(),
39
+ instructions: z
40
+ .union([z.string(), agentProfileResourceRefSchema])
41
+ .optional(),
40
42
  failOnError: z.boolean().optional(),
41
43
  });
42
44
  export const reasoningEffortSchema = z.enum([
@@ -48,18 +50,18 @@ export const reasoningEffortSchema = z.enum([
48
50
  "xhigh",
49
51
  "ultracode",
50
52
  ]);
51
- export const agentProfileModelHintsSchema = z.object({
53
+ export const agentProfileModelHintsSchema = z.strictObject({
52
54
  default: z.string().optional(),
53
55
  small: z.string().optional(),
54
56
  provider: z.string().optional(),
55
57
  reasoningEffort: reasoningEffortSchema.optional(),
56
58
  metadata: z.record(z.string(), z.unknown()).optional(),
57
59
  });
58
- export const agentProfilePromptSchema = z.object({
60
+ export const agentProfilePromptSchema = z.strictObject({
59
61
  systemPrompt: z.string().optional(),
60
62
  instructions: z.array(z.string()).optional(),
61
63
  });
62
- export const agentSubagentProfileSchema = z.object({
64
+ export const agentSubagentProfileSchema = z.strictObject({
63
65
  description: z.string().optional(),
64
66
  prompt: z.string().optional(),
65
67
  model: z.string().optional(),
@@ -68,14 +70,14 @@ export const agentSubagentProfileSchema = z.object({
68
70
  maxSteps: z.number().optional(),
69
71
  metadata: z.record(z.string(), z.unknown()).optional(),
70
72
  });
71
- export const agentProfileHookCommandSchema = z.object({
73
+ export const agentProfileHookCommandSchema = z.strictObject({
72
74
  command: z.string(),
73
75
  timeoutMs: z.number().positive().optional(),
74
76
  blocking: z.boolean().optional(),
75
77
  matcher: z.string().optional(),
76
78
  env: z.record(z.string(), z.string()).optional(),
77
79
  });
78
- export const agentProfileModeSchema = z.object({
80
+ export const agentProfileModeSchema = z.strictObject({
79
81
  description: z.string().optional(),
80
82
  model: z.string().optional(),
81
83
  prompt: z.string().optional(),
@@ -83,34 +85,73 @@ export const agentProfileModeSchema = z.object({
83
85
  permissions: z.record(z.string(), agentProfilePermissionSchema).optional(),
84
86
  metadata: z.record(z.string(), z.unknown()).optional(),
85
87
  });
86
- export const agentProfileConfidentialSchema = z.object({
88
+ export const agentProfileConfidentialSchema = z.strictObject({
87
89
  tee: z.string().optional(),
88
90
  attestationNonce: z.string().optional(),
89
91
  sealed: z.boolean().optional(),
90
92
  attestationRefresh: z.boolean().optional(),
91
93
  });
92
- export const agentProfileMcpServerSchema = z.object({
93
- transport: z.enum(["stdio", "sse", "http"]).optional(),
94
- command: z.string().optional(),
94
+ const nonBlankMcpValueSchema = z
95
+ .string()
96
+ .refine((value) => value.trim().length > 0, "value cannot be blank");
97
+ const remoteMcpUrlSchema = nonBlankMcpValueSchema.refine((value) => {
98
+ try {
99
+ const url = new URL(value);
100
+ return url.protocol === "http:" || url.protocol === "https:";
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }, "remote MCP url must be an absolute HTTP(S) URL");
106
+ const agentProfileLocalMcpServerSchema = z.strictObject({
107
+ transport: z.literal("stdio").optional(),
108
+ command: nonBlankMcpValueSchema,
95
109
  args: z.array(z.string()).optional(),
96
110
  env: z.record(z.string(), z.string()).optional(),
97
111
  cwd: z.string().optional(),
98
- url: z.string().optional(),
112
+ url: z.undefined().optional(),
113
+ headers: z.undefined().optional(),
114
+ enabled: z.literal(true).optional(),
115
+ metadata: z.record(z.string(), z.unknown()).optional(),
116
+ });
117
+ const agentProfileRemoteMcpServerSchema = z.strictObject({
118
+ transport: z.enum(["sse", "http"]).optional(),
119
+ command: z.undefined().optional(),
120
+ args: z.undefined().optional(),
121
+ env: z.undefined().optional(),
122
+ cwd: z.undefined().optional(),
123
+ url: remoteMcpUrlSchema,
99
124
  headers: z.record(z.string(), z.string()).optional(),
100
- enabled: z.boolean().optional(),
125
+ enabled: z.literal(true).optional(),
126
+ metadata: z.record(z.string(), z.unknown()).optional(),
127
+ });
128
+ const agentProfileDisabledMcpServerSchema = z.strictObject({
129
+ enabled: z.literal(false),
130
+ transport: z.undefined().optional(),
131
+ command: z.undefined().optional(),
132
+ args: z.undefined().optional(),
133
+ env: z.undefined().optional(),
134
+ cwd: z.undefined().optional(),
135
+ url: z.undefined().optional(),
136
+ headers: z.undefined().optional(),
101
137
  metadata: z.record(z.string(), z.unknown()).optional(),
102
138
  });
103
- export const agentProfileConnectionSchema = z.object({
139
+ export const agentProfileMcpServerSchema = z.union([
140
+ agentProfileLocalMcpServerSchema,
141
+ agentProfileRemoteMcpServerSchema,
142
+ agentProfileDisabledMcpServerSchema,
143
+ ]);
144
+ export const agentProfileConnectionSchema = z.strictObject({
104
145
  connectionId: z.string().min(1),
105
146
  capabilities: z.array(z.string().min(1)).min(1),
106
147
  alias: z.string().min(1).optional(),
107
148
  });
108
149
  const removeListSchema = z.union([z.literal(true), z.array(z.string().min(1))]);
109
- export const agentProfilePromptRemovalSchema = z.object({
150
+ export const agentProfilePromptRemovalSchema = z.strictObject({
110
151
  systemPrompt: z.literal(true).optional(),
111
152
  instructions: removeListSchema.optional(),
112
153
  });
113
- export const agentProfileResourceRemovalSchema = z.object({
154
+ export const agentProfileResourceRemovalSchema = z.strictObject({
114
155
  files: removeListSchema.optional(),
115
156
  tools: removeListSchema.optional(),
116
157
  skills: removeListSchema.optional(),
@@ -119,10 +160,12 @@ export const agentProfileResourceRemovalSchema = z.object({
119
160
  instructions: z.literal(true).optional(),
120
161
  failOnError: z.literal(true).optional(),
121
162
  });
122
- export const agentProfileDiffRemovalSchema = z.object({
163
+ export const agentProfileDiffRemovalSchema = z.strictObject({
123
164
  identity: z.literal(true).optional(),
124
165
  tags: removeListSchema.optional(),
125
- prompt: z.union([z.literal(true), agentProfilePromptRemovalSchema]).optional(),
166
+ prompt: z
167
+ .union([z.literal(true), agentProfilePromptRemovalSchema])
168
+ .optional(),
126
169
  model: removeListSchema.optional(),
127
170
  harness: z.literal(true).optional(),
128
171
  permissions: removeListSchema.optional(),
@@ -130,7 +173,9 @@ export const agentProfileDiffRemovalSchema = z.object({
130
173
  mcp: removeListSchema.optional(),
131
174
  connections: removeListSchema.optional(),
132
175
  subagents: removeListSchema.optional(),
133
- resources: z.union([z.literal(true), agentProfileResourceRemovalSchema]).optional(),
176
+ resources: z
177
+ .union([z.literal(true), agentProfileResourceRemovalSchema])
178
+ .optional(),
134
179
  hooks: removeListSchema.optional(),
135
180
  modes: removeListSchema.optional(),
136
181
  confidential: z.literal(true).optional(),
@@ -142,7 +187,7 @@ export const agentProfileDiffRemovalSchema = z.object({
142
187
  * the canonical {@link AgentProfile} TS contract. Kept structurally in lock-step
143
188
  * with that interface by the compile-time guard at the bottom of this file.
144
189
  */
145
- export const agentProfileSchema = z.object({
190
+ export const agentProfileSchema = z.strictObject({
146
191
  name: z.string().optional(),
147
192
  description: z.string().optional(),
148
193
  version: z.string().optional(),
@@ -166,15 +211,14 @@ export const agentProfileSchema = z.object({
166
211
  .record(z.string(), z.union([z.record(z.string(), z.unknown()), z.undefined()]))
167
212
  .optional(),
168
213
  });
169
- export const agentProfileDiffSchema = z
170
- .object({
214
+ export const agentProfileDiffSchema = z.strictObject({
171
215
  kind: z.literal("agent-profile-diff"),
172
216
  id: z.string().min(1).optional(),
173
217
  title: z.string().min(1).optional(),
174
218
  description: z.string().optional(),
175
219
  rationale: z.string().optional(),
176
220
  source: z
177
- .object({
221
+ .strictObject({
178
222
  kind: z.enum([
179
223
  "trace",
180
224
  "frontier-author",
@@ -189,11 +233,10 @@ export const agentProfileDiffSchema = z
189
233
  set: agentProfileSchema.optional(),
190
234
  remove: agentProfileDiffRemovalSchema.optional(),
191
235
  metadata: z.record(z.string(), z.unknown()).optional(),
192
- })
193
- .strict();
236
+ });
194
237
  const _agentProfileSchemaMatchesInterface = true;
195
238
  void _agentProfileSchemaMatchesInterface;
196
- export const capabilitySchema = z.object({
239
+ export const capabilitySchema = z.strictObject({
197
240
  id: z.string().min(1),
198
241
  definition: agentProfileSchema,
199
242
  recommendedSize: z.enum(SANDBOX_SIZE_PRESET_NAMES).optional(),
@@ -105,6 +105,8 @@ function isLocalMcpServer(server) {
105
105
  export function validateAgentProfileSecurity(profile, policy = DEFAULT_CLOUD_AGENT_PROFILE_SECURITY_POLICY) {
106
106
  const issues = [];
107
107
  for (const [name, server] of Object.entries(profile.mcp ?? {})) {
108
+ if (server.enabled === false)
109
+ continue;
108
110
  if (isLocalMcpServer(server)) {
109
111
  if (!policy.allowLocalMcp) {
110
112
  issues.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-interface",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",