@plurnk/plurnk-contracts 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/SPEC.md +227 -63
  2. package/dist/conformance/agui-v1.json +541 -0
  3. package/dist/plurnk.gemma.gbnf +26 -22
  4. package/dist/plurnk.qwen.gbnf +26 -22
  5. package/dist/schema/A2aAgentDefinition.json +44 -0
  6. package/dist/schema/AcpPlan.json +63 -0
  7. package/dist/schema/AguiClientConformance.json +74 -0
  8. package/dist/schema/AguiConformanceKit.json +111 -0
  9. package/dist/schema/AguiDiscovery.json +70 -0
  10. package/dist/schema/ClientDisplayCapabilities.json +1 -1
  11. package/dist/schema/ClientInteractionProjection.json +2 -2
  12. package/dist/schema/ClientInteractionRequest.json +1 -1
  13. package/dist/schema/ClientInteractionResolution.json +1 -1
  14. package/dist/schema/ClientStatement.json +16 -11
  15. package/dist/schema/EntryReadResult.json +2 -2
  16. package/dist/schema/FunctionalityCandidate.json +33 -0
  17. package/dist/schema/FunctionalityDefinitionState.json +33 -0
  18. package/dist/schema/FunctionalityDiscoverQuery.json +16 -0
  19. package/dist/schema/FunctionalityDiscoverResult.json +15 -0
  20. package/dist/schema/FunctionalityListResult.json +15 -0
  21. package/dist/schema/FunctionalityMutationResult.json +16 -0
  22. package/dist/schema/LineMarker.json +1 -1
  23. package/dist/schema/LoopFlags.json +1 -1
  24. package/dist/schema/MatcherBody.json +1 -1
  25. package/dist/schema/McpConfigurationOverlay.json +25 -0
  26. package/dist/schema/McpServerDefinition.json +3 -2
  27. package/dist/schema/McpServerOptions.json +36 -0
  28. package/dist/schema/ModelCatalogPage.json +122 -0
  29. package/dist/schema/ModelCatalogQuery.json +32 -0
  30. package/dist/schema/ModelReadiness.json +47 -0
  31. package/dist/schema/ModelRoute.json +23 -0
  32. package/dist/schema/Notice.json +1 -1
  33. package/dist/schema/OperationResult.json +3 -3
  34. package/dist/schema/ParsedPath.json +1 -1
  35. package/dist/schema/Plan.json +52 -0
  36. package/dist/schema/PlurnkStatement.json +57 -40
  37. package/dist/schema/Position.json +1 -1
  38. package/dist/schema/ProblemDetails.json +1 -1
  39. package/dist/schema/ProposalDisposition.json +1 -1
  40. package/dist/schema/ProposalProjection.json +5 -6
  41. package/dist/schema/ProviderAccounting.json +3 -3
  42. package/dist/schema/ProviderCost.json +1 -1
  43. package/dist/schema/ProviderRequestAccounting.json +3 -3
  44. package/dist/schema/ProviderUsage.json +1 -1
  45. package/dist/schema/RangeExtent.json +1 -1
  46. package/dist/schema/ReasoningPolicy.json +7 -0
  47. package/dist/schema/ResourceSelection.json +3 -3
  48. package/dist/schema/SendBody.json +1 -1
  49. package/dist/schema/SkillDefinition.json +26 -0
  50. package/dist/schema/TextLineMarker.json +1 -1
  51. package/dist/schema/TextRegion.json +1 -1
  52. package/dist/src/AcpPlanValue.d.ts +7 -0
  53. package/dist/src/AcpPlanValue.d.ts.map +1 -0
  54. package/dist/src/AcpPlanValue.js +32 -0
  55. package/dist/src/AcpPlanValue.js.map +1 -0
  56. package/dist/src/AguiConformance.d.ts +11 -0
  57. package/dist/src/AguiConformance.d.ts.map +1 -0
  58. package/dist/src/AguiConformance.js +16 -0
  59. package/dist/src/AguiConformance.js.map +1 -0
  60. package/dist/src/ApplicationPort.d.ts +271 -0
  61. package/dist/src/ApplicationPort.d.ts.map +1 -0
  62. package/dist/src/ApplicationPort.js +2 -0
  63. package/dist/src/ApplicationPort.js.map +1 -0
  64. package/dist/src/AstBuilder.d.ts.map +1 -1
  65. package/dist/src/AstBuilder.js +44 -22
  66. package/dist/src/AstBuilder.js.map +1 -1
  67. package/dist/src/PlanValue.d.ts +10 -0
  68. package/dist/src/PlanValue.d.ts.map +1 -0
  69. package/dist/src/PlanValue.js +58 -0
  70. package/dist/src/PlanValue.js.map +1 -0
  71. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  72. package/dist/src/PlurnkErrorStrategy.js +33 -19
  73. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  74. package/dist/src/PlurnkParser.js +3 -3
  75. package/dist/src/PlurnkParser.js.map +1 -1
  76. package/dist/src/Problems.js +1 -1
  77. package/dist/src/Validator.d.ts +68 -1
  78. package/dist/src/Validator.d.ts.map +1 -1
  79. package/dist/src/Validator.js +373 -0
  80. package/dist/src/Validator.js.map +1 -1
  81. package/dist/src/generated/plurnkLexer.d.ts +30 -28
  82. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  83. package/dist/src/generated/plurnkLexer.js +398 -381
  84. package/dist/src/generated/plurnkLexer.js.map +1 -1
  85. package/dist/src/generated/plurnkParser.d.ts +56 -39
  86. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  87. package/dist/src/generated/plurnkParser.js +644 -450
  88. package/dist/src/generated/plurnkParser.js.map +1 -1
  89. package/dist/src/generated/plurnkParserVisitor.d.ts +7 -7
  90. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  91. package/dist/src/generated/plurnkParserVisitor.js +6 -6
  92. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  93. package/dist/src/index.d.ts +7 -2
  94. package/dist/src/index.d.ts.map +1 -1
  95. package/dist/src/index.js +5 -2
  96. package/dist/src/index.js.map +1 -1
  97. package/dist/src/types.d.ts +2 -1
  98. package/dist/src/types.d.ts.map +1 -1
  99. package/dist/src/types.generated.d.ts +430 -21
  100. package/dist/src/types.generated.d.ts.map +1 -1
  101. package/dist/src/types.js +4 -0
  102. package/dist/src/types.js.map +1 -1
  103. package/package.json +7 -3
  104. package/plurnk.md +67 -78
