@peasant-labs/schema 0.1.0-rc6

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 (37) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +56 -0
  3. package/dist/fixtures/quality.d.ts +81 -0
  4. package/dist/fixtures/quality.js +36 -0
  5. package/dist/fixtures/timeline.d.ts +22 -0
  6. package/dist/fixtures/timeline.js +2 -0
  7. package/dist/fixtures.d.ts +2 -0
  8. package/dist/fixtures.js +2 -0
  9. package/dist/index.d.ts +8 -0
  10. package/dist/index.js +36 -0
  11. package/dist/internal/generated/contract/zod.gen.d.ts +2740 -0
  12. package/dist/internal/generated/contract/zod.gen.js +1196 -0
  13. package/dist/internal/generated/enums.gen.d.ts +318 -0
  14. package/dist/internal/generated/enums.gen.js +348 -0
  15. package/dist/internal/generated/local-api.d.ts +946 -0
  16. package/dist/internal/generated/local-api.js +1 -0
  17. package/dist/internal/generated/public-contract.gen.d.ts +2 -0
  18. package/dist/internal/generated/public-contract.gen.js +2 -0
  19. package/dist/internal/generated/quality-fixtures.gen.d.ts +2 -0
  20. package/dist/internal/generated/quality-fixtures.gen.js +367 -0
  21. package/dist/internal/generated/testcase.gen.d.ts +17 -0
  22. package/dist/internal/generated/testcase.gen.js +20 -0
  23. package/dist/internal/generated/timeline-fixtures.gen.d.ts +2 -0
  24. package/dist/internal/generated/timeline-fixtures.gen.js +542 -0
  25. package/dist/internal/generated/versions.gen.d.ts +4 -0
  26. package/dist/internal/generated/versions.gen.js +5 -0
  27. package/dist/internal/generated/village-api.d.ts +585 -0
  28. package/dist/internal/generated/village-api.js +1 -0
  29. package/dist/local-api.d.ts +4 -0
  30. package/dist/local-api.js +1 -0
  31. package/dist/testcase.d.ts +32 -0
  32. package/dist/testcase.js +144 -0
  33. package/dist/types.d.ts +2 -0
  34. package/dist/types.js +2 -0
  35. package/dist/village-api.d.ts +4 -0
  36. package/dist/village-api.js +1 -0
  37. package/package.json +71 -0
