@mrclrchtr/supi-code-intelligence 4.6.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  2. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  3. package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  4. package/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  5. package/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  6. package/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  7. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  8. package/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  9. package/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  10. package/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  11. package/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  12. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  13. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  14. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  15. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  16. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  29. package/node_modules/@mrclrchtr/supi-lsp/package.json +3 -3
  30. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-diagnostics.ts +361 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +46 -238
  32. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +25 -33
  33. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +1 -1
  34. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -15
  35. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +1 -6
  36. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/README.md +26 -34
  37. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +4 -7
  38. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +4 -6
  39. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -20
  40. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +7 -1
  41. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -1
  42. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +1 -9
  43. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +4 -6
  44. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +54 -28
  45. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +91 -125
  46. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +10 -7
  47. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +3 -3
  48. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/outline-html-sql.ts +1 -1
  49. package/package.json +5 -5
  50. package/src/config.ts +19 -16
  51. package/src/substrate/lsp/settings.ts +90 -91
  52. package/src/tool/find/execute.ts +5 -8
  53. package/src/tool/graph/execute.ts +1 -1
  54. package/src/tool/health/execute.ts +2 -5
  55. package/src/tool/inspect/execute.ts +5 -7
  56. package/src/tool/orientation/execute.ts +4 -5
  57. package/src/tool/refactor-apply/execute.ts +4 -5
  58. package/src/tool/refactor-plan/execute.ts +7 -9
  59. package/src/tool/result/errors.ts +2 -82
  60. package/src/ui/tui/common.ts +1 -1
  61. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  62. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  63. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  64. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  65. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  66. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  67. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  68. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  69. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  70. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  71. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  72. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  73. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  74. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  75. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  76. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  77. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  78. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  79. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  80. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  81. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  82. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  83. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  84. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  85. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  86. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  87. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  88. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  89. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  90. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  91. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  92. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  93. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  94. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  95. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  96. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  97. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  98. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  99. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  100. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  101. package/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  102. package/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  103. package/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  104. package/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  105. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  106. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  107. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  108. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  109. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  110. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  161. package/node_modules/@mrclrchtr/supi-lsp/src/client/client-refresh.ts +0 -234
  162. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostics.ts +0 -99
  163. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/suppression-diagnostics.ts +0 -60
  164. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +0 -41
  165. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/README.md +0 -120
  166. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +0 -75
  167. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -42
  168. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/config.ts +0 -221
  169. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config/prompt-surface.ts +0 -357
  170. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/config.ts +0 -11
  171. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  172. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-provider-registry.ts +0 -36
  173. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context/context-tag.ts +0 -31
  174. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/context.ts +0 -16
  175. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/debug-registry.ts +0 -287
  176. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +0 -41
  177. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/footer-registry.ts +0 -57
  178. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -36
  179. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -201
  180. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/model-selection.ts +0 -134
  181. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +0 -44
  182. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path.ts +0 -2
  183. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  184. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project-roots.ts +0 -170
  185. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/project.ts +0 -15
  186. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/prompt-surface.ts +0 -4
  187. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/registry-utils.ts +0 -93
  188. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/report.ts +0 -121
  189. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session-utils.ts +0 -71
  190. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/session.ts +0 -8
  191. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  192. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  193. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  194. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-registry.ts +0 -76
  195. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +0 -487
  196. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  197. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  198. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  199. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +0 -33
  200. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/spinner-frames.ts +0 -11
  201. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/status-spinner.ts +0 -68
  202. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/terminal.ts +0 -60
  203. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  204. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +0 -42
  205. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/workspace/context.ts +0 -45
  206. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context/context-messages.ts +0 -119
  207. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/progress-widget.ts +0 -189
  208. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/scoped-settings-list.ts +0 -373
  209. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +0 -102
  210. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-command.ts +0 -15
  211. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-submenus.ts +0 -141
  212. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-ui.ts +0 -118
  213. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +0 -3
  214. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +0 -192
  215. package/src/tool/infra/error-results.ts +0 -19
@@ -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.6.0",
3
+ "version": "4.8.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.6.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,28 +37,13 @@ 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
 
