agentic-qe 3.7.6 → 3.7.8
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/.claude/helpers/statusline-v3.cjs +13 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +39 -0
- package/README.md +36 -0
- package/dist/cli/bundle.js +2052 -183
- package/dist/coordination/complexity-composition/index.d.ts +2 -0
- package/dist/coordination/complexity-composition/index.d.ts.map +1 -0
- package/dist/coordination/complexity-composition/index.js +2 -0
- package/dist/coordination/complexity-composition/index.js.map +1 -0
- package/dist/coordination/complexity-composition/team-composer.d.ts +72 -0
- package/dist/coordination/complexity-composition/team-composer.d.ts.map +1 -0
- package/dist/coordination/complexity-composition/team-composer.js +221 -0
- package/dist/coordination/complexity-composition/team-composer.js.map +1 -0
- package/dist/coordination/consensus/consensus-engine.d.ts +10 -1
- package/dist/coordination/consensus/consensus-engine.d.ts.map +1 -1
- package/dist/coordination/consensus/consensus-engine.js +31 -1
- package/dist/coordination/consensus/consensus-engine.js.map +1 -1
- package/dist/coordination/consensus/index.d.ts +1 -0
- package/dist/coordination/consensus/index.d.ts.map +1 -1
- package/dist/coordination/consensus/index.js +4 -0
- package/dist/coordination/consensus/index.js.map +1 -1
- package/dist/coordination/consensus/interfaces.d.ts +5 -0
- package/dist/coordination/consensus/interfaces.d.ts.map +1 -1
- package/dist/coordination/consensus/interfaces.js +1 -0
- package/dist/coordination/consensus/interfaces.js.map +1 -1
- package/dist/coordination/consensus/sycophancy-scorer.d.ts +62 -0
- package/dist/coordination/consensus/sycophancy-scorer.d.ts.map +1 -0
- package/dist/coordination/consensus/sycophancy-scorer.js +200 -0
- package/dist/coordination/consensus/sycophancy-scorer.js.map +1 -0
- package/dist/coordination/fleet-tiers/tier-selector.d.ts +20 -0
- package/dist/coordination/fleet-tiers/tier-selector.d.ts.map +1 -1
- package/dist/coordination/fleet-tiers/tier-selector.js +31 -0
- package/dist/coordination/fleet-tiers/tier-selector.js.map +1 -1
- package/dist/coordination/fleet-tiers/types.d.ts +2 -0
- package/dist/coordination/fleet-tiers/types.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts +71 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js +456 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts +81 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js +20 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js.map +1 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +19 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.js +82 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/index.d.ts +2 -0
- package/dist/domains/test-execution/services/e2e/index.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/index.js +5 -0
- package/dist/domains/test-execution/services/e2e/index.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/step-executors.d.ts +6 -0
- package/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/step-executors.js +17 -2
- package/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/types.d.ts +18 -1
- package/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/types.js.map +1 -1
- package/dist/domains/test-generation/blind-review/blind-review-orchestrator.d.ts +65 -0
- package/dist/domains/test-generation/blind-review/blind-review-orchestrator.d.ts.map +1 -0
- package/dist/domains/test-generation/blind-review/blind-review-orchestrator.js +189 -0
- package/dist/domains/test-generation/blind-review/blind-review-orchestrator.js.map +1 -0
- package/dist/domains/test-generation/blind-review/index.d.ts +2 -0
- package/dist/domains/test-generation/blind-review/index.d.ts.map +1 -0
- package/dist/domains/test-generation/blind-review/index.js +2 -0
- package/dist/domains/test-generation/blind-review/index.js.map +1 -0
- package/dist/domains/test-generation/gates/index.d.ts +2 -0
- package/dist/domains/test-generation/gates/index.d.ts.map +1 -0
- package/dist/domains/test-generation/gates/index.js +2 -0
- package/dist/domains/test-generation/gates/index.js.map +1 -0
- package/dist/domains/test-generation/gates/test-quality-gate.d.ts +85 -0
- package/dist/domains/test-generation/gates/test-quality-gate.d.ts.map +1 -0
- package/dist/domains/test-generation/gates/test-quality-gate.js +320 -0
- package/dist/domains/test-generation/gates/test-quality-gate.js.map +1 -0
- package/dist/domains/test-generation/interfaces.d.ts +3 -0
- package/dist/domains/test-generation/interfaces.d.ts.map +1 -1
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts +68 -0
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.d.ts.map +1 -0
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.js +225 -0
- package/dist/domains/test-generation/pattern-injection/edge-case-injector.js.map +1 -0
- package/dist/domains/test-generation/pattern-injection/index.d.ts +2 -0
- package/dist/domains/test-generation/pattern-injection/index.d.ts.map +1 -0
- package/dist/domains/test-generation/pattern-injection/index.js +2 -0
- package/dist/domains/test-generation/pattern-injection/index.js.map +1 -0
- package/dist/domains/test-generation/services/test-generator.d.ts +6 -0
- package/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
- package/dist/domains/test-generation/services/test-generator.js +29 -0
- package/dist/domains/test-generation/services/test-generator.js.map +1 -1
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +8 -2
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts.map +1 -1
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +62 -38
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js.map +1 -1
- package/dist/integrations/browser/client-factory.d.ts +6 -1
- package/dist/integrations/browser/client-factory.d.ts.map +1 -1
- package/dist/integrations/browser/client-factory.js +37 -2
- package/dist/integrations/browser/client-factory.js.map +1 -1
- package/dist/integrations/browser/index.d.ts +5 -1
- package/dist/integrations/browser/index.d.ts.map +1 -1
- package/dist/integrations/browser/index.js +8 -1
- package/dist/integrations/browser/index.js.map +1 -1
- package/dist/integrations/browser/page-pool-types.d.ts +70 -0
- package/dist/integrations/browser/page-pool-types.d.ts.map +1 -0
- package/dist/integrations/browser/page-pool-types.js +19 -0
- package/dist/integrations/browser/page-pool-types.js.map +1 -0
- package/dist/integrations/browser/page-pool.d.ts +79 -0
- package/dist/integrations/browser/page-pool.d.ts.map +1 -0
- package/dist/integrations/browser/page-pool.js +288 -0
- package/dist/integrations/browser/page-pool.js.map +1 -0
- package/dist/integrations/browser/resource-blocking.d.ts +47 -0
- package/dist/integrations/browser/resource-blocking.d.ts.map +1 -0
- package/dist/integrations/browser/resource-blocking.js +195 -0
- package/dist/integrations/browser/resource-blocking.js.map +1 -0
- package/dist/integrations/browser/stealth/index.d.ts +8 -0
- package/dist/integrations/browser/stealth/index.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/index.js +7 -0
- package/dist/integrations/browser/stealth/index.js.map +1 -0
- package/dist/integrations/browser/stealth/stealth-client.d.ts +51 -0
- package/dist/integrations/browser/stealth/stealth-client.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/stealth-client.js +359 -0
- package/dist/integrations/browser/stealth/stealth-client.js.map +1 -0
- package/dist/integrations/browser/stealth/stealth-types.d.ts +35 -0
- package/dist/integrations/browser/stealth/stealth-types.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/stealth-types.js +17 -0
- package/dist/integrations/browser/stealth/stealth-types.js.map +1 -0
- package/dist/integrations/browser/types.d.ts +13 -10
- package/dist/integrations/browser/types.d.ts.map +1 -1
- package/dist/integrations/browser/types.js.map +1 -1
- package/dist/learning/experience-capture.d.ts +12 -2
- package/dist/learning/experience-capture.d.ts.map +1 -1
- package/dist/learning/experience-capture.js +28 -35
- package/dist/learning/experience-capture.js.map +1 -1
- package/dist/learning/experience-consolidation.d.ts +74 -0
- package/dist/learning/experience-consolidation.d.ts.map +1 -0
- package/dist/learning/experience-consolidation.js +403 -0
- package/dist/learning/experience-consolidation.js.map +1 -0
- package/dist/mcp/bundle.js +3050 -341
- package/dist/routing/calibration/ema-calibrator.d.ts +93 -0
- package/dist/routing/calibration/ema-calibrator.d.ts.map +1 -0
- package/dist/routing/calibration/ema-calibrator.js +140 -0
- package/dist/routing/calibration/ema-calibrator.js.map +1 -0
- package/dist/routing/calibration/index.d.ts +2 -0
- package/dist/routing/calibration/index.d.ts.map +1 -0
- package/dist/routing/calibration/index.js +2 -0
- package/dist/routing/calibration/index.js.map +1 -0
- package/dist/routing/escalation/auto-escalation-tracker.d.ts +62 -0
- package/dist/routing/escalation/auto-escalation-tracker.d.ts.map +1 -0
- package/dist/routing/escalation/auto-escalation-tracker.js +116 -0
- package/dist/routing/escalation/auto-escalation-tracker.js.map +1 -0
- package/dist/routing/escalation/index.d.ts +2 -0
- package/dist/routing/escalation/index.d.ts.map +1 -0
- package/dist/routing/escalation/index.js +2 -0
- package/dist/routing/escalation/index.js.map +1 -0
- package/dist/routing/index.d.ts +4 -0
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +4 -0
- package/dist/routing/index.js.map +1 -1
- package/dist/routing/routing-config.d.ts +4 -0
- package/dist/routing/routing-config.d.ts.map +1 -1
- package/dist/routing/routing-config.js +2 -0
- package/dist/routing/routing-config.js.map +1 -1
- package/dist/routing/routing-feedback.d.ts +35 -2
- package/dist/routing/routing-feedback.d.ts.map +1 -1
- package/dist/routing/routing-feedback.js +97 -3
- package/dist/routing/routing-feedback.js.map +1 -1
- package/dist/routing/types.d.ts +2 -0
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/routing/types.js.map +1 -1
- package/dist/workers/workers/learning-consolidation.d.ts.map +1 -1
- package/dist/workers/workers/learning-consolidation.js +32 -0
- package/dist/workers/workers/learning-consolidation.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-quality-gate.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/gates/test-quality-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* All types and interfaces for the test-generation domain
|
|
4
4
|
*/
|
|
5
5
|
import { Result } from '../../shared/types';
|
|
6
|
+
import type { TestQualityGateResult } from './gates/index.js';
|
|
6
7
|
export interface ITestGenerationAPI {
|
|
7
8
|
/** Generate tests for source files */
|
|
8
9
|
generateTests(request: IGenerateTestsRequest): Promise<Result<IGeneratedTests, Error>>;
|
|
@@ -37,6 +38,8 @@ export interface IGeneratedTest {
|
|
|
37
38
|
assertions: number;
|
|
38
39
|
/** ADR-051: Whether test was enhanced by LLM */
|
|
39
40
|
llmEnhanced?: boolean;
|
|
41
|
+
/** Test quality gate validation result (loki-mode Gates 8 & 9) */
|
|
42
|
+
qualityGateResult?: TestQualityGateResult;
|
|
40
43
|
}
|
|
41
44
|
export interface ITDDRequest {
|
|
42
45
|
feature: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/domains/test-generation/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge Case Injector - Pre-task Pattern Injection
|
|
3
|
+
* Inspired by loki-mode compound learning loop
|
|
4
|
+
*
|
|
5
|
+
* Queries historical edge-case patterns from the MemoryBackend that
|
|
6
|
+
* caught real bugs in similar code, formats them as prompt context,
|
|
7
|
+
* and injects them before test generation LLM calls.
|
|
8
|
+
*
|
|
9
|
+
* This creates a continuously improving test generation system where
|
|
10
|
+
* patterns discovered in past testing inform future test generation.
|
|
11
|
+
*/
|
|
12
|
+
import type { MemoryBackend } from '../../../kernel/interfaces.js';
|
|
13
|
+
export interface EdgeCaseInjectionConfig {
|
|
14
|
+
/** Number of patterns to inject (default: 3) */
|
|
15
|
+
topN: number;
|
|
16
|
+
/** Minimum pattern confidence to include (default: 0.5) */
|
|
17
|
+
minConfidence: number;
|
|
18
|
+
/** Namespace for pattern search (default: 'aqe/v3/domains/test-generation') */
|
|
19
|
+
namespace: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const DEFAULT_INJECTION_CONFIG: EdgeCaseInjectionConfig;
|
|
22
|
+
export interface InjectionContext {
|
|
23
|
+
/** Formatted prompt context string to prepend to LLM prompt */
|
|
24
|
+
promptContext: string;
|
|
25
|
+
/** Number of patterns injected */
|
|
26
|
+
patternsUsed: number;
|
|
27
|
+
/** Total patterns considered before filtering */
|
|
28
|
+
totalConsidered: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extract searchable keywords from source code.
|
|
32
|
+
* Pulls function names, class names, import identifiers, and
|
|
33
|
+
* common code patterns for pattern matching.
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractKeywords(sourceCode: string): string[];
|
|
36
|
+
export declare class EdgeCaseInjector {
|
|
37
|
+
private readonly memory;
|
|
38
|
+
private readonly config;
|
|
39
|
+
constructor(memory: MemoryBackend, config?: Partial<EdgeCaseInjectionConfig>);
|
|
40
|
+
/**
|
|
41
|
+
* Get injection context for a source file being tested.
|
|
42
|
+
* Searches memory for historical edge-case patterns relevant to the code,
|
|
43
|
+
* filters and ranks them, then formats as prompt context.
|
|
44
|
+
*
|
|
45
|
+
* @param sourceCode - The source code being tested
|
|
46
|
+
* @param domain - Optional domain hint for filtering (e.g., 'test-generation')
|
|
47
|
+
* @returns InjectionContext with formatted prompt and stats
|
|
48
|
+
*/
|
|
49
|
+
getInjectionContext(sourceCode: string, domain?: string): Promise<InjectionContext>;
|
|
50
|
+
/**
|
|
51
|
+
* Search memory backend for relevant patterns using keywords and domain.
|
|
52
|
+
*/
|
|
53
|
+
private searchPatterns;
|
|
54
|
+
/**
|
|
55
|
+
* Parse a retrieved memory entry into a RetrievedPattern.
|
|
56
|
+
* Handles various storage formats gracefully.
|
|
57
|
+
*/
|
|
58
|
+
private parsePattern;
|
|
59
|
+
/**
|
|
60
|
+
* Format selected patterns into a prompt context string.
|
|
61
|
+
*/
|
|
62
|
+
private formatPromptContext;
|
|
63
|
+
/**
|
|
64
|
+
* Infer a short tag from pattern name when no tags are available.
|
|
65
|
+
*/
|
|
66
|
+
private inferTag;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=edge-case-injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-case-injector.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/pattern-injection/edge-case-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAMnE,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,wBAAwB,EAAE,uBAItC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;CACzB;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAoD5D;AAMD,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAG9B,MAAM,EAAE,aAAa,EACtC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAK3C;;;;;;;;OAQG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0CzF;;OAEG;YACW,cAAc;IA2C5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAUjB"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge Case Injector - Pre-task Pattern Injection
|
|
3
|
+
* Inspired by loki-mode compound learning loop
|
|
4
|
+
*
|
|
5
|
+
* Queries historical edge-case patterns from the MemoryBackend that
|
|
6
|
+
* caught real bugs in similar code, formats them as prompt context,
|
|
7
|
+
* and injects them before test generation LLM calls.
|
|
8
|
+
*
|
|
9
|
+
* This creates a continuously improving test generation system where
|
|
10
|
+
* patterns discovered in past testing inform future test generation.
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_INJECTION_CONFIG = {
|
|
13
|
+
topN: 3,
|
|
14
|
+
minConfidence: 0.5,
|
|
15
|
+
namespace: 'aqe/v3/domains/test-generation',
|
|
16
|
+
};
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Keyword Extraction
|
|
19
|
+
// ============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Extract searchable keywords from source code.
|
|
22
|
+
* Pulls function names, class names, import identifiers, and
|
|
23
|
+
* common code patterns for pattern matching.
|
|
24
|
+
*/
|
|
25
|
+
export function extractKeywords(sourceCode) {
|
|
26
|
+
const keywords = new Set();
|
|
27
|
+
// Common tokens to exclude
|
|
28
|
+
const noise = new Set([
|
|
29
|
+
'const', 'let', 'var', 'function', 'class', 'import', 'export',
|
|
30
|
+
'return', 'this', 'new', 'async', 'await', 'from', 'type',
|
|
31
|
+
'interface', 'string', 'number', 'boolean', 'void', 'null',
|
|
32
|
+
'undefined', 'true', 'false', 'map', 'filter', 'reduce',
|
|
33
|
+
'forEach', 'push', 'pop', 'length', 'toString', 'valueOf',
|
|
34
|
+
'constructor',
|
|
35
|
+
]);
|
|
36
|
+
// Function declarations: function foo(
|
|
37
|
+
const funcDecl = sourceCode.matchAll(/function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g);
|
|
38
|
+
for (const m of funcDecl)
|
|
39
|
+
keywords.add(m[1]);
|
|
40
|
+
// Arrow/const functions: const foo =
|
|
41
|
+
const constFn = sourceCode.matchAll(/(?:const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/g);
|
|
42
|
+
for (const m of constFn)
|
|
43
|
+
keywords.add(m[1]);
|
|
44
|
+
// Class declarations: class Foo
|
|
45
|
+
const classDef = sourceCode.matchAll(/class\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g);
|
|
46
|
+
for (const m of classDef)
|
|
47
|
+
keywords.add(m[1]);
|
|
48
|
+
// Import names: import { X, Y } from or import X from
|
|
49
|
+
const importNames = sourceCode.matchAll(/import\s+(?:\{([^}]+)\}|([a-zA-Z_$][a-zA-Z0-9_$]*))\s+from/g);
|
|
50
|
+
for (const m of importNames) {
|
|
51
|
+
const namedImports = m[1];
|
|
52
|
+
const defaultImport = m[2];
|
|
53
|
+
if (namedImports) {
|
|
54
|
+
for (const name of namedImports.split(',')) {
|
|
55
|
+
const clean = name.trim().split(/\s+as\s+/).pop()?.trim();
|
|
56
|
+
if (clean && /^[a-zA-Z_$]/.test(clean))
|
|
57
|
+
keywords.add(clean);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (defaultImport)
|
|
61
|
+
keywords.add(defaultImport);
|
|
62
|
+
}
|
|
63
|
+
// Method declarations inside classes: async login(, register(
|
|
64
|
+
const methodDecl = sourceCode.matchAll(/(?:async\s+)?([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\([^)]*\)\s*(?::\s*\S+\s*)?{/g);
|
|
65
|
+
for (const m of methodDecl) {
|
|
66
|
+
if (m[1].length > 2 && !noise.has(m[1]))
|
|
67
|
+
keywords.add(m[1]);
|
|
68
|
+
}
|
|
69
|
+
// Method calls: .methodName(
|
|
70
|
+
const methods = sourceCode.matchAll(/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/g);
|
|
71
|
+
for (const m of methods) {
|
|
72
|
+
if (m[1].length > 2)
|
|
73
|
+
keywords.add(m[1]);
|
|
74
|
+
}
|
|
75
|
+
return Array.from(keywords).filter(k => !noise.has(k) && k.length > 1);
|
|
76
|
+
}
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Edge Case Injector
|
|
79
|
+
// ============================================================================
|
|
80
|
+
export class EdgeCaseInjector {
|
|
81
|
+
memory;
|
|
82
|
+
config;
|
|
83
|
+
constructor(memory, config) {
|
|
84
|
+
this.memory = memory;
|
|
85
|
+
this.config = { ...DEFAULT_INJECTION_CONFIG, ...config };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get injection context for a source file being tested.
|
|
89
|
+
* Searches memory for historical edge-case patterns relevant to the code,
|
|
90
|
+
* filters and ranks them, then formats as prompt context.
|
|
91
|
+
*
|
|
92
|
+
* @param sourceCode - The source code being tested
|
|
93
|
+
* @param domain - Optional domain hint for filtering (e.g., 'test-generation')
|
|
94
|
+
* @returns InjectionContext with formatted prompt and stats
|
|
95
|
+
*/
|
|
96
|
+
async getInjectionContext(sourceCode, domain) {
|
|
97
|
+
const emptyResult = { promptContext: '', patternsUsed: 0, totalConsidered: 0 };
|
|
98
|
+
try {
|
|
99
|
+
const keywords = extractKeywords(sourceCode);
|
|
100
|
+
const retrieved = await this.searchPatterns(keywords, domain);
|
|
101
|
+
if (retrieved.length === 0)
|
|
102
|
+
return emptyResult;
|
|
103
|
+
const totalConsidered = retrieved.length;
|
|
104
|
+
// Filter by minimum confidence
|
|
105
|
+
const filtered = retrieved.filter(p => p.confidence >= this.config.minConfidence);
|
|
106
|
+
// Sort by relevance heuristic: successRate * 0.5 + confidence * 0.3 + log(usageCount+1) * 0.2
|
|
107
|
+
filtered.sort((a, b) => {
|
|
108
|
+
const scoreA = a.successRate * 0.5 + a.confidence * 0.3 + Math.log(a.usageCount + 1) / 10 * 0.2;
|
|
109
|
+
const scoreB = b.successRate * 0.5 + b.confidence * 0.3 + Math.log(b.usageCount + 1) / 10 * 0.2;
|
|
110
|
+
return scoreB - scoreA;
|
|
111
|
+
});
|
|
112
|
+
// Take topN
|
|
113
|
+
const selected = filtered.slice(0, this.config.topN);
|
|
114
|
+
if (selected.length === 0) {
|
|
115
|
+
return { promptContext: '', patternsUsed: 0, totalConsidered };
|
|
116
|
+
}
|
|
117
|
+
const promptContext = this.formatPromptContext(selected);
|
|
118
|
+
return {
|
|
119
|
+
promptContext,
|
|
120
|
+
patternsUsed: selected.length,
|
|
121
|
+
totalConsidered,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
// Non-blocking: injection failure should never break test generation
|
|
126
|
+
console.warn('[EdgeCaseInjector] Failed to get injection context:', error);
|
|
127
|
+
return emptyResult;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Search memory backend for relevant patterns using keywords and domain.
|
|
132
|
+
*/
|
|
133
|
+
async searchPatterns(keywords, domain) {
|
|
134
|
+
const patterns = [];
|
|
135
|
+
// Build search queries from keywords and domain
|
|
136
|
+
const searchQueries = [];
|
|
137
|
+
if (domain) {
|
|
138
|
+
searchQueries.push(`edge-case:${domain}:*`);
|
|
139
|
+
searchQueries.push(`pattern:${domain}:*`);
|
|
140
|
+
}
|
|
141
|
+
for (const keyword of keywords.slice(0, 5)) {
|
|
142
|
+
searchQueries.push(`edge-case:*${keyword}*`);
|
|
143
|
+
searchQueries.push(`pattern:*${keyword}*`);
|
|
144
|
+
}
|
|
145
|
+
// Also search the configured namespace
|
|
146
|
+
searchQueries.push(`${this.config.namespace}:*`);
|
|
147
|
+
const seenKeys = new Set();
|
|
148
|
+
for (const query of searchQueries) {
|
|
149
|
+
try {
|
|
150
|
+
const keys = await this.memory.search(query, 10);
|
|
151
|
+
for (const key of keys) {
|
|
152
|
+
if (seenKeys.has(key))
|
|
153
|
+
continue;
|
|
154
|
+
seenKeys.add(key);
|
|
155
|
+
try {
|
|
156
|
+
const value = await this.memory.get(key);
|
|
157
|
+
if (!value || typeof value !== 'object')
|
|
158
|
+
continue;
|
|
159
|
+
const pattern = this.parsePattern(key, value);
|
|
160
|
+
if (pattern)
|
|
161
|
+
patterns.push(pattern);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// Skip individual pattern retrieval failures
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// Skip individual search failures
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return patterns;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Parse a retrieved memory entry into a RetrievedPattern.
|
|
176
|
+
* Handles various storage formats gracefully.
|
|
177
|
+
*/
|
|
178
|
+
parsePattern(key, value) {
|
|
179
|
+
const name = typeof value.name === 'string' ? value.name : key.split(':').pop() || key;
|
|
180
|
+
const description = typeof value.description === 'string' ? value.description : '';
|
|
181
|
+
const confidence = typeof value.confidence === 'number' ? value.confidence : 0.5;
|
|
182
|
+
const successRate = typeof value.successRate === 'number' ? value.successRate :
|
|
183
|
+
typeof value.success_rate === 'number' ? value.success_rate : 0;
|
|
184
|
+
const usageCount = typeof value.usageCount === 'number' ? value.usageCount :
|
|
185
|
+
typeof value.usage_count === 'number' ? value.usage_count : 0;
|
|
186
|
+
const tags = Array.isArray(value.tags) ? value.tags.filter((t) => typeof t === 'string') : [];
|
|
187
|
+
// Must have at least a name or description to be useful
|
|
188
|
+
if (!name && !description)
|
|
189
|
+
return null;
|
|
190
|
+
return { key, name, description, confidence, successRate, usageCount, tags };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Format selected patterns into a prompt context string.
|
|
194
|
+
*/
|
|
195
|
+
formatPromptContext(patterns) {
|
|
196
|
+
const lines = ['## Historical Edge Cases (from patterns that caught real bugs):'];
|
|
197
|
+
for (let i = 0; i < patterns.length; i++) {
|
|
198
|
+
const p = patterns[i];
|
|
199
|
+
const tag = p.tags.length > 0 ? p.tags[0] : this.inferTag(p);
|
|
200
|
+
const desc = p.description || p.name;
|
|
201
|
+
lines.push(`${i + 1}. [${tag}] ${desc}`);
|
|
202
|
+
}
|
|
203
|
+
return lines.join('\n');
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Infer a short tag from pattern name when no tags are available.
|
|
207
|
+
*/
|
|
208
|
+
inferTag(pattern) {
|
|
209
|
+
const name = pattern.name.toLowerCase();
|
|
210
|
+
if (name.includes('null') || name.includes('undefined'))
|
|
211
|
+
return 'null-check';
|
|
212
|
+
if (name.includes('empty') || name.includes('boundary') || name.includes('zero'))
|
|
213
|
+
return 'boundary';
|
|
214
|
+
if (name.includes('async') || name.includes('promise') || name.includes('reject'))
|
|
215
|
+
return 'async-error';
|
|
216
|
+
if (name.includes('error') || name.includes('throw') || name.includes('exception'))
|
|
217
|
+
return 'error-handling';
|
|
218
|
+
if (name.includes('type') || name.includes('cast') || name.includes('coerce'))
|
|
219
|
+
return 'type-safety';
|
|
220
|
+
if (name.includes('concurr') || name.includes('race') || name.includes('parallel'))
|
|
221
|
+
return 'concurrency';
|
|
222
|
+
return 'edge-case';
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=edge-case-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-case-injector.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/pattern-injection/edge-case-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/pattern-injection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domains/test-generation/pattern-injection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EAGf,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
|
|
@@ -39,6 +39,10 @@ export interface TestGeneratorConfig {
|
|
|
39
39
|
llmModelTier: number;
|
|
40
40
|
/** ADR-051: Max tokens for LLM responses */
|
|
41
41
|
llmMaxTokens: number;
|
|
42
|
+
/** Enable test quality gate validation on generated tests */
|
|
43
|
+
enableTestQualityGate: boolean;
|
|
44
|
+
/** Enable edge case injection from historical patterns (loki-mode Item 5) */
|
|
45
|
+
enableEdgeCaseInjection: boolean;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Dependencies for TestGeneratorService
|
|
@@ -69,6 +73,8 @@ export declare class TestGeneratorService implements ITestGenerationService {
|
|
|
69
73
|
private readonly propertyTestGenerator;
|
|
70
74
|
private readonly testDataGenerator;
|
|
71
75
|
private readonly llmRouter?;
|
|
76
|
+
private readonly qualityGate;
|
|
77
|
+
private readonly edgeCaseInjector;
|
|
72
78
|
constructor(dependencies: TestGeneratorDependencies, config?: Partial<TestGeneratorConfig>);
|
|
73
79
|
/**
|
|
74
80
|
* Check if LLM enhancement is available and enabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,MAAM,EAAW,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EAET,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EAUd,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAgC,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAA4B,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGjG,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../../../src/domains/test-generation/services/test-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ import { PropertyTestGeneratorService } from './property-test-generator';
|
|
|
17
17
|
import { TestDataGeneratorService } from './test-data-generator';
|
|
18
18
|
import { toError } from '../../../shared/error-utils.js';
|
|
19
19
|
import { safeJsonParse } from '../../../shared/safe-json.js';
|
|
20
|
+
import { TestQualityGate } from '../gates/index.js';
|
|
21
|
+
import { EdgeCaseInjector } from '../pattern-injection/index.js';
|
|
20
22
|
const DEFAULT_CONFIG = {
|
|
21
23
|
defaultFramework: 'vitest',
|
|
22
24
|
maxTestsPerFile: 50,
|
|
@@ -25,6 +27,8 @@ const DEFAULT_CONFIG = {
|
|
|
25
27
|
enableLLMEnhancement: true, // On by default - opt-out
|
|
26
28
|
llmModelTier: 2, // Sonnet by default
|
|
27
29
|
llmMaxTokens: 2048,
|
|
30
|
+
enableTestQualityGate: true,
|
|
31
|
+
enableEdgeCaseInjection: true,
|
|
28
32
|
};
|
|
29
33
|
/**
|
|
30
34
|
* Test Generation Service Implementation
|
|
@@ -42,6 +46,8 @@ export class TestGeneratorService {
|
|
|
42
46
|
propertyTestGenerator;
|
|
43
47
|
testDataGenerator;
|
|
44
48
|
llmRouter;
|
|
49
|
+
qualityGate;
|
|
50
|
+
edgeCaseInjector;
|
|
45
51
|
constructor(dependencies, config = {}) {
|
|
46
52
|
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
47
53
|
this.memory = dependencies.memory;
|
|
@@ -50,6 +56,12 @@ export class TestGeneratorService {
|
|
|
50
56
|
this.propertyTestGenerator = dependencies.propertyTestGenerator || new PropertyTestGeneratorService();
|
|
51
57
|
this.testDataGenerator = dependencies.testDataGenerator || new TestDataGeneratorService();
|
|
52
58
|
this.llmRouter = dependencies.llmRouter;
|
|
59
|
+
this.qualityGate = this.config.enableTestQualityGate
|
|
60
|
+
? new TestQualityGate()
|
|
61
|
+
: null;
|
|
62
|
+
this.edgeCaseInjector = this.config.enableEdgeCaseInjection
|
|
63
|
+
? new EdgeCaseInjector(this.memory)
|
|
64
|
+
: null;
|
|
53
65
|
}
|
|
54
66
|
// ============================================================================
|
|
55
67
|
// ADR-051: LLM Enhancement Methods
|
|
@@ -81,6 +93,19 @@ export class TestGeneratorService {
|
|
|
81
93
|
return testCode;
|
|
82
94
|
try {
|
|
83
95
|
let prompt = this.buildTestEnhancementPrompt(testCode, sourceCode, analysis);
|
|
96
|
+
// Prepend historical edge case patterns if injector is available (loki-mode Item 5)
|
|
97
|
+
if (this.edgeCaseInjector) {
|
|
98
|
+
try {
|
|
99
|
+
const domain = context?.dependencies ? 'test-generation' : undefined;
|
|
100
|
+
const injection = await this.edgeCaseInjector.getInjectionContext(sourceCode, domain);
|
|
101
|
+
if (injection.promptContext) {
|
|
102
|
+
prompt = injection.promptContext + '\n\n' + prompt;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (injectionError) {
|
|
106
|
+
console.warn('[TestGenerator] Edge case injection failed, continuing without it:', injectionError);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
84
109
|
// Append KG context if available
|
|
85
110
|
if (context?.dependencies) {
|
|
86
111
|
prompt += `\n## Dependency Context (from Knowledge Graph):\n`;
|
|
@@ -366,6 +391,10 @@ Return a JSON array of test suggestions, each with: { "name": "test name", "desc
|
|
|
366
391
|
// ADR-051: Mark if LLM-enhanced
|
|
367
392
|
llmEnhanced: this.isLLMEnhancementAvailable(),
|
|
368
393
|
};
|
|
394
|
+
// Run test quality gate if enabled (loki-mode Gates 8 & 9)
|
|
395
|
+
if (this.qualityGate) {
|
|
396
|
+
test.qualityGateResult = this.qualityGate.validate(testCode, sourceFile, sourceContent || undefined);
|
|
397
|
+
}
|
|
369
398
|
return ok({ tests: [test], patternsUsed });
|
|
370
399
|
}
|
|
371
400
|
async generateTestForLines(file, lines, framework) {
|