@mrclrchtr/supi-code-intelligence 4.7.0 → 4.9.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 (223) 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 +29 -35
  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/debug-registry.ts +8 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/debug-timing.ts +107 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  14. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  15. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  16. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/README.md +29 -35
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +8 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/debug-timing.ts +107 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  33. package/node_modules/@mrclrchtr/supi-lsp/package.json +3 -3
  34. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-diagnostics.ts +361 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +46 -238
  36. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +25 -33
  37. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  38. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  39. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  40. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/README.md +29 -35
  41. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  42. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  43. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  44. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  45. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  46. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  47. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +8 -0
  48. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/debug-timing.ts +107 -0
  49. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  50. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  51. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  52. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  53. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +3 -3
  54. package/package.json +5 -5
  55. package/src/analysis/search/ast-scan-timing.ts +59 -0
  56. package/src/analysis/search/pattern-analysis.ts +230 -0
  57. package/src/analysis/search/pattern.ts +22 -224
  58. package/src/config.ts +19 -16
  59. package/src/substrate/lsp/settings.ts +90 -91
  60. package/src/tool/find/execute.ts +5 -8
  61. package/src/tool/graph/execute.ts +1 -1
  62. package/src/tool/health/execute.ts +2 -5
  63. package/src/tool/inspect/execute.ts +5 -7
  64. package/src/tool/orientation/execute.ts +4 -5
  65. package/src/tool/refactor-apply/execute.ts +4 -5
  66. package/src/tool/refactor-plan/execute.ts +7 -9
  67. package/src/tool/result/errors.ts +2 -82
  68. package/src/ui/tui/common.ts +1 -1
  69. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  70. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  71. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  72. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  73. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  74. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  75. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  76. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  77. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  78. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  79. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  80. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  81. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  82. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  83. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  84. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  85. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  86. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  87. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  88. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  89. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  90. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  91. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  92. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  93. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  94. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  95. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  96. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  97. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  98. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  99. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  100. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  101. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  102. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  103. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  104. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  105. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  106. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  107. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  108. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  109. package/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  110. package/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  111. package/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  112. package/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  113. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  114. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  115. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  116. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  117. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  118. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  126. 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
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  145. 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
  146. 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
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  169. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-refresh.ts +0 -234
  170. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostics.ts +0 -99
  171. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/suppression-diagnostics.ts +0 -60
  172. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +0 -41
  173. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  174. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  175. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  176. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  177. 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
  178. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  179. 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
  180. 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
  181. 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
  182. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  183. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  184. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  185. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  186. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  187. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  188. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  189. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  190. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  191. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  192. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  193. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  194. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  195. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  196. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  197. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  198. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  207. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  208. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  209. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  210. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  211. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  212. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  213. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  214. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  215. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  216. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  217. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  218. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  219. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  220. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  221. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  222. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  223. package/src/tool/infra/error-results.ts +0 -19
@@ -1,26 +1,19 @@
1
- // Declarative settings schema for SuPi extensions.
1
+ // Fixed SuPi-config adapter for the canonical settings module interface.
2
2
  //
3
- // Replaces the imperative config-backed buildItems/persistChange contribution
4
- // with a declarative field descriptor model. The shared settings module owns
5
- // scope inheritance, source-state resolution, value rendering, persistence,
6
- // and Inherit/Reset-to-default actions.
3
+ // Declarative field descriptors let the adapter own scope inheritance,
4
+ // source-state resolution, value rendering, persistence, and Unset actions.
7
5
  //
8
6
  // Custom fields remain for nested or unusual config; they report the same
9
7
  // source state as declarative flat fields.
10
8
 
11
- import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
9
+ import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
12
10
  import type { Component } from "@earendil-works/pi-tui";
13
11
  import {
14
12
  loadSupiConfigSectionForScope,
15
13
  removeSupiConfigKey,
16
14
  writeSupiConfig,
17
15
  } from "../config/config.ts";
18
- import {
19
- isSettingsContributionCollector,
20
- type SettingsScope,
21
- type SettingsSection,
22
- SUPI_SETTINGS_COLLECT_EVENT,
23
- } from "./settings-registry.ts";
16
+ import type { SettingsApplyResult, SettingsModule, SettingsScope } from "./settings-registry.ts";
24
17
 
