@wrongstack/plugins 0.293.0 → 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.
- package/README.md +7 -71
- package/dist/accessibility-auditor/index.d.ts +1 -1
- package/dist/accessibility-auditor/index.d.ts.map +1 -1
- package/dist/accessibility-auditor.js +31 -31
- package/dist/agent-handoff/index.d.ts +1 -1
- package/dist/agent-handoff/index.d.ts.map +1 -1
- package/dist/api-compatibility-gate/index.d.ts +1 -1
- package/dist/api-compatibility-gate/index.d.ts.map +1 -1
- package/dist/api-compatibility-gate.js +21 -16
- package/dist/audit/index.d.ts +386 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit.d.ts +1 -0
- package/dist/audit.js +454 -0
- package/dist/auto-doc/index.d.ts +1 -1
- package/dist/auto-doc/index.d.ts.map +1 -1
- package/dist/auto-escalate/index.d.ts +1 -1
- package/dist/auto-escalate/index.d.ts.map +1 -1
- package/dist/auto-i18n-extractor/index.d.ts +1 -1
- package/dist/auto-i18n-extractor/index.d.ts.map +1 -1
- package/dist/auto-i18n-extractor.js +2 -1
- package/dist/branch-guard/index.d.ts +1 -1
- package/dist/branch-guard/index.d.ts.map +1 -1
- package/dist/branch-guard.js +9 -1
- package/dist/catalog.d.ts +5 -30
- package/dist/catalog.d.ts.map +1 -1
- package/dist/changelog-writer/index.d.ts +1 -1
- package/dist/changelog-writer/index.d.ts.map +1 -1
- package/dist/checkpoint/index.d.ts +1 -1
- package/dist/checkpoint/index.d.ts.map +1 -1
- package/dist/checkpoint.js +7 -8
- package/dist/code-metrics/index.d.ts +1 -1
- package/dist/code-metrics/index.d.ts.map +1 -1
- package/dist/code-metrics.js +29 -29
- package/dist/commit-validator/index.d.ts +1 -1
- package/dist/commit-validator/index.d.ts.map +1 -1
- package/dist/config-validator/index.d.ts +1 -1
- package/dist/config-validator/index.d.ts.map +1 -1
- package/dist/context-pins/index.d.ts +1 -1
- package/dist/context-pins/index.d.ts.map +1 -1
- package/dist/cost-tracker/index.d.ts +1 -1
- package/dist/cost-tracker/index.d.ts.map +1 -1
- package/dist/cost-tracker.js +9 -2
- package/dist/cron/index.d.ts +1 -1
- package/dist/cron/index.d.ts.map +1 -1
- package/dist/dead-code-detector/index.d.ts +1 -1
- package/dist/dead-code-detector/index.d.ts.map +1 -1
- package/dist/dead-code-detector.js +26 -18
- package/dist/dep-guard/index.d.ts +1 -1
- package/dist/dep-guard/index.d.ts.map +1 -1
- package/dist/dependency-vulnerability-gate/index.d.ts +1 -1
- package/dist/dependency-vulnerability-gate/index.d.ts.map +1 -1
- package/dist/dependency-vulnerability-gate.js +34 -22
- package/dist/diff-summary/index.d.ts +1 -1
- package/dist/diff-summary/index.d.ts.map +1 -1
- package/dist/diff-summary.js +28 -29
- package/dist/doc-sync-guard/index.d.ts +1 -1
- package/dist/doc-sync-guard/index.d.ts.map +1 -1
- package/dist/doc-sync-guard.js +2 -1
- package/dist/duplicate-code-detector/index.d.ts +26 -1
- package/dist/duplicate-code-detector/index.d.ts.map +1 -1
- package/dist/duplicate-code-detector.js +178 -67
- package/dist/error-lens/index.d.ts +1 -1
- package/dist/error-lens/index.d.ts.map +1 -1
- package/dist/factories/index.d.ts +4 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/factories.d.ts +1 -0
- package/dist/factories.js +74 -0
- package/dist/feature-flag-tracker/index.d.ts +1 -1
- package/dist/feature-flag-tracker/index.d.ts.map +1 -1
- package/dist/feature-flag-tracker.js +29 -29
- package/dist/file-watcher/index.d.ts +1 -1
- package/dist/file-watcher/index.d.ts.map +1 -1
- package/dist/format-on-save/index.d.ts +1 -1
- package/dist/format-on-save/index.d.ts.map +1 -1
- package/dist/format-on-save.js +2 -1
- package/dist/generated-plugin-exports.d.ts +65 -0
- package/dist/generated-plugin-exports.d.ts.map +1 -0
- package/dist/git-autocommit/index.d.ts +1 -1
- package/dist/git-autocommit/index.d.ts.map +1 -1
- package/dist/import-organizer/index.d.ts +1 -1
- package/dist/import-organizer/index.d.ts.map +1 -1
- package/dist/import-organizer.js +2 -1
- package/dist/index.d.ts +4 -183
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17675 -17377
- package/dist/injection-shield/index.d.ts +1 -1
- package/dist/injection-shield/index.d.ts.map +1 -1
- package/dist/interface-contract-guard/index.d.ts +1 -1
- package/dist/interface-contract-guard/index.d.ts.map +1 -1
- package/dist/interface-contract-guard.js +29 -29
- package/dist/knowledge-graph/index.d.ts +1 -1
- package/dist/knowledge-graph/index.d.ts.map +1 -1
- package/dist/license-audit-gate/index.d.ts +1 -1
- package/dist/license-audit-gate/index.d.ts.map +1 -1
- package/dist/lint-gate/index.d.ts +1 -1
- package/dist/lint-gate/index.d.ts.map +1 -1
- package/dist/lint-gate.js +10 -1
- package/dist/llm-cache/index.d.ts +5 -1
- package/dist/llm-cache/index.d.ts.map +1 -1
- package/dist/llm-cache.js +16 -8
- package/dist/loop-breaker/index.d.ts +1 -1
- package/dist/loop-breaker/index.d.ts.map +1 -1
- package/dist/loop-breaker.js +10 -4
- package/dist/manifest/index.d.ts +16 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest.d.ts +1 -0
- package/dist/manifest.js +152 -0
- package/dist/migration-planner/index.d.ts +1 -1
- package/dist/migration-planner/index.d.ts.map +1 -1
- package/dist/migration-planner.js +2 -1
- package/dist/model-router/index.d.ts +1 -1
- package/dist/model-router/index.d.ts.map +1 -1
- package/dist/notify-hub/index.d.ts +1 -1
- package/dist/notify-hub/index.d.ts.map +1 -1
- package/dist/notify-hub/webhook-channel.d.ts +1 -1
- package/dist/notify-hub/webhook-channel.d.ts.map +1 -1
- package/dist/path-guard/index.d.ts +1 -1
- package/dist/path-guard/index.d.ts.map +1 -1
- package/dist/performance-regression-gate/index.d.ts +1 -1
- package/dist/performance-regression-gate/index.d.ts.map +1 -1
- package/dist/plugin-stack-observer/index.d.ts +1 -1
- package/dist/plugin-stack-observer/index.d.ts.map +1 -1
- package/dist/pr-drafter/index.d.ts +1 -1
- package/dist/pr-drafter/index.d.ts.map +1 -1
- package/dist/pr-drafter.js +28 -29
- package/dist/process-guard/index.d.ts +1 -1
- package/dist/process-guard/index.d.ts.map +1 -1
- package/dist/prompt-firewall/index.d.ts +1 -1
- package/dist/prompt-firewall/index.d.ts.map +1 -1
- package/dist/refactor-suggester/index.d.ts +1 -1
- package/dist/refactor-suggester/index.d.ts.map +1 -1
- package/dist/refactor-suggester.js +29 -29
- package/dist/release-notes-generator/index.d.ts +1 -1
- package/dist/release-notes-generator/index.d.ts.map +1 -1
- package/dist/release-notes-generator.js +29 -22
- package/dist/runtime/index.d.ts +15 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/llm.d.ts +1 -1
- package/dist/runtime/llm.d.ts.map +1 -1
- package/dist/runtime.js +43 -2
- package/dist/schema-evolution-guard/index.d.ts +1 -1
- package/dist/schema-evolution-guard/index.d.ts.map +1 -1
- package/dist/schema-evolution-guard.js +2 -1
- package/dist/secret-scanner/index.d.ts +1 -1
- package/dist/secret-scanner/index.d.ts.map +1 -1
- package/dist/secret-scanner.js +7 -1
- package/dist/security-hotspot-scanner/index.d.ts +1 -1
- package/dist/security-hotspot-scanner/index.d.ts.map +1 -1
- package/dist/security-hotspot-scanner.js +26 -19
- package/dist/semantic-search-indexer/index.d.ts +1 -1
- package/dist/semantic-search-indexer/index.d.ts.map +1 -1
- package/dist/semver-bump/index.d.ts +1 -1
- package/dist/semver-bump/index.d.ts.map +1 -1
- package/dist/semver-bump.js +78 -43
- package/dist/session-recap/index.d.ts +1 -1
- package/dist/session-recap/index.d.ts.map +1 -1
- package/dist/shell-check/index.d.ts +1 -1
- package/dist/shell-check/index.d.ts.map +1 -1
- package/dist/smart-rename/index.d.ts +1 -1
- package/dist/smart-rename/index.d.ts.map +1 -1
- package/dist/spec-linker/index.d.ts +1 -1
- package/dist/spec-linker/index.d.ts.map +1 -1
- package/dist/spec-linker.js +222 -20772
- package/dist/template-engine/index.d.ts +1 -1
- package/dist/template-engine/index.d.ts.map +1 -1
- package/dist/template-engine.js +4 -6
- package/dist/test-coverage-gate/index.d.ts +1 -1
- package/dist/test-coverage-gate/index.d.ts.map +1 -1
- package/dist/test-coverage-gate.js +29 -14
- package/dist/test-flake-detector/index.d.ts +1 -1
- package/dist/test-flake-detector/index.d.ts.map +1 -1
- package/dist/test-flake-detector.js +31 -20
- package/dist/test-generator/index.d.ts +1 -1
- package/dist/test-generator/index.d.ts.map +1 -1
- package/dist/test-runner-gate/index.d.ts +1 -1
- package/dist/test-runner-gate/index.d.ts.map +1 -1
- package/dist/test-runner-gate.js +2 -1
- package/dist/todo-listener/index.d.ts +1 -32
- package/dist/todo-listener/index.d.ts.map +1 -1
- package/dist/todo-tracker/index.d.ts +1 -1
- package/dist/todo-tracker/index.d.ts.map +1 -1
- package/dist/token-budget/index.d.ts +1 -1
- package/dist/token-budget/index.d.ts.map +1 -1
- package/dist/token-throttle/index.d.ts +1 -1
- package/dist/token-throttle/index.d.ts.map +1 -1
- package/dist/type-gate/index.d.ts +1 -1
- package/dist/type-gate/index.d.ts.map +1 -1
- package/dist/type-gate.js +11 -4
- package/package.json +80 -68
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/injection-shield/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/injection-shield/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA6GrD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAMD,QAAA,MAAM,MAAM,EAAE,MAwJb,CAAC;eAEa,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interface-contract-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interface-contract-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AASrD,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAwID,QAAA,MAAM,MAAM,EAAE,MAuMb,CAAC;eAEa,MAAM"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
// src/interface-contract-guard/index.ts
|
|
2
|
-
import {
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { isAbsolute as isAbsolute2, relative as relative2, resolve as resolve2 } from "node:path";
|
|
4
4
|
|
|
5
5
|
// src/runtime/index.ts
|
|
6
|
-
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
7
6
|
import { basename, extname, isAbsolute, relative, resolve } from "node:path";
|
|
8
7
|
var MAX_BUFFER_BYTES = 16 * 1024 * 1024;
|
|
9
8
|
function hasLeadingDash(arg) {
|
|
@@ -17,44 +16,45 @@ function withinProjectPath(projectRoot, candidate) {
|
|
|
17
16
|
return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
|
|
18
17
|
}
|
|
19
18
|
function withinProject(p) {
|
|
20
|
-
|
|
19
|
+
const cwd = process.cwd();
|
|
20
|
+
return withinProjectPath(cwd, p) || relative(cwd, p) === ".";
|
|
21
21
|
}
|
|
22
22
|
var DEFAULT_EXCLUDE_DIRS = ["node_modules", "dist", ".git", "coverage"];
|
|
23
|
-
function
|
|
23
|
+
async function collectSourceFilesAsync(root, opts) {
|
|
24
|
+
const { readdir, stat } = await import("node:fs/promises");
|
|
24
25
|
const files = [];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
try {
|
|
27
|
+
const s = await stat(root);
|
|
28
|
+
if (s.isFile()) {
|
|
29
|
+
if (matchesExtension(root, opts.extensions)) files.push(root);
|
|
30
|
+
return files;
|
|
31
|
+
}
|
|
32
|
+
if (!s.isDirectory()) return files;
|
|
33
|
+
} catch {
|
|
29
34
|
return files;
|
|
30
35
|
}
|
|
31
|
-
if (!s.isDirectory()) return files;
|
|
32
36
|
const exclude = opts.excludeDirs ?? DEFAULT_EXCLUDE_DIRS;
|
|
33
|
-
|
|
37
|
+
const excludeSet = new Set(exclude);
|
|
38
|
+
async function walk(dir, depth) {
|
|
34
39
|
if (opts.maxDepth !== void 0 && depth > opts.maxDepth) return;
|
|
35
40
|
let entries;
|
|
36
41
|
try {
|
|
37
|
-
entries =
|
|
42
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
38
43
|
} catch {
|
|
39
44
|
return;
|
|
40
45
|
}
|
|
46
|
+
entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
41
47
|
for (const entry of entries) {
|
|
42
|
-
if (
|
|
43
|
-
const full = resolve(dir, entry);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
} catch {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
if (st.isDirectory()) {
|
|
51
|
-
walk(full, depth + 1);
|
|
52
|
-
} else if (st.isFile() && matchesExtension(full, opts.extensions)) {
|
|
48
|
+
if (excludeSet.has(entry.name)) continue;
|
|
49
|
+
const full = resolve(dir, entry.name);
|
|
50
|
+
if (entry.isDirectory()) {
|
|
51
|
+
await walk(full, depth + 1);
|
|
52
|
+
} else if (entry.isFile() && matchesExtension(full, opts.extensions)) {
|
|
53
53
|
files.push(full);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
walk(root, 0);
|
|
57
|
+
await walk(root, 0);
|
|
58
58
|
return files;
|
|
59
59
|
}
|
|
60
60
|
function matchesExtension(p, exts) {
|
|
@@ -110,15 +110,15 @@ function hasImplementer(name, contents) {
|
|
|
110
110
|
}
|
|
111
111
|
return false;
|
|
112
112
|
}
|
|
113
|
-
function scanPath(rawPath, cfg) {
|
|
113
|
+
async function scanPath(rawPath, cfg) {
|
|
114
114
|
const root = process.cwd();
|
|
115
115
|
const resolved = isAbsolute2(rawPath) ? resolve2(rawPath) : resolve2(root, rawPath);
|
|
116
116
|
const exts = normalizeExtensions(cfg.extensions);
|
|
117
|
-
const files =
|
|
117
|
+
const files = await collectSourceFilesAsync(resolved, { extensions: exts });
|
|
118
118
|
const contents = [];
|
|
119
119
|
for (const p of files) {
|
|
120
120
|
try {
|
|
121
|
-
contents.push({ path: p, content:
|
|
121
|
+
contents.push({ path: p, content: await readFile(p, "utf-8") });
|
|
122
122
|
} catch {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -180,7 +180,7 @@ var plugin = {
|
|
|
180
180
|
state.hookUnregister = null;
|
|
181
181
|
}
|
|
182
182
|
const cfg = readConfig(api.config.extensions?.["interface-contract-guard"]);
|
|
183
|
-
const hook = (input) => {
|
|
183
|
+
const hook = async (input) => {
|
|
184
184
|
if (!cfg.enabled) return;
|
|
185
185
|
if (input.toolResult?.isError) return;
|
|
186
186
|
const inp = input.toolInput ?? {};
|
|
@@ -193,7 +193,7 @@ var plugin = {
|
|
|
193
193
|
const resolved = resolve2(process.cwd(), sourcePath);
|
|
194
194
|
let content;
|
|
195
195
|
try {
|
|
196
|
-
content =
|
|
196
|
+
content = await readFile(resolved, "utf-8");
|
|
197
197
|
} catch {
|
|
198
198
|
state.errorCount += 1;
|
|
199
199
|
return;
|
|
@@ -230,7 +230,7 @@ If you changed member shapes, search the project for implementers/\`satisfies\`/
|
|
|
230
230
|
state.scanCount += 1;
|
|
231
231
|
let result;
|
|
232
232
|
try {
|
|
233
|
-
result = scanPath(rawPath, cfg);
|
|
233
|
+
result = await scanPath(rawPath, cfg);
|
|
234
234
|
} catch (err) {
|
|
235
235
|
state.errorCount += 1;
|
|
236
236
|
return { ok: false, error: String(err) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQrD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AA2HD,QAAA,MAAM,MAAM,EAAE,MA2Sb,CAAC;eAEa,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license-audit-gate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/license-audit-gate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAkKrD,QAAA,MAAM,MAAM,EAAE,MAqMb,CAAC;eAEa,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint-gate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint-gate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA8VrD,QAAA,MAAM,MAAM,EAAE,MA2Wb,CAAC;eAEa,MAAM"}
|
package/dist/lint-gate.js
CHANGED
|
@@ -42,6 +42,7 @@ var LINTER_PACKAGES = {
|
|
|
42
42
|
biome: "@biomejs/biome",
|
|
43
43
|
eslint: "eslint"
|
|
44
44
|
};
|
|
45
|
+
var linterCache = /* @__PURE__ */ new Map();
|
|
45
46
|
function isInside(parent, candidate) {
|
|
46
47
|
const rel = relative(parent, candidate);
|
|
47
48
|
return rel === "" || !rel.startsWith(`..${sep}`) && rel !== ".." && !isAbsolute(rel);
|
|
@@ -89,13 +90,20 @@ function runCommand(command, args, timeoutMs, cwd, signal) {
|
|
|
89
90
|
});
|
|
90
91
|
}
|
|
91
92
|
async function detectLinter(requested, cwd) {
|
|
93
|
+
const cacheKey = `${requested}:${cwd}`;
|
|
94
|
+
const cached = linterCache.get(cacheKey);
|
|
95
|
+
if (cached !== void 0) return cached;
|
|
92
96
|
const candidates = requested === "auto" ? ["biome", "eslint"] : [requested];
|
|
93
97
|
for (const name of candidates) {
|
|
94
98
|
const linter = resolveLocalLinter(name, cwd);
|
|
95
99
|
if (!linter) continue;
|
|
96
100
|
const probe = await runCommand(linter.cmd, [linter.args[0], "--version"], 5e3, cwd);
|
|
97
|
-
if (!probe.error)
|
|
101
|
+
if (!probe.error) {
|
|
102
|
+
linterCache.set(cacheKey, linter);
|
|
103
|
+
return linter;
|
|
104
|
+
}
|
|
98
105
|
}
|
|
106
|
+
linterCache.set(cacheKey, null);
|
|
99
107
|
return null;
|
|
100
108
|
}
|
|
101
109
|
async function lintContent(content, filePath, linter, timeoutMs, cwd, signal) {
|
|
@@ -223,6 +231,7 @@ var plugin = {
|
|
|
223
231
|
state.linterErrorCount = 0;
|
|
224
232
|
state.hookUnregister = null;
|
|
225
233
|
state.lastResult = null;
|
|
234
|
+
linterCache.clear();
|
|
226
235
|
const cfg = readConfig(api.config.extensions?.["lint-gate"]);
|
|
227
236
|
const cwd = resolve(api.config.cwd ?? process.cwd());
|
|
228
237
|
const linterReady = detectLinter(cfg.linter, cwd).then((linter) => {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
*
|
|
38
38
|
* @public
|
|
39
39
|
*/
|
|
40
|
-
import type { Plugin } from '@wrongstack/core';
|
|
40
|
+
import type { Plugin } from '@wrongstack/core/types';
|
|
41
41
|
/**
|
|
42
42
|
* Whether a request is safe to cache under `onlyDeterministic`. Sampled
|
|
43
43
|
* requests (temperature > 0) return different content each call, so
|
|
@@ -47,6 +47,10 @@ export declare function isDeterministic(request: Record<string, unknown>): boole
|
|
|
47
47
|
/**
|
|
48
48
|
* Stable fingerprint of the request fields that affect the response.
|
|
49
49
|
* Excludes anything cosmetic (user id, etc.). Same inputs → same key.
|
|
50
|
+
*
|
|
51
|
+
* Determinism: uses canonical JSON key ordering (alphabetical) so
|
|
52
|
+
* identical semantic requests produce identical fingerprints regardless
|
|
53
|
+
* of property insertion order.
|
|
50
54
|
*/
|
|
51
55
|
export declare function fingerprintRequest(request: Record<string, unknown>): string;
|
|
52
56
|
declare const plugin: Plugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm-cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm-cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,wBAAwB,CAAC;AAwFhE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGzE;AAeD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAsB3E;AA6CD,QAAA,MAAM,MAAM,EAAE,MAkNb,CAAC;eAEa,MAAM"}
|
package/dist/llm-cache.js
CHANGED
|
@@ -32,21 +32,26 @@ function isDeterministic(request) {
|
|
|
32
32
|
const t = request["temperature"];
|
|
33
33
|
return t === void 0 || t === 0;
|
|
34
34
|
}
|
|
35
|
+
var fingerprintCache = /* @__PURE__ */ new WeakMap();
|
|
35
36
|
function fingerprintRequest(request) {
|
|
37
|
+
const cached = fingerprintCache.get(request);
|
|
38
|
+
if (cached) return cached;
|
|
36
39
|
const subset = {
|
|
40
|
+
maxTokens: request["maxTokens"] ?? null,
|
|
41
|
+
messages: request["messages"] ?? null,
|
|
37
42
|
model: request["model"] ?? null,
|
|
43
|
+
reasoning: request["reasoning"] ?? null,
|
|
44
|
+
responseFormat: request["responseFormat"] ?? null,
|
|
45
|
+
stopSequences: request["stopSequences"] ?? null,
|
|
38
46
|
system: request["system"] ?? null,
|
|
39
|
-
messages: request["messages"] ?? null,
|
|
40
|
-
tools: Array.isArray(request["tools"]) ? request["tools"].map((t) => t?.name ?? t) : null,
|
|
41
47
|
temperature: request["temperature"] ?? null,
|
|
42
|
-
|
|
48
|
+
tools: Array.isArray(request["tools"]) ? request["tools"].map((t) => t?.name ?? t) : null,
|
|
43
49
|
topK: request["topK"] ?? null,
|
|
44
|
-
|
|
45
|
-
stopSequences: request["stopSequences"] ?? null,
|
|
46
|
-
responseFormat: request["responseFormat"] ?? null,
|
|
47
|
-
reasoning: request["reasoning"] ?? null
|
|
50
|
+
topP: request["topP"] ?? null
|
|
48
51
|
};
|
|
49
|
-
|
|
52
|
+
const fingerprint = createHash("sha256").update(JSON.stringify(subset)).digest("hex");
|
|
53
|
+
fingerprintCache.set(request, fingerprint);
|
|
54
|
+
return fingerprint;
|
|
50
55
|
}
|
|
51
56
|
function lruGet(key, ttlMs) {
|
|
52
57
|
const entry = state.cache.get(key);
|
|
@@ -60,6 +65,9 @@ function lruGet(key, ttlMs) {
|
|
|
60
65
|
return entry;
|
|
61
66
|
}
|
|
62
67
|
function lruSet(key, response, maxEntries) {
|
|
68
|
+
if (state.cache.has(key)) {
|
|
69
|
+
state.cache.delete(key);
|
|
70
|
+
}
|
|
63
71
|
state.cache.set(key, { response, storedAt: Date.now(), hits: 0 });
|
|
64
72
|
while (state.cache.size > maxEntries) {
|
|
65
73
|
const oldest = state.cache.keys().next().value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loop-breaker/index.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loop-breaker/index.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAqQrD,QAAA,MAAM,MAAM,EAAE,MA+Yb,CAAC;eAEa,MAAM"}
|
package/dist/loop-breaker.js
CHANGED
|
@@ -34,11 +34,17 @@ var DEFAULTS = {
|
|
|
34
34
|
repeatedErrorBlockAfter: 3,
|
|
35
35
|
ignoreTools: []
|
|
36
36
|
};
|
|
37
|
+
var ignoreToolsSet = new Set(DEFAULTS.ignoreTools);
|
|
37
38
|
function readConfig(raw) {
|
|
38
|
-
if (!raw || typeof raw !== "object")
|
|
39
|
+
if (!raw || typeof raw !== "object") {
|
|
40
|
+
ignoreToolsSet = new Set(DEFAULTS.ignoreTools);
|
|
41
|
+
return { ...DEFAULTS };
|
|
42
|
+
}
|
|
39
43
|
const r = raw;
|
|
40
44
|
const warnAfter = typeof r["warnAfter"] === "number" && r["warnAfter"] >= 2 ? r["warnAfter"] : DEFAULTS.warnAfter;
|
|
41
45
|
const blockAfter = typeof r["blockAfter"] === "number" && r["blockAfter"] > warnAfter ? r["blockAfter"] : Math.max(DEFAULTS.blockAfter, warnAfter + 1);
|
|
46
|
+
const ignoreTools = Array.isArray(r["ignoreTools"]) ? r["ignoreTools"].filter((t) => typeof t === "string") : [];
|
|
47
|
+
ignoreToolsSet = new Set(ignoreTools);
|
|
42
48
|
return {
|
|
43
49
|
enabled: r["enabled"] !== false,
|
|
44
50
|
mode: r["mode"] === "warn" ? "warn" : "block",
|
|
@@ -50,7 +56,7 @@ function readConfig(raw) {
|
|
|
50
56
|
noDiffBlockAfter: typeof r["noDiffBlockAfter"] === "number" && r["noDiffBlockAfter"] >= 0 ? Math.floor(r["noDiffBlockAfter"]) : DEFAULTS.noDiffBlockAfter,
|
|
51
57
|
repeatedErrorWarnAfter: typeof r["repeatedErrorWarnAfter"] === "number" && r["repeatedErrorWarnAfter"] >= 1 ? Math.floor(r["repeatedErrorWarnAfter"]) : DEFAULTS.repeatedErrorWarnAfter,
|
|
52
58
|
repeatedErrorBlockAfter: typeof r["repeatedErrorBlockAfter"] === "number" && r["repeatedErrorBlockAfter"] >= 0 ? Math.floor(r["repeatedErrorBlockAfter"]) : DEFAULTS.repeatedErrorBlockAfter,
|
|
53
|
-
ignoreTools
|
|
59
|
+
ignoreTools
|
|
54
60
|
};
|
|
55
61
|
}
|
|
56
62
|
function canonicalize(value) {
|
|
@@ -228,7 +234,7 @@ var plugin = {
|
|
|
228
234
|
const hook = (input) => {
|
|
229
235
|
if (!cfg.enabled) return;
|
|
230
236
|
const toolName = input.toolName ?? "unknown";
|
|
231
|
-
if (
|
|
237
|
+
if (ignoreToolsSet.has(toolName)) return;
|
|
232
238
|
state.invocations += 1;
|
|
233
239
|
if (state.pendingBlockReason && cfg.mode === "block") {
|
|
234
240
|
const reason = state.pendingBlockReason;
|
|
@@ -289,7 +295,7 @@ var plugin = {
|
|
|
289
295
|
const postHook = async (input, runtime = { signal: new AbortController().signal }) => {
|
|
290
296
|
if (!cfg.enabled) return;
|
|
291
297
|
const toolName = input.toolName ?? "unknown";
|
|
292
|
-
if (
|
|
298
|
+
if (ignoreToolsSet.has(toolName)) return;
|
|
293
299
|
state.postInvocations += 1;
|
|
294
300
|
if (input.toolResult?.isError) {
|
|
295
301
|
const errorFingerprint = normalizeError(input.toolResult.content);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Metadata that can be consumed without importing plugin implementations. */
|
|
2
|
+
export interface OfficialPluginManifestEntry {
|
|
3
|
+
name: string;
|
|
4
|
+
exportName: string;
|
|
5
|
+
packageSubpath: string;
|
|
6
|
+
sourcePath: string;
|
|
7
|
+
importSpecifier: string;
|
|
8
|
+
audit: {
|
|
9
|
+
risk: 'low' | 'medium' | 'high';
|
|
10
|
+
defaultState: 'active' | 'inactive';
|
|
11
|
+
canDisable: true;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare const OFFICIAL_PLUGIN_MANIFEST: readonly OfficialPluginManifestEntry[];
|
|
15
|
+
export declare const OFFICIAL_PLUGIN_NAME_SET: ReadonlySet<string>;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;QACL,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAChC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC;KAClB,CAAC;CACH;AA0ID,eAAO,MAAM,wBAAwB,EAAE,SAAS,2BAA2B,EAe1E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './manifest/index.js';
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// src/manifest/index.ts
|
|
2
|
+
var OFFICIAL_PLUGIN_NAMES = [
|
|
3
|
+
"agent-handoff",
|
|
4
|
+
"cost-tracker",
|
|
5
|
+
"file-watcher",
|
|
6
|
+
"git-autocommit",
|
|
7
|
+
"auto-doc",
|
|
8
|
+
"shell-check",
|
|
9
|
+
"cron",
|
|
10
|
+
"template-engine",
|
|
11
|
+
"semver-bump",
|
|
12
|
+
"secret-scanner",
|
|
13
|
+
"todo-tracker",
|
|
14
|
+
"token-budget",
|
|
15
|
+
"lint-gate",
|
|
16
|
+
"branch-guard",
|
|
17
|
+
"diff-summary",
|
|
18
|
+
"commit-validator",
|
|
19
|
+
"format-on-save",
|
|
20
|
+
"test-runner-gate",
|
|
21
|
+
"import-organizer",
|
|
22
|
+
"knowledge-graph",
|
|
23
|
+
"todo-listener",
|
|
24
|
+
"session-recap",
|
|
25
|
+
"spec-linker",
|
|
26
|
+
"loop-breaker",
|
|
27
|
+
"path-guard",
|
|
28
|
+
"process-guard",
|
|
29
|
+
"context-pins",
|
|
30
|
+
"checkpoint",
|
|
31
|
+
"error-lens",
|
|
32
|
+
"dep-guard",
|
|
33
|
+
"config-validator",
|
|
34
|
+
"notify-hub",
|
|
35
|
+
"changelog-writer",
|
|
36
|
+
"injection-shield",
|
|
37
|
+
"llm-cache",
|
|
38
|
+
"model-router",
|
|
39
|
+
"pr-drafter",
|
|
40
|
+
"prompt-firewall",
|
|
41
|
+
"auto-escalate",
|
|
42
|
+
"test-coverage-gate",
|
|
43
|
+
"type-gate",
|
|
44
|
+
"token-throttle",
|
|
45
|
+
"plugin-stack-observer",
|
|
46
|
+
"dead-code-detector",
|
|
47
|
+
"dependency-vulnerability-gate",
|
|
48
|
+
"migration-planner",
|
|
49
|
+
"semantic-search-indexer",
|
|
50
|
+
"auto-i18n-extractor",
|
|
51
|
+
"doc-sync-guard",
|
|
52
|
+
"api-compatibility-gate",
|
|
53
|
+
"performance-regression-gate",
|
|
54
|
+
"test-flake-detector",
|
|
55
|
+
"schema-evolution-guard",
|
|
56
|
+
"license-audit-gate",
|
|
57
|
+
"accessibility-auditor",
|
|
58
|
+
"security-hotspot-scanner",
|
|
59
|
+
"duplicate-code-detector",
|
|
60
|
+
"code-metrics",
|
|
61
|
+
"refactor-suggester",
|
|
62
|
+
"test-generator",
|
|
63
|
+
"release-notes-generator",
|
|
64
|
+
"smart-rename",
|
|
65
|
+
"feature-flag-tracker",
|
|
66
|
+
"interface-contract-guard"
|
|
67
|
+
];
|
|
68
|
+
var MEDIUM_RISK_PLUGINS = /* @__PURE__ */ new Set([
|
|
69
|
+
"agent-handoff",
|
|
70
|
+
"auto-doc",
|
|
71
|
+
"accessibility-auditor",
|
|
72
|
+
"file-watcher",
|
|
73
|
+
"cron",
|
|
74
|
+
"template-engine",
|
|
75
|
+
"token-budget",
|
|
76
|
+
"lint-gate",
|
|
77
|
+
"commit-validator",
|
|
78
|
+
"format-on-save",
|
|
79
|
+
"test-runner-gate",
|
|
80
|
+
"import-organizer",
|
|
81
|
+
"path-guard",
|
|
82
|
+
"checkpoint",
|
|
83
|
+
"dep-guard",
|
|
84
|
+
"api-compatibility-gate",
|
|
85
|
+
"notify-hub",
|
|
86
|
+
"llm-cache",
|
|
87
|
+
"model-router",
|
|
88
|
+
"auto-escalate",
|
|
89
|
+
"token-throttle",
|
|
90
|
+
"test-coverage-gate",
|
|
91
|
+
"test-flake-detector",
|
|
92
|
+
"performance-regression-gate",
|
|
93
|
+
"type-gate",
|
|
94
|
+
"interface-contract-guard",
|
|
95
|
+
"smart-rename"
|
|
96
|
+
]);
|
|
97
|
+
var HIGH_RISK_PLUGINS = /* @__PURE__ */ new Set([
|
|
98
|
+
"git-autocommit",
|
|
99
|
+
"semver-bump",
|
|
100
|
+
"secret-scanner",
|
|
101
|
+
"branch-guard",
|
|
102
|
+
"process-guard",
|
|
103
|
+
"dependency-vulnerability-gate",
|
|
104
|
+
"license-audit-gate",
|
|
105
|
+
"security-hotspot-scanner",
|
|
106
|
+
"schema-evolution-guard",
|
|
107
|
+
"prompt-firewall"
|
|
108
|
+
]);
|
|
109
|
+
var DEFAULT_ACTIVE_PLUGINS = /* @__PURE__ */ new Set([
|
|
110
|
+
"cost-tracker",
|
|
111
|
+
"secret-scanner",
|
|
112
|
+
"todo-tracker",
|
|
113
|
+
"token-budget",
|
|
114
|
+
"diff-summary",
|
|
115
|
+
"knowledge-graph",
|
|
116
|
+
"loop-breaker",
|
|
117
|
+
"process-guard",
|
|
118
|
+
"context-pins",
|
|
119
|
+
"error-lens",
|
|
120
|
+
"dep-guard",
|
|
121
|
+
"config-validator",
|
|
122
|
+
"injection-shield"
|
|
123
|
+
]);
|
|
124
|
+
function auditRisk(name) {
|
|
125
|
+
if (HIGH_RISK_PLUGINS.has(name)) return "high";
|
|
126
|
+
if (MEDIUM_RISK_PLUGINS.has(name)) return "medium";
|
|
127
|
+
return "low";
|
|
128
|
+
}
|
|
129
|
+
function exportName(name) {
|
|
130
|
+
return `${name.replace(/-([a-z0-9])/g, (_, char) => char.toUpperCase())}Plugin`;
|
|
131
|
+
}
|
|
132
|
+
var OFFICIAL_PLUGIN_MANIFEST = Object.freeze(
|
|
133
|
+
OFFICIAL_PLUGIN_NAMES.map(
|
|
134
|
+
(name) => Object.freeze({
|
|
135
|
+
name,
|
|
136
|
+
exportName: exportName(name),
|
|
137
|
+
packageSubpath: `./${name}`,
|
|
138
|
+
sourcePath: `./src/${name}`,
|
|
139
|
+
importSpecifier: `@wrongstack/plugins/${name}`,
|
|
140
|
+
audit: Object.freeze({
|
|
141
|
+
risk: auditRisk(name),
|
|
142
|
+
defaultState: DEFAULT_ACTIVE_PLUGINS.has(name) ? "active" : "inactive",
|
|
143
|
+
canDisable: true
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
)
|
|
147
|
+
);
|
|
148
|
+
var OFFICIAL_PLUGIN_NAME_SET = new Set(OFFICIAL_PLUGIN_NAMES);
|
|
149
|
+
export {
|
|
150
|
+
OFFICIAL_PLUGIN_MANIFEST,
|
|
151
|
+
OFFICIAL_PLUGIN_NAME_SET
|
|
152
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migration-planner/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migration-planner/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAwPrD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAwED,QAAA,MAAM,MAAM,EAAE,MA+Sb,CAAC;eAEa,MAAM"}
|
|
@@ -63,7 +63,8 @@ function withinProjectPath(projectRoot, candidate) {
|
|
|
63
63
|
return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
|
|
64
64
|
}
|
|
65
65
|
function withinProject(p) {
|
|
66
|
-
|
|
66
|
+
const cwd = process.cwd();
|
|
67
|
+
return withinProjectPath(cwd, p) || relative(cwd, p) === ".";
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
// src/migration-planner/index.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,wBAAwB,CAAC;AAMhE,UAAU,SAAS;IACjB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf;AA8DD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAgBxE;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAQ9F;AAMD,QAAA,MAAM,MAAM,EAAE,MAyKb,CAAC;eAEa,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notify-hub/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notify-hub/index.ts"],"names":[],"mappings":"AAyDA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,wBAAwB,CAAC;AA8N7D,QAAA,MAAM,MAAM,EAAE,MAwRb,CAAC;eAEa,MAAM"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @module notify-hub
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
|
-
import type { NotificationChannel, NotificationMessage, NotificationResult } from '@wrongstack/core';
|
|
17
|
+
import type { NotificationChannel, NotificationMessage, NotificationResult } from '@wrongstack/core/notifications';
|
|
18
18
|
export interface WebhookChannelOptions {
|
|
19
19
|
/** HTTP(S) endpoint that receives JSON POSTs. */
|
|
20
20
|
readonly webhookUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-channel.d.ts","sourceRoot":"","sources":["../../src/notify-hub/webhook-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"webhook-channel.d.ts","sourceRoot":"","sources":["../../src/notify-hub/webhook-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAmBnH,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAChE,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtD;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;;IACpE,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAiBnC,YAAY,IAAI,EAAE,qBAAqB,EAMtC;IAMK,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6DnE;IAEK,IAAI,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAYjE;IAMD,4DAA4D;IAC5D,YAAY,IAAI,IAAI,CAGnB;IAED,qCAAqC;IACrC,aAAa,IAAI;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAE9D;IAED,gDAAgD;IAChD,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAOA;CACF"}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
*
|
|
32
32
|
* @public
|
|
33
33
|
*/
|
|
34
|
-
import type { Plugin } from '@wrongstack/core';
|
|
34
|
+
import type { Plugin } from '@wrongstack/core/types';
|
|
35
35
|
/**
|
|
36
36
|
* Compile a glob pattern to a RegExp. Supports `**` (any depth),
|
|
37
37
|
* `*` (within one segment), and `?` (single char). Matching is done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/path-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/path-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAwErD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAyBvD;AAWD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB5D;AAMD,QAAA,MAAM,MAAM,EAAE,MA8Kb,CAAC;eAEa,MAAM"}
|