@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.
- package/README.md +18 -14
- package/dist/accessibility-auditor/index.d.ts +38 -0
- package/dist/accessibility-auditor/index.d.ts.map +1 -0
- package/dist/accessibility-auditor.d.ts +2 -40
- package/dist/accessibility-auditor.js +10 -15
- package/dist/agent-handoff/index.d.ts +35 -0
- package/dist/agent-handoff/index.d.ts.map +1 -0
- package/dist/agent-handoff.d.ts +2 -37
- package/dist/agent-handoff.js +3 -2
- package/dist/api-compatibility-gate/index.d.ts +36 -0
- package/dist/api-compatibility-gate/index.d.ts.map +1 -0
- package/dist/api-compatibility-gate.d.ts +2 -38
- package/dist/api-compatibility-gate.js +6 -6
- package/dist/auto-doc/index.d.ts +20 -0
- package/dist/auto-doc/index.d.ts.map +1 -0
- package/dist/auto-doc.d.ts +2 -22
- package/dist/auto-doc.js +5 -5
- package/dist/auto-escalate/index.d.ts +43 -0
- package/dist/auto-escalate/index.d.ts.map +1 -0
- package/dist/auto-escalate.d.ts +2 -45
- package/dist/auto-escalate.js +5 -2
- package/dist/auto-i18n-extractor/index.d.ts +34 -0
- package/dist/auto-i18n-extractor/index.d.ts.map +1 -0
- package/dist/auto-i18n-extractor.d.ts +2 -36
- package/dist/auto-i18n-extractor.js +6 -7
- package/dist/branch-guard/index.d.ts +32 -0
- package/dist/branch-guard/index.d.ts.map +1 -0
- package/dist/branch-guard.d.ts +2 -34
- package/dist/branch-guard.js +4 -4
- package/dist/catalog.d.ts +39 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/changelog-writer/index.d.ts +71 -0
- package/dist/changelog-writer/index.d.ts.map +1 -0
- package/dist/changelog-writer.d.ts +2 -73
- package/dist/changelog-writer.js +9 -5
- package/dist/checkpoint/index.d.ts +53 -0
- package/dist/checkpoint/index.d.ts.map +1 -0
- package/dist/checkpoint.d.ts +2 -55
- package/dist/checkpoint.js +6 -6
- package/dist/code-metrics/index.d.ts +29 -0
- package/dist/code-metrics/index.d.ts.map +1 -0
- package/dist/code-metrics.d.ts +2 -31
- package/dist/code-metrics.js +13 -15
- package/dist/commit-validator/index.d.ts +31 -0
- package/dist/commit-validator/index.d.ts.map +1 -0
- package/dist/commit-validator.d.ts +2 -33
- package/dist/commit-validator.js +5 -3
- package/dist/config-validator/index.d.ts +46 -0
- package/dist/config-validator/index.d.ts.map +1 -0
- package/dist/config-validator.d.ts +2 -48
- package/dist/config-validator.js +8 -4
- package/dist/context-pins/index.d.ts +43 -0
- package/dist/context-pins/index.d.ts.map +1 -0
- package/dist/context-pins.d.ts +2 -45
- package/dist/context-pins.js +5 -5
- package/dist/cost-tracker/index.d.ts +51 -0
- package/dist/cost-tracker/index.d.ts.map +1 -0
- package/dist/cost-tracker.d.ts +2 -53
- package/dist/cost-tracker.js +4 -4
- package/dist/cron/index.d.ts +12 -0
- package/dist/cron/index.d.ts.map +1 -0
- package/dist/cron.d.ts +2 -14
- package/dist/cron.js +3 -2
- package/dist/dead-code-detector/index.d.ts +32 -0
- package/dist/dead-code-detector/index.d.ts.map +1 -0
- package/dist/dead-code-detector.d.ts +2 -34
- package/dist/dead-code-detector.js +8 -9
- package/dist/dep-guard/index.d.ts +63 -0
- package/dist/dep-guard/index.d.ts.map +1 -0
- package/dist/dep-guard.d.ts +2 -65
- package/dist/dep-guard.js +6 -2
- package/dist/dependency-vulnerability-gate/index.d.ts +33 -0
- package/dist/dependency-vulnerability-gate/index.d.ts.map +1 -0
- package/dist/dependency-vulnerability-gate.d.ts +2 -35
- package/dist/dependency-vulnerability-gate.js +5 -5
- package/dist/diff-summary/index.d.ts +34 -0
- package/dist/diff-summary/index.d.ts.map +1 -0
- package/dist/diff-summary.d.ts +2 -36
- package/dist/diff-summary.js +5 -5
- package/dist/doc-sync-guard/index.d.ts +31 -0
- package/dist/doc-sync-guard/index.d.ts.map +1 -0
- package/dist/doc-sync-guard.d.ts +2 -33
- package/dist/doc-sync-guard.js +4 -4
- package/dist/duplicate-code-detector/index.d.ts +31 -0
- package/dist/duplicate-code-detector/index.d.ts.map +1 -0
- package/dist/duplicate-code-detector.d.ts +2 -33
- package/dist/duplicate-code-detector.js +5 -5
- package/dist/error-lens/index.d.ts +65 -0
- package/dist/error-lens/index.d.ts.map +1 -0
- package/dist/error-lens.d.ts +2 -67
- package/dist/error-lens.js +5 -2
- package/dist/feature-flag-tracker/index.d.ts +36 -0
- package/dist/feature-flag-tracker/index.d.ts.map +1 -0
- package/dist/feature-flag-tracker.d.ts +2 -38
- package/dist/feature-flag-tracker.js +6 -7
- package/dist/file-watcher/index.d.ts +12 -0
- package/dist/file-watcher/index.d.ts.map +1 -0
- package/dist/file-watcher.d.ts +2 -14
- package/dist/file-watcher.js +7 -7
- package/dist/format-on-save/index.d.ts +33 -0
- package/dist/format-on-save/index.d.ts.map +1 -0
- package/dist/format-on-save.d.ts +2 -35
- package/dist/format-on-save.js +6 -6
- package/dist/git-autocommit/index.d.ts +15 -0
- package/dist/git-autocommit/index.d.ts.map +1 -0
- package/dist/git-autocommit.d.ts +2 -17
- package/dist/git-autocommit.js +5 -5
- package/dist/import-organizer/index.d.ts +50 -0
- package/dist/import-organizer/index.d.ts.map +1 -0
- package/dist/import-organizer.d.ts +2 -52
- package/dist/import-organizer.js +6 -6
- package/dist/index.d.ts +186 -64
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +992 -454
- package/dist/injection-shield/index.d.ts +47 -0
- package/dist/injection-shield/index.d.ts.map +1 -0
- package/dist/injection-shield.d.ts +2 -49
- package/dist/injection-shield.js +4 -2
- package/dist/interface-contract-guard/index.d.ts +35 -0
- package/dist/interface-contract-guard/index.d.ts.map +1 -0
- package/dist/interface-contract-guard.d.ts +2 -37
- package/dist/interface-contract-guard.js +6 -7
- package/dist/knowledge-graph/index.d.ts +43 -0
- package/dist/knowledge-graph/index.d.ts.map +1 -0
- package/dist/knowledge-graph.d.ts +2 -45
- package/dist/knowledge-graph.js +5 -5
- package/dist/license-audit-gate/index.d.ts +32 -0
- package/dist/license-audit-gate/index.d.ts.map +1 -0
- package/dist/license-audit-gate.d.ts +2 -34
- package/dist/license-audit-gate.js +6 -7
- package/dist/lint-gate/index.d.ts +31 -0
- package/dist/lint-gate/index.d.ts.map +1 -0
- package/dist/lint-gate.d.ts +2 -33
- package/dist/lint-gate.js +7 -7
- package/dist/llm-cache/index.d.ts +54 -0
- package/dist/llm-cache/index.d.ts.map +1 -0
- package/dist/llm-cache.d.ts +2 -56
- package/dist/llm-cache.js +6 -4
- package/dist/loop-breaker/index.d.ts +4 -0
- package/dist/loop-breaker/index.d.ts.map +1 -0
- package/dist/loop-breaker.d.ts +2 -5
- package/dist/loop-breaker.js +4 -4
- package/dist/migration-planner/index.d.ts +28 -0
- package/dist/migration-planner/index.d.ts.map +1 -0
- package/dist/migration-planner.d.ts +2 -30
- package/dist/migration-planner.js +5 -5
- package/dist/model-router/index.d.ts +67 -0
- package/dist/model-router/index.d.ts.map +1 -0
- package/dist/model-router.d.ts +2 -69
- package/dist/model-router.js +5 -2
- package/dist/notify-hub/index.d.ts +43 -0
- package/dist/notify-hub/index.d.ts.map +1 -0
- package/dist/notify-hub.d.ts +2 -45
- package/dist/notify-hub.js +3 -2
- package/dist/path-guard/index.d.ts +52 -0
- package/dist/path-guard/index.d.ts.map +1 -0
- package/dist/path-guard.d.ts +2 -54
- package/dist/path-guard.js +5 -2
- package/dist/performance-regression-gate/index.d.ts +31 -0
- package/dist/performance-regression-gate/index.d.ts.map +1 -0
- package/dist/performance-regression-gate.d.ts +2 -33
- package/dist/performance-regression-gate.js +5 -5
- package/dist/plugin-stack-observer/index.d.ts +33 -0
- package/dist/plugin-stack-observer/index.d.ts.map +1 -0
- package/dist/plugin-stack-observer.d.ts +2 -35
- package/dist/plugin-stack-observer.js +3 -2
- package/dist/pr-drafter/index.d.ts +33 -0
- package/dist/pr-drafter/index.d.ts.map +1 -0
- package/dist/pr-drafter.d.ts +2 -35
- package/dist/pr-drafter.js +6 -6
- package/dist/prompt-firewall/index.d.ts +55 -0
- package/dist/prompt-firewall/index.d.ts.map +1 -0
- package/dist/prompt-firewall.d.ts +2 -57
- package/dist/prompt-firewall.js +5 -2
- package/dist/refactor-suggester/index.d.ts +36 -0
- package/dist/refactor-suggester/index.d.ts.map +1 -0
- package/dist/refactor-suggester.d.ts +2 -38
- package/dist/refactor-suggester.js +16 -17
- package/dist/release-notes-generator/index.d.ts +25 -0
- package/dist/release-notes-generator/index.d.ts.map +1 -0
- package/dist/release-notes-generator.d.ts +2 -27
- package/dist/release-notes-generator.js +28 -10
- package/dist/runtime/index.d.ts +124 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.js +216 -0
- package/dist/schema-evolution-guard/index.d.ts +40 -0
- package/dist/schema-evolution-guard/index.d.ts.map +1 -0
- package/dist/schema-evolution-guard.d.ts +2 -42
- package/dist/schema-evolution-guard.js +5 -5
- package/dist/secret-scanner/index.d.ts +32 -0
- package/dist/secret-scanner/index.d.ts.map +1 -0
- package/dist/secret-scanner.d.ts +2 -34
- package/dist/secret-scanner.js +3 -2
- package/dist/security-hotspot-scanner/index.d.ts +28 -0
- package/dist/security-hotspot-scanner/index.d.ts.map +1 -0
- package/dist/security-hotspot-scanner.d.ts +2 -30
- package/dist/security-hotspot-scanner.js +6 -6
- package/dist/semantic-search-indexer/index.d.ts +36 -0
- package/dist/semantic-search-indexer/index.d.ts.map +1 -0
- package/dist/semantic-search-indexer.d.ts +2 -38
- package/dist/semantic-search-indexer.js +22 -6
- package/dist/semver-bump/index.d.ts +24 -0
- package/dist/semver-bump/index.d.ts.map +1 -0
- package/dist/semver-bump.d.ts +2 -26
- package/dist/semver-bump.js +10 -8
- package/dist/session-recap/index.d.ts +48 -0
- package/dist/session-recap/index.d.ts.map +1 -0
- package/dist/session-recap.d.ts +2 -50
- package/dist/session-recap.js +6 -4
- package/dist/shell-check/index.d.ts +14 -0
- package/dist/shell-check/index.d.ts.map +1 -0
- package/dist/shell-check.d.ts +2 -16
- package/dist/shell-check.js +6 -6
- package/dist/smart-rename/index.d.ts +24 -0
- package/dist/smart-rename/index.d.ts.map +1 -0
- package/dist/smart-rename.d.ts +2 -26
- package/dist/smart-rename.js +5 -5
- package/dist/spec-linker/index.d.ts +49 -0
- package/dist/spec-linker/index.d.ts.map +1 -0
- package/dist/spec-linker.d.ts +2 -51
- package/dist/spec-linker.js +20086 -244
- package/dist/template-engine/index.d.ts +13 -0
- package/dist/template-engine/index.d.ts.map +1 -0
- package/dist/template-engine.d.ts +2 -15
- package/dist/template-engine.js +7 -7
- package/dist/test-coverage-gate/index.d.ts +35 -0
- package/dist/test-coverage-gate/index.d.ts.map +1 -0
- package/dist/test-coverage-gate.d.ts +2 -37
- package/dist/test-coverage-gate.js +5 -5
- package/dist/test-flake-detector/index.d.ts +25 -0
- package/dist/test-flake-detector/index.d.ts.map +1 -0
- package/dist/test-flake-detector.d.ts +2 -27
- package/dist/test-flake-detector.js +98 -13
- package/dist/test-generator/index.d.ts +30 -0
- package/dist/test-generator/index.d.ts.map +1 -0
- package/dist/test-generator.d.ts +2 -32
- package/dist/test-generator.js +19 -20
- package/dist/test-runner-gate/index.d.ts +35 -0
- package/dist/test-runner-gate/index.d.ts.map +1 -0
- package/dist/test-runner-gate.d.ts +2 -37
- package/dist/test-runner-gate.js +6 -6
- package/dist/todo-listener/index.d.ts +35 -0
- package/dist/todo-listener/index.d.ts.map +1 -0
- package/dist/todo-listener.d.ts +2 -37
- package/dist/todo-listener.js +3 -2
- package/dist/todo-tracker/index.d.ts +4 -0
- package/dist/todo-tracker/index.d.ts.map +1 -0
- package/dist/todo-tracker.d.ts +2 -5
- package/dist/todo-tracker.js +5 -5
- package/dist/token-budget/index.d.ts +38 -0
- package/dist/token-budget/index.d.ts.map +1 -0
- package/dist/token-budget.d.ts +2 -40
- package/dist/token-budget.js +3 -2
- package/dist/token-throttle/index.d.ts +52 -0
- package/dist/token-throttle/index.d.ts.map +1 -0
- package/dist/token-throttle.d.ts +2 -54
- package/dist/token-throttle.js +6 -2
- package/dist/type-gate/index.d.ts +35 -0
- package/dist/type-gate/index.d.ts.map +1 -0
- package/dist/type-gate.d.ts +2 -37
- package/dist/type-gate.js +236 -43
- package/package.json +10 -7
package/dist/error-lens.js
CHANGED
|
@@ -276,5 +276,8 @@ ${errorLine ?? "(no error line)"}
|
|
|
276
276
|
}
|
|
277
277
|
};
|
|
278
278
|
var error_lens_default = plugin;
|
|
279
|
-
|
|
280
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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"}
|
package/dist/file-watcher.d.ts
CHANGED
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
|
|
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';
|
package/dist/file-watcher.js
CHANGED
|
@@ -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 =
|
|
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(
|
|
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
|
-
|
|
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"}
|
package/dist/format-on-save.d.ts
CHANGED
|
@@ -1,35 +1,2 @@
|
|
|
1
|
-
|
|
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';
|
package/dist/format-on-save.js
CHANGED
|
@@ -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
|
-
|
|
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"}
|
package/dist/git-autocommit.d.ts
CHANGED
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
|
|
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';
|
package/dist/git-autocommit.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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';
|
package/dist/import-organizer.js
CHANGED
|
@@ -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
|
-
|
|
331
|
+
export {
|
|
332
|
+
import_organizer_default as default
|
|
333
|
+
};
|