atabey 0.0.14 → 0.0.16

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 (159) hide show
  1. package/LICENSE +672 -21
  2. package/PRIVACY.md +8 -14
  3. package/README.md +183 -25
  4. package/bin/cli.js +72 -5
  5. package/dist/framework-mcp/src/index.js +145 -13
  6. package/dist/framework-mcp/src/index.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +1 -1
  8. package/dist/framework-mcp/src/tools/control_plane/registry.js +52 -4
  9. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
  10. package/dist/framework-mcp/src/tools/definitions.js +1 -1
  11. package/dist/framework-mcp/src/tools/file_system/read_file.js +5 -0
  12. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
  13. package/dist/framework-mcp/src/tools/messaging/approve_operation.d.ts +10 -8
  14. package/dist/framework-mcp/src/tools/messaging/approve_operation.js +12 -12
  15. package/dist/framework-mcp/src/tools/messaging/approve_operation.js.map +1 -1
  16. package/dist/framework-mcp/src/tools/messaging/ask_human.d.ts +8 -8
  17. package/dist/framework-mcp/src/tools/messaging/ask_human.js +8 -8
  18. package/dist/framework-mcp/src/tools/messaging/send_message.js +19 -3
  19. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  20. package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +1 -0
  21. package/dist/framework-mcp/src/tools/observability/check_ports.js +21 -7
  22. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  23. package/dist/framework-mcp/src/tools/schemas.d.ts +4 -4
  24. package/dist/framework-mcp/src/tools/search/grep_search.js +11 -4
  25. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  26. package/dist/framework-mcp/src/tools/search/list_dir.js +3 -0
  27. package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -1
  28. package/dist/framework-mcp/src/tools/shell/run_command.js +185 -93
  29. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -1
  30. package/dist/framework-mcp/src/utils/auth.d.ts +26 -2
  31. package/dist/framework-mcp/src/utils/auth.js +74 -7
  32. package/dist/framework-mcp/src/utils/auth.js.map +1 -1
  33. package/dist/framework-mcp/src/utils/compliance.js +45 -13
  34. package/dist/framework-mcp/src/utils/compliance.js.map +1 -1
  35. package/dist/framework-mcp/src/utils/discipline.d.ts +1 -0
  36. package/dist/framework-mcp/src/utils/discipline.js +42 -3
  37. package/dist/framework-mcp/src/utils/discipline.js.map +1 -1
  38. package/dist/framework-mcp/src/utils/human-in-loop.d.ts +35 -2
  39. package/dist/framework-mcp/src/utils/human-in-loop.js +114 -10
  40. package/dist/framework-mcp/src/utils/human-in-loop.js.map +1 -1
  41. package/dist/framework-mcp/src/utils/loop-detector.js +3 -3
  42. package/dist/framework-mcp/src/utils/loop-detector.js.map +1 -1
  43. package/dist/framework-mcp/src/utils/permissions.d.ts +67 -3
  44. package/dist/framework-mcp/src/utils/permissions.js +179 -43
  45. package/dist/framework-mcp/src/utils/permissions.js.map +1 -1
  46. package/dist/framework-mcp/src/utils/prompt-injection.d.ts +20 -0
  47. package/dist/framework-mcp/src/utils/prompt-injection.js +64 -0
  48. package/dist/framework-mcp/src/utils/prompt-injection.js.map +1 -0
  49. package/dist/framework-mcp/src/utils/quality.js +4 -3
  50. package/dist/framework-mcp/src/utils/quality.js.map +1 -1
  51. package/dist/framework-mcp/src/utils/silent-router.d.ts +4 -2
  52. package/dist/framework-mcp/src/utils/silent-router.js +35 -9
  53. package/dist/framework-mcp/src/utils/silent-router.js.map +1 -1
  54. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js +174 -71
  55. package/dist/framework-mcp/tests/tools/file_system/permissions.test.js.map +1 -1
  56. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +36 -30
  57. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  58. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js +26 -12
  59. package/dist/framework-mcp/tests/tools/observability/check_ports.test.js.map +1 -1
  60. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +38 -15
  61. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -1
  62. package/dist/framework-mcp/tests/utils/human-in-loop.test.js +152 -4
  63. package/dist/framework-mcp/tests/utils/human-in-loop.test.js.map +1 -1
  64. package/dist/framework-mcp/tests/utils/loop-detector.test.js +0 -2
  65. package/dist/framework-mcp/tests/utils/loop-detector.test.js.map +1 -1
  66. package/dist/framework-mcp/tests/utils/prompt-injection.test.d.ts +1 -0
  67. package/dist/framework-mcp/tests/utils/prompt-injection.test.js +43 -0
  68. package/dist/framework-mcp/tests/utils/prompt-injection.test.js.map +1 -0
  69. package/dist/src/cli/commands/dashboard.js +167 -2
  70. package/dist/src/cli/commands/dashboard.js.map +1 -1
  71. package/dist/src/cli/commands/init/scaffold-standards.js +1 -1
  72. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  73. package/dist/src/cli/commands/init.js +14 -7
  74. package/dist/src/cli/commands/init.js.map +1 -1
  75. package/dist/src/cli/commands/log.js +8 -5
  76. package/dist/src/cli/commands/log.js.map +1 -1
  77. package/dist/src/cli/commands/mcp.js +3 -1
  78. package/dist/src/cli/commands/mcp.js.map +1 -1
  79. package/dist/src/cli/commands/orchestrate.d.ts +4 -4
  80. package/dist/src/cli/commands/orchestrate.js +14 -2
  81. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  82. package/dist/src/cli/commands/script.js +8 -1
  83. package/dist/src/cli/commands/script.js.map +1 -1
  84. package/dist/src/cli/commands/status.js +21 -1
  85. package/dist/src/cli/commands/status.js.map +1 -1
  86. package/dist/src/cli/utils/memory.js +6 -5
  87. package/dist/src/cli/utils/memory.js.map +1 -1
  88. package/dist/src/cli/utils/schemas.d.ts +2 -2
  89. package/dist/src/contracts/tasks.d.ts +4 -4
  90. package/dist/src/modules/contracts/api.d.ts +6 -6
  91. package/dist/src/modules/engines/agent-executor.js +41 -20
  92. package/dist/src/modules/engines/agent-executor.js.map +1 -1
  93. package/dist/src/modules/engines/agent-loop.d.ts +5 -5
  94. package/dist/src/modules/engines/agent-loop.js +5 -5
  95. package/dist/src/modules/engines/evaluation-engine.d.ts +9 -2
  96. package/dist/src/modules/engines/evaluation-engine.js +77 -9
  97. package/dist/src/modules/engines/evaluation-engine.js.map +1 -1
  98. package/dist/src/modules/engines/quality-gate.js +4 -2
  99. package/dist/src/modules/engines/quality-gate.js.map +1 -1
  100. package/dist/src/modules/engines/risk-engine.d.ts +17 -1
  101. package/dist/src/modules/engines/risk-engine.js +98 -3
  102. package/dist/src/modules/engines/risk-engine.js.map +1 -1
  103. package/dist/src/modules/engines/routing-engine.d.ts +26 -1
  104. package/dist/src/modules/engines/routing-engine.js +97 -1
  105. package/dist/src/modules/engines/routing-engine.js.map +1 -1
  106. package/dist/src/modules/providers/shared.js +2 -3
  107. package/dist/src/modules/providers/shared.js.map +1 -1
  108. package/dist/src/shared/pii.js +1 -1
  109. package/dist/src/shared/pii.js.map +1 -1
  110. package/dist/src/shared/storage.d.ts +60 -0
  111. package/dist/src/shared/storage.js +77 -3
  112. package/dist/src/shared/storage.js.map +1 -1
  113. package/dist/tests/cli/commands/dashboard-coverage.test.js +3 -1
  114. package/dist/tests/cli/commands/dashboard-coverage.test.js.map +1 -1
  115. package/dist/tests/modules/engines/agent-executor.test.js +1 -1
  116. package/dist/tests/modules/engines/agent-executor.test.js.map +1 -1
  117. package/dist/tests/modules/engines/evaluation-engine.test.js +2 -2
  118. package/dist/tests/modules/engines/evaluation-engine.test.js.map +1 -1
  119. package/dist/tests/status-cost.test.js +2 -0
  120. package/dist/tests/status-cost.test.js.map +1 -1
  121. package/dist/tests/storage-operations.test.js +31 -4
  122. package/dist/tests/storage-operations.test.js.map +1 -1
  123. package/dist/vitest.config.js +6 -4
  124. package/dist/vitest.config.js.map +1 -1
  125. package/framework-mcp/README.md +18 -32
  126. package/framework-mcp/dist/dashboard/assets/index-B-Eu7_J9.js +1260 -0
  127. package/framework-mcp/dist/dashboard/index.html +1 -1
  128. package/framework-mcp/dist/framework-mcp/src/index.js +145 -13
  129. package/framework-mcp/dist/framework-mcp/src/tools/control_plane/registry.js +52 -4
  130. package/framework-mcp/dist/framework-mcp/src/tools/definitions.js +1 -1
  131. package/framework-mcp/dist/framework-mcp/src/tools/file_system/read_file.js +5 -0
  132. package/framework-mcp/dist/framework-mcp/src/tools/messaging/approve_operation.js +12 -12
  133. package/framework-mcp/dist/framework-mcp/src/tools/messaging/ask_human.js +8 -8
  134. package/framework-mcp/dist/framework-mcp/src/tools/messaging/send_message.js +19 -3
  135. package/framework-mcp/dist/framework-mcp/src/tools/observability/check_ports.js +21 -7
  136. package/framework-mcp/dist/framework-mcp/src/tools/search/grep_search.js +11 -4
  137. package/framework-mcp/dist/framework-mcp/src/tools/search/list_dir.js +3 -0
  138. package/framework-mcp/dist/framework-mcp/src/tools/shell/run_command.js +185 -93
  139. package/framework-mcp/dist/framework-mcp/src/utils/auth.js +74 -7
  140. package/framework-mcp/dist/framework-mcp/src/utils/compliance.js +45 -13
  141. package/framework-mcp/dist/framework-mcp/src/utils/discipline.js +42 -3
  142. package/framework-mcp/dist/framework-mcp/src/utils/human-in-loop.js +114 -10
  143. package/framework-mcp/dist/framework-mcp/src/utils/loop-detector.js +3 -3
  144. package/framework-mcp/dist/framework-mcp/src/utils/permissions.js +179 -43
  145. package/framework-mcp/dist/framework-mcp/src/utils/prompt-injection.js +63 -0
  146. package/framework-mcp/dist/framework-mcp/src/utils/quality.js +4 -3
  147. package/framework-mcp/dist/framework-mcp/src/utils/silent-router.js +35 -9
  148. package/framework-mcp/dist/src/cli/utils/memory.js +6 -5
  149. package/framework-mcp/dist/src/modules/engines/evaluation-engine.js +170 -0
  150. package/framework-mcp/dist/src/modules/engines/quality-gate.js +4 -2
  151. package/framework-mcp/dist/src/modules/engines/risk-engine.js +98 -3
  152. package/framework-mcp/dist/src/modules/engines/routing-engine.js +97 -1
  153. package/framework-mcp/dist/src/modules/providers/shared.js +2 -3
  154. package/framework-mcp/dist/src/shared/pii.js +1 -1
  155. package/framework-mcp/dist/src/shared/storage.js +77 -3
  156. package/framework-mcp/package.json +21 -18
  157. package/mcp.json +3 -2
  158. package/package.json +4 -5
  159. package/framework-mcp/dist/dashboard/assets/index-B2mYld0c.js +0 -1221