25
18
  // ── Types ──────────────────────────────────────────────────────────────────
26
19
 
@@ -52,10 +45,7 @@ export interface ConfigHelpers {
52
45
  // ── Field actions ─────────────────────────────────────────────────────────
53
46
 
54
47
  /** A user-initiated action on a settings row. */
55
- export type SettingsFieldAction =
56
- | { kind: "set"; value: string }
57
- | { kind: "inherit" }
58
- | { kind: "resetToDefault" };
48
+ export type SettingsAction = { kind: "set"; value: string } | { kind: "unset" };
59
49
 
60
50
  // ── Field descriptors ─────────────────────────────────────────────────────
61
51
 
@@ -153,15 +143,15 @@ export interface CustomField extends BaseField {
153
143
  ctx?: ExtensionContext,
154
144
  ) => Component;
155
145
  /**
156
- * Persist handler called on set/inherit/resetToDefault actions.
146
+ * Persist handler called on set or unset actions.
157
147
  * Required for custom fields so they can write their nested config.
158
148
  */
159
149
  persist: (
160
150
  scope: SettingsScope,
161
151
  cwd: string,
162
- action: SettingsFieldAction,
152
+ action: SettingsAction,
163
153
  helpers: ConfigHelpers,
164
- ) => void;
154
+ ) => void | Promise<void>;
165
155
  }
166
156
 
167
157
  /** Union of all supported field kinds. */
@@ -176,8 +166,8 @@ export type SettingsField =
176
166
 
177
167
  // ── Contribution options ──────────────────────────────────────────────────
178
168
 
