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.
Files changed (189) hide show
  1. package/.opencode/hooks/post-commit +152 -55
  2. package/.opencode/hooks/post-commit.backup +110 -174
  3. package/.opencode/hooks/post-push +47 -64
  4. package/.opencode/hooks/post-push.backup +34 -38
  5. package/.opencode/strray/features.json +3 -3
  6. package/.opencode/strray/routing-mappings.json +90 -34
  7. package/AGENTS.md +7 -2
  8. package/dist/analytics/anonymization-engine.d.ts +108 -0
  9. package/dist/analytics/anonymization-engine.d.ts.map +1 -0
  10. package/dist/analytics/anonymization-engine.js +352 -0
  11. package/dist/analytics/anonymization-engine.js.map +1 -0
  12. package/dist/analytics/consent-manager.d.ts +94 -0
  13. package/dist/analytics/consent-manager.d.ts.map +1 -0
  14. package/dist/analytics/consent-manager.js +257 -0
  15. package/dist/analytics/consent-manager.js.map +1 -0
  16. package/dist/analytics/emerging-pattern-detector.d.ts +68 -0
  17. package/dist/analytics/emerging-pattern-detector.d.ts.map +1 -0
  18. package/dist/analytics/emerging-pattern-detector.js +250 -0
  19. package/dist/analytics/emerging-pattern-detector.js.map +1 -0
  20. package/dist/analytics/pattern-learning-engine.d.ts +81 -0
  21. package/dist/analytics/pattern-learning-engine.d.ts.map +1 -0
  22. package/dist/analytics/pattern-learning-engine.js +262 -0
  23. package/dist/analytics/pattern-learning-engine.js.map +1 -0
  24. package/dist/analytics/pattern-performance-tracker.d.ts +89 -0
  25. package/dist/analytics/pattern-performance-tracker.d.ts.map +1 -0
  26. package/dist/analytics/pattern-performance-tracker.js +289 -0
  27. package/dist/analytics/pattern-performance-tracker.js.map +1 -0
  28. package/dist/analytics/prompt-pattern-analyzer.d.ts +100 -0
  29. package/dist/analytics/prompt-pattern-analyzer.d.ts.map +1 -0
  30. package/dist/analytics/prompt-pattern-analyzer.js +372 -0
  31. package/dist/analytics/prompt-pattern-analyzer.js.map +1 -0
  32. package/dist/analytics/routing-performance-analyzer.d.ts +102 -0
  33. package/dist/analytics/routing-performance-analyzer.d.ts.map +1 -0
  34. package/dist/analytics/routing-performance-analyzer.js +342 -0
  35. package/dist/analytics/routing-performance-analyzer.js.map +1 -0
  36. package/dist/analytics/routing-refiner.d.ts +105 -0
  37. package/dist/analytics/routing-refiner.d.ts.map +1 -0
  38. package/dist/analytics/routing-refiner.js +381 -0
  39. package/dist/analytics/routing-refiner.js.map +1 -0
  40. package/dist/cli/commands/analytics-disable.d.ts +10 -0
  41. package/dist/cli/commands/analytics-disable.d.ts.map +1 -0
  42. package/dist/cli/commands/analytics-disable.js +73 -0
  43. package/dist/cli/commands/analytics-disable.js.map +1 -0
  44. package/dist/cli/commands/analytics-enable-action.d.ts +9 -0
  45. package/dist/cli/commands/analytics-enable-action.d.ts.map +1 -0
  46. package/dist/cli/commands/analytics-enable-action.js +83 -0
  47. package/dist/cli/commands/analytics-enable-action.js.map +1 -0
  48. package/dist/cli/commands/analytics-preview.d.ts +10 -0
  49. package/dist/cli/commands/analytics-preview.d.ts.map +1 -0
  50. package/dist/cli/commands/analytics-preview.js +107 -0
  51. package/dist/cli/commands/analytics-preview.js.map +1 -0
  52. package/dist/cli/commands/analytics-status.d.ts +10 -0
  53. package/dist/cli/commands/analytics-status.d.ts.map +1 -0
  54. package/dist/cli/commands/analytics-status.js +68 -0
  55. package/dist/cli/commands/analytics-status.js.map +1 -0
  56. package/dist/cli/index.js +6 -3
  57. package/dist/cli/index.js.map +1 -1
  58. package/dist/core/adaptive-kernel.d.ts +110 -0
  59. package/dist/core/adaptive-kernel.d.ts.map +1 -0
  60. package/dist/core/adaptive-kernel.js +193 -0
  61. package/dist/core/adaptive-kernel.js.map +1 -0
  62. package/dist/core/kernel-patterns.d.ts +105 -0
  63. package/dist/core/kernel-patterns.d.ts.map +1 -0
  64. package/dist/core/kernel-patterns.js +328 -0
  65. package/dist/core/kernel-patterns.js.map +1 -0
  66. package/dist/core/orchestrator.d.ts +1 -0
  67. package/dist/core/orchestrator.d.ts.map +1 -1
  68. package/dist/core/orchestrator.js +40 -11
  69. package/dist/core/orchestrator.js.map +1 -1
  70. package/dist/delegation/agent-delegator.d.ts +1 -0
  71. package/dist/delegation/agent-delegator.d.ts.map +1 -1
  72. package/dist/delegation/agent-delegator.js +24 -2
  73. package/dist/delegation/agent-delegator.js.map +1 -1
  74. package/dist/delegation/task-skill-router.d.ts +269 -5
  75. package/dist/delegation/task-skill-router.d.ts.map +1 -1
  76. package/dist/delegation/task-skill-router.js +810 -23
  77. package/dist/delegation/task-skill-router.js.map +1 -1
  78. package/dist/postprocessor/PostProcessor.d.ts +10 -0
  79. package/dist/postprocessor/PostProcessor.d.ts.map +1 -1
  80. package/dist/postprocessor/PostProcessor.js +87 -17
  81. package/dist/postprocessor/PostProcessor.js.map +1 -1
  82. package/dist/processors/agents-md-validation-processor.d.ts +1 -0
  83. package/dist/processors/agents-md-validation-processor.d.ts.map +1 -1
  84. package/dist/processors/agents-md-validation-processor.js +34 -12
  85. package/dist/processors/agents-md-validation-processor.js.map +1 -1
  86. package/dist/processors/processor-manager.d.ts +7 -0
  87. package/dist/processors/processor-manager.d.ts.map +1 -1
  88. package/dist/processors/processor-manager.js +93 -0
  89. package/dist/processors/processor-manager.js.map +1 -1
  90. package/dist/processors/test-auto-creation-processor.d.ts.map +1 -1
  91. package/dist/processors/test-auto-creation-processor.js +52 -38
  92. package/dist/processors/test-auto-creation-processor.js.map +1 -1
  93. package/dist/scripts/analytics/daily-routing-analysis.d.ts +18 -0
  94. package/dist/scripts/analytics/daily-routing-analysis.d.ts.map +1 -0
  95. package/dist/scripts/analytics/daily-routing-analysis.js +268 -0
  96. package/dist/scripts/analytics/daily-routing-analysis.js.map +1 -0
  97. package/dist/scripts/analytics/index.d.ts +15 -0
  98. package/dist/scripts/analytics/index.d.ts.map +1 -0
  99. package/dist/scripts/analytics/index.js +17 -0
  100. package/dist/scripts/analytics/index.js.map +1 -0
  101. package/dist/scripts/test-p9.d.ts +15 -0
  102. package/dist/scripts/test-p9.d.ts.map +1 -0
  103. package/dist/scripts/test-p9.js +220 -0
  104. package/dist/scripts/test-p9.js.map +1 -0
  105. package/package.json +6 -2
  106. package/scripts/node/kernel-e2e-test.mjs +168 -0
  107. package/scripts/node/kernel-framework-test.mjs +127 -0
  108. package/scripts/node/kernel-live-test.mjs +147 -0
  109. package/scripts/node/kernel-real-framework-test.mjs +103 -0
  110. package/scripts/node/kernel-update.cjs +379 -0
  111. package/scripts/node/reflection-check.sh +245 -27
  112. package/scripts/node/test-simple-names-comprehensive.mjs +221 -0
  113. package/scripts/node/test-simple-names.mjs +39 -0
  114. package/dist/agents/documentation-writer.d.ts +0 -9
  115. package/dist/agents/documentation-writer.d.ts.map +0 -1
  116. package/dist/agents/documentation-writer.js +0 -85
  117. package/dist/agents/documentation-writer.js.map +0 -1
  118. package/dist/agents/explore.d.ts +0 -8
  119. package/dist/agents/explore.d.ts.map +0 -1
  120. package/dist/agents/explore.js +0 -55
  121. package/dist/agents/explore.js.map +0 -1
  122. package/dist/agents/librarian.d.ts +0 -3
  123. package/dist/agents/librarian.d.ts.map +0 -1
  124. package/dist/agents/librarian.js +0 -84
  125. package/dist/agents/librarian.js.map +0 -1
  126. package/dist/agents/marketing-expert.d.ts +0 -9
  127. package/dist/agents/marketing-expert.d.ts.map +0 -1
  128. package/dist/agents/marketing-expert.js +0 -112
  129. package/dist/agents/marketing-expert.js.map +0 -1
  130. package/dist/agents/oracle.d.ts +0 -8
  131. package/dist/agents/oracle.d.ts.map +0 -1
  132. package/dist/agents/oracle.js +0 -51
  133. package/dist/agents/oracle.js.map +0 -1
  134. package/dist/agents/seo-copywriter.d.ts +0 -10
  135. package/dist/agents/seo-copywriter.d.ts.map +0 -1
  136. package/dist/agents/seo-copywriter.js +0 -73
  137. package/dist/agents/seo-copywriter.js.map +0 -1
  138. package/dist/agents/seo-specialist.d.ts +0 -9
  139. package/dist/agents/seo-specialist.d.ts.map +0 -1
  140. package/dist/agents/seo-specialist.js +0 -54
  141. package/dist/agents/seo-specialist.js.map +0 -1
  142. package/dist/agents/test-architect.d.ts +0 -3
  143. package/dist/agents/test-architect.d.ts.map +0 -1
  144. package/dist/agents/test-architect.js +0 -96
  145. package/dist/agents/test-architect.js.map +0 -1
  146. package/dist/mcps/enhanced-orchestrator.server.d.ts +0 -14
  147. package/dist/mcps/enhanced-orchestrator.server.d.ts.map +0 -1
  148. package/dist/mcps/enhanced-orchestrator.server.js +0 -266
  149. package/dist/mcps/enhanced-orchestrator.server.js.map +0 -1
  150. package/dist/mcps/knowledge-skills/analyzer.server.d.ts +0 -7
  151. package/dist/mcps/knowledge-skills/analyzer.server.d.ts.map +0 -1
  152. package/dist/mcps/knowledge-skills/analyzer.server.js +0 -282
  153. package/dist/mcps/knowledge-skills/analyzer.server.js.map +0 -1
  154. package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts +0 -48
  155. package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts.map +0 -1
  156. package/dist/mcps/knowledge-skills/documentation-generation.server.js +0 -1238
  157. package/dist/mcps/knowledge-skills/documentation-generation.server.js.map +0 -1
  158. package/dist/mcps/knowledge-skills/explore.server.d.ts +0 -21
  159. package/dist/mcps/knowledge-skills/explore.server.d.ts.map +0 -1
  160. package/dist/mcps/knowledge-skills/explore.server.js +0 -582
  161. package/dist/mcps/knowledge-skills/explore.server.js.map +0 -1
  162. package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts +0 -8
  163. package/dist/mcps/knowledge-skills/marketing-expert.server.d.ts.map +0 -1
  164. package/dist/mcps/knowledge-skills/marketing-expert.server.js +0 -356
  165. package/dist/mcps/knowledge-skills/marketing-expert.server.js.map +0 -1
  166. package/dist/mcps/knowledge-skills/oracle.server.d.ts +0 -25
  167. package/dist/mcps/knowledge-skills/oracle.server.d.ts.map +0 -1
  168. package/dist/mcps/knowledge-skills/oracle.server.js +0 -569
  169. package/dist/mcps/knowledge-skills/oracle.server.js.map +0 -1
  170. package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts +0 -8
  171. package/dist/mcps/knowledge-skills/seo-copywriter.server.d.ts.map +0 -1
  172. package/dist/mcps/knowledge-skills/seo-copywriter.server.js +0 -251
  173. package/dist/mcps/knowledge-skills/seo-copywriter.server.js.map +0 -1
  174. package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts +0 -8
  175. package/dist/mcps/knowledge-skills/seo-specialist.server.d.ts.map +0 -1
  176. package/dist/mcps/knowledge-skills/seo-specialist.server.js +0 -211
  177. package/dist/mcps/knowledge-skills/seo-specialist.server.js.map +0 -1
  178. package/dist/mcps/librarian.server.d.ts +0 -17
  179. package/dist/mcps/librarian.server.d.ts.map +0 -1
  180. package/dist/mcps/librarian.server.js +0 -382
  181. package/dist/mcps/librarian.server.js.map +0 -1
  182. package/dist/optimization/performance-optimizer.d.ts +0 -179
  183. package/dist/optimization/performance-optimizer.d.ts.map +0 -1
  184. package/dist/optimization/performance-optimizer.js +0 -556
  185. package/dist/optimization/performance-optimizer.js.map +0 -1
  186. package/dist/utils/memory-pool.d.ts +0 -90
  187. package/dist/utils/memory-pool.d.ts.map +0 -1
  188. package/dist/utils/memory-pool.js +0 -245
  189. 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.2",
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",