@wrongstack/tools 0.292.1 → 0.295.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 (248) hide show
  1. package/dist/_env.d.ts +1 -1
  2. package/dist/_env.d.ts.map +1 -1
  3. package/dist/_fetch-guard.d.ts.map +1 -1
  4. package/dist/_spawn-stream.d.ts +1 -1
  5. package/dist/_spawn-stream.d.ts.map +1 -1
  6. package/dist/_util.d.ts +1 -1
  7. package/dist/_util.d.ts.map +1 -1
  8. package/dist/audit.d.ts +1 -1
  9. package/dist/audit.d.ts.map +1 -1
  10. package/dist/audit.js +81 -16
  11. package/dist/audit.js.map +2 -2
  12. package/dist/bash.d.ts +1 -1
  13. package/dist/bash.d.ts.map +1 -1
  14. package/dist/bash.js +66 -52
  15. package/dist/bash.js.map +3 -3
  16. package/dist/batch-tool-use.d.ts +1 -1
  17. package/dist/batch-tool-use.d.ts.map +1 -1
  18. package/dist/batch-tool-use.js +1 -1
  19. package/dist/batch-tool-use.js.map +1 -1
  20. package/dist/browser/index.js +10 -1
  21. package/dist/browser/index.js.map +2 -2
  22. package/dist/browser/manager.d.ts +2 -0
  23. package/dist/browser/manager.d.ts.map +1 -1
  24. package/dist/browser/tools.d.ts +1 -1
  25. package/dist/browser/tools.d.ts.map +1 -1
  26. package/dist/builtin.d.ts +1 -1
  27. package/dist/builtin.d.ts.map +1 -1
  28. package/dist/builtin.js +1394 -553
  29. package/dist/builtin.js.map +4 -4
  30. package/dist/codebase-index/background-indexer.d.ts +2 -2
  31. package/dist/codebase-index/background-indexer.d.ts.map +1 -1
  32. package/dist/codebase-index/bm25.d.ts +3 -1
  33. package/dist/codebase-index/bm25.d.ts.map +1 -1
  34. package/dist/codebase-index/codebase-index-tool.d.ts +1 -1
  35. package/dist/codebase-index/codebase-index-tool.d.ts.map +1 -1
  36. package/dist/codebase-index/codebase-search-tool.d.ts +1 -1
  37. package/dist/codebase-index/codebase-search-tool.d.ts.map +1 -1
  38. package/dist/codebase-index/codebase-stats-tool.d.ts +1 -1
  39. package/dist/codebase-index/codebase-stats-tool.d.ts.map +1 -1
  40. package/dist/codebase-index/generic-parser.d.ts +34 -0
  41. package/dist/codebase-index/generic-parser.d.ts.map +1 -0
  42. package/dist/codebase-index/go-parser.d.ts +1 -1
  43. package/dist/codebase-index/go-parser.d.ts.map +1 -1
  44. package/dist/codebase-index/index.d.ts +4 -2
  45. package/dist/codebase-index/index.d.ts.map +1 -1
  46. package/dist/codebase-index/index.js +1036 -341
  47. package/dist/codebase-index/index.js.map +4 -4
  48. package/dist/codebase-index/indexer.d.ts +6 -1
  49. package/dist/codebase-index/indexer.d.ts.map +1 -1
  50. package/dist/codebase-index/json-parser.d.ts +1 -1
  51. package/dist/codebase-index/languages.d.ts +25 -0
  52. package/dist/codebase-index/languages.d.ts.map +1 -0
  53. package/dist/codebase-index/py-parser.d.ts +9 -1
  54. package/dist/codebase-index/py-parser.d.ts.map +1 -1
  55. package/dist/codebase-index/refs-extractor.d.ts.map +1 -1
  56. package/dist/codebase-index/rs-parser.d.ts +1 -1
  57. package/dist/codebase-index/rs-parser.d.ts.map +1 -1
  58. package/dist/codebase-index/schema.d.ts +9 -2
  59. package/dist/codebase-index/schema.d.ts.map +1 -1
  60. package/dist/codebase-index/spawn-gate.d.ts +15 -0
  61. package/dist/codebase-index/spawn-gate.d.ts.map +1 -0
  62. package/dist/codebase-index/ts-parser.d.ts +2 -2
  63. package/dist/codebase-index/ts-parser.d.ts.map +1 -1
  64. package/dist/codebase-index/worker.js +961 -317
  65. package/dist/codebase-index/worker.js.map +4 -4
  66. package/dist/codebase-index/writer.d.ts +83 -4
  67. package/dist/codebase-index/writer.d.ts.map +1 -1
  68. package/dist/codebase-index/yaml-parser.d.ts +1 -1
  69. package/dist/design.d.ts +5 -2
  70. package/dist/design.d.ts.map +1 -1
  71. package/dist/design.js +36 -3
  72. package/dist/design.js.map +2 -2
  73. package/dist/diff.d.ts +1 -1
  74. package/dist/diff.d.ts.map +1 -1
  75. package/dist/diff.js +2 -2
  76. package/dist/diff.js.map +1 -1
  77. package/dist/document.d.ts +1 -1
  78. package/dist/document.d.ts.map +1 -1
  79. package/dist/document.js +1 -1
  80. package/dist/document.js.map +1 -1
  81. package/dist/e2e.d.ts +1 -1
  82. package/dist/e2e.d.ts.map +1 -1
  83. package/dist/e2e.js +1 -1
  84. package/dist/e2e.js.map +1 -1
  85. package/dist/edit.d.ts +1 -1
  86. package/dist/edit.d.ts.map +1 -1
  87. package/dist/edit.js +3 -3
  88. package/dist/edit.js.map +2 -2
  89. package/dist/exec.d.ts +1 -1
  90. package/dist/exec.d.ts.map +1 -1
  91. package/dist/exec.js +60 -21
  92. package/dist/exec.js.map +3 -3
  93. package/dist/fetch.d.ts +1 -1
  94. package/dist/fetch.d.ts.map +1 -1
  95. package/dist/fetch.js +4 -5
  96. package/dist/fetch.js.map +2 -2
  97. package/dist/format.d.ts +1 -1
  98. package/dist/format.d.ts.map +1 -1
  99. package/dist/format.js +81 -16
  100. package/dist/format.js.map +2 -2
  101. package/dist/git.d.ts +1 -1
  102. package/dist/git.d.ts.map +1 -1
  103. package/dist/git.js +3 -2
  104. package/dist/git.js.map +2 -2
  105. package/dist/glob.d.ts +1 -1
  106. package/dist/glob.d.ts.map +1 -1
  107. package/dist/glob.js +2 -2
  108. package/dist/glob.js.map +1 -1
  109. package/dist/grep.d.ts +1 -1
  110. package/dist/grep.d.ts.map +1 -1
  111. package/dist/grep.js +4 -3
  112. package/dist/grep.js.map +2 -2
  113. package/dist/index.d.ts +4 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +1657 -705
  116. package/dist/index.js.map +4 -4
  117. package/dist/install.d.ts +1 -1
  118. package/dist/install.d.ts.map +1 -1
  119. package/dist/install.js +85 -17
  120. package/dist/install.js.map +2 -2
  121. package/dist/json.d.ts +1 -1
  122. package/dist/json.d.ts.map +1 -1
  123. package/dist/json.js +2 -2
  124. package/dist/json.js.map +2 -2
  125. package/dist/kanban.d.ts +4 -3
  126. package/dist/kanban.d.ts.map +1 -1
  127. package/dist/kanban.js +94 -27
  128. package/dist/kanban.js.map +2 -2
  129. package/dist/languages/execute-tool.d.ts +1 -1
  130. package/dist/languages/execute-tool.d.ts.map +1 -1
  131. package/dist/languages/execute.d.ts +1 -1
  132. package/dist/languages/execute.d.ts.map +1 -1
  133. package/dist/languages/index.d.ts +1 -1
  134. package/dist/languages/index.d.ts.map +1 -1
  135. package/dist/languages/index.js +99 -17
  136. package/dist/languages/index.js.map +2 -2
  137. package/dist/languages/package-tool.d.ts +3 -4
  138. package/dist/languages/package-tool.d.ts.map +1 -1
  139. package/dist/languages/plan.d.ts.map +1 -1
  140. package/dist/languages/profiles/additional.d.ts.map +1 -1
  141. package/dist/languages/profiles/primary.d.ts.map +1 -1
  142. package/dist/languages/tool.d.ts +1 -1
  143. package/dist/languages/tool.d.ts.map +1 -1
  144. package/dist/lint.d.ts +1 -1
  145. package/dist/lint.d.ts.map +1 -1
  146. package/dist/lint.js +81 -16
  147. package/dist/lint.js.map +2 -2
  148. package/dist/logs.d.ts +1 -1
  149. package/dist/logs.d.ts.map +1 -1
  150. package/dist/logs.js +2 -2
  151. package/dist/logs.js.map +1 -1
  152. package/dist/memory.d.ts +1 -1
  153. package/dist/memory.d.ts.map +1 -1
  154. package/dist/memory.js +1 -1
  155. package/dist/memory.js.map +1 -1
  156. package/dist/mode.d.ts +1 -1
  157. package/dist/mode.d.ts.map +1 -1
  158. package/dist/mode.js.map +1 -1
  159. package/dist/outdated.d.ts +1 -1
  160. package/dist/outdated.d.ts.map +1 -1
  161. package/dist/outdated.js +101 -19
  162. package/dist/outdated.js.map +2 -2
  163. package/dist/pack.d.ts +1 -1
  164. package/dist/pack.js +1394 -553
  165. package/dist/pack.js.map +4 -4
  166. package/dist/patch.d.ts +1 -1
  167. package/dist/patch.d.ts.map +1 -1
  168. package/dist/patch.js +2 -2
  169. package/dist/patch.js.map +1 -1
  170. package/dist/plan.d.ts +1 -1
  171. package/dist/plan.d.ts.map +1 -1
  172. package/dist/plan.js +7 -7
  173. package/dist/plan.js.map +2 -2
  174. package/dist/process-guardian.d.ts +7 -0
  175. package/dist/process-guardian.d.ts.map +1 -1
  176. package/dist/process-registry-persistent.d.ts +5 -0
  177. package/dist/process-registry-persistent.d.ts.map +1 -1
  178. package/dist/process-registry.d.ts +9 -1
  179. package/dist/process-registry.d.ts.map +1 -1
  180. package/dist/process-registry.js +18 -3
  181. package/dist/process-registry.js.map +2 -2
  182. package/dist/ps-slash.js +54 -15
  183. package/dist/ps-slash.js.map +2 -2
  184. package/dist/read.d.ts +1 -1
  185. package/dist/read.d.ts.map +1 -1
  186. package/dist/read.js +3 -2
  187. package/dist/read.js.map +2 -2
  188. package/dist/replace.d.ts +1 -1
  189. package/dist/replace.d.ts.map +1 -1
  190. package/dist/replace.js +4 -4
  191. package/dist/replace.js.map +2 -2
  192. package/dist/scaffold.d.ts +1 -1
  193. package/dist/scaffold.d.ts.map +1 -1
  194. package/dist/scaffold.js +2 -2
  195. package/dist/scaffold.js.map +1 -1
  196. package/dist/search.d.ts +1 -1
  197. package/dist/search.d.ts.map +1 -1
  198. package/dist/search.js +4 -4
  199. package/dist/search.js.map +2 -2
  200. package/dist/session-kanban.d.ts +4 -1
  201. package/dist/session-kanban.d.ts.map +1 -1
  202. package/dist/session-kanban.js +23 -15
  203. package/dist/session-kanban.js.map +2 -2
  204. package/dist/set-working-dir.d.ts +1 -1
  205. package/dist/set-working-dir.d.ts.map +1 -1
  206. package/dist/skill.d.ts +1 -1
  207. package/dist/skill.d.ts.map +1 -1
  208. package/dist/skill.js +2 -5
  209. package/dist/skill.js.map +2 -2
  210. package/dist/spawn-background.d.ts.map +1 -1
  211. package/dist/task.d.ts +3 -2
  212. package/dist/task.d.ts.map +1 -1
  213. package/dist/task.js +6 -8
  214. package/dist/task.js.map +2 -2
  215. package/dist/test.d.ts +1 -1
  216. package/dist/test.d.ts.map +1 -1
  217. package/dist/test.js +81 -16
  218. package/dist/test.js.map +2 -2
  219. package/dist/todo.d.ts +2 -1
  220. package/dist/todo.d.ts.map +1 -1
  221. package/dist/todo.js +4 -4
  222. package/dist/todo.js.map +2 -2
  223. package/dist/tool-help.d.ts +1 -1
  224. package/dist/tool-help.d.ts.map +1 -1
  225. package/dist/tool-help.js.map +1 -1
  226. package/dist/tool-search.d.ts +1 -1
  227. package/dist/tool-search.d.ts.map +1 -1
  228. package/dist/tool-search.js.map +1 -1
  229. package/dist/tool-tier.d.ts +16 -0
  230. package/dist/tool-tier.d.ts.map +1 -0
  231. package/dist/tool-tier.js +22233 -0
  232. package/dist/tool-tier.js.map +7 -0
  233. package/dist/tool-use.d.ts +1 -1
  234. package/dist/tool-use.d.ts.map +1 -1
  235. package/dist/tool-use.js.map +1 -1
  236. package/dist/tree.d.ts +1 -1
  237. package/dist/tree.d.ts.map +1 -1
  238. package/dist/tree.js +2 -2
  239. package/dist/tree.js.map +1 -1
  240. package/dist/typecheck.d.ts +1 -1
  241. package/dist/typecheck.d.ts.map +1 -1
  242. package/dist/typecheck.js +81 -16
  243. package/dist/typecheck.js.map +2 -2
  244. package/dist/write.d.ts +1 -1
  245. package/dist/write.d.ts.map +1 -1
  246. package/dist/write.js +3 -2
  247. package/dist/write.js.map +2 -2
  248. package/package.json +7 -3
