@mrclrchtr/supi-code-intelligence 2.0.6 → 2.2.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 (169) hide show
  1. package/README.md +88 -4
  2. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  3. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  4. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  5. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  6. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  7. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  8. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  9. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  10. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  11. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  12. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  13. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  14. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  15. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  16. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  17. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  18. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  19. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  20. package/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  21. package/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  22. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  23. package/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  24. package/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  25. package/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  26. package/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  27. package/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  28. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  29. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  30. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  31. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  32. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  33. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  34. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  35. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  36. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/package.json +3 -3
  73. package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +1 -1
  74. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  75. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  76. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  77. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  78. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  79. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  80. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  81. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  82. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  83. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  84. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  85. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  86. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  87. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  88. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  89. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  90. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  91. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  92. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/README.md +32 -23
  93. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -1
  94. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +22 -8
  95. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +357 -0
  96. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +2 -3
  97. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -5
  98. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +4 -0
  99. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +372 -0
  100. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +101 -0
  101. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +1 -1
  102. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +55 -27
  103. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +464 -0
  104. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +124 -0
  105. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +72 -285
  106. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -5
  107. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +27 -5
  108. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +10 -0
  109. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +3 -3
  110. package/package.json +5 -5
  111. package/src/analysis/evidence.ts +13 -0
  112. package/src/analysis/instruction-files.ts +194 -0
  113. package/src/analysis/search/pattern.ts +24 -13
  114. package/src/analysis/search/ripgrep.ts +92 -7
  115. package/src/app/app.ts +6 -1
  116. package/src/config.ts +42 -0
  117. package/src/extension.ts +9 -1
  118. package/src/session/capability-adapter.ts +218 -0
  119. package/src/session/session.ts +106 -1
  120. package/src/session/target-workflow.ts +430 -0
  121. package/src/substrate/lsp/diagnostic-injection.ts +0 -15
  122. package/src/substrate/lsp/settings.ts +101 -175
  123. package/src/tool/find/execute.ts +23 -10
  124. package/src/tool/find/orchestrate.ts +67 -54
  125. package/src/tool/find/semantic-search.ts +30 -16
  126. package/src/tool/graph/collect-relation.ts +2 -1
  127. package/src/tool/graph/execute.ts +40 -12
  128. package/src/tool/graph/markdown-base.ts +5 -37
  129. package/src/tool/graph/orchestrate.ts +9 -35
  130. package/src/tool/graph/tui.ts +2 -0
  131. package/src/tool/guidance.ts +27 -38
  132. package/src/tool/health/markdown.ts +12 -70
  133. package/src/tool/health/orchestrate.ts +5 -13
  134. package/src/tool/impact/analysis.ts +0 -27
  135. package/src/tool/impact/change-set-impact.ts +3 -2
  136. package/src/tool/impact/execute.ts +27 -0
  137. package/src/tool/impact/file-level-impact.ts +3 -2
  138. package/src/tool/impact/result.ts +2 -21
  139. package/src/tool/impact/single-impact.ts +3 -2
  140. package/src/tool/infra/error-results.ts +18 -196
  141. package/src/tool/infra/pipeline.ts +24 -1
  142. package/src/tool/inspect/markdown.ts +4 -41
  143. package/src/tool/inspect/orchestrate.ts +27 -28
  144. package/src/tool/orientation/mode.ts +53 -2
  145. package/src/tool/orientation/orchestrate.ts +5 -8
  146. package/src/tool/orientation/precise-target.ts +65 -69
  147. package/src/tool/refactor-apply/orchestrate.ts +2 -7
  148. package/src/tool/refactor-plan/orchestrate.ts +31 -39
  149. package/src/tool/resolve/markdown.ts +5 -6
  150. package/src/tool/resolve/orchestrate.ts +7 -103
  151. package/src/tool/result/errors.ts +199 -0
  152. package/src/tool/result/find.ts +29 -0
  153. package/src/tool/result/graph.ts +93 -0
  154. package/src/tool/result/health.ts +94 -0
  155. package/src/tool/result/impact.ts +50 -0
  156. package/src/tool/result/inspect.ts +60 -0
  157. package/src/tool/result/orientation.ts +30 -0
  158. package/src/tool/result/refactor.ts +35 -0
  159. package/src/tool/result/resolve.ts +114 -0
  160. package/src/tool/result/types.ts +191 -0
  161. package/src/tool/schemas.ts +39 -28
  162. package/src/types/details.ts +17 -185
  163. package/src/ui/tui/common.ts +45 -1
  164. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
  165. package/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
  168. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
  169. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config-settings.ts +0 -188