@@ -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,5 @@ 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/settings/` — settings registry, schema, scope resolution, and persistence
120
112
  - `src/report.ts` — shared text/report rendering helpers
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-core",
3
- "version": "4.6.0",
3
+ "version": "4.8.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,
@@ -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
@@ -21,16 +21,14 @@ export * from "./path.ts";
21
21
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
22
22
  export * from "./project.ts";
23
23
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
24
+ export * from "./prompt-surface.ts";
25
+ // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
24
26
  export * from "./report.ts";
25
27
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
26
28
  export * from "./session.ts";
27
29
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
28
30
  export * from "./settings.ts";
29
31
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
30
- export * from "./settings-ui.ts";
31
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
32
32
  export * from "./status-spinner.ts";
33
33
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
34
34
  export * from "./terminal.ts";
35
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
36
- export * from "./tool-framework.ts";
@@ -1,35 +1,53 @@
1
- // Event-backed settings contribution types for SuPi extensions.
2
- //
3
- // Extensions contribute declarative settings sections through PI's shared
4
- // event bus. The public helper is registerDeclarativeSettings(pi, ...); this module
5
- // owns the internal collector protocol used by /supi-settings.
1
+ // Event-backed settings module registration and collection.
6
2
 
7
- import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
8
- import type { ScopedFieldValue, SettingsFieldAction } from "./settings-schema.ts";
3
+ import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
4
+ import type { ScopedFieldValue, SettingsAction } from "./settings-schema.ts";
9
5
 
10
6
  export const SUPI_SETTINGS_COLLECT_EVENT = "supi:settings:collect";
11
7
 
12
8
  export type SettingsScope = "project" | "global";
13
9
 
14
- export interface SettingsSection {
15
- /** Stable contribution identifier — e.g. "lsp", "claude-md". */
10
+ /** Scope and PI runtime state supplied for each settings read. */
11
+ export interface SettingsContext {
12
+ scope: SettingsScope;
13
+ cwd: string;
14
+ ctx?: ExtensionContext;
15
+ }
16
+
17
+ /** A resolved, source-aware settings view. */
18
+ export interface SettingsSnapshot {
19
+ rows: ScopedFieldValue[];
20
+ }
21
+
22
+ /** One user action routed to its owning settings module. */
23
+ export interface SettingsActionRequest extends SettingsContext {
24
+ fieldKey: string;
25
+ action: SettingsAction;
26
+ }
27
+
28
+ /** Optional user-facing result from a successful settings action. */
29
+ export interface SettingsApplyResult {
30
+ notice?: {
31
+ message: string;
32
+ level: "info" | "warning" | "error";
33
+ };
34
+ }
35
+
36
+ /**
37
+ * Canonical settings interface consumed by `/supi-settings`.
38
+ *
39
+ * Reads are always asynchronous. Apply resolves only after durable writes and
40
+ * module-owned refresh work complete. Implementations throw on failed writes.
41
+ */
42
+ export interface SettingsModule {
16
43
  id: string;
17
- /** Human-readable label shown in the UI. */
18
44
  label: string;
19
- /** Load current ScopedFieldValue[] for the given scope. */
20
- loadValues: (scope: SettingsScope, cwd: string, ctx?: ExtensionContext) => ScopedFieldValue[];
21
- /** Handle a user action on a field in the selected scope. */
22
- handleAction: (
23
- scope: SettingsScope,
24
- cwd: string,
25
- fieldKey: string,
26
- action: SettingsFieldAction,
27
- ctx?: ExtensionContext,
28
- ) => void;
45
+ read(context: SettingsContext): Promise<SettingsSnapshot>;
46
+ apply(request: SettingsActionRequest): Promise<SettingsApplyResult>;
29
47
  }
30
48
 
31
49
  export interface SettingsContributionCollector {
32
- add(section: SettingsSection): void;
50
+ add(module: SettingsModule): void;
33
51
  }
34
52
 
35
53
  export interface SettingsCollectionDiagnostic {
@@ -38,7 +56,7 @@ export interface SettingsCollectionDiagnostic {
38
56
  }
39
57
 
40
58
  export interface SettingsCollectionResult {
41
- sections: SettingsSection[];
59
+ modules: SettingsModule[];
42
60
  diagnostics: SettingsCollectionDiagnostic[];
43
61
  }
44
62
 
@@ -56,21 +74,29 @@ export function isSettingsContributionCollector(
56
74
  export function createSettingsContributionCollector(): SettingsContributionCollector & {
57
75
  result(): SettingsCollectionResult;
58
76
  } {
59
- const sections = new Map<string, SettingsSection>();
77
+ const modules = new Map<string, SettingsModule>();
60
78
  const diagnostics: SettingsCollectionDiagnostic[] = [];
61
79
 
62
80
  return {
63
- add(section: SettingsSection): void {
64
- if (sections.has(section.id)) {
81
+ add(module: SettingsModule): void {
82
+ if (modules.has(module.id)) {
65
83
  diagnostics.push({
66
84
  kind: "warning",
67
- message: `Duplicate SuPi settings contribution "${section.id}"; using the last contribution.`,
85
+ message: `Duplicate SuPi settings contribution "${module.id}"; using the last contribution.`,
68
86
  });
69
87
  }
70
- sections.set(section.id, section);
88
+ modules.set(module.id, module);
71
89
  },
72
90
  result(): SettingsCollectionResult {
73
- return { sections: Array.from(sections.values()), diagnostics: [...diagnostics] };
91
+ return { modules: Array.from(modules.values()), diagnostics: [...diagnostics] };
74
92
  },
75
93
  };
76
94
  }
95
+
96
+ /** Register one settings module during extension factory setup. */
97
+ export function registerSettings(pi: ExtensionAPI, module: SettingsModule): void {
98
+ const dispose = pi.events.on(SUPI_SETTINGS_COLLECT_EVENT, (collector) => {
99
+ if (isSettingsContributionCollector(collector)) collector.add(module);
100
+ });
101
+ pi.on("session_shutdown", () => dispose());
102
+ }