@barissozen/csns 0.6.0

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 (200) hide show
  1. package/.env.example +8 -0
  2. package/LICENSE +21 -0
  3. package/README.md +364 -0
  4. package/dist/agent/agent-runner.d.ts +48 -0
  5. package/dist/agent/agent-runner.d.ts.map +1 -0
  6. package/dist/agent/agent-runner.js +180 -0
  7. package/dist/agent/agent-runner.js.map +1 -0
  8. package/dist/agent/architect.d.ts +34 -0
  9. package/dist/agent/architect.d.ts.map +1 -0
  10. package/dist/agent/architect.js +156 -0
  11. package/dist/agent/architect.js.map +1 -0
  12. package/dist/agent/codebase-reader.d.ts +35 -0
  13. package/dist/agent/codebase-reader.d.ts.map +1 -0
  14. package/dist/agent/codebase-reader.js +305 -0
  15. package/dist/agent/codebase-reader.js.map +1 -0
  16. package/dist/agent/context-builder.d.ts +39 -0
  17. package/dist/agent/context-builder.d.ts.map +1 -0
  18. package/dist/agent/context-builder.js +163 -0
  19. package/dist/agent/context-builder.js.map +1 -0
  20. package/dist/agent/index.d.ts +14 -0
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +12 -0
  23. package/dist/agent/index.js.map +1 -0
  24. package/dist/agent/output-parser.d.ts +27 -0
  25. package/dist/agent/output-parser.d.ts.map +1 -0
  26. package/dist/agent/output-parser.js +154 -0
  27. package/dist/agent/output-parser.js.map +1 -0
  28. package/dist/agent/process-spawner.d.ts +56 -0
  29. package/dist/agent/process-spawner.d.ts.map +1 -0
  30. package/dist/agent/process-spawner.js +153 -0
  31. package/dist/agent/process-spawner.js.map +1 -0
  32. package/dist/agent/tracer/index.d.ts +8 -0
  33. package/dist/agent/tracer/index.d.ts.map +1 -0
  34. package/dist/agent/tracer/index.js +6 -0
  35. package/dist/agent/tracer/index.js.map +1 -0
  36. package/dist/agent/tracer/reverse-engineer.d.ts +113 -0
  37. package/dist/agent/tracer/reverse-engineer.d.ts.map +1 -0
  38. package/dist/agent/tracer/reverse-engineer.js +695 -0
  39. package/dist/agent/tracer/reverse-engineer.js.map +1 -0
  40. package/dist/agent/tracer/runtime-tracer.d.ts +61 -0
  41. package/dist/agent/tracer/runtime-tracer.d.ts.map +1 -0
  42. package/dist/agent/tracer/runtime-tracer.js +484 -0
  43. package/dist/agent/tracer/runtime-tracer.js.map +1 -0
  44. package/dist/agent/tracer/semantic-analyzer.d.ts +24 -0
  45. package/dist/agent/tracer/semantic-analyzer.d.ts.map +1 -0
  46. package/dist/agent/tracer/semantic-analyzer.js +132 -0
  47. package/dist/agent/tracer/semantic-analyzer.js.map +1 -0
  48. package/dist/agent/tracer/static-analyzer.d.ts +44 -0
  49. package/dist/agent/tracer/static-analyzer.d.ts.map +1 -0
  50. package/dist/agent/tracer/static-analyzer.js +453 -0
  51. package/dist/agent/tracer/static-analyzer.js.map +1 -0
  52. package/dist/agent/tracer/tracer-agent.d.ts +61 -0
  53. package/dist/agent/tracer/tracer-agent.d.ts.map +1 -0
  54. package/dist/agent/tracer/tracer-agent.js +252 -0
  55. package/dist/agent/tracer/tracer-agent.js.map +1 -0
  56. package/dist/bin/csns.d.ts +24 -0
  57. package/dist/bin/csns.d.ts.map +1 -0
  58. package/dist/bin/csns.js +389 -0
  59. package/dist/bin/csns.js.map +1 -0
  60. package/dist/bin/pc.d.ts +13 -0
  61. package/dist/bin/pc.d.ts.map +1 -0
  62. package/dist/bin/pc.js +212 -0
  63. package/dist/bin/pc.js.map +1 -0
  64. package/dist/brief/brief-collector.d.ts +42 -0
  65. package/dist/brief/brief-collector.d.ts.map +1 -0
  66. package/dist/brief/brief-collector.js +228 -0
  67. package/dist/brief/brief-collector.js.map +1 -0
  68. package/dist/brief/index.d.ts +3 -0
  69. package/dist/brief/index.d.ts.map +1 -0
  70. package/dist/brief/index.js +3 -0
  71. package/dist/brief/index.js.map +1 -0
  72. package/dist/brief/smart-brief.d.ts +52 -0
  73. package/dist/brief/smart-brief.d.ts.map +1 -0
  74. package/dist/brief/smart-brief.js +440 -0
  75. package/dist/brief/smart-brief.js.map +1 -0
  76. package/dist/calculator/calculator.d.ts +7 -0
  77. package/dist/calculator/calculator.d.ts.map +1 -0
  78. package/dist/calculator/calculator.js +18 -0
  79. package/dist/calculator/calculator.js.map +1 -0
  80. package/dist/calculator/index.d.ts +2 -0
  81. package/dist/calculator/index.d.ts.map +1 -0
  82. package/dist/calculator/index.js +2 -0
  83. package/dist/calculator/index.js.map +1 -0
  84. package/dist/i18n/en.d.ts +6 -0
  85. package/dist/i18n/en.d.ts.map +1 -0
  86. package/dist/i18n/en.js +136 -0
  87. package/dist/i18n/en.js.map +1 -0
  88. package/dist/i18n/index.d.ts +31 -0
  89. package/dist/i18n/index.d.ts.map +1 -0
  90. package/dist/i18n/index.js +44 -0
  91. package/dist/i18n/index.js.map +1 -0
  92. package/dist/i18n/tr.d.ts +6 -0
  93. package/dist/i18n/tr.d.ts.map +1 -0
  94. package/dist/i18n/tr.js +136 -0
  95. package/dist/i18n/tr.js.map +1 -0
  96. package/dist/i18n/types.d.ts +86 -0
  97. package/dist/i18n/types.d.ts.map +1 -0
  98. package/dist/i18n/types.js +9 -0
  99. package/dist/i18n/types.js.map +1 -0
  100. package/dist/index.d.ts +7 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +72 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/llm/anthropic-provider.d.ts +18 -0
  105. package/dist/llm/anthropic-provider.d.ts.map +1 -0
  106. package/dist/llm/anthropic-provider.js +55 -0
  107. package/dist/llm/anthropic-provider.js.map +1 -0
  108. package/dist/llm/factory.d.ts +21 -0
  109. package/dist/llm/factory.d.ts.map +1 -0
  110. package/dist/llm/factory.js +59 -0
  111. package/dist/llm/factory.js.map +1 -0
  112. package/dist/llm/index.d.ts +7 -0
  113. package/dist/llm/index.d.ts.map +1 -0
  114. package/dist/llm/index.js +5 -0
  115. package/dist/llm/index.js.map +1 -0
  116. package/dist/llm/ollama-provider.d.ts +20 -0
  117. package/dist/llm/ollama-provider.d.ts.map +1 -0
  118. package/dist/llm/ollama-provider.js +62 -0
  119. package/dist/llm/ollama-provider.js.map +1 -0
  120. package/dist/llm/openai-provider.d.ts +20 -0
  121. package/dist/llm/openai-provider.d.ts.map +1 -0
  122. package/dist/llm/openai-provider.js +65 -0
  123. package/dist/llm/openai-provider.js.map +1 -0
  124. package/dist/llm/resolve.d.ts +10 -0
  125. package/dist/llm/resolve.d.ts.map +1 -0
  126. package/dist/llm/resolve.js +21 -0
  127. package/dist/llm/resolve.js.map +1 -0
  128. package/dist/llm/types.d.ts +45 -0
  129. package/dist/llm/types.d.ts.map +1 -0
  130. package/dist/llm/types.js +11 -0
  131. package/dist/llm/types.js.map +1 -0
  132. package/dist/memory/index.d.ts +2 -0
  133. package/dist/memory/index.d.ts.map +1 -0
  134. package/dist/memory/index.js +2 -0
  135. package/dist/memory/index.js.map +1 -0
  136. package/dist/memory/memory-layer.d.ts +54 -0
  137. package/dist/memory/memory-layer.d.ts.map +1 -0
  138. package/dist/memory/memory-layer.js +297 -0
  139. package/dist/memory/memory-layer.js.map +1 -0
  140. package/dist/orchestrator/dependency-graph.d.ts +39 -0
  141. package/dist/orchestrator/dependency-graph.d.ts.map +1 -0
  142. package/dist/orchestrator/dependency-graph.js +134 -0
  143. package/dist/orchestrator/dependency-graph.js.map +1 -0
  144. package/dist/orchestrator/escalator.d.ts +42 -0
  145. package/dist/orchestrator/escalator.d.ts.map +1 -0
  146. package/dist/orchestrator/escalator.js +163 -0
  147. package/dist/orchestrator/escalator.js.map +1 -0
  148. package/dist/orchestrator/evaluator.d.ts +34 -0
  149. package/dist/orchestrator/evaluator.d.ts.map +1 -0
  150. package/dist/orchestrator/evaluator.js +335 -0
  151. package/dist/orchestrator/evaluator.js.map +1 -0
  152. package/dist/orchestrator/index.d.ts +9 -0
  153. package/dist/orchestrator/index.d.ts.map +1 -0
  154. package/dist/orchestrator/index.js +9 -0
  155. package/dist/orchestrator/index.js.map +1 -0
  156. package/dist/orchestrator/integration-evaluator.d.ts +59 -0
  157. package/dist/orchestrator/integration-evaluator.d.ts.map +1 -0
  158. package/dist/orchestrator/integration-evaluator.js +405 -0
  159. package/dist/orchestrator/integration-evaluator.js.map +1 -0
  160. package/dist/orchestrator/milestone-manager.d.ts +28 -0
  161. package/dist/orchestrator/milestone-manager.d.ts.map +1 -0
  162. package/dist/orchestrator/milestone-manager.js +208 -0
  163. package/dist/orchestrator/milestone-manager.js.map +1 -0
  164. package/dist/orchestrator/orchestrator.d.ts +35 -0
  165. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  166. package/dist/orchestrator/orchestrator.js +338 -0
  167. package/dist/orchestrator/orchestrator.js.map +1 -0
  168. package/dist/orchestrator/planner.d.ts +15 -0
  169. package/dist/orchestrator/planner.d.ts.map +1 -0
  170. package/dist/orchestrator/planner.js +87 -0
  171. package/dist/orchestrator/planner.js.map +1 -0
  172. package/dist/orchestrator/recovery.d.ts +45 -0
  173. package/dist/orchestrator/recovery.d.ts.map +1 -0
  174. package/dist/orchestrator/recovery.js +98 -0
  175. package/dist/orchestrator/recovery.js.map +1 -0
  176. package/dist/run-calculator-test.d.ts +11 -0
  177. package/dist/run-calculator-test.d.ts.map +1 -0
  178. package/dist/run-calculator-test.js +212 -0
  179. package/dist/run-calculator-test.js.map +1 -0
  180. package/dist/run-real-task.d.ts +14 -0
  181. package/dist/run-real-task.d.ts.map +1 -0
  182. package/dist/run-real-task.js +185 -0
  183. package/dist/run-real-task.js.map +1 -0
  184. package/dist/run-todo-test.d.ts +6 -0
  185. package/dist/run-todo-test.d.ts.map +1 -0
  186. package/dist/run-todo-test.js +149 -0
  187. package/dist/run-todo-test.js.map +1 -0
  188. package/dist/todo/index.d.ts +2 -0
  189. package/dist/todo/index.d.ts.map +1 -0
  190. package/dist/todo/index.js +2 -0
  191. package/dist/todo/index.js.map +1 -0
  192. package/dist/todo/server.d.ts +2 -0
  193. package/dist/todo/server.d.ts.map +1 -0
  194. package/dist/todo/server.js +32 -0
  195. package/dist/todo/server.js.map +1 -0
  196. package/dist/types/index.d.ts +412 -0
  197. package/dist/types/index.d.ts.map +1 -0
  198. package/dist/types/index.js +5 -0
  199. package/dist/types/index.js.map +1 -0
  200. package/package.json +100 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Orchestrator — Escalator