@@ -0,0 +1,114 @@
1
+ import { relative } from "node:path";
2
+ import type { ResolveServiceResult } from "../../analysis/target/service.ts";
3
+ import type { ResolveDetails } from "./types.ts";
4
+
5
+ export interface ResolveResultAssembly {
6
+ result: ResolveServiceResult;
7
+ cwd: string;
8
+ details: ResolveDetails;
9
+ }
10
+
11
+ /** Assemble code_resolve evidence/details before markdown and TUI adapters render it. */
12
+ export function assembleResolveResult(
13
+ result: ResolveServiceResult,
14
+ cwd: string,
15
+ ): ResolveResultAssembly {
16
+ return { result, cwd, details: buildResolveDetails(result, cwd) };
17
+ }
18
+
19
+ function buildResolveDetails(result: ResolveServiceResult, cwd: string): ResolveDetails {
20
+ if (result.kind === "resolved") {
21
+ return {
22
+ confidence: result.confidence,
23
+ targetCount: result.targets.length + result.omittedCount,
24
+ omittedCount: result.omittedCount,
25
+ evidenceLists: [
26
+ {
27
+ key: "resolve.targets",
28
+ totalCount: result.targets.length + result.omittedCount,
29
+ shownCount: result.targets.length,
30
+ omittedCount: result.omittedCount,
31
+ partialReason: null,
32
+ },
33
+ ],
34
+ targets: result.targets.map((t) => ({
35
+ targetId: t.targetId,
36
+ spanId: t.spanId,
37
+ file: relative(cwd, t.file) || t.file,
38
+ displayLine: t.displayLine,
39
+ displayCharacter: t.displayCharacter,
40
+ name: t.name,
41
+ kind: t.kind,
42
+ anchorKind: t.anchorKind,
43
+ confidence: t.confidence,
44
+ provenance: t.provenance,
45
+ resolution: t.resolution,
46
+ })),
47
+ nextQueries: result.nextQueries,
48
+ };
49
+ }
50
+
51
+ if (result.kind === "disambiguation") {
52
+ return {
53
+ confidence: "semantic",
54
+ targetCount: result.candidates.length + result.omittedCount,
55
+ omittedCount: result.omittedCount,
56
+ evidenceLists: [
57
+ {
58
+ key: "resolve.candidates",
59
+ totalCount: result.candidates.length + result.omittedCount,
60
+ shownCount: result.candidates.length,
61
+ omittedCount: result.omittedCount,
62
+ partialReason: null,
63
+ },
64
+ ],
65
+ targets: [],
66
+ candidates: result.candidates.map((cand) => ({
67
+ targetId: cand.targetId,
68
+ name: cand.name,
69
+ kind: cand.kind,
70
+ container: cand.container,
71
+ file: cand.file,
72
+ line: cand.line,
73
+ character: cand.character,
74
+ reason: cand.reason,
75
+ rank: cand.rank,
76
+ anchorKind: cand.anchorKind,
77
+ })),
78
+ nextQueries: result.nextQueries,
79
+ };
80
+ }
81
+
82
+ return {
83
+ confidence: "unavailable",
84
+ targetCount: 0,
85
+ omittedCount: 0,
86
+ targets: [],
87
+ nextQueries: [
88
+ "Refine the `query` or `scope`",
89
+ "Use anchored `file` + `line` + `character` for a precise target",
90
+ ],
91
+ };
92
+ }
93
+
94
+ /** Suggested `code_graph` relations for a resolved symbol kind. */
95
+ export function suggestedResolveRelations(kind: string | undefined | null): string[] | undefined {
96
+ switch (kind?.toLowerCase()) {
97
+ case "function":
98
+ case "method":
99
+ case "constructor":
100
+ return ["references", "callees", "tests"];
101
+ case "class":
102
+ case "interface":
103
+ case "type":
104
+ case "enum":
105
+ return ["references", "implements"];
106
+ case "file":
107
+ case "module":
108
+ return ["imports", "exports"];
109
+ case "test":
110
+ return ["tests"];
111
+ default:
112
+ return undefined;
113
+ }
114
+ }
@@ -0,0 +1,191 @@
1
+ import type { ConfidenceMode } from "@mrclrchtr/supi-code-runtime/api";
2
+ import type { EvidenceListMetadata } from "../../analysis/evidence.ts";
3
+ import type { InstructionFilesMetadata } from "../../analysis/instruction-files.ts";
4
+ import type { PrioritySignalsSummary } from "../../analysis/signals/project.ts";
5
+ import type { TestSurfaceDetails } from "../../analysis/tests/test-discovery.ts";
6
+ import type { AnchorKind, TargetStoreEntry } from "../../session/target-store.ts";
7
+
8
+ export type { TestSurfaceDetails } from "../../analysis/tests/test-discovery.ts";
9
+
10
+ // ── Anchored coordinate resolution metadata ───────────────────────────
11
+
12
+ /**
13
+ * Provider-backed evidence source that identified an anchored coordinate
14
+ * target. Drives the markdown provenance note and structured resolution
15
+ * metadata per ADR 0003/0004.
16
+ *
17
+ * - `semantic` — LSP document symbols identified the symbol and its anchors.
18
+ * - `structural` — tree-sitter structural evidence (outline/exports/nodeAt)
19
+ * identified the declaration and/or identifier.
20
+ * - `structural-identifier` — tree-sitter `nodeAt` classified the coordinate
21
+ * as an identifier token and snapped it to a declaration via ancestry.
22
+ */
23
+ export type AnchoredResolutionSource = "semantic" | "structural" | "structural-identifier";
24
+
25
+ /**
26
+ * Resolution metadata for a target resolved from anchored coordinates.
27
+ *
28
+ * Records the requested coordinate, the resolved anchor coordinate, whether
29
+ * the resolved anchor differs from the request (a snap), and the
30
+ * provider-backed evidence source. Structured details always carry this when
31
+ * a target was resolved from coordinates; markdown surfaces a note only when
32
+ * the resolution was non-obvious (snapped or degraded).
33
+ */
34
+ export interface AnchoredResolutionMetadata {
35
+ /** The 1-based coordinate the caller requested. */
36
+ requested: { line: number; character: number };
37
+ /** The 1-based anchor coordinate the target was resolved to. */
38
+ resolved: { line: number; character: number };
39
+ /** Whether the resolved anchor differs from the requested coordinate. */
40
+ snapped: boolean;
41
+ /** Provider-backed evidence source that identified the target. */
42
+ source: AnchoredResolutionSource;
43
+ }
44
+
45
+ /** Structured details metadata returned alongside markdown brief content. */
46
+ export interface BriefDetails {
47
+ confidence: ConfidenceMode;
48
+ focusTarget: string | null;
49
+ startHere: Array<{ target: string; reason: string }>;
50
+ publicSurfaces: string[];
51
+ dependencySummary: { moduleCount: number; edgeCount: number } | null;
52
+ omittedCount: number;
53
+ evidenceLists?: EvidenceListMetadata[];
54
+ nextQueries: string[];
55
+ prioritySignals?: PrioritySignalsSummary | null;
56
+ }
57
+
58
+ /** Structured details metadata for relationship and pattern results. */
59
+ export interface SearchDetails {
60
+ confidence: ConfidenceMode;
61
+ scope: string | null;
62
+ candidateCount: number;
63
+ omittedCount: number;
64
+ evidenceLists?: EvidenceListMetadata[];
65
+ nextQueries: string[];
66
+ tests?: TestSurfaceDetails;
67
+ }
68
+
69
+ /** Structured details metadata for affected analysis results. */
70
+ export interface AffectedDetails {
71
+ confidence: ConfidenceMode;
72
+ directCount: number;
73
+ downstreamCount: number;
74
+ riskLevel: "low" | "medium" | "high";
75
+ checkNext: string[];
76
+ likelyTests: string[];
77
+ /** Concrete test commands to run relevant verification. */
78
+ likelyTestCommands: string[];
79
+ omittedCount: number;
80
+ evidenceLists?: EvidenceListMetadata[];
81
+ nextQueries: string[];
82
+ prioritySignals?: PrioritySignalsSummary | null;
83
+ tests?: TestSurfaceDetails;
84
+ }
85
+
86
+ /**
87
+ * Structured details metadata for workflow-oriented impact analysis results.
88
+ *
89
+ * Currently structurally identical to `AffectedDetails`. When adding own fields,
90
+ * audit callers in `orchestrate.ts` that construct `{ type: "impact", data }`
91
+ * so they return `ImpactDetails`, not just `AffectedDetails`.
92
+ */
93
+ export interface ImpactDetails extends AffectedDetails {}
94
+
95
+ // Canonical disambiguation candidate — re-exported from resolution/types.ts
96
+ export type { DisambiguationCandidateData as DisambiguationCandidate } from "../../analysis/target/types.ts";
97
+
98
+ /** Structured details metadata for code_resolve results. */
99
+ export interface ResolveDetails {
100
+ confidence: ConfidenceMode;
101
+ targetCount: number;
102
+ omittedCount: number;
103
+ evidenceLists?: EvidenceListMetadata[];
104
+ /** Resolved targets with relative paths (computed from {@link TargetStoreEntry} at detail-build time). */
105
+ targets: Array<{
106
+ targetId: string;
107
+ spanId: string;
108
+ /** Workspace-relative path. */
109
+ file: string;
110
+ displayLine: number;
111
+ displayCharacter: number;
112
+ name: string | null;
113
+ kind: string | null;
114
+ anchorKind: AnchorKind;
115
+ confidence: ConfidenceMode;
116
+ provenance: string;
117
+ /** Resolution provenance — present when the target was resolved from anchored coordinates. */
118
+ resolution?: AnchoredResolutionMetadata;
119
+ }>;
120
+ /** Disambiguation candidates from the resolve service. */
121
+ candidates?: Array<{
122
+ targetId: string;
123
+ name: string;
124
+ kind: string | null;
125
+ container: string | null;
126
+ file: string;
127
+ line: number;
128
+ character: number;
129
+ reason: string;
130
+ rank: number;
131
+ anchorKind: AnchorKind;
132
+ }>;
133
+ nextQueries: string[];
134
+ }
135
+
136
+ /** Structured details metadata for code_orientation results. */
137
+ export interface ContextDetails {
138
+ confidence: ConfidenceMode;
139
+ task: string | null;
140
+ focusTarget: string | null;
141
+ requestedSections: string[];
142
+ renderedSections: string[];
143
+ omittedCount: number;
144
+ evidenceLists?: EvidenceListMetadata[];
145
+ nextQueries: string[];
146
+ tests?: TestSurfaceDetails;
147
+ /** Directory-local instruction files surfaced during directory orientation. */
148
+ instructions?: InstructionFilesMetadata;
149
+ /**
150
+ * Resolved target store entry — populated for both coordinate and targetId
151
+ * precise-target inputs. Absent for orientation/scope-only calls and for
152
+ * ambiguous coordinate resolution (see `candidates`).
153
+ * File paths are absolute; compute relative paths at render time.
154
+ */
155
+ target?: TargetStoreEntry;
156
+ /**
157
+ * Disambiguation candidates with targetIds — populated only when coordinate
158
+ * resolution was ambiguous. No task sections are rendered in that case.
159
+ */
160
+ candidates?: Array<{
161
+ targetId: string;
162
+ name: string;
163
+ kind: string | null;
164
+ container: string | null;
165
+ file: string;
166
+ line: number;
167
+ character: number;
168
+ rank: number;
169
+ }>;
170
+ }
171
+
172
+ /** Structured details metadata for code_inspect results. */
173
+ export interface InspectDetails {
174
+ confidence: ConfidenceMode;
175
+ focusTarget: string;
176
+ unavailableSections: string[];
177
+ evidenceLists?: EvidenceListMetadata[];
178
+ nextQueries: string[];
179
+ }
180
+
181
+ /** Structured details metadata for code_health results. */
182
+ export interface HealthDetails {
183
+ lspAvailable: boolean;
184
+ lspStatus: string;
185
+ recovered: boolean;
186
+ /** Structural (tree-sitter) substrate readiness. Undefined when not evaluated. */
187
+ structuralStatus?: string;
188
+ diagnosticFileCount: number;
189
+ serverCount: number;
190
+ evidenceLists?: EvidenceListMetadata[];
191
+ }
@@ -3,8 +3,28 @@ import { type TSchema, Type } from "typebox";
3
3
  import type { CodeIntelligenceToolName } from "../types/index.ts";
