@mrclrchtr/supi-code-intelligence 4.7.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 (214) 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/package.json +5 -5
  49. package/src/config.ts +19 -16
  50. package/src/substrate/lsp/settings.ts +90 -91
  51. package/src/tool/find/execute.ts +5 -8
  52. package/src/tool/graph/execute.ts +1 -1
  53. package/src/tool/health/execute.ts +2 -5
  54. package/src/tool/inspect/execute.ts +5 -7
  55. package/src/tool/orientation/execute.ts +4 -5
  56. package/src/tool/refactor-apply/execute.ts +4 -5
  57. package/src/tool/refactor-plan/execute.ts +7 -9
  58. package/src/tool/result/errors.ts +2 -82
  59. package/src/ui/tui/common.ts +1 -1
  60. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  61. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  62. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  63. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  64. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  65. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  66. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  67. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  68. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  69. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  70. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  71. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  72. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  73. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  74. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  75. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  76. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  77. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  78. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  79. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  80. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  81. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  82. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  83. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  84. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  85. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  86. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  87. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  88. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  89. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  90. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  91. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  92. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  93. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  94. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  95. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  96. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  97. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  98. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  99. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  100. package/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  101. package/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  102. package/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  103. package/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  104. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  105. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  106. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  107. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  108. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  109. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  117. 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
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  136. 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
  137. 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
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  160. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-refresh.ts +0 -234
  161. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostics.ts +0 -99
  162. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/suppression-diagnostics.ts +0 -60
  163. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +0 -41
  164. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  165. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  166. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  167. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  168. 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
  169. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  170. 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
  171. 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
  172. 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
  173. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  174. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  175. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  176. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  177. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  178. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  179. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  180. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  181. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  182. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  183. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  184. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  185. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  186. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  187. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  188. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  189. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  198. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  199. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  200. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  201. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  202. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  203. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  204. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  205. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  206. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  207. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  208. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  209. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  210. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  211. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  212. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  213. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  214. 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