3
+ *
4
+ * İnsan müdahalesi gereken durumları yönetir.
5
+ * Terminal'den gerçek readline ile kullanıcı yanıtı alır.
6
+ *
7
+ * Tasarım ilkesi #2: Fail-Safe — şüphe durumunda insana sor
8
+ */
9
+ import { createInterface } from 'node:readline';
10
+ import { t } from '../i18n/index.js';
11
+ export class Escalator {
12
+ /** Readline override (test injection) */
13
+ _askFn = null;
14
+ /**
15
+ * Test'ler için readline'ı override et
16
+ */
17
+ setAskFn(fn) {
18
+ this._askFn = fn;
19
+ }
20
+ /**
21
+ * Değerlendirme sonucuna göre eskalasyon gerekip gerekmediğine karar verir
22
+ */
23
+ shouldEscalate(evaluation) {
24
+ return evaluation.verdict === 'escalate';
25
+ }
26
+ /**
27
+ * Eskalasyon request'i oluşturur
28
+ */
29
+ createEscalation(evaluation, retryCount) {
30
+ const criticalIssues = evaluation.issues.filter(i => i.severity === 'critical');
31
+ const hasScoreDrop = Math.min(evaluation.consistencyScore, evaluation.qualityScore, evaluation.missionAlignment) < 0.4;
32
+ return {
33
+ taskId: evaluation.taskId,
34
+ reason: this.formatReason(evaluation),
35
+ context: this.formatContext(evaluation, retryCount),
36
+ options: this.generateOptions(evaluation),
37
+ urgency: criticalIssues.length > 0 ? 'blocking' :
38
+ hasScoreDrop ? 'important' : 'informational',
39
+ retryCount,
40
+ };
41
+ }
42
+ /**
43
+ * Eskalasyonu terminal'e yaz ve kullanıcıdan yanıt al
44
+ */
45
+ async promptUser(escalation) {
46
+ const formatted = this.formatForHuman(escalation);
47
+ console.log(formatted);
48
+ const answer = await this.ask(t().escalationPrompt);
49
+ return this.parseResponse(answer.trim());
50
+ }
51
+ /**
52
+ * Eskalasyonu insan tarafından okunabilir formatta render eder
53
+ */
54
+ formatForHuman(escalation) {
55
+ const locale = t();
56
+ const urgencyEmoji = {
57
+ blocking: '🚨',
58
+ important: '⚠️',
59
+ informational: 'ℹ️',
60
+ };
61
+ const retryInfo = escalation.retryCount != null
62
+ ? `\n🔄 Retry: ${escalation.retryCount}`
63
+ : '';
64
+ return `
65
+ ${urgencyEmoji[escalation.urgency]} ${locale.escalationTitle(escalation.taskId)}
66
+ ${'═'.repeat(50)}
67
+
68
+ 📋 ${locale.escalationReason}: ${escalation.reason}
69
+ ${retryInfo}
70
+ 📝 ${locale.escalationContext}:
71
+ ${escalation.context}
72
+
73
+ 🔀 ${locale.escalationOptions}:
74
+ 1. ${locale.escalationOptionContinue}
75
+ 2. ${locale.escalationOptionSkip}
76
+ 3. ${locale.escalationOptionStop}
77
+ `;
78
+ }
79
+ /**
80
+ * Kullanıcı yanıtını parse et
81
+ */
82
+ parseResponse(input) {
83
+ const lower = input.toLowerCase();
84
+ // Numara ile seçim
85
+ if (lower === '1' || lower.startsWith('devam')) {
86
+ return { action: 'continue' };
87
+ }
88
+ if (lower === '2' || lower.startsWith('atla') || lower.startsWith('skip')) {
89
+ return { action: 'skip' };
90
+ }
91
+ if (lower === '3' || lower.startsWith('dur') || lower.startsWith('stop')) {
92
+ return { action: 'stop' };
93
+ }
94
+ if (lower.startsWith('retry') || lower.startsWith('tekrar')) {
95
+ return { action: 'retry', feedback: input };
96
+ }
97
+ // Default: devam et
98
+ return { action: 'continue', feedback: input };
99
+ }
100
+ // ── Private ─────────────────────────────────────────────
101
+ formatReason(evaluation) {
102
+ const issues = evaluation.issues
103
+ .filter(i => i.severity === 'critical' || i.severity === 'warning');
104
+ if (issues.length > 0) {
105
+ return issues.map(i => `[${i.category}] ${i.description}`).join('; ');
106
+ }
107
+ const scores = {
108
+ tutarlılık: evaluation.consistencyScore,
109
+ kalite: evaluation.qualityScore,
110
+ 'misyon uyumu': evaluation.missionAlignment,
111
+ };
112
+ const lowScores = Object.entries(scores)
113
+ .filter(([_, v]) => v < 0.5)
114
+ .map(([k, v]) => `${k}: ${(v * 100).toFixed(0)}%`);
115
+ return `Düşük skorlar: ${lowScores.join(', ')}`;
116
+ }
117
+ formatContext(evaluation, retryCount) {
118
+ const parts = [
119
+ `Tutarlılık: ${(evaluation.consistencyScore * 100).toFixed(0)}%`,
120
+ `Kalite: ${(evaluation.qualityScore * 100).toFixed(0)}%`,
121
+ `Misyon Uyumu: ${(evaluation.missionAlignment * 100).toFixed(0)}%`,
122
+ ];
123
+ if (retryCount != null) {
124
+ parts.push(`Retry: ${retryCount}/3 tamamlandı`);
125
+ }
126
+ if (evaluation.feedback) {
127
+ parts.push(`\nGeri bildirim: ${evaluation.feedback}`);
128
+ }
129
+ return parts.join('\n');
130
+ }
131
+ generateOptions(evaluation) {
132
+ const options = [];
133
+ options.push('Devam et — bu çıktıyı kabul et ve ilerle');
134
+ options.push('Atla — bu task\'ı atla, sonrakine geç');
135
+ const categories = new Set(evaluation.issues.map(i => i.category));
136
+ if (categories.has('scope-creep')) {
137
+ options.push('Kapsamı daralt — bu task\'ı küçült veya böl');
138
+ }
139
+ if (categories.has('architecture-violation')) {
140
+ options.push('Mimariyi güncelle — ARCHITECTURE.md\'yi revize et');
141
+ }
142
+ options.push('Durdur — projeyi duraklat');
143
+ return options;
144
+ }
145
+ ask(prompt) {
146
+ // Test injection
147
+ if (this._askFn) {
148
+ return this._askFn(prompt);
149
+ }
150
+ // Gerçek readline
151
+ return new Promise((resolve) => {
152
+ const rl = createInterface({
153
+ input: process.stdin,
154
+ output: process.stdout,
155
+ });
156
+ rl.question(prompt, (answer) => {
157
+ rl.close();
158
+ resolve(answer);
159
+ });
160
+ });
161
+ }
162
+ }
163
+ //# sourceMappingURL=escalator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalator.js","sourceRoot":"","sources":["../../src/orchestrator/escalator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Orchestrator — Evaluator (v3)
3
+ *
4
+ * Two-layer evaluation:
5
+ * 1. Real checks: run tsc/npm test/pytest/go build based on stack
6
+ * 2. Anti-scope check: enforce MISSION.md constraints
7
+ * 3. LLM evaluation: consistency, quality, mission alignment (optional)
8
+ *
9
+ * Now uses LLMProvider abstraction + i18n.
10
+ */
11
+ import type { RealEvaluationResult, CheckResult, AntiScopeViolation, AgentResult, MemorySnapshot, OrchestratorConfig, StackType } from '../types/index.js';
12
+ export declare class Evaluator {
13
+ private provider;
14
+ private escalationThreshold;
15
+ private projectRoot;
16
+ constructor(config: OrchestratorConfig);
17
+ /**
18
+ * Full evaluation: real checks + anti-scope + LLM
19
+ */
20
+ evaluate(agentResult: AgentResult, memory: MemorySnapshot): Promise<RealEvaluationResult>;
21
+ detectStack(memory: MemorySnapshot): Promise<StackType>;
22
+ runStackChecks(stack: StackType, agentArtifacts?: string[]): Promise<CheckResult[]>;
23
+ private resolveCommand;
24
+ private runLintCheck;
25
+ private runCommand;
26
+ private checkFileExists;
27
+ checkAntiScope(agentResult: AgentResult, memory: MemorySnapshot): AntiScopeViolation[];
28
+ private computeScores;
29
+ private buildIssues;
30
+ private buildFeedback;
31
+ private llmEvaluate;
32
+ private applyThresholds;
33
+ }
34
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAmC3B,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,kBAAkB;IAMtC;;OAEG;IACG,QAAQ,CACZ,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,oBAAoB,CAAC;IA8C1B,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IA8BvD,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC;IA0BzB,OAAO,CAAC,cAAc;YAyBR,YAAY;IAuC1B,OAAO,CAAC,UAAU;YAiBJ,eAAe;IAW7B,cAAc,CACZ,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,cAAc,GACrB,kBAAkB,EAAE;IA4CvB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,aAAa;YA2BP,WAAW;IAsBzB,OAAO,CAAC,eAAe;CAoBxB"}
@@ -0,0 +1,335 @@
1
+ /**
2
+ * Orchestrator — Evaluator (v3)
3
+ *
4
+ * Two-layer evaluation:
5
+ * 1. Real checks: run tsc/npm test/pytest/go build based on stack
6
+ * 2. Anti-scope check: enforce MISSION.md constraints
7
+ * 3. LLM evaluation: consistency, quality, mission alignment (optional)
8
+ *
9
+ * Now uses LLMProvider abstraction + i18n.
10
+ */
11
+ import { exec } from 'node:child_process';
12
+ import { readFile, access } from 'node:fs/promises';
13
+ import { join } from 'node:path';
14
+ import { resolveProvider } from '../llm/resolve.js';
15
+ import { t } from '../i18n/index.js';
16
+ import { BriefCollector } from '../brief/brief-collector.js';
17
+ const STACK_CHECKS = {
18
+ 'typescript-node': [
19
+ { name: 'TypeScript compile', command: 'npx tsc --noEmit', required: true },
20
+ { name: 'Unit tests', command: 'npm test', required: true },
21
+ { name: 'Lint', command: 'npx eslint src/ --quiet', required: false },
22
+ ],
23
+ 'react': [
24
+ { name: 'TypeScript compile', command: 'npx tsc --noEmit', required: true },
25
+ { name: 'Unit tests', command: 'npm test', required: true },
26
+ { name: 'Build', command: 'npm run build', required: true },
27
+ { name: 'Lint', command: 'npx eslint src/ --quiet', required: false },
28
+ ],
29
+ 'python': [
30
+ { name: 'Pytest', command: 'pytest', required: true },
31
+ { name: 'Type check', command: 'mypy .', required: false },
32
+ { name: 'Lint', command: 'flake8', required: false },
33
+ ],
34
+ 'go': [
35
+ { name: 'Go build', command: 'go build ./...', required: true },
36
+ { name: 'Go test', command: 'go test ./...', required: true },
37
+ { name: 'Go vet', command: 'go vet ./...', required: false },
38
+ ],
39
+ 'other': [],
40
+ };
41
+ export class Evaluator {
42
+ provider;
43
+ escalationThreshold;
44
+ projectRoot;
45
+ constructor(config) {
46
+ this.provider = resolveProvider(config);
47
+ this.escalationThreshold = config.escalationThreshold;
48
+ this.projectRoot = config.projectRoot;
49
+ }
50
+ /**
51
+ * Full evaluation: real checks + anti-scope + LLM
52
+ */
53
+ async evaluate(agentResult, memory) {
54
+ // 1. Stack detection
55
+ const stackDetected = await this.detectStack(memory);
56
+ // 2. Run real checks
57
+ const checks = await this.runStackChecks(stackDetected, agentResult.artifacts);
58
+ // 3. Anti-scope check
59
+ const antiScopeViolations = this.checkAntiScope(agentResult, memory);
60
+ // 4. Compute scores
61
+ const scores = this.computeScores(checks, antiScopeViolations, agentResult);
62
+ // 5. Build issues
63
+ const issues = this.buildIssues(checks, antiScopeViolations);
64
+ // 6. LLM evaluation (optional)
65
+ let llmFeedback;
66
+ if (this.provider) {
67
+ try {
68
+ const llmResult = await this.llmEvaluate(agentResult, memory);
69
+ llmFeedback = llmResult.feedback;
70
+ issues.push(...llmResult.issues);
71
+ }
72
+ catch {
73
+ llmFeedback = 'LLM evaluation failed — real checks only.';
74
+ }
75
+ }
76
+ const result = {
77
+ taskId: agentResult.taskId,
78
+ consistencyScore: scores.consistency,
79
+ qualityScore: scores.quality,
80
+ missionAlignment: scores.mission,
81
+ issues,
82
+ verdict: 'accept',
83
+ feedback: this.buildFeedback(checks, antiScopeViolations, llmFeedback),
84
+ checks,
85
+ antiScopeViolations,
86
+ stackDetected,
87
+ };
88
+ return this.applyThresholds(result);
89
+ }
90
+ // ── Stack Detection ─────────────────────────────────────
91
+ async detectStack(memory) {
92
+ const missionStack = BriefCollector.parseStackType(memory.files.mission);
93
+ if (missionStack)
94
+ return missionStack;
95
+ const indicators = [
96
+ { file: 'tsconfig.json', stack: 'typescript-node' },
97
+ { file: 'package.json', stack: 'typescript-node' },
98
+ { file: 'requirements.txt', stack: 'python' },
99
+ { file: 'pyproject.toml', stack: 'python' },
100
+ { file: 'go.mod', stack: 'go' },
101
+ ];
102
+ for (const { file, stack } of indicators) {
103
+ try {
104
+ await access(join(this.projectRoot, file));
105
+ if (file === 'package.json' && stack === 'typescript-node') {
106
+ try {
107
+ const pkg = await readFile(join(this.projectRoot, 'package.json'), 'utf-8');
108
+ if (pkg.includes('"react"'))
109
+ return 'react';
110
+ }
111
+ catch { /* ignore */ }
112
+ }
113
+ return stack;
114
+ }
115
+ catch { /* file not found, continue */ }
116
+ }
117
+ return 'other';
118
+ }
119
+ // ── Real Stack Checks ──────────────────────────────────
120
+ async runStackChecks(stack, agentArtifacts = []) {
121
+ const checks = STACK_CHECKS[stack] ?? [];
122
+ const results = [];
123
+ for (const check of checks) {
124
+ const command = this.resolveCommand(check, agentArtifacts);
125
+ if (check.name.includes('Lint')) {
126
+ const lintResult = await this.runLintCheck(check.name, command);
127
+ results.push(lintResult);
128
+ continue;
129
+ }
130
+ const result = await this.runCommand(check.name, command);
131
+ results.push(result);
132
+ }
133
+ // Memory file existence checks
134
+ results.push(await this.checkFileExists('MISSION.md'));
135
+ results.push(await this.checkFileExists('ARCHITECTURE.md'));
136
+ results.push(await this.checkFileExists('DECISIONS.md'));
137
+ results.push(await this.checkFileExists('STATE.md'));
138
+ return results;
139
+ }
140
+ resolveCommand(check, artifacts) {
141
+ if (!check.name.toLowerCase().includes('test')) {
142
+ return check.command;
143
+ }
144
+ const testFiles = artifacts.filter(a => a.match(/\.(test|spec)\.(ts|tsx|js|jsx)$/) ||
145
+ a.startsWith('tests/') ||
146
+ a.startsWith('test/'));
147
+ if (testFiles.length === 0) {
148
+ return check.command;
149
+ }
150
+ if (check.command.includes('vitest') || check.command.includes('npm test')) {
151
+ return `npx vitest run ${testFiles.join(' ')}`;
152
+ }
153
+ if (check.command.includes('pytest')) {
154
+ return `pytest ${testFiles.join(' ')}`;
155
+ }
156
+ return check.command;
157
+ }
158
+ async runLintCheck(name, command) {
159
+ const eslintConfigs = [
160
+ 'eslint.config.js', 'eslint.config.mjs', 'eslint.config.cjs',
161
+ '.eslintrc.js', '.eslintrc.json', '.eslintrc.yml', '.eslintrc',
162
+ ];
163
+ let hasConfig = false;
164
+ for (const cfg of eslintConfigs) {
165
+ try {
166
+ await access(join(this.projectRoot, cfg));
167
+ hasConfig = true;
168
+ break;
169
+ }
170
+ catch { /* not found */ }
171
+ }
172
+ if (command.includes('flake8')) {
173
+ try {
174
+ await access(join(this.projectRoot, '.flake8'));
175
+ hasConfig = true;
176
+ }
177
+ catch {
178
+ try {
179
+ await access(join(this.projectRoot, 'setup.cfg'));
180
+ hasConfig = true;
181
+ }
182
+ catch { /* not found */ }
183
+ }
184
+ }
185
+ if (!hasConfig) {
186
+ return {
187
+ name,
188
+ command,
189
+ passed: true,
190
+ output: 'SKIPPED — lint config not found, skipping check',
191
+ };
192
+ }
193
+ return this.runCommand(name, command);
194
+ }
195
+ runCommand(name, command) {
196
+ const start = Date.now();
197
+ return new Promise((resolve) => {
198
+ exec(command, { cwd: this.projectRoot, timeout: 60_000 }, (error, stdout, stderr) => {
199
+ resolve({
200
+ name,
201
+ command,
202
+ passed: !error,
203
+ output: error
204
+ ? `${stderr || stdout}`.slice(0, 500)
205
+ : `OK (${stdout.split('\n').length} lines)`.slice(0, 200),
206
+ duration: Date.now() - start,
207
+ });
208
+ });
209
+ });
210
+ }
211
+ async checkFileExists(filename) {
212
+ try {
213
+ await access(join(this.projectRoot, filename));
214
+ return { name: `File: ${filename}`, passed: true };
215
+ }
216
+ catch {
217
+ return { name: `File: ${filename}`, passed: false, output: 'Not found' };
218
+ }
219
+ }
220
+ // ── Anti-Scope Check ───────────────────────────────────
221
+ checkAntiScope(agentResult, memory) {
222
+ const violations = [];
223
+ const antiScope = BriefCollector.parseAntiScope(memory.files.mission);
224
+ for (const protectedFile of antiScope.protectedFiles) {
225
+ const touched = agentResult.artifacts.some(a => a === protectedFile || a.endsWith(`/${protectedFile}`));
226
+ if (touched) {
227
+ violations.push({
228
+ type: 'protected-file',
229
+ detail: t().protectedFileViolation(protectedFile),
230
+ file: protectedFile,
231
+ });
232
+ }
233
+ }
234
+ for (const dep of antiScope.forbiddenDeps) {
235
+ const inOutput = agentResult.output.toLowerCase().includes(dep.toLowerCase());
236
+ const inArtifacts = agentResult.artifacts.some(a => a.toLowerCase().includes(dep.toLowerCase()));
237
+ if (inOutput || inArtifacts) {
238
+ violations.push({
239
+ type: 'forbidden-dep',
240
+ detail: t().forbiddenDepViolation(dep),
241
+ });
242
+ }
243
+ }
244
+ for (const bc of antiScope.breakingChanges) {
245
+ if (agentResult.output.toLowerCase().includes(bc.toLowerCase())) {
246
+ violations.push({
247
+ type: 'breaking-change',
248
+ detail: t().breakingChangeViolation(bc),
249
+ });
250
+ }
251
+ }
252
+ return violations;
253
+ }
254
+ // ── Score Computation ──────────────────────────────────
255
+ computeScores(checks, violations, agentResult) {
256
+ const requiredChecks = checks.filter(c => c.command);
257
+ const passedRequired = requiredChecks.filter(c => c.passed).length;
258
+ const totalRequired = requiredChecks.length || 1;
259
+ const quality = passedRequired / totalRequired;
260
+ const violationPenalty = violations.length * 0.3;
261
+ const mission = Math.max(0, agentResult.success ? 1.0 - violationPenalty : 0.2);
262
+ const memoryChecks = checks.filter(c => c.name.startsWith('File:'));
263
+ const memoryOk = memoryChecks.filter(c => c.passed).length;
264
+ const consistency = memoryChecks.length > 0 ? memoryOk / memoryChecks.length : 0.5;
265
+ return { consistency, quality, mission };
266
+ }
267
+ // ── Issue Building ─────────────────────────────────────
268
+ buildIssues(checks, violations) {
269
+ const issues = [];
270
+ for (const check of checks.filter(c => !c.passed)) {
271
+ issues.push({
272
+ severity: check.command ? 'warning' : 'info',
273
+ category: 'architecture-violation',
274
+ description: `Check failed: ${check.name}${check.output ? ' — ' + check.output.slice(0, 100) : ''}`,
275
+ reference: check.command,
276
+ });
277
+ }
278
+ for (const v of violations) {
279
+ issues.push({
280
+ severity: 'critical',
281
+ category: v.type === 'protected-file' ? 'scope-creep' :
282
+ v.type === 'forbidden-dep' ? 'decision-conflict' : 'mission-drift',
283
+ description: v.detail,
284
+ reference: v.file,
285
+ });
286
+ }
287
+ return issues;
288
+ }
289
+ buildFeedback(checks, violations, llmFeedback) {
290
+ const parts = [];
291
+ const passed = checks.filter(c => c.passed).length;
292
+ parts.push(t().checksResult(passed, checks.length));
293
+ if (violations.length > 0) {
294
+ parts.push(t().antiScopeViolation(violations.map(v => v.detail).join('; ')));
295
+ }
296
+ const failed = checks.filter(c => !c.passed && c.command);
297
+ if (failed.length > 0) {
298
+ parts.push(`Failed: ${failed.map(c => c.name).join(', ')}`);
299
+ }
300
+ if (llmFeedback) {
301
+ parts.push(`LLM: ${llmFeedback}`);
302
+ }
303
+ return parts.join('\n');
304
+ }
305
+ // ── LLM Evaluation (optional) ──────────────────────────
306
+ async llmEvaluate(agentResult, memory) {
307
+ if (!this.provider)
308
+ return { issues: [] };
309
+ const response = await this.provider.chat([{
310
+ role: 'user',
311
+ content: `Task: ${agentResult.taskId}\nSuccess: ${agentResult.success}\nOutput: ${agentResult.output.slice(0, 2000)}\nMISSION: ${memory.files.mission.slice(0, 1000)}\n\nBriefly evaluate (2-3 sentences).`,
312
+ }], {
313
+ system: t().evaluatorSystemPrompt,
314
+ maxTokens: 1024,
315
+ });
316
+ return { feedback: response.text.slice(0, 500), issues: [] };
317
+ }
318
+ // ── Threshold Application ──────────────────────────────
319
+ applyThresholds(result) {
320
+ const minScore = Math.min(result.consistencyScore, result.qualityScore, result.missionAlignment);
321
+ const hasCritical = result.issues.some(i => i.severity === 'critical');
322
+ const hasAntiScopeViolation = result.antiScopeViolations.length > 0;
323
+ if (hasCritical || hasAntiScopeViolation || minScore < this.escalationThreshold) {
324
+ result.verdict = 'escalate';
325
+ }
326
+ else if (minScore < 0.7 || result.issues.some(i => i.severity === 'warning')) {
327
+ result.verdict = 'revise';
328
+ }
329
+ else {
330
+ result.verdict = 'accept';
331
+ }
332
+ return result;
333
+ }
334
+ }
335
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/orchestrator/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { Orchestrator } from './orchestrator.js';
2
+ export { Planner } from './planner.js';
3
+ export { Evaluator } from './evaluator.js';
4
+ export { Escalator } from './escalator.js';
5
+ export { DependencyGraph } from './dependency-graph.js';
6
+ export { MilestoneManager } from './milestone-manager.js';
7
+ export { RecoveryManager } from './recovery.js';
8
+ export { IntegrationEvaluator } from './integration-evaluator.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { Orchestrator } from './orchestrator.js';
2
+ export { Planner } from './planner.js';
3
+ export { Evaluator } from './evaluator.js';
4
+ export { Escalator } from './escalator.js';
5
+ export { DependencyGraph } from './dependency-graph.js';
6
+ export { MilestoneManager } from './milestone-manager.js';
7
+ export { RecoveryManager } from './recovery.js';
8
+ export { IntegrationEvaluator } from './integration-evaluator.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Integration Evaluator — Kod Yazıldıktan Sonra Gerçekten Çalışıyor mu Testi
3
+ *
4
+ * HTTP endpoint'leri test eder:
5
+ * 1. Server başlat (npm run dev / node dist/index.js)
6
+ * 2. Hazır olana kadar bekle
7
+ * 3. HTTP istekleri at, response kontrol et
8
+ * 4. Server'ı durdur
9
+ *
10
+ * D013: Evaluator v2 — gerçek kontroller
11
+ * Yeni: Integration test katmanı
12
+ */
13
+ import type { EndpointTest, EndpointTestResult, IntegrationTestResult } from '../types/index.js';
14
+ export declare class IntegrationEvaluator {
15
+ private serverProcess;
16
+ private port;
17
+ private log;
18
+ constructor(port?: number, log?: (message: string) => void);
19
+ /**
20
+ * Server'ı başlat. package.json'dan script çöz.
21
+ * Öncelik: npm start > node dist/index.js > npm run dev
22
+ */
23
+ startServer(projectRoot: string): Promise<boolean>;
24
+ /**
25
+ * Server hazır olana kadar bekle (port polling).
26
+ */
27
+ waitForReady(port?: number, timeout?: number): Promise<boolean>;
28
+ /**
29
+ * Tek bir endpoint'i test et.
30
+ */
31
+ testEndpoint(test: EndpointTest): Promise<EndpointTestResult>;
32
+ /**
33
+ * Server'ı durdur.
34
+ */
35
+ stopServer(): void;
36
+ /**
37
+ * Task açıklamasından otomatik test senaryoları çıkar.
38
+ */
39
+ inferTestsFromTask(taskDescription: string): EndpointTest[];
40
+ /**
41
+ * Tam integration test akışı:
42
+ * 1. Server başlat
43
+ * 2. Hazır olana kadar bekle
44
+ * 3. Testleri çalıştır
45
+ * 4. Server'ı durdur
46
+ * 5. Sonuçları döndür
47
+ */
48
+ runFullTest(projectRoot: string, tests: EndpointTest[]): Promise<IntegrationTestResult>;
49
+ /** package.json'dan start komutu çöz */
50
+ private resolveStartCommand;
51
+ /** Port açık mı kontrol et */
52
+ private checkPort;
53
+ /** HTTP request helper */
54
+ private httpRequest;
55
+ /** Beklenen body'nin gerçek body'de olup olmadığını kontrol et (shallow) */
56
+ private deepIncludes;
57
+ private delay;
58
+ }
59
+ //# sourceMappingURL=integration-evaluator.d.ts.map