@mrclrchtr/supi-code-intelligence 4.6.0 → 4.8.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 (215) hide show
  1. package/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  2. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  3. package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  4. package/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  5. package/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  6. package/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  7. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  8. package/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  9. package/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  10. package/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  11. package/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  12. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  13. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  14. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  15. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  16. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  29. package/node_modules/@mrclrchtr/supi-lsp/package.json +3 -3
  30. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-diagnostics.ts +361 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +46 -238
  32. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +25 -33
  33. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  34. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  35. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  36. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  37. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  38. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  39. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  40. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  41. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  42. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  43. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  44. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  45. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  46. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  47. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +3 -3
  48. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/outline-html-sql.ts +1 -1
  49. package/package.json +5 -5
  50. package/src/config.ts +19 -16
  51. package/src/substrate/lsp/settings.ts +90 -91
  52. package/src/tool/find/execute.ts +5 -8
  53. package/src/tool/graph/execute.ts +1 -1
  54. package/src/tool/health/execute.ts +2 -5
  55. package/src/tool/inspect/execute.ts +5 -7
  56. package/src/tool/orientation/execute.ts +4 -5
  57. package/src/tool/refactor-apply/execute.ts +4 -5
  58. package/src/tool/refactor-plan/execute.ts +7 -9
  59. package/src/tool/result/errors.ts +2 -82
  60. package/src/ui/tui/common.ts +1 -1
  61. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  62. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  63. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  64. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  65. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  66. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  67. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  68. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  69. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  70. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  71. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  72. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  73. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  74. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  75. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  76. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  77. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  78. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  79. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  80. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  81. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  82. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  83. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  84. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  85. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  86. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  87. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  88. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  89. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  90. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  91. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  92. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  93. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  94. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  95. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  96. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  97. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  98. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  99. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  100. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  101. package/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  102. package/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  103. package/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  104. package/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  105. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  106. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  107. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  108. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  109. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  110. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  161. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-refresh.ts +0 -234
  162. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostics.ts +0 -99
  163. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/suppression-diagnostics.ts +0 -60
  164. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +0 -41
  165. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  166. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  167. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  168. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  169. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  170. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  171. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  172. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  173. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  174. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  175. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  176. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  177. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  178. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  179. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  180. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  181. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  182. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  183. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  184. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  185. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  186. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  187. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  188. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  189. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  190. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  191. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  192. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  193. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  194. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  195. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  196. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  197. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  198. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  199. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  200. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  201. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  202. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  203. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  204. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  205. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  206. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  207. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  208. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  209. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  210. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  211. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  212. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  213. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  214. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  215. package/src/tool/infra/error-results.ts +0 -19
package/src/config.ts CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
4
4
  import { loadSupiConfig } from "@mrclrchtr/supi-core/config";
5
- import { registerDeclarativeSettings } from "@mrclrchtr/supi-core/settings";
5
+ import { defineConfigSettings, registerSettings } from "@mrclrchtr/supi-core/settings";
6
6
 
7
7
  const CODE_INTELLIGENCE_SECTION = "code-intelligence";
8
8
 
@@ -24,19 +24,22 @@ export function loadCodeIntelligenceConfig(cwd: string, homeDir?: string): CodeI
24
24
 
25
25
  /** Register code-intelligence settings with the shared SuPi settings registry. */
26
26
  export function registerCodeIntelligenceSettings(pi: ExtensionAPI, homeDir?: string): void {
27
- registerDeclarativeSettings(pi, {
28
- id: CODE_INTELLIGENCE_SECTION,
29
- label: "Code Intelligence",
30
- section: CODE_INTELLIGENCE_SECTION,
31
- defaults: CODE_INTELLIGENCE_DEFAULTS,
32
- fields: [
33
- {
34
- kind: "stringList" as const,
35
- key: "instructionFileNames",
36
- label: "Instruction File Names",
37
- description: "Directory-local instruction file names shown by directory orientation",
38
- },
39
- ],
40
- ...(homeDir ? { homeDir } : {}),
41
- });
27
+ registerSettings(
28
+ pi,
29
+ defineConfigSettings({
30
+ id: CODE_INTELLIGENCE_SECTION,
31
+ label: "Code Intelligence",
32
+ section: CODE_INTELLIGENCE_SECTION,
33
+ defaults: CODE_INTELLIGENCE_DEFAULTS,
34
+ fields: [
35
+ {
36
+ kind: "stringList" as const,
37
+ key: "instructionFileNames",
38
+ label: "Instruction File Names",
39
+ description: "Directory-local instruction file names shown by directory orientation",
40
+ },
41
+ ],
42
+ ...(homeDir ? { homeDir } : {}),
43
+ }),
44
+ );
42
45
  }
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // Registered fields:
8
8
  // - exclude: stringList
