strray-ai 1.7.2 → 1.7.3
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/.opencode/hooks/post-commit +152 -55
- package/.opencode/hooks/post-commit.backup +110 -174
- package/.opencode/hooks/post-push +47 -64
- package/.opencode/hooks/post-push.backup +34 -38
- package/.opencode/strray/features.json +3 -3
- package/.opencode/strray/routing-mappings.json +90 -34
- package/AGENTS.md +7 -2
- package/dist/analytics/anonymization-engine.d.ts +108 -0
- package/dist/analytics/anonymization-engine.d.ts.map +1 -0
- package/dist/analytics/anonymization-engine.js +352 -0
- package/dist/analytics/anonymization-engine.js.map +1 -0
- package/dist/analytics/consent-manager.d.ts +94 -0
- package/dist/analytics/consent-manager.d.ts.map +1 -0
- package/dist/analytics/consent-manager.js +257 -0
- package/dist/analytics/consent-manager.js.map +1 -0
- package/dist/analytics/emerging-pattern-detector.d.ts +68 -0
- package/dist/analytics/emerging-pattern-detector.d.ts.map +1 -0
- package/dist/analytics/emerging-pattern-detector.js +250 -0
- package/dist/analytics/emerging-pattern-detector.js.map +1 -0
- package/dist/analytics/pattern-learning-engine.d.ts +81 -0
- package/dist/analytics/pattern-learning-engine.d.ts.map +1 -0
- package/dist/analytics/pattern-learning-engine.js +262 -0
- package/dist/analytics/pattern-learning-engine.js.map +1 -0
- package/dist/analytics/pattern-performance-tracker.d.ts +89 -0
- package/dist/analytics/pattern-performance-tracker.d.ts.map +1 -0
- package/dist/analytics/pattern-performance-tracker.js +289 -0
- package/dist/analytics/pattern-performance-tracker.js.map +1 -0
- package/dist/analytics/prompt-pattern-analyzer.d.ts +100 -0
- package/dist/analytics/prompt-pattern-analyzer.d.ts.map +1 -0
- package/dist/analytics/prompt-pattern-analyzer.js +372 -0
- package/dist/analytics/prompt-pattern-analyzer.js.map +1 -0
- package/dist/analytics/routing-performance-analyzer.d.ts +102 -0
- package/dist/analytics/routing-performance-analyzer.d.ts.map +1 -0
- package/dist/analytics/routing-performance-analyzer.js +342 -0
- package/dist/analytics/routing-performance-analyzer.js.map +1 -0
- package/dist/analytics/routing-refiner.d.ts +105 -0
- package/dist/analytics/routing-refiner.d.ts.map +1 -0
- package/dist/analytics/routing-refiner.js +381 -0
- package/dist/analytics/routing-refiner.js.map +1 -0
- package/dist/cli/commands/analytics-disable.d.ts +10 -0
- package/dist/cli/commands/analytics-disable.d.ts.map +1 -0
- package/dist/cli/commands/analytics-disable.js +73 -0
- package/dist/cli/commands/analytics-disable.js.map +1 -0
- package/dist/cli/commands/analytics-enable-action.d.ts +9 -0
- package/dist/cli/commands/analytics-enable-action.d.ts.map +1 -0
- package/dist/cli/commands/analytics-enable-action.js +83 -0
- package/dist/cli/commands/analytics-enable-action.js.map +1 -0
- package/dist/cli/commands/analytics-preview.d.ts +10 -0
- package/dist/cli/commands/analytics-preview.d.ts.map +1 -0
- package/dist/cli/commands/analytics-preview.js +107 -0
- package/dist/cli/commands/analytics-preview.js.map +1 -0
- package/dist/cli/commands/analytics-status.d.ts +10 -0
- package/dist/cli/commands/analytics-status.d.ts.map +1 -0
- package/dist/cli/commands/analytics-status.js +68 -0
- package/dist/cli/commands/analytics-status.js.map +1 -0
- package/dist/cli/index.js +6 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adaptive-kernel.d.ts +110 -0
- package/dist/core/adaptive-kernel.d.ts.map +1 -0
- package/dist/core/adaptive-kernel.js +193 -0
- package/dist/core/adaptive-kernel.js.map +1 -0
- package/dist/core/kernel-patterns.d.ts +105 -0
- package/dist/core/kernel-patterns.d.ts.map +1 -0
- package/dist/core/kernel-patterns.js +328 -0
- package/dist/core/kernel-patterns.js.map +1 -0
- package/dist/core/orchestrator.d.ts +1 -0
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +40 -11
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/delegation/agent-delegator.d.ts +1 -0
- package/dist/delegation/agent-delegator.d.ts.map +1 -1
- package/dist/delegation/agent-delegator.js +24 -2
- package/dist/delegation/agent-delegator.js.map +1 -1
- package/dist/delegation/task-skill-router.d.ts +269 -5
- package/dist/delegation/task-skill-router.d.ts.map +1 -1
- package/dist/delegation/task-skill-router.js +810 -23
- package/dist/delegation/task-skill-router.js.map +1 -1
- package/dist/postprocessor/PostProcessor.d.ts +10 -0
- package/dist/postprocessor/PostProcessor.d.ts.map +1 -1
- package/dist/postprocessor/PostProcessor.js +87 -17
- package/dist/postprocessor/PostProcessor.js.map +1 -1
- package/dist/processors/agents-md-validation-processor.d.ts +1 -0
- package/dist/processors/agents-md-validation-processor.d.ts.map +1 -1
- package/dist/processors/agents-md-validation-processor.js +34 -12
- package/dist/processors/agents-md-validation-processor.js.map +1 -1
- package/dist/processors/processor-manager.d.ts +7 -0
- package/dist/processors/processor-manager.d.ts.map +1 -1
- package/dist/processors/processor-manager.js +93 -0
- package/dist/processors/processor-manager.js.map +1 -1
- package/dist/processors/test-auto-creation-processor.d.ts.map +1 -1
- package/dist/processors/test-auto-creation-processor.js +52 -38
- package/dist/processors/test-auto-creation-processor.js.map +1 -1
- package/dist/scripts/analytics/daily-routing-analysis.d.ts +18 -0
- package/dist/scripts/analytics/daily-routing-analysis.d.ts.map +1 -0
- package/dist/scripts/analytics/daily-routing-analysis.js +268 -0
- package/dist/scripts/analytics/daily-routing-analysis.js.map +1 -0
- package/dist/scripts/analytics/index.d.ts +15 -0
- package/dist/scripts/analytics/index.d.ts.map +1 -0
- package/dist/scripts/analytics/index.js +17 -0
- package/dist/scripts/analytics/index.js.map +1 -0
- package/dist/scripts/test-p9.d.ts +15 -0
- package/dist/scripts/test-p9.d.ts.map +1 -0
- package/dist/scripts/test-p9.js +220 -0
- package/dist/scripts/test-p9.js.map +1 -0
- package/package.json +6 -2
- package/scripts/node/kernel-e2e-test.mjs +168 -0
- package/scripts/node/kernel-framework-test.mjs +127 -0
- package/scripts/node/kernel-live-test.mjs +147 -0
- package/scripts/node/kernel-real-framework-test.mjs +103 -0
- package/scripts/node/kernel-update.cjs +379 -0
- package/scripts/node/reflection-check.sh +245 -27
- package/scripts/node/test-simple-names-comprehensive.mjs +221 -0
- package/scripts/node/test-simple-names.mjs +39 -0
- package/dist/agents/documentation-writer.d.ts +0 -9
- package/dist/agents/documentation-writer.d.ts.map +0 -1
- package/dist/agents/documentation-writer.js +0 -85
- package/dist/agents/documentation-writer.js.map +0 -1
- package/dist/agents/explore.d.ts +0 -8
- package/dist/agents/explore.d.ts.map +0 -1
- package/dist/agents/explore.js +0 -55
- package/dist/agents/explore.js.map +0 -1
- package/dist/agents/librarian.d.ts +0 -3
- package/dist/agents/librarian.d.ts.map +0 -1
- package/dist/agents/librarian.js +0 -84
- package/dist/agents/librarian.js.map +0 -1
- package/dist/agents/marketing-expert.d.ts +0 -9
- package/dist/agents/marketing-expert.d.ts.map +0 -1
- package/dist/agents/marketing-expert.js +0 -112
- package/dist/agents/marketing-expert.js.map +0 -1
- package/dist/agents/oracle.d.ts +0 -8
- package/dist/agents/oracle.d.ts.map +0 -1
- package/dist/agents/oracle.js +0 -51
- package/dist/agents/oracle.js.map +0 -1
- package/dist/agents/seo-copywriter.d.ts +0 -10
- package/dist/agents/seo-copywriter.d.ts.map +0 -1
- package/dist/agents/seo-copywriter.js +0 -73
- package/dist/agents/seo-copywriter.js.map +0 -1
- package/dist/agents/seo-specialist.d.ts +0 -9
- package/dist/agents/seo-specialist.d.ts.map +0 -1
- package/dist/agents/seo-specialist.js +0 -54
- package/dist/agents/seo-specialist.js.map +0 -1
- package/dist/agents/test-architect.d.ts +0 -3
- package/dist/agents/test-architect.d.ts.map +0 -1
- package/dist/agents/test-architect.js +0 -96
- package/dist/agents/test-architect.js.map +0 -1
- package/dist/mcps/enhanced-orchestrator.server.d.ts +0 -14
- package/dist/mcps/enhanced-orchestrator.server.d.ts.map +0 -1
- package/dist/mcps/enhanced-orchestrator.server.js +0 -266
- package/dist/mcps/enhanced-orchestrator.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/analyzer.server.d.ts +0 -7
- package/dist/mcps/knowledge-skills/analyzer.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/analyzer.server.js +0 -282
- package/dist/mcps/knowledge-skills/analyzer.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts +0 -48
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/documentation-generation.server.js +0 -1238
- package/dist/mcps/knowledge-skills/documentation-generation.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/explore.server.d.ts +0 -21
- package/dist/mcps/knowledge-skills/explore.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/explore.server.js +0 -582
- package/dist/mcps/knowledge-skills/explore.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/marketing-expert.server.js +0 -356
- package/dist/mcps/knowledge-skills/marketing-expert.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/oracle.server.d.ts +0 -25
- package/dist/mcps/knowledge-skills/oracle.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/oracle.server.js +0 -569
- package/dist/mcps/knowledge-skills/oracle.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/seo-copywriter.server.js +0 -251
- package/dist/mcps/knowledge-skills/seo-copywriter.server.js.map +0 -1
- package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts +0 -8
- package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts.map +0 -1
- package/dist/mcps/knowledge-skills/seo-specialist.server.js +0 -211
- package/dist/mcps/knowledge-skills/seo-specialist.server.js.map +0 -1
- package/dist/mcps/librarian.server.d.ts +0 -17
- package/dist/mcps/librarian.server.d.ts.map +0 -1
- package/dist/mcps/librarian.server.js +0 -382
- package/dist/mcps/librarian.server.js.map +0 -1
- package/dist/optimization/performance-optimizer.d.ts +0 -179
- package/dist/optimization/performance-optimizer.d.ts.map +0 -1
- package/dist/optimization/performance-optimizer.js +0 -556
- package/dist/optimization/performance-optimizer.js.map +0 -1
- package/dist/utils/memory-pool.d.ts +0 -90
- package/dist/utils/memory-pool.d.ts.map +0 -1
- package/dist/utils/memory-pool.js +0 -245
- package/dist/utils/memory-pool.js.map +0 -1
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Daily Routing Analytics Script
|
|
4
|
+
*
|
|
5
|
+
* Generates comprehensive daily reports for routing system performance,
|
|
6
|
+
* providing insights and actionable recommendations for continuous improvement.
|
|
7
|
+
*
|
|
8
|
+
* Usage: node scripts/analytics/daily-routing-analysis.ts [--preview] [--apply]
|
|
9
|
+
* Or from npm: npm run analytics:daily
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 2026-03-05
|
|
13
|
+
*/
|
|
14
|
+
import { taskSkillRouter } from "../../delegation/task-skill-router.js";
|
|
15
|
+
import * as fs from "fs";
|
|
16
|
+
import * as path from "path";
|
|
17
|
+
import { fileURLToPath } from "url";
|
|
18
|
+
// Get proper file URL path resolution for both dev and production
|
|
19
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
20
|
+
const __dirname = path.dirname(__filename);
|
|
21
|
+
const config = {
|
|
22
|
+
outputDir: process.env.ANALYTICS_OUTPUT_DIR || ".analytics",
|
|
23
|
+
reportPrefix: "routing-report-",
|
|
24
|
+
retentionDays: 30,
|
|
25
|
+
thresholds: {
|
|
26
|
+
lowSuccessRate: 0.7,
|
|
27
|
+
lowConfidence: 0.8,
|
|
28
|
+
lowTemplateMatch: 0.5,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Ensure output directory exists
|
|
33
|
+
*/
|
|
34
|
+
function ensureOutputDir() {
|
|
35
|
+
if (!fs.existsSync(config.outputDir)) {
|
|
36
|
+
fs.mkdirSync(config.outputDir, { recursive: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clean up old reports beyond retention period
|
|
41
|
+
*/
|
|
42
|
+
function cleanupOldReports() {
|
|
43
|
+
try {
|
|
44
|
+
const files = fs.readdirSync(config.outputDir);
|
|
45
|
+
const now = Date.now();
|
|
46
|
+
const retentionMs = config.retentionDays * 24 * 60 * 60 * 1000;
|
|
47
|
+
for (const file of files) {
|
|
48
|
+
if (file.startsWith(config.reportPrefix)) {
|
|
49
|
+
const filePath = path.join(config.outputDir, file);
|
|
50
|
+
const stats = fs.statSync(filePath);
|
|
51
|
+
const age = now - stats.mtimeMs;
|
|
52
|
+
if (age > retentionMs) {
|
|
53
|
+
fs.unlinkSync(filePath);
|
|
54
|
+
console.log(`🗑️ Cleaned up old report: ${file}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error("⚠️ Warning: Failed to clean up old reports:", error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate formatted daily report
|
|
65
|
+
*/
|
|
66
|
+
function generateDailyReport() {
|
|
67
|
+
const date = new Date().toISOString().split('T')[0];
|
|
68
|
+
const analytics = taskSkillRouter.getDailyAnalyticsSummary();
|
|
69
|
+
let report = `
|
|
70
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
71
|
+
║ 📊 StringRay Daily Routing Analytics Report ║
|
|
72
|
+
║ ${date} ║
|
|
73
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
74
|
+
|
|
75
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
76
|
+
📈 KEY METRICS
|
|
77
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
78
|
+
|
|
79
|
+
Total Routings: ${analytics.totalRoutings}
|
|
80
|
+
Average Confidence: ${analytics.averageConfidence.toFixed(2)}
|
|
81
|
+
Template Match Rate: ${(analytics.templateMatchRate * 100).toFixed(1)}%
|
|
82
|
+
Success Rate: ${(analytics.successRate * 100).toFixed(1)}%
|
|
83
|
+
|
|
84
|
+
`;
|
|
85
|
+
// Top Agents
|
|
86
|
+
if (analytics.topAgents.length > 0) {
|
|
87
|
+
report += `
|
|
88
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
89
|
+
🤖 TOP PERFORMING AGENTS
|
|
90
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
91
|
+
|
|
92
|
+
`;
|
|
93
|
+
analytics.topAgents.forEach((agent, index) => {
|
|
94
|
+
const status = agent.successRate >= config.thresholds.lowSuccessRate ? "✅" : "⚠️";
|
|
95
|
+
report += `${index + 1}. ${status} ${agent.agent.padEnd(20)} | ${agent.count} routes | ${(agent.successRate * 100).toFixed(1)}% success\n`;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// Top Keywords
|
|
99
|
+
if (analytics.topKeywords.length > 0) {
|
|
100
|
+
report += `
|
|
101
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
102
|
+
🔤 TOP PERFORMING KEYWORDS
|
|
103
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
104
|
+
|
|
105
|
+
`;
|
|
106
|
+
analytics.topKeywords.forEach((keyword, index) => {
|
|
107
|
+
const status = keyword.successRate >= config.thresholds.lowSuccessRate ? "✅" : "⚠️";
|
|
108
|
+
report += `${index + 1}. ${status} ${keyword.keyword.padEnd(30)} | ${keyword.count} matches | ${(keyword.successRate * 100).toFixed(1)}% success\n`;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// Insights
|
|
112
|
+
report += `
|
|
113
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
114
|
+
💡 INSIGHTS & RECOMMENDATIONS
|
|
115
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
116
|
+
|
|
117
|
+
`;
|
|
118
|
+
if (analytics.insights.length === 0) {
|
|
119
|
+
report += `✅ All routing metrics within normal parameters. System is performing well!\n`;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
analytics.insights.forEach(insight => {
|
|
123
|
+
const icon = insight.includes("Low") || insight.includes("below target") ? "⚠️" : "💡";
|
|
124
|
+
report += `${icon} ${insight}\n`;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// Recommendations
|
|
128
|
+
report += `
|
|
129
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
130
|
+
🔧 AUTOMATED IMPROVEMENTS AVAILABLE
|
|
131
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
132
|
+
|
|
133
|
+
To apply automated routing improvements, run:
|
|
134
|
+
node scripts/analytics/daily-routing-analysis.ts --apply
|
|
135
|
+
|
|
136
|
+
This will:
|
|
137
|
+
• Add new high-priority keyword mappings
|
|
138
|
+
• Optimize existing mapping confidence scores
|
|
139
|
+
• Remove low-performing mappings
|
|
140
|
+
|
|
141
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
142
|
+
📋 FULL ANALYTICS DETAILS
|
|
143
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
144
|
+
|
|
145
|
+
`;
|
|
146
|
+
const fullAnalytics = taskSkillRouter.getRoutingAnalytics();
|
|
147
|
+
const promptAnalysis = fullAnalytics.promptPatterns;
|
|
148
|
+
const performanceAnalysis = fullAnalytics.routingPerformance;
|
|
149
|
+
report += `
|
|
150
|
+
Prompt Pattern Analysis:
|
|
151
|
+
• Total Prompts: ${promptAnalysis.totalPrompts}
|
|
152
|
+
• Template Matches: ${promptAnalysis.templateMatches}
|
|
153
|
+
• Template Match Rate: ${(promptAnalysis.templateMatchRate * 100).toFixed(1)}%
|
|
154
|
+
• Template Gaps Detected: ${promptAnalysis.gaps.length}
|
|
155
|
+
• Emerging Patterns: ${promptAnalysis.emergingPatterns.length}
|
|
156
|
+
|
|
157
|
+
Routing Performance:
|
|
158
|
+
• Total Routings: ${performanceAnalysis.totalRoutings}
|
|
159
|
+
• Overall Success Rate: ${(performanceAnalysis.overallSuccessRate * 100).toFixed(1)}%
|
|
160
|
+
• Average Confidence: ${performanceAnalysis.avgConfidence.toFixed(2)}
|
|
161
|
+
• Time Range: ${performanceAnalysis.timeRange.start.toISOString().split('T')[0]} to ${performanceAnalysis.timeRange.end.toISOString().split('T')[0]}
|
|
162
|
+
• Recommendations: ${performanceAnalysis.recommendations.length}
|
|
163
|
+
|
|
164
|
+
• Agent Metrics: ${performanceAnalysis.agentMetrics.length} agents tracked
|
|
165
|
+
• Keyword Effectiveness: ${performanceAnalysis.keywordEffectiveness.length} keywords analyzed
|
|
166
|
+
• Confidence Metrics: ${performanceAnalysis.confidenceMetrics.length} thresholds evaluated
|
|
167
|
+
|
|
168
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
169
|
+
📅 Report generated at: ${new Date().toISOString()}
|
|
170
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
171
|
+
`;
|
|
172
|
+
return report;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Save report to file
|
|
176
|
+
*/
|
|
177
|
+
function saveReport(report, date) {
|
|
178
|
+
const filename = `${config.reportPrefix}${date}.txt`;
|
|
179
|
+
const filepath = path.join(config.outputDir, filename);
|
|
180
|
+
fs.writeFileSync(filepath, report, 'utf-8');
|
|
181
|
+
console.log(`📄 Report saved to: ${filepath}`);
|
|
182
|
+
return filepath;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Display preview of improvements
|
|
186
|
+
*/
|
|
187
|
+
function showImprovementsPreview() {
|
|
188
|
+
console.log("\n🔍 Previewing Automated Routing Improvements...\n");
|
|
189
|
+
const refinements = taskSkillRouter.applyRoutingRefinements(false);
|
|
190
|
+
console.log(`📊 Proposed Changes:`);
|
|
191
|
+
console.log(` • New Mappings: ${refinements.appliedMappings}`);
|
|
192
|
+
console.log(` • Optimized Mappings: ${refinements.optimizedMappings}`);
|
|
193
|
+
console.log(` • Removed Mappings: ${refinements.removedMappings}`);
|
|
194
|
+
console.log(` • Total Changes: ${refinements.changes.length}`);
|
|
195
|
+
if (refinements.changes.length > 0) {
|
|
196
|
+
console.log(`\n📋 Sample Changes:`);
|
|
197
|
+
const sampleChanges = refinements.changes.slice(0, 5);
|
|
198
|
+
sampleChanges.forEach((change, index) => {
|
|
199
|
+
const icon = change.type === 'added' ? '➕' : change.type === 'optimized' ? '⚡' : '➖';
|
|
200
|
+
console.log(` ${index + 1}. ${icon} ${change.type.toUpperCase()}: ${change.reason}`);
|
|
201
|
+
});
|
|
202
|
+
if (refinements.changes.length > 5) {
|
|
203
|
+
console.log(` ... and ${refinements.changes.length - 5} more changes`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
console.log("\n💡 To apply these changes, run with --apply flag");
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Apply automated improvements
|
|
210
|
+
*/
|
|
211
|
+
function applyImprovements() {
|
|
212
|
+
console.log("🔧 Applying Automated Routing Improvements...\n");
|
|
213
|
+
const refinements = taskSkillRouter.applyRoutingRefinements(true);
|
|
214
|
+
console.log(`✅ Improvements Applied:`);
|
|
215
|
+
console.log(` • New Mappings Added: ${refinements.appliedMappings}`);
|
|
216
|
+
console.log(` • Mappings Optimized: ${refinements.optimizedMappings}`);
|
|
217
|
+
console.log(` • Low-Performing Mappings: ${refinements.removedMappings}`);
|
|
218
|
+
console.log(` • Total Changes: ${refinements.changes.length}`);
|
|
219
|
+
if (refinements.changes.length > 0) {
|
|
220
|
+
console.log(`\n📋 Applied Changes:`);
|
|
221
|
+
refinements.changes.forEach((change, index) => {
|
|
222
|
+
const icon = change.type === 'added' ? '➕' : change.type === 'optimized' ? '⚡' : '➖';
|
|
223
|
+
console.log(` ${index + 1}. ${icon} ${change.type.toUpperCase()}: ${change.reason}`);
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
console.log("\n✨ Routing system has been optimized based on recent performance data!");
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Main execution - exported for external use and auto-executed when run directly
|
|
230
|
+
*/
|
|
231
|
+
export function main() {
|
|
232
|
+
console.log("🚀 Starting Daily Routing Analytics...\n");
|
|
233
|
+
const args = process.argv.slice(2);
|
|
234
|
+
const applyMode = args.includes('--apply');
|
|
235
|
+
const previewMode = args.includes('--preview');
|
|
236
|
+
// Ensure output directory
|
|
237
|
+
ensureOutputDir();
|
|
238
|
+
// Cleanup old reports
|
|
239
|
+
cleanupOldReports();
|
|
240
|
+
// Generate daily report
|
|
241
|
+
console.log("📊 Generating daily analytics report...\n");
|
|
242
|
+
const report = generateDailyReport();
|
|
243
|
+
const date = new Date().toISOString().split('T')[0] || new Date().toISOString();
|
|
244
|
+
const reportPath = saveReport(report, date);
|
|
245
|
+
// Display report
|
|
246
|
+
console.log(report);
|
|
247
|
+
// Handle improvement modes
|
|
248
|
+
if (applyMode) {
|
|
249
|
+
console.log("🔧 Apply mode requested.\n");
|
|
250
|
+
applyImprovements();
|
|
251
|
+
}
|
|
252
|
+
else if (previewMode) {
|
|
253
|
+
console.log("🔍 Preview mode requested.\n");
|
|
254
|
+
showImprovementsPreview();
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
console.log("\n💡 Available options:");
|
|
258
|
+
console.log(" --preview Show what improvements would be made");
|
|
259
|
+
console.log(" --apply Apply automated routing improvements\n");
|
|
260
|
+
}
|
|
261
|
+
console.log(`📄 Full report saved to: ${reportPath}`);
|
|
262
|
+
console.log("\n✅ Daily routing analytics completed successfully!");
|
|
263
|
+
}
|
|
264
|
+
// Run main function if this script is executed directly
|
|
265
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
266
|
+
main();
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=daily-routing-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daily-routing-analysis.js","sourceRoot":"","sources":["../../../src/scripts/analytics/daily-routing-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* StringRay Analytics CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Simple wrapper that imports and executes the main analytics function.
|
|
6
|
+
* Ensures proper module resolution in both dev and production environments.
|
|
7
|
+
*
|
|
8
|
+
* Usage: strray-analytics [--preview] [--apply]
|
|
9
|
+
* Or via npm: npm run analytics:daily
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 2026-03-05
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scripts/analytics/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* StringRay Analytics CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Simple wrapper that imports and executes the main analytics function.
|
|
6
|
+
* Ensures proper module resolution in both dev and production environments.
|
|
7
|
+
*
|
|
8
|
+
* Usage: strray-analytics [--preview] [--apply]
|
|
9
|
+
* Or via npm: npm run analytics:daily
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 2026-03-05
|
|
13
|
+
*/
|
|
14
|
+
import { main as analyticsMain } from './daily-routing-analysis.js';
|
|
15
|
+
// Execute the main analytics function
|
|
16
|
+
analyticsMain();
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/analytics/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpE,sCAAsC;AACtC,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* P9 Adaptive Pattern Learning - Test Script
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive test script to verify P9 implementation
|
|
6
|
+
* Tests Pattern Performance Tracker, Emerging Pattern Detector,
|
|
7
|
+
* Pattern Learning Engine, and Adaptive Kernel integration
|
|
8
|
+
*
|
|
9
|
+
* Usage: node dist/scripts/test-p9.js
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 2026-03-05
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=test-p9.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-p9.d.ts","sourceRoot":"","sources":["../../src/scripts/test-p9.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* P9 Adaptive Pattern Learning - Test Script
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive test script to verify P9 implementation
|
|
6
|
+
* Tests Pattern Performance Tracker, Emerging Pattern Detector,
|
|
7
|
+
* Pattern Learning Engine, and Adaptive Kernel integration
|
|
8
|
+
*
|
|
9
|
+
* Usage: node dist/scripts/test-p9.js
|
|
10
|
+
*
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
* @since 2026-03-05
|
|
13
|
+
*/
|
|
14
|
+
import { fileURLToPath } from "url";
|
|
15
|
+
import { dirname } from "path";
|
|
16
|
+
// Get proper paths
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = dirname(__filename);
|
|
19
|
+
// Import P9 components (from source)
|
|
20
|
+
import { patternPerformanceTracker } from "../analytics/pattern-performance-tracker.js";
|
|
21
|
+
import { emergingPatternDetector } from "../analytics/emerging-pattern-detector.js";
|
|
22
|
+
import { PatternLearningEngine } from "../analytics/pattern-learning-engine.js";
|
|
23
|
+
import { taskSkillRouter } from "../delegation/task-skill-router.js";
|
|
24
|
+
const results = [];
|
|
25
|
+
function log(message) {
|
|
26
|
+
console.log(message);
|
|
27
|
+
}
|
|
28
|
+
function logTest(name, passed, error) {
|
|
29
|
+
const result = { name, passed, error: error || '' };
|
|
30
|
+
results.push(result);
|
|
31
|
+
if (passed) {
|
|
32
|
+
log(` ✅ ${name}`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
log(` ❌ ${name}`);
|
|
36
|
+
if (error) {
|
|
37
|
+
log(` Error: ${error}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Test counters
|
|
42
|
+
let passed = 0;
|
|
43
|
+
let failed = 0;
|
|
44
|
+
async function runTests() {
|
|
45
|
+
log("╔══════════════════════════════════════════════════════════════╗");
|
|
46
|
+
log("║ 🧪 P9 Adaptive Pattern Learning Test Suite ║");
|
|
47
|
+
log("╚══════════════════════════════════════════════════════════════╝\n");
|
|
48
|
+
// Test 1: Pattern Performance Tracker
|
|
49
|
+
log("📊 Testing Pattern Performance Tracker...\n");
|
|
50
|
+
try {
|
|
51
|
+
// Clear tracker
|
|
52
|
+
patternPerformanceTracker.clear();
|
|
53
|
+
logTest(" Clear tracker", true);
|
|
54
|
+
// Track performance
|
|
55
|
+
patternPerformanceTracker.trackPatternPerformance("security:audit", {
|
|
56
|
+
success: true,
|
|
57
|
+
confidence: 0.9,
|
|
58
|
+
responseTime: 100
|
|
59
|
+
});
|
|
60
|
+
patternPerformanceTracker.trackPatternPerformance("security:audit", {
|
|
61
|
+
success: true,
|
|
62
|
+
confidence: 0.85
|
|
63
|
+
});
|
|
64
|
+
patternPerformanceTracker.trackPatternPerformance("security:audit", {
|
|
65
|
+
success: false,
|
|
66
|
+
confidence: 0.6
|
|
67
|
+
});
|
|
68
|
+
const metrics = patternPerformanceTracker.getPatternMetrics("security:audit");
|
|
69
|
+
logTest(" Track and retrieve metrics", metrics !== null && metrics.totalUsages === 3);
|
|
70
|
+
logTest(" Success rate calculated", metrics?.successRate === 2 / 3);
|
|
71
|
+
logTest(" Average confidence calculated", metrics !== null && metrics.avgConfidence > 0);
|
|
72
|
+
// Test drift detection with more data
|
|
73
|
+
for (let i = 0; i < 20; i++) {
|
|
74
|
+
patternPerformanceTracker.trackPatternPerformance("test:pattern", {
|
|
75
|
+
success: i < 15,
|
|
76
|
+
confidence: 0.8
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const drift = patternPerformanceTracker.detectPatternDrift("test:pattern");
|
|
80
|
+
logTest(" Drift detection with sufficient data", drift !== null);
|
|
81
|
+
// Adaptive thresholds
|
|
82
|
+
const thresholds = patternPerformanceTracker.calculateAdaptiveThresholds();
|
|
83
|
+
logTest(" Calculate adaptive thresholds", thresholds.overall > 0);
|
|
84
|
+
// System summary
|
|
85
|
+
const summary = patternPerformanceTracker.getSystemPerformanceSummary();
|
|
86
|
+
logTest(" System performance summary", summary.totalPatternsTracked >= 2);
|
|
87
|
+
passed += 8;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
logTest(" Pattern Performance Tracker tests", false, String(error));
|
|
91
|
+
failed++;
|
|
92
|
+
}
|
|
93
|
+
log("\n📈 Testing Emerging Pattern Detector...\n");
|
|
94
|
+
try {
|
|
95
|
+
// Create test outcomes
|
|
96
|
+
const testOutcomes = [];
|
|
97
|
+
for (let i = 0; i < 15; i++) {
|
|
98
|
+
testOutcomes.push({
|
|
99
|
+
taskId: String(i),
|
|
100
|
+
taskDescription: 'implement user authentication system',
|
|
101
|
+
routedAgent: 'security-auditor',
|
|
102
|
+
routedSkill: 'security-audit',
|
|
103
|
+
confidence: 0.9,
|
|
104
|
+
timestamp: new Date(),
|
|
105
|
+
success: true
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
// Add another pattern
|
|
109
|
+
for (let i = 0; i < 10; i++) {
|
|
110
|
+
testOutcomes.push({
|
|
111
|
+
taskId: String(i + 100),
|
|
112
|
+
taskDescription: 'write unit tests for component',
|
|
113
|
+
routedAgent: 'testing-lead',
|
|
114
|
+
routedSkill: 'testing-strategy',
|
|
115
|
+
confidence: 0.95,
|
|
116
|
+
timestamp: new Date(),
|
|
117
|
+
success: true
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const result = emergingPatternDetector.detectEmergingPatterns(testOutcomes);
|
|
121
|
+
logTest(" Detect emerging patterns", result.emergentPatterns !== undefined);
|
|
122
|
+
logTest(" Cluster similar tasks", result.clusters.length > 0);
|
|
123
|
+
logTest(" Generate recommendations", result.recommendations.length > 0);
|
|
124
|
+
// Test pattern emerging detection
|
|
125
|
+
const emerging = emergingPatternDetector.isPatternEmerging("authentication login verify", testOutcomes, 0.1);
|
|
126
|
+
logTest(" Pattern emerging detection", emerging !== undefined);
|
|
127
|
+
passed += 5;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
logTest(" Emerging Pattern Detector tests", false, String(error));
|
|
131
|
+
failed++;
|
|
132
|
+
}
|
|
133
|
+
log("\n⚙️ Testing Pattern Learning Engine...\n");
|
|
134
|
+
try {
|
|
135
|
+
// Create learning engine with test config
|
|
136
|
+
const testEngine = new PatternLearningEngine({
|
|
137
|
+
enableAutoAddition: true,
|
|
138
|
+
enableAutoRemoval: true,
|
|
139
|
+
enableThresholdCalibration: true,
|
|
140
|
+
minConfidenceForAddition: 0.7,
|
|
141
|
+
minSuccessRateForAddition: 0.8
|
|
142
|
+
});
|
|
143
|
+
// Create test data
|
|
144
|
+
const outcomes = [];
|
|
145
|
+
for (let i = 0; i < 20; i++) {
|
|
146
|
+
outcomes.push({
|
|
147
|
+
taskId: String(i),
|
|
148
|
+
taskDescription: 'test routing task',
|
|
149
|
+
routedAgent: 'test-agent',
|
|
150
|
+
routedSkill: 'test-skill',
|
|
151
|
+
confidence: 0.5 + (Math.random() * 0.4),
|
|
152
|
+
success: i < 15
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const existingMappings = [
|
|
156
|
+
{ keywords: ['test'], skill: 'test-skill', agent: 'test-agent', confidence: 0.8 }
|
|
157
|
+
];
|
|
158
|
+
const learningResult = testEngine.learnFromData(outcomes, existingMappings);
|
|
159
|
+
logTest(" Learn from data", learningResult !== undefined);
|
|
160
|
+
logTest(" Generate recommendations", learningResult.recommendations.length > 0);
|
|
161
|
+
logTest(" Learning history tracking", testEngine.getLearningHistory().length > 0);
|
|
162
|
+
// Config management
|
|
163
|
+
testEngine.updateConfig({ minConfidenceForAddition: 0.9 });
|
|
164
|
+
const config = testEngine.getConfig();
|
|
165
|
+
logTest(" Config update", config.minConfidenceForAddition === 0.9);
|
|
166
|
+
passed += 6;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
logTest(" Pattern Learning Engine tests", false, String(error));
|
|
170
|
+
failed++;
|
|
171
|
+
}
|
|
172
|
+
log("\n🔗 Testing TaskSkillRouter P9 Integration...\n");
|
|
173
|
+
try {
|
|
174
|
+
// Test P9 learning stats
|
|
175
|
+
const p9Stats = taskSkillRouter.getP9LearningStats();
|
|
176
|
+
logTest(" Get P9 learning stats", p9Stats !== undefined);
|
|
177
|
+
logTest(" P9 enabled status", typeof p9Stats.enabled === 'boolean');
|
|
178
|
+
// Test pattern drift analysis
|
|
179
|
+
const driftAnalysis = taskSkillRouter.getPatternDriftAnalysis();
|
|
180
|
+
logTest(" Get pattern drift analysis", Array.isArray(driftAnalysis));
|
|
181
|
+
// Test adaptive thresholds
|
|
182
|
+
const thresholds = taskSkillRouter.getAdaptiveThresholds();
|
|
183
|
+
logTest(" Get adaptive thresholds", thresholds === null || thresholds.overall >= 0);
|
|
184
|
+
// Test trigger P9 learning
|
|
185
|
+
const learningResult = taskSkillRouter.triggerP9Learning();
|
|
186
|
+
logTest(" Trigger P9 learning", learningResult !== undefined);
|
|
187
|
+
logTest(" Learning recommendations", Array.isArray(learningResult.recommendations));
|
|
188
|
+
passed += 7;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
logTest(" TaskSkillRouter P9 Integration tests", false, String(error));
|
|
192
|
+
failed++;
|
|
193
|
+
}
|
|
194
|
+
// Summary
|
|
195
|
+
log("\n╔══════════════════════════════════════════════════════════════╗");
|
|
196
|
+
log("║ 📊 Test Summary ║");
|
|
197
|
+
log("╚══════════════════════════════════════════════════════════════╝");
|
|
198
|
+
log(`\n Total Tests: ${passed + failed}`);
|
|
199
|
+
log(` ✅ Passed: ${passed}`);
|
|
200
|
+
log(` ❌ Failed: ${failed}`);
|
|
201
|
+
if (failed === 0) {
|
|
202
|
+
log("\n 🎉 All P9 Adaptive Pattern Learning tests passed!\n");
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
log("\n ⚠️ Some tests failed. Check errors above.\n");
|
|
206
|
+
}
|
|
207
|
+
// Detailed results
|
|
208
|
+
log("\n📋 Detailed Results:\n");
|
|
209
|
+
results.forEach((result, index) => {
|
|
210
|
+
const status = result.passed ? "✅" : "❌";
|
|
211
|
+
log(` ${index + 1}. ${status} ${result.name}`);
|
|
212
|
+
});
|
|
213
|
+
process.exit(failed > 0 ? 1 : 0);
|
|
214
|
+
}
|
|
215
|
+
// Run tests
|
|
216
|
+
runTests().catch(error => {
|
|
217
|
+
console.error("Fatal error running tests:", error);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
});
|
|
220
|
+
//# sourceMappingURL=test-p9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-p9.js","sourceRoot":"","sources":["../../src/scripts/test-p9.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "strray-ai",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "⚡ StringRay ⚡: Bulletproof AI orchestration with systematic error prevention. Zero dead ends. Ship clean, tested, optimized code — every time.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/plugin/strray-codex-injection.js",
|
|
7
7
|
"types": "./dist/plugin/strray-codex-injection.d.ts",
|
|
8
8
|
"bin": {
|
|
9
9
|
"strray-ai": "dist/cli/index.js",
|
|
10
|
-
"strray-integration": "dist/scripts/integration.js"
|
|
10
|
+
"strray-integration": "dist/scripts/integration.js",
|
|
11
|
+
"strray-analytics": "dist/scripts/analytics/daily-routing-analysis.js"
|
|
11
12
|
},
|
|
12
13
|
"opencode": {
|
|
13
14
|
"plugin": "./dist/plugin/strray-codex-injection.js",
|
|
@@ -38,6 +39,9 @@
|
|
|
38
39
|
"test:agents-all": "npm test -- src/__tests__/agents/",
|
|
39
40
|
"test:infrastructure": "npm test -- src/__tests__/infrastructure/",
|
|
40
41
|
"test:root": "npm test -- src/__tests__/integration/server.test.ts src/__tests__/framework-enforcement-integration.test.ts",
|
|
42
|
+
"analytics:daily": "node dist/scripts/analytics/daily-routing-analysis.js",
|
|
43
|
+
"analytics:daily:preview": "node dist/scripts/analytics/daily-routing-analysis.js --preview",
|
|
44
|
+
"analytics:daily:apply": "node dist/scripts/analytics/daily-routing-analysis.js --apply",
|
|
41
45
|
"test:full-suite": "npm run test:integration-all && npm run test:performance-all && npm run test:agents-all && npm run test:infrastructure && npm run test:root",
|
|
42
46
|
"postinstall": "node scripts/node/postinstall.cjs",
|
|
43
47
|
"setup-dev": "node scripts/node/setup-dev.cjs",
|