4
4
 
5
5
  const ScopeParam = Type.String({
6
- description: "Workspace-relative path, package, or directory scope for the workflow query.",
6
+ description: "Workspace-relative file or directory scope.",
7
7
  });
8
+ const FindScopeParam = Type.Union(
9
+ [
10
+ Type.String({
11
+ description: "Workspace-relative search scope.",
12
+ }),
13
+ Type.Array(
14
+ Type.String({
15
+ description: "Workspace-relative search scope.",
16
+ }),
17
+ {
18
+ description: "One or more workspace-relative search scopes.",
19
+ minItems: 1,
20
+ uniqueItems: true,
21
+ },
22
+ ),
23
+ ],
24
+ {
25
+ description: "Workspace-relative search scope or scope list.",
26
+ },
27
+ );
8
28
  const FileParam = Type.String({ description: "Target file path." });
9
29
  const QueryParam = Type.String({
10
30
  description: "Human or code reference to resolve or search for.",
@@ -15,13 +35,13 @@ const CharacterParam = Type.Number({
15
35
  minimum: 1,
16
36
  });
17
37
  const MaxResultsParam = Type.Number({
18
- description: "Maximum number of ranked results.",
38
+ description: "Maximum results.",
19
39
  minimum: 1,
20
40
  });
21
41
  const SymbolParam = Type.String({ description: "Symbol name" });
22
42
  const TargetIdParam = Type.String({
23
43
  description:
24
- "Resolved target handle from `code_resolve`. Takes precedence over file/line/character/symbol.",
44
+ "Resolved target handle from `code_resolve`; takes precedence over other target inputs.",
25
45
  });
26
46
  const RangeParam = Type.Object(
27
47
  {
@@ -93,25 +113,23 @@ export const CodeOrientationParameters = Type.Object(
93
113
  {
94
114
  focus: Type.Optional(
95
115
  Type.String({
96
- description:
97
- "Workspace-relative path or discovered module name to orient around. Omit for project orientation.",
116
+ description: "Workspace-relative path or module name; omit for workspace orientation.",
98
117
  }),
99
118
  ),
100
119
  targetId: Type.Optional(
101
120
  Type.String({
102
- description:
103
- "Resolved target handle from `code_resolve`. Takes precedence over `focus`/`line`/`character`. If invalid or stale, the call errors and does not fall back to coordinates.",
121
+ description: "Resolved target handle; takes precedence, stale IDs error.",
104
122
  }),
105
123
  ),
106
124
  line: Type.Optional(
107
125
  Type.Number({
108
- description: "1-based line for symbol orientation. Requires `focus` and `character`.",
126
+ description: "1-based line for symbol orientation with `focus`.",
109
127
  minimum: 1,
110
128
  }),
111
129
  ),
112
130
  character: Type.Optional(
113
131
  Type.Number({
114
- description: "1-based UTF-16 column for symbol orientation. Requires `focus` and `line`.",
132
+ description: "1-based UTF-16 column for symbol orientation with `focus`.",
115
133
  minimum: 1,
116
134
  }),
117
135
  ),
@@ -129,11 +147,10 @@ export const CodeOrientationParameters = Type.Object(
129
147
  export const CodeFindParameters = Type.Object(
130
148
  {
131
149
  query: QueryParam,
132
- scope: Type.Optional(ScopeParam),
150
+ scope: Type.Optional(FindScopeParam),
133
151
  mode: Type.Optional(
134
152
  StringEnum(["text", "regex", "ast", "semantic"], {
135
- description:
136
- 'Search mode. Omit for literal text search. mode: "ast" requires `kind`; mode: "text", mode: "regex", and mode: "semantic" do not accept `kind`.',
153
+ description: 'Search mode; omit for literal text. mode:"ast" requires `kind`.',
137
154
  }),
138
155
  ),
139
156
  kind: Type.Optional(
@@ -151,13 +168,12 @@ export const CodeFindParameters = Type.Object(
151
168
  "test",
152
169
  ],
153
170
  {
154
- description:
155
- 'Only valid with `mode: "ast"`. Supported AST kinds: `definition`, `import`, `export`, `call`, `type`, `interface`, `class`, `method`, `enum`, `test`. AST `call` matches call-site identifiers by name, not by symbol identity.',
171
+ description: 'AST kind; only valid with mode:"ast".',
156
172
  },
157
173
  ),
158
174
  ),
159
175
  contextLines: Type.Optional(
160
- Type.Number({ description: "Context lines to include around matches.", minimum: 0 }),
176
+ Type.Number({ description: "Context lines around matches.", minimum: 0 }),
161
177
  ),
162
178
  maxResults: Type.Optional(MaxResultsParam),
163
179
  },
@@ -184,11 +200,10 @@ export const CodeGraphParameters = Type.Object(
184
200
  relations: Type.Optional(
185
201
  Type.Array(
186
202
  StringEnum(["all", "references", "callees", "imports", "exports", "implements", "tests"], {
187
- description:
188
- 'Relation families to include in the graph. Use `"all"` to expand to every relation family. `callees` is direct structural outgoing-call evidence: source-shape calls in the enclosing scope, not symbol-identity resolution.',
203
+ description: "Relation family.",
189
204
  }),
190
205
  {
191
- description: 'Requested relation families. Defaults to ["references"] when omitted.',
206
+ description: 'Requested relation families; defaults to ["references"].',
192
207
  uniqueItems: true,
193
208
  },
194
209
  ),
@@ -196,8 +211,7 @@ export const CodeGraphParameters = Type.Object(
196
211
  maxResults: Type.Optional(MaxResultsParam),
197
212
  calleeDepth: Type.Optional(
198
213
  StringEnum(["direct", "deep"], {
199
- description:
200
- 'Depth for callee collection. `"direct"` (default): only direct calls from the enclosing scope, excluding nested function/callback scopes. `"deep"`: include all callees within the enclosing scope, including those inside nested scopes.',
214
+ description: '`"direct"` excludes nested scopes; `"deep"` includes them.',
201
215
  }),
202
216
  ),
203
217
  },
@@ -220,8 +234,7 @@ export const CodeImpactParameters = Type.Object(
220
234
  ),
221
235
  changeSetFiles: Type.Optional(
222
236
  Type.Array(Type.String({ description: "Workspace-relative file in the change set." }), {
223
- description:
224
- "User-supplied files to analyze as the change set. This is not inferred from git and carries no line-level diff evidence.",
237
+ description: "Explicit change-set files; not inferred from git and no line-level diff.",
225
238
  minItems: 1,
226
239
  uniqueItems: true,
227
240
  }),
@@ -229,7 +242,7 @@ export const CodeImpactParameters = Type.Object(
229
242
  includeTests: Type.Optional(
230
243
  Type.Boolean({
231
244
  description:
232
- "Whether likely tests should be included in the impact set. changeSetFiles analysis uses semantic references when available plus deterministic conventions; target-based analysis may combine semantic references with deterministic conventions.",
245
+ "Include likely tests using semantic references and deterministic conventions.",
233
246
  }),
234
247
  ),
235
248
  maxResults: Type.Optional(MaxResultsParam),
@@ -251,8 +264,7 @@ export const CodeImpactParameters = Type.Object(
251
264
  export const CodeRefactorParameters = Type.Object(
252
265
  {
253
266
  operation: StringEnum(["rename", "rename_symbol", "extract_function", "extract_variable"], {
254
- description:
255
- "Precise refactor operation to plan. `rename` is accepted as a compatibility alias for `rename_symbol`.",
267
+ description: "Refactor operation; `rename` is an alias for `rename_symbol`.",
256
268
  }),
257
269
  targetId: Type.Optional(
258
270
  Type.String({ description: "Resolved target handle from `code_resolve`." }),
@@ -308,13 +320,12 @@ export const CodeHealthParameters = Type.Object(
308
320
  ),
309
321
  coveragePath: Type.Optional(
310
322
  Type.String({
311
- description:
312
- "Workspace-relative path to a coverage summary JSON file. Defaults to `coverage/coverage-summary.json`.",
323
+ description: "Coverage summary path; defaults to `coverage/coverage-summary.json`.",
313
324
  }),
314
325
  ),
315
326
  unusedPath: Type.Optional(
316
327
  Type.String({
317
- description: "Workspace-relative path to a knip JSON report. Defaults to `knip.json`.",
328
+ description: "Knip report path; defaults to `knip.json`.",
318
329
  }),
319
330
  ),
320
331
  },
@@ -1,188 +1,20 @@
1
- import type { ConfidenceMode } from "@mrclrchtr/supi-code-runtime/api";
2
- import type { EvidenceListMetadata } from "../analysis/evidence.ts";
3
- import type { PrioritySignalsSummary } from "../analysis/signals/project.ts";
4
- import type { TestSurfaceDetails } from "../analysis/tests/test-discovery.ts";
5
- import type { AnchorKind, TargetStoreEntry } from "../session/target-store.ts";
6
-
7
- export type { TestSurfaceDetails } from "../analysis/tests/test-discovery.ts";
8
-
9
- // ── Anchored coordinate resolution metadata ───────────────────────────
10
-
11
1
  /**
12
- * Provider-backed evidence source that identified an anchored coordinate
13
- * target. Drives the markdown provenance note and structured resolution
14
- * metadata per ADR 0003/0004.
2
+ * Compatibility export for tool-result detail shapes.
15
3
  *
16
- * - `semantic` LSP document symbols identified the symbol and its anchors.
17
- * - `structural` tree-sitter structural evidence (outline/exports/nodeAt)
18
- * identified the declaration and/or identifier.
19
- * - `structural-identifier` — tree-sitter `nodeAt` classified the coordinate
20
- * as an identifier token and snapped it to a declaration via ancestry.
4
+ * Public code-intelligence details are assembled in `src/tool/result/`.
5
+ * Import new result assembly code from `../tool/result/types.ts` directly.
21
6
  */
22
- export type AnchoredResolutionSource = "semantic" | "structural" | "structural-identifier";
23
-
24
- /**
25
- * Resolution metadata for a target resolved from anchored coordinates.
26
- *
27
- * Records the requested coordinate, the resolved anchor coordinate, whether
28
- * the resolved anchor differs from the request (a snap), and the
29
- * provider-backed evidence source. Structured details always carry this when
30
- * a target was resolved from coordinates; markdown surfaces a note only when
31
- * the resolution was non-obvious (snapped or degraded).
32
- */
33
- export interface AnchoredResolutionMetadata {
34
- /** The 1-based coordinate the caller requested. */
35
- requested: { line: number; character: number };
36
- /** The 1-based anchor coordinate the target was resolved to. */
37
- resolved: { line: number; character: number };
38
- /** Whether the resolved anchor differs from the requested coordinate. */
39
- snapped: boolean;
40
- /** Provider-backed evidence source that identified the target. */
41
- source: AnchoredResolutionSource;
42
- }
43
-
44
- /** Structured details metadata returned alongside markdown brief content. */
45
- export interface BriefDetails {
46
- confidence: ConfidenceMode;
47
- focusTarget: string | null;
48
- startHere: Array<{ target: string; reason: string }>;
49
- publicSurfaces: string[];
50
- dependencySummary: { moduleCount: number; edgeCount: number } | null;
51
- omittedCount: number;
52
- evidenceLists?: EvidenceListMetadata[];
53
- nextQueries: string[];
54
- prioritySignals?: PrioritySignalsSummary | null;
55
- }
56
-
57
- /** Structured details metadata for relationship and pattern results. */
58
- export interface SearchDetails {
59
- confidence: ConfidenceMode;
60
- scope: string | null;
61
- candidateCount: number;
62
- omittedCount: number;
63
- evidenceLists?: EvidenceListMetadata[];
64
- nextQueries: string[];
65
- tests?: TestSurfaceDetails;
66
- }
67
-
68
- /** Structured details metadata for affected analysis results. */
69
- export interface AffectedDetails {
70
- confidence: ConfidenceMode;
71
- directCount: number;
72
- downstreamCount: number;
73
- riskLevel: "low" | "medium" | "high";
74
- checkNext: string[];
75
- likelyTests: string[];
76
- /** Concrete test commands to run relevant verification. */
77
- likelyTestCommands: string[];
78
- omittedCount: number;
79
- evidenceLists?: EvidenceListMetadata[];
80
- nextQueries: string[];
81
- prioritySignals?: PrioritySignalsSummary | null;
82
- tests?: TestSurfaceDetails;
83
- }
84
-
85
- /**
86
- * Structured details metadata for workflow-oriented impact analysis results.
87
- *
88
- * Currently structurally identical to `AffectedDetails`. When adding own fields,
89
- * audit callers in `orchestrate.ts` that construct `{ type: "impact", data }`
90
- * so they return `ImpactDetails`, not just `AffectedDetails`.
91
- */
92
- export interface ImpactDetails extends AffectedDetails {}
93
-
94
- // Canonical disambiguation candidate — re-exported from resolution/types.ts
95
- export type { DisambiguationCandidateData as DisambiguationCandidate } from "../analysis/target/types.ts";
96
-
97
- /** Structured details metadata for code_resolve results. */
98
- export interface ResolveDetails {
99
- confidence: ConfidenceMode;
100
- targetCount: number;
101
- omittedCount: number;
102
- evidenceLists?: EvidenceListMetadata[];
103
- /** Resolved targets with relative paths (computed from {@link TargetStoreEntry} at detail-build time). */
104
- targets: Array<{
105
- targetId: string;
106
- spanId: string;
107
- /** Workspace-relative path. */
108
- file: string;
109
- displayLine: number;
110
- displayCharacter: number;
111
- name: string | null;
112
- kind: string | null;
113
- anchorKind: AnchorKind;
114
- confidence: ConfidenceMode;
115
- provenance: string;
116
- /** Resolution provenance — present when the target was resolved from anchored coordinates. */
117
- resolution?: AnchoredResolutionMetadata;
118
- }>;
119
- /** Disambiguation candidates from the resolve service. */
120
- candidates?: Array<{
121
- targetId: string;
122
- name: string;
123
- kind: string | null;
124
- container: string | null;
125
- file: string;
126
- line: number;
127
- character: number;
128
- reason: string;
129
- rank: number;
130
- anchorKind: AnchorKind;
131
- }>;
132
- nextQueries: string[];
133
- }
134
-
135
- /** Structured details metadata for code_orientation results. */
136
- export interface ContextDetails {
137
- confidence: ConfidenceMode;
138
- task: string | null;
139
- focusTarget: string | null;
140
- requestedSections: string[];
141
- renderedSections: string[];
142
- omittedCount: number;
143
- evidenceLists?: EvidenceListMetadata[];
144
- nextQueries: string[];
145
- tests?: TestSurfaceDetails;
146
- /**
147
- * Resolved target store entry — populated for both coordinate and targetId
148
- * precise-target inputs. Absent for orientation/scope-only calls and for
149
- * ambiguous coordinate resolution (see `candidates`).
150
- * File paths are absolute; compute relative paths at render time.
151
- */
152
- target?: TargetStoreEntry;
153
- /**
154
- * Disambiguation candidates with targetIds — populated only when coordinate
155
- * resolution was ambiguous. No task sections are rendered in that case.
156
- */
157
- candidates?: Array<{
158
- targetId: string;
159
- name: string;
160
- kind: string | null;
161
- container: string | null;
162
- file: string;
163
- line: number;
164
- character: number;
165
- rank: number;
166
- }>;
167
- }
168
-
169
- /** Structured details metadata for code_inspect results. */
170
- export interface InspectDetails {
171
- confidence: ConfidenceMode;
172
- focusTarget: string;
173
- unavailableSections: string[];
174
- evidenceLists?: EvidenceListMetadata[];
175
- nextQueries: string[];
176
- }
177
-
178
- /** Structured details metadata for code_health results. */
179
- export interface HealthDetails {
180
- lspAvailable: boolean;
181
- lspStatus: string;
182
- recovered: boolean;
183
- /** Structural (tree-sitter) substrate readiness. Undefined when not evaluated. */
184
- structuralStatus?: string;
185
- diagnosticFileCount: number;
186
- serverCount: number;
187
- evidenceLists?: EvidenceListMetadata[];
188
- }
7
+ export type {
8
+ AffectedDetails,
9
+ AnchoredResolutionMetadata,
10
+ AnchoredResolutionSource,
11
+ BriefDetails,
12
+ ContextDetails,
13
+ DisambiguationCandidate,
14
+ HealthDetails,
15
+ ImpactDetails,
16
+ InspectDetails,
17
+ ResolveDetails,
18
+ SearchDetails,
19
+ TestSurfaceDetails,
20
+ } from "../tool/result/types.ts";