@agen-ai/agent-protocol 0.2.2 → 0.2.3

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 (91) hide show
  1. package/README.md +22 -12
  2. package/dist/capabilities/types.d.ts +64 -18
  3. package/dist/capabilities/types.js +0 -6
  4. package/dist/collaboration/index.d.ts +3 -0
  5. package/dist/collaboration/index.js +2 -0
  6. package/dist/collaboration/parsers.d.ts +9 -0
  7. package/dist/collaboration/parsers.js +32 -0
  8. package/dist/collaboration/types.d.ts +88 -0
  9. package/dist/collaboration/types.js +64 -0
  10. package/dist/configuration/index.d.ts +3 -0
  11. package/dist/configuration/index.js +2 -0
  12. package/dist/configuration/parsers.d.ts +9 -0
  13. package/dist/configuration/parsers.js +98 -0
  14. package/dist/configuration/types.d.ts +72 -0
  15. package/dist/configuration/types.js +27 -0
  16. package/dist/events/types.d.ts +15 -3
  17. package/dist/events/types.js +3 -0
  18. package/dist/foundation/parsers.d.ts +19 -1
  19. package/dist/foundation/parsers.js +70 -0
  20. package/dist/foundation/types.d.ts +10 -1
  21. package/dist/foundation/types.js +1 -1
  22. package/dist/integrations/index.d.ts +3 -0
  23. package/dist/integrations/index.js +2 -0
  24. package/dist/integrations/parsers.d.ts +7 -0
  25. package/dist/integrations/parsers.js +23 -0
  26. package/dist/integrations/types.d.ts +43 -0
  27. package/dist/integrations/types.js +23 -0
  28. package/dist/jsonSchema/generated.d.ts +9686 -3515
  29. package/dist/jsonSchema/generated.js +5341 -1391
  30. package/dist/managedContent/index.d.ts +3 -0
  31. package/dist/managedContent/index.js +2 -0
  32. package/dist/managedContent/parsers.d.ts +7 -0
  33. package/dist/managedContent/parsers.js +23 -0
  34. package/dist/managedContent/types.d.ts +39 -0
  35. package/dist/managedContent/types.js +21 -0
  36. package/dist/operations/index.d.ts +3 -0
  37. package/dist/operations/index.js +2 -0
  38. package/dist/operations/parsers.d.ts +15 -0
  39. package/dist/operations/parsers.js +181 -0
  40. package/dist/operations/types.d.ts +112 -0
  41. package/dist/operations/types.js +67 -0
  42. package/dist/public/collaboration.d.ts +2 -0
  43. package/dist/public/collaboration.js +1 -0
  44. package/dist/public/configuration.d.ts +2 -0
  45. package/dist/public/configuration.js +1 -0
  46. package/dist/public/index.d.ts +6 -0
  47. package/dist/public/index.js +6 -0
  48. package/dist/public/integrations.d.ts +2 -0
  49. package/dist/public/integrations.js +1 -0
  50. package/dist/public/managedContent.d.ts +2 -0
  51. package/dist/public/managedContent.js +1 -0
  52. package/dist/public/operations.d.ts +2 -0
  53. package/dist/public/operations.js +1 -0
  54. package/dist/public/resources.d.ts +2 -0
  55. package/dist/public/resources.js +1 -0
  56. package/dist/requests/parsers.js +40 -11
  57. package/dist/requests/types.d.ts +35 -8
  58. package/dist/requests/types.js +15 -1
  59. package/dist/resources/index.d.ts +3 -0
  60. package/dist/resources/index.js +2 -0
  61. package/dist/resources/parsers.d.ts +5 -0
  62. package/dist/resources/parsers.js +12 -0
  63. package/dist/resources/types.d.ts +39 -0
  64. package/dist/resources/types.js +19 -0
  65. package/dist/sessions/types.d.ts +15 -4
  66. package/dist/zod/capabilities.d.ts +103 -15
  67. package/dist/zod/capabilities.js +196 -31
  68. package/dist/zod/collaboration.d.ts +60 -0
  69. package/dist/zod/collaboration.js +155 -0
  70. package/dist/zod/configuration.d.ts +177 -0
  71. package/dist/zod/configuration.js +157 -0
  72. package/dist/zod/events.d.ts +214 -22
  73. package/dist/zod/events.js +15 -0
  74. package/dist/zod/foundation.d.ts +10 -1
  75. package/dist/zod/foundation.js +18 -0
  76. package/dist/zod/index.d.ts +7 -1
  77. package/dist/zod/index.js +62 -0
  78. package/dist/zod/integrations.d.ts +76 -0
  79. package/dist/zod/integrations.js +92 -0
  80. package/dist/zod/managedContent.d.ts +9 -0
  81. package/dist/zod/managedContent.js +70 -0
  82. package/dist/zod/operations.d.ts +339 -0
  83. package/dist/zod/operations.js +229 -0
  84. package/dist/zod/requests.d.ts +100 -11
  85. package/dist/zod/requests.js +66 -26
  86. package/dist/zod/resources.d.ts +43 -0
  87. package/dist/zod/resources.js +82 -0
  88. package/dist/zod/sessions.d.ts +168 -21
  89. package/dist/zod/sessions.js +54 -42
  90. package/dist/zod/typeEquality.generated.d.ts +40 -0
  91. package/package.json +26 -2