9
- // - disabled_servers: custom submenu that writes per-language disable config
9
+ // - disabled_servers: custom submenu whose module action writes per-language disable config
10
10
 
11
11
  import { type ExtensionAPI, getSettingsListTheme } from "@earendil-works/pi-coding-agent";
12
12
  import type { Component, SettingItem } from "@earendil-works/pi-tui";
@@ -14,7 +14,8 @@ import { Container, Key, matchesKey, SettingsList, Text } from "@earendil-works/
14
14
 
15
15
  import { loadSupiConfigSectionForScope, writeSupiConfig } from "@mrclrchtr/supi-core/config";
16
16
  import {
17
- registerDeclarativeSettings,
17
+ defineConfigSettings,
18
+ registerSettings,
18
19
  type SettingsScope,
19
20
  type ValueSource,
20
21
  } from "@mrclrchtr/supi-core/settings";
@@ -94,34 +95,16 @@ function createDisabledServersSubmenu(
94
95
  return {
95
96
  render: (width: number) => container.render(width),
96
97
  invalidate: () => container.invalidate(),
97
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: single event handler for the submenu
98
98
  handleInput: (data: string) => {
99
99
  if (matchesKey(data, Key.escape)) {
100
100
  if (!dirty) {
101
101
  done();
102
102
  return;
103
103
  }
104
- // Write per-language enabled/disabled into lsp.servers
105
- const currentSection = loadSupiConfigSectionForScope("lsp", cwd, { scope });
106
- const servers =
107
- (currentSection?.servers as Record<string, Record<string, unknown>> | undefined) ?? {};
108
-
109
- for (const item of items) {
110
- if (item.currentValue === "disabled") {
111
- servers[item.id] = { ...(servers[item.id] ?? {}), enabled: false };
112
- } else {
113
- const srv = servers[item.id];
114
- if (srv) {
115
- delete srv.enabled;
116
- if (Object.keys(srv).length === 0) {
117
- delete servers[item.id];
118
- }
119
- }
120
- }
121
- }
122
-
123
- writeSupiConfig({ section: "lsp", scope, cwd }, { servers });
124
- done("saved");
104
+ const disabled = items
105
+ .filter((item) => item.currentValue === "disabled")
106
+ .map((item) => item.id);
107
+ done(JSON.stringify(disabled));
125
108
  return;
126
109
  }
127
110
  settingsList.handleInput?.(data);
@@ -129,75 +112,91 @@ function createDisabledServersSubmenu(
129
112
  };
130
113
  }
131
114
 
115
+ /** Persist the complete disabled-server choice through the settings module action path. */
116
+ function persistDisabledServers(
117
+ scope: SettingsScope,
118
+ cwd: string,
119
+ value: string | undefined,
120
+ ): void {
121
+ const selected = value ? JSON.parse(value) : [];
122
+ if (!Array.isArray(selected) || !selected.every((item) => typeof item === "string")) {
123
+ throw new Error("Invalid disabled-server selection");
124
+ }
125
+ const disabled = new Set<string>(selected);
126
+ const currentSection = loadSupiConfigSectionForScope("lsp", cwd, { scope });
127
+ const servers =
128
+ (currentSection?.servers as Record<string, Record<string, unknown>> | undefined) ?? {};
129
+ const names = new Set([...Object.keys(servers), ...getConfiguredServers(cwd)]);
130
+ for (const name of names) {
131
+ if (disabled.has(name)) {
132
+ servers[name] = { ...(servers[name] ?? {}), enabled: false };
133
+ continue;
134
+ }
135
+ const server = servers[name];
136
+ if (!server) continue;
137
+ delete server.enabled;
138
+ if (Object.keys(server).length === 0) delete servers[name];
139
+ }
140
+ writeSupiConfig({ section: "lsp", scope, cwd }, { servers });
141
+ }
142
+
132
143
  export function registerLspSettings(pi: ExtensionAPI): void {
133
- registerDeclarativeSettings(pi, {
134
- id: "lsp",
135
- label: "LSP",
136
- section: "lsp",
137
- defaults: LSP_DEFAULTS,
138
- fields: [
139
- {
140
- kind: "stringList" as const,
141
- key: "exclude",
142
- label: "Exclude Patterns",
143
- description: "Gitignore patterns to suppress LSP diagnostics (comma-separated)",
144
- },
145
- {
146
- kind: "custom" as const,
147
- key: "disabled_servers",
148
- label: "Disabled Servers",
149
- description: "Press Enter to choose which language servers to disable",
150
- resolve: (scope, cwd) => {
151
- const scopedDisabled = getDisabledServersFromConfig(scope, cwd);
152
- const otherScope = scope === "project" ? "global" : "project";
153
- const otherDisabled =
154
- scope === "project" ? getDisabledServersFromConfig("global", cwd) : new Set<string>();
155
-
156
- // Effective disabled servers = union of both scopes (since either disables)
157
- const effectiveDisabled = new Set([...scopedDisabled, ...otherDisabled]);
158
- const label =
159
- effectiveDisabled.size > 0 ? [...effectiveDisabled].sort().join(", ") : "none disabled";
160
-
161
- // Source: where the override comes from
162
- let source: ValueSource;
163
- if (scopedDisabled.size > 0) {
164
- source = scope;
165
- } else if (otherDisabled.size > 0) {
166
- source = otherScope as ValueSource;
167
- } else {
168
- source = "default";
169
- }
170
-
171
- let inheritanceSource: "global" | "default" | undefined;
172
- if (scope === "project" && source === "project") {
173
- inheritanceSource =
174
- getDisabledServersFromConfig("global", cwd).size > 0 ? "global" : "default";
175
- }
176
-
177
- return { displayValue: label, source, inheritanceSource };
144
+ registerSettings(
145
+ pi,
146
+ defineConfigSettings({
147
+ id: "lsp",
148
+ label: "LSP",
149
+ section: "lsp",
150
+ defaults: LSP_DEFAULTS,
151
+ fields: [
152
+ {
153
+ kind: "stringList" as const,
154
+ key: "exclude",
155
+ label: "Exclude Patterns",
156
+ description: "Gitignore patterns to suppress LSP diagnostics (comma-separated)",
178
157
  },
179
- submenu: (_currentValue, done, scope, cwd) =>
180
- createDisabledServersSubmenu(scope, cwd, done),
181
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: custom field persist handler orchestrates nested config writes
182
- persist: (scope, cwd, action, _helpers) => {
183
- if (action.kind === "inherit" || action.kind === "resetToDefault") {
184
- // Clear all per-server enable/disable entries for this scope
185
- const currentSection = loadSupiConfigSectionForScope("lsp", cwd, { scope });
186
- const servers =
187
- (currentSection?.servers as Record<string, Record<string, unknown>> | undefined) ??
188
- {};
189
- for (const name of Object.keys(servers)) {
190
- const srv = servers[name];
191
- if (srv) {
192
- delete srv.enabled;
193
- if (Object.keys(srv).length === 0) delete servers[name];
194
- }
158
+ {
159
+ kind: "custom" as const,
160
+ key: "disabled_servers",
161
+ label: "Disabled Servers",
162
+ description: "Press Enter to choose which language servers to disable",
163
+ resolve: (scope, cwd) => {
164
+ const scopedDisabled = getDisabledServersFromConfig(scope, cwd);
165
+ const otherScope = scope === "project" ? "global" : "project";
166
+ const otherDisabled =
167
+ scope === "project" ? getDisabledServersFromConfig("global", cwd) : new Set<string>();
168
+
169
+ // Effective disabled servers = union of both scopes (since either disables)
170
+ const effectiveDisabled = new Set([...scopedDisabled, ...otherDisabled]);
171
+ const label =
172
+ effectiveDisabled.size > 0
173
+ ? [...effectiveDisabled].sort().join(", ")
174
+ : "none disabled";
175
+
176
+ // Source: where the override comes from
177
+ let source: ValueSource;
178
+ if (scopedDisabled.size > 0) {
179
+ source = scope;
180
+ } else if (otherDisabled.size > 0) {
181
+ source = otherScope as ValueSource;
182
+ } else {
183
+ source = "default";
184
+ }
185
+
186
+ let inheritanceSource: "global" | "default" | undefined;
187
+ if (scope === "project" && source === "project") {
188
+ inheritanceSource =
189
+ getDisabledServersFromConfig("global", cwd).size > 0 ? "global" : "default";
195
190
  }
196
- writeSupiConfig({ section: "lsp", scope, cwd }, { servers });
197
- }
198
- // Explicit set actions are handled entirely inside the submenu
191
+
192
+ return { displayValue: label, source, inheritanceSource };
193
+ },
194
+ submenu: (_currentValue, done, scope, cwd) =>
195
+ createDisabledServersSubmenu(scope, cwd, done),
196
+ persist: (scope, cwd, action) =>
197
+ persistDisabledServers(scope, cwd, action.kind === "set" ? action.value : undefined),
199
198
  },
200
- },
201
- ],
202
- });
199
+ ],
200
+ }),
201
+ );
203
202
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  import type { FindMode, FindWorkflowInput } from "../../session/find-types.ts";
4
4
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
5
- import { unavailableSearchDetails } from "../infra/error-results.ts";
6
5
  import { toWorkflowControl } from "../infra/workflow-control.ts";
6
+ import { searchErrorResult } from "../result/errors.ts";
7
7
  import { assembleFindWorkflowResult } from "../result/find.ts";
8
8
  import type { CodeFindAstKind } from "./ast-kinds.ts";
9
9
  import { renderFindResult } from "./render.ts";
@@ -23,13 +23,10 @@ export async function executeFindTool(
23
23
  const outcome = await ctx.session.find(params as FindWorkflowInput, toWorkflowControl(ctx));
24
24
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
25
25
  if (outcome.kind === "invalid-input") {
26
- return {
27
- content: `**Error:** ${outcome.message}`,
28
- details: unavailableSearchDetails(
29
- Array.isArray(params?.scope) ? params.scope.join(", ") : null,
30
- ["Fix the search input and retry"],
31
- ),
32
- };
26
+ return searchErrorResult(`**Error:** ${outcome.message}`, {
27
+ scope: Array.isArray(params?.scope) ? params.scope.join(", ") : null,
28
+ nextQueries: ["Fix the search input and retry"],
29
+ });
33
30
  }
34
31
 
35
32
  const assembly = assembleFindWorkflowResult(outcome);
@@ -3,8 +3,8 @@
3
3
  import type { GraphWorkflowInput, RequestedGraphRelation } from "../../session/graph-types.ts";
4
4
  import type { GraphTargetInput } from "../../session/target-input.ts";
5
5
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
6
- import { searchErrorResult } from "../infra/error-results.ts";
7
6
  import { toWorkflowControl } from "../infra/workflow-control.ts";
7
+ import { searchErrorResult } from "../result/errors.ts";
8
8
  import { assembleGraphResult } from "../result/graph.ts";
9
9
  import { renderGraphResult } from "./markdown.ts";
10
10
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  import type { HealthSection, HealthWorkflowInput } from "../../session/health-types.ts";
4
4
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
5
- import { unavailableHealthDetails } from "../infra/error-results.ts";
6
5
  import { toWorkflowControl } from "../infra/workflow-control.ts";
6
+ import { healthErrorResult } from "../result/errors.ts";
7
7
  import { assembleHealthResult } from "../result/health.ts";
8
8
  import { renderHealthResult } from "./markdown.ts";
9
9
 
@@ -21,10 +21,7 @@ export async function executeHealthTool(
21
21
  const outcome = await ctx.session.health(params as HealthWorkflowInput, toWorkflowControl(ctx));
22
22
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
23
23
  if (outcome.kind === "invalid-input") {
24
- return {
25
- content: `**Error:** ${outcome.message}`,
26
- details: unavailableHealthDetails("invalid input"),
27
- };
24
+ return healthErrorResult(`**Error:** ${outcome.message}`, "invalid input");
28
25
  }
29
26
 
30
27
  const assembly = assembleHealthResult(outcome.data);
@@ -3,8 +3,8 @@
3
3
  import type { InspectWorkflowInput } from "../../session/inspect-types.ts";
4
4
  import type { SourcePointInput } from "../../session/target-input.ts";
5
5
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
6
- import { unavailableInspectDetails } from "../infra/error-results.ts";
7
6
  import { toWorkflowControl } from "../infra/workflow-control.ts";
7
+ import { inspectErrorResult } from "../result/errors.ts";
8
8
  import { assembleInspectResult } from "../result/inspect.ts";
9
9
  import { renderInspectResult } from "./markdown.ts";
10
10
 
@@ -20,12 +20,10 @@ export async function executeInspectTool(
20
20
  const outcome = await ctx.session.inspect(params as InspectWorkflowInput, toWorkflowControl(ctx));
21
21
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
22
22
  if (outcome.kind === "invalid-input") {
23
- return {
24
- content: `**Error:** ${outcome.message}`,
25
- details: unavailableInspectDetails("invalid input", [
26
- "Provide an existing file and exact 1-based point",
27
- ]),
28
- };
23
+ return inspectErrorResult(`**Error:** ${outcome.message}`, {
24
+ focusTarget: "invalid input",
25
+ nextQueries: ["Provide an existing file and exact 1-based point"],
26
+ });
29
27
  }
30
28
 
31
29
  const assembly = assembleInspectResult(outcome.data, outcome.nextQueries);
@@ -5,8 +5,8 @@ import type {
5
5
  OrientationWorkflowInput,
6
6
  } from "../../session/orientation-types.ts";
7
7
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
8
- import { unavailableContextDetails } from "../infra/error-results.ts";
9
8
  import { toWorkflowControl } from "../infra/workflow-control.ts";
9
+ import { contextErrorResult } from "../result/errors.ts";
10
10
  import { assembleOrientationDetails, assembleOrientationResult } from "../result/orientation.ts";
11
11
  import { renderOrientationResult } from "./markdown.ts";
12
12
 
@@ -25,10 +25,9 @@ export async function executeOrientationTool(
25
25
  );
26
26
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
27
27
  if (outcome.kind === "invalid-input") {
28
- return {
29
- content: `**Error:** ${outcome.message}`,
30
- details: unavailableContextDetails(["Choose an existing path, module, or precise target"]),
31
- };
28
+ return contextErrorResult(`**Error:** ${outcome.message}`, {
29
+ nextQueries: ["Choose an existing path, module, or precise target"],
30
+ });
32
31
  }
33
32
  if (outcome.kind === "disambiguation" || outcome.kind === "kind-mismatch") {
34
33
  const candidates = outcome.candidates ?? [];
@@ -1,9 +1,9 @@
1
1
  /** Thin Pi adapter for session-owned refactor application. */
2
2
 
3
3
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
4
- import { unavailableSearchDetails } from "../infra/error-results.ts";
5
4
  import { toWorkflowControl } from "../infra/workflow-control.ts";
6
5
  import { renderRefactorApplyResult } from "../refactor-plan/markdown.ts";
6
+ import { searchErrorResult } from "../result/errors.ts";
7
7
  import { assembleRefactorApplyDetails } from "../result/refactor.ts";
8
8
 
9
9
  export interface CodeRefactorApplyToolParams {
@@ -17,10 +17,9 @@ export async function executeRefactorApplyTool(
17
17
  const outcome = await ctx.session.applyRefactor(params, toWorkflowControl(ctx));
18
18
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
19
19
  if (outcome.kind === "invalid-input") {
20
- return {
21
- content: `**Error:** ${outcome.message}`,
22
- details: unavailableSearchDetails(null, ["Generate a fresh plan with code_refactor_plan"]),
23
- };
20
+ return searchErrorResult(`**Error:** ${outcome.message}`, {
21
+ nextQueries: ["Generate a fresh plan with code_refactor_plan"],
22
+ });
24
23
  }
25
24
 
26
25
  const assembly = assembleRefactorApplyDetails(outcome.result, outcome.plan);
@@ -6,8 +6,8 @@ import type {
6
6
  } from "../../session/refactor-types.ts";
7
7
  import type { RefactorTargetInput } from "../../session/target-input.ts";
8
8
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
9
- import { unavailableSearchDetails } from "../infra/error-results.ts";
10
9
  import { toWorkflowControl } from "../infra/workflow-control.ts";
10
+ import { searchErrorResult } from "../result/errors.ts";
11
11
  import { assembleRefactorPlanDetails } from "../result/refactor.ts";
12
12
  import { renderRefactorPlanResult } from "./markdown.ts";
13
13
 
@@ -27,10 +27,9 @@ export async function executeRefactorPlanTool(
27
27
  );
28
28
  if (outcome.kind === "unavailable") throw new Error(outcome.reason);
29
29
  if (outcome.kind === "invalid-input") {
30
- return {
31
- content: `**Error:** ${outcome.message}`,
32
- details: unavailableSearchDetails(null, ["Fix the target or operation and retry"]),
33
- };
30
+ return searchErrorResult(`**Error:** ${outcome.message}`, {
31
+ nextQueries: ["Fix the target or operation and retry"],
32
+ });
34
33
  }
35
34
  if (outcome.kind === "ambiguous") {
36
35
  const candidates = outcome.candidates
@@ -39,10 +38,9 @@ export async function executeRefactorPlanTool(
39
38
  `${index + 1}. ${candidate.description} (${candidate.file}:${candidate.line})`,
40
39
  )
41
40
  .join("\n");
42
- return {
43
- content: `**Refactor ambiguous:**\n${candidates}`,
44
- details: unavailableSearchDetails(null, ["Use a precise target handle or anchor"]),
45
- };
41
+ return searchErrorResult(`**Refactor ambiguous:**\n${candidates}`, {
42
+ nextQueries: ["Use a precise target handle or anchor"],
43
+ });
46
44
  }
47
45
 
48
46
  const assembly = assembleRefactorPlanDetails(outcome.plan, ctx.cwd);
@@ -7,16 +7,9 @@
7
7
  * capability failures may still throw so PI marks the tool call as failed.
8
8
  */
9
9
 
10
- import type {
11
- CodeIntelResult,
12
- ContextDetails,
13
- HealthDetails,
14
- InspectDetails,
15
- ResolveDetails,
16
- SearchDetails,
17
- } from "../../types/index.ts";
10
+ import type { CodeIntelResult } from "../../types/index.ts";
18
11
 
19
- // ── Combined error-result factories (preferred) ──────────────────────
12
+ // ── Error-result factories ──────────────────────────────────────────
20
13
 
21
14
  /** Full error result for search-family tools (code_find, code_graph, code_refactor_plan). */
22
15
  export function searchErrorResult(
@@ -60,27 +53,6 @@ export function contextErrorResult(
60
53
  };
61
54
  }
62
55
 
63
- /** Full error result for code_resolve. */
64
- export function resolveErrorResult(
65
- content: string,
66
- opts?: { nextQueries?: string[] },
67
- ): CodeIntelResult {
68
- return {
69
- content,
70
- details: {
71
- type: "resolve" as const,
72
- data: {
73
- resultKind: "unavailable" as const,
74
- confidence: "unavailable" as const,
75
- targetCount: 0,
76
- omittedCount: 0,
77
- targets: [],
78
- nextQueries: opts?.nextQueries ?? [],
79
- },
80
- },
81
- };
82
- }
83
-
84
56
  /** Full error result for code_inspect. */
85
57
  export function inspectErrorResult(
86
58
  content: string,
@@ -131,55 +103,3 @@ export function healthErrorResult(content: string, reason?: string): CodeIntelRe
131
103
  },
132
104
  };
133
105
  }
134
-
135
- // ── Details-only helpers (thin wrappers — prefer combined factories above) ─
136
-
137
- export function unavailableSearchDetails(
138
- scope: string | null,
139
- nextQueries: string[],
140
- ): { type: "search"; data: SearchDetails } {
141
- return searchErrorResult("", { scope, nextQueries }).details as {
142
- type: "search";
143
- data: SearchDetails;
144
- };
145
- }
146
-
147
- export function unavailableContextDetails(nextQueries: string[]): {
148
- type: "context";
149
- data: ContextDetails;
150
- } {
151
- return contextErrorResult("", { nextQueries }).details as {
152
- type: "context";
153
- data: ContextDetails;
154
- };
155
- }
156
-
157
- export function unavailableResolveDetails(nextQueries: string[]): {
158
- type: "resolve";
159
- data: ResolveDetails;
160
- } {
161
- return resolveErrorResult("", { nextQueries }).details as {
162
- type: "resolve";
163
- data: ResolveDetails;
164
- };
165
- }
166
-
167
- export function unavailableInspectDetails(
168
- focusTarget: string,
169
- nextQueries: string[],
170
- ): { type: "inspect"; data: InspectDetails } {
171
- return inspectErrorResult("", { focusTarget, nextQueries }).details as {
172
- type: "inspect";
173
- data: InspectDetails;
174
- };
175
- }
176
-
177
- export function unavailableHealthDetails(reason: string): {
178
- type: "health";
179
- data: HealthDetails;
180
- } {
181
- return healthErrorResult("", reason).details as {
182
- type: "health";
183
- data: HealthDetails;
184
- };
185
- }
@@ -8,7 +8,7 @@
8
8
 
9
9
  import { getMarkdownTheme, type Theme } from "@earendil-works/pi-coding-agent";
10
10
  import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
11
- import { formatEvidenceBadge } from "@mrclrchtr/supi-code-runtime/api";
11
+ import { formatEvidenceBadge } from "@mrclrchtr/supi-core/evidence-badge";
12
12
 
13
13
  // ── Result type ──────────────────────────────────────────────────
14
14