@ttsc/graph 0.17.2 → 0.17.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.
@@ -115,16 +115,16 @@ function createServer(graph, version) {
115
115
  ITtscGraphDecorator: {
116
116
  type: "object",
117
117
  properties: {
118
+ name: {
119
+ type: "string",
120
+ description: "The decorator name as written, qualified through its access path:\n`Controller`, `Get`, `TypedRoute.Get`, `MessagePattern`."
121
+ },
118
122
  arguments: {
119
123
  type: "array",
120
124
  items: {
121
125
  $ref: "#/$defs/ITtscGraphDecorator.IArgument"
122
126
  },
123
127
  description: "The literal call arguments, in source order. Empty for a bare decorator."
124
- },
125
- name: {
126
- type: "string",
127
- description: "The decorator name as written, qualified through its access path:\n`Controller`, `Get`, `TypedRoute.Get`, `MessagePattern`."
128
128
  }
129
129
  },
130
130
  required: [
@@ -166,14 +166,6 @@ function createServer(graph, version) {
166
166
  ],
167
167
  description: "Discriminator for selected symbol inspection."
168
168
  },
169
- guide: {
170
- type: "string",
171
- description: "Human-readable compatibility note mirroring `next`."
172
- },
173
- next: {
174
- $ref: "#/$defs/ITtscGraphNext",
175
- description: "How to use this source-free result next."
176
- },
177
169
  nodes: {
178
170
  type: "array",
179
171
  items: {
@@ -181,6 +173,14 @@ function createServer(graph, version) {
181
173
  },
182
174
  description: "Selected node facts, in the same order as resolved handles when possible."
183
175
  },
176
+ next: {
177
+ $ref: "#/$defs/ITtscGraphNext",
178
+ description: "How to use this source-free result next."
179
+ },
180
+ guide: {
181
+ type: "string",
182
+ description: "Human-readable compatibility note mirroring `next`."
183
+ },
184
184
  unknown: {
185
185
  type: "array",
186
186
  items: {
@@ -202,12 +202,9 @@ function createServer(graph, version) {
202
202
  "ITtscGraphDetails.IMember": {
203
203
  type: "object",
204
204
  properties: {
205
- decorators: {
206
- type: "array",
207
- items: {
208
- $ref: "#/$defs/ITtscGraphDecorator"
209
- },
210
- description: "Decorators written on this member, when any."
205
+ name: {
206
+ type: "string",
207
+ description: "Member name, qualified when the graph records an owner-qualified handle."
211
208
  },
212
209
  kind: {
213
210
  type: "string",
@@ -217,13 +214,16 @@ function createServer(graph, version) {
217
214
  type: "number",
218
215
  description: "1-based declaration line, when known."
219
216
  },
220
- name: {
221
- type: "string",
222
- description: "Member name, qualified when the graph records an owner-qualified handle."
223
- },
224
217
  signature: {
225
218
  type: "string",
226
219
  description: "The member's declaration signature."
220
+ },
221
+ decorators: {
222
+ type: "array",
223
+ items: {
224
+ $ref: "#/$defs/ITtscGraphDecorator"
225
+ },
226
+ description: "Decorators written on this member, when any."
227
227
  }
228
228
  },
229
229
  required: [
@@ -236,12 +236,29 @@ function createServer(graph, version) {
236
236
  "ITtscGraphDetails.INode": {
237
237
  type: "object",
238
238
  properties: {
239
- calls: {
240
- type: "array",
241
- items: {
242
- $ref: "#/$defs/ITtscGraphDetails.IReference"
243
- },
244
- description: "Direct execution dependencies in source order, with edge evidence."
239
+ id: {
240
+ type: "string",
241
+ description: "Stable node id for subsequent `details` or `trace` calls."
242
+ },
243
+ name: {
244
+ type: "string",
245
+ description: "Qualified symbol name when available, otherwise the simple name."
246
+ },
247
+ kind: {
248
+ type: "string",
249
+ description: "Declaration kind (`class`, `method`, `function`, ...)."
250
+ },
251
+ file: {
252
+ type: "string",
253
+ description: "Project-relative path of the file that declares this node."
254
+ },
255
+ line: {
256
+ type: "number",
257
+ description: "1-based declaration line, when known."
258
+ },
259
+ signature: {
260
+ type: "string",
261
+ description: "The declaration signature: its first line(s) up to the body."
245
262
  },
246
263
  decorators: {
247
264
  type: "array",
@@ -250,31 +267,23 @@ function createServer(graph, version) {
250
267
  },
251
268
  description: "Decorators written on this declaration, when any."
252
269
  },
253
- dependedOnBy: {
270
+ implementation: {
271
+ $ref: "#/$defs/ITtscGraphEvidence",
272
+ description: "Assigned implementation span, when source comes from one."
273
+ },
274
+ calls: {
254
275
  type: "array",
255
276
  items: {
256
277
  $ref: "#/$defs/ITtscGraphDetails.IReference"
257
278
  },
258
- description: "Symbols that use this node (incoming dependency edges)."
279
+ description: "Direct execution dependencies in source order, with edge evidence."
259
280
  },
260
- dependsOn: {
281
+ types: {
261
282
  type: "array",
262
283
  items: {
263
284
  $ref: "#/$defs/ITtscGraphDetails.IReference"
264
285
  },
265
- description: "Symbols this node uses (outgoing dependency edges)."
266
- },
267
- file: {
268
- type: "string",
269
- description: "Project-relative path of the file that declares this node."
270
- },
271
- id: {
272
- type: "string",
273
- description: "Stable node id for subsequent `details` or `trace` calls."
274
- },
275
- implementation: {
276
- $ref: "#/$defs/ITtscGraphEvidence",
277
- description: "Assigned implementation span, when source comes from one."
286
+ description: "Direct type dependencies in source order, with edge evidence."
278
287
  },
279
288
  implementedBy: {
280
289
  type: "array",
@@ -283,14 +292,6 @@ function createServer(graph, version) {
283
292
  },
284
293
  description: "Concrete nodes that implement or override this interface/base member."
285
294
  },
286
- kind: {
287
- type: "string",
288
- description: "Declaration kind (`class`, `method`, `function`, ...)."
289
- },
290
- line: {
291
- type: "number",
292
- description: "1-based declaration line, when known."
293
- },
294
295
  literals: {
295
296
  type: "array",
296
297
  items: {
@@ -305,24 +306,23 @@ function createServer(graph, version) {
305
306
  },
306
307
  description: "For a container or object-literal variable: the owned symbol or top-level\nproperty outline a consumer reaches for, without bodies."
307
308
  },
308
- name: {
309
- type: "string",
310
- description: "Qualified symbol name when available, otherwise the simple name."
311
- },
312
- signature: {
313
- type: "string",
314
- description: "The declaration signature: its first line(s) up to the body."
315
- },
316
309
  sourceSpan: {
317
310
  $ref: "#/$defs/PickITtscGraphEvidenceendLinefilestartLine",
318
311
  description: "Declaration or implementation citation range, when known."
319
312
  },
320
- types: {
313
+ dependsOn: {
321
314
  type: "array",
322
315
  items: {
323
316
  $ref: "#/$defs/ITtscGraphDetails.IReference"
324
317
  },
325
- description: "Direct type dependencies in source order, with edge evidence."
318
+ description: "Symbols this node uses (outgoing dependency edges)."
319
+ },
320
+ dependedOnBy: {
321
+ type: "array",
322
+ items: {
323
+ $ref: "#/$defs/ITtscGraphDetails.IReference"
324
+ },
325
+ description: "Symbols that use this node (incoming dependency edges)."
326
326
  }
327
327
  },
328
328
  required: [
@@ -337,40 +337,40 @@ function createServer(graph, version) {
337
337
  "ITtscGraphDetails.IReference": {
338
338
  type: "object",
339
339
  properties: {
340
- aliases: {
341
- type: "array",
342
- items: {
343
- type: "string"
344
- },
345
- description: "Stable access-path aliases derived from edge evidence. For example, an\nedge to `Owner.member` through `obj.slot.member` may expose\n`Owner.slot.member` so answers can preserve both the resolved symbol and\nthe source access path."
346
- },
347
- evidence: {
348
- $ref: "#/$defs/ITtscGraphEvidence",
349
- description: "Source span for the expression that produced this relationship. It is\nrepository evidence for the edge, not a file-read instruction."
350
- },
351
- file: {
352
- type: "string",
353
- description: "Project-relative declaration file for the neighbor."
354
- },
355
340
  id: {
356
341
  type: "string",
357
342
  description: "Stable id of the neighboring node."
358
343
  },
344
+ name: {
345
+ type: "string",
346
+ description: "Neighbor symbol name, qualified when available."
347
+ },
359
348
  kind: {
360
349
  type: "string",
361
350
  description: "Neighbor declaration kind."
362
351
  },
352
+ file: {
353
+ type: "string",
354
+ description: "Project-relative declaration file for the neighbor."
355
+ },
363
356
  line: {
364
357
  type: "number",
365
358
  description: "1-based declaration line, when known."
366
359
  },
367
- name: {
368
- type: "string",
369
- description: "Neighbor symbol name, qualified when available."
370
- },
371
360
  relation: {
372
361
  type: "string",
373
362
  description: "The edge kind connecting the two (`calls`, `type_ref`, ...)."
363
+ },
364
+ evidence: {
365
+ $ref: "#/$defs/ITtscGraphEvidence",
366
+ description: "Source span for the expression that produced this relationship. It is\nrepository evidence for the edge, not a file-read instruction."
367
+ },
368
+ aliases: {
369
+ type: "array",
370
+ items: {
371
+ type: "string"
372
+ },
373
+ description: "Stable access-path aliases derived from edge evidence. For example, an\nedge to `Owner.member` through `obj.slot.member` may expose\n`Owner.slot.member` so answers can preserve both the resolved symbol and\nthe source access path."
374
374
  }
375
375
  },
376
376
  required: [
@@ -393,9 +393,9 @@ function createServer(graph, version) {
393
393
  ],
394
394
  description: "Discriminator for first-pass question indexing."
395
395
  },
396
- guide: {
396
+ query: {
397
397
  type: "string",
398
- description: "Human-readable compatibility note mirroring `next`."
398
+ description: "The original question/search phrase the entrypoints were built for."
399
399
  },
400
400
  hits: {
401
401
  type: "array",
@@ -422,9 +422,9 @@ function createServer(graph, version) {
422
422
  $ref: "#/$defs/ITtscGraphNext",
423
423
  description: "How to use this source-free result next."
424
424
  },
425
- query: {
425
+ guide: {
426
426
  type: "string",
427
- description: "The original question/search phrase the entrypoints were built for."
427
+ description: "Human-readable compatibility note mirroring `next`."
428
428
  },
429
429
  truncated: {
430
430
  type: "boolean",
@@ -446,40 +446,40 @@ function createServer(graph, version) {
446
446
  "ITtscGraphEntrypoints.IHit": {
447
447
  type: "object",
448
448
  properties: {
449
- decorators: {
450
- type: "array",
451
- items: {
452
- $ref: "#/$defs/ITtscGraphDecorator"
453
- },
454
- description: "Decorators written on this declaration, when any."
455
- },
456
- file: {
457
- type: "string",
458
- description: "Project-relative path of the declaration file."
459
- },
460
449
  id: {
461
450
  type: "string",
462
451
  description: "Stable node id for subsequent graph calls."
463
452
  },
453
+ name: {
454
+ type: "string",
455
+ description: "Qualified symbol name when available, otherwise the simple name."
456
+ },
464
457
  kind: {
465
458
  type: "string",
466
459
  description: "Declaration kind (`class`, `method`, `function`, ...)."
467
460
  },
461
+ file: {
462
+ type: "string",
463
+ description: "Project-relative path of the declaration file."
464
+ },
468
465
  line: {
469
466
  type: "number",
470
467
  description: "1-based declaration line, when known."
471
468
  },
472
- name: {
469
+ signature: {
473
470
  type: "string",
474
- description: "Qualified symbol name when available, otherwise the simple name."
471
+ description: "Declaration head, included only for indexed symbols."
472
+ },
473
+ decorators: {
474
+ type: "array",
475
+ items: {
476
+ $ref: "#/$defs/ITtscGraphDecorator"
477
+ },
478
+ description: "Decorators written on this declaration, when any."
475
479
  },
476
480
  score: {
477
481
  type: "number",
478
482
  description: "Relative relevance; higher is a better match."
479
- },
480
- signature: {
481
- type: "string",
482
- description: "Declaration head, included only for indexed symbols."
483
483
  }
484
484
  },
485
485
  required: [
@@ -495,13 +495,6 @@ function createServer(graph, version) {
495
495
  "ITtscGraphEntrypoints.IMention": {
496
496
  type: "object",
497
497
  properties: {
498
- candidates: {
499
- type: "array",
500
- items: {
501
- $ref: "#/$defs/ITtscGraphEntrypoints.INode"
502
- },
503
- description: "Candidate nodes when the handle is ambiguous."
504
- },
505
498
  handle: {
506
499
  type: "string",
507
500
  description: "The exact handle text found in the query."
@@ -509,6 +502,13 @@ function createServer(graph, version) {
509
502
  node: {
510
503
  $ref: "#/$defs/ITtscGraphEntrypoints.INode",
511
504
  description: "Resolved node when the handle maps unambiguously."
505
+ },
506
+ candidates: {
507
+ type: "array",
508
+ items: {
509
+ $ref: "#/$defs/ITtscGraphEntrypoints.INode"
510
+ },
511
+ description: "Candidate nodes when the handle is ambiguous."
512
512
  }
513
513
  },
514
514
  required: [
@@ -520,6 +520,30 @@ function createServer(graph, version) {
520
520
  "ITtscGraphEntrypoints.INeighborhood": {
521
521
  type: "object",
522
522
  properties: {
523
+ id: {
524
+ type: "string",
525
+ description: "Stable node id for subsequent graph calls."
526
+ },
527
+ name: {
528
+ type: "string",
529
+ description: "Qualified symbol name when available, otherwise the simple name."
530
+ },
531
+ kind: {
532
+ type: "string",
533
+ description: "Declaration kind (`class`, `method`, `function`, ...)."
534
+ },
535
+ file: {
536
+ type: "string",
537
+ description: "Project-relative path of the declaration file."
538
+ },
539
+ line: {
540
+ type: "number",
541
+ description: "1-based declaration line, when known."
542
+ },
543
+ signature: {
544
+ type: "string",
545
+ description: "Declaration head, included only for indexed symbols."
546
+ },
523
547
  decorators: {
524
548
  type: "array",
525
549
  items: {
@@ -527,43 +551,19 @@ function createServer(graph, version) {
527
551
  },
528
552
  description: "Decorators written on this declaration, when any."
529
553
  },
530
- dependedOnBy: {
554
+ dependsOn: {
531
555
  type: "array",
532
556
  items: {
533
557
  $ref: "#/$defs/ITtscGraphEntrypoints.IReference"
534
558
  },
535
- description: "Symbols that directly use this node, capped by `neighbors`."
559
+ description: "Symbols this node directly uses, capped by `neighbors`."
536
560
  },
537
- dependsOn: {
561
+ dependedOnBy: {
538
562
  type: "array",
539
563
  items: {
540
564
  $ref: "#/$defs/ITtscGraphEntrypoints.IReference"
541
565
  },
542
- description: "Symbols this node directly uses, capped by `neighbors`."
543
- },
544
- file: {
545
- type: "string",
546
- description: "Project-relative path of the declaration file."
547
- },
548
- id: {
549
- type: "string",
550
- description: "Stable node id for subsequent graph calls."
551
- },
552
- kind: {
553
- type: "string",
554
- description: "Declaration kind (`class`, `method`, `function`, ...)."
555
- },
556
- line: {
557
- type: "number",
558
- description: "1-based declaration line, when known."
559
- },
560
- name: {
561
- type: "string",
562
- description: "Qualified symbol name when available, otherwise the simple name."
563
- },
564
- signature: {
565
- type: "string",
566
- description: "Declaration head, included only for indexed symbols."
566
+ description: "Symbols that directly use this node, capped by `neighbors`."
567
567
  }
568
568
  },
569
569
  required: [
@@ -580,36 +580,36 @@ function createServer(graph, version) {
580
580
  "ITtscGraphEntrypoints.INode": {
581
581
  type: "object",
582
582
  properties: {
583
- decorators: {
584
- type: "array",
585
- items: {
586
- $ref: "#/$defs/ITtscGraphDecorator"
587
- },
588
- description: "Decorators written on this declaration, when any."
589
- },
590
- file: {
591
- type: "string",
592
- description: "Project-relative path of the declaration file."
593
- },
594
583
  id: {
595
584
  type: "string",
596
585
  description: "Stable node id for subsequent graph calls."
597
586
  },
587
+ name: {
588
+ type: "string",
589
+ description: "Qualified symbol name when available, otherwise the simple name."
590
+ },
598
591
  kind: {
599
592
  type: "string",
600
593
  description: "Declaration kind (`class`, `method`, `function`, ...)."
601
594
  },
595
+ file: {
596
+ type: "string",
597
+ description: "Project-relative path of the declaration file."
598
+ },
602
599
  line: {
603
600
  type: "number",
604
601
  description: "1-based declaration line, when known."
605
602
  },
606
- name: {
607
- type: "string",
608
- description: "Qualified symbol name when available, otherwise the simple name."
609
- },
610
603
  signature: {
611
604
  type: "string",
612
605
  description: "Declaration head, included only for indexed symbols."
606
+ },
607
+ decorators: {
608
+ type: "array",
609
+ items: {
610
+ $ref: "#/$defs/ITtscGraphDecorator"
611
+ },
612
+ description: "Decorators written on this declaration, when any."
613
613
  }
614
614
  },
615
615
  required: [
@@ -624,33 +624,33 @@ function createServer(graph, version) {
624
624
  "ITtscGraphEntrypoints.IReference": {
625
625
  type: "object",
626
626
  properties: {
627
- evidence: {
628
- $ref: "#/$defs/ITtscGraphEvidence",
629
- description: "Source span for the expression that produced this relationship. It lets\nan agent see why the edge exists without opening the file."
630
- },
631
- file: {
632
- type: "string",
633
- description: "Project-relative declaration file for the neighbor."
634
- },
635
627
  id: {
636
628
  type: "string",
637
629
  description: "Stable id of the neighboring node."
638
630
  },
631
+ name: {
632
+ type: "string",
633
+ description: "Neighbor symbol name, qualified when available."
634
+ },
639
635
  kind: {
640
636
  type: "string",
641
637
  description: "Neighbor declaration kind."
642
638
  },
639
+ file: {
640
+ type: "string",
641
+ description: "Project-relative declaration file for the neighbor."
642
+ },
643
643
  line: {
644
644
  type: "number",
645
645
  description: "1-based declaration line, when known."
646
646
  },
647
- name: {
648
- type: "string",
649
- description: "Neighbor symbol name, qualified when available."
650
- },
651
647
  relation: {
652
648
  type: "string",
653
649
  description: "Edge kind connecting the indexed node and this neighbor."
650
+ },
651
+ evidence: {
652
+ $ref: "#/$defs/ITtscGraphEvidence",
653
+ description: "Source span for the expression that produced this relationship. It lets\nan agent see why the edge exists without opening the file."
654
654
  }
655
655
  },
656
656
  required: [
@@ -673,28 +673,28 @@ function createServer(graph, version) {
673
673
  ],
674
674
  description: "Discriminator for the no-op escape route."
675
675
  },
676
- guide: {
676
+ skipped: {
677
+ type: "boolean",
678
+ "enum": [
679
+ true
680
+ ],
681
+ description: "Always true so callers can distinguish an intentional no-op."
682
+ },
683
+ reason: {
677
684
  type: "string",
678
- description: "Human-readable compatibility note mirroring `next`."
685
+ description: "Why no graph operation should run."
679
686
  },
680
687
  next: {
681
688
  $ref: "#/$defs/ITtscGraphNext",
682
689
  description: "How to proceed after skipping graph work."
683
690
  },
684
- nextStep: {
691
+ guide: {
685
692
  type: "string",
686
- description: "Optional note about the next non-graph step."
693
+ description: "Human-readable compatibility note mirroring `next`."
687
694
  },
688
- reason: {
695
+ nextStep: {
689
696
  type: "string",
690
- description: "Why no graph operation should run."
691
- },
692
- skipped: {
693
- type: "boolean",
694
- "enum": [
695
- true
696
- ],
697
- description: "Always true so callers can distinguish an intentional no-op."
697
+ description: "Optional note about the next non-graph step."
698
698
  }
699
699
  },
700
700
  required: [
@@ -710,25 +710,25 @@ function createServer(graph, version) {
710
710
  ITtscGraphEvidence: {
711
711
  type: "object",
712
712
  properties: {
713
- endCol: {
714
- type: "number",
715
- description: "1-based column where the span ends, when known."
716
- },
717
- endLine: {
718
- type: "number",
719
- description: "1-based line where the span ends, when it differs from `startLine`."
720
- },
721
713
  file: {
722
714
  type: "string",
723
715
  description: "Project-relative path of the file the span lives in."
724
716
  },
717
+ startLine: {
718
+ type: "number",
719
+ description: "1-based line where the span starts."
720
+ },
725
721
  startCol: {
726
722
  type: "number",
727
723
  description: "1-based column where the span starts, when known."
728
724
  },
729
- startLine: {
725
+ endLine: {
730
726
  type: "number",
731
- description: "1-based line where the span starts."
727
+ description: "1-based line where the span ends, when it differs from `startLine`."
728
+ },
729
+ endCol: {
730
+ type: "number",
731
+ description: "1-based column where the span ends, when known."
732
732
  }
733
733
  },
734
734
  required: [
@@ -745,12 +745,8 @@ function createServer(graph, version) {
745
745
  type: "string",
746
746
  "enum": [
747
747
  "lookup"
748
- ],
749
- description: "Discriminator for targeted symbol lookup."
750
- },
751
- guide: {
752
- type: "string",
753
- description: "Human-readable compatibility note mirroring `next`."
748
+ ],
749
+ description: "Discriminator for targeted symbol lookup."
754
750
  },
755
751
  hits: {
756
752
  type: "array",
@@ -762,6 +758,10 @@ function createServer(graph, version) {
762
758
  next: {
763
759
  $ref: "#/$defs/ITtscGraphNext",
764
760
  description: "How to use this source-free result next."
761
+ },
762
+ guide: {
763
+ type: "string",
764
+ description: "Human-readable compatibility note mirroring `next`."
765
765
  }
766
766
  },
767
767
  required: [
@@ -776,40 +776,40 @@ function createServer(graph, version) {
776
776
  "ITtscGraphLookup.IHit": {
777
777
  type: "object",
778
778
  properties: {
779
- decorators: {
780
- type: "array",
781
- items: {
782
- $ref: "#/$defs/ITtscGraphDecorator"
783
- },
784
- description: "Decorators written on this declaration, when any."
785
- },
786
- file: {
787
- type: "string",
788
- description: "Project-relative path of the declaration file."
789
- },
790
779
  id: {
791
780
  type: "string",
792
781
  description: "Stable node id for subsequent graph calls."
793
782
  },
783
+ name: {
784
+ type: "string",
785
+ description: "Qualified symbol name when available, otherwise the simple name."
786
+ },
794
787
  kind: {
795
788
  type: "string",
796
789
  description: "Declaration kind (`class`, `method`, `function`, ...)."
797
790
  },
791
+ file: {
792
+ type: "string",
793
+ description: "Project-relative path of the declaration file."
794
+ },
798
795
  line: {
799
796
  type: "number",
800
797
  description: "1-based declaration line, when known."
801
798
  },
802
- name: {
799
+ signature: {
803
800
  type: "string",
804
- description: "Qualified symbol name when available, otherwise the simple name."
801
+ description: "The hit's declaration signature, so you can often answer without\nrequesting details."
802
+ },
803
+ decorators: {
804
+ type: "array",
805
+ items: {
806
+ $ref: "#/$defs/ITtscGraphDecorator"
807
+ },
808
+ description: "Decorators written on this declaration, when any."
805
809
  },
806
810
  score: {
807
811
  type: "number",
808
812
  description: "Relative relevance; higher is a better match."
809
- },
810
- signature: {
811
- type: "string",
812
- description: "The hit's declaration signature, so you can often answer without\nrequesting details."
813
813
  }
814
814
  },
815
815
  required: [
@@ -835,10 +835,6 @@ function createServer(graph, version) {
835
835
  ],
836
836
  description: "Answer, continue graph inspection, leave graph, or clarify.\n\n`answer` means the returned graph result already carries the evidence\ncontract for the current question, even when the slice is capped. Do not\ncall graph again or read files to re-check or complete it."
837
837
  },
838
- reason: {
839
- type: "string",
840
- description: "Why the returned graph evidence supports that action."
841
- },
842
838
  request: {
843
839
  type: "string",
844
840
  "enum": [
@@ -850,6 +846,10 @@ function createServer(graph, version) {
850
846
  "trace"
851
847
  ],
852
848
  description: "Smallest graph request type to use when `action` is `inspect`."
849
+ },
850
+ reason: {
851
+ type: "string",
852
+ description: "Why the returned graph evidence supports that action."
853
853
  }
854
854
  },
855
855
  required: [
@@ -869,21 +869,22 @@ function createServer(graph, version) {
869
869
  ],
870
870
  description: "Discriminator for source-free project overview."
871
871
  },
872
+ project: {
873
+ type: "string",
874
+ description: "Absolute project root."
875
+ },
872
876
  counts: {
873
877
  $ref: "#/$defs/ITtscGraphOverview.ICounts",
874
878
  description: "Size of the graph."
875
879
  },
880
+ next: {
881
+ $ref: "#/$defs/ITtscGraphNext",
882
+ description: "How to use this source-free result next."
883
+ },
876
884
  guide: {
877
885
  type: "string",
878
886
  description: "Human-readable compatibility note mirroring `next`."
879
887
  },
880
- hotspots: {
881
- type: "array",
882
- items: {
883
- $ref: "#/$defs/ITtscGraphOverview.IHotspot"
884
- },
885
- description: "Highest-dependency symbols, busiest first."
886
- },
887
888
  layers: {
888
889
  type: "array",
889
890
  items: {
@@ -891,13 +892,12 @@ function createServer(graph, version) {
891
892
  },
892
893
  description: "Folder layering, largest first."
893
894
  },
894
- next: {
895
- $ref: "#/$defs/ITtscGraphNext",
896
- description: "How to use this source-free result next."
897
- },
898
- project: {
899
- type: "string",
900
- description: "Absolute project root."
895
+ hotspots: {
896
+ type: "array",
897
+ items: {
898
+ $ref: "#/$defs/ITtscGraphOverview.IHotspot"
899
+ },
900
+ description: "Highest-dependency symbols, busiest first."
901
901
  },
902
902
  publicApi: {
903
903
  type: "array",
@@ -920,14 +920,6 @@ function createServer(graph, version) {
920
920
  "ITtscGraphOverview.ICounts": {
921
921
  type: "object",
922
922
  properties: {
923
- byKind: {
924
- $ref: "#/$defs/Recordstringnumber",
925
- description: "Node count per kind."
926
- },
927
- edges: {
928
- type: "number",
929
- description: "Total edge count, including structural edges."
930
- },
931
923
  files: {
932
924
  type: "number",
933
925
  description: "Number of source file container nodes."
@@ -935,6 +927,14 @@ function createServer(graph, version) {
935
927
  nodes: {
936
928
  type: "number",
937
929
  description: "Total node count, including declarations and file containers."
930
+ },
931
+ edges: {
932
+ type: "number",
933
+ description: "Total edge count, including structural edges."
934
+ },
935
+ byKind: {
936
+ $ref: "#/$defs/Recordstringnumber",
937
+ description: "Node count per kind."
938
938
  }
939
939
  },
940
940
  required: [
@@ -949,33 +949,33 @@ function createServer(graph, version) {
949
949
  "ITtscGraphOverview.IHotspot": {
950
950
  type: "object",
951
951
  properties: {
952
- fanIn: {
953
- type: "number",
954
- description: "Non-structural edges pointing at this symbol."
955
- },
956
- fanOut: {
957
- type: "number",
958
- description: "Non-structural edges leaving this symbol."
959
- },
960
- file: {
961
- type: "string",
962
- description: "Project-relative path of the file that declares it."
963
- },
964
952
  id: {
965
953
  type: "string",
966
954
  description: "Stable handle for `details` or `trace`."
967
955
  },
956
+ name: {
957
+ type: "string",
958
+ description: "The symbol's qualified name when available."
959
+ },
968
960
  kind: {
969
961
  type: "string",
970
962
  description: "Its declaration kind (`class`, `interface`, `function`, ...)."
971
963
  },
964
+ file: {
965
+ type: "string",
966
+ description: "Project-relative path of the file that declares it."
967
+ },
972
968
  line: {
973
969
  type: "number",
974
970
  description: "1-based declaration line, when known."
975
971
  },
976
- name: {
977
- type: "string",
978
- description: "The symbol's qualified name when available."
972
+ fanIn: {
973
+ type: "number",
974
+ description: "Non-structural edges pointing at this symbol."
975
+ },
976
+ fanOut: {
977
+ type: "number",
978
+ description: "Non-structural edges leaving this symbol."
979
979
  }
980
980
  },
981
981
  required: [
@@ -996,13 +996,13 @@ function createServer(graph, version) {
996
996
  type: "string",
997
997
  description: "Directory, project-relative."
998
998
  },
999
- exported: {
1000
- type: "number",
1001
- description: "Exported symbols declared under it."
1002
- },
1003
999
  files: {
1004
1000
  type: "number",
1005
1001
  description: "Distinct source files under it."
1002
+ },
1003
+ exported: {
1004
+ type: "number",
1005
+ description: "Exported symbols declared under it."
1006
1006
  }
1007
1007
  },
1008
1008
  required: [
@@ -1016,25 +1016,25 @@ function createServer(graph, version) {
1016
1016
  "ITtscGraphOverview.INode": {
1017
1017
  type: "object",
1018
1018
  properties: {
1019
- file: {
1020
- type: "string",
1021
- description: "Project-relative path of the file that declares it."
1022
- },
1023
1019
  id: {
1024
1020
  type: "string",
1025
1021
  description: "Stable handle for `details` or `trace`."
1026
1022
  },
1023
+ name: {
1024
+ type: "string",
1025
+ description: "The symbol's qualified name when available."
1026
+ },
1027
1027
  kind: {
1028
1028
  type: "string",
1029
1029
  description: "Its declaration kind (`class`, `interface`, `function`, ...)."
1030
1030
  },
1031
+ file: {
1032
+ type: "string",
1033
+ description: "Project-relative path of the file that declares it."
1034
+ },
1031
1035
  line: {
1032
1036
  type: "number",
1033
1037
  description: "1-based declaration line, when known."
1034
- },
1035
- name: {
1036
- type: "string",
1037
- description: "The symbol's qualified name when available."
1038
1038
  }
1039
1039
  },
1040
1040
  required: [
@@ -1056,12 +1056,9 @@ function createServer(graph, version) {
1056
1056
  ],
1057
1057
  description: "Discriminator for code-tour indexing."
1058
1058
  },
1059
- answerAnchors: {
1060
- type: "array",
1061
- items: {
1062
- $ref: "#/$defs/ITtscGraphTour.IAnchor"
1063
- },
1064
- description: "Ordered file/line anchors to cite in the final answer, not file reads."
1059
+ query: {
1060
+ type: "string",
1061
+ description: "Natural code question this tour was built for."
1065
1062
  },
1066
1063
  entrypoints: {
1067
1064
  type: "array",
@@ -1070,9 +1067,12 @@ function createServer(graph, version) {
1070
1067
  },
1071
1068
  description: "Central entrypoints selected for the tour."
1072
1069
  },
1073
- guide: {
1074
- type: "string",
1075
- description: "Human-readable compatibility note mirroring `next`."
1070
+ primaryFlow: {
1071
+ type: "array",
1072
+ items: {
1073
+ $ref: "#/$defs/ITtscGraphTour.IFlow"
1074
+ },
1075
+ description: "Selected primary runtime flows; sufficient for an index-level tour."
1076
1076
  },
1077
1077
  nearby: {
1078
1078
  type: "array",
@@ -1081,27 +1081,27 @@ function createServer(graph, version) {
1081
1081
  },
1082
1082
  description: "Nearby dependency anchors around the selected entrypoints."
1083
1083
  },
1084
- next: {
1085
- $ref: "#/$defs/ITtscGraphNext",
1086
- description: "How to use this source-free result next."
1087
- },
1088
- primaryFlow: {
1084
+ tests: {
1089
1085
  type: "array",
1090
1086
  items: {
1091
- $ref: "#/$defs/ITtscGraphTour.IFlow"
1087
+ $ref: "#/$defs/ITtscGraphTour.IAnchor"
1092
1088
  },
1093
- description: "Selected primary runtime flows; sufficient for an index-level tour."
1094
- },
1095
- query: {
1096
- type: "string",
1097
- description: "Natural code question this tour was built for."
1089
+ description: "Test or usage anchors reached through graph impact edges."
1098
1090
  },
1099
- tests: {
1091
+ answerAnchors: {
1100
1092
  type: "array",
1101
1093
  items: {
1102
1094
  $ref: "#/$defs/ITtscGraphTour.IAnchor"
1103
1095
  },
1104
- description: "Test or usage anchors reached through graph impact edges."
1096
+ description: "Ordered file/line anchors to cite in the final answer, not file reads."
1097
+ },
1098
+ next: {
1099
+ $ref: "#/$defs/ITtscGraphNext",
1100
+ description: "How to use this source-free result next."
1101
+ },
1102
+ guide: {
1103
+ type: "string",
1104
+ description: "Human-readable compatibility note mirroring `next`."
1105
1105
  },
1106
1106
  truncated: {
1107
1107
  type: "boolean",
@@ -1125,33 +1125,33 @@ function createServer(graph, version) {
1125
1125
  "ITtscGraphTour.IAnchor": {
1126
1126
  type: "object",
1127
1127
  properties: {
1128
- endLine: {
1129
- type: "number",
1130
- description: "1-based end line, when known."
1131
- },
1132
- file: {
1128
+ reason: {
1133
1129
  type: "string",
1134
- description: "Project-relative file."
1130
+ description: "Why this anchor matters in the tour."
1135
1131
  },
1136
1132
  id: {
1137
1133
  type: "string",
1138
1134
  description: "Stable node id when the anchor belongs to a node."
1139
1135
  },
1140
- kind: {
1141
- type: "string",
1142
- description: "Declaration kind, when this anchor belongs to a node."
1143
- },
1144
1136
  name: {
1145
1137
  type: "string",
1146
1138
  description: "Symbol, edge, or test name to show in the answer."
1147
1139
  },
1148
- reason: {
1140
+ kind: {
1149
1141
  type: "string",
1150
- description: "Why this anchor matters in the tour."
1142
+ description: "Declaration kind, when this anchor belongs to a node."
1143
+ },
1144
+ file: {
1145
+ type: "string",
1146
+ description: "Project-relative file."
1151
1147
  },
1152
1148
  startLine: {
1153
1149
  type: "number",
1154
1150
  description: "1-based start line."
1151
+ },
1152
+ endLine: {
1153
+ type: "number",
1154
+ description: "1-based end line, when known."
1155
1155
  }
1156
1156
  },
1157
1157
  required: [
@@ -1166,12 +1166,16 @@ function createServer(graph, version) {
1166
1166
  "ITtscGraphTour.IFlow": {
1167
1167
  type: "object",
1168
1168
  properties: {
1169
- anchors: {
1169
+ start: {
1170
+ $ref: "#/$defs/ITtscGraphTour.INode",
1171
+ description: "Flow start node."
1172
+ },
1173
+ steps: {
1170
1174
  type: "array",
1171
1175
  items: {
1172
- $ref: "#/$defs/ITtscGraphTour.IAnchor"
1176
+ type: "string"
1173
1177
  },
1174
- description: "Edge and node anchors that explain the flow."
1178
+ description: "Compact edge summaries in graph order."
1175
1179
  },
1176
1180
  reached: {
1177
1181
  type: "array",
@@ -1180,16 +1184,12 @@ function createServer(graph, version) {
1180
1184
  },
1181
1185
  description: "Nodes reached by this flow."
1182
1186
  },
1183
- start: {
1184
- $ref: "#/$defs/ITtscGraphTour.INode",
1185
- description: "Flow start node."
1186
- },
1187
- steps: {
1187
+ anchors: {
1188
1188
  type: "array",
1189
1189
  items: {
1190
- type: "string"
1190
+ $ref: "#/$defs/ITtscGraphTour.IAnchor"
1191
1191
  },
1192
- description: "Compact edge summaries in graph order."
1192
+ description: "Edge and node anchors that explain the flow."
1193
1193
  },
1194
1194
  truncated: {
1195
1195
  type: "boolean",
@@ -1208,40 +1208,40 @@ function createServer(graph, version) {
1208
1208
  "ITtscGraphTour.INode": {
1209
1209
  type: "object",
1210
1210
  properties: {
1211
- decorators: {
1212
- type: "array",
1213
- items: {
1214
- $ref: "#/$defs/ITtscGraphDecorator"
1215
- },
1216
- description: "Decorators written on the declaration, when any."
1217
- },
1218
- file: {
1219
- type: "string",
1220
- description: "Project-relative declaration file."
1221
- },
1222
1211
  id: {
1223
1212
  type: "string",
1224
1213
  description: "Stable node id for later graph calls."
1225
1214
  },
1215
+ name: {
1216
+ type: "string",
1217
+ description: "Qualified symbol name when available, otherwise the simple name."
1218
+ },
1226
1219
  kind: {
1227
1220
  type: "string",
1228
1221
  description: "Declaration kind (`class`, `method`, `function`, ...)."
1229
1222
  },
1223
+ file: {
1224
+ type: "string",
1225
+ description: "Project-relative declaration file."
1226
+ },
1230
1227
  line: {
1231
1228
  type: "number",
1232
1229
  description: "1-based declaration line, when known."
1233
1230
  },
1234
- name: {
1235
- type: "string",
1236
- description: "Qualified symbol name when available, otherwise the simple name."
1231
+ sourceSpan: {
1232
+ $ref: "#/$defs/ITtscGraphTour.ISpan",
1233
+ description: "Declaration or implementation range, when known."
1237
1234
  },
1238
1235
  signature: {
1239
1236
  type: "string",
1240
1237
  description: "Declaration head, when available."
1241
1238
  },
1242
- sourceSpan: {
1243
- $ref: "#/$defs/ITtscGraphTour.ISpan",
1244
- description: "Declaration or implementation range, when known."
1239
+ decorators: {
1240
+ type: "array",
1241
+ items: {
1242
+ $ref: "#/$defs/ITtscGraphDecorator"
1243
+ },
1244
+ description: "Decorators written on the declaration, when any."
1245
1245
  }
1246
1246
  },
1247
1247
  required: [
@@ -1256,10 +1256,6 @@ function createServer(graph, version) {
1256
1256
  "ITtscGraphTour.ISpan": {
1257
1257
  type: "object",
1258
1258
  properties: {
1259
- endLine: {
1260
- type: "number",
1261
- description: "1-based end line, when known."
1262
- },
1263
1259
  file: {
1264
1260
  type: "string",
1265
1261
  description: "Project-relative file."
@@ -1267,6 +1263,10 @@ function createServer(graph, version) {
1267
1263
  startLine: {
1268
1264
  type: "number",
1269
1265
  description: "1-based start line."
1266
+ },
1267
+ endLine: {
1268
+ type: "number",
1269
+ description: "1-based end line, when known."
1270
1270
  }
1271
1271
  },
1272
1272
  required: [
@@ -1286,21 +1286,14 @@ function createServer(graph, version) {
1286
1286
  ],
1287
1287
  description: "Discriminator for dependency tracing."
1288
1288
  },
1289
- candidates: {
1290
- type: "array",
1291
- items: {
1292
- $ref: "#/$defs/ITtscGraphTrace.INode"
1293
- },
1294
- description: "When `from` was an ambiguous name, the matches to disambiguate with."
1289
+ start: {
1290
+ $ref: "#/$defs/ITtscGraphTrace.INode",
1291
+ description: "The resolved start node, or undefined when `from` matched nothing."
1295
1292
  },
1296
1293
  direction: {
1297
1294
  type: "string",
1298
1295
  description: "Trace direction actually used by this result."
1299
1296
  },
1300
- guide: {
1301
- type: "string",
1302
- description: "Human-readable compatibility note mirroring `next`."
1303
- },
1304
1297
  hops: {
1305
1298
  type: "array",
1306
1299
  items: {
@@ -1308,27 +1301,27 @@ function createServer(graph, version) {
1308
1301
  },
1309
1302
  description: "Edges traversed, in breadth-first order."
1310
1303
  },
1311
- next: {
1312
- $ref: "#/$defs/ITtscGraphNext",
1313
- description: "How to use this source-free result next."
1314
- },
1315
- path: {
1304
+ reached: {
1316
1305
  type: "array",
1317
1306
  items: {
1318
1307
  $ref: "#/$defs/ITtscGraphTrace.INode"
1319
1308
  },
1320
- description: "When `to` was given: the ordered dependency path from `from` to `to`\n(`from` first, `to` last), or empty when `to` is not reachable from\n`from`."
1309
+ description: "Unique nodes reached (excluding the start), each with its depth and roles."
1321
1310
  },
1322
- reached: {
1311
+ truncated: {
1312
+ type: "boolean",
1313
+ description: "True when the trace hit maxNodes or maxDepth and more flow exists."
1314
+ },
1315
+ target: {
1316
+ $ref: "#/$defs/ITtscGraphTrace.INode",
1317
+ description: "The resolved `to` target, when a path was requested."
1318
+ },
1319
+ path: {
1323
1320
  type: "array",
1324
1321
  items: {
1325
1322
  $ref: "#/$defs/ITtscGraphTrace.INode"
1326
1323
  },
1327
- description: "Unique nodes reached (excluding the start), each with its depth and roles."
1328
- },
1329
- start: {
1330
- $ref: "#/$defs/ITtscGraphTrace.INode",
1331
- description: "The resolved start node, or undefined when `from` matched nothing."
1324
+ description: "When `to` was given: the ordered dependency path from `from` to `to`\n(`from` first, `to` last), or empty when `to` is not reachable from\n`from`."
1332
1325
  },
1333
1326
  steps: {
1334
1327
  type: "array",
@@ -1337,13 +1330,20 @@ function createServer(graph, version) {
1337
1330
  },
1338
1331
  description: "Compact hop summaries preserving node names and edge evidence, capped."
1339
1332
  },
1340
- target: {
1341
- $ref: "#/$defs/ITtscGraphTrace.INode",
1342
- description: "The resolved `to` target, when a path was requested."
1333
+ next: {
1334
+ $ref: "#/$defs/ITtscGraphNext",
1335
+ description: "How to use this source-free result next."
1343
1336
  },
1344
- truncated: {
1345
- type: "boolean",
1346
- description: "True when the trace hit maxNodes or maxDepth and more flow exists."
1337
+ guide: {
1338
+ type: "string",
1339
+ description: "Human-readable compatibility note mirroring `next`."
1340
+ },
1341
+ candidates: {
1342
+ type: "array",
1343
+ items: {
1344
+ $ref: "#/$defs/ITtscGraphTrace.INode"
1345
+ },
1346
+ description: "When `from` was an ambiguous name, the matches to disambiguate with."
1347
1347
  }
1348
1348
  },
1349
1349
  required: [
@@ -1361,12 +1361,17 @@ function createServer(graph, version) {
1361
1361
  "ITtscGraphTrace.IHop": {
1362
1362
  type: "object",
1363
1363
  properties: {
1364
- aliases: {
1365
- type: "array",
1366
- items: {
1367
- type: "string"
1368
- },
1369
- description: "Stable access-path aliases derived from edge evidence. These preserve a\nresolved member's owner and the concrete property path used at the call\nsite."
1364
+ from: {
1365
+ type: "string",
1366
+ description: "Source node id for this traversed edge."
1367
+ },
1368
+ to: {
1369
+ type: "string",
1370
+ description: "Target node id for this traversed edge."
1371
+ },
1372
+ kind: {
1373
+ type: "string",
1374
+ description: "Edge kind (`calls`, `type_ref`, `accesses`, ...)."
1370
1375
  },
1371
1376
  depth: {
1372
1377
  type: "number",
@@ -1376,17 +1381,12 @@ function createServer(graph, version) {
1376
1381
  $ref: "#/$defs/ITtscGraphEvidence",
1377
1382
  description: "Source span for the expression that produced this hop. It is repository\nevidence for the hop and can be cited without opening the file."
1378
1383
  },
1379
- from: {
1380
- type: "string",
1381
- description: "Source node id for this traversed edge."
1382
- },
1383
- kind: {
1384
- type: "string",
1385
- description: "Edge kind (`calls`, `type_ref`, `accesses`, ...)."
1386
- },
1387
- to: {
1388
- type: "string",
1389
- description: "Target node id for this traversed edge."
1384
+ aliases: {
1385
+ type: "array",
1386
+ items: {
1387
+ type: "string"
1388
+ },
1389
+ description: "Stable access-path aliases derived from edge evidence. These preserve a\nresolved member's owner and the concrete property path used at the call\nsite."
1390
1390
  }
1391
1391
  },
1392
1392
  required: [
@@ -1401,29 +1401,37 @@ function createServer(graph, version) {
1401
1401
  "ITtscGraphTrace.INode": {
1402
1402
  type: "object",
1403
1403
  properties: {
1404
- depth: {
1405
- type: "number",
1406
- description: "Hops from the start, on a reached node."
1407
- },
1408
- file: {
1409
- type: "string",
1410
- description: "Project-relative path of the declaration file."
1411
- },
1412
1404
  id: {
1413
1405
  type: "string",
1414
1406
  description: "Stable node id for subsequent graph calls."
1415
1407
  },
1408
+ name: {
1409
+ type: "string",
1410
+ description: "Qualified symbol name when available, otherwise the simple name."
1411
+ },
1416
1412
  kind: {
1417
1413
  type: "string",
1418
1414
  description: "Declaration kind (`class`, `method`, `function`, ...)."
1419
1415
  },
1416
+ file: {
1417
+ type: "string",
1418
+ description: "Project-relative path of the declaration file."
1419
+ },
1420
1420
  line: {
1421
1421
  type: "number",
1422
1422
  description: "1-based declaration line, when known."
1423
1423
  },
1424
- name: {
1424
+ sourceSpan: {
1425
+ $ref: "#/$defs/PickITtscGraphEvidenceendLinefilestartLine",
1426
+ description: "Declaration or implementation citation range, when known."
1427
+ },
1428
+ depth: {
1429
+ type: "number",
1430
+ description: "Hops from the start, on a reached node."
1431
+ },
1432
+ signature: {
1425
1433
  type: "string",
1426
- description: "Qualified symbol name when available, otherwise the simple name."
1434
+ description: "The node's signature, carried on path nodes so the path explains itself."
1427
1435
  },
1428
1436
  roles: {
1429
1437
  type: "array",
@@ -1431,14 +1439,6 @@ function createServer(graph, version) {
1431
1439
  type: "string"
1432
1440
  },
1433
1441
  description: "Why this node matters to an impact trace: `exported`, `test`."
1434
- },
1435
- signature: {
1436
- type: "string",
1437
- description: "The node's signature, carried on path nodes so the path explains itself."
1438
- },
1439
- sourceSpan: {
1440
- $ref: "#/$defs/PickITtscGraphEvidenceendLinefilestartLine",
1441
- description: "Declaration or implementation citation range, when known."
1442
1442
  }
1443
1443
  },
1444
1444
  required: [
@@ -1453,10 +1453,6 @@ function createServer(graph, version) {
1453
1453
  PickITtscGraphEvidenceendLinefilestartLine: {
1454
1454
  type: "object",
1455
1455
  properties: {
1456
- endLine: {
1457
- type: "number",
1458
- description: "1-based line where the span ends, when it differs from `startLine`."
1459
- },
1460
1456
  file: {
1461
1457
  type: "string",
1462
1458
  description: "Project-relative path of the file the span lives in."
@@ -1464,6 +1460,10 @@ function createServer(graph, version) {
1464
1460
  startLine: {
1465
1461
  type: "number",
1466
1462
  description: "1-based line where the span starts."
1463
+ },
1464
+ endLine: {
1465
+ type: "number",
1466
+ description: "1-based line where the span ends, when it differs from `startLine`."
1467
1467
  }
1468
1468
  },
1469
1469
  required: [
@@ -1485,13 +1485,17 @@ function createServer(graph, version) {
1485
1485
  parameters: {
1486
1486
  type: "object",
1487
1487
  properties: {
1488
+ question: {
1489
+ type: "string",
1490
+ description: "User's TypeScript code question.\n\nRestate the code question being considered. If the next evidence is a\nscript, config, doc, generated output, exact text, non-TypeScript file,\nor source body text, choose `escape`."
1491
+ },
1488
1492
  draft: {
1489
1493
  $ref: "#/$defs/ITtscGraphApplication.IDraft",
1490
1494
  description: "Initial request plan before final arguments are filled.\n\nName the intended request type in `type` and why it seems smallest in\n`reason`. Broad flow, architecture, repository-orientation, and read-next\nquestions should normally draft `tour`; narrow named symbols can draft\n`lookup`, `trace`, or `details`."
1491
1495
  },
1492
- question: {
1496
+ review: {
1493
1497
  type: "string",
1494
- description: "User's TypeScript code question.\n\nRestate the code question being considered. If the next evidence is a\nscript, config, doc, generated output, exact text, non-TypeScript file,\nor source body text, choose `escape`."
1498
+ description: "Final self-review before calling.\n\nCorrect a stale, broad, duplicate, or wrong draft here. If broad flow was\nsplit into search/detail steps, switch to `tour`. If graph facts already\nanswer, or prior `next.action` was `answer`, make `request.type` be\n`escape`; do not call graph or read files to re-confirm returned facts."
1495
1499
  },
1496
1500
  request: {
1497
1501
  anyOf: [
@@ -1530,10 +1534,6 @@ function createServer(graph, version) {
1530
1534
  },
1531
1535
  propertyName: "type"
1532
1536
  }
1533
- },
1534
- review: {
1535
- type: "string",
1536
- description: "Final self-review before calling.\n\nCorrect a stale, broad, duplicate, or wrong draft here. If broad flow was\nsplit into search/detail steps, switch to `tour`. If graph facts already\nanswer, or prior `next.action` was `answer`, make `request.type` be\n`escape`; do not call graph or read files to re-confirm returned facts."
1537
1537
  }
1538
1538
  },
1539
1539
  required: [
@@ -1548,6 +1548,10 @@ function createServer(graph, version) {
1548
1548
  "ITtscGraphApplication.IDraft": {
1549
1549
  type: "object",
1550
1550
  properties: {
1551
+ reason: {
1552
+ type: "string",
1553
+ description: "Why this request type looks like the smallest useful next step."
1554
+ },
1551
1555
  type: {
1552
1556
  type: "string",
1553
1557
  "enum": [
@@ -1560,10 +1564,6 @@ function createServer(graph, version) {
1560
1564
  "trace"
1561
1565
  ],
1562
1566
  description: "The request type being considered, corrected later in `review`."
1563
- },
1564
- reason: {
1565
- type: "string",
1566
- description: "Why this request type looks like the smallest useful next step."
1567
1567
  }
1568
1568
  },
1569
1569
  required: [
@@ -1583,10 +1583,6 @@ function createServer(graph, version) {
1583
1583
  ],
1584
1584
  description: "Discriminator for selected symbol inspection."
1585
1585
  },
1586
- dependencyLimit: {
1587
- type: "number",
1588
- description: "Maximum direct execution and type references to return per group. Raise\nonly when the first dependency slice is truncated and the missing\ndependency is named."
1589
- },
1590
1586
  handles: {
1591
1587
  type: "array",
1592
1588
  items: {
@@ -1594,21 +1590,25 @@ function createServer(graph, version) {
1594
1590
  },
1595
1591
  description: "Node ids from another tool, or dotted symbol handles such as\n`OrderService.create`. Pass the few handles you need for source-free\ndetails. Prefer one to three handles. Use `trace` when you need a path\ninstead of widening this call."
1596
1592
  },
1597
- includeExternal: {
1593
+ neighbors: {
1598
1594
  type: "boolean",
1599
- description: "Include dependency-boundary references from node_modules or bundled\n`.d.ts` libraries. Leave false for source-architecture answers; enable\nonly when external type/API boundaries are the question."
1595
+ description: "Also list each node's direct dependencies and dependents (the symbols it\nuses and the symbols that use it). The list is capped; raise\n`neighborLimit` when the first slice is truncated and the missing\nrelation is named. This remains a relationship summary, not a file body."
1596
+ },
1597
+ neighborLimit: {
1598
+ type: "number",
1599
+ description: "Maximum dependencies and dependents to return per side when\n`neighbors:true`.\n\nPrefer the default. Values above a few neighbors are usually overfetch;\ncall `trace` for flow instead."
1600
1600
  },
1601
1601
  memberLimit: {
1602
1602
  type: "number",
1603
1603
  description: "Maximum owned members to return for a container or object literal. Raise\nonly when the first outline is truncated and the missing member is\nnamed."
1604
1604
  },
1605
- neighborLimit: {
1605
+ dependencyLimit: {
1606
1606
  type: "number",
1607
- description: "Maximum dependencies and dependents to return per side when\n`neighbors:true`.\n\nPrefer the default. Values above a few neighbors are usually overfetch;\ncall `trace` for flow instead."
1607
+ description: "Maximum direct execution and type references to return per group. Raise\nonly when the first dependency slice is truncated and the missing\ndependency is named."
1608
1608
  },
1609
- neighbors: {
1609
+ includeExternal: {
1610
1610
  type: "boolean",
1611
- description: "Also list each node's direct dependencies and dependents (the symbols it\nuses and the symbols that use it). The list is capped; raise\n`neighborLimit` when the first slice is truncated and the missing\nrelation is named. This remains a relationship summary, not a file body."
1611
+ description: "Include dependency-boundary references from node_modules or bundled\n`.d.ts` libraries. Leave false for source-architecture answers; enable\nonly when external type/API boundaries are the question."
1612
1612
  }
1613
1613
  },
1614
1614
  required: [
@@ -1628,6 +1628,10 @@ function createServer(graph, version) {
1628
1628
  ],
1629
1629
  description: "Discriminator for first-pass question indexing."
1630
1630
  },
1631
+ query: {
1632
+ type: "string",
1633
+ description: "A natural code question or search phrase. Mix prose with code handles,\nfor example `how Repository.find loads relations` or\n`SelectQueryBuilder.setFindOptions join aliases`. Keep this close to the\nuser's question; do not turn it into a broad keyword dump."
1634
+ },
1631
1635
  limit: {
1632
1636
  type: "number",
1633
1637
  description: "Maximum ranked hits to return.\n\nPrefer the default. Raise only when the first result was truncated and\nthe missing handle is named."
@@ -1635,10 +1639,6 @@ function createServer(graph, version) {
1635
1639
  neighbors: {
1636
1640
  type: "number",
1637
1641
  description: "Maximum direct dependencies and dependents to return per indexed symbol.\nThis is an orientation slice, not a dependency dump; use `trace` or\n`details` with `neighbors:true` after choosing the specific handles.\nPrefer the default zero for the first call."
1638
- },
1639
- query: {
1640
- type: "string",
1641
- description: "A natural code question or search phrase. Mix prose with code handles,\nfor example `how Repository.find loads relations` or\n`SelectQueryBuilder.setFindOptions join aliases`. Keep this close to the\nuser's question; do not turn it into a broad keyword dump."
1642
1642
  }
1643
1643
  },
1644
1644
  required: [
@@ -1658,13 +1658,13 @@ function createServer(graph, version) {
1658
1658
  ],
1659
1659
  description: "Discriminator for the no-op escape route."
1660
1660
  },
1661
- nextStep: {
1662
- type: "string",
1663
- description: "The final non-graph note, if useful.\n\nKeep this short. Examples: `answer from the prior graph result`, `source\nbody needed at returned sourceSpan`, or `ask the user for a concrete\nsymbol`."
1664
- },
1665
1661
  reason: {
1666
1662
  type: "string",
1667
1663
  description: "Why no graph operation should run.\n\nUse this only when the next evidence is outside the indexed TypeScript\ngraph: package scripts, config files, generated output, prose docs, exact\ntext, or exact source body text. Name the smallest returned sourceSpan\nwhen source body text is truly required."
1664
+ },
1665
+ nextStep: {
1666
+ type: "string",
1667
+ description: "The final non-graph note, if useful.\n\nKeep this short. Examples: `answer from the prior graph result`, `source\nbody needed at returned sourceSpan`, or `ask the user for a concrete\nsymbol`."
1668
1668
  }
1669
1669
  },
1670
1670
  required: [
@@ -1684,17 +1684,17 @@ function createServer(graph, version) {
1684
1684
  ],
1685
1685
  description: "Discriminator for targeted symbol lookup."
1686
1686
  },
1687
- includeExternal: {
1688
- type: "boolean",
1689
- description: "Include dependency-boundary declarations from node_modules or bundled\n`.d.ts` libraries. Leave false for project-source answers; enable only\nwhen external type/API boundaries are the question."
1687
+ query: {
1688
+ type: "string",
1689
+ description: "What to find, in natural language and code vocabulary mixed freely: a\nsymbol name, a dotted member (`Service.create`), or a short phrase\n(`request handler`). Exact names are not required, but this is not a\nsecond broad entrypoints call. Use it when a named handle is missing or\nambiguous."
1690
1690
  },
1691
1691
  limit: {
1692
1692
  type: "number",
1693
1693
  description: "Maximum hits to return.\n\nPrefer the default. Large hit lists usually mean the query is too broad;\nrefine the name instead of raising this."
1694
1694
  },
1695
- query: {
1696
- type: "string",
1697
- description: "What to find, in natural language and code vocabulary mixed freely: a\nsymbol name, a dotted member (`Service.create`), or a short phrase\n(`request handler`). Exact names are not required, but this is not a\nsecond broad entrypoints call. Use it when a named handle is missing or\nambiguous."
1695
+ includeExternal: {
1696
+ type: "boolean",
1697
+ description: "Include dependency-boundary declarations from node_modules or bundled\n`.d.ts` libraries. Leave false for project-source answers; enable only\nwhen external type/API boundaries are the question."
1698
1698
  }
1699
1699
  },
1700
1700
  required: [
@@ -1741,17 +1741,17 @@ function createServer(graph, version) {
1741
1741
  ],
1742
1742
  description: "Discriminator for code-tour indexing."
1743
1743
  },
1744
- includeTests: {
1745
- type: "boolean",
1746
- description: "Include graph-reached test or usage anchors when available."
1744
+ query: {
1745
+ type: "string",
1746
+ description: "The user's natural code-tour question."
1747
1747
  },
1748
1748
  limit: {
1749
1749
  type: "number",
1750
1750
  description: "Maximum central entrypoints to seed the tour.\n\nPrefer the default. Raise only when the question names several distinct\npublic paths that must all appear in one answer."
1751
1751
  },
1752
- query: {
1753
- type: "string",
1754
- description: "The user's natural code-tour question."
1752
+ includeTests: {
1753
+ type: "boolean",
1754
+ description: "Include graph-reached test or usage anchors when available."
1755
1755
  }
1756
1756
  },
1757
1757
  required: [
@@ -1771,6 +1771,14 @@ function createServer(graph, version) {
1771
1771
  ],
1772
1772
  description: "Discriminator for dependency tracing."
1773
1773
  },
1774
+ from: {
1775
+ type: "string",
1776
+ description: "Where to start: a node id from another tool, a simple symbol name, or a\ndotted member name such as `OrderService.create`. An ambiguous name\nreturns its candidates instead of a trace."
1777
+ },
1778
+ to: {
1779
+ type: "string",
1780
+ description: "A target symbol: node id, simple symbol name, or dotted member name. When\ngiven, the tool returns the dependency path from `from` to this target,\nthe one-call answer for \"how does A reach B\", instead of an open-ended\ntrace. Prefer this path mode whenever both ends are known."
1781
+ },
1774
1782
  direction: {
1775
1783
  type: "string",
1776
1784
  "enum": [
@@ -1789,14 +1797,6 @@ function createServer(graph, version) {
1789
1797
  ],
1790
1798
  description: "Which non-structural edge family to follow: `execution` follows runtime\ncalls, instantiations, property access, and JSX renders; `types` follows\ntype references and inheritance; `all` preserves the full graph. Flow\nquestions should usually choose `execution` rather than `all`."
1791
1799
  },
1792
- from: {
1793
- type: "string",
1794
- description: "Where to start: a node id from another tool, a simple symbol name, or a\ndotted member name such as `OrderService.create`. An ambiguous name\nreturns its candidates instead of a trace."
1795
- },
1796
- includeExternal: {
1797
- type: "boolean",
1798
- description: "Include dependency-boundary nodes from node_modules or bundled `.d.ts`\nlibraries. Leave false for source-flow tours; enable only when the user\nasks about external type/API boundaries."
1799
- },
1800
1800
  maxDepth: {
1801
1801
  type: "number",
1802
1802
  description: "How many hops deep to follow. Open forward/reverse traces are capped at\n2; impact traces at 4; path mode at 12.\n\nPrefer the default for open traces. Raise only for path mode or when the\nprevious trace named the missing next hop."
@@ -1805,9 +1805,9 @@ function createServer(graph, version) {
1805
1805
  type: "number",
1806
1806
  description: "Cap on reached nodes; the trace stops and marks itself truncated past it.\nOpen forward/reverse traces are capped at 8 nodes, impact at 16 nodes.\n\nPrefer the default; use larger open traces only when a named missing edge\nrequires it."
1807
1807
  },
1808
- to: {
1809
- type: "string",
1810
- description: "A target symbol: node id, simple symbol name, or dotted member name. When\ngiven, the tool returns the dependency path from `from` to this target,\nthe one-call answer for \"how does A reach B\", instead of an open-ended\ntrace. Prefer this path mode whenever both ends are known."
1808
+ includeExternal: {
1809
+ type: "boolean",
1810
+ description: "Include dependency-boundary nodes from node_modules or bundled `.d.ts`\nlibraries. Leave false for source-flow tours; enable only when the user\nasks about external type/API boundaries."
1811
1811
  }
1812
1812
  },
1813
1813
  required: [