@@ -4,8 +4,13 @@ export declare const AGENT_APPROVAL_SCOPE_KINDS: readonly ["exact_action", "comm
4
4
  export declare const AGENT_APPROVAL_OPTIONS_MAX_LENGTH = 16;
5
5
  export declare const AGENT_APPROVAL_LABEL_MAX_LENGTH = 120;
6
6
  export declare const AGENT_APPROVAL_DESCRIPTION_MAX_LENGTH = 1000;
7
+ export declare const AGENT_ELICITATION_FIELD_KINDS: readonly ["text", "single_select", "multi_select", "boolean", "confirmation"];
8
+ export declare const AGENT_ELICITATION_FIELDS_MAX_LENGTH = 16;
9
+ export declare const AGENT_ELICITATION_OPTIONS_MAX_LENGTH = 100;
10
+ export declare const AGENT_ELICITATION_TEXT_VALUE_MAX_LENGTH = 4000;
7
11
  export type AgentApprovalPersistence = (typeof AGENT_APPROVAL_PERSISTENCES)[number];
8
12
  export type AgentApprovalScopeKind = (typeof AGENT_APPROVAL_SCOPE_KINDS)[number];
13
+ export type AgentElicitationFieldKind = (typeof AGENT_ELICITATION_FIELD_KINDS)[number];
9
14
  interface AgentApprovalSubjectBase {
10
15
  readonly title: string;
11
16
  readonly description?: string;
@@ -45,21 +50,32 @@ interface AgentElicitationFieldBase {
45
50
  readonly label: string;
46
51
  readonly description?: string;
47
52
  readonly required: boolean;
53
+ readonly sensitivity: 'ordinary' | 'sensitive';
48
54
  }
49
55
  export interface AgentTextElicitationField extends AgentElicitationFieldBase {
50
56
  readonly kind: 'text';
51
- readonly multiline?: boolean;
57
+ readonly multiline: boolean;
58
+ readonly maxLength: number;
52
59
  }
53
- export interface AgentChoiceElicitationField extends AgentElicitationFieldBase {
54
- readonly kind: 'choice';
60
+ export interface AgentSingleSelectElicitationField extends AgentElicitationFieldBase {
61
+ readonly kind: 'single_select';
55
62
  readonly options: readonly AgentRequestChoice[];
56
- readonly multiple: boolean;
57
63
  readonly allowOther: boolean;
58
64
  }
65
+ export interface AgentMultiSelectElicitationField extends AgentElicitationFieldBase {
66
+ readonly kind: 'multi_select';
67
+ readonly options: readonly AgentRequestChoice[];
68
+ readonly allowOther: boolean;
69
+ readonly maxSelections: number;
70
+ }
59
71
  export interface AgentBooleanElicitationField extends AgentElicitationFieldBase {
60
72
  readonly kind: 'boolean';
61
73
  }
62
- export type AgentElicitationField = AgentTextElicitationField | AgentChoiceElicitationField | AgentBooleanElicitationField;
74
+ export interface AgentConfirmationElicitationField extends AgentElicitationFieldBase {
75
+ readonly kind: 'confirmation';
76
+ readonly confirmLabel: string;
77
+ }
78
+ export type AgentElicitationField = AgentTextElicitationField | AgentSingleSelectElicitationField | AgentMultiSelectElicitationField | AgentBooleanElicitationField | AgentConfirmationElicitationField;
63
79
  export interface AgentElicitationRequest {
64
80
  readonly requestKind: 'elicitation';
65
81
  readonly requestId: AgentRequestId;
@@ -83,9 +99,15 @@ export interface AgentTextElicitationAnswer {
83
99
  readonly kind: 'text';
84
100
  readonly value: string;
85
101
  }
86
- export interface AgentChoiceElicitationAnswer {
102
+ export interface AgentSingleSelectElicitationAnswer {
87
103
  readonly fieldId: AgentRequestFieldId;
88
- readonly kind: 'choice';
104
+ readonly kind: 'single_select';
105
+ readonly value?: string;
106
+ readonly other?: string;
107
+ }
108
+ export interface AgentMultiSelectElicitationAnswer {
109
+ readonly fieldId: AgentRequestFieldId;
110
+ readonly kind: 'multi_select';
89
111
  readonly values: readonly string[];
90
112
  readonly other?: string;
91
113
  }
@@ -94,7 +116,12 @@ export interface AgentBooleanElicitationAnswer {
94
116
  readonly kind: 'boolean';
95
117
  readonly value: boolean;
96
118
  }
97
- export type AgentElicitationAnswer = AgentTextElicitationAnswer | AgentChoiceElicitationAnswer | AgentBooleanElicitationAnswer;
119
+ export interface AgentConfirmationElicitationAnswer {
120
+ readonly fieldId: AgentRequestFieldId;
121
+ readonly kind: 'confirmation';
122
+ readonly confirmed: boolean;
123
+ }
124
+ export type AgentElicitationAnswer = AgentTextElicitationAnswer | AgentSingleSelectElicitationAnswer | AgentMultiSelectElicitationAnswer | AgentBooleanElicitationAnswer | AgentConfirmationElicitationAnswer;
98
125
  export interface AgentAnsweredElicitationResolution {
99
126
  readonly requestKind: 'elicitation';
100
127
  readonly requestId: AgentRequestId;
@@ -14,10 +14,24 @@ const AGENT_APPROVAL_SCOPE_KINDS = [
14
14
  const AGENT_APPROVAL_OPTIONS_MAX_LENGTH = 16;
15
15
  const AGENT_APPROVAL_LABEL_MAX_LENGTH = 120;
16
16
  const AGENT_APPROVAL_DESCRIPTION_MAX_LENGTH = 1e3;
17
+ const AGENT_ELICITATION_FIELD_KINDS = [
18
+ "text",
19
+ "single_select",
20
+ "multi_select",
21
+ "boolean",
22
+ "confirmation"
23
+ ];
24
+ const AGENT_ELICITATION_FIELDS_MAX_LENGTH = 16;
25
+ const AGENT_ELICITATION_OPTIONS_MAX_LENGTH = 100;
26
+ const AGENT_ELICITATION_TEXT_VALUE_MAX_LENGTH = 4e3;
17
27
  export {
18
28
  AGENT_APPROVAL_DESCRIPTION_MAX_LENGTH,
19
29
  AGENT_APPROVAL_LABEL_MAX_LENGTH,
20
30
  AGENT_APPROVAL_OPTIONS_MAX_LENGTH,
21
31
  AGENT_APPROVAL_PERSISTENCES,
22
- AGENT_APPROVAL_SCOPE_KINDS
32
+ AGENT_APPROVAL_SCOPE_KINDS,
33
+ AGENT_ELICITATION_FIELDS_MAX_LENGTH,
34
+ AGENT_ELICITATION_FIELD_KINDS,
35
+ AGENT_ELICITATION_OPTIONS_MAX_LENGTH,
36
+ AGENT_ELICITATION_TEXT_VALUE_MAX_LENGTH
23
37
  };
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './parsers.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from "./types.js";
2
+ export * from "./parsers.js";
@@ -0,0 +1,5 @@
1
+ import type { AgentProtocolParseResult } from '../foundation/index.js';
2
+ import type { AgentGeneratedResourceDescriptor } from './types.js';
3
+ export declare function parseAgentGeneratedResourceDescriptor(input: unknown): AgentGeneratedResourceDescriptor;
4
+ export declare function safeParseAgentGeneratedResourceDescriptor(input: unknown): AgentProtocolParseResult<AgentGeneratedResourceDescriptor>;
5
+ //# sourceMappingURL=parsers.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { parseWithSchema, safeParseWithSchema } from "../internal/parsers.js";
2
+ import { AgentGeneratedResourceDescriptorSchema } from "../zod/resources.js";
3
+ function parseAgentGeneratedResourceDescriptor(input) {
4
+ return parseWithSchema(AgentGeneratedResourceDescriptorSchema, input);
5
+ }
6
+ function safeParseAgentGeneratedResourceDescriptor(input) {
7
+ return safeParseWithSchema(AgentGeneratedResourceDescriptorSchema, input);
8
+ }
9
+ export {
10
+ parseAgentGeneratedResourceDescriptor,
11
+ safeParseAgentGeneratedResourceDescriptor
12
+ };
@@ -0,0 +1,39 @@
1
+ import type { AgentArtifactId, AgentCollaborationId, AgentError, AgentGeneratedResourceId, AgentIsoDateTime, AgentOperationInvocationId, AgentSessionId, AgentTurnId } from '../foundation/index.js';
2
+ export declare const AGENT_GENERATED_RESOURCE_KINDS: readonly ["image", "document", "archive"];
3
+ export declare const AGENT_GENERATED_RESOURCE_STATUSES: readonly ["pending", "available", "unavailable", "expired"];
4
+ export declare const AGENT_GENERATED_RESOURCE_DISPLAY_NAME_MAX_LENGTH = 200;
5
+ export declare const AGENT_GENERATED_RESOURCE_SUMMARY_MAX_LENGTH = 2000;
6
+ export type AgentGeneratedResourceKind = (typeof AGENT_GENERATED_RESOURCE_KINDS)[number];
7
+ export type AgentGeneratedResourceStatus = (typeof AGENT_GENERATED_RESOURCE_STATUSES)[number];
8
+ export type AgentGeneratedResourceProducer = Readonly<{
9
+ kind: 'session';
10
+ sessionId: AgentSessionId;
11
+ }> | Readonly<{
12
+ kind: 'turn';
13
+ turnId: AgentTurnId;
14
+ }> | Readonly<{
15
+ kind: 'operation';
16
+ invocationId: AgentOperationInvocationId;
17
+ }> | Readonly<{
18
+ kind: 'collaboration';
19
+ collaborationId: AgentCollaborationId;
20
+ }>;
21
+ export interface AgentGeneratedResourceDescriptor {
22
+ readonly resourceId: AgentGeneratedResourceId;
23
+ readonly kind: AgentGeneratedResourceKind;
24
+ readonly status: AgentGeneratedResourceStatus;
25
+ readonly displayName: string;
26
+ readonly producer: AgentGeneratedResourceProducer;
27
+ readonly summary?: string;
28
+ readonly mediaType?: string;
29
+ readonly byteSize?: number;
30
+ readonly sha256?: string;
31
+ readonly widthPixels?: number;
32
+ readonly heightPixels?: number;
33
+ readonly pageCount?: number;
34
+ readonly artifactId?: AgentArtifactId;
35
+ readonly createdAt: AgentIsoDateTime;
36
+ readonly expiresAt?: AgentIsoDateTime;
37
+ readonly error?: AgentError;
38
+ }
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,19 @@
1
+ const AGENT_GENERATED_RESOURCE_KINDS = [
2
+ "image",
3
+ "document",
4
+ "archive"
5
+ ];
6
+ const AGENT_GENERATED_RESOURCE_STATUSES = [
7
+ "pending",
8
+ "available",
9
+ "unavailable",
10
+ "expired"
11
+ ];
12
+ const AGENT_GENERATED_RESOURCE_DISPLAY_NAME_MAX_LENGTH = 200;
13
+ const AGENT_GENERATED_RESOURCE_SUMMARY_MAX_LENGTH = 2e3;
14
+ export {
15
+ AGENT_GENERATED_RESOURCE_DISPLAY_NAME_MAX_LENGTH,
16
+ AGENT_GENERATED_RESOURCE_KINDS,
17
+ AGENT_GENERATED_RESOURCE_STATUSES,
18
+ AGENT_GENERATED_RESOURCE_SUMMARY_MAX_LENGTH
19
+ };
@@ -1,12 +1,23 @@
1
- import type { AgentConfigurationRevisionId, AgentJsonValue, AgentProviderConversationId, AgentProviderHistoryAnchor, AgentSessionId, AgentTurnId } from '../foundation/index.js';
1
+ import type { AgentConfigurationRevisionId, AgentProviderConversationId, AgentProviderHistoryAnchor, AgentSessionId, AgentTurnId } from '../foundation/index.js';
2
+ import type { AgentConfigurationValue } from '../configuration/index.js';
2
3
  export interface AgentSessionBinding {
3
4
  readonly conversationId: AgentProviderConversationId;
4
5
  readonly historyAnchor?: AgentProviderHistoryAnchor;
5
6
  }
6
- export interface AgentSessionConfiguration {
7
- readonly revision: AgentConfigurationRevisionId;
8
- readonly values: Readonly<Record<string, AgentJsonValue>>;
7
+ export interface AgentSessionConfigurationSelection {
8
+ readonly key: string;
9
+ readonly fieldRevision: number;
10
+ readonly value: AgentConfigurationValue;
9
11
  }
12
+ export type AgentSessionConfiguration = Readonly<{
13
+ kind: 'managed';
14
+ revision: AgentConfigurationRevisionId;
15
+ }> | Readonly<{
16
+ kind: 'selected';
17
+ revision: AgentConfigurationRevisionId;
18
+ catalogRevision: number;
19
+ selections: readonly AgentSessionConfigurationSelection[];
20
+ }>;
10
21
  export interface AgentSessionCreateInput {
11
22
  readonly operation: 'create';
12
23
  readonly sessionId: AgentSessionId;
@@ -68,7 +68,7 @@ export declare const AgentOperationInputCapabilitySchema: z.ZodReadonly<z.ZodObj
68
68
  }, z.core.$strict>>], "kind">;
69
69
  }, z.core.$strict>>;
70
70
  export declare const AgentCapabilitiesPortableSchema: z.ZodReadonly<z.ZodObject<{
71
- protocolVersion: z.ZodLiteral<7>;
71
+ protocolVersion: z.ZodLiteral<8>;
72
72
  providerKey: z.ZodType<import("../index.js").AgentProviderKey, unknown, z.core.$ZodTypeInternals<import("../index.js").AgentProviderKey, unknown>>;
73
73
  sessions: z.ZodReadonly<z.ZodObject<{
74
74
  create: z.ZodLiteral<true>;
@@ -140,9 +140,16 @@ export declare const AgentCapabilitiesPortableSchema: z.ZodReadonly<z.ZodObject<
140
140
  elicitation: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
141
141
  kind: z.ZodLiteral<"unsupported">;
142
142
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
143
- kind: z.ZodLiteral<"text">;
144
- }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
145
- kind: z.ZodLiteral<"structured">;
143
+ kind: z.ZodLiteral<"supported">;
144
+ fieldKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
145
+ boolean: "boolean";
146
+ single_select: "single_select";
147
+ text: "text";
148
+ multi_select: "multi_select";
149
+ confirmation: "confirmation";
150
+ }>>>;
151
+ maxFields: z.ZodNumber;
152
+ sensitiveFields: z.ZodBoolean;
146
153
  }, z.core.$strict>>], "kind">;
147
154
  }, z.core.$strict>>;
148
155
  context: z.ZodReadonly<z.ZodObject<{
@@ -207,9 +214,9 @@ export declare const AgentCapabilitiesPortableSchema: z.ZodReadonly<z.ZodObject<
207
214
  streaming: z.ZodBoolean;
208
215
  plans: z.ZodBoolean;
209
216
  fileChanges: z.ZodEnum<{
210
- structured: "structured";
211
217
  none: "none";
212
218
  final_diff: "final_diff";
219
+ structured: "structured";
213
220
  }>;
214
221
  artifactKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
215
222
  file: "file";
@@ -225,17 +232,98 @@ export declare const AgentCapabilitiesPortableSchema: z.ZodReadonly<z.ZodObject<
225
232
  kind: z.ZodLiteral<"managed">;
226
233
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
227
234
  kind: z.ZodLiteral<"selectable">;
228
- fields: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
229
- key: z.ZodString;
230
- optionIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
231
- }, z.core.$strict>>>>;
235
+ fieldKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
236
+ boolean: "boolean";
237
+ single_select: "single_select";
238
+ bounded_integer: "bounded_integer";
239
+ bounded_text: "bounded_text";
240
+ }>>>;
241
+ maxFields: z.ZodNumber;
242
+ }, z.core.$strict>>], "kind">;
243
+ operations: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
244
+ kind: z.ZodLiteral<"unsupported">;
245
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
246
+ kind: z.ZodLiteral<"supported">;
247
+ operationKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
248
+ session_control: "session_control";
249
+ managed_content_invoke: "managed_content_invoke";
250
+ configuration_select: "configuration_select";
251
+ integration_control: "integration_control";
252
+ collaboration_control: "collaboration_control";
253
+ resource_generate: "resource_generate";
254
+ }>>>;
255
+ fieldKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
256
+ boolean: "boolean";
257
+ single_select: "single_select";
258
+ text: "text";
259
+ multi_select: "multi_select";
260
+ integer: "integer";
261
+ }>>>;
262
+ executionModes: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
263
+ immediate: "immediate";
264
+ request_continuation: "request_continuation";
265
+ durable_job: "durable_job";
266
+ }>>>;
267
+ maxOperations: z.ZodNumber;
268
+ maxFieldsPerOperation: z.ZodNumber;
269
+ }, z.core.$strict>>], "kind">;
270
+ managedContent: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
271
+ kind: z.ZodLiteral<"unsupported">;
272
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
273
+ kind: z.ZodLiteral<"supported">;
274
+ contentKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
275
+ prompt: "prompt";
276
+ skill: "skill";
277
+ rule: "rule";
278
+ agent_definition: "agent_definition";
279
+ }>>>;
280
+ maxEntries: z.ZodNumber;
281
+ }, z.core.$strict>>], "kind">;
282
+ integrations: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
283
+ kind: z.ZodLiteral<"unsupported">;
284
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
285
+ kind: z.ZodLiteral<"supported">;
286
+ integrationKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
287
+ mcp: "mcp";
288
+ }>>>;
289
+ maxIntegrations: z.ZodNumber;
290
+ maxServersPerIntegration: z.ZodNumber;
291
+ maxToolsPerServer: z.ZodNumber;
292
+ maxResourcesPerServer: z.ZodNumber;
293
+ }, z.core.$strict>>], "kind">;
294
+ collaboration: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
295
+ kind: z.ZodLiteral<"unsupported">;
296
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
297
+ kind: z.ZodLiteral<"supported">;
298
+ roles: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
299
+ delegate: "delegate";
300
+ reviewer: "reviewer";
301
+ researcher: "researcher";
302
+ specialist: "specialist";
303
+ }>>>;
304
+ controlActions: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
305
+ spawn: "spawn";
306
+ steer: "steer";
307
+ stop: "stop";
308
+ close: "close";
309
+ inspect: "inspect";
310
+ }>>>;
311
+ maxDepth: z.ZodNumber;
312
+ maxChildrenPerNode: z.ZodNumber;
313
+ maxActiveNodes: z.ZodNumber;
314
+ }, z.core.$strict>>], "kind">;
315
+ generatedResources: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
316
+ kind: z.ZodLiteral<"unsupported">;
317
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
318
+ kind: z.ZodLiteral<"supported">;
319
+ resourceKinds: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
320
+ image: "image";
321
+ document: "document";
322
+ archive: "archive";
323
+ }>>>;
324
+ maxResourcesPerTurn: z.ZodNumber;
325
+ maxBytesPerResource: z.ZodNumber;
232
326
  }, z.core.$strict>>], "kind">;