@@ -1,4 +1,176 @@
1
+ export interface A2AAgentDefinition {
2
+ /**
3
+ * The local alias: the `a2a://<name>` authority.
4
+ */
5
+ name: string;
6
+ /**
7
+ * The remote agent's absolute HTTP(S) base URL; its Agent Card is discovered at the standard well-known path unless `cardPath` names another.
8
+ */
9
+ url: string;
10
+ /**
11
+ * An absolute URL pathname replacing the standard Agent Card path.
12
+ */
13
+ cardPath?: string;
14
+ /**
15
+ * Extra request headers; values may be symbolic `${NAME}` environment references.
16
+ */
17
+ headers?: {
18
+ [k: string]: string;
19
+ };
20
+ authorization?: {
21
+ type: "bearer";
22
+ /**
23
+ * A symbolic `${NAME}` environment reference; the secret is never persisted.
24
+ */
25
+ token: string;
26
+ };
27
+ }
28
+ export interface AcpPlan {
29
+ /**
30
+ * The complete list of current plan entries.
31
+ */
32
+ entries: AcpPlanEntry[];
33
+ /**
34
+ * Metadata reserved by ACP. Consumers must not assume meanings for its keys.
35
+ */
36
+ _meta?: ({
37
+ [k: string]: unknown;
38
+ } | null);
39
+ }
40
+ /**
41
+ * One task or goal in an ACP execution plan.
42
+ */
43
+ export interface AcpPlanEntry {
44
+ /**
45
+ * Human-readable description of what this task aims to accomplish.
46
+ */
47
+ content: string;
48
+ /**
49
+ * The relative importance of this task.
50
+ */
51
+ priority: ("high" | "medium" | "low");
52
+ /**
53
+ * The current execution status of this task.
54
+ */
55
+ status: ("pending" | "in_progress" | "completed");
56
+ /**
57
+ * Metadata reserved by ACP. Consumers must not assume meanings for its keys.
58
+ */
59
+ _meta?: ({
60
+ [k: string]: unknown;
61
+ } | null);
62
+ }
63
+ export type Disposition = ({
64
+ posture: ("native" | "generic");
65
+ dimensions: Dimensions;
66
+ evidence: Evidence;
67
+ } | {
68
+ posture: "unsupported";
69
+ reason: string;
70
+ dimensions: Dimensions;
71
+ evidence: Evidence;
72
+ });
73
+ /**
74
+ * @minItems 1
75
+ */
76
+ export type Dimensions = [("admission" | "projection" | "framing" | "success" | "failure" | "lifecycle" | "durability" | "composition" | "presentation"), ...(("admission" | "projection" | "framing" | "success" | "failure" | "lifecycle" | "durability" | "composition" | "presentation"))[]];
77
+ /**
78
+ * @minItems 1
79
+ */
80
+ export type Evidence = [string, ...(string)[]];
81
+ /**
82
+ * One client's exhaustive, evidence-bearing disposition for an installed AG-UI discovery surface.
83
+ */
84
+ export interface AguiClientConformance {
85
+ schemaVersion: 1;
86
+ client: string;
87
+ actions: {
88
+ [k: string]: Disposition;
89
+ };
90
+ notifications: {
91
+ [k: string]: Disposition;
92
+ };
93
+ }
94
+ export type Name = string;
95
+ /**
96
+ * Language-neutral raw SSE and AG-UI lifecycle specimens consumed by every Plurnk client.
97
+ */
98
+ export interface AguiConformanceKit {
99
+ schemaVersion: 1;
100
+ /**
101
+ * @minItems 1
102
+ */
103
+ transport: [TransportSpecimen, ...(TransportSpecimen)[]];
104
+ /**
105
+ * @minItems 1
106
+ */
107
+ lifecycles: [LifecycleSpecimen, ...(LifecycleSpecimen)[]];
108
+ }
109
+ export interface TransportSpecimen {
110
+ name: Name;
111
+ /**
112
+ * @minItems 1
113
+ */
114
+ chunks: [string, ...(string)[]];
115
+ eof: boolean;
116
+ expect: ({
117
+ events: Event[];
118
+ } | {
119
+ error: "invalid-json";
120
+ });
121
+ }
122
+ export interface Event {
123
+ type: string;
124
+ [k: string]: unknown;
125
+ }
126
+ export interface LifecycleSpecimen {
127
+ name: Name;
128
+ /**
129
+ * @minItems 1
130
+ */
131
+ events: [Event, ...(Event)[]];
132
+ expect: LifecycleExpectation;
133
+ }
134
+ export interface LifecycleExpectation {
135
+ completion: ("success" | "interrupt" | "error" | "dead-stream");
136
+ families: string[];
137
+ status?: number;
138
+ interrupt?: ("proposal" | "interaction");
139
+ action?: ActionExpectation;
140
+ }
141
+ export interface ActionExpectation {
142
+ kind: string;
143
+ ok: boolean;
144
+ status?: number;
145
+ }
1
146
  export type ClientDisplayCapabilities = (SchemeDisplayCapability | MimetypeDisplayCapability)[];