179
- /** Options for registerDeclarativeSettings. */
180
- export interface DeclarativeSettingsOptions {
169
+ /** Options for the fixed SuPi-config settings adapter. */
170
+ export interface ConfigSettingsOptions {
181
171
  /** Stable contribution identifier — e.g. "lsp", "claude-md". */
182
172
  id: string;
183
173
  /** Human-readable label shown in the UI. */
@@ -194,7 +184,7 @@ export interface DeclarativeSettingsOptions {
194
184
  homeDir?: string;
195
185
  }
196
186
 
197
- // ── Scoped section interface ─────────────────────────────────────────────
187
+ // ── Source-aware row interface ───────────────────────────────────────────
198
188
 
199
189
  /** Resolved value for one field in one scope. */
200
190
  export interface ScopedFieldValue {
@@ -305,14 +295,14 @@ function createConfigHelpers(
305
295
  };
306
296
  }
307
297
 
308
- // ── Scoped section factory ────────────────────────────────────────────────
298
+ // ── Fixed config adapter ─────────────────────────────────────────────────
309
299
 
310
300
  interface NotifyAfterPersistInput {
311
- options: DeclarativeSettingsOptions;
301
+ options: ConfigSettingsOptions;
312
302
  field: SettingsField;
313
303
  scope: SettingsScope;
314
304
  cwd: string;
315
- action: SettingsFieldAction;
305
+ action: SettingsAction;
316
306
  storedValue: unknown;
317
307
  ctx?: ExtensionContext;
318
308
  }
@@ -354,86 +344,86 @@ function notifyAfterPersist(input: NotifyAfterPersistInput): void {
354
344
  options.afterPersist(change);
355
345
  }
356
346
 
357
- function toDeclarativeSection(options: DeclarativeSettingsOptions): SettingsSection {
347
+ function resolveConfigRows(
348
+ options: ConfigSettingsOptions,
349
+ scope: SettingsScope,
350
+ cwd: string,
351
+ ctx?: ExtensionContext,
352
+ ): ScopedFieldValue[] {
358
353
  const defaults = options.defaults as Record<string, unknown>;
354
+ const projectRaw = loadSupiConfigSectionForScope(options.section, cwd, {
355
+ scope: "project",
356
+ homeDir: options.homeDir,
357
+ });
358
+ const globalRaw = loadSupiConfigSectionForScope(options.section, cwd, {
359
+ scope: "global",
360
+ homeDir: options.homeDir,
361
+ });
362
+
363
+ return options.fields.map((field) => {
364
+ if (field.kind === "custom") {
365
+ const resolved = field.resolve(scope, cwd, ctx);
366
+ return {
367
+ field,
368
+ displayValue: resolved.displayValue
369
+ ? sourceBadge(resolved.displayValue, resolved.source)
370
+ : "",
371
+ editValue: resolved.editValue ?? resolved.displayValue,
372
+ source: resolved.source,
373
+ inheritanceSource: resolved.inheritanceSource,
374
+ };
375
+ }
376
+
377
+ const { value, source } = resolveValue(field.key, defaults, projectRaw, globalRaw, scope);
378
+ const displayValue = formatValue(value, field);
379
+ const inheritanceSource =
380
+ scope === "project" && source === "project"
381
+ ? globalRaw && field.key in globalRaw
382
+ ? "global"
383
+ : "default"
384
+ : undefined;
385
+
386
+ return {
387
+ field,
388
+ displayValue: sourceBadge(displayValue, source),
389
+ editValue: formatEditValue(value, field),
390
+ source,
391
+ inheritanceSource,
392
+ };
393
+ });
394
+ }
395
+
396
+ async function applyConfigAction(
397
+ options: ConfigSettingsOptions,
398
+ request: Parameters<SettingsModule["apply"]>[0],
399
+ ): Promise<SettingsApplyResult> {
400
+ const { scope, cwd, fieldKey, action, ctx } = request;
401
+ const field = options.fields.find((candidate) => candidate.key === fieldKey);
402
+ if (!field) return {};
403
+
404
+ const helpers = createConfigHelpers(options.section, scope, cwd, options.homeDir);
405
+ let storedValue: unknown;
406
+ if (field.kind === "custom") {
407
+ await field.persist(scope, cwd, action, helpers);
408
+ storedValue = action.kind === "set" ? action.value : undefined;
409
+ } else if (action.kind === "set") {
410
+ storedValue = parseTypedValue(action.value, field);
411
+ helpers.set(field.key, storedValue);
412
+ } else {
413
+ helpers.unset(field.key);
414
+ }
415
+ notifyAfterPersist({ options, field, scope, cwd, action, storedValue, ctx });
416
+ return {};
417
+ }
418
+
419
+ /** Adapt one fixed SuPi config section to the canonical settings interface. */
420
+ export function defineConfigSettings(options: ConfigSettingsOptions): SettingsModule {
359
421
  return {
360
422
  id: options.id,
361
423
  label: options.label,
362
- loadValues: (scope, cwd, ctx) => {
363
- // Load raw section data for both scopes (no defaults)
364
- const projectRaw = loadSupiConfigSectionForScope(options.section, cwd, {
365
- scope: "project",
366
- homeDir: options.homeDir,
367
- });
368
- const globalRaw = loadSupiConfigSectionForScope(options.section, cwd, {
369
- scope: "global",
370
- homeDir: options.homeDir,
371
- });
372
-
373
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: natural discriminator on field kind and source
374
- return options.fields.map((field) => {
375
- if (field.kind === "custom") {
376
- const resolved = field.resolve(scope, cwd, ctx);
377
- return {
378
- field,
379
- displayValue: resolved.displayValue
380
- ? sourceBadge(resolved.displayValue, resolved.source)
381
- : "",
382
- editValue: resolved.editValue ?? resolved.displayValue,
383
- source: resolved.source,
384
- inheritanceSource: resolved.inheritanceSource,
385
- };
386
- }
387
-
388
- const { value, source } = resolveValue(field.key, defaults, projectRaw, globalRaw, scope);
389
- const displayValue = formatValue(value, field);
390
-
391
- // Compute inheritanceSource for project-scope overrides
392
- let inheritanceSource: "global" | "default" | undefined;
393
- if (scope === "project" && source === "project") {
394
- inheritanceSource = globalRaw && field.key in globalRaw ? "global" : "default";
395
- }
396
-
397
- return {
398
- field,
399
- displayValue: sourceBadge(displayValue, source),
400
- editValue: formatEditValue(value, field),
401
- source,
402
- inheritanceSource,
403
- };
404
- });
405
- },
406
- // biome-ignore lint/complexity/useMaxParams: SettingsSection action handlers receive scope, cwd, field, action, and optional context
407
- handleAction: (scope, cwd, fieldKey, action, ctx) => {
408
- const field = options.fields.find((f) => f.key === fieldKey);
409
- if (!field) return;
410
-
411
- const section = options.section;
412
- const helpers = createConfigHelpers(section, scope, cwd, options.homeDir);
413
- let storedValue: unknown;
414
-
415
- if (field.kind === "custom") {
416
- field.persist(scope, cwd, action, helpers);
417
- storedValue = action.kind === "set" ? action.value : undefined;
418
- notifyAfterPersist({ options, field, scope, cwd, action, storedValue, ctx });
419
- return;
420
- }
421
-
422
- switch (action.kind) {
423
- case "set": {
424
- storedValue = parseTypedValue(action.value, field);
425
- helpers.set(field.key, storedValue);
426
- break;
427
- }
428
- case "inherit":
429
- case "resetToDefault": {
430
- helpers.unset(field.key);
431
- break;
432
- }
433
- }
434
-
435
- notifyAfterPersist({ options, field, scope, cwd, action, storedValue, ctx });
436
- },
424
+ read: ({ scope, cwd, ctx }) =>
425
+ Promise.resolve({ rows: resolveConfigRows(options, scope, cwd, ctx) }),
426
+ apply: (request) => applyConfigAction(options, request),
437
427
  };
438
428
  }
439
429
 
@@ -461,27 +451,3 @@ export function parseTypedValue(value: string, field: SettingsField): unknown {
461
451
  return value;
462
452
  }
463
453
  }
464
-
465
- // ── Registration ──────────────────────────────────────────────────────────
466
-
467
- /**
468
- * Register a declarative settings contribution for `/supi-settings`.
469
- *
470
- * Contributions are collected through PI's process-local event bus. Call this
471
- * during the extension factory function, not in async session handlers.
472
- */
473
- export function registerDeclarativeSettings(
474
- pi: ExtensionAPI,
475
- options: DeclarativeSettingsOptions,
476
- ): void {
477
- const section = toDeclarativeSection(options);
478
- const dispose = pi.events.on(SUPI_SETTINGS_COLLECT_EVENT, (collector) => {
479
- if (isSettingsContributionCollector(collector)) {
480
- collector.add(section);
481
- }
482
- });
483
-
484
- pi.on("session_shutdown", () => {
485
- dispose();
486
- });
487
- }
@@ -1,33 +1,36 @@
1
- // supi-core settings domain — event-backed declarative settings contributions and command wiring.
2
-
3
- export { registerSettingsCommand } from "./settings/settings-command.ts";
1
+ // supi-core settings domain — settings modules and fixed-config adapters.
4
2
  export type {
3
+ SettingsActionRequest,
4
+ SettingsApplyResult,
5
5
  SettingsCollectionDiagnostic,
6
6
  SettingsCollectionResult,
7
+ SettingsContext,
7
8
  SettingsContributionCollector,
9
+ SettingsModule,
8
10
  SettingsScope,
9
- SettingsSection,
11
+ SettingsSnapshot,
10
12
  } from "./settings/settings-registry.ts";
11
13
  export {
12
14
  createSettingsContributionCollector,
13
15
  isSettingsContributionCollector,
16
+ registerSettings,
14
17
  SUPI_SETTINGS_COLLECT_EVENT,
15
18
  } from "./settings/settings-registry.ts";
16
19
  export type {
17
20
  BoolField,
18
21
  ConfigHelpers,
22
+ ConfigSettingsOptions,
19
23
  CustomField,
20
- DeclarativeSettingsOptions,
21
24
  EnumField,
22
25
  ModelPickerField,
23
26
  ModelPickerStaticOption,
24
27
  NumberField,
25
28
  ScopedFieldValue,
29
+ SettingsAction,
26
30
  SettingsField,
27
- SettingsFieldAction,
28
31
  SettingsPersistedChange,
29
32
  StringField,
30
33
  StringListField,
31
34
  ValueSource,
32
35
  } from "./settings/settings-schema.ts";
33
- export { registerDeclarativeSettings } from "./settings/settings-schema.ts";
36
+ export { defineConfigSettings } from "./settings/settings-schema.ts";
@@ -12,7 +12,7 @@ This is a **library-only package** — it has no pi extension surface, no user-f
12
12
 
13
13
  ## Package surfaces
14
14
 
15
- - `@mrclrchtr/supi-code-runtime/api` — shared canonical types, capability interfaces, workspace runtime registry, and typed request context
15
+ - `@mrclrchtr/supi-code-runtime/api` — shared canonical types, capability interfaces, and the workspace runtime registry
16
16
 
17
17
  Read-only provider methods return `CodeQueryResult<T>`:
18
18
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-code-runtime",
3
- "version": "4.7.0",
3
+ "version": "4.9.0",
4
4
  "description": "Shared workspace context and capability contracts for code intelligence",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,20 +28,6 @@
28
28
  "src/**/*.ts",
29
29
  "!__tests__"
30
30
  ],
31
- "dependencies": {
32
- "@mrclrchtr/supi-core": "4.7.0"
33
- },
34
- "bundledDependencies": [
35
- "@mrclrchtr/supi-core"
36
- ],
37
- "peerDependencies": {
38
- "@earendil-works/pi-coding-agent": "*"
39
- },
40
- "peerDependenciesMeta": {
41
- "@earendil-works/pi-coding-agent": {
42
- "optional": true
43
- }
44
- },
45
31
  "main": "src/api.ts",
46
32
  "exports": {
47
33
  "./api": "./src/api.ts",
@@ -2,12 +2,10 @@
2
2
  * Public API surface for @mrclrchtr/supi-code-runtime.
3
3
  *
4
4
  * This package exports shared canonical types, capability interfaces,
5
- * workspace runtime primitives, and typed request context helpers.
5
+ * and workspace runtime primitives.
6
6
  * It is a library-only package with no pi extension entrypoint.
7
7
  */
8
8
 
9
- // Evidence display — re-exported from supi-core
10
- export { type EvidenceBadgeInput, formatEvidenceBadge } from "@mrclrchtr/supi-core/evidence-badge";
11
9
  // Capability interfaces and availability states
12
10
  export type {
13
11
  CapabilityState,
@@ -47,9 +45,6 @@ export type {
47
45
  SourceRange,
48
46
  WorkspaceEdit,
49
47
  } from "./types.ts";
50
- export type { WorkspaceContext } from "./workspace/context.ts";
51
- // Workspace context
52
- export { createWorkspaceContext } from "./workspace/context.ts";
53
48
  export type { WorkspaceCapabilities } from "./workspace/runtime.ts";
54
49
  // Workspace runtime
55
50
  export { getDefaultWorkspaceRuntime, WorkspaceRuntime } from "./workspace/runtime.ts";
@@ -37,33 +37,18 @@ Config file locations:
37
37
 
38
38
  ### Settings helpers
39
39
 
40
- - `registerDeclarativeSettings(pi, options)` — contribute a config-backed declarative settings section with source-aware scoped persistence
41
- - `registerSettingsCommand(pi)` — register `/supi-settings` (used by `@mrclrchtr/supi-settings`)
42
- - `openSettingsOverlay(pi, ctx)` open the shared settings UI directly
43
- - `createInputSubmenu()` — helper for simple text-entry submenus
44
- - `createModelPickerSubmenu()` — helper for scoped model selection submenus, with optional host-owned choices and `disabled` control
45
-
46
- The built-in settings UI supports:
47
-
48
- - project/global scope toggle
49
- - source badges for project, global, and default values
50
- - Inherit/Reset actions that delete scoped config keys
51
- - grouped extension sections
52
- - searchable setting lists
40
+ - `registerSettings(pi, module)` — register one canonical asynchronous settings module
41
+ - `defineConfigSettings(options)` — adapt a fixed SuPi config section to that module interface
42
+ - settings registry helpers and types for the `@mrclrchtr/supi-settings` configuration surface
53
43
 
54
44
  ### Context helpers
55
45
 
56
46
  - `wrapExtensionContext()` — wrap injected text in SuPi's `<extension-context>` tag
57
- - `findLastUserMessageIndex()`
58
- - `getContextToken()`
59
- - `getPromptContent()`
60
- - `pruneAndReorderContextMessages()`
61
- - `restorePromptContent()`
62
47
 
63
48
  ### Shared registries
64
49
 
65
50
  - context-provider registry for `/supi-context`
66
- - debug-event registry for producers that want shared debug capture
51
+ - debug-event registry and monotonic phase timers for producers that want shared debug capture
67
52
  - settings registry used by `/supi-settings`
68
53
 
69
54
  ### Project and session helpers
@@ -84,25 +69,33 @@ The built-in settings UI supports:
84
69
 
85
70
  ```ts
86
71
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
87
- import { loadSupiConfig, registerDeclarativeSettings, wrapExtensionContext } from "@mrclrchtr/supi-core/api";
72
+ import {
73
+ defineConfigSettings,
74
+ loadSupiConfig,
75
+ registerSettings,
76
+ wrapExtensionContext,
77
+ } from "@mrclrchtr/supi-core/api";
88
78
 
89
79
  export default function myExtension(pi: ExtensionAPI) {
90
80
  const defaults = { enabled: true };
91
81
  const config = loadSupiConfig("my-extension", process.cwd(), defaults);
92
82
 
93
- registerDeclarativeSettings(pi, {
94
- id: "my-extension",
95
- label: "My Extension",
96
- section: "my-extension",
97
- defaults,
98
- fields: [
99
- {
100
- kind: "boolean" as const,
101
- key: "enabled",
102
- label: "Enabled",
103
- },
104
- ],
105
- });
83
+ registerSettings(
84
+ pi,
85
+ defineConfigSettings({
86
+ id: "my-extension",
87
+ label: "My Extension",
88
+ section: "my-extension",
89
+ defaults,
90
+ fields: [
91
+ {
92
+ kind: "boolean" as const,
93
+ key: "enabled",
94
+ label: "Enabled",
95
+ },
96
+ ],
97
+ }),
98
+ );
106
99
 
107
100
  const message = wrapExtensionContext("my-extension", "hello", {
108
101
  enabled: config.enabled,
@@ -115,6 +108,7 @@ export default function myExtension(pi: ExtensionAPI) {
115
108
 
116
109
  - `src/api.ts` — exported library surface
117
110
  - `src/config.ts` — shared config loading and writing
118
- - `src/config-settings.ts` — config-backed settings registration helper
119
- - `src/settings-ui.ts` — shared settings overlay
111
+ - `src/debug-registry.ts` — Debug domain surface, event state, retention, redaction, listeners, and queries
112
+ - `src/debug-timing.ts` — monotonic total and phase timers for Debug Event Producers
113
+ - `src/settings/` — settings registry, schema, scope resolution, and persistence
120
114
  - `src/report.ts` — shared text/report rendering helpers
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-core",
3
- "version": "4.7.0",
3
+ "version": "4.9.0",
4
4
  "description": "Shared settings, configuration, reporting, and session infrastructure",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -60,16 +60,13 @@
60
60
  "./model-selection": "./src/model-selection.ts",
61
61
  "./package.json": "./package.json",
62
62
  "./path": "./src/path.ts",
63
- "./report": "./src/report.ts",
64
- "./progress-widget": "./src/progress-widget.ts",
65
63
  "./project": "./src/project.ts",
64
+ "./prompt-surface": "./src/prompt-surface.ts",
65
+ "./report": "./src/report.ts",
66
66
  "./session": "./src/session.ts",
67
67
  "./settings": "./src/settings.ts",
68
- "./settings-ui": "./src/settings-ui.ts",
69
68
  "./spinner-frames": "./src/spinner-frames.ts",
70
69
  "./status-spinner": "./src/status-spinner.ts",
71
- "./terminal": "./src/terminal.ts",
72
- "./tool-framework": "./src/tool-framework.ts",
73
- "./prompt-surface": "./src/prompt-surface.ts"
70
+ "./terminal": "./src/terminal.ts"
74
71
  }
75
72
  }
@@ -1,6 +1,6 @@
1
1
  // supi-core — shared infrastructure for SuPi extensions.
2
- // Provides XML context tag wrapping, unified config system, context-message utilities,
3
- // settings registry for supi-wide TUI settings, and a shared tool-spec/registration framework.
2
+ // Provides XML context tag wrapping, unified config, prompt-surface resolution,
3
+ // and shared settings, reporting, and session utilities.
4
4
  //
5
5
  // Convenience barrel — re-exports all domain entry points.
6
6
  // For lighter imports, use one of the domain subpaths directly
@@ -25,18 +25,16 @@ export * from "./path.ts";
25
25
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
26
26
  export * from "./project.ts";
27
27
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
28
+ export * from "./prompt-surface.ts";
29
+ // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
28
30
  export * from "./report.ts";
29
31
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
30
32
  export * from "./session.ts";
31
33
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
32
34
  export * from "./settings.ts";
33
35
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
34
- export * from "./settings-ui.ts";
35
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
36
36
  export * from "./spinner-frames.ts";
37
37
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
38
38
  export * from "./status-spinner.ts";
39
39
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
40
40
  export * from "./terminal.ts";
41
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
42
- export * from "./tool-framework.ts";
@@ -199,23 +199,3 @@ function extractSection(
199
199
  }
200
200
  return null;
201
201
  }
202
-
203
- /**
204
- * Shorthand for {@link loadSupiConfig} that infers the return type from defaults.
205
- *
206
- * Reduces boilerplate when a package only needs the merged runtime config.
207
- *
208
- * @example
209
- * ```ts
210
- * const config = loadSectionConfig("my-ext", cwd, { enabled: true, timeout: 30 });
211
- * // config is typed as { enabled: boolean; timeout: number }
212
- * ```
213
- */
214
- export function loadSectionConfig<T extends Record<string, unknown>>(
215
- section: string,
216
- cwd: string,
217
- defaults: T,
218
- options?: SupiConfigOptions,
219
- ): T {
220
- return loadSupiConfig(section, cwd, defaults, options);
221
- }
@@ -8,11 +8,17 @@ import {
8
8
  type ExtensionContext,
9
9
  hasTrustRequiringProjectResources,
10
10
  } from "@earendil-works/pi-coding-agent";
11
- import type { SuiPiToolPromptSurface } from "../tool-framework.ts";
12
11
  import { loadSupiConfigSectionForScope, type SupiConfigOptions } from "./config.ts";
13
12
 
14
13
  // ── Public types ───────────────────────────────────────────────────────────
15
14
 
15
+ /** Model-facing text that PI adds to one registered tool's prompt surface. */
16
+ export interface SuiPiToolPromptSurface {
17
+ description: string;
18
+ promptSnippet: string;
19
+ promptGuidelines: string[];
20
+ }
21
+
16
22
  export type ToolPromptSurfaceDiagnosticCode =
17
23
  | "invalidPromptSurfaceConfig"
18
24
  | "invalidPromptSurfaceField"
@@ -1,7 +1,6 @@
1
1
  // supi-core config domain — config loading.
2
2
  export type { SupiConfigLocation, SupiConfigOptions } from "./config/config.ts";
3
3
  export {
4
- loadSectionConfig,
5
4
  loadSupiConfig,
6
5
  loadSupiConfigForScope,
7
6
  loadSupiConfigSectionForScope,
@@ -1,12 +1,4 @@
1
- // supi-core context domain — context messages, providers, and XML tags.
2
- export type { ContextMessageLike } from "./context/context-messages.ts";
3
- export {
4
- findLastUserMessageIndex,
5
- getContextToken,
6
- getPromptContent,
7
- pruneAndReorderContextMessages,
8
- restorePromptContent,
9
- } from "./context/context-messages.ts";
1
+ // supi-core context domain — context providers and XML tags.
10
2
  export type { ContextProvider } from "./context/context-provider-registry.ts";
11
3
  export {
12
4
  clearRegisteredContextProviders,
@@ -4,6 +4,9 @@
4
4
  // supi-debug extension owns policy/configuration and exposes events through a
5
5
  // command/tool while this module stays dependency-free for producers.
6
6
 
7
+ // biome-ignore lint/performance/noReExportAll: preserve the stable debug domain entry point
8
+ export * from "./debug-timing.ts";
9
+
7
10
  export type DebugLevel = "debug" | "info" | "warning" | "error";
8
11
  export type DebugAgentAccess = "off" | "sanitized" | "raw";
9
12
  export interface DebugRegistryConfig {
@@ -180,6 +183,11 @@ export function getDebugRegistryConfig(): DebugRegistryConfig {
180
183
  return cloneConfig(getState().config);
181
184
  }
182
185
 
186
+ /** Return whether the Debug Registry currently retains producer events. */
187
+ export function isDebugRegistryEnabled(): boolean {
188
+ return getState().config.enabled;
189
+ }
190
+
183
191
  /** Best-effort redaction helper for data exposed through sanitized debug views. */
184
192
  export function redactDebugData<T>(value: T): T {
185
193
  return redactValue(value, 8) as T;