ghagga-core 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/consensus.d.ts +2 -0
- package/dist/agents/consensus.d.ts.map +1 -1
- package/dist/agents/consensus.js +1 -0
- package/dist/agents/consensus.js.map +1 -1
- package/dist/agents/diagnostic.d.ts +2 -0
- package/dist/agents/diagnostic.d.ts.map +1 -1
- package/dist/agents/diagnostic.js +1 -0
- package/dist/agents/diagnostic.js.map +1 -1
- package/dist/agents/fan-out-lenses.d.ts +92 -0
- package/dist/agents/fan-out-lenses.d.ts.map +1 -0
- package/dist/agents/fan-out-lenses.js +424 -0
- package/dist/agents/fan-out-lenses.js.map +1 -0
- package/dist/agents/simple.d.ts +2 -0
- package/dist/agents/simple.d.ts.map +1 -1
- package/dist/agents/simple.js +1 -0
- package/dist/agents/simple.js.map +1 -1
- package/dist/agents/workflow.d.ts +2 -0
- package/dist/agents/workflow.d.ts.map +1 -1
- package/dist/agents/workflow.js +2 -1
- package/dist/agents/workflow.js.map +1 -1
- package/dist/checklist/config.d.ts +22 -0
- package/dist/checklist/config.d.ts.map +1 -0
- package/dist/checklist/config.js +85 -0
- package/dist/checklist/config.js.map +1 -0
- package/dist/checklist/context.d.ts +22 -0
- package/dist/checklist/context.d.ts.map +1 -0
- package/dist/checklist/context.js +76 -0
- package/dist/checklist/context.js.map +1 -0
- package/dist/checklist/defaults.d.ts +12 -0
- package/dist/checklist/defaults.d.ts.map +1 -0
- package/dist/checklist/defaults.js +172 -0
- package/dist/checklist/defaults.js.map +1 -0
- package/dist/checklist/index.d.ts +14 -0
- package/dist/checklist/index.d.ts.map +1 -0
- package/dist/checklist/index.js +15 -0
- package/dist/checklist/index.js.map +1 -0
- package/dist/checklist/scorer.d.ts +58 -0
- package/dist/checklist/scorer.d.ts.map +1 -0
- package/dist/checklist/scorer.js +142 -0
- package/dist/checklist/scorer.js.map +1 -0
- package/dist/checklist/types.d.ts +39 -0
- package/dist/checklist/types.d.ts.map +1 -0
- package/dist/checklist/types.js +17 -0
- package/dist/checklist/types.js.map +1 -0
- package/dist/exploitability/analyzer.d.ts +75 -0
- package/dist/exploitability/analyzer.d.ts.map +1 -0
- package/dist/exploitability/analyzer.js +299 -0
- package/dist/exploitability/analyzer.js.map +1 -0
- package/dist/exploitability/index.d.ts +10 -0
- package/dist/exploitability/index.d.ts.map +1 -0
- package/dist/exploitability/index.js +10 -0
- package/dist/exploitability/index.js.map +1 -0
- package/dist/exploitability/types.d.ts +32 -0
- package/dist/exploitability/types.d.ts.map +1 -0
- package/dist/exploitability/types.js +9 -0
- package/dist/exploitability/types.js.map +1 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/memory/context.d.ts +2 -0
- package/dist/memory/context.d.ts.map +1 -1
- package/dist/memory/context.js +2 -1
- package/dist/memory/context.js.map +1 -1
- package/dist/memory/contradiction.d.ts +46 -0
- package/dist/memory/contradiction.d.ts.map +1 -0
- package/dist/memory/contradiction.js +110 -0
- package/dist/memory/contradiction.js.map +1 -0
- package/dist/memory/decay.d.ts +25 -0
- package/dist/memory/decay.d.ts.map +1 -0
- package/dist/memory/decay.js +51 -0
- package/dist/memory/decay.js.map +1 -0
- package/dist/memory/search.d.ts.map +1 -1
- package/dist/memory/search.js +1 -0
- package/dist/memory/search.js.map +1 -1
- package/dist/memory/sqlite.d.ts +21 -0
- package/dist/memory/sqlite.d.ts.map +1 -1
- package/dist/memory/sqlite.js +82 -7
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/memory/versioning.d.ts +94 -0
- package/dist/memory/versioning.d.ts.map +1 -0
- package/dist/memory/versioning.js +350 -0
- package/dist/memory/versioning.js.map +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +117 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +7 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/recursive/index.d.ts +45 -0
- package/dist/recursive/index.d.ts.map +1 -0
- package/dist/recursive/index.js +159 -0
- package/dist/recursive/index.js.map +1 -0
- package/dist/recursive/patch-extractor.d.ts +49 -0
- package/dist/recursive/patch-extractor.d.ts.map +1 -0
- package/dist/recursive/patch-extractor.js +133 -0
- package/dist/recursive/patch-extractor.js.map +1 -0
- package/dist/recursive/re-reviewer.d.ts +31 -0
- package/dist/recursive/re-reviewer.d.ts.map +1 -0
- package/dist/recursive/re-reviewer.js +66 -0
- package/dist/recursive/re-reviewer.js.map +1 -0
- package/dist/recursive/types.d.ts +62 -0
- package/dist/recursive/types.d.ts.map +1 -0
- package/dist/recursive/types.js +11 -0
- package/dist/recursive/types.js.map +1 -0
- package/dist/scope/context-builder.d.ts +37 -0
- package/dist/scope/context-builder.d.ts.map +1 -0
- package/dist/scope/context-builder.js +108 -0
- package/dist/scope/context-builder.js.map +1 -0
- package/dist/scope/diff-mapper.d.ts +29 -0
- package/dist/scope/diff-mapper.d.ts.map +1 -0
- package/dist/scope/diff-mapper.js +76 -0
- package/dist/scope/diff-mapper.js.map +1 -0
- package/dist/scope/extractor.d.ts +25 -0
- package/dist/scope/extractor.d.ts.map +1 -0
- package/dist/scope/extractor.js +264 -0
- package/dist/scope/extractor.js.map +1 -0
- package/dist/scope/index.d.ts +13 -0
- package/dist/scope/index.d.ts.map +1 -0
- package/dist/scope/index.js +16 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/parser.d.ts +47 -0
- package/dist/scope/parser.d.ts.map +1 -0
- package/dist/scope/parser.js +97 -0
- package/dist/scope/parser.js.map +1 -0
- package/dist/scope/queries.d.ts +23 -0
- package/dist/scope/queries.d.ts.map +1 -0
- package/dist/scope/queries.js +134 -0
- package/dist/scope/queries.js.map +1 -0
- package/dist/scope/types.d.ts +55 -0
- package/dist/scope/types.d.ts.map +1 -0
- package/dist/scope/types.js +8 -0
- package/dist/scope/types.js.map +1 -0
- package/dist/tools/execution.d.ts.map +1 -1
- package/dist/tools/execution.js +2 -0
- package/dist/tools/execution.js.map +1 -1
- package/dist/tools/plugins/index.d.ts +1 -0
- package/dist/tools/plugins/index.d.ts.map +1 -1
- package/dist/tools/plugins/index.js +6 -5
- package/dist/tools/plugins/index.js.map +1 -1
- package/dist/tools/plugins/sonarqube.d.ts +54 -0
- package/dist/tools/plugins/sonarqube.d.ts.map +1 -0
- package/dist/tools/plugins/sonarqube.js +145 -0
- package/dist/tools/plugins/sonarqube.js.map +1 -0
- package/dist/tools/plugins/trivy.js +1 -1
- package/dist/tools/plugins/trivy.js.map +1 -1
- package/dist/tools/types.d.ts +7 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types.d.ts +80 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
package/dist/agents/simple.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface SimpleReviewInput {
|
|
|
17
17
|
stackHints: string;
|
|
18
18
|
reviewLevel: ReviewLevel;
|
|
19
19
|
onProgress?: ProgressCallback;
|
|
20
|
+
/** Optional SOLID/boundary checklist context for structured review. */
|
|
21
|
+
checklistContext?: string;
|
|
20
22
|
/**
|
|
21
23
|
* Optional backend-agnostic generation function.
|
|
22
24
|
* When provided, used instead of createModel + generateTextWithTimeout.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/agents/simple.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EAEb,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAOD;;;;;GAKG;AACH,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,YAAY,CAyCd;AAED;;;;;;;;;;GAUG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA4BzD;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../src/agents/simple.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EAGV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EAEb,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAOD;;;;;GAKG;AACH,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,YAAY,CAyCd;AAED;;;;;;;;;;GAUG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA4BzD;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmErF;AAGD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/agents/simple.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/agents/simple.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,6BAA6B,CAAC;AAWzF,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/agents/simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,8 @@ export interface WorkflowReviewInput {
|
|
|
53
53
|
* When omitted, functions are created from providerChain or flat fields (backward compat).
|
|
54
54
|
*/
|
|
55
55
|
generateFns?: GenerateTextFn[];
|
|
56
|
+
/** Optional SOLID/boundary checklist context for structured review. */
|
|
57
|
+
checklistContext?: string;
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Run a workflow (multi-specialist) code review.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/agents/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,YAAY,EAEb,MAAM,aAAa,CAAC;AAmBrB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAErC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/agents/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,YAAY,EAEb,MAAM,aAAa,CAAC;AAmBrB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAErC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAE/B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyCD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgNzF"}
|
package/dist/agents/workflow.js
CHANGED
|
@@ -97,10 +97,11 @@ export async function runWorkflowReview(input) {
|
|
|
97
97
|
// Build context: only include what's relevant for this specialist
|
|
98
98
|
const contextKeys = SPECIALIST_CONTEXT_MAP[specialist.name] ?? [];
|
|
99
99
|
const contextParts = contextKeys.map((key) => contextSources[key]).filter(Boolean);
|
|
100
|
-
const hasContext = contextParts.length > 0;
|
|
100
|
+
const hasContext = contextParts.length > 0 || !!input.checklistContext;
|
|
101
101
|
const system = [
|
|
102
102
|
specialist.system,
|
|
103
103
|
...contextParts,
|
|
104
|
+
input.checklistContext ?? '',
|
|
104
105
|
buildReviewLevelInstruction(reviewLevel),
|
|
105
106
|
hasContext ? REVIEW_CALIBRATION : COMPACT_CALIBRATION,
|
|
106
107
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/agents/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,6BAA6B,CAAC;AASzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/agents/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist config resolution — merges user overrides with defaults.
|
|
3
|
+
*
|
|
4
|
+
* Users can:
|
|
5
|
+
* - Enable/disable dimensions
|
|
6
|
+
* - Enable/disable individual checks
|
|
7
|
+
* - Override check weights
|
|
8
|
+
*
|
|
9
|
+
* Missing fields fall back to DEFAULT_CHECKLIST values.
|
|
10
|
+
*/
|
|
11
|
+
import type { ChecklistConfig } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the effective checklist configuration.
|
|
14
|
+
*
|
|
15
|
+
* Merges user-provided overrides with the default checklist.
|
|
16
|
+
* Returns a fully populated ChecklistConfig ready for use.
|
|
17
|
+
*
|
|
18
|
+
* @param userConfig - Partial config from ReviewSettings.checklist (may be undefined)
|
|
19
|
+
* @returns Fully resolved ChecklistConfig, or null if checklist is disabled
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveChecklistConfig(userConfig: ChecklistConfig | undefined): ChecklistConfig | null;
|
|
22
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/checklist/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAkB,eAAe,EAAsB,MAAM,YAAY,CAAC;AAEtF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,GAAG,SAAS,GACtC,eAAe,GAAG,IAAI,CA4BxB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist config resolution — merges user overrides with defaults.
|
|
3
|
+
*
|
|
4
|
+
* Users can:
|
|
5
|
+
* - Enable/disable dimensions
|
|
6
|
+
* - Enable/disable individual checks
|
|
7
|
+
* - Override check weights
|
|
8
|
+
*
|
|
9
|
+
* Missing fields fall back to DEFAULT_CHECKLIST values.
|
|
10
|
+
*/
|
|
11
|
+
import { DEFAULT_CHECKLIST } from './defaults.js';
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the effective checklist configuration.
|
|
14
|
+
*
|
|
15
|
+
* Merges user-provided overrides with the default checklist.
|
|
16
|
+
* Returns a fully populated ChecklistConfig ready for use.
|
|
17
|
+
*
|
|
18
|
+
* @param userConfig - Partial config from ReviewSettings.checklist (may be undefined)
|
|
19
|
+
* @returns Fully resolved ChecklistConfig, or null if checklist is disabled
|
|
20
|
+
*/
|
|
21
|
+
export function resolveChecklistConfig(userConfig) {
|
|
22
|
+
// No config at all → checklist disabled
|
|
23
|
+
if (!userConfig)
|
|
24
|
+
return null;
|
|
25
|
+
// Master switch off → disabled
|
|
26
|
+
if (!userConfig.enabled)
|
|
27
|
+
return null;
|
|
28
|
+
// No user dimensions → use all defaults
|
|
29
|
+
if (!userConfig.dimensions || userConfig.dimensions.length === 0) {
|
|
30
|
+
return { ...DEFAULT_CHECKLIST };
|
|
31
|
+
}
|
|
32
|
+
// Merge user dimensions with defaults
|
|
33
|
+
const mergedDimensions = DEFAULT_CHECKLIST.dimensions.map((defaultDim) => {
|
|
34
|
+
const userDim = userConfig.dimensions.find((d) => d.id === defaultDim.id);
|
|
35
|
+
if (!userDim)
|
|
36
|
+
return defaultDim;
|
|
37
|
+
return mergeDimension(defaultDim, userDim);
|
|
38
|
+
});
|
|
39
|
+
// Include any user-defined custom dimensions not in defaults
|
|
40
|
+
const defaultIds = new Set(DEFAULT_CHECKLIST.dimensions.map((d) => d.id));
|
|
41
|
+
const customDimensions = userConfig.dimensions.filter((d) => !defaultIds.has(d.id));
|
|
42
|
+
return {
|
|
43
|
+
enabled: true,
|
|
44
|
+
dimensions: [...mergedDimensions, ...customDimensions],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Merge a user dimension override with a default dimension.
|
|
49
|
+
* User fields take precedence where provided.
|
|
50
|
+
*/
|
|
51
|
+
function mergeDimension(defaultDim, userDim) {
|
|
52
|
+
const enabled = userDim.enabled ?? defaultDim.enabled;
|
|
53
|
+
// No user checks → use defaults with dimension-level enabled toggle and name override
|
|
54
|
+
if (!userDim.checks || userDim.checks.length === 0) {
|
|
55
|
+
return { ...defaultDim, name: userDim.name ?? defaultDim.name, enabled };
|
|
56
|
+
}
|
|
57
|
+
// Merge checks
|
|
58
|
+
const mergedChecks = defaultDim.checks.map((defaultCheck) => {
|
|
59
|
+
const userCheck = userDim.checks?.find((c) => c.id === defaultCheck.id);
|
|
60
|
+
if (!userCheck)
|
|
61
|
+
return defaultCheck;
|
|
62
|
+
return mergeCheck(defaultCheck, userCheck);
|
|
63
|
+
});
|
|
64
|
+
// Include custom checks not in defaults
|
|
65
|
+
const defaultCheckIds = new Set(defaultDim.checks.map((c) => c.id));
|
|
66
|
+
const customChecks = (userDim.checks ?? []).filter((c) => !defaultCheckIds.has(c.id));
|
|
67
|
+
return {
|
|
68
|
+
id: defaultDim.id,
|
|
69
|
+
name: userDim.name ?? defaultDim.name,
|
|
70
|
+
enabled,
|
|
71
|
+
checks: [...mergedChecks, ...customChecks],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Merge a user check override with a default check.
|
|
76
|
+
*/
|
|
77
|
+
function mergeCheck(defaultCheck, userCheck) {
|
|
78
|
+
return {
|
|
79
|
+
id: defaultCheck.id,
|
|
80
|
+
description: userCheck.description ?? defaultCheck.description,
|
|
81
|
+
weight: userCheck.weight ?? defaultCheck.weight,
|
|
82
|
+
enabled: userCheck.enabled ?? defaultCheck.enabled,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/checklist/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist context builder — generates compact prompt text for AI agents.
|
|
3
|
+
*
|
|
4
|
+
* Produces a markdown checklist that agents evaluate code against.
|
|
5
|
+
* Capped to ~600 tokens to avoid blowing the token budget.
|
|
6
|
+
*/
|
|
7
|
+
import type { ChecklistConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build a compact checklist context string for injection into agent prompts.
|
|
10
|
+
*
|
|
11
|
+
* Only includes enabled dimensions and enabled checks.
|
|
12
|
+
* Returns empty string if no checks are active.
|
|
13
|
+
*
|
|
14
|
+
* @param config - Resolved checklist configuration
|
|
15
|
+
* @returns Formatted markdown checklist, or empty string if nothing active
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildChecklistContext(config: ChecklistConfig): string;
|
|
18
|
+
/**
|
|
19
|
+
* Count the total number of active checks across all enabled dimensions.
|
|
20
|
+
*/
|
|
21
|
+
export declare function countActiveChecks(config: ChecklistConfig): number;
|
|
22
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/checklist/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAC;AAKtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAgCrE;AA4BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAOjE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist context builder — generates compact prompt text for AI agents.
|
|
3
|
+
*
|
|
4
|
+
* Produces a markdown checklist that agents evaluate code against.
|
|
5
|
+
* Capped to ~600 tokens to avoid blowing the token budget.
|
|
6
|
+
*/
|
|
7
|
+
/** Approximate max characters for checklist context (~600 tokens at 4 chars/token). */
|
|
8
|
+
const MAX_CONTEXT_CHARS = 2400;
|
|
9
|
+
/**
|
|
10
|
+
* Build a compact checklist context string for injection into agent prompts.
|
|
11
|
+
*
|
|
12
|
+
* Only includes enabled dimensions and enabled checks.
|
|
13
|
+
* Returns empty string if no checks are active.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Resolved checklist configuration
|
|
16
|
+
* @returns Formatted markdown checklist, or empty string if nothing active
|
|
17
|
+
*/
|
|
18
|
+
export function buildChecklistContext(config) {
|
|
19
|
+
const activeDimensions = config.dimensions.filter((d) => d.enabled);
|
|
20
|
+
if (activeDimensions.length === 0)
|
|
21
|
+
return '';
|
|
22
|
+
const lines = [
|
|
23
|
+
'## Review Checklist (evaluate each applicable check)',
|
|
24
|
+
'',
|
|
25
|
+
];
|
|
26
|
+
for (const dim of activeDimensions) {
|
|
27
|
+
const activeChecks = dim.checks.filter((c) => c.enabled);
|
|
28
|
+
if (activeChecks.length === 0)
|
|
29
|
+
continue;
|
|
30
|
+
lines.push(`### ${dim.name}`);
|
|
31
|
+
for (const check of activeChecks) {
|
|
32
|
+
lines.push(`- [w:${check.weight}] ${check.description}`);
|
|
33
|
+
}
|
|
34
|
+
lines.push('');
|
|
35
|
+
}
|
|
36
|
+
if (lines.length <= 2)
|
|
37
|
+
return ''; // Only header, no actual checks
|
|
38
|
+
lines.push('> Weight indicates importance (1-10). Flag violations with their check weight.');
|
|
39
|
+
const context = lines.join('\n');
|
|
40
|
+
// Truncate if over budget
|
|
41
|
+
if (context.length > MAX_CONTEXT_CHARS) {
|
|
42
|
+
return truncateContext(activeDimensions);
|
|
43
|
+
}
|
|
44
|
+
return context;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Truncate by including only high-weight checks (weight >= 7).
|
|
48
|
+
* This reduces context while keeping the most important checks.
|
|
49
|
+
*/
|
|
50
|
+
function truncateContext(dimensions) {
|
|
51
|
+
const lines = [
|
|
52
|
+
'## Review Checklist (high-priority checks only)',
|
|
53
|
+
'',
|
|
54
|
+
];
|
|
55
|
+
for (const dim of dimensions) {
|
|
56
|
+
const highWeightChecks = dim.checks.filter((c) => c.enabled && c.weight >= 7);
|
|
57
|
+
if (highWeightChecks.length === 0)
|
|
58
|
+
continue;
|
|
59
|
+
lines.push(`### ${dim.name}`);
|
|
60
|
+
for (const check of highWeightChecks) {
|
|
61
|
+
lines.push(`- [w:${check.weight}] ${check.description}`);
|
|
62
|
+
}
|
|
63
|
+
lines.push('');
|
|
64
|
+
}
|
|
65
|
+
lines.push('> Truncated to high-priority checks (weight >= 7). Flag violations with their check weight.');
|
|
66
|
+
return lines.join('\n');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Count the total number of active checks across all enabled dimensions.
|
|
70
|
+
*/
|
|
71
|
+
export function countActiveChecks(config) {
|
|
72
|
+
return config.dimensions
|
|
73
|
+
.filter((d) => d.enabled)
|
|
74
|
+
.reduce((sum, dim) => sum + dim.checks.filter((c) => c.enabled).length, 0);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/checklist/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default checklist — SOLID principles, error handling,
|
|
3
|
+
* boundary conditions, and security review dimensions.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by https://github.com/sanyuan0704/sanyuan-skills
|
|
6
|
+
*/
|
|
7
|
+
import type { ChecklistConfig, ChecklistDimension } from './types.js';
|
|
8
|
+
/** Default checklist with all 4 dimensions enabled. */
|
|
9
|
+
export declare const DEFAULT_CHECKLIST: ChecklistConfig;
|
|
10
|
+
/** All default dimension definitions (for individual access). */
|
|
11
|
+
export declare const DEFAULT_DIMENSIONS: readonly ChecklistDimension[];
|
|
12
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoKtE,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,eAQ/B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,EAAE,SAAS,kBAAkB,EAAiC,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default checklist — SOLID principles, error handling,
|
|
3
|
+
* boundary conditions, and security review dimensions.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by https://github.com/sanyuan0704/sanyuan-skills
|
|
6
|
+
*/
|
|
7
|
+
// ─── SOLID Principles ──────────────────────────────────────────
|
|
8
|
+
const SOLID_DIMENSION = {
|
|
9
|
+
id: 'solid',
|
|
10
|
+
name: 'SOLID Principles',
|
|
11
|
+
enabled: true,
|
|
12
|
+
checks: [
|
|
13
|
+
{
|
|
14
|
+
id: 'single-responsibility',
|
|
15
|
+
description: 'Does each class/function have exactly one reason to change?',
|
|
16
|
+
weight: 8,
|
|
17
|
+
enabled: true,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'open-closed',
|
|
21
|
+
description: 'Is the code open for extension but closed for modification?',
|
|
22
|
+
weight: 6,
|
|
23
|
+
enabled: true,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'liskov-substitution',
|
|
27
|
+
description: 'Can subtypes be substituted for their base types without breaking behavior?',
|
|
28
|
+
weight: 7,
|
|
29
|
+
enabled: true,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'interface-segregation',
|
|
33
|
+
description: 'Are interfaces small and focused rather than fat and monolithic?',
|
|
34
|
+
weight: 6,
|
|
35
|
+
enabled: true,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 'dependency-inversion',
|
|
39
|
+
description: 'Do high-level modules depend on abstractions rather than concrete implementations?',
|
|
40
|
+
weight: 7,
|
|
41
|
+
enabled: true,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
// ─── Error Handling ────────────────────────────────────────────
|
|
46
|
+
const ERROR_HANDLING_DIMENSION = {
|
|
47
|
+
id: 'error-handling',
|
|
48
|
+
name: 'Error Handling',
|
|
49
|
+
enabled: true,
|
|
50
|
+
checks: [
|
|
51
|
+
{
|
|
52
|
+
id: 'error-propagation',
|
|
53
|
+
description: 'Are errors propagated with sufficient context for debugging?',
|
|
54
|
+
weight: 8,
|
|
55
|
+
enabled: true,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 'error-recovery',
|
|
59
|
+
description: 'Does the code recover gracefully from expected failure modes?',
|
|
60
|
+
weight: 7,
|
|
61
|
+
enabled: true,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'error-types',
|
|
65
|
+
description: 'Are specific error types used instead of generic Error/Exception?',
|
|
66
|
+
weight: 5,
|
|
67
|
+
enabled: true,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'silent-failures',
|
|
71
|
+
description: 'Are there empty catch blocks or swallowed errors?',
|
|
72
|
+
weight: 9,
|
|
73
|
+
enabled: true,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'async-error-handling',
|
|
77
|
+
description: 'Are async operations wrapped in try/catch or .catch() handlers?',
|
|
78
|
+
weight: 8,
|
|
79
|
+
enabled: true,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
// ─── Boundary Conditions ───────────────────────────────────────
|
|
84
|
+
const BOUNDARY_CONDITIONS_DIMENSION = {
|
|
85
|
+
id: 'boundary-conditions',
|
|
86
|
+
name: 'Boundary Conditions',
|
|
87
|
+
enabled: true,
|
|
88
|
+
checks: [
|
|
89
|
+
{
|
|
90
|
+
id: 'null-undefined',
|
|
91
|
+
description: 'Are null/undefined values handled at function entry points?',
|
|
92
|
+
weight: 8,
|
|
93
|
+
enabled: true,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: 'empty-collections',
|
|
97
|
+
description: 'Does the code handle empty arrays, maps, or strings correctly?',
|
|
98
|
+
weight: 7,
|
|
99
|
+
enabled: true,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'numeric-limits',
|
|
103
|
+
description: 'Are integer overflow, division by zero, and NaN cases handled?',
|
|
104
|
+
weight: 7,
|
|
105
|
+
enabled: true,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'string-encoding',
|
|
109
|
+
description: 'Are unicode, multi-byte, and special characters handled correctly?',
|
|
110
|
+
weight: 5,
|
|
111
|
+
enabled: true,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'concurrency-bounds',
|
|
115
|
+
description: 'Are race conditions and concurrent access patterns protected?',
|
|
116
|
+
weight: 8,
|
|
117
|
+
enabled: true,
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
};
|
|
121
|
+
// ─── Security ──────────────────────────────────────────────────
|
|
122
|
+
const SECURITY_DIMENSION = {
|
|
123
|
+
id: 'security',
|
|
124
|
+
name: 'Security',
|
|
125
|
+
enabled: true,
|
|
126
|
+
checks: [
|
|
127
|
+
{
|
|
128
|
+
id: 'input-validation',
|
|
129
|
+
description: 'Is all external input validated and sanitized before use?',
|
|
130
|
+
weight: 9,
|
|
131
|
+
enabled: true,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: 'auth-checks',
|
|
135
|
+
description: 'Are authentication and authorization checks present where needed?',
|
|
136
|
+
weight: 9,
|
|
137
|
+
enabled: true,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: 'sensitive-data',
|
|
141
|
+
description: 'Is sensitive data (tokens, passwords, PII) protected from exposure?',
|
|
142
|
+
weight: 10,
|
|
143
|
+
enabled: true,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'injection-prevention',
|
|
147
|
+
description: 'Are SQL, XSS, command injection, and path traversal attacks prevented?',
|
|
148
|
+
weight: 10,
|
|
149
|
+
enabled: true,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: 'dependency-safety',
|
|
153
|
+
description: 'Are third-party dependencies up to date and free of known vulnerabilities?',
|
|
154
|
+
weight: 6,
|
|
155
|
+
enabled: true,
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
// ─── Default Checklist ─────────────────────────────────────────
|
|
160
|
+
/** Default checklist with all 4 dimensions enabled. */
|
|
161
|
+
export const DEFAULT_CHECKLIST = {
|
|
162
|
+
enabled: true,
|
|
163
|
+
dimensions: [
|
|
164
|
+
SOLID_DIMENSION,
|
|
165
|
+
ERROR_HANDLING_DIMENSION,
|
|
166
|
+
BOUNDARY_CONDITIONS_DIMENSION,
|
|
167
|
+
SECURITY_DIMENSION,
|
|
168
|
+
],
|
|
169
|
+
};
|
|
170
|
+
/** All default dimension definitions (for individual access). */
|
|
171
|
+
export const DEFAULT_DIMENSIONS = DEFAULT_CHECKLIST.dimensions;
|
|
172
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist module — configurable SOLID + boundary conditions review.
|
|
3
|
+
*
|
|
4
|
+
* Provides review dimensions with weighted checks that guide AI agents
|
|
5
|
+
* during code review. Findings are scored by weight * severity.
|
|
6
|
+
*/
|
|
7
|
+
export type { ChecklistCheck, ChecklistConfig, ChecklistDimension } from './types.js';
|
|
8
|
+
export { SEVERITY_MULTIPLIER } from './types.js';
|
|
9
|
+
export { DEFAULT_CHECKLIST, DEFAULT_DIMENSIONS } from './defaults.js';
|
|
10
|
+
export { resolveChecklistConfig } from './config.js';
|
|
11
|
+
export { buildChecklistContext, countActiveChecks } from './context.js';
|
|
12
|
+
export type { ChecklistScoreResult, DimensionScore, ScorableFinding, ScoredFinding, } from './scorer.js';
|
|
13
|
+
export { scoreFindings } from './scorer.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checklist/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIjD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAItE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIxE,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist module — configurable SOLID + boundary conditions review.
|
|
3
|
+
*
|
|
4
|
+
* Provides review dimensions with weighted checks that guide AI agents
|
|
5
|
+
* during code review. Findings are scored by weight * severity.
|
|
6
|
+
*/
|
|
7
|
+
export { SEVERITY_MULTIPLIER } from './types.js';
|
|
8
|
+
// ─── Defaults ──────────────────────────────────────────────────
|
|
9
|
+
export { DEFAULT_CHECKLIST, DEFAULT_DIMENSIONS } from './defaults.js';
|
|
10
|
+
// ─── Config ────────────────────────────────────────────────────
|
|
11
|
+
export { resolveChecklistConfig } from './config.js';
|
|
12
|
+
// ─── Context ───────────────────────────────────────────────────
|
|
13
|
+
export { buildChecklistContext, countActiveChecks } from './context.js';
|
|
14
|
+
export { scoreFindings } from './scorer.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checklist/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,kEAAkE;AAElE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEtE,kEAAkE;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,kEAAkE;AAElE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAUxE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checklist scoring engine — evaluates review findings against weighted checks.
|
|
3
|
+
*
|
|
4
|
+
* Maps each finding to the most relevant checklist dimension/check using
|
|
5
|
+
* keyword matching, then produces a weighted score sorted by severity.
|
|
6
|
+
*/
|
|
7
|
+
import type { FindingSeverity } from '../types.js';
|
|
8
|
+
import type { ChecklistConfig } from './types.js';
|
|
9
|
+
/** A finding scored against a specific checklist check. */
|
|
10
|
+
export interface ScoredFinding {
|
|
11
|
+
/** Original finding index in the input array. */
|
|
12
|
+
findingIndex: number;
|
|
13
|
+
/** The dimension this finding was matched to. */
|
|
14
|
+
dimensionId: string;
|
|
15
|
+
/** The specific check this finding was matched to, or null if matched to dimension only. */
|
|
16
|
+
checkId: string | null;
|
|
17
|
+
/** The check weight (1-10), or 5 as default for dimension-only matches. */
|
|
18
|
+
checkWeight: number;
|
|
19
|
+
/** The severity multiplier applied. */
|
|
20
|
+
severityMultiplier: number;
|
|
21
|
+
/** Final weighted score: checkWeight * severityMultiplier. */
|
|
22
|
+
score: number;
|
|
23
|
+
}
|
|
24
|
+
/** Summary of checklist scoring results. */
|
|
25
|
+
export interface ChecklistScoreResult {
|
|
26
|
+
/** Total weighted score across all matched findings. */
|
|
27
|
+
totalScore: number;
|
|
28
|
+
/** Scored findings, sorted by score descending (highest severity first). */
|
|
29
|
+
findings: ScoredFinding[];
|
|
30
|
+
/** Per-dimension score summary. */
|
|
31
|
+
dimensionScores: DimensionScore[];
|
|
32
|
+
}
|
|
33
|
+
/** Score summary for a single dimension. */
|
|
34
|
+
export interface DimensionScore {
|
|
35
|
+
dimensionId: string;
|
|
36
|
+
dimensionName: string;
|
|
37
|
+
totalScore: number;
|
|
38
|
+
findingCount: number;
|
|
39
|
+
}
|
|
40
|
+
/** Minimal finding shape needed for scoring. */
|
|
41
|
+
export interface ScorableFinding {
|
|
42
|
+
severity: FindingSeverity;
|
|
43
|
+
category: string;
|
|
44
|
+
message: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Score an array of findings against a resolved checklist configuration.
|
|
48
|
+
*
|
|
49
|
+
* Each finding is matched to the most relevant dimension and check
|
|
50
|
+
* using keyword analysis of its category and message fields.
|
|
51
|
+
* Unmatched findings are excluded from the score.
|
|
52
|
+
*
|
|
53
|
+
* @param findings - Array of findings to score
|
|
54
|
+
* @param config - Resolved checklist configuration (must be non-null and enabled)
|
|
55
|
+
* @returns Scored results sorted by weighted score descending
|
|
56
|
+
*/
|
|
57
|
+
export declare function scoreFindings(findings: readonly ScorableFinding[], config: ChecklistConfig): ChecklistScoreResult;
|
|
58
|
+
//# sourceMappingURL=scorer.d.ts.map
|