@@ -1,4 +1,4 @@
1
- import type { Tool } from '@wrongstack/core';
1
+ import type { Tool } from '@wrongstack/core/types';
2
2
  import type { LanguageDiagnostic, LanguageProfileId, LanguageRunResult } from './types.js';
3
3
  interface LanguageToolInput {
4
4
  action: 'check' | 'lint' | 'format' | 'test' | 'build' | 'debug';
@@ -1 +1 @@
1
- {"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../src/languages/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AAI9D,OAAO,KAAK,EACV,kBAAkB,EAGlB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,iBAAiB;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACpD,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACxE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAoKpE,CAAC"}
1
+ {"version":3,"file":"execute-tool.d.ts","sourceRoot":"","sources":["../../src/languages/execute-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AAIpE,OAAO,KAAK,EACV,kBAAkB,EAGlB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,iBAAiB;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACpD,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACxE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAoKpE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ToolProgressEvent } from '@wrongstack/core';
1
+ import type { ToolProgressEvent } from '@wrongstack/core/types';
2
2
  import type { CommandPlan, DetectedWorkspace, LanguagePackageOutcome, LanguageRunResult } from './types.js';
3
3
  export interface ExecuteLanguagePlanOptions {
4
4
  projectRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/languages/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAU1D,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAEjB,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GAClC,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CA0HtD;AA8ID,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,kBAAkB,CACvC,OAAO,EAAE,yBAAyB,GACjC,cAAc,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CA4L3D"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/languages/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAEjB,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GAClC,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CA0HtD;AA8ID,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAuB,kBAAkB,CACvC,OAAO,EAAE,yBAAyB,GACjC,cAAc,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CA4L3D"}
@@ -2,7 +2,7 @@ export { detectLanguageWorkspaces } from './detect.js';
2
2
  export { diagnosticsForInternalSyntax, type ParsedPackageReports, parseLanguageDiagnostics, parsePackageReports, } from './diagnostics.js';
3
3
  export { type ExecuteLanguagePlanOptions, type ExecutePackagePlanOptions, executeLanguagePlan, executePackagePlan, } from './execute.js';
4
4
  export { languageTool } from './execute-tool.js';
5
- export { languagePackageTool } from './package-tool.js';
5
+ export { type LanguagePackageInput, type LanguagePackageToolOutput, languagePackageTool, } from './package-tool.js';
6
6
  export { planLanguageOperation, validateCommandPlan } from './plan.js';
7
7
  export { ADDITIONAL_LANGUAGE_PROFILES } from './profiles/additional.js';
8
8
  export { PRIMARY_LANGUAGE_PROFILES } from './profiles/primary.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -87,7 +87,20 @@ function pythonProfile() {
87
87
  ]),
88
88
  ignoredDirectories: IGNORES,
89
89
  packageManagers: Object.freeze(["pip", "poetry", "pipenv", "uv"]),
90
- executables: Object.freeze(["python", "python3", "ruff", "black", "pytest", "mypy", "pyright"]),
90
+ executables: Object.freeze([
91
+ "python",
92
+ "python3",
93
+ "pip",
94
+ "pip3",
95
+ "poetry",
96
+ "pipenv",
97
+ "uv",
98
+ "ruff",
99
+ "black",
100
+ "pytest",
101
+ "mypy",
102
+ "pyright"
103
+ ]),
91
104
  operations: Object.freeze({
92
105
  syntax: async (ctx) => {
93
106
  const py = ctx.options.target ? "python3" : "python3";
@@ -147,6 +160,14 @@ function pythonProfile() {
147
160
  network: true
148
161
  });
149
162
  },
163
+ "package-remove": async (ctx) => {
164
+ const names = packageNames(ctx);
165
+ return names.length === 0 ? unavailable(ctx, "package-remove", "At least one package name is required.") : processPlan(ctx, "package-remove", "pip", ["uninstall", "--yes", ...names], {
166
+ parser: "package-text",
167
+ reason: "Remove validated Python packages.",
168
+ mutating: true
169
+ });
170
+ },
150
171
  "package-audit": async (ctx) => processPlan(ctx, "package-audit", "pip", ["audit"], {
151
172
  parser: "pip-audit",
152
173
  reason: "Audit Python dependencies for vulnerabilities.",
@@ -754,6 +775,19 @@ function typescriptProfile() {
754
775
  network: true
755
776
  });
756
777
  },
778
+ "package-remove": async (ctx) => {
779
+ const names = packageNames(ctx);
780
+ if (names.length === 0)
781
+ return unavailable(ctx, "package-remove", "At least one package name is required.");
782
+ const manager = ctx.workspace.packageManager ?? "npm";
783
+ const args = manager === "npm" ? ["uninstall", "--ignore-scripts", ...names] : ["remove", "--ignore-scripts", ...names];
784
+ return processPlan(ctx, "package-remove", manager, args, {
785
+ parser: "package-text",
786
+ reason: `Remove validated packages with ${manager} and lifecycle scripts disabled.`,
787
+ mutating: true,
788
+ network: true
789
+ });
790
+ },
757
791
  "package-audit": async (ctx) => {
758
792
  const manager = ctx.workspace.packageManager ?? "npm";
759
793
  return processPlan(ctx, "package-audit", manager, ["audit", "--json"], {
@@ -1189,13 +1223,28 @@ var csharpProfile = {
1189
1223
  }),
1190
1224
  "package-add": async (ctx) => {
1191
1225
  const names = packageNames(ctx);
1192
- return names.length === 0 ? unavailable(ctx, "package-add", "At least one NuGet package is required.") : processPlan(ctx, "package-add", "dotnet", ["add", "package", ...names], {
1193
- parser: "dotnet-package",
1194
- reason: "Add validated NuGet packages.",
1195
- mutating: true,
1196
- network: true,
1197
- executesProjectCode: true
1198
- });
1226
+ const [spec] = names;
1227
+ const versionAt = spec?.lastIndexOf("@") ?? -1;
1228
+ const packageName = versionAt > 0 ? spec?.slice(0, versionAt) : spec;
1229
+ const packageVersion = versionAt > 0 ? spec?.slice(versionAt + 1) : void 0;
1230
+ return names.length === 0 ? unavailable(ctx, "package-add", "At least one NuGet package is required.") : names.length > 1 ? unavailable(ctx, "package-add", "NuGet package changes run one package at a time.") : processPlan(
1231
+ ctx,
1232
+ "package-add",
1233
+ "dotnet",
1234
+ [
1235
+ "add",
1236
+ "package",
1237
+ packageName ?? "",
1238
+ ...packageVersion ? ["--version", packageVersion] : []
1239
+ ],
1240
+ {
1241
+ parser: "dotnet-package",
1242
+ reason: "Add validated NuGet packages.",
1243
+ mutating: true,
1244
+ network: true,
1245
+ executesProjectCode: true
1246
+ }
1247
+ );
1199
1248
  },
1200
1249
  "package-remove": async (ctx) => {
1201
1250
  const names = packageNames(ctx);
@@ -2080,17 +2129,17 @@ import * as path7 from "node:path";
2080
2129
  // src/_spawn-stream.ts
2081
2130
  import { spawn as spawn2 } from "node:child_process";
2082
2131
  import {
2083
- buildChildEnv,
2084
2132
  emitProcessCompleted,
2085
2133
  emitProcessOutput,
2086
2134
  emitProcessStarted
2087
- } from "@wrongstack/core";
2135
+ } from "@wrongstack/core/observability";
2136
+ import { buildChildEnv } from "@wrongstack/core/utils";
2088
2137
 
2089
2138
  // src/_output-spool.ts
2090
2139
  import { createWriteStream, mkdirSync } from "node:fs";
2091
2140
  import * as fsp from "node:fs/promises";
2092
2141
  import * as path3 from "node:path";
2093
- import { wstackGlobalRoot } from "@wrongstack/core";
2142
+ import { wstackGlobalRoot } from "@wrongstack/core/utils";
2094
2143
  var SPOOL_RETENTION_MS = 7 * 24 * 60 * 60 * 1e3;
2095
2144
  var SPOOL_WRITE_HWM_BYTES = 4 * 1024 * 1024;
2096
2145
  var sweepStarted = false;
@@ -2390,7 +2439,7 @@ var CircuitBreaker = class {
2390
2439
  };
2391
2440
 
2392
2441
  // src/_redact-command.ts
2393
- import { expectDefined } from "@wrongstack/core";
2442
+ import { expectDefined } from "@wrongstack/core/utils";
2394
2443
  var SENSITIVE_FLAG_PATTERNS = [
2395
2444
  // --flag=value or --flag "value" (value captured up to next space or comma)
2396
2445
  /--(?:token|password|passwd|pwd|secret|api[-_]?key|api[-_]?secret|auth|credential|private[-_]?key|access[-_]?key|github[-_]?token|gh[-_]?token|bearer|jwt|oauth|pin|pincode|passphrase|access[-_]?token)(?:[=\s,][^\s]*)?/gi,
@@ -2484,7 +2533,12 @@ var ProcessRegistryImpl = class {
2484
2533
  this.breaker.setEnabled(false);
2485
2534
  }
2486
2535
  register(info) {
2487
- this.processes.set(info.pid, { ...info, killed: false, protected: info.protected ?? false });
2536
+ this.processes.set(info.pid, {
2537
+ ...info,
2538
+ killed: false,
2539
+ protected: info.protected ?? false,
2540
+ background: info.background ?? false
2541
+ });
2488
2542
  }
2489
2543
  _isSafeSignalPid(pid) {
2490
2544
  return Number.isInteger(pid) && pid > 1 && pid !== process.pid && pid !== process.ppid;
@@ -2537,12 +2591,21 @@ var ProcessRegistryImpl = class {
2537
2591
  }
2538
2592
  return n;
2539
2593
  }
2594
+ /** Count of active jobs explicitly launched in background mode. */
2595
+ get activeBackgroundCount() {
2596
+ let n = 0;
2597
+ for (const p of this.processes.values()) {
2598
+ if (p.background && !p.killed) n++;
2599
+ }
2600
+ return n;
2601
+ }
2540
2602
  /**
2541
2603
  * Combined stats for observability — used by /ps and the TUI status bar.
2542
2604
  */
2543
2605
  stats() {
2544
2606
  return {
2545
2607
  activeCount: this.activeCount,
2608
+ backgroundCount: this.activeBackgroundCount,
2546
2609
  totalCount: this.processes.size,
2547
2610
  breaker: this.breaker.snapshot()
2548
2611
  };
@@ -2643,7 +2706,7 @@ var ProcessRegistryImpl = class {
2643
2706
  this.autoKillTimer = setTimeout(() => {
2644
2707
  this.autoKillTimer = null;
2645
2708
  this.autoKillArmedAt = null;
2646
- this.killAll({ force: false });
2709
+ this.killAll({ force: false, preserveBackground: true });
2647
2710
  this.breaker.forceReset();
2648
2711
  this._emitBreakerCountdown();
2649
2712
  }, this.autoKillResetMs);
@@ -2683,6 +2746,7 @@ var ProcessRegistryImpl = class {
2683
2746
  if (!p) return false;
2684
2747
  if (p.killed) return true;
2685
2748
  if (p.protected) return false;
2749
+ if (opts.preserveBackground && p.background) return false;
2686
2750
  const { force = false, graceMs = DEFAULT_GRACE_MS } = opts;
2687
2751
  const isWin2 = os.platform() === "win32";
2688
2752
  if (isWin2) {
@@ -3035,7 +3099,7 @@ async function* spawnStream(opts) {
3035
3099
  // src/_util.ts
3036
3100
  import * as fsp2 from "node:fs/promises";
3037
3101
  import * as path5 from "node:path";
3038
- import * as Core from "@wrongstack/core";
3102
+ import * as Core from "@wrongstack/core/utils";
3039
3103
  function resolvePath(input, ctx) {
3040
3104
  return path5.isAbsolute(input) ? path5.normalize(input) : path5.resolve(ctx.workingDir ?? ctx.cwd, input);
3041
3105
  }
@@ -3166,6 +3230,7 @@ var MAX_ARGUMENT_LENGTH = 4096;
3166
3230
  var PACKAGE_NAME_RE = /^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+(?:@[a-z0-9*+._~^<>=|-]+)?$/i;
3167
3231
  var COMPOSER_PACKAGE_RE = /^[a-z0-9_.-]+\/[a-z0-9_.-]+(?::[a-z0-9*+._~^<>=|-]+)?$/i;
3168
3232
  var GO_MODULE_RE = /^(?:[a-z0-9.-]+\.)+[a-z0-9.-]+\/[a-z0-9._~+/@-]+$/i;
3233
+ var PYTHON_PACKAGE_RE = /^[a-z0-9._-]+(?:\[[a-z0-9._,-]+\])?==[a-z0-9*+._!~-]+$/i;
3169
3234
  async function planLanguageOperation(options) {
3170
3235
  validateOperationOptions(options.operation, options.operationOptions?.packages);
3171
3236
  const detection = await detectLanguageWorkspaces(options);
@@ -3349,7 +3414,7 @@ function validateOperationOptions(operation, packages) {
3349
3414
  if (value.startsWith(".") || value.startsWith("/") || /^[A-Za-z]:/.test(value) || value.includes("://")) {
3350
3415
  throw new Error(`Package paths and URLs are not supported: "${value}"`);
3351
3416
  }
3352
- if (!PACKAGE_NAME_RE.test(value) && !COMPOSER_PACKAGE_RE.test(value) && !GO_MODULE_RE.test(value)) {
3417
+ if (!PACKAGE_NAME_RE.test(value) && !COMPOSER_PACKAGE_RE.test(value) && !GO_MODULE_RE.test(value) && !PYTHON_PACKAGE_RE.test(value)) {
3353
3418
  throw new Error(`Invalid package identifier "${value}"`);
3354
3419
  }
3355
3420
  }
@@ -4207,7 +4272,6 @@ var languagePackageTool = {
4207
4272
  const operationOptions2 = {
4208
4273
  ...input.names ? { packages: input.names } : {},
4209
4274
  ...input.scope ? { packageScope: input.scope } : {},
4210
- ...input.dryRun !== void 0 ? { allowScripts: input.dryRun } : { allowScripts: false },
4211
4275
  ...input.allowScripts !== void 0 ? { allowScripts: input.allowScripts } : {}
4212
4276
  };
4213
4277
  const planResult = await planLanguageOperation({
@@ -4236,6 +4300,24 @@ var languagePackageTool = {
4236
4300
  };
4237
4301
  return;
4238
4302
  }
4303
+ if (input.dryRun) {
4304
+ yield {
4305
+ type: "final",
4306
+ output: {
4307
+ status: "passed",
4308
+ language: planResult.workspace.language,
4309
+ workspace: planResult.workspace.root,
4310
+ operation: planResult.plan.operation,
4311
+ mutations: [],
4312
+ vulnerabilities: [],
4313
+ outdated: [],
4314
+ manifestsChanged: [],
4315
+ lockfilesChanged: [],
4316
+ output: `Dry run: ${planResult.plan.command ?? "internal"} ${planResult.plan.args.join(" ")}`.trim()
4317
+ }
4318
+ };
4319
+ return;
4320
+ }
4239
4321
  const runner = executePackagePlan({
4240
4322
  projectRoot: ctx.projectRoot,
4241
4323
  workspace: planResult.workspace,