agentic-qe 3.6.6 → 3.6.7
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/skills/skills-manifest.json +1 -1
- package/package.json +1 -1
- package/v3/CHANGELOG.md +28 -0
- package/v3/dist/cli/bundle.js +747 -147
- package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
- package/v3/dist/cli/commands/hooks.js +172 -31
- package/v3/dist/cli/commands/hooks.js.map +1 -1
- package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.d.ts +21 -0
- package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.d.ts.map +1 -1
- package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js +76 -0
- package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js.map +1 -1
- package/v3/dist/coordination/mincut/mincut-persistence.d.ts +4 -0
- package/v3/dist/coordination/mincut/mincut-persistence.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/mincut-persistence.js +30 -0
- package/v3/dist/coordination/mincut/mincut-persistence.js.map +1 -1
- package/v3/dist/coordination/mincut/time-crystal.d.ts +22 -0
- package/v3/dist/coordination/mincut/time-crystal.d.ts.map +1 -1
- package/v3/dist/coordination/mincut/time-crystal.js +95 -0
- package/v3/dist/coordination/mincut/time-crystal.js.map +1 -1
- package/v3/dist/domains/code-intelligence/coordinator.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/coordinator.js +6 -3
- package/v3/dist/domains/code-intelligence/coordinator.js.map +1 -1
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.d.ts.map +1 -1
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.js +19 -34
- package/v3/dist/domains/code-intelligence/services/knowledge-graph.js.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.d.ts.map +1 -1
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.js +5 -3
- package/v3/dist/domains/coverage-analysis/services/hnsw-index.js.map +1 -1
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts.map +1 -1
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js +7 -3
- package/v3/dist/domains/security-compliance/services/scanners/sast-scanner.js.map +1 -1
- package/v3/dist/early-exit/early-exit-controller.d.ts +20 -0
- package/v3/dist/early-exit/early-exit-controller.d.ts.map +1 -1
- package/v3/dist/early-exit/early-exit-controller.js +72 -0
- package/v3/dist/early-exit/early-exit-controller.js.map +1 -1
- package/v3/dist/feedback/coverage-learner.d.ts +19 -0
- package/v3/dist/feedback/coverage-learner.d.ts.map +1 -1
- package/v3/dist/feedback/coverage-learner.js +134 -0
- package/v3/dist/feedback/coverage-learner.js.map +1 -1
- package/v3/dist/feedback/feedback-loop.d.ts +10 -1
- package/v3/dist/feedback/feedback-loop.d.ts.map +1 -1
- package/v3/dist/feedback/feedback-loop.js +20 -1
- package/v3/dist/feedback/feedback-loop.js.map +1 -1
- package/v3/dist/feedback/index.d.ts +1 -1
- package/v3/dist/feedback/index.d.ts.map +1 -1
- package/v3/dist/feedback/index.js +1 -1
- package/v3/dist/feedback/index.js.map +1 -1
- package/v3/dist/feedback/test-outcome-tracker.d.ts +19 -0
- package/v3/dist/feedback/test-outcome-tracker.d.ts.map +1 -1
- package/v3/dist/feedback/test-outcome-tracker.js +114 -0
- package/v3/dist/feedback/test-outcome-tracker.js.map +1 -1
- package/v3/dist/governance/compliance-reporter.d.ts +13 -0
- package/v3/dist/governance/compliance-reporter.d.ts.map +1 -1
- package/v3/dist/governance/compliance-reporter.js +63 -0
- package/v3/dist/governance/compliance-reporter.js.map +1 -1
- package/v3/dist/governance/continue-gate-integration.d.ts +8 -0
- package/v3/dist/governance/continue-gate-integration.d.ts.map +1 -1
- package/v3/dist/governance/continue-gate-integration.js +50 -2
- package/v3/dist/governance/continue-gate-integration.js.map +1 -1
- package/v3/dist/governance/evolution-pipeline-integration.d.ts +13 -0
- package/v3/dist/governance/evolution-pipeline-integration.d.ts.map +1 -1
- package/v3/dist/governance/evolution-pipeline-integration.js +53 -0
- package/v3/dist/governance/evolution-pipeline-integration.js.map +1 -1
- package/v3/dist/index.d.ts +1 -1
- package/v3/dist/index.d.ts.map +1 -1
- package/v3/dist/index.js +1 -1
- package/v3/dist/index.js.map +1 -1
- package/v3/dist/init/phases/07-hooks.d.ts.map +1 -1
- package/v3/dist/init/phases/07-hooks.js +26 -5
- package/v3/dist/init/phases/07-hooks.js.map +1 -1
- package/v3/dist/integrations/ruvector/ast-complexity.d.ts +8 -0
- package/v3/dist/integrations/ruvector/ast-complexity.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/ast-complexity.js +45 -0
- package/v3/dist/integrations/ruvector/ast-complexity.js.map +1 -1
- package/v3/dist/integrations/ruvector/attention-wrapper.d.ts +18 -1
- package/v3/dist/integrations/ruvector/attention-wrapper.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/attention-wrapper.js +60 -2
- package/v3/dist/integrations/ruvector/attention-wrapper.js.map +1 -1
- package/v3/dist/integrations/ruvector/coverage-router.d.ts +8 -0
- package/v3/dist/integrations/ruvector/coverage-router.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/coverage-router.js +45 -0
- package/v3/dist/integrations/ruvector/coverage-router.js.map +1 -1
- package/v3/dist/integrations/ruvector/diff-risk-classifier.d.ts +8 -0
- package/v3/dist/integrations/ruvector/diff-risk-classifier.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/diff-risk-classifier.js +45 -0
- package/v3/dist/integrations/ruvector/diff-risk-classifier.js.map +1 -1
- package/v3/dist/integrations/ruvector/graph-boundaries.d.ts +8 -0
- package/v3/dist/integrations/ruvector/graph-boundaries.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/graph-boundaries.js +45 -0
- package/v3/dist/integrations/ruvector/graph-boundaries.js.map +1 -1
- package/v3/dist/integrations/ruvector/index.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/index.js +5 -20
- package/v3/dist/integrations/ruvector/index.js.map +1 -1
- package/v3/dist/integrations/ruvector/persistent-q-router.d.ts +7 -3
- package/v3/dist/integrations/ruvector/persistent-q-router.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/persistent-q-router.js +7 -3
- package/v3/dist/integrations/ruvector/persistent-q-router.js.map +1 -1
- package/v3/dist/integrations/ruvector/q-learning-router.d.ts +13 -0
- package/v3/dist/integrations/ruvector/q-learning-router.d.ts.map +1 -1
- package/v3/dist/integrations/ruvector/q-learning-router.js +67 -0
- package/v3/dist/integrations/ruvector/q-learning-router.js.map +1 -1
- package/v3/dist/kernel/hybrid-backend.d.ts +1 -0
- package/v3/dist/kernel/hybrid-backend.d.ts.map +1 -1
- package/v3/dist/kernel/hybrid-backend.js +39 -0
- package/v3/dist/kernel/hybrid-backend.js.map +1 -1
- package/v3/dist/kernel/unified-memory.d.ts +1 -0
- package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
- package/v3/dist/kernel/unified-memory.js +116 -4
- package/v3/dist/kernel/unified-memory.js.map +1 -1
- package/v3/dist/learning/experience-capture-middleware.d.ts.map +1 -1
- package/v3/dist/learning/experience-capture-middleware.js +45 -18
- package/v3/dist/learning/experience-capture-middleware.js.map +1 -1
- package/v3/dist/learning/pattern-store.d.ts.map +1 -1
- package/v3/dist/learning/pattern-store.js +12 -61
- package/v3/dist/learning/pattern-store.js.map +1 -1
- package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
- package/v3/dist/learning/qe-reasoning-bank.js +15 -2
- package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
- package/v3/dist/learning/token-tracker.d.ts +23 -0
- package/v3/dist/learning/token-tracker.d.ts.map +1 -1
- package/v3/dist/learning/token-tracker.js +91 -0
- package/v3/dist/learning/token-tracker.js.map +1 -1
- package/v3/dist/mcp/bundle.js +635 -128
- package/v3/dist/routing/routing-feedback.d.ts +21 -0
- package/v3/dist/routing/routing-feedback.d.ts.map +1 -1
- package/v3/dist/routing/routing-feedback.js +95 -0
- package/v3/dist/routing/routing-feedback.js.map +1 -1
- package/v3/dist/shared/sql-safety.d.ts.map +1 -1
- package/v3/dist/shared/sql-safety.js +2 -0
- package/v3/dist/shared/sql-safety.js.map +1 -1
- package/v3/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,eAAe,EAGhB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,cAAc,EACd,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAC;AAM/C;;GAEG;AACH,UAAU,gBAAgB;IACxB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,QAAA,MAAM,KAAK,EAAE,gBAOZ,CAAC;AAEF;;GAEG;AACH,iBAAe,cAAc,IAAI,OAAO,CAAC;IACvC,aAAa,EAAE,eAAe,CAAC;IAC/B,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC,CA2BD;AAmUD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,eAAe,EAGhB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,cAAc,EACd,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAC;AAM/C;;GAEG;AACH,UAAU,gBAAgB;IACxB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,QAAA,MAAM,KAAK,EAAE,gBAOZ,CAAC;AAEF;;GAEG;AACH,iBAAe,cAAc,IAAI,OAAO,CAAC;IACvC,aAAa,EAAE,eAAe,CAAC;IAC/B,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC,CA2BD;AAmUD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAo8B5C;AAMD,OAAO,EACL,cAAc,EACd,KAAK,IAAI,UAAU,EACnB,cAAc,EACd,KAAK,gBAAgB,GACtB,CAAC"}
|
|
@@ -366,13 +366,22 @@ Examples:
|
|
|
366
366
|
});
|
|
367
367
|
const result = results[0] || { success: true, guidance: [], routing: null };
|
|
368
368
|
if (options.json) {
|
|
369
|
+
// Build additionalContext for Claude from guidance
|
|
370
|
+
const guidanceLines = result.guidance || [];
|
|
371
|
+
const agentHint = result.routing?.recommendedAgent
|
|
372
|
+
? `Recommended agent: ${result.routing.recommendedAgent} (${(result.routing.confidence * 100).toFixed(0)}% confidence).`
|
|
373
|
+
: '';
|
|
374
|
+
const contextStr = [
|
|
375
|
+
agentHint,
|
|
376
|
+
...guidanceLines.map((g) => g),
|
|
377
|
+
].filter(Boolean).join(' ');
|
|
369
378
|
printJson({
|
|
370
|
-
|
|
379
|
+
hookSpecificOutput: {
|
|
380
|
+
hookEventName: 'PreToolUse',
|
|
381
|
+
additionalContext: contextStr || undefined,
|
|
382
|
+
},
|
|
371
383
|
file: options.file,
|
|
372
384
|
operation: options.operation,
|
|
373
|
-
guidance: result.guidance || [],
|
|
374
|
-
recommendedAgent: result.routing?.recommendedAgent,
|
|
375
|
-
confidence: result.routing?.confidence,
|
|
376
385
|
patterns: result.routing?.patterns?.length || 0,
|
|
377
386
|
});
|
|
378
387
|
}
|
|
@@ -778,9 +787,30 @@ Examples:
|
|
|
778
787
|
// Don't reset experienceCount — carry over unfulfilled experiences
|
|
779
788
|
}
|
|
780
789
|
await memoryBackend.set(DREAM_STATE_KEY, dreamState);
|
|
790
|
+
// Build context injection for Claude
|
|
791
|
+
const contextParts = [];
|
|
792
|
+
contextParts.push(`AQE Learning: ${stats.totalPatterns} patterns loaded`);
|
|
793
|
+
// Top domains by pattern count
|
|
794
|
+
const domainEntries = Object.entries(stats.byDomain)
|
|
795
|
+
.filter(([, count]) => count > 0)
|
|
796
|
+
.sort(([, a], [, b]) => b - a)
|
|
797
|
+
.slice(0, 5);
|
|
798
|
+
if (domainEntries.length > 0) {
|
|
799
|
+
contextParts.push(`Top domains: ${domainEntries.map(([d, c]) => `${d}(${c})`).join(', ')}`);
|
|
800
|
+
}
|
|
801
|
+
if (stats.patternSuccessRate > 0) {
|
|
802
|
+
contextParts.push(`Pattern success rate: ${(stats.patternSuccessRate * 100).toFixed(0)}%`);
|
|
803
|
+
}
|
|
804
|
+
if (stats.routingRequests > 0) {
|
|
805
|
+
contextParts.push(`Routing confidence: ${(stats.avgRoutingConfidence * 100).toFixed(0)}% across ${stats.routingRequests} requests`);
|
|
806
|
+
}
|
|
807
|
+
const additionalContext = contextParts.join('. ') + '.';
|
|
781
808
|
if (options.json) {
|
|
782
809
|
printJson({
|
|
783
|
-
|
|
810
|
+
hookSpecificOutput: {
|
|
811
|
+
hookEventName: 'SessionStart',
|
|
812
|
+
additionalContext,
|
|
813
|
+
},
|
|
784
814
|
sessionId,
|
|
785
815
|
initialized: true,
|
|
786
816
|
patternsLoaded: stats.totalPatterns,
|
|
@@ -788,8 +818,6 @@ Examples:
|
|
|
788
818
|
enabled: true,
|
|
789
819
|
lastDreamTime: dreamState.lastDreamTime,
|
|
790
820
|
pendingExperiences: dreamState.experienceCount,
|
|
791
|
-
intervalMs: DREAM_INTERVAL_MS,
|
|
792
|
-
experienceThreshold: DREAM_EXPERIENCE_THRESHOLD,
|
|
793
821
|
},
|
|
794
822
|
});
|
|
795
823
|
}
|
|
@@ -831,8 +859,12 @@ Examples:
|
|
|
831
859
|
}
|
|
832
860
|
}
|
|
833
861
|
if (options.json) {
|
|
862
|
+
const summary = stats
|
|
863
|
+
? `Session complete: ${stats.totalPatterns} patterns, ${stats.routingRequests} routings, ${(stats.patternSuccessRate * 100).toFixed(0)}% success rate`
|
|
864
|
+
: 'Session complete';
|
|
865
|
+
// Stop hooks don't support hookSpecificOutput — only simple fields
|
|
834
866
|
printJson({
|
|
835
|
-
|
|
867
|
+
continue: true,
|
|
836
868
|
sessionId,
|
|
837
869
|
stateSaved: options.saveState || false,
|
|
838
870
|
metricsExported: options.exportMetrics || false,
|
|
@@ -996,6 +1028,73 @@ Examples:
|
|
|
996
1028
|
}
|
|
997
1029
|
});
|
|
998
1030
|
// -------------------------------------------------------------------------
|
|
1031
|
+
// guard: File guardian - block edits to protected files (PreToolUse)
|
|
1032
|
+
// -------------------------------------------------------------------------
|
|
1033
|
+
hooks
|
|
1034
|
+
.command('guard')
|
|
1035
|
+
.description('File guardian - block edits to protected files')
|
|
1036
|
+
.requiredOption('-f, --file <path>', 'File path to check')
|
|
1037
|
+
.option('--json', 'Output as JSON (required for hook API)')
|
|
1038
|
+
.action(async (options) => {
|
|
1039
|
+
try {
|
|
1040
|
+
const filePath = options.file || '';
|
|
1041
|
+
const normalizedPath = filePath.replace(/\\/g, '/');
|
|
1042
|
+
// Protected file patterns
|
|
1043
|
+
const protectedPatterns = [
|
|
1044
|
+
{ pattern: /^\.env($|\.)/, reason: 'Environment file contains secrets' },
|
|
1045
|
+
{ pattern: /\.env\.[a-zA-Z]+$/, reason: 'Environment file contains secrets' },
|
|
1046
|
+
{ pattern: /\.lock$/, reason: 'Lock files are auto-generated' },
|
|
1047
|
+
{ pattern: /(^|\/)node_modules\//, reason: 'node_modules is managed by package manager' },
|
|
1048
|
+
{ pattern: /(^|\/)\.agentic-qe\/memory\.db/, reason: 'AQE memory database must not be directly edited' },
|
|
1049
|
+
{ pattern: /(^|\/)\.agentic-qe\/memory\.db-wal$/, reason: 'AQE WAL file must not be directly edited' },
|
|
1050
|
+
{ pattern: /(^|\/)\.agentic-qe\/memory\.db-shm$/, reason: 'AQE shared memory file must not be directly edited' },
|
|
1051
|
+
];
|
|
1052
|
+
const match = protectedPatterns.find(p => p.pattern.test(normalizedPath));
|
|
1053
|
+
if (match) {
|
|
1054
|
+
// Deny - use Claude Code hookSpecificOutput API format
|
|
1055
|
+
if (options.json) {
|
|
1056
|
+
printJson({
|
|
1057
|
+
hookSpecificOutput: {
|
|
1058
|
+
hookEventName: 'PreToolUse',
|
|
1059
|
+
permissionDecision: 'deny',
|
|
1060
|
+
permissionDecisionReason: `Protected file: ${match.reason} (${filePath})`,
|
|
1061
|
+
},
|
|
1062
|
+
});
|
|
1063
|
+
}
|
|
1064
|
+
else {
|
|
1065
|
+
printError(`Blocked: ${match.reason} (${filePath})`);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
else {
|
|
1069
|
+
// Allow
|
|
1070
|
+
if (options.json) {
|
|
1071
|
+
printJson({
|
|
1072
|
+
hookSpecificOutput: {
|
|
1073
|
+
hookEventName: 'PreToolUse',
|
|
1074
|
+
permissionDecision: 'allow',
|
|
1075
|
+
},
|
|
1076
|
+
});
|
|
1077
|
+
}
|
|
1078
|
+
else {
|
|
1079
|
+
printSuccess(`Allowed: ${filePath}`);
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
process.exit(0);
|
|
1083
|
+
}
|
|
1084
|
+
catch (error) {
|
|
1085
|
+
// On error, allow (fail-open for non-critical guard)
|
|
1086
|
+
if (options.json) {
|
|
1087
|
+
printJson({
|
|
1088
|
+
hookSpecificOutput: {
|
|
1089
|
+
hookEventName: 'PreToolUse',
|
|
1090
|
+
permissionDecision: 'allow',
|
|
1091
|
+
},
|
|
1092
|
+
});
|
|
1093
|
+
}
|
|
1094
|
+
process.exit(0);
|
|
1095
|
+
}
|
|
1096
|
+
});
|
|
1097
|
+
// -------------------------------------------------------------------------
|
|
999
1098
|
// pre-command: Get guidance before Bash command (called by PreToolUse hook)
|
|
1000
1099
|
// -------------------------------------------------------------------------
|
|
1001
1100
|
hooks
|
|
@@ -1005,36 +1104,78 @@ Examples:
|
|
|
1005
1104
|
.option('--json', 'Output as JSON')
|
|
1006
1105
|
.action(async (options) => {
|
|
1007
1106
|
try {
|
|
1008
|
-
// Analyze command for potential issues
|
|
1009
1107
|
const command = options.command || '';
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
}
|
|
1108
|
+
// Dangerous command patterns that should be BLOCKED
|
|
1109
|
+
const dangerousPatterns = [
|
|
1110
|
+
{ pattern: /rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?-[a-zA-Z]*r[a-zA-Z]*\s+\/(?!\w)/, reason: 'Recursive delete of root filesystem' },
|
|
1111
|
+
{ pattern: /rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?-[a-zA-Z]*f[a-zA-Z]*\s+\/(?!\w)/, reason: 'Recursive delete of root filesystem' },
|
|
1112
|
+
{ pattern: /rm\s+-rf\s+~/, reason: 'Recursive delete of home directory' },
|
|
1113
|
+
{ pattern: /DROP\s+(TABLE|DATABASE|SCHEMA)/i, reason: 'Destructive SQL operation' },
|
|
1114
|
+
{ pattern: /git\s+push\s+.*--force(?!-)/, reason: 'Force push can overwrite remote history' },
|
|
1115
|
+
{ pattern: /git\s+reset\s+--hard/, reason: 'Hard reset discards uncommitted changes' },
|
|
1116
|
+
{ pattern: />\s*\/dev\/sd[a-z]/, reason: 'Direct write to block device' },
|
|
1117
|
+
{ pattern: /dd\s+if=.*of=\/dev\/sd/, reason: 'Direct disk write via dd' },
|
|
1118
|
+
{ pattern: /chmod\s+777\s/, reason: 'World-writable permissions are a security risk' },
|
|
1119
|
+
{ pattern: /:\(\)\s*\{\s*:\|\s*:&\s*\}\s*;?\s*:/, reason: 'Fork bomb detected' },
|
|
1120
|
+
{ pattern: /mkfs\./, reason: 'Filesystem format operation' },
|
|
1121
|
+
{ pattern: />\s*\/dev\/null\s*2>&1\s*&\s*disown/, reason: 'Stealth background process' },
|
|
1122
|
+
];
|
|
1123
|
+
// Warning patterns (inform but don't block)
|
|
1124
|
+
const warningPatterns = [
|
|
1125
|
+
{ pattern: /\.agentic-qe.*rm/, reason: 'Deleting AQE data files' },
|
|
1126
|
+
{ pattern: /rm\s+-rf\s/, reason: 'Recursive force delete' },
|
|
1127
|
+
{ pattern: /git\s+clean\s+-[a-zA-Z]*f/, reason: 'Force cleaning untracked files' },
|
|
1128
|
+
];
|
|
1129
|
+
const dangerMatch = dangerousPatterns.find(p => p.pattern.test(command));
|
|
1130
|
+
const warnings = warningPatterns
|
|
1131
|
+
.filter(p => p.pattern.test(command))
|
|
1132
|
+
.map(p => p.reason);
|
|
1133
|
+
if (dangerMatch) {
|
|
1134
|
+
// BLOCK the command
|
|
1135
|
+
if (options.json) {
|
|
1136
|
+
printJson({
|
|
1137
|
+
hookSpecificOutput: {
|
|
1138
|
+
hookEventName: 'PreToolUse',
|
|
1139
|
+
permissionDecision: 'deny',
|
|
1140
|
+
permissionDecisionReason: `Dangerous command blocked: ${dangerMatch.reason}`,
|
|
1141
|
+
},
|
|
1142
|
+
});
|
|
1143
|
+
}
|
|
1144
|
+
else {
|
|
1145
|
+
printError(`Blocked: ${dangerMatch.reason}`);
|
|
1146
|
+
}
|
|
1028
1147
|
}
|
|
1029
|
-
else
|
|
1030
|
-
|
|
1031
|
-
|
|
1148
|
+
else {
|
|
1149
|
+
// Allow (with optional warnings as context)
|
|
1150
|
+
if (options.json) {
|
|
1151
|
+
const result = {
|
|
1152
|
+
hookSpecificOutput: {
|
|
1153
|
+
hookEventName: 'PreToolUse',
|
|
1154
|
+
permissionDecision: 'allow',
|
|
1155
|
+
},
|
|
1156
|
+
};
|
|
1157
|
+
if (warnings.length > 0) {
|
|
1158
|
+
result.hookSpecificOutput.additionalContext =
|
|
1159
|
+
`Warnings: ${warnings.join('; ')}`;
|
|
1160
|
+
}
|
|
1161
|
+
printJson(result);
|
|
1162
|
+
}
|
|
1163
|
+
else if (warnings.length > 0) {
|
|
1164
|
+
console.log(chalk.yellow('\n⚠️ Command Warnings:'));
|
|
1165
|
+
warnings.forEach(w => console.log(chalk.yellow(` - ${w}`)));
|
|
1166
|
+
}
|
|
1032
1167
|
}
|
|
1033
1168
|
process.exit(0);
|
|
1034
1169
|
}
|
|
1035
1170
|
catch (error) {
|
|
1171
|
+
// Fail-open on error
|
|
1036
1172
|
if (options.json) {
|
|
1037
|
-
printJson({
|
|
1173
|
+
printJson({
|
|
1174
|
+
hookSpecificOutput: {
|
|
1175
|
+
hookEventName: 'PreToolUse',
|
|
1176
|
+
permissionDecision: 'allow',
|
|
1177
|
+
},
|
|
1178
|
+
});
|
|
1038
1179
|
}
|
|
1039
1180
|
process.exit(0);
|
|
1040
1181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,12 @@ export declare class DynamicScaler {
|
|
|
66
66
|
private totalDecisions;
|
|
67
67
|
private currentAgents;
|
|
68
68
|
private lastDecision?;
|
|
69
|
+
private db;
|
|
70
|
+
private persistCount;
|
|
71
|
+
private static readonly KV_NAMESPACE;
|
|
72
|
+
private static readonly KV_KEY;
|
|
73
|
+
private static readonly PERSIST_INTERVAL;
|
|
74
|
+
private static readonly KV_TTL;
|
|
69
75
|
/**
|
|
70
76
|
* Create a new DynamicScaler.
|
|
71
77
|
*
|
|
@@ -137,6 +143,11 @@ export declare class DynamicScaler {
|
|
|
137
143
|
* @returns Array of recorded WorkloadMetrics snapshots
|
|
138
144
|
*/
|
|
139
145
|
getMetricsHistory(): readonly WorkloadMetrics[];
|
|
146
|
+
/**
|
|
147
|
+
* Initialize persistence layer and load last snapshot from KV store.
|
|
148
|
+
* Safe to call multiple times; will not throw on DB failure.
|
|
149
|
+
*/
|
|
150
|
+
initialize(): Promise<void>;
|
|
140
151
|
/**
|
|
141
152
|
* Release internal buffers. The scaler should not be used after disposal.
|
|
142
153
|
*/
|
|
@@ -148,8 +159,18 @@ export declare class DynamicScaler {
|
|
|
148
159
|
private getAverageMetrics;
|
|
149
160
|
/**
|
|
150
161
|
* Record a scaling event, evicting the oldest when the history cap is hit.
|
|
162
|
+
* Triggers periodic persistence to KV store.
|
|
151
163
|
*/
|
|
152
164
|
private recordEvent;
|
|
165
|
+
/**
|
|
166
|
+
* Load last persisted snapshot from KV store into in-memory state.
|
|
167
|
+
*/
|
|
168
|
+
private loadFromKv;
|
|
169
|
+
/**
|
|
170
|
+
* Persist a trimmed snapshot of metricsHistory and events to KV store.
|
|
171
|
+
* Keeps only the last 50 entries of each to limit storage size.
|
|
172
|
+
*/
|
|
173
|
+
private persistSnapshot;
|
|
153
174
|
}
|
|
154
175
|
/**
|
|
155
176
|
* Create a new DynamicScaler instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-scaler.d.ts","sourceRoot":"","sources":["../../../src/coordination/dynamic-scaling/dynamic-scaler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-scaler.d.ts","sourceRoot":"","sources":["../../../src/coordination/dynamic-scaling/dynamic-scaler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAQjB;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;AAMtB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAkB;IAGvC,OAAO,CAAC,EAAE,CAAqC;IAC/C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAEtC;;;;;OAKG;gBAED,aAAa,GAAE,MAAU,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAWxC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAe7C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,IAAI,eAAe;IAgG3B;;;;;;;;;;OAUG;IACG,OAAO,CACX,QAAQ,EAAE,eAAe,EACzB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,YAAY,CAAC;IA0DxB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAItC;;;;OAIG;IACH,SAAS,IAAI,aAAa;IAQ1B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;OAIG;IACH,QAAQ,IAAI,WAAW;IAYvB;;;;OAIG;IACH,iBAAiB,IAAI,SAAS,eAAe,EAAE;IAQ/C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;YACW,UAAU;IA4BxB;;;OAGG;YACW,eAAe;CAoB9B;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,aAAa,CAEf"}
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
*/
|
|
37
37
|
import { randomUUID } from 'node:crypto';
|
|
38
38
|
import { DEFAULT_DYNAMIC_SCALING_CONFIG } from './types';
|
|
39
|
+
import { getUnifiedMemory } from '../../kernel/unified-memory.js';
|
|
39
40
|
// ============================================================================
|
|
40
41
|
// DynamicScaler
|
|
41
42
|
// ============================================================================
|
|
@@ -62,6 +63,13 @@ export class DynamicScaler {
|
|
|
62
63
|
totalDecisions = 0;
|
|
63
64
|
currentAgents;
|
|
64
65
|
lastDecision;
|
|
66
|
+
// KV store persistence (Tier 2)
|
|
67
|
+
db = null;
|
|
68
|
+
persistCount = 0;
|
|
69
|
+
static KV_NAMESPACE = 'scaling-metrics';
|
|
70
|
+
static KV_KEY = 'dynamic-scaler-snapshot';
|
|
71
|
+
static PERSIST_INTERVAL = 10;
|
|
72
|
+
static KV_TTL = 7200;
|
|
65
73
|
/**
|
|
66
74
|
* Create a new DynamicScaler.
|
|
67
75
|
*
|
|
@@ -87,6 +95,10 @@ export class DynamicScaler {
|
|
|
87
95
|
if (this.metricsHistory.length > this.config.metricsHistorySize) {
|
|
88
96
|
this.metricsHistory.shift();
|
|
89
97
|
}
|
|
98
|
+
this.persistCount++;
|
|
99
|
+
if (this.persistCount % DynamicScaler.PERSIST_INTERVAL === 0) {
|
|
100
|
+
this.persistSnapshot().catch(() => { });
|
|
101
|
+
}
|
|
90
102
|
}
|
|
91
103
|
// --------------------------------------------------------------------------
|
|
92
104
|
// Evaluation
|
|
@@ -293,6 +305,22 @@ export class DynamicScaler {
|
|
|
293
305
|
// --------------------------------------------------------------------------
|
|
294
306
|
// Lifecycle
|
|
295
307
|
// --------------------------------------------------------------------------
|
|
308
|
+
/**
|
|
309
|
+
* Initialize persistence layer and load last snapshot from KV store.
|
|
310
|
+
* Safe to call multiple times; will not throw on DB failure.
|
|
311
|
+
*/
|
|
312
|
+
async initialize() {
|
|
313
|
+
try {
|
|
314
|
+
this.db = getUnifiedMemory();
|
|
315
|
+
if (!this.db.isInitialized())
|
|
316
|
+
await this.db.initialize();
|
|
317
|
+
await this.loadFromKv();
|
|
318
|
+
}
|
|
319
|
+
catch (error) {
|
|
320
|
+
console.warn('[DynamicScaler] DB init failed, using memory-only:', error instanceof Error ? error.message : String(error));
|
|
321
|
+
this.db = null;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
296
324
|
/**
|
|
297
325
|
* Release internal buffers. The scaler should not be used after disposal.
|
|
298
326
|
*/
|
|
@@ -333,12 +361,60 @@ export class DynamicScaler {
|
|
|
333
361
|
}
|
|
334
362
|
/**
|
|
335
363
|
* Record a scaling event, evicting the oldest when the history cap is hit.
|
|
364
|
+
* Triggers periodic persistence to KV store.
|
|
336
365
|
*/
|
|
337
366
|
recordEvent(event) {
|
|
338
367
|
this.events.push(event);
|
|
339
368
|
if (this.events.length > this.config.decisionHistorySize) {
|
|
340
369
|
this.events.shift();
|
|
341
370
|
}
|
|
371
|
+
this.persistCount++;
|
|
372
|
+
if (this.persistCount % DynamicScaler.PERSIST_INTERVAL === 0) {
|
|
373
|
+
this.persistSnapshot().catch(() => { });
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Load last persisted snapshot from KV store into in-memory state.
|
|
378
|
+
*/
|
|
379
|
+
async loadFromKv() {
|
|
380
|
+
if (!this.db)
|
|
381
|
+
return;
|
|
382
|
+
try {
|
|
383
|
+
const snapshot = await this.db.kvGet(DynamicScaler.KV_KEY, DynamicScaler.KV_NAMESPACE);
|
|
384
|
+
if (snapshot) {
|
|
385
|
+
if (Array.isArray(snapshot.metricsHistory)) {
|
|
386
|
+
for (const m of snapshot.metricsHistory) {
|
|
387
|
+
this.metricsHistory.push(m);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (Array.isArray(snapshot.events)) {
|
|
391
|
+
for (const e of snapshot.events) {
|
|
392
|
+
this.events.push(e);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch (error) {
|
|
398
|
+
console.warn('[DynamicScaler] Failed to load KV snapshot:', error instanceof Error ? error.message : String(error));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Persist a trimmed snapshot of metricsHistory and events to KV store.
|
|
403
|
+
* Keeps only the last 50 entries of each to limit storage size.
|
|
404
|
+
*/
|
|
405
|
+
async persistSnapshot() {
|
|
406
|
+
if (!this.db)
|
|
407
|
+
return;
|
|
408
|
+
try {
|
|
409
|
+
const snapshot = {
|
|
410
|
+
metricsHistory: this.metricsHistory.slice(-50),
|
|
411
|
+
events: this.events.slice(-50),
|
|
412
|
+
};
|
|
413
|
+
await this.db.kvSet(DynamicScaler.KV_KEY, snapshot, DynamicScaler.KV_NAMESPACE, DynamicScaler.KV_TTL);
|
|
414
|
+
}
|
|
415
|
+
catch (error) {
|
|
416
|
+
console.warn('[DynamicScaler] Failed to persist KV snapshot:', error instanceof Error ? error.message : String(error));
|
|
417
|
+
}
|
|
342
418
|
}
|
|
343
419
|
}
|
|
344
420
|
// ============================================================================
|