147
+ /**
148
+ * The complete installed AG-UI+ management and notification surface. Action and notification names are object keys so identity has one representation.
149
+ */
150
+ export interface AguiDiscovery {
151
+ schemaVersion: 1;
152
+ actions: {
153
+ [k: string]: Action;
154
+ };
155
+ notifications: {
156
+ [k: string]: Notification;
157
+ };
158
+ display: ClientDisplayCapabilities;
159
+ }
160
+ export interface Action {
161
+ scope: ("worldless" | "workspace" | "worker");
162
+ inputSchema: JsonSchema;
163
+ outputSchema: JsonSchema;
164
+ }
165
+ /**
166
+ * A JSON Schema 2020-12 schema supplied by the contract owner.
167
+ */
168
+ export interface JsonSchema {
169
+ [k: string]: unknown;
170
+ }
171
+ export interface Notification {
172
+ payloadSchema: JsonSchema;
173
+ }
2
174
  export interface SchemeDisplayCapability {
3
175
  kind: "scheme";
4
176
  scheme: string;
@@ -40,7 +212,7 @@ export type ClientInteractionResolution = ({
40
212
  });
41
213
  export type ClientStatement = (PlurnkStatement | LookStatement | BuffStatement);
42
214
  /**
43
- * The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, lineMarker, body, suffix, and source-position fields; operation-specific schemas constrain their types. A null field records an omitted tolerated slot and does not satisfy runtime requirements by itself.
215
+ * The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, lineMarker, annotation, body, delimiter, and source-position fields; operation-specific schemas constrain their types. A null field records an omitted tolerated slot and does not satisfy runtime requirements by itself.
44
216
  */
45
217
  export type PlurnkStatement = (FindStatement | ReadStatement | OpenStatement | FoldStatement | EditStatement | CopyStatement | MoveStatement | SendStatement | ExecStatement | BareStatement | WorkStatement | ForkStatement | KillStatement | PlanStatement);
46
218
  /**
@@ -51,6 +223,11 @@ export type ParsedPath = (LocalPath | UrlPath);
51
223
  * Parsed body of a FIND/OPEN/FOLD statement, discriminated on `dialect`. The dialect is determined by the body's leading characters (`//` xpath, `/` regex, `$` jsonpath, `~` semantic, `@` graph, else glob). The regex variant carries pattern and flags split out of the `/pattern/flags` literal; every variant remains JSON-serializable.
52
224
  */
53
225
  export type MatcherBody = (XPathBody | RegexBody | JsonPathBody | SemanticBody | GraphBody | GlobBody);
226
+ /**
227
+ * Plurnk's complete model-native working-memory Plan entries.
228
+ */
229
+ export type Plan = PlanEntry[];
230
+ export type AnnotationOrNull = (string | null);
54
231
  export type TagSignal = (string[] | null);
55
232
  export type PathOrNull = (ParsedPath | null);
56
233
  export type TextLineMarkerOrNull = (TextLineMarker | null);
@@ -58,7 +235,8 @@ export type MatcherBodyOrNull = (MatcherBody | null);
58
235
  export type LineMarkerOrNull = (LineMarker | null);
59
236
  export interface FindStatement {
60
237
  op: "FIND";
61
- suffix: string;
238
+ delimiter: string;
239
+ annotation: (string | null);
62
240
  signal: (string[] | null);
63
241
  target: (ParsedPath | null);
64
242
  lineMarker: (LineMarker | null);
@@ -156,7 +334,8 @@ export interface Position {
156
334
  }
157
335
  export interface ReadStatement {
158
336
  op: "READ";
159
- suffix: string;
337
+ delimiter: string;
338
+ annotation: (string | null);
160
339
  signal: (string[] | null);
161
340
  target: (ParsedPath | null);
162
341
  lineMarker: (TextLineMarker | null);
@@ -174,25 +353,28 @@ export interface TextLineMarker {
174
353
  }
175
354
  export interface OpenStatement {
176
355
  op: "OPEN";
177
- suffix: string;
356
+ delimiter: string;
357
+ annotation: (string | null);
178
358
  signal: (string[] | null);
179
359
  target: (ParsedPath | null);
180
- lineMarker: null;
360
+ lineMarker: (TextLineMarker | null);
181
361
  body: (MatcherBody | null);
182
362
  position: Position;
183
363
  }
184
364
  export interface FoldStatement {
185
365
  op: "FOLD";
186
- suffix: string;
366
+ delimiter: string;
367
+ annotation: (string | null);
187
368
  signal: (string[] | null);
188
369
  target: (ParsedPath | null);
189
- lineMarker: null;
370
+ lineMarker: (TextLineMarker | null);
190
371
  body: (MatcherBody | null);
191
372
  position: Position;
192
373
  }
193
374
  export interface EditStatement {
194
375
  op: "EDIT";
195
- suffix: string;
376
+ delimiter: string;
377
+ annotation: (string | null);
196
378
  signal: (string[] | null);
197
379
  target: (ParsedPath | null);
198
380
  lineMarker: (TextLineMarker | null);
@@ -201,7 +383,8 @@ export interface EditStatement {
201
383
  }
202
384
  export interface CopyStatement {
203
385
  op: "COPY";
204
- suffix: string;
386
+ delimiter: string;
387
+ annotation: (string | null);
205
388
  signal: (string[] | null);
206
389
  target: (ParsedPath | null);
207
390
  lineMarker: (TextLineMarker | null);
@@ -217,7 +400,8 @@ export interface ResourceSelection {
217
400
  }
218
401
  export interface MoveStatement {
219
402
  op: "MOVE";
220
- suffix: string;
403
+ delimiter: string;
404
+ annotation: (string | null);
221
405
  signal: (string[] | null);
222
406
  target: (ParsedPath | null);
223
407
  lineMarker: (TextLineMarker | null);
@@ -226,7 +410,8 @@ export interface MoveStatement {
226
410
  }
227
411
  export interface SendStatement {
228
412
  op: "SEND";
229
- suffix: string;
413
+ delimiter: string;
414
+ annotation: (string | null);
230
415
  signal: (number | null);
231
416
  target: (ParsedPath | null);
232
417
  lineMarker: (LineMarker | null);
@@ -242,7 +427,8 @@ export interface SendBody {
242
427
  }
243
428
  export interface ExecStatement {
244
429
  op: "EXEC";
245
- suffix: string;
430
+ delimiter: string;
431
+ annotation: (string | null);
246
432
  signal: (string | null);
247
433
  target: (ParsedPath | null);
248
434
  lineMarker: (LineMarker | null);
@@ -251,7 +437,8 @@ export interface ExecStatement {
251
437
  }
252
438
  export interface BareStatement {
253
439
  op: "BARE";
254
- suffix: string;
440
+ delimiter: string;
441
+ annotation: (string | null);
255
442
  signal: (string[] | null);
256
443
  target: null;
257
444
  lineMarker: null;
@@ -260,7 +447,8 @@ export interface BareStatement {
260
447
  }
261
448
  export interface WorkStatement {
262
449
  op: "WORK";
263
- suffix: string;
450
+ delimiter: string;
451
+ annotation: (string | null);
264
452
  signal: (string | null);
265
453
  target: (ParsedPath | null);
266
454
  lineMarker: null;
@@ -269,7 +457,8 @@ export interface WorkStatement {
269
457
  }
270
458
  export interface ForkStatement {
271
459
  op: "FORK";
272
- suffix: string;
460
+ delimiter: string;
461
+ annotation: (string | null);
273
462
  signal: (string | null);
274
463
  target: (ParsedPath | null);
275
464
  lineMarker: null;
@@ -278,7 +467,8 @@ export interface ForkStatement {
278
467
  }
279
468
  export interface KillStatement {
280
469
  op: "KILL";
281
- suffix: string;
470
+ delimiter: string;
471
+ annotation: (string | null);
282
472
  signal: (number | null);
283
473
  target: (ParsedPath | null);
284
474
  lineMarker: null;
@@ -287,16 +477,41 @@ export interface KillStatement {
287
477
  }
288
478
  export interface PlanStatement {
289
479
  op: "PLAN";
290
- suffix: string;
480
+ delimiter: string;
481
+ annotation: (string | null);
291
482
  signal: (string[] | null);
292
483
  target: (ParsedPath | null);
293
484
  lineMarker: (LineMarker | null);
294
- body: (string | null);
485
+ body: Plan;
295
486
  position: Position;
296
487
  }
488
+ /**
489
+ * One finding, task, or goal in the model's working-memory plan.
490
+ */
491
+ export interface PlanEntry {
492
+ /**
493
+ * Human-readable description of what this task aims to accomplish.
494
+ */
495
+ content: string;
496
+ /**
497
+ * The relative importance of this task.
498
+ */
499
+ priority: ("high" | "medium" | "low");
500
+ /**
501
+ * The current execution status of this task.
502
+ */
503
+ status: ("pending" | "in_progress" | "completed" | "memory");
504
+ /**
505
+ * Opaque entry metadata preserved through standards projection.
506
+ */
507
+ _meta?: ({
508
+ [k: string]: unknown;
509
+ } | null);
510
+ }
297
511
  export interface LookStatement {
298
512
  op: "LOOK";
299
- suffix: string;
513
+ delimiter: string;
514
+ annotation: AnnotationOrNull;
300
515
  signal: TagSignal;
301
516
  target: PathOrNull;
302
517
  lineMarker: TextLineMarkerOrNull;
@@ -305,7 +520,8 @@ export interface LookStatement {
305
520
  }
306
521
  export interface BuffStatement {
307
522
  op: "BUFF";
308
- suffix: string;
523
+ delimiter: string;
524
+ annotation: AnnotationOrNull;
309
525
  signal: TagSignal;
310
526
  target: PathOrNull;
311
527
  lineMarker: LineMarkerOrNull;
@@ -373,6 +589,76 @@ export interface ProblemDetails {
373
589
  retryable?: boolean;
374
590
  [k: string]: unknown;
375
591
  }
592
+ export interface FunctionalityCandidate {
593
+ /**
594
+ * The alias the candidate would take if added; a suggestion, never authority.
595
+ */
596
+ alias?: string;
597
+ summary?: string;
598
+ /**
599
+ * The exact family definition, conforming to the family's definition schema.
600
+ */
601
+ definition: {};
602
+ provenance: {
603
+ kind: string;
604
+ source: string;
605
+ reference?: string;
606
+ };
607
+ }
608
+ export type FunctionalityDefinitionState = ({
609
+ [k: string]: unknown;
610
+ } & {
611
+ alias: string;
612
+ origin: ("service" | "worker");
613
+ /**
614
+ * disabled: available, model-invisible. active: enabled and prepared. unavailable: enabled but preparation has an exact Problem. authorization-required: enabled and awaiting a protocol continuation.
615
+ */
616
+ state: ("disabled" | "active" | "unavailable" | "authorization-required");
617
+ definition?: {};
618
+ /**
619
+ * Family-owned presentation facts about an active definition (a server's protocol version and tool names, an agent card summary). Never credentials, never authority.
620
+ */
621
+ detail?: {};
622
+ problem?: ProblemDetails;
623
+ authorization?: {
624
+ url: string;
625
+ };
626
+ });
627
+ /**
628
+ * PLURNK operation failure using RFC 9457 Problem Details. Extension members are permitted so an owning boundary can add structured causal and recovery facts without inventing a second error envelope.
629
+ */
630
+ export interface FunctionalityDiscoverQuery {
631
+ query?: string;
632
+ source?: string;
633
+ /**
634
+ * Caller-supplied configuration material the family interprets as candidates (a client's own PLURNK_MCP_* environment, a local directory list). It contributes candidates with client-configuration provenance; it never becomes durable authority.
635
+ */
636
+ configuration?: {};
637
+ }
638
+ export interface FunctionalityDiscoverResult {
639
+ family: string;
640
+ candidates: FunctionalityCandidate[];
641
+ }
642
+ /**
643
+ * One inert discovery result: an exact family definition with its provenance. Discovery never installs, persists, enables, or executes it.
644
+ */
645
+ export interface FunctionalityListResult {
646
+ family: string;
647
+ definitions: FunctionalityDefinitionState[];
648
+ }
649
+ /**
650
+ * PLURNK operation failure using RFC 9457 Problem Details. Extension members are permitted so an owning boundary can add structured causal and recovery facts without inventing a second error envelope.
651
+ */
652
+ export interface FunctionalityMutationResult {
653
+ status: (200 | 201 | 202);
654
+ family: string;
655
+ alias: string;
656
+ definition?: FunctionalityDefinitionState;
657
+ removed?: true;
658
+ }
659
+ /**
660
+ * PLURNK operation failure using RFC 9457 Problem Details. Extension members are permitted so an owning boundary can add structured causal and recovery facts without inventing a second error envelope.
661
+ */
376
662
  export interface LoopFlags {
377
663
  mode: ("ask" | "act");
378
664
  auto: boolean;
@@ -380,6 +666,9 @@ export interface LoopFlags {
380
666
  noInteraction: boolean;
381
667
  noProposals: boolean;
382
668
  }
669
+ export interface McpConfigurationOverlay {
670
+ [k: string]: string;
671
+ }
383
672
  export type McpServerDefinition = ({
384
673
  [k: string]: unknown;
385
674
  } & {
@@ -418,11 +707,116 @@ export type McpServerDefinition = ({
418
707
  clientId: string;
419
708
  clientSecret: EnvironmentReference;
420
709
  scope?: string;
710
+ issuer?: string;
421
711
  });
422
712
  tools?: string[];
423
713
  read?: string[];
424
714
  });
425
715
  export type EnvironmentReference = string;
716
+ export type McpServerArguments = string[];
717
+ export type McpServerAuthorization = ({
718
+ type: "bearer";
719
+ token: string;
720
+ } | {
721
+ type: "oauth";
722
+ redirectUrl: string;
723
+ clientMetadataUrl: string;
724
+ scope?: string;
725
+ } | {
726
+ type: "oauth";
727
+ redirectUrl: string;
728
+ clientId: string;
729
+ clientSecret: string;
730
+ scope?: string;
731
+ } | {
732
+ type: "oauth";
733
+ redirectUrl: string;
734
+ scope?: string;
735
+ } | {
736
+ type: "client-credentials";
737
+ clientId: string;
738
+ clientSecret: string;
739
+ scope?: string;
740
+ issuer?: string;
741
+ });
742
+ export type McpServerToolNames = string[];
743
+ export type McpServerReadTools = string[];
744
+ export interface McpServerOptions {
745
+ args?: McpServerArguments;
746
+ cwd?: string;
747
+ env?: McpServerEnvironment;
748
+ headers?: McpServerHeaders;
749
+ authorization?: McpServerAuthorization;
750
+ tools?: McpServerToolNames;
751
+ read?: McpServerReadTools;
752
+ }
753
+ export interface McpServerEnvironment {
754
+ [k: string]: string;
755
+ }
756
+ export interface McpServerHeaders {
757
+ [k: string]: string;
758
+ }
759
+ export interface ModelCatalogPage {
760
+ /**
761
+ * @maxItems 100
762
+ */
763
+ items: ModelCatalogEntry[];
764
+ offset: number;
765
+ total: number;
766
+ nextOffset?: number;
767
+ }
768
+ export interface ModelCatalogEntry {
769
+ selector: string;
770
+ provider: string;
771
+ providerName: string;
772
+ model: string;
773
+ modelName: string;
774
+ limits: ModelCatalogLimits;
775
+ capabilities: ModelCatalogCapabilities;
776
+ readiness: ModelReadiness;
777
+ }
778
+ export interface ModelCatalogLimits {
779
+ contextTokens: number;
780
+ inputTokens?: number;
781
+ outputTokens?: number;
782
+ }
783
+ export interface ModelCatalogCapabilities {
784
+ attachment: boolean;
785
+ reasoning: boolean;
786
+ toolCall: boolean;
787
+ structuredOutput?: boolean;
788
+ temperature?: boolean;
789
+ inputModalities: string[];
790
+ outputModalities: string[];
791
+ }
792
+ /**
793
+ * Local configuration evidence that a catalog provider is ready to attempt a request, without probing or validating credentials.
794
+ */
795
+ export interface ModelReadiness {
796
+ ready: boolean;
797
+ causes: ModelReadinessCause[];
798
+ }
799
+ export interface ModelReadinessCause {
800
+ kind: ("credential" | "configuration");
801
+ /**
802
+ * Alternative environment-variable sets. Every name in one inner array is required; satisfying any inner array resolves this cause.
803
+ *
804
+ * @minItems 1
805
+ */
806
+ alternatives: [[string, ...(string)[]], ...([string, ...(string)[]])[]];
807
+ }
808
+ export interface ModelCatalogQuery {
809
+ provider?: string;
810
+ search?: string;
811
+ availability?: ("configured" | "all");
812
+ offset?: number;
813
+ limit?: number;
814
+ }
815
+ export interface ModelRoute {
816
+ alias?: string;
817
+ provider: string;
818
+ model: string;
819
+ }
426
820
  export interface Notice {
427
821
  /**
428
822
  * Producer identifier. Top-level for self-contained subsystems; colon-namespaced for parameterized producers such as `provider:openai` or `exec:search`.
@@ -512,6 +906,7 @@ export interface ProposalProjection {
512
906
  op: ("FIND" | "READ" | "EDIT" | "COPY" | "MOVE" | "OPEN" | "FOLD" | "SEND" | "EXEC" | "BARE" | "WORK" | "FORK" | "KILL" | "PLAN");
513
907
  target: {
514
908
  scheme: (string | null);
909
+ authority: (string | null);
515
910
  pathname: (string | null);
516
911
  };
517
912
  body: string;
@@ -519,7 +914,6 @@ export interface ProposalProjection {
519
914
  [k: string]: unknown;
520
915
  };
521
916
  flags: LoopFlags;
522
- staleClobberRisk: boolean;
523
917
  disposition: ProposalDisposition;
524
918
  }
525
919
  /**
@@ -584,6 +978,21 @@ export type Tokens = number;
584
978
  /**
585
979
  * Known token quantities for one provider request. Omitted fields are unknown; explicit zero is observed or exactly derived.
586
980
  */
981
+ export type ReasoningPolicy = ("off" | "adaptive" | "low" | "medium" | "high");
982
+ export interface SkillDefinition {
983
+ /**
984
+ * The standard Agent Skills name: lowercase words joined by single hyphens, equal to the skill's directory name.
985
+ */
986
+ name: string;
987
+ /**
988
+ * The universal Agent Skills root: the project's `.agents/skills` or the user's `~/.agents/skills`.
989
+ */
990
+ scope: ("project" | "global");
991
+ /**
992
+ * The standard installer package reference (`owner/repo`, a git URL, or a local path) that provides the skill; required to add a skill that is not yet installed.
993
+ */
994
+ source?: string;
995
+ }
587
996
  export interface TextRegion {
588
997
  startLine: number;
589
998
  startColumn: number;