233
- interactionExtensions: z.ZodReadonly<z.ZodObject<{
234
- slashCommands: z.ZodBoolean;
235
- mcp: z.ZodBoolean;
236
- subagents: z.ZodBoolean;
237
- imageGeneration: z.ZodBoolean;
238
- }, z.core.$strict>>;
239
327
  authentication: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
240
328
  kind: z.ZodLiteral<"unsupported">;
241
329
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod/v4";
2
2
  import {
3
- AGENT_PROTOCOL_COLLECTION_MAX_LENGTH,
4
3
  AGENT_PROTOCOL_VERSION
5
4
  } from "../foundation/types.js";
6
5
  import { AGENT_ARTIFACT_KINDS } from "../artifacts/types.js";
@@ -8,10 +7,40 @@ import {
8
7
  AGENT_AUTHENTICATION_FLOWS,
9
8
  AGENT_FILE_CHANGE_MODES
10
9
  } from "../capabilities/types.js";
10
+ import {
11
+ AGENT_COLLABORATION_CONTROL_ACTIONS,
12
+ AGENT_COLLABORATION_GRAPH_LIMITS,
13
+ AGENT_COLLABORATION_ROLES
14
+ } from "../collaboration/types.js";
15
+ import {
16
+ AGENT_CONFIGURATION_FIELD_KINDS,
17
+ AGENT_CONFIGURATION_FIELDS_MAX_LENGTH
18
+ } from "../configuration/types.js";
19
+ import {
20
+ AGENT_INTEGRATION_KINDS,
21
+ AGENT_INTEGRATION_RESOURCES_MAX_LENGTH,
22
+ AGENT_INTEGRATION_CATALOG_MAX_LENGTH,
23
+ AGENT_INTEGRATION_SERVERS_MAX_LENGTH,
24
+ AGENT_INTEGRATION_TOOLS_MAX_LENGTH
25
+ } from "../integrations/types.js";
26
+ import {
27
+ AGENT_MANAGED_CONTENT_CATALOG_MAX_LENGTH,
28
+ AGENT_MANAGED_CONTENT_KINDS
29
+ } from "../managedContent/types.js";
30
+ import {
31
+ AGENT_OPERATION_CATALOG_MAX_LENGTH,
32
+ AGENT_OPERATION_EXECUTION_MODES,
33
+ AGENT_OPERATION_FIELDS_MAX_LENGTH,
34
+ AGENT_OPERATION_FIELD_KINDS,
35
+ AGENT_OPERATION_KINDS
36
+ } from "../operations/types.js";
11
37
  import {
12
38
  AGENT_APPROVAL_PERSISTENCES,
13
- AGENT_APPROVAL_SCOPE_KINDS
39
+ AGENT_APPROVAL_SCOPE_KINDS,
40
+ AGENT_ELICITATION_FIELD_KINDS,
41
+ AGENT_ELICITATION_FIELDS_MAX_LENGTH
14
42
  } from "../requests/types.js";