@@ -0,0 +1,946 @@
1
+ import type * as Schema from "../../index.js";
2
+ export interface paths {
3
+ "/api/v1/annotation-types": {
4
+ parameters: {
5
+ query?: never;
6
+ header?: never;
7
+ path?: never;
8
+ cookie?: never;
9
+ };
10
+ /** @description List all registered annotation types. */
11
+ get: operations["listAnnotationTypes"];
12
+ put?: never;
13
+ post?: never;
14
+ delete?: never;
15
+ options?: never;
16
+ head?: never;
17
+ patch?: never;
18
+ trace?: never;
19
+ };
20
+ "/api/v1/annotations": {
21
+ parameters: {
22
+ query?: never;
23
+ header?: never;
24
+ path?: never;
25
+ cookie?: never;
26
+ };
27
+ /** @description List annotations for a session. */
28
+ get: operations["listAnnotations"];
29
+ put?: never;
30
+ /** @description Create a new annotation. */
31
+ post: operations["createAnnotation"];
32
+ delete?: never;
33
+ options?: never;
34
+ head?: never;
35
+ patch?: never;
36
+ trace?: never;
37
+ };
38
+ "/api/v1/config/mock": {
39
+ parameters: {
40
+ query?: never;
41
+ header?: never;
42
+ path?: never;
43
+ cookie?: never;
44
+ };
45
+ /** @description Get mock data configuration. */
46
+ get: operations["getMockConfig"];
47
+ put?: never;
48
+ post?: never;
49
+ delete?: never;
50
+ options?: never;
51
+ head?: never;
52
+ patch?: never;
53
+ trace?: never;
54
+ };
55
+ "/api/v1/health": {
56
+ parameters: {
57
+ query?: never;
58
+ header?: never;
59
+ path?: never;
60
+ cookie?: never;
61
+ };
62
+ /** @description Health check endpoint. */
63
+ get: operations["getHealth"];
64
+ put?: never;
65
+ post?: never;
66
+ delete?: never;
67
+ options?: never;
68
+ head?: never;
69
+ patch?: never;
70
+ trace?: never;
71
+ };
72
+ "/api/v1/map/{projectHash}": {
73
+ parameters: {
74
+ query?: never;
75
+ header?: never;
76
+ path?: never;
77
+ cookie?: never;
78
+ };
79
+ /** @description Get the full map graph for a project (optionally at a commit). */
80
+ get: operations["getMapGraph"];
81
+ put?: never;
82
+ post?: never;
83
+ delete?: never;
84
+ options?: never;
85
+ head?: never;
86
+ patch?: never;
87
+ trace?: never;
88
+ };
89
+ "/api/v1/map/{projectHash}/node": {
90
+ parameters: {
91
+ query?: never;
92
+ header?: never;
93
+ path?: never;
94
+ cookie?: never;
95
+ };
96
+ /** @description Get the rail panel detail for one map node. */
97
+ get: operations["getMapNodeDetail"];
98
+ put?: never;
99
+ post?: never;
100
+ delete?: never;
101
+ options?: never;
102
+ head?: never;
103
+ patch?: never;
104
+ trace?: never;
105
+ };
106
+ "/api/v1/map/{projectHash}/tasks": {
107
+ parameters: {
108
+ query?: never;
109
+ header?: never;
110
+ path?: never;
111
+ cookie?: never;
112
+ };
113
+ /** @description List a project's tasks (reverse-chronological, cap 500). */
114
+ get: operations["listProjectTasks"];
115
+ put?: never;
116
+ post?: never;
117
+ delete?: never;
118
+ options?: never;
119
+ head?: never;
120
+ patch?: never;
121
+ trace?: never;
122
+ };
123
+ "/api/v1/projects/resolve": {
124
+ parameters: {
125
+ query?: never;
126
+ header?: never;
127
+ path?: never;
128
+ cookie?: never;
129
+ };
130
+ /** @description Resolve one explicit project display identity without enumerating sibling projects. */
131
+ get: operations["resolveProject"];
132
+ put?: never;
133
+ post?: never;
134
+ delete?: never;
135
+ options?: never;
136
+ head?: never;
137
+ patch?: never;
138
+ trace?: never;
139
+ };
140
+ "/api/v1/projects/summary": {
141
+ parameters: {
142
+ query?: never;
143
+ header?: never;
144
+ path?: never;
145
+ cookie?: never;
146
+ };
147
+ /** @description List per-project summary rows for the home picker (sessions, recorded coverage, last work, open changes). */
148
+ get: operations["listProjectSummaries"];
149
+ put?: never;
150
+ post?: never;
151
+ delete?: never;
152
+ options?: never;
153
+ head?: never;
154
+ patch?: never;
155
+ trace?: never;
156
+ };
157
+ "/api/v1/review/{projectHash}": {
158
+ parameters: {
159
+ query?: never;
160
+ header?: never;
161
+ path?: never;
162
+ cookie?: never;
163
+ };
164
+ /** @description List a project's changes (open branches, then merged). */
165
+ get: operations["listReviewChanges"];
166
+ put?: never;
167
+ post?: never;
168
+ delete?: never;
169
+ options?: never;
170
+ head?: never;
171
+ patch?: never;
172
+ trace?: never;
173
+ };
174
+ "/api/v1/review/{projectHash}/change": {
175
+ parameters: {
176
+ query?: never;
177
+ header?: never;
178
+ path?: never;
179
+ cookie?: never;
180
+ };
181
+ /** @description Get the Review detail payload for one branch. */
182
+ get: operations["getChangeDetail"];
183
+ put?: never;
184
+ post?: never;
185
+ delete?: never;
186
+ options?: never;
187
+ head?: never;
188
+ patch?: never;
189
+ trace?: never;
190
+ };
191
+ "/api/v1/review/{projectHash}/diff": {
192
+ parameters: {
193
+ query?: never;
194
+ header?: never;
195
+ path?: never;
196
+ cookie?: never;
197
+ };
198
+ /** @description Get the rendered per-file unified diff for one changed file of a branch. */
199
+ get: operations["getChangeDiff"];
200
+ put?: never;
201
+ post?: never;
202
+ delete?: never;
203
+ options?: never;
204
+ head?: never;
205
+ patch?: never;
206
+ trace?: never;
207
+ };
208
+ "/api/v1/search": {
209
+ parameters: {
210
+ query?: never;
211
+ header?: never;
212
+ path?: never;
213
+ cookie?: never;
214
+ };
215
+ /** @description Full-text search across recorded (redacted) message entries; matches the first ~2000 chars of each turn plus truncated tool input/output. */
216
+ get: operations["searchMessages"];
217
+ put?: never;
218
+ post?: never;
219
+ delete?: never;
220
+ options?: never;
221
+ head?: never;
222
+ patch?: never;
223
+ trace?: never;
224
+ };
225
+ "/api/v1/sessions": {
226
+ parameters: {
227
+ query?: never;
228
+ header?: never;
229
+ path?: never;
230
+ cookie?: never;
231
+ };
232
+ /** @description List session summaries. */
233
+ get: operations["listSessions"];
234
+ put?: never;
235
+ post?: never;
236
+ delete?: never;
237
+ options?: never;
238
+ head?: never;
239
+ patch?: never;
240
+ trace?: never;
241
+ };
242
+ "/api/v1/sessions/{id}": {
243
+ parameters: {
244
+ query?: never;
245
+ header?: never;
246
+ path?: never;
247
+ cookie?: never;
248
+ };
249
+ /** @description Get session detail by ID. */
250
+ get: operations["getSession"];
251
+ put?: never;
252
+ post?: never;
253
+ delete?: never;
254
+ options?: never;
255
+ head?: never;
256
+ patch?: never;
257
+ trace?: never;
258
+ };
259
+ "/api/v1/shutdown": {
260
+ parameters: {
261
+ query?: never;
262
+ header?: never;
263
+ path?: never;
264
+ cookie?: never;
265
+ };
266
+ get?: never;
267
+ put?: never;
268
+ /** @description Gracefully shutdown the server (localhost only). */
269
+ post: operations["postShutdown"];
270
+ delete?: never;
271
+ options?: never;
272
+ head?: never;
273
+ patch?: never;
274
+ trace?: never;
275
+ };
276
+ }
277
+ export type webhooks = Record<string, never>;
278
+ export interface components {
279
+ schemas: {
280
+ AnnotationsPayload: Schema.AnnotationsPayload;
281
+ /**
282
+ * Harness
283
+ * @description AI coding tool or development environment
284
+ * @example claude-code
285
+ * @example opencode
286
+ * @enum {string}
287
+ */
288
+ BestiaryHarness: Schema.Harness;
289
+ ClientMessage: Schema.ClientMessage;
290
+ DashboardPayload: Schema.DashboardPayload;
291
+ QualityPayload: Schema.QualityPayload;
292
+ SchemaActivityEdge: Schema.ActivityEdge;
293
+ /**
294
+ * Annotation Axis
295
+ * @description Subscription dimension for annotation channels
296
+ * @example type
297
+ * @example session
298
+ * @example project
299
+ * @enum {string}
300
+ */
301
+ SchemaAnnotationAxis: Schema.AnnotationAxis;
302
+ /**
303
+ * Annotation Datatype
304
+ * @description Storage type for annotation values (maps to SQLite STRICT column type)
305
+ * @example text
306
+ * @example integer
307
+ * @enum {string}
308
+ */
309
+ SchemaAnnotationDatatype: Schema.AnnotationDatatype;
310
+ /**
311
+ * Annotation Status
312
+ * @description ISO 11179 lifecycle state of an annotation type
313
+ * @example active
314
+ * @example deprecated
315
+ * @enum {string}
316
+ */
317
+ SchemaAnnotationStatus: Schema.AnnotationStatus;
318
+ SchemaAnnotationSummary: Schema.AnnotationSummary;
319
+ SchemaAnnotationTypeSummary: Schema.AnnotationTypeSummary;
320
+ /**
321
+ * Annotator Kind
322
+ * @description Type of entity that produced an annotation: human, agent (AI model), or rule (automated classifier)
323
+ * @example human
324
+ * @example agent
325
+ * @example rule
326
+ * @enum {string}
327
+ */
328
+ SchemaAnnotatorKind: Schema.AnnotatorKind;
329
+ /**
330
+ * Change Binding
331
+ * @description Strength of the evidence connecting a recorded session to a code change
332
+ * @example bound
333
+ * @example candidate
334
+ * @enum {string}
335
+ */
336
+ SchemaChangeBinding: Schema.ChangeBinding;
337
+ SchemaChangeDetailPayload: Schema.ChangeDetailPayload;
338
+ SchemaChangeDiffPayload: Schema.ChangeDiffPayload;
339
+ SchemaChangeSession: Schema.ChangeSession;
340
+ SchemaChangeSummary: Schema.ChangeSummary;
341
+ SchemaChannelSubscription: Schema.ChannelSubscription;
342
+ /**
343
+ * Channel Topic
344
+ * @description Subscribable WebSocket data stream
345
+ * @example dashboard
346
+ * @example sessions
347
+ * @example session_detail
348
+ * @example trends
349
+ * @example quality
350
+ * @example annotations
351
+ * @example project_familiarity
352
+ * @enum {string}
353
+ */
354
+ SchemaChannelTopic: Schema.ChannelTopic;
355
+ SchemaChildSessionRef: Schema.ChildSessionRef;
356
+ SchemaCommitRef: Schema.CommitRef;
357
+ SchemaCreateAnnotationRequest: Schema.CreateAnnotationRequest;
358
+ SchemaCreateAnnotationResponse: Schema.CreateAnnotationResponse;
359
+ SchemaDayStats: Schema.DayStats;
360
+ SchemaDiffHunk: Schema.DiffHunk;
361
+ SchemaDiffLine: Schema.DiffLine;
362
+ /**
363
+ * Diff Line Kind
364
+ * @description Unified-diff line kind: context, addition, or deletion
365
+ * @example context
366
+ * @example add
367
+ * @example del
368
+ * @enum {string}
369
+ */
370
+ SchemaDiffLineKind: Schema.DiffLineKind;
371
+ SchemaEdgeViolation: Schema.EdgeViolation;
372
+ /**
373
+ * Edge Violation Kind
374
+ * @description Structural violation detected on a map edge
375
+ * @example cycle
376
+ * @example wrong_way
377
+ * @enum {string}
378
+ */
379
+ SchemaEdgeViolationKind: Schema.EdgeViolationKind;
380
+ /**
381
+ * Entry Type
382
+ * @description Classification of a single entry within an agent session transcript
383
+ * @example text
384
+ * @example tool_use
385
+ * @example tool_result
386
+ * @enum {string}
387
+ */
388
+ SchemaEntryType: Schema.EntryType;
389
+ SchemaFileChange: Schema.FileChange;
390
+ /**
391
+ * File Change Status
392
+ * @description Git file delta status: modified, added, deleted, or renamed
393
+ * @example M
394
+ * @example A
395
+ * @example D
396
+ * @example R
397
+ * @enum {string}
398
+ */
399
+ SchemaFileChangeStatus: Schema.FileChangeStatus;
400
+ SchemaFrictionCluster: Schema.FrictionCluster;
401
+ SchemaHealthResponse: Schema.HealthResponse;
402
+ SchemaMapEdge: Schema.MapEdge;
403
+ SchemaMapGraphPayload: Schema.MapGraphPayload;
404
+ SchemaMapNode: Schema.MapNode;
405
+ SchemaMapNodeDetailPayload: Schema.MapNodeDetailPayload;
406
+ /**
407
+ * Map Node Kind
408
+ * @description Path-derived map node classification
409
+ * @example module
410
+ * @example package
411
+ * @example file
412
+ * @enum {string}
413
+ */
414
+ SchemaMapNodeKind: Schema.MapNodeKind;
415
+ SchemaMapSlice: Schema.MapSlice;
416
+ /**
417
+ * Message Type
418
+ * @description WebSocket message discriminator
419
+ * @example subscribe
420
+ * @example unsubscribe
421
+ * @example dashboard
422
+ * @example sessions
423
+ * @example session_detail
424
+ * @example trends
425
+ * @example quality
426
+ * @example annotations
427
+ * @example project_familiarity
428
+ * @example connected
429
+ * @example error
430
+ * @enum {string}
431
+ */
432
+ SchemaMessageType: Schema.MessageType;
433
+ SchemaMockConfigResponse: Schema.MockConfigResponse;
434
+ /**
435
+ * Project Hash
436
+ * @description SHA-256 hex digest of the project's origin URL or local path
437
+ * @example a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
438
+ */
439
+ SchemaProjectHash: Schema.ProjectHash;
440
+ SchemaProjectResolutionPayload: Schema.ProjectResolutionPayload;
441
+ SchemaProjectSummariesPayload: Schema.ProjectSummariesPayload;
442
+ SchemaProjectSummary: Schema.ProjectSummary;
443
+ SchemaProjectTasksPayload: Schema.ProjectTasksPayload;
444
+ SchemaProvenance: Schema.Provenance;
445
+ SchemaQualitySession: Schema.QualitySession;
446
+ SchemaReviewListPayload: Schema.ReviewListPayload;
447
+ /**
448
+ * Role
449
+ * @description Sender role of a message turn
450
+ * @example user
451
+ * @example assistant
452
+ * @enum {string}
453
+ */
454
+ SchemaRole: Schema.Role;
455
+ /**
456
+ * Scale Kind
457
+ * @description Stevens measurement level: nominal (categories without order), ordinal (ordered categories), continuous (numeric range)
458
+ * @example nominal
459
+ * @example ordinal
460
+ * @example continuous
461
+ * @enum {string}
462
+ */
463
+ SchemaScaleKind: Schema.ScaleKind;
464
+ SchemaSearchPayload: Schema.SearchPayload;
465
+ SchemaSearchResult: Schema.SearchResult;
466
+ SchemaSessionDetailPayload: Schema.SessionDetailPayload;
467
+ /**
468
+ * Session ID
469
+ * Format: session-id
470
+ * @description Unique session identifier (UUID, agent-{hex}, ses_{id}, sess_{id} (ACP), or msg_{id})
471
+ * @example 99d59925-36bc-424c-a789-8be54d9702ba
472
+ * @example agent-a3aee4f
473
+ * @example ses_3cd91f52effeXd3QAJ54jOyzv5
474
+ * @example sess_3cd91f52effeXd3QAJ54jOyzv5
475
+ */
476
+ SchemaSessionID: Schema.SessionID;
477
+ /**
478
+ * Session Outcome
479
+ * @description Resolution status of the session
480
+ * @example resolved
481
+ * @example partial
482
+ * @example failed
483
+ * @enum {string}
484
+ */
485
+ SchemaSessionOutcome: Schema.SessionOutcome;
486
+ SchemaSessionScorecard: Schema.SessionScorecard;
487
+ SchemaSessionSummary: Schema.SessionSummary;
488
+ SchemaSessionsPayload: Schema.SessionsPayload;
489
+ SchemaShutdownResponse: Schema.ShutdownResponse;
490
+ /**
491
+ * Stop Reason
492
+ * @description Reason why a session or turn ended (ACP-aligned)
493
+ * @example end_turn
494
+ * @example max_tokens
495
+ * @enum {string}
496
+ */
497
+ SchemaStopReason: Schema.StopReason;
498
+ /**
499
+ * Target Kind
500
+ * @description What is being annotated: session-level, entry-level (turn/tool call), meta-annotation, or project-level
501
+ * @example session
502
+ * @example entry
503
+ * @enum {string}
504
+ */
505
+ SchemaTargetKind: Schema.TargetKind;
506
+ SchemaTaskSummary: Schema.TaskSummary;
507
+ SchemaTimelineSessionRef: Schema.TimelineSessionRef;
508
+ SchemaToolCallDetail: Schema.ToolCallDetail;
509
+ /**
510
+ * Tool Call Kind
511
+ * @description Classification of a tool call, aligned with ACP ToolCallUpdate.kind
512
+ * @example read
513
+ * @example edit
514
+ * @example execute
515
+ * @enum {string}
516
+ */
517
+ SchemaToolCallKind: Schema.ToolCallKind;
518
+ SchemaTurnDetail: Schema.TurnDetail;
519
+ /**
520
+ * Type Origin
521
+ * @description Who created an annotation type: system (built-in), user (individual), or group (shared)
522
+ * @example system
523
+ * @example user
524
+ * @enum {string}
525
+ */
526
+ SchemaTypeOrigin: Schema.TypeOrigin;
527
+ SchemaUnusualSignal: Schema.UnusualSignal;
528
+ SchemaValueDomain: Schema.ValueDomain;
529
+ /**
530
+ * Value Domain Kind
531
+ * @description ISO 11179 value domain: enumerated (finite allowed set) or described (range/pattern constraint)
532
+ * @example enumerated
533
+ * @example described
534
+ * @enum {string}
535
+ */
536
+ SchemaValueDomainKind: Schema.ValueDomainKind;
537
+ ServerMessage: Schema.ServerMessage;
538
+ SessionDetailPayload: Schema.SessionDetailPayload;
539
+ TrendsPayload: Schema.TrendsPayload;
540
+ };
541
+ responses: never;
542
+ parameters: never;
543
+ requestBodies: never;
544
+ headers: never;
545
+ pathItems: never;
546
+ }
547
+ export type $defs = Record<string, never>;
548
+ export interface operations {
549
+ listAnnotationTypes: {
550
+ parameters: {
551
+ query?: {
552
+ /** @description Filter by lifecycle status (active, deprecated, etc.) */
553
+ status?: string;
554
+ /** @description Filter by origin (system, user, group) */
555
+ origin?: string;
556
+ };
557
+ header?: never;
558
+ path?: never;
559
+ cookie?: never;
560
+ };
561
+ requestBody?: never;
562
+ responses: {
563
+ /** @description OK */
564
+ 200: {
565
+ headers: {
566
+ [name: string]: unknown;
567
+ };
568
+ content: {
569
+ "application/json": null | components["schemas"]["SchemaAnnotationTypeSummary"][];
570
+ };
571
+ };
572
+ };
573
+ };
574
+ listAnnotations: {
575
+ parameters: {
576
+ query: {
577
+ /** @description Session ID to filter annotations */
578
+ session_id: string;
579
+ };
580
+ header?: never;
581
+ path?: never;
582
+ cookie?: never;
583
+ };
584
+ requestBody?: never;
585
+ responses: {
586
+ /** @description OK */
587
+ 200: {
588
+ headers: {
589
+ [name: string]: unknown;
590
+ };
591
+ content: {
592
+ "application/json": null | components["schemas"]["SchemaAnnotationSummary"][];
593
+ };
594
+ };
595
+ };
596
+ };
597
+ createAnnotation: {
598
+ parameters: {
599
+ query?: never;
600
+ header?: never;
601
+ path?: never;
602
+ cookie?: never;
603
+ };
604
+ requestBody?: {
605
+ content: {
606
+ "application/json": components["schemas"]["SchemaCreateAnnotationRequest"];
607
+ };
608
+ };
609
+ responses: {
610
+ /** @description Created */
611
+ 201: {
612
+ headers: {
613
+ [name: string]: unknown;
614
+ };
615
+ content: {
616
+ "application/json": components["schemas"]["SchemaCreateAnnotationResponse"];
617
+ };
618
+ };
619
+ };
620
+ };
621
+ getMockConfig: {
622
+ parameters: {
623
+ query?: never;
624
+ header?: never;
625
+ path?: never;
626
+ cookie?: never;
627
+ };
628
+ requestBody?: never;
629
+ responses: {
630
+ /** @description OK */
631
+ 200: {
632
+ headers: {
633
+ [name: string]: unknown;
634
+ };
635
+ content: {
636
+ "application/json": components["schemas"]["SchemaMockConfigResponse"];
637
+ };
638
+ };
639
+ };
640
+ };
641
+ getHealth: {
642
+ parameters: {
643
+ query?: never;
644
+ header?: never;
645
+ path?: never;
646
+ cookie?: never;
647
+ };
648
+ requestBody?: never;
649
+ responses: {
650
+ /** @description OK */
651
+ 200: {
652
+ headers: {
653
+ [name: string]: unknown;
654
+ };
655
+ content: {
656
+ "application/json": components["schemas"]["SchemaHealthResponse"];
657
+ };
658
+ };
659
+ };
660
+ };
661
+ getMapGraph: {
662
+ parameters: {
663
+ query?: {
664
+ /** @description Optional commit SHA to build the graph at (default HEAD) */
665
+ commit?: string;
666
+ };
667
+ header?: never;
668
+ path: {
669
+ /** @description Opaque project hash */
670
+ projectHash: components["schemas"]["SchemaProjectHash"];
671
+ };
672
+ cookie?: never;
673
+ };
674
+ requestBody?: never;
675
+ responses: {
676
+ /** @description OK */
677
+ 200: {
678
+ headers: {
679
+ [name: string]: unknown;
680
+ };
681
+ content: {
682
+ "application/json": components["schemas"]["SchemaMapGraphPayload"];
683
+ };
684
+ };
685
+ };
686
+ };
687
+ getMapNodeDetail: {
688
+ parameters: {
689
+ query: {
690
+ /** @description Repo-relative node ID */
691
+ path: string;
692
+ };
693
+ header?: never;
694
+ path: {
695
+ /** @description Opaque project hash */
696
+ projectHash: components["schemas"]["SchemaProjectHash"];
697
+ };
698
+ cookie?: never;
699
+ };
700
+ requestBody?: never;
701
+ responses: {
702
+ /** @description OK */
703
+ 200: {
704
+ headers: {
705
+ [name: string]: unknown;
706
+ };
707
+ content: {
708
+ "application/json": components["schemas"]["SchemaMapNodeDetailPayload"];
709
+ };
710
+ };
711
+ };
712
+ };
713
+ listProjectTasks: {
714
+ parameters: {
715
+ query?: {
716
+ /** @description Optional file or directory filter */
717
+ file?: string;
718
+ };
719
+ header?: never;
720
+ path: {
721
+ /** @description Opaque project hash */
722
+ projectHash: components["schemas"]["SchemaProjectHash"];
723
+ };
724
+ cookie?: never;
725
+ };
726
+ requestBody?: never;
727
+ responses: {
728
+ /** @description OK */
729
+ 200: {
730
+ headers: {
731
+ [name: string]: unknown;
732
+ };
733
+ content: {
734
+ "application/json": components["schemas"]["SchemaProjectTasksPayload"];
735
+ };
736
+ };
737
+ };
738
+ };
739
+ resolveProject: {
740
+ parameters: {
741
+ query: {
742
+ /** @description Exact project display identity from a saved route */
743
+ name: string;
744
+ };
745
+ header?: never;
746
+ path?: never;
747
+ cookie?: never;
748
+ };
749
+ requestBody?: never;
750
+ responses: {
751
+ /** @description OK */
752
+ 200: {
753
+ headers: {
754
+ [name: string]: unknown;
755
+ };
756
+ content: {
757
+ "application/json": components["schemas"]["SchemaProjectResolutionPayload"];
758
+ };
759
+ };
760
+ };
761
+ };
762
+ listProjectSummaries: {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
768
+ };
769
+ requestBody?: never;
770
+ responses: {
771
+ /** @description OK */
772
+ 200: {
773
+ headers: {
774
+ [name: string]: unknown;
775
+ };
776
+ content: {
777
+ "application/json": components["schemas"]["SchemaProjectSummariesPayload"];
778
+ };
779
+ };
780
+ };
781
+ };
782
+ listReviewChanges: {
783
+ parameters: {
784
+ query?: never;
785
+ header?: never;
786
+ path: {
787
+ /** @description Opaque project hash */
788
+ projectHash: components["schemas"]["SchemaProjectHash"];
789
+ };
790
+ cookie?: never;
791
+ };
792
+ requestBody?: never;
793
+ responses: {
794
+ /** @description OK */
795
+ 200: {
796
+ headers: {
797
+ [name: string]: unknown;
798
+ };
799
+ content: {
800
+ "application/json": components["schemas"]["SchemaReviewListPayload"];
801
+ };
802
+ };
803
+ };
804
+ };
805
+ getChangeDetail: {
806
+ parameters: {
807
+ query: {
808
+ /** @description Branch name (may contain slashes) */
809
+ branch: string;
810
+ };
811
+ header?: never;
812
+ path: {
813
+ /** @description Opaque project hash */
814
+ projectHash: components["schemas"]["SchemaProjectHash"];
815
+ };
816
+ cookie?: never;
817
+ };
818
+ requestBody?: never;
819
+ responses: {
820
+ /** @description OK */
821
+ 200: {
822
+ headers: {
823
+ [name: string]: unknown;
824
+ };
825
+ content: {
826
+ "application/json": components["schemas"]["SchemaChangeDetailPayload"];
827
+ };
828
+ };
829
+ };
830
+ };
831
+ getChangeDiff: {
832
+ parameters: {
833
+ query: {
834
+ /** @description Branch name (may contain slashes) */
835
+ branch: string;
836
+ /** @description Repo-relative file path */
837
+ file: string;
838
+ };
839
+ header?: never;
840
+ path: {
841
+ /** @description Opaque project hash */
842
+ projectHash: components["schemas"]["SchemaProjectHash"];
843
+ };
844
+ cookie?: never;
845
+ };
846
+ requestBody?: never;
847
+ responses: {
848
+ /** @description OK */
849
+ 200: {
850
+ headers: {
851
+ [name: string]: unknown;
852
+ };
853
+ content: {
854
+ "application/json": components["schemas"]["SchemaChangeDiffPayload"];
855
+ };
856
+ };
857
+ };
858
+ };
859
+ searchMessages: {
860
+ parameters: {
861
+ query: {
862
+ /** @description Search query (min 2 chars; whitespace tokens ANDed) */
863
+ q: string;
864
+ /** @description Max results (default 20, capped at 50) */
865
+ limit?: number;
866
+ };
867
+ header?: never;
868
+ path?: never;
869
+ cookie?: never;
870
+ };
871
+ requestBody?: never;
872
+ responses: {
873
+ /** @description OK */
874
+ 200: {
875
+ headers: {
876
+ [name: string]: unknown;
877
+ };
878
+ content: {
879
+ "application/json": components["schemas"]["SchemaSearchPayload"];
880
+ };
881
+ };
882
+ };
883
+ };
884
+ listSessions: {
885
+ parameters: {
886
+ query?: never;
887
+ header?: never;
888
+ path?: never;
889
+ cookie?: never;
890
+ };
891
+ requestBody?: never;
892
+ responses: {
893
+ /** @description OK */
894
+ 200: {
895
+ headers: {
896
+ [name: string]: unknown;
897
+ };
898
+ content: {
899
+ "application/json": components["schemas"]["SchemaSessionsPayload"];
900
+ };
901
+ };
902
+ };
903
+ };
904
+ getSession: {
905
+ parameters: {
906
+ query?: never;
907
+ header?: never;
908
+ path: {
909
+ id: string;
910
+ };
911
+ cookie?: never;
912
+ };
913
+ requestBody?: never;
914
+ responses: {
915
+ /** @description OK */
916
+ 200: {
917
+ headers: {
918
+ [name: string]: unknown;
919
+ };
920
+ content: {
921
+ "application/json": components["schemas"]["SchemaSessionDetailPayload"];
922
+ };
923
+ };
924
+ };
925
+ };
926
+ postShutdown: {
927
+ parameters: {
928
+ query?: never;
929
+ header?: never;
930
+ path?: never;
931
+ cookie?: never;
932
+ };
933
+ requestBody?: never;
934
+ responses: {
935
+ /** @description OK */
936
+ 200: {
937
+ headers: {
938
+ [name: string]: unknown;
939
+ };
940
+ content: {
941
+ "application/json": components["schemas"]["SchemaShutdownResponse"];
942
+ };
943
+ };
944
+ };
945
+ };
946
+ }