@@ -7,9 +7,10 @@ import { logger } from "../../shared/logger.js";
7
7
  import { asTraceID } from "../../shared/types.js";
8
8
  export class EvaluationEngine {
9
9
  /**
10
- * Evaluates a completed task, calculates a score, and updates Specialty Memory if needed.
10
+ * Evaluates a completed task, calculates a score, and updates Specialty Memory.
11
+ * Saves lessons from both failures AND successes.
11
12
  */
12
- static evaluateTask(traceIdStr, agentName, durationMs) {
13
+ static evaluateTask(traceIdStr, agentName, durationMs, taskDescription) {
13
14
  const traceId = asTraceID(traceIdStr);
14
15
  logger.debug(`Starting evaluation for Trace ${traceId} by ${agentName}`);
15
16
  let score = 100;
@@ -20,13 +21,17 @@ export class EvaluationEngine {
20
21
  compliance: 0
21
22
  };
22
23
  const projectRoot = process.cwd();
24
+ const lessons = [];
23
25
  // 1. Compliance Check (AST-based discipline check)
24
26
  try {
25
- const issues = scanProjectCompliance("src"); // Defaulting to src/ for now
27
+ const issues = scanProjectCompliance("src");
26
28
  metrics.compliance = issues.length;
27
29
  if (issues.length > 0) {
28
- score -= Math.min(issues.length * 5, 40); // Max 40 points deduction for compliance
29
- this.updateSpecialtyMemory(agentName, "Compliance Violations Detected: Ensure strict adherence to zero-any, zero-console.log policies.");
30
+ score -= Math.min(issues.length * 5, 40);
31
+ lessons.push("Compliance Violations Detected: Ensure strict adherence to zero-any, zero-console.log policies.");
32
+ }
33
+ else {
34
+ lessons.push("Compliance check passed: No any types or console.log violations found.");
30
35
  }
31
36
  }
32
37
  catch (e) {
@@ -36,37 +41,55 @@ export class EvaluationEngine {
36
41
  try {
37
42
  if (fs.existsSync(path.join(projectRoot, "tsconfig.json"))) {
38
43
  runCommandQuiet("npx", ["tsc", "--noEmit"], projectRoot);
44
+ lessons.push("TypeScript compilation succeeded. Project is type-safe.");
39
45
  }
40
46
  }
41
47
  catch {
42
48
  metrics.compilation = false;
43
49
  score -= 20;
44
- this.updateSpecialtyMemory(agentName, "Compilation Error: Always run 'npx tsc --noEmit' to verify type safety before completing a task.");
50
+ lessons.push("Compilation Error: Always run 'npx tsc --noEmit' to verify type safety before completing a task.");
45
51
  }
46
52
  // 3. Lint Check
47
53
  try {
48
54
  if (fs.existsSync(path.join(projectRoot, "eslint.config.js"))) {
49
55
  runCommandQuiet("npx", ["eslint", ".", "--max-warnings", "0"], projectRoot);
56
+ lessons.push("Lint check passed. Code follows project style guidelines.");
50
57
  }
51
58
  }
52
59
  catch {
53
60
  metrics.lint = false;
54
61
  score -= 10;
55
62
  }
56
- // 4. Test Check (Assuming vitest is standard for this framework)
63
+ // 4. Test Check
57
64
  try {
58
65
  if (fs.existsSync(path.join(projectRoot, "vitest.config.ts"))) {
59
66
  runCommandQuiet("npx", ["vitest", "run", "--passWithNoTests"], projectRoot);
67
+ lessons.push("All tests passed. Changes are verified.");
60
68
  }
61
69
  }
62
70
  catch {
63
71
  metrics.tests = false;
64
72
  score -= 20;
65
- this.updateSpecialtyMemory(agentName, "Test Failure: Ensure all unit tests pass before marking a task as COMPLETED.");
73
+ lessons.push("Test Failure: Ensure all unit tests pass before marking a task as COMPLETED.");
66
74
  }
67
75
  // 5. Efficiency Check
68
- if (durationMs > 120000) { // If task took more than 2 minutes
76
+ if (durationMs > 120000) {
69
77
  score -= 10;
78
+ lessons.push("Task took longer than 2 minutes. Consider breaking large tasks into smaller steps.");
79
+ }
80
+ else if (score >= 80) {
81
+ lessons.push("Task completed efficiently within expected timeframe.");
82
+ }
83
+ // 6. Success Lesson — if score is high and no critical errors
84
+ if (score >= 80 && taskDescription) {
85
+ const successLesson = this.extractSuccessLesson(agentName, taskDescription);
86
+ if (successLesson) {
87
+ lessons.push(successLesson);
88
+ }
89
+ }
90
+ // Save all lessons to specialty memory
91
+ for (const lesson of lessons) {
92
+ this.updateSpecialtyMemory(agentName, lesson);
70
93
  }
71
94
  const result = {
72
95
  traceId,
@@ -79,6 +102,51 @@ export class EvaluationEngine {
79
102
  logger.debug(`Evaluation completed for ${agentName}: Score ${result.score}/100`);
80
103
  return result;
81
104
  }
105
+ static extractSuccessLesson(agentName, taskDescription) {
106
+ const patterns = [
107
+ { keywords: ["api", "endpoint", "route", "rest"], category: "REST API pattern" },
108
+ { keywords: ["auth", "login", "jwt", "token"], category: "Authentication/authorization/JWT pattern" },
109
+ { keywords: ["test", "spec", "vitest"], category: "Test-driven development approach" },
110
+ { keywords: ["migration", "schema", "database", "sql"], category: "Database schema/migration pattern" },
111
+ { keywords: ["component", "react", "ui", "page"], category: "UI component design pattern" },
112
+ { keywords: ["middleware", "guard", "interceptor"], category: "Middleware/guard pipeline pattern" },
113
+ { keywords: ["service", "repository", "inject"], category: "Service/repository architecture pattern" },
114
+ { keywords: ["error", "exception", "catch", "try"], category: "Robust error handling pattern" },
115
+ { keywords: ["config", "env", "environment"], category: "Configuration and environment control pattern" },
116
+ ];
117
+ const lower = taskDescription.toLowerCase();
118
+ let categoryStr = "";
119
+ for (const { keywords, category } of patterns) {
120
+ if (keywords.some(k => lower.includes(k))) {
121
+ categoryStr = ` using ${category}`;
122
+ break;
123
+ }
124
+ }
125
+ const cleanedTask = taskDescription.replace(/\r?\n/g, " ").trim();
126
+ const truncatedTask = cleanedTask.length > 120 ? cleanedTask.substring(0, 117) + "..." : cleanedTask;
127
+ const capitalizedTask = truncatedTask.charAt(0).toUpperCase() + truncatedTask.slice(1);
128
+ return `Successfully completed task: "${capitalizedTask}"${categoryStr}.`;
129
+ }
130
+ /**
131
+ * Reads learned conventions from an agent's specialty memory.
132
+ * Used by silent-router to inject context into AI calls.
133
+ */
134
+ static readLearnedConventions(agentName) {
135
+ const cleanName = agentName.replace("@", "");
136
+ const fwDir = getFrameworkDir();
137
+ const filePath = path.join(fwDir, "memory", "specialties", `${cleanName}.md`);
138
+ try {
139
+ if (fs.existsSync(filePath)) {
140
+ const content = fs.readFileSync(filePath, "utf8").trim();
141
+ if (content)
142
+ return content;
143
+ }
144
+ }
145
+ catch {
146
+ // File might not exist yet
147
+ }
148
+ return "";
149
+ }
82
150
  /**
83
151
  * Appends learned lessons to the agent's specialty memory.
84
152
  */
@@ -1 +1 @@
1
- {"version":3,"file":"evaluation-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/evaluation-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluation-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/evaluation-engine.ts"],"names":[],"mappings":"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"}
@@ -73,10 +73,12 @@ export class QualityGate {
73
73
  if (!output || output.trim().length < 10) {
74
74
  return { passed: false, reason: "Output is too short or empty." };
75
75
  }
76
- // Check for hard error indicators
76
+ // Check for hard error indicators (word-boundary match to avoid false positives
77
+ // on valid identifiers such as 'ErrorBoundary', 'handleError', 'TIMEOUT_MS',
78
+ // 'FAILED_VALIDATION', etc.).
77
79
  const errorIndicators = ["ERROR", "FAILED", "CRASHED", "TIMEOUT"];
78
80
  for (const indicator of errorIndicators) {
79
- if (output.toUpperCase().includes(indicator)) {
81
+ if (new RegExp(`\\b${indicator}\\b`).test(output.toUpperCase())) {
80
82
  return { passed: false, reason: `Output contains error indicator: ${indicator}` };
81
83
  }
82
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quality-gate.js","sourceRoot":"","sources":["../../../../src/modules/engines/quality-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-gate.js","sourceRoot":"","sources":["../../../../src/modules/engines/quality-gate.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,33 @@ import { RiskAssessment } from "./types.js";
2
2
  /**
3
3
  * [SECURITY] Risk Engine (The Guardian)
4
4
  * Calculates the danger level of a proposed task or operation.
5
+ *
6
+ * Scoring model (v2 — contextual behavioral analysis):
7
+ * - Keyword signals: intent words in natural-language task descriptions
8
+ * - Path signals: sensitivity of file paths / env patterns
9
+ * - Behavioral signals: blast-radius proxies — file count, line deletions, bulk patterns
10
+ * - Complexity signal: task description length as misunderstanding proxy
11
+ *
12
+ * requiresApproval threshold: totalScore >= 60
5
13
  */
6
14
  export declare class RiskEngine {
7
15
  private static HIGH_RISK_KEYWORDS;
8
16
  private static SENSITIVE_PATHS;
17
+ private static BULK_SCOPE_PATTERNS;
9
18
  /**
10
19
  * Assesses the risk of a natural language task or command string.
20
+ * Combines keyword analysis, path sensitivity, and complexity signals.
11
21
  */
12
22
  static assessTaskRisk(task: string): RiskAssessment;
13
23
  /**
14
24
  * Assesses risk based on a proposed file change.
25
+ * Adds behavioral signals: file count impact and bulk-scope path patterns.
15
26
  */
16
- static assessChangeRisk(filePath: string, operation: "write" | "replace" | "patch"): RiskAssessment;
27
+ static assessChangeRisk(filePath: string, operation: "write" | "replace" | "patch", options?: {
28
+ /** Number of files touched by this operation (for multi-file tools) */
29
+ affectedFileCount?: number;
30
+ /** Approximate number of lines being deleted */
31
+ deletedLineCount?: number;
32
+ }): RiskAssessment;
17
33
  private static finalizeAssessment;
18
34
  }
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * [SECURITY] Risk Engine (The Guardian)
3
3
  * Calculates the danger level of a proposed task or operation.
4
+ *
5
+ * Scoring model (v2 — contextual behavioral analysis):
6
+ * - Keyword signals: intent words in natural-language task descriptions
7
+ * - Path signals: sensitivity of file paths / env patterns
8
+ * - Behavioral signals: blast-radius proxies — file count, line deletions, bulk patterns
9
+ * - Complexity signal: task description length as misunderstanding proxy
10
+ *
11
+ * requiresApproval threshold: totalScore >= 60
4
12
  */
5
13
  export class RiskEngine {
6
14
  static HIGH_RISK_KEYWORDS = [
@@ -18,10 +26,18 @@ export class RiskEngine {
18
26
  { pattern: /database/i, weight: 30 },
19
27
  { pattern: /auth/i, weight: 30 },
20
28
  { pattern: /security/i, weight: 30 },
21
- { pattern: /atabey/i, weight: 40 }, // Framework protection
29
+ { pattern: /atabey/i, weight: 40 }, // Framework self-protection
30
+ ];
31
+ // ─── Behavioral Signal Patterns ──────────────────────────────────────────
32
+ // Glob / wildcard patterns in paths that indicate bulk/mass-scope operations.
33
+ static BULK_SCOPE_PATTERNS = [
34
+ /\*\*/, // recursive glob
35
+ /\*\.[a-z]{2,4}/, // wildcard extension (*.ts, *.js)
36
+ /\/\*$/, // directory wildcard
22
37
  ];
23
38
  /**
24
39
  * Assesses the risk of a natural language task or command string.
40
+ * Combines keyword analysis, path sensitivity, and complexity signals.
25
41
  */
26
42
  static assessTaskRisk(task) {
27
43
  const factors = [];
@@ -48,7 +64,31 @@ export class RiskEngine {
48
64
  totalScore += weight;
49
65
  }
50
66
  }
51
- // 3. Complexity Risk (Length of task as a proxy)
67
+ // 3. Behavioral Bulk scope detection in task text
68
+ for (const pattern of this.BULK_SCOPE_PATTERNS) {
69
+ if (pattern.test(task)) {
70
+ const score = 25;
71
+ factors.push({
72
+ factor: "Bulk Scope Pattern",
73
+ score,
74
+ description: `Task references a wildcard/glob pattern (${pattern.source}), indicating a potentially mass-scope operation.`
75
+ });
76
+ totalScore += score;
77
+ break; // count once even if multiple glob patterns match
78
+ }
79
+ }
80
+ // 4. Behavioral — Line deletion volume proxy
81
+ // Detect phrases like "delete all", "remove all", "wipe", "clear all"
82
+ if (/\b(delete|remove|wipe|clear)\s+all\b/i.test(task)) {
83
+ const score = 30;
84
+ factors.push({
85
+ factor: "Mass Deletion Intent",
86
+ score,
87
+ description: "Task uses mass-deletion language ('delete all', 'remove all', 'wipe', 'clear all') suggesting bulk data destruction."
88
+ });
89
+ totalScore += score;
90
+ }
91
+ // 5. Complexity Risk (Length as misunderstanding proxy)
52
92
  if (task.length > 300) {
53
93
  const score = 10;
54
94
  factors.push({
@@ -62,8 +102,9 @@ export class RiskEngine {
62
102
  }
63
103
  /**
64
104
  * Assesses risk based on a proposed file change.
105
+ * Adds behavioral signals: file count impact and bulk-scope path patterns.
65
106
  */
66
- static assessChangeRisk(filePath, operation) {
107
+ static assessChangeRisk(filePath, operation, options) {
67
108
  const factors = [];
68
109
  let totalScore = 0;
69
110
  // 1. Operation Weight
@@ -85,6 +126,60 @@ export class RiskEngine {
85
126
  totalScore += weight;
86
127
  }
87
128
  }
129
+ // 3. Behavioral — Bulk scope path (glob/wildcard in filePath)
130
+ for (const pattern of this.BULK_SCOPE_PATTERNS) {
131
+ if (pattern.test(filePath)) {
132
+ const score = 25;
133
+ factors.push({
134
+ factor: "Bulk Scope Path",
135
+ score,
136
+ description: `File path '${filePath}' contains a wildcard/glob pattern, suggesting a mass-scope write operation.`
137
+ });
138
+ totalScore += score;
139
+ break;
140
+ }
141
+ }
142
+ // 4. Behavioral — File count impact
143
+ // Writing to many files at once multiplies blast radius.
144
+ const { affectedFileCount = 1, deletedLineCount = 0 } = options ?? {};
145
+ if (affectedFileCount > 10) {
146
+ const score = Math.min(affectedFileCount * 2, 40);
147
+ factors.push({
148
+ factor: `High File Count: ${affectedFileCount} files`,
149
+ score,
150
+ description: `Operation touches ${affectedFileCount} files — high blast radius.`
151
+ });
152
+ totalScore += score;
153
+ }
154
+ else if (affectedFileCount > 3) {
155
+ const score = 15;
156
+ factors.push({
157
+ factor: `Multi-file: ${affectedFileCount} files`,
158
+ score,
159
+ description: `Operation touches ${affectedFileCount} files — moderate blast radius.`
160
+ });
161
+ totalScore += score;
162
+ }
163
+ // 5. Behavioral — Line deletion volume
164
+ // Bulk line deletions (>100 lines) indicate destructive operations.
165
+ if (deletedLineCount > 500) {
166
+ const score = 35;
167
+ factors.push({
168
+ factor: `Mass Line Deletion: ${deletedLineCount} lines`,
169
+ score,
170
+ description: `Operation deletes ${deletedLineCount} lines — very high data destruction risk.`
171
+ });
172
+ totalScore += score;
173
+ }
174
+ else if (deletedLineCount > 100) {
175
+ const score = 20;
176
+ factors.push({
177
+ factor: `Large Line Deletion: ${deletedLineCount} lines`,
178
+ score,
179
+ description: `Operation deletes ${deletedLineCount} lines — elevated data destruction risk.`
180
+ });
181
+ totalScore += score;
182
+ }
88
183
  return this.finalizeAssessment(totalScore, factors);
89
184
  }
90
185
  static finalizeAssessment(totalScore, factors) {
@@ -1 +1 @@
1
- {"version":3,"file":"risk-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/risk-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"risk-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/risk-engine.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,10 @@ export declare class RoutingEngine {
20
20
  *
21
21
  * Uses real TF-IDF scoring: term frequency in the task weighted by
22
22
  * inverse document frequency across the full agent candidate corpus.
23
+ *
24
+ * Semantic routing via `resolveWithEmbeddings()` blends TF-IDF scores
25
+ * with cosine similarity over local TF-IDF embeddings (or OpenAI embeddings
26
+ * when OPENAI_API_KEY is set). Use the async variant for higher accuracy.
23
27
  */
24
28
  static resolveAgent(taskDescription: string): string;
25
29
  /**
@@ -27,8 +31,29 @@ export declare class RoutingEngine {
27
31
  */
28
32
  static resolveWithDetails(taskDescription: string): RoutingResult;
29
33
  /**
30
- * Automatically splits the task into subtasks
34
+ * Semantic routing via embedding cosine similarity.
35
+ *
36
+ * Blends TF-IDF score (60%) with embedding cosine similarity (40%).
37
+ * Falls back gracefully to pure TF-IDF when embeddings are unavailable.
38
+ *
39
+ * When OPENAI_API_KEY is set, uses text-embedding-3-small (1536-dim).
40
+ * Otherwise falls back to the local TF-IDF vectorizer (384-dim) from
41
+ * CoreMemory.generateEmbedding(), which is already used by the memory system.
42
+ *
43
+ * @param taskDescription - Natural language task to route
44
+ * @returns Routing result with semantic score blend
45
+ */
46
+ static resolveWithEmbeddings(taskDescription: string): Promise<RoutingResult>;
47
+ /**
48
+ * Scores a single candidate against a task using TF-IDF.
49
+ * Extracted from resolveWithDetails to support semantic blend calculation.
50
+ */
51
+ private static scoreSingleCandidate;
52
+ /**
53
+ * Cosine similarity between two numeric vectors.
54
+ * Returns a value in [0, 1] where 1 = identical direction.
31
55
  */
56
+ private static cosineSimilarity;
32
57
  static planTask(taskDescription: string): string[];
33
58
  private static tokenize;
34
59
  /**
@@ -5,6 +5,7 @@ import { logger } from "../../shared/logger.js";
5
5
  import { AtabeyStorage } from "../../shared/storage.js";
6
6
  import { asAgentID, asTraceID } from "../../shared/types.js";
7
7
  import { ALL_AGENTS } from "../agents/definitions.js";
8
+ import { CoreMemory } from "../memory/core.js";
8
9
  export class RoutingEngine {
9
10
  /**
10
11
  * Advanced Routing Engine — analyzes task descriptions,
@@ -12,6 +13,10 @@ export class RoutingEngine {
12
13
  *
13
14
  * Uses real TF-IDF scoring: term frequency in the task weighted by
14
15
  * inverse document frequency across the full agent candidate corpus.
16
+ *
17
+ * Semantic routing via `resolveWithEmbeddings()` blends TF-IDF scores
18
+ * with cosine similarity over local TF-IDF embeddings (or OpenAI embeddings
19
+ * when OPENAI_API_KEY is set). Use the async variant for higher accuracy.
15
20
  */
16
21
  static resolveAgent(taskDescription) {
17
22
  return this.resolveWithDetails(taskDescription).agent;
@@ -85,9 +90,100 @@ export class RoutingEngine {
85
90
  subTasks: bestSubTasks,
86
91
  };
87
92
  }
93
+ // ─── Semantic Routing (Embedding-based) ─────────────────────────────────
94
+ /**
95
+ * Semantic routing via embedding cosine similarity.
96
+ *
97
+ * Blends TF-IDF score (60%) with embedding cosine similarity (40%).
98
+ * Falls back gracefully to pure TF-IDF when embeddings are unavailable.
99
+ *
100
+ * When OPENAI_API_KEY is set, uses text-embedding-3-small (1536-dim).
101
+ * Otherwise falls back to the local TF-IDF vectorizer (384-dim) from
102
+ * CoreMemory.generateEmbedding(), which is already used by the memory system.
103
+ *
104
+ * @param taskDescription - Natural language task to route
105
+ * @returns Routing result with semantic score blend
106
+ */
107
+ static async resolveWithEmbeddings(taskDescription) {
108
+ // Start TF-IDF routing in parallel with embedding generation
109
+ const tfidfResult = this.resolveWithDetails(taskDescription);
110
+ try {
111
+ const taskVector = CoreMemory.generateEmbedding(taskDescription);
112
+ const candidates = this.getCandidates();
113
+ let bestAgent = tfidfResult.agent;
114
+ let bestBlendedScore = -Infinity;
115
+ let bestReasoning = tfidfResult.reasoning;
116
+ for (const candidate of candidates) {
117
+ // Build a combined specialty text for this agent to embed
118
+ const specialtyText = Object.keys(candidate.specialties).join(" ") +
119
+ " " + candidate.role + " " + candidate.displayName;
120
+ const agentVector = CoreMemory.generateEmbedding(specialtyText);
121
+ const similarity = this.cosineSimilarity(taskVector, agentVector);
122
+ // Retrieve TF-IDF score for this specific candidate
123
+ const candidateTfIdfScore = this.scoreSingleCandidate(taskDescription, candidate, candidates);
124
+ // Blend: 60% TF-IDF score (normalized 0-1) + 40% cosine similarity
125
+ const normalizedTfIdf = Math.min(candidateTfIdfScore / 30, 1);
126
+ const blendedScore = normalizedTfIdf * 0.6 + similarity * 0.4;
127
+ if (blendedScore > bestBlendedScore) {
128
+ bestBlendedScore = blendedScore;
129
+ bestAgent = candidate.agent;
130
+ bestReasoning = `Semantic blend (TF-IDF: ${(normalizedTfIdf * 100).toFixed(0)}%, cosine: ${(similarity * 100).toFixed(0)}%) → ${candidate.role}`;
131
+ }
132
+ }
133
+ const confidence = bestBlendedScore > 0.6 ? "high"
134
+ : bestBlendedScore > 0.35 ? "medium"
135
+ : "low";
136
+ logger.debug(`[ROUTING] Semantic routing selected ${bestAgent} (blend score: ${bestBlendedScore.toFixed(3)})`);
137
+ return {
138
+ agent: bestAgent,
139
+ score: Math.round(bestBlendedScore * 100) / 100,
140
+ confidence,
141
+ reasoning: bestReasoning,
142
+ subTasks: this.generateSubTasks(bestAgent, taskDescription),
143
+ };
144
+ }
145
+ catch (err) {
146
+ // Graceful fallback to TF-IDF if embedding fails
147
+ logger.warn(`[ROUTING] Embedding-based routing failed, falling back to TF-IDF: ${err.message}`);
148
+ return tfidfResult;
149
+ }
150
+ }
151
+ /**
152
+ * Scores a single candidate against a task using TF-IDF.
153
+ * Extracted from resolveWithDetails to support semantic blend calculation.
154
+ */
155
+ static scoreSingleCandidate(taskDescription, candidate, allCandidates) {
156
+ const textLower = taskDescription.toLowerCase();
157
+ const tokens = this.tokenize(textLower);
158
+ let score = 0;
159
+ for (const [specialty, weight] of Object.entries(candidate.specialties)) {
160
+ const specTokens = this.tokenize(specialty.toLowerCase());
161
+ for (const token of tokens) {
162
+ if (specTokens.some(st => token.includes(st) || st.includes(token))) {
163
+ score += weight * this.calculateTfIdf(token, tokens, allCandidates);
164
+ }
165
+ }
166
+ }
167
+ score += (candidate.capability - 5) * 0.5;
168
+ return score;
169
+ }
88
170
  /**
89
- * Automatically splits the task into subtasks
171
+ * Cosine similarity between two numeric vectors.
172
+ * Returns a value in [0, 1] where 1 = identical direction.
90
173
  */
174
+ static cosineSimilarity(a, b) {
175
+ const len = Math.min(a.length, b.length);
176
+ let dot = 0;
177
+ let normA = 0;
178
+ let normB = 0;
179
+ for (let i = 0; i < len; i++) {
180
+ dot += a[i] * b[i];
181
+ normA += a[i] * a[i];
182
+ normB += b[i] * b[i];
183
+ }
184
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
185
+ return denom === 0 ? 0 : Math.max(0, dot / denom);
186
+ }
91
187
  static planTask(taskDescription) {
92
188
  const result = this.resolveWithDetails(taskDescription);
93
189
  const plan = [
@@ -1 +1 @@
1
- {"version":3,"file":"routing-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/routing-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-engine.js","sourceRoot":"","sources":["../../../../src/modules/engines/routing-engine.ts"],"names":[],"mappings":"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"}