@wrongstack/plugins 0.284.1 → 0.286.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 (263) hide show
  1. package/README.md +18 -14
  2. package/dist/accessibility-auditor/index.d.ts +38 -0
  3. package/dist/accessibility-auditor/index.d.ts.map +1 -0
  4. package/dist/accessibility-auditor.d.ts +2 -40
  5. package/dist/accessibility-auditor.js +10 -15
  6. package/dist/agent-handoff/index.d.ts +35 -0
  7. package/dist/agent-handoff/index.d.ts.map +1 -0
  8. package/dist/agent-handoff.d.ts +2 -37
  9. package/dist/agent-handoff.js +3 -2
  10. package/dist/api-compatibility-gate/index.d.ts +36 -0
  11. package/dist/api-compatibility-gate/index.d.ts.map +1 -0
  12. package/dist/api-compatibility-gate.d.ts +2 -38
  13. package/dist/api-compatibility-gate.js +6 -6
  14. package/dist/auto-doc/index.d.ts +20 -0
  15. package/dist/auto-doc/index.d.ts.map +1 -0
  16. package/dist/auto-doc.d.ts +2 -22
  17. package/dist/auto-doc.js +5 -5
  18. package/dist/auto-escalate/index.d.ts +43 -0
  19. package/dist/auto-escalate/index.d.ts.map +1 -0
  20. package/dist/auto-escalate.d.ts +2 -45
  21. package/dist/auto-escalate.js +5 -2
  22. package/dist/auto-i18n-extractor/index.d.ts +34 -0
  23. package/dist/auto-i18n-extractor/index.d.ts.map +1 -0
  24. package/dist/auto-i18n-extractor.d.ts +2 -36
  25. package/dist/auto-i18n-extractor.js +6 -7
  26. package/dist/branch-guard/index.d.ts +32 -0
  27. package/dist/branch-guard/index.d.ts.map +1 -0
  28. package/dist/branch-guard.d.ts +2 -34
  29. package/dist/branch-guard.js +4 -4
  30. package/dist/catalog.d.ts +39 -0
  31. package/dist/catalog.d.ts.map +1 -0
  32. package/dist/changelog-writer/index.d.ts +71 -0
  33. package/dist/changelog-writer/index.d.ts.map +1 -0
  34. package/dist/changelog-writer.d.ts +2 -73
  35. package/dist/changelog-writer.js +9 -5
  36. package/dist/checkpoint/index.d.ts +53 -0
  37. package/dist/checkpoint/index.d.ts.map +1 -0
  38. package/dist/checkpoint.d.ts +2 -55
  39. package/dist/checkpoint.js +6 -6
  40. package/dist/code-metrics/index.d.ts +29 -0
  41. package/dist/code-metrics/index.d.ts.map +1 -0
  42. package/dist/code-metrics.d.ts +2 -31
  43. package/dist/code-metrics.js +13 -15
  44. package/dist/commit-validator/index.d.ts +31 -0
  45. package/dist/commit-validator/index.d.ts.map +1 -0
  46. package/dist/commit-validator.d.ts +2 -33
  47. package/dist/commit-validator.js +5 -3
  48. package/dist/config-validator/index.d.ts +46 -0
  49. package/dist/config-validator/index.d.ts.map +1 -0
  50. package/dist/config-validator.d.ts +2 -48
  51. package/dist/config-validator.js +8 -4
  52. package/dist/context-pins/index.d.ts +43 -0
  53. package/dist/context-pins/index.d.ts.map +1 -0
  54. package/dist/context-pins.d.ts +2 -45
  55. package/dist/context-pins.js +5 -5
  56. package/dist/cost-tracker/index.d.ts +51 -0
  57. package/dist/cost-tracker/index.d.ts.map +1 -0
  58. package/dist/cost-tracker.d.ts +2 -53
  59. package/dist/cost-tracker.js +4 -4
  60. package/dist/cron/index.d.ts +12 -0
  61. package/dist/cron/index.d.ts.map +1 -0
  62. package/dist/cron.d.ts +2 -14
  63. package/dist/cron.js +3 -2
  64. package/dist/dead-code-detector/index.d.ts +32 -0
  65. package/dist/dead-code-detector/index.d.ts.map +1 -0
  66. package/dist/dead-code-detector.d.ts +2 -34
  67. package/dist/dead-code-detector.js +8 -9
  68. package/dist/dep-guard/index.d.ts +63 -0
  69. package/dist/dep-guard/index.d.ts.map +1 -0
  70. package/dist/dep-guard.d.ts +2 -65
  71. package/dist/dep-guard.js +6 -2
  72. package/dist/dependency-vulnerability-gate/index.d.ts +33 -0
  73. package/dist/dependency-vulnerability-gate/index.d.ts.map +1 -0
  74. package/dist/dependency-vulnerability-gate.d.ts +2 -35
  75. package/dist/dependency-vulnerability-gate.js +5 -5
  76. package/dist/diff-summary/index.d.ts +34 -0
  77. package/dist/diff-summary/index.d.ts.map +1 -0
  78. package/dist/diff-summary.d.ts +2 -36
  79. package/dist/diff-summary.js +5 -5
  80. package/dist/doc-sync-guard/index.d.ts +31 -0
  81. package/dist/doc-sync-guard/index.d.ts.map +1 -0
  82. package/dist/doc-sync-guard.d.ts +2 -33
  83. package/dist/doc-sync-guard.js +4 -4
  84. package/dist/duplicate-code-detector/index.d.ts +31 -0
  85. package/dist/duplicate-code-detector/index.d.ts.map +1 -0
  86. package/dist/duplicate-code-detector.d.ts +2 -33
  87. package/dist/duplicate-code-detector.js +5 -5
  88. package/dist/error-lens/index.d.ts +65 -0
  89. package/dist/error-lens/index.d.ts.map +1 -0
  90. package/dist/error-lens.d.ts +2 -67
  91. package/dist/error-lens.js +5 -2
  92. package/dist/feature-flag-tracker/index.d.ts +36 -0
  93. package/dist/feature-flag-tracker/index.d.ts.map +1 -0
  94. package/dist/feature-flag-tracker.d.ts +2 -38
  95. package/dist/feature-flag-tracker.js +6 -7
  96. package/dist/file-watcher/index.d.ts +12 -0
  97. package/dist/file-watcher/index.d.ts.map +1 -0
  98. package/dist/file-watcher.d.ts +2 -14
  99. package/dist/file-watcher.js +7 -7
  100. package/dist/format-on-save/index.d.ts +33 -0
  101. package/dist/format-on-save/index.d.ts.map +1 -0
  102. package/dist/format-on-save.d.ts +2 -35
  103. package/dist/format-on-save.js +6 -6
  104. package/dist/git-autocommit/index.d.ts +15 -0
  105. package/dist/git-autocommit/index.d.ts.map +1 -0
  106. package/dist/git-autocommit.d.ts +2 -17
  107. package/dist/git-autocommit.js +5 -5
  108. package/dist/import-organizer/index.d.ts +50 -0
  109. package/dist/import-organizer/index.d.ts.map +1 -0
  110. package/dist/import-organizer.d.ts +2 -52
  111. package/dist/import-organizer.js +6 -6
  112. package/dist/index.d.ts +186 -64
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.js +992 -454
  115. package/dist/injection-shield/index.d.ts +47 -0
  116. package/dist/injection-shield/index.d.ts.map +1 -0
  117. package/dist/injection-shield.d.ts +2 -49
  118. package/dist/injection-shield.js +4 -2
  119. package/dist/interface-contract-guard/index.d.ts +35 -0
  120. package/dist/interface-contract-guard/index.d.ts.map +1 -0
  121. package/dist/interface-contract-guard.d.ts +2 -37
  122. package/dist/interface-contract-guard.js +6 -7
  123. package/dist/knowledge-graph/index.d.ts +43 -0
  124. package/dist/knowledge-graph/index.d.ts.map +1 -0
  125. package/dist/knowledge-graph.d.ts +2 -45
  126. package/dist/knowledge-graph.js +5 -5
  127. package/dist/license-audit-gate/index.d.ts +32 -0
  128. package/dist/license-audit-gate/index.d.ts.map +1 -0
  129. package/dist/license-audit-gate.d.ts +2 -34
  130. package/dist/license-audit-gate.js +6 -7
  131. package/dist/lint-gate/index.d.ts +31 -0
  132. package/dist/lint-gate/index.d.ts.map +1 -0
  133. package/dist/lint-gate.d.ts +2 -33
  134. package/dist/lint-gate.js +7 -7
  135. package/dist/llm-cache/index.d.ts +54 -0
  136. package/dist/llm-cache/index.d.ts.map +1 -0
  137. package/dist/llm-cache.d.ts +2 -56
  138. package/dist/llm-cache.js +6 -4
  139. package/dist/loop-breaker/index.d.ts +4 -0
  140. package/dist/loop-breaker/index.d.ts.map +1 -0
  141. package/dist/loop-breaker.d.ts +2 -5
  142. package/dist/loop-breaker.js +4 -4
  143. package/dist/migration-planner/index.d.ts +28 -0
  144. package/dist/migration-planner/index.d.ts.map +1 -0
  145. package/dist/migration-planner.d.ts +2 -30
  146. package/dist/migration-planner.js +5 -5
  147. package/dist/model-router/index.d.ts +67 -0
  148. package/dist/model-router/index.d.ts.map +1 -0
  149. package/dist/model-router.d.ts +2 -69
  150. package/dist/model-router.js +5 -2
  151. package/dist/notify-hub/index.d.ts +43 -0
  152. package/dist/notify-hub/index.d.ts.map +1 -0
  153. package/dist/notify-hub.d.ts +2 -45
  154. package/dist/notify-hub.js +3 -2
  155. package/dist/path-guard/index.d.ts +52 -0
  156. package/dist/path-guard/index.d.ts.map +1 -0
  157. package/dist/path-guard.d.ts +2 -54
  158. package/dist/path-guard.js +5 -2
  159. package/dist/performance-regression-gate/index.d.ts +31 -0
  160. package/dist/performance-regression-gate/index.d.ts.map +1 -0
  161. package/dist/performance-regression-gate.d.ts +2 -33
  162. package/dist/performance-regression-gate.js +5 -5
  163. package/dist/plugin-stack-observer/index.d.ts +33 -0
  164. package/dist/plugin-stack-observer/index.d.ts.map +1 -0
  165. package/dist/plugin-stack-observer.d.ts +2 -35
  166. package/dist/plugin-stack-observer.js +3 -2
  167. package/dist/pr-drafter/index.d.ts +33 -0
  168. package/dist/pr-drafter/index.d.ts.map +1 -0
  169. package/dist/pr-drafter.d.ts +2 -35
  170. package/dist/pr-drafter.js +6 -6
  171. package/dist/prompt-firewall/index.d.ts +55 -0
  172. package/dist/prompt-firewall/index.d.ts.map +1 -0
  173. package/dist/prompt-firewall.d.ts +2 -57
  174. package/dist/prompt-firewall.js +5 -2
  175. package/dist/refactor-suggester/index.d.ts +36 -0
  176. package/dist/refactor-suggester/index.d.ts.map +1 -0
  177. package/dist/refactor-suggester.d.ts +2 -38
  178. package/dist/refactor-suggester.js +16 -17
  179. package/dist/release-notes-generator/index.d.ts +25 -0
  180. package/dist/release-notes-generator/index.d.ts.map +1 -0
  181. package/dist/release-notes-generator.d.ts +2 -27
  182. package/dist/release-notes-generator.js +28 -10
  183. package/dist/runtime/index.d.ts +124 -0
  184. package/dist/runtime/index.d.ts.map +1 -0
  185. package/dist/runtime.d.ts +1 -0
  186. package/dist/runtime.js +216 -0
  187. package/dist/schema-evolution-guard/index.d.ts +40 -0
  188. package/dist/schema-evolution-guard/index.d.ts.map +1 -0
  189. package/dist/schema-evolution-guard.d.ts +2 -42
  190. package/dist/schema-evolution-guard.js +5 -5
  191. package/dist/secret-scanner/index.d.ts +32 -0
  192. package/dist/secret-scanner/index.d.ts.map +1 -0
  193. package/dist/secret-scanner.d.ts +2 -34
  194. package/dist/secret-scanner.js +3 -2
  195. package/dist/security-hotspot-scanner/index.d.ts +28 -0
  196. package/dist/security-hotspot-scanner/index.d.ts.map +1 -0
  197. package/dist/security-hotspot-scanner.d.ts +2 -30
  198. package/dist/security-hotspot-scanner.js +6 -6
  199. package/dist/semantic-search-indexer/index.d.ts +36 -0
  200. package/dist/semantic-search-indexer/index.d.ts.map +1 -0
  201. package/dist/semantic-search-indexer.d.ts +2 -38
  202. package/dist/semantic-search-indexer.js +22 -6
  203. package/dist/semver-bump/index.d.ts +24 -0
  204. package/dist/semver-bump/index.d.ts.map +1 -0
  205. package/dist/semver-bump.d.ts +2 -26
  206. package/dist/semver-bump.js +10 -8
  207. package/dist/session-recap/index.d.ts +48 -0
  208. package/dist/session-recap/index.d.ts.map +1 -0
  209. package/dist/session-recap.d.ts +2 -50
  210. package/dist/session-recap.js +6 -4
  211. package/dist/shell-check/index.d.ts +14 -0
  212. package/dist/shell-check/index.d.ts.map +1 -0
  213. package/dist/shell-check.d.ts +2 -16
  214. package/dist/shell-check.js +6 -6
  215. package/dist/smart-rename/index.d.ts +24 -0
  216. package/dist/smart-rename/index.d.ts.map +1 -0
  217. package/dist/smart-rename.d.ts +2 -26
  218. package/dist/smart-rename.js +5 -5
  219. package/dist/spec-linker/index.d.ts +49 -0
  220. package/dist/spec-linker/index.d.ts.map +1 -0
  221. package/dist/spec-linker.d.ts +2 -51
  222. package/dist/spec-linker.js +20086 -244
  223. package/dist/template-engine/index.d.ts +13 -0
  224. package/dist/template-engine/index.d.ts.map +1 -0
  225. package/dist/template-engine.d.ts +2 -15
  226. package/dist/template-engine.js +7 -7
  227. package/dist/test-coverage-gate/index.d.ts +35 -0
  228. package/dist/test-coverage-gate/index.d.ts.map +1 -0
  229. package/dist/test-coverage-gate.d.ts +2 -37
  230. package/dist/test-coverage-gate.js +5 -5
  231. package/dist/test-flake-detector/index.d.ts +25 -0
  232. package/dist/test-flake-detector/index.d.ts.map +1 -0
  233. package/dist/test-flake-detector.d.ts +2 -27
  234. package/dist/test-flake-detector.js +98 -13
  235. package/dist/test-generator/index.d.ts +30 -0
  236. package/dist/test-generator/index.d.ts.map +1 -0
  237. package/dist/test-generator.d.ts +2 -32
  238. package/dist/test-generator.js +19 -20
  239. package/dist/test-runner-gate/index.d.ts +35 -0
  240. package/dist/test-runner-gate/index.d.ts.map +1 -0
  241. package/dist/test-runner-gate.d.ts +2 -37
  242. package/dist/test-runner-gate.js +6 -6
  243. package/dist/todo-listener/index.d.ts +35 -0
  244. package/dist/todo-listener/index.d.ts.map +1 -0
  245. package/dist/todo-listener.d.ts +2 -37
  246. package/dist/todo-listener.js +3 -2
  247. package/dist/todo-tracker/index.d.ts +4 -0
  248. package/dist/todo-tracker/index.d.ts.map +1 -0
  249. package/dist/todo-tracker.d.ts +2 -5
  250. package/dist/todo-tracker.js +5 -5
  251. package/dist/token-budget/index.d.ts +38 -0
  252. package/dist/token-budget/index.d.ts.map +1 -0
  253. package/dist/token-budget.d.ts +2 -40
  254. package/dist/token-budget.js +3 -2
  255. package/dist/token-throttle/index.d.ts +52 -0
  256. package/dist/token-throttle/index.d.ts.map +1 -0
  257. package/dist/token-throttle.d.ts +2 -54
  258. package/dist/token-throttle.js +6 -2
  259. package/dist/type-gate/index.d.ts +35 -0
  260. package/dist/type-gate/index.d.ts.map +1 -0
  261. package/dist/type-gate.d.ts +2 -37
  262. package/dist/type-gate.js +236 -43
  263. package/package.json +10 -7