43
+ import { AGENT_GENERATED_RESOURCE_KINDS } from "../resources/types.js";
15
44
  import {
16
45
  AGENT_CONTEXT_COMPACTION_TRIGGERS,
17
46
  AGENT_CONTEXT_CUMULATIVE_USAGE_FIELDS,
@@ -21,7 +50,6 @@ import {
21
50
  AGENT_TURN_INTERACTION_MODES
22
51
  } from "../turns/types.js";
23
52
  import { AgentProviderKeySchema } from "./foundation.js";
24
- const AgentCapabilityIdentifierSchema = z.string().min(1).max(100).regex(/^[a-z][a-z0-9._:-]*$/u);
25
53
  function addCanonicalListIssues(input, context) {
26
54
  const seen = /* @__PURE__ */ new Set();
27
55
  let previousOrder = -1;
@@ -46,6 +74,9 @@ function addCanonicalListIssues(input, context) {
46
74
  });
47
75
  }
48
76
  const PositiveSafeIntegerSchema = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
77
+ function boundedPositiveSafeInteger(maximum) {
78
+ return z.number().int().positive().max(maximum);
79
+ }
49
80
  const AgentApprovalCapabilitySchema = z.discriminatedUnion("kind", [
50
81
  z.object({ kind: z.literal("unsupported") }).strict().readonly(),
51
82
  z.object({
@@ -154,6 +185,74 @@ const AgentOperationInputCapabilitySchema = z.object({
154
185
  text: z.literal(true),
155
186
  images: AgentImageInputCapabilitySchema
156
187
  }).strict().readonly();
188
+ const AgentOperationsCapabilitySchema = z.discriminatedUnion("kind", [
189
+ z.object({ kind: z.literal("unsupported") }).strict().readonly(),
190
+ z.object({
191
+ kind: z.literal("supported"),
192
+ operationKinds: z.array(z.enum(AGENT_OPERATION_KINDS)).min(1).max(AGENT_OPERATION_KINDS.length).meta({ uniqueItems: true }).readonly(),
193
+ fieldKinds: z.array(z.enum(AGENT_OPERATION_FIELD_KINDS)).min(1).max(AGENT_OPERATION_FIELD_KINDS.length).meta({ uniqueItems: true }).readonly(),
194
+ executionModes: z.array(z.enum(AGENT_OPERATION_EXECUTION_MODES)).min(1).max(AGENT_OPERATION_EXECUTION_MODES.length).meta({ uniqueItems: true }).readonly(),
195
+ maxOperations: boundedPositiveSafeInteger(
196
+ AGENT_OPERATION_CATALOG_MAX_LENGTH
197
+ ),
198
+ maxFieldsPerOperation: boundedPositiveSafeInteger(
199
+ AGENT_OPERATION_FIELDS_MAX_LENGTH
200
+ )
201
+ }).strict().readonly()
202
+ ]);
203
+ const AgentManagedContentCapabilitySchema = z.discriminatedUnion("kind", [
204
+ z.object({ kind: z.literal("unsupported") }).strict().readonly(),
205
+ z.object({
206
+ kind: z.literal("supported"),
207
+ contentKinds: z.array(z.enum(AGENT_MANAGED_CONTENT_KINDS)).min(1).max(AGENT_MANAGED_CONTENT_KINDS.length).meta({ uniqueItems: true }).readonly(),
208
+ maxEntries: boundedPositiveSafeInteger(
209
+ AGENT_MANAGED_CONTENT_CATALOG_MAX_LENGTH
210
+ )
211
+ }).strict().readonly()
212
+ ]);
213
+ const AgentIntegrationsCapabilitySchema = z.discriminatedUnion("kind", [
214
+ z.object({ kind: z.literal("unsupported") }).strict().readonly(),
215
+ z.object({
216
+ kind: z.literal("supported"),
217
+ integrationKinds: z.array(z.enum(AGENT_INTEGRATION_KINDS)).min(1).max(AGENT_INTEGRATION_KINDS.length).meta({ uniqueItems: true }).readonly(),
218
+ maxIntegrations: boundedPositiveSafeInteger(
219
+ AGENT_INTEGRATION_CATALOG_MAX_LENGTH
220
+ ),
221
+ maxServersPerIntegration: boundedPositiveSafeInteger(
222
+ AGENT_INTEGRATION_SERVERS_MAX_LENGTH
223
+ ),
224
+ maxToolsPerServer: boundedPositiveSafeInteger(
225
+ AGENT_INTEGRATION_TOOLS_MAX_LENGTH
226
+ ),
227
+ maxResourcesPerServer: boundedPositiveSafeInteger(
228
+ AGENT_INTEGRATION_RESOURCES_MAX_LENGTH
229
+ )
230
+ }).strict().readonly()
231
+ ]);
232
+ const AgentCollaborationCapabilitySchema = z.discriminatedUnion("kind", [
233
+ z.object({ kind: z.literal("unsupported") }).strict().readonly(),
234
+ z.object({
235
+ kind: z.literal("supported"),
236
+ roles: z.array(z.enum(AGENT_COLLABORATION_ROLES)).min(1).max(AGENT_COLLABORATION_ROLES.length).meta({ uniqueItems: true }).readonly(),
237
+ controlActions: z.array(z.enum(AGENT_COLLABORATION_CONTROL_ACTIONS)).min(1).max(AGENT_COLLABORATION_CONTROL_ACTIONS.length).meta({ uniqueItems: true }).readonly(),
238
+ maxDepth: boundedPositiveSafeInteger(AGENT_COLLABORATION_GRAPH_LIMITS.maxDepth),
239
+ maxChildrenPerNode: boundedPositiveSafeInteger(
240
+ AGENT_COLLABORATION_GRAPH_LIMITS.maxChildrenPerNode
241
+ ),
242
+ maxActiveNodes: boundedPositiveSafeInteger(
243
+ AGENT_COLLABORATION_GRAPH_LIMITS.maxActiveNodes
244
+ )
245
+ }).strict().readonly()
246
+ ]);
247
+ const AgentGeneratedResourcesCapabilitySchema = z.discriminatedUnion("kind", [
248
+ z.object({ kind: z.literal("unsupported") }).strict().readonly(),
249
+ z.object({
250
+ kind: z.literal("supported"),
251
+ resourceKinds: z.array(z.enum(AGENT_GENERATED_RESOURCE_KINDS)).min(1).max(AGENT_GENERATED_RESOURCE_KINDS.length).meta({ uniqueItems: true }).readonly(),
252
+ maxResourcesPerTurn: boundedPositiveSafeInteger(100),
253
+ maxBytesPerResource: boundedPositiveSafeInteger(1073741824)
254
+ }).strict().readonly()
255
+ ]);
157
256
  const AgentCapabilitiesPortableSchema = z.object({
158
257
  protocolVersion: z.literal(AGENT_PROTOCOL_VERSION),
159
258
  providerKey: AgentProviderKeySchema,
@@ -180,8 +279,14 @@ const AgentCapabilitiesPortableSchema = z.object({
180
279
  approval: AgentApprovalCapabilitySchema,
181
280
  elicitation: z.discriminatedUnion("kind", [
182
281
  z.object({ kind: z.literal("unsupported") }).strict().readonly(),
183
- z.object({ kind: z.literal("text") }).strict().readonly(),
184
- z.object({ kind: z.literal("structured") }).strict().readonly()
282
+ z.object({
283
+ kind: z.literal("supported"),
284
+ fieldKinds: z.array(z.enum(AGENT_ELICITATION_FIELD_KINDS)).min(1).max(AGENT_ELICITATION_FIELD_KINDS.length).meta({ uniqueItems: true }).readonly(),
285
+ maxFields: boundedPositiveSafeInteger(
286
+ AGENT_ELICITATION_FIELDS_MAX_LENGTH
287
+ ),
288
+ sensitiveFields: z.boolean()
289
+ }).strict().readonly()
185
290
  ])
186
291
  }).strict().readonly(),
187
292
  context: z.object({
@@ -199,20 +304,17 @@ const AgentCapabilitiesPortableSchema = z.object({
199
304
  z.object({ kind: z.literal("managed") }).strict().readonly(),
200
305
  z.object({
201
306
  kind: z.literal("selectable"),
202
- fields: z.array(
203
- z.object({
204
- key: AgentCapabilityIdentifierSchema,
205
- optionIds: z.array(AgentCapabilityIdentifierSchema).min(1).max(AGENT_PROTOCOL_COLLECTION_MAX_LENGTH).meta({ uniqueItems: true }).readonly()
206
- }).strict().readonly()
207
- ).min(1).max(AGENT_PROTOCOL_COLLECTION_MAX_LENGTH).readonly()
307
+ fieldKinds: z.array(z.enum(AGENT_CONFIGURATION_FIELD_KINDS)).min(1).max(AGENT_CONFIGURATION_FIELD_KINDS.length).meta({ uniqueItems: true }).readonly(),
308
+ maxFields: boundedPositiveSafeInteger(
309
+ AGENT_CONFIGURATION_FIELDS_MAX_LENGTH
310
+ )
208
311
  }).strict().readonly()
209
312
  ]),
210
- interactionExtensions: z.object({
211
- slashCommands: z.boolean(),
212
- mcp: z.boolean(),
213
- subagents: z.boolean(),
214
- imageGeneration: z.boolean()
215
- }).strict().readonly(),
313
+ operations: AgentOperationsCapabilitySchema,
314
+ managedContent: AgentManagedContentCapabilitySchema,
315
+ integrations: AgentIntegrationsCapabilitySchema,
316
+ collaboration: AgentCollaborationCapabilitySchema,
317
+ generatedResources: AgentGeneratedResourcesCapabilitySchema,
216
318
  authentication: z.discriminatedUnion("kind", [
217
319
  z.object({ kind: z.literal("unsupported") }).strict().readonly(),
218
320
  z.object({
@@ -273,25 +375,88 @@ const AgentCapabilitiesSchema = AgentCapabilitiesPortableSchema.superRefine((cap
273
375
  context
274
376
  );
275
377
  if (capabilities.configuration.kind === "selectable") {
276
- const keys = capabilities.configuration.fields.map((field) => field.key);
277
378
  addCanonicalListIssues(
278
379
  {
279
- values: keys,
280
- path: ["configuration", "fields"],
281
- label: "Selectable configuration fields"
380
+ values: capabilities.configuration.fieldKinds,
381
+ canonicalOrder: AGENT_CONFIGURATION_FIELD_KINDS,
382
+ path: ["configuration", "fieldKinds"],
383
+ label: "Selectable configuration field kinds"
384
+ },
385
+ context
386
+ );
387
+ }
388
+ if (capabilities.requests.elicitation.kind === "supported") {
389
+ addCanonicalListIssues(
390
+ {
391
+ values: capabilities.requests.elicitation.fieldKinds,
392
+ canonicalOrder: AGENT_ELICITATION_FIELD_KINDS,
393
+ path: ["requests", "elicitation", "fieldKinds"],
394
+ label: "Elicitation field kinds"
395
+ },
396
+ context
397
+ );
398
+ }
399
+ if (capabilities.operations.kind === "supported") {
400
+ for (const [values, canonicalOrder, path, label] of [
401
+ [capabilities.operations.operationKinds, AGENT_OPERATION_KINDS, ["operations", "operationKinds"], "Operation kinds"],
402
+ [capabilities.operations.fieldKinds, AGENT_OPERATION_FIELD_KINDS, ["operations", "fieldKinds"], "Operation field kinds"],
403
+ [capabilities.operations.executionModes, AGENT_OPERATION_EXECUTION_MODES, ["operations", "executionModes"], "Operation execution modes"]
404
+ ]) {
405
+ addCanonicalListIssues({ values, canonicalOrder, path, label }, context);
406
+ }
407
+ }
408
+ if (capabilities.managedContent.kind === "supported") {
409
+ addCanonicalListIssues(
410
+ {
411
+ values: capabilities.managedContent.contentKinds,
412
+ canonicalOrder: AGENT_MANAGED_CONTENT_KINDS,
413
+ path: ["managedContent", "contentKinds"],
414
+ label: "Managed content kinds"
415
+ },
416
+ context
417
+ );
418
+ }
419
+ if (capabilities.integrations.kind === "supported") {
420
+ addCanonicalListIssues(
421
+ {
422
+ values: capabilities.integrations.integrationKinds,
423
+ canonicalOrder: AGENT_INTEGRATION_KINDS,
424
+ path: ["integrations", "integrationKinds"],
425
+ label: "Integration kinds"
426
+ },
427
+ context
428
+ );
429
+ }
430
+ if (capabilities.collaboration.kind === "supported") {
431
+ addCanonicalListIssues(
432
+ {
433
+ values: capabilities.collaboration.roles,
434
+ canonicalOrder: AGENT_COLLABORATION_ROLES,
435
+ path: ["collaboration", "roles"],
436
+ label: "Collaboration roles"
437
+ },
438
+ context
439
+ );
440
+ addCanonicalListIssues(
441
+ {
442
+ values: capabilities.collaboration.controlActions,
443
+ canonicalOrder: AGENT_COLLABORATION_CONTROL_ACTIONS,
444
+ path: ["collaboration", "controlActions"],
445
+ label: "Collaboration control actions"
446
+ },
447
+ context
448
+ );
449
+ }
450
+ if (capabilities.generatedResources.kind === "supported") {
451
+ addCanonicalListIssues(
452
+ {
453
+ values: capabilities.generatedResources.resourceKinds,
454
+ canonicalOrder: AGENT_GENERATED_RESOURCE_KINDS,
455
+ path: ["generatedResources", "resourceKinds"],
456
+ label: "Generated resource kinds"
282
457
  },
283
458
  context
284
459
  );
285
- capabilities.configuration.fields.forEach((field, index) => {
286
- addCanonicalListIssues(
287
- {
288
- values: field.optionIds,
289
- path: ["configuration", "fields", index, "optionIds"],
290
- label: "Selectable configuration option IDs"
291
- },
292
- context
293
- );
294
- });
295
460
  }
296
461
  if (capabilities.authentication.kind === "supported") {
297
462
  addCanonicalListIssues(