@@ -276,5 +276,8 @@ ${errorLine ?? "(no error line)"}
276
276
  }
277
277
  };
278
278
  var error_lens_default = plugin;
279
-
280
- export { error_lens_default as default, extractErrorLine, extractFrames };
279
+ export {
280
+ error_lens_default as default,
281
+ extractErrorLine,
282
+ extractFrames
283
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * feature-flag-tracker plugin — scans source files for feature-flag-like
3
+ * expressions and reports where they are used.
4
+ *
5
+ * Tools registered:
6
+ * - scan_feature_flags : Scan a path for feature flag usages.
7
+ * - feature_flag_status : Report config + counters.
8
+ *
9
+ * Hooks registered:
10
+ * - PostToolUse with matcher `write|edit` to source files, noting any feature
11
+ * flags used in the changed file.
12
+ *
13
+ * Config (`config.extensions['feature-flag-tracker']`):
14
+ *
15
+ * ```jsonc
16
+ * {
17
+ * "enabled": true,
18
+ * "extensions": [".ts", ".tsx", ".js", ".jsx"],
19
+ * "patterns": ["extra-regex"],
20
+ * "maxFindings": 50
21
+ * }
22
+ * ```
23
+ *
24
+ * @public
25
+ */
26
+ import type { Plugin } from '@wrongstack/core';
27
+ export interface FeatureFlagUsage {
28
+ flag: string;
29
+ file: string;
30
+ line: number;
31
+ context: string;
32
+ pattern: string;
33
+ }
34
+ declare const plugin: Plugin;
35
+ export default plugin;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feature-flag-tracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AA6LD,QAAA,MAAM,MAAM,EAAE,MA+Mb,CAAC;eAEa,MAAM"}
@@ -1,38 +1,2 @@
1
- import { Plugin } from '@wrongstack/core';
2
-
3
- /**
4
- * feature-flag-tracker plugin — scans source files for feature-flag-like
5
- * expressions and reports where they are used.
6
- *
7
- * Tools registered:
8
- * - scan_feature_flags : Scan a path for feature flag usages.
9
- * - feature_flag_status : Report config + counters.
10
- *
11
- * Hooks registered:
12
- * - PostToolUse with matcher `write|edit` to source files, noting any feature
13
- * flags used in the changed file.
14
- *
15
- * Config (`config.extensions['feature-flag-tracker']`):
16
- *
17
- * ```jsonc
18
- * {
19
- * "enabled": true,
20
- * "extensions": [".ts", ".tsx", ".js", ".jsx"],
21
- * "patterns": ["extra-regex"],
22
- * "maxFindings": 50
23
- * }
24
- * ```
25
- *
26
- * @public
27
- */
28
-
29
- interface FeatureFlagUsage {
30
- flag: string;
31
- file: string;
32
- line: number;
33
- context: string;
34
- pattern: string;
35
- }
36
- declare const plugin: Plugin;
37
-
38
- export { type FeatureFlagUsage, plugin as default };
1
+ export * from './feature-flag-tracker/index.js';
2
+ export { default } from './feature-flag-tracker/index.js';
@@ -1,7 +1,6 @@
1
- import { readFileSync, existsSync, statSync, readdirSync } from 'fs';
2
- import { resolve, isAbsolute, relative, extname } from 'path';
3
-
4
1
  // src/feature-flag-tracker/index.ts
2
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
3
+ import { extname, isAbsolute, relative, resolve } from "node:path";
5
4
  var API_VERSION = "^0.1.10";
6
5
  var state = {
7
6
  scanCount: 0,
@@ -99,8 +98,7 @@ function scanFile(filePath, content, patterns, maxFindings) {
99
98
  const lines = content.split(/\r?\n/);
100
99
  for (const re of patterns) {
101
100
  re.lastIndex = 0;
102
- let m;
103
- while ((m = re.exec(content)) !== null) {
101
+ for (const m of content.matchAll(re)) {
104
102
  const flag = m[1] ?? m[0];
105
103
  const lineNo = content.slice(0, m.index).split(/\r?\n/).length;
106
104
  const context = (lines[lineNo - 1] ?? "").trim();
@@ -312,5 +310,6 @@ Make sure flag behavior is intentional and consider updating flag inventory/docs
312
310
  }
313
311
  };
314
312
  var feature_flag_tracker_default = plugin;
315
-
316
- export { feature_flag_tracker_default as default };
313
+ export {
314
+ feature_flag_tracker_default as default
315
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * file-watcher plugin — Watches project files and triggers actions on changes.
3
+ *
4
+ * Tools registered:
5
+ * - watch_start: Start watching paths for file changes
6
+ * - watch_stop: Stop a watch by ID
7
+ * - watch_list: List all active watches
8
+ */
9
+ import type { Plugin } from '@wrongstack/core';
10
+ declare const plugin: Plugin;
11
+ export default plugin;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file-watcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA2D/C,QAAA,MAAM,MAAM,EAAE,MAsWb,CAAC;eAEa,MAAM"}
@@ -1,14 +1,2 @@
1
- import { Plugin } from '@wrongstack/core';
2
-
3
- /**
4
- * file-watcher plugin — Watches project files and triggers actions on changes.
5
- *
6
- * Tools registered:
7
- * - watch_start: Start watching paths for file changes
8
- * - watch_stop: Stop a watch by ID
9
- * - watch_list: List all active watches
10
- */
11
-
12
- declare const plugin: Plugin;
13
-
14
- export { plugin as default };
1
+ export * from './file-watcher/index.js';
2
+ export { default } from './file-watcher/index.js';
@@ -1,7 +1,6 @@
1
- import { watch } from 'fs';
2
- import { isAbsolute, resolve, relative } from 'path';
3
-
4
1
  // src/file-watcher/index.ts
2
+ import { watch as fsWatch } from "node:fs";
3
+ import { isAbsolute, relative, resolve } from "node:path";
5
4
  var API_VERSION = "^0.1.10";
6
5
  function withinProject(p) {
7
6
  if (typeof p !== "string" || p.length === 0 || p.length > 4096) return false;
@@ -108,7 +107,7 @@ var plugin = {
108
107
  }
109
108
  function safeWatchDir(dirPath, recursive, handle) {
110
109
  try {
111
- const watcher = watch(dirPath, { recursive }, (eventType, filename) => {
110
+ const watcher = fsWatch(dirPath, { recursive }, (eventType, filename) => {
112
111
  if (!filename) return;
113
112
  const fullPath = `${dirPath}/${filename}`;
114
113
  const key = `${handle.id}:${fullPath}:${eventType}`;
@@ -129,7 +128,7 @@ var plugin = {
129
128
  `index:${fullPath}`,
130
129
  async () => {
131
130
  try {
132
- const { enqueueReindex } = await import('@wrongstack/tools/codebase-index');
131
+ const { enqueueReindex } = await import("@wrongstack/tools/codebase-index");
133
132
  const root = safeIndexRoot || dirPath;
134
133
  enqueueReindex({
135
134
  projectRoot: root,
@@ -313,5 +312,6 @@ var plugin = {
313
312
  }
314
313
  };
315
314
  var file_watcher_default = plugin;
316
-
317
- export { file_watcher_default as default };
315
+ export {
316
+ file_watcher_default as default
317
+ };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * auto-format-on-save plugin — PostToolUse hook that runs biome
3
+ * `format --write` on the file after every `write` or `edit`.
4
+ *
5
+ * Unlike lint-gate (which lints BEFORE the tool runs and can block),
6
+ * this plugin formats AFTER the write/edit commits — ensuring the
7
+ * file on disk always matches the project's formatting rules. No
8
+ * blocking, no warnings — just silently formats in-place.
9
+ *
10
+ * Tools registered:
11
+ * - format_on_save_status : Show config + per-session counters.
12
+ *
13
+ * Hooks registered:
14
+ * - PostToolUse with matcher `write|edit`. After the tool completes,
15
+ * runs `biome format --write <path>` on the actual file on disk.
16
+ * If the file changed (formatting was applied), logs the diff size.
17
+ * If biome fails or the file doesn't exist, silent fallback.
18
+ *
19
+ * Config (`config.extensions['format-on-save']`):
20
+ *
21
+ * ```jsonc
22
+ * {
23
+ * "enabled": true, // master switch
24
+ * "timeoutMs": 5000 // biome process timeout
25
+ * }
26
+ * ```
27
+ *
28
+ * @public
29
+ */
30
+ import type { Plugin } from '@wrongstack/core';
31
+ declare const plugin: Plugin;
32
+ export default plugin;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/format-on-save/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAmO/C,QAAA,MAAM,MAAM,EAAE,MA2Ob,CAAC;eAEa,MAAM"}
@@ -1,35 +1,2 @@
1
- import { Plugin } from '@wrongstack/core';
2
-
3
- /**
4
- * auto-format-on-save plugin — PostToolUse hook that runs biome
5
- * `format --write` on the file after every `write` or `edit`.
6
- *
7
- * Unlike lint-gate (which lints BEFORE the tool runs and can block),
8
- * this plugin formats AFTER the write/edit commits — ensuring the
9
- * file on disk always matches the project's formatting rules. No
10
- * blocking, no warnings — just silently formats in-place.
11
- *
12
- * Tools registered:
13
- * - format_on_save_status : Show config + per-session counters.
14
- *
15
- * Hooks registered:
16
- * - PostToolUse with matcher `write|edit`. After the tool completes,
17
- * runs `biome format --write <path>` on the actual file on disk.
18
- * If the file changed (formatting was applied), logs the diff size.
19
- * If biome fails or the file doesn't exist, silent fallback.
20
- *
21
- * Config (`config.extensions['format-on-save']`):
22
- *
23
- * ```jsonc
24
- * {
25
- * "enabled": true, // master switch
26
- * "timeoutMs": 5000 // biome process timeout
27
- * }
28
- * ```
29
- *
30
- * @public
31
- */
32
-
33
- declare const plugin: Plugin;
34
-
35
- export { plugin as default };
1
+ export * from './format-on-save/index.js';
2
+ export { default } from './format-on-save/index.js';
@@ -1,8 +1,7 @@
1
- import { execSync, execFileSync } from 'child_process';
2
- import { existsSync, statSync } from 'fs';
3
- import { isAbsolute, resolve, relative } from 'path';
4
-
5
1
  // src/format-on-save/index.ts
2
+ import { execFileSync, execSync } from "node:child_process";
3
+ import { existsSync, statSync } from "node:fs";
4
+ import { isAbsolute, relative, resolve } from "node:path";
6
5
  var API_VERSION = "^0.1.10";
7
6
  function withinProject(p) {
8
7
  if (typeof p !== "string" || p.length === 0 || p.length > 4096) return false;
@@ -296,5 +295,6 @@ var plugin = {
296
295
  }
297
296
  };
298
297
  var format_on_save_default = plugin;
299
-
300
- export { format_on_save_default as default };
298
+ export {
299
+ format_on_save_default as default
300
+ };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * git-autocommit plugin — AI-powered git staging and commit message generation.
3
+ *
4
+ * Tools registered:
5
+ * - git_autocommit: Stage files and create a commit with AI-written conventional commit messages.
6
+ * Supports `files` for specific staging and `dry_run` for preview.
7
+ *
8
+ * Note: The former `git_autocommit` and `git_autocommit` tools have been removed.
9
+ * - For staging: use `git_autocommit` with `files` (it stages automatically), or `bash` with `git add`.
10
+ * - For status: use the built-in `git` tool with `command: "status"` or `command: "diff"`.
11
+ */
12
+ import type { Plugin } from '@wrongstack/core';
13
+ declare const plugin: Plugin;
14
+ export default plugin;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git-autocommit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA+R/C,QAAA,MAAM,MAAM,EAAE,MAqXb,CAAC;eAEa,MAAM"}
@@ -1,17 +1,2 @@
1
- import { Plugin } from '@wrongstack/core';
2
-
3
- /**
4
- * git-autocommit plugin — AI-powered git staging and commit message generation.
5
- *
6
- * Tools registered:
7
- * - git_autocommit: Stage files and create a commit with AI-written conventional commit messages.
8
- * Supports `files` for specific staging and `dry_run` for preview.
9
- *
10
- * Note: The former `git_autocommit` and `git_autocommit` tools have been removed.
11
- * - For staging: use `git_autocommit` with `files` (it stages automatically), or `bash` with `git add`.
12
- * - For status: use the built-in `git` tool with `command: "status"` or `command: "diff"`.
13
- */
14
-
15
- declare const plugin: Plugin;
16
-
17
- export { plugin as default };
1
+ export * from './git-autocommit/index.js';
2
+ export { default } from './git-autocommit/index.js';
@@ -1,7 +1,6 @@
1
- import { execFileSync } from 'child_process';
2
- import { existsSync } from 'fs';
3
-
4
1
  // src/git-autocommit/index.ts
2
+ import { execFileSync } from "node:child_process";
3
+ import { existsSync } from "node:fs";
5
4
  var API_VERSION = "^0.1.10";
6
5
  var commitCount = { value: 0 };
7
6
  var lastCommit = { hash: null, at: null };
@@ -458,5 +457,6 @@ ${preCommitDiff}
458
457
  }
459
458
  };
460
459
  var git_autocommit_default = plugin;
461
-
462
- export { git_autocommit_default as default };
460
+ export {
461
+ git_autocommit_default as default
462
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * import-organizer plugin — PostToolUse hook that re-sorts and
3
+ * de-duplicates imports in a file after every `write` or `edit`.
4
+ *
5
+ * This is a heavier, post-write step than `format-on-save` (which only
6
+ * handles whitespace/formatting). It runs `biome check --write --unsafe`
7
+ * (or `eslint --fix` as a fallback) on the saved file. The `--unsafe`
8
+ * flag enables import-organization rules:
9
+ * - Sort imports alphabetically within import groups
10
+ * - Group by source (builtin, external, internal, relative)
11
+ * - Remove unused imports
12
+ * - Merge duplicate imports from the same module
13
+ *
14
+ * Tools registered:
15
+ * - import_organizer_status : Show config + per-session counters
16
+ * (invocations / organized / clean / errors + lastResult).
17
+ *
18
+ * Hooks registered:
19
+ * - PostToolUse with matcher `write|edit`. After the tool completes,
20
+ * runs the configured command on the file on disk. The hook reads
21
+ * the file fresh from disk (so `edit` tool's post-edit state is
22
+ * captured) and detects whether the file changed via byte-count
23
+ * comparison. If the file was modified, returns `additionalContext`
24
+ * so the LLM sees that imports were reorganized.
25
+ *
26
+ * Linter detection is lazy: on the first hook invocation, the plugin
27
+ * tries `biome` first (since `--unsafe` is required for import
28
+ * organization), then falls back to `eslint --fix`. If neither
29
+ * succeeds, the hook logs a one-time warning and becomes a no-op for
30
+ * the rest of the session. Linter presence is re-checked on every
31
+ * setup() call so plugin reload can recover if a linter is installed
32
+ * mid-session.
33
+ *
34
+ * Config (`config.extensions['import-organizer']`):
35
+ *
36
+ * ```jsonc
37
+ * {
38
+ * "enabled": true,
39
+ * "command": "npx @biomejs/biome check --write --unsafe",
40
+ * "fallbackCommand": "npx eslint --fix",
41
+ * "timeoutMs": 10000
42
+ * }
43
+ * ```
44
+ *
45
+ * @public
46
+ */
47
+ import type { Plugin } from '@wrongstack/core';
48
+ declare const plugin: Plugin;
49
+ export default plugin;
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/import-organizer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA4R/C,QAAA,MAAM,MAAM,EAAE,MA8Nb,CAAC;eAEa,MAAM"}
@@ -1,52 +1,2 @@
1
- import { Plugin } from '@wrongstack/core';
2
-
3
- /**
4
- * import-organizer plugin — PostToolUse hook that re-sorts and
5
- * de-duplicates imports in a file after every `write` or `edit`.
6
- *
7
- * This is a heavier, post-write step than `format-on-save` (which only
8
- * handles whitespace/formatting). It runs `biome check --write --unsafe`
9
- * (or `eslint --fix` as a fallback) on the saved file. The `--unsafe`
10
- * flag enables import-organization rules:
11
- * - Sort imports alphabetically within import groups
12
- * - Group by source (builtin, external, internal, relative)
13
- * - Remove unused imports
14
- * - Merge duplicate imports from the same module
15
- *
16
- * Tools registered:
17
- * - import_organizer_status : Show config + per-session counters
18
- * (invocations / organized / clean / errors + lastResult).
19
- *
20
- * Hooks registered:
21
- * - PostToolUse with matcher `write|edit`. After the tool completes,
22
- * runs the configured command on the file on disk. The hook reads
23
- * the file fresh from disk (so `edit` tool's post-edit state is
24
- * captured) and detects whether the file changed via byte-count
25
- * comparison. If the file was modified, returns `additionalContext`
26
- * so the LLM sees that imports were reorganized.
27
- *
28
- * Linter detection is lazy: on the first hook invocation, the plugin
29
- * tries `biome` first (since `--unsafe` is required for import
30
- * organization), then falls back to `eslint --fix`. If neither
31
- * succeeds, the hook logs a one-time warning and becomes a no-op for
32
- * the rest of the session. Linter presence is re-checked on every
33
- * setup() call so plugin reload can recover if a linter is installed
34
- * mid-session.
35
- *
36
- * Config (`config.extensions['import-organizer']`):
37
- *
38
- * ```jsonc
39
- * {
40
- * "enabled": true,
41
- * "command": "npx @biomejs/biome check --write --unsafe",
42
- * "fallbackCommand": "npx eslint --fix",
43
- * "timeoutMs": 10000
44
- * }
45
- * ```
46
- *
47
- * @public
48
- */
49
-
50
- declare const plugin: Plugin;
51
-
52
- export { plugin as default };
1
+ export * from './import-organizer/index.js';
2
+ export { default } from './import-organizer/index.js';
@@ -1,8 +1,7 @@
1
- import { spawn } from 'child_process';
2
- import { existsSync, statSync } from 'fs';
3
- import { isAbsolute, resolve, relative, basename } from 'path';
4
-
5
1
  // src/import-organizer/index.ts
2
+ import { spawn } from "node:child_process";
3
+ import { existsSync, statSync } from "node:fs";
4
+ import { basename, isAbsolute, relative, resolve } from "node:path";
6
5
  function withinProject(p) {
7
6
  if (typeof p !== "string" || p.length === 0 || p.length > 4096) return false;
8
7
  const root = process.cwd();
@@ -329,5 +328,6 @@ ${result.stderr.trim()}`
329
328
  }
330
329
  };
331
330
  var import_organizer_default = plugin;
332
-
333
- export { import_organizer_default as default };
331
+ export {
332
+ import_organizer_default as default
333
+ };