@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
+ * Context Builder — Memory-Aware Prompt Oluşturma
3
+ *
4
+ * Her agent'a gönderilen prompt, 4 hafıza dosyasının tam bağlamını içerir.
5
+ * Agent tipi ve task'a göre prompt özelleştirilir.
6
+ *
7
+ * Tasarım İlkesi #1: Memory-First — her karar hafızada iz bırakır.
8
+ */
9
+ import { CodebaseReader } from './codebase-reader.js';
10
+ import { t } from '../i18n/index.js';
11
+ /** Agent type → i18n persona key */
12
+ function getPersona(agentType) {
13
+ const locale = t();
14
+ switch (agentType) {
15
+ case 'coder': return locale.coderPersona;
16
+ case 'reviewer': return locale.reviewerPersona;
17
+ case 'tester': return locale.testerPersona;
18
+ case 'documenter': return locale.documenterPersona;
19
+ default: return locale.coderPersona;
20
+ }
21
+ }
22
+ export class ContextBuilder {
23
+ codebaseReader;
24
+ constructor() {
25
+ this.codebaseReader = new CodebaseReader();
26
+ }
27
+ /**
28
+ * Agent için tam prompt oluştur.
29
+ * Yapı: Persona + Memory Context + Codebase Context + Task Detail + Output Format
30
+ */
31
+ buildPrompt(task, memory, agent, codebaseContext) {
32
+ const persona = getPersona(agent.type);
33
+ const memoryContext = this.buildMemoryContext(memory);
34
+ const taskDetail = this.buildTaskDetail(task);
35
+ const outputFormat = this.buildOutputFormat(task);
36
+ const locale = t();
37
+ let codebaseSection = '';
38
+ if (codebaseContext && codebaseContext.files.length > 0) {
39
+ codebaseSection = `
40
+ ═══════════════════════════════════════════════════
41
+ CODEBASE
42
+ ═══════════════════════════════════════════════════
43
+
44
+ ${codebaseContext.summary}
45
+ ${codebaseContext.truncated ? '\n⚠️ Some files truncated due to token limit.' : ''}
46
+ `;
47
+ }
48
+ return `${persona}
49
+
50
+ ═══════════════════════════════════════════════════
51
+ ${locale.memoryContextTitle}
52
+ ═══════════════════════════════════════════════════
53
+
54
+ ${memoryContext}
55
+ ${codebaseSection}
56
+ ═══════════════════════════════════════════════════
57
+ ${locale.taskSection}
58
+ ═══════════════════════════════════════════════════
59
+
60
+ ${taskDetail}
61
+
62
+ ═══════════════════════════════════════════════════
63
+ ${locale.outputFormatSection}
64
+ ═══════════════════════════════════════════════════
65
+
66
+ ${outputFormat}
67
+ `;
68
+ }
69
+ /**
70
+ * Codebase context oluştur — task'a göre ilgili dosyaları bul ve özetle.
71
+ * AgentRunner veya Orchestrator tarafından çağrılır, sonuç buildPrompt'a geçirilir.
72
+ */
73
+ async buildCodebaseContext(projectRoot, taskDescription, architecture) {
74
+ const structure = await this.codebaseReader.scanProject(projectRoot);
75
+ const relevantFiles = this.codebaseReader.getRelevantFiles(taskDescription, structure, architecture);
76
+ return this.codebaseReader.buildContextSummary(relevantFiles, projectRoot);
77
+ }
78
+ /**
79
+ * Hafıza bağlamını oluştur.
80
+ * Otomatik: 20K altı → tam, üstü → compact.
81
+ * MemoryLayer.optimizedSnapshot() ile geliyorsa zaten sıkıştırılmış.
82
+ */
83
+ buildMemoryContext(memory) {
84
+ const locale = t();
85
+ const sections = [
86
+ this.section(locale.missionLabel, memory.files.mission),
87
+ this.section(locale.architectureLabel, memory.files.architecture),
88
+ this.section(locale.decisionsLabel, memory.files.decisions),
89
+ this.section(locale.stateLabel, memory.files.state),
90
+ ];
91
+ const full = sections.join('\n\n');
92
+ // Token limiti aşılıyorsa (yaklaşık 30K karakter ~ 8K token), özetle
93
+ if (full.length > 30_000) {
94
+ return this.buildCompactMemoryContext(memory);
95
+ }
96
+ return full;
97
+ }
98
+ /**
99
+ * Kompakt hafıza — çok büyük projeler için özet versiyonu
100
+ */
101
+ buildCompactMemoryContext(memory) {
102
+ // Mission tam kalır (kısa ve kritik)
103
+ const mission = this.section('MISSION (TAM)', memory.files.mission);
104
+ // Architecture'dan sadece ilkeleri al
105
+ const archPrinciples = this.extractSection(memory.files.architecture, '## Tasarım İlkeleri');
106
+ const arch = this.section('ARCHITECTURE (İlkeler)', archPrinciples || 'Bkz. ARCHITECTURE.md');
107
+ // Decisions'dan son 5 kararı al
108
+ const recentDecisions = this.extractRecentDecisions(memory.files.decisions, 5);
109
+ const decisions = this.section('DECISIONS (Son 5)', recentDecisions);
110
+ // State tam kalır (kısa)
111
+ const state = this.section('STATE (TAM)', memory.files.state);
112
+ return [mission, arch, decisions, state].join('\n\n');
113
+ }
114
+ buildTaskDetail(task) {
115
+ return `### ${task.id}: ${task.title}
116
+
117
+ **Açıklama**: ${task.description}
118
+
119
+ **Tip**: ${task.type}
120
+ **Öncelik**: ${task.priority}
121
+ **Karmaşıklık**: ${task.estimatedComplexity}
122
+
123
+ **Bağımlılıklar**: ${task.dependencies.length > 0 ? task.dependencies.join(', ') : 'Yok'}
124
+
125
+ **Kabul Kriterleri**:
126
+ ${task.acceptanceCriteria.map((c, i) => `${i + 1}. ${c}`).join('\n')}
127
+
128
+ ⚠️ ${t().scopeWarning}`;
129
+ }
130
+ buildOutputFormat(task) {
131
+ return `Çıktını şu yapıda ver:
132
+
133
+ ## Sonuç
134
+ [BAŞARILI / BAŞARISIZ / KISMI]
135
+
136
+ ## Yapılanlar
137
+ - Madde madde ne yaptın
138
+
139
+ ## Oluşturulan/Değiştirilen Dosyalar
140
+ - dosya/yolu.ts — ne değişti
141
+
142
+ ## Kabul Kriterleri Kontrolü
143
+ ${task.acceptanceCriteria.map((c, i) => `- [ ] ${i + 1}. ${c}`).join('\n')}
144
+
145
+ ## Notlar
146
+ Varsa ek notlar, uyarılar, öneriler`;
147
+ }
148
+ // ── Helpers ─────────────────────────────────────────────
149
+ section(title, content) {
150
+ return `### ${title}\n\n${content}`;
151
+ }
152
+ extractSection(content, heading) {
153
+ const regex = new RegExp(`${heading.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\n([\\s\\S]*?)(?=\\n## |$)`);
154
+ const match = content.match(regex);
155
+ return match?.[1]?.trim() ?? null;
156
+ }
157
+ extractRecentDecisions(content, count) {
158
+ const decisions = content.split(/(?=## D\d{3})/).filter(d => d.startsWith('## D'));
159
+ const recent = decisions.slice(-count);
160
+ return recent.join('\n---\n');
161
+ }
162
+ }
163
+ //# sourceMappingURL=context-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/agent/context-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export { AgentRunner } from './agent-runner.js';
2
+ export type { AgentRunnerConfig } from './agent-runner.js';
3
+ export { ProcessSpawner } from './process-spawner.js';
4
+ export { ContextBuilder } from './context-builder.js';
5
+ export { OutputParser } from './output-parser.js';
6
+ export { ArchitectAgent } from './architect.js';
7
+ export { CodebaseReader } from './codebase-reader.js';
8
+ export { TracerAgent } from './tracer/index.js';
9
+ export type { TracerConfig } from './tracer/index.js';
10
+ export { StaticAnalyzer } from './tracer/index.js';
11
+ export { SemanticAnalyzer } from './tracer/index.js';
12
+ export { RuntimeTracer } from './tracer/index.js';
13
+ export { ReverseEngineer } from './tracer/index.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { AgentRunner } from './agent-runner.js';
2
+ export { ProcessSpawner } from './process-spawner.js';
3
+ export { ContextBuilder } from './context-builder.js';
4
+ export { OutputParser } from './output-parser.js';
5
+ export { ArchitectAgent } from './architect.js';
6
+ export { CodebaseReader } from './codebase-reader.js';
7
+ export { TracerAgent } from './tracer/index.js';
8
+ export { StaticAnalyzer } from './tracer/index.js';
9
+ export { SemanticAnalyzer } from './tracer/index.js';
10
+ export { RuntimeTracer } from './tracer/index.js';
11
+ export { ReverseEngineer } from './tracer/index.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Output Parser — Agent Çıktısını Yapısal Parse Etme
3
+ *
4
+ * Agent'ın markdown çıktısını AgentResult'a dönüştürür.
5
+ * Structured output beklenir ama best-effort parse yapar.
6
+ */
7
+ import type { AgentResult } from '../types/index.js';
8
+ export declare class OutputParser {
9
+ /**
10
+ * Agent stdout'unu AgentResult'a dönüştür
11
+ */
12
+ parse(taskId: string, agentId: string, stdout: string, stderr: string, exitCode: number, duration: number): AgentResult;
13
+ /**
14
+ * Markdown yapısında çıktıyı parse et
15
+ */
16
+ private parseStructuredOutput;
17
+ private extractStatus;
18
+ private extractActions;
19
+ private extractArtifacts;
20
+ private extractCriteriaChecks;
21
+ private extractNotes;
22
+ private getSection;
23
+ private scanForFilePaths;
24
+ private formatOutput;
25
+ private formatFailureOutput;
26
+ }
27
+ //# sourceMappingURL=output-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-parser.d.ts","sourceRoot":"","sources":["../../src/agent/output-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,qBAAa,YAAY;IACvB;;OAEG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,WAAW;IAyBd;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,mBAAmB;CAY5B"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Output Parser — Agent Çıktısını Yapısal Parse Etme
3
+ *
4
+ * Agent'ın markdown çıktısını AgentResult'a dönüştürür.
5
+ * Structured output beklenir ama best-effort parse yapar.
6
+ */
7
+ export class OutputParser {
8
+ /**
9
+ * Agent stdout'unu AgentResult'a dönüştür
10
+ */
11
+ parse(taskId, agentId, stdout, stderr, exitCode, duration) {
12
+ // Exit code != 0 ise doğrudan failure
13
+ if (exitCode !== 0) {
14
+ return {
15
+ taskId,
16
+ agentId,
17
+ success: false,
18
+ output: this.formatFailureOutput(stdout, stderr, exitCode),
19
+ artifacts: [],
20
+ duration,
21
+ };
22
+ }
23
+ const parsed = this.parseStructuredOutput(stdout);
24
+ return {
25
+ taskId,
26
+ agentId,
27
+ success: parsed.status !== 'failure',
28
+ output: this.formatOutput(parsed),
29
+ artifacts: parsed.artifacts,
30
+ duration,
31
+ };
32
+ }
33
+ /**
34
+ * Markdown yapısında çıktıyı parse et
35
+ */
36
+ parseStructuredOutput(raw) {
37
+ return {
38
+ status: this.extractStatus(raw),
39
+ actions: this.extractActions(raw),
40
+ artifacts: this.extractArtifacts(raw),
41
+ criteriaChecks: this.extractCriteriaChecks(raw),
42
+ notes: this.extractNotes(raw),
43
+ rawOutput: raw,
44
+ };
45
+ }
46
+ extractStatus(raw) {
47
+ const statusLine = raw.match(/## Sonuç\s*\n\s*\[?(BAŞARILI|BAŞARISIZ|KISMI)\]?/i);
48
+ if (statusLine) {
49
+ const s = statusLine[1].toUpperCase();
50
+ if (s === 'BAŞARILI')
51
+ return 'success';
52
+ if (s === 'BAŞARISIZ')
53
+ return 'failure';
54
+ if (s === 'KISMI')
55
+ return 'partial';
56
+ }
57
+ // Fallback: heuristic
58
+ const lower = raw.toLowerCase();
59
+ if (lower.includes('error') || lower.includes('failed') || lower.includes('hata')) {
60
+ return 'failure';
61
+ }
62
+ if (lower.includes('partial') || lower.includes('kısmen')) {
63
+ return 'partial';
64
+ }
65
+ return 'success';
66
+ }
67
+ extractActions(raw) {
68
+ const section = this.getSection(raw, 'Yapılanlar');
69
+ if (!section)
70
+ return [];
71
+ return section
72
+ .split('\n')
73
+ .map(line => line.replace(/^[-*]\s*/, '').trim())
74
+ .filter(line => line.length > 0);
75
+ }
76
+ extractArtifacts(raw) {
77
+ const section = this.getSection(raw, 'Oluşturulan/Değiştirilen Dosyalar')
78
+ ?? this.getSection(raw, 'Dosyalar');
79
+ if (!section) {
80
+ // Fallback: dosya yolu pattern'lerini tara
81
+ return this.scanForFilePaths(raw);
82
+ }
83
+ return section
84
+ .split('\n')
85
+ .map(line => {
86
+ // "- dosya/yolu.ts — açıklama" formatından path çıkar
87
+ const match = line.match(/^[-*]\s*`?([^\s`—]+\.\w+)`?/);
88
+ return match?.[1] ?? '';
89
+ })
90
+ .filter(path => path.length > 0);
91
+ }
92
+ extractCriteriaChecks(raw) {
93
+ const section = this.getSection(raw, 'Kabul Kriterleri Kontrolü')
94
+ ?? this.getSection(raw, 'Kabul Kriterleri');
95
+ if (!section)
96
+ return [];
97
+ return section
98
+ .split('\n')
99
+ .filter(line => /^[-*]\s*\[[ x]\]/.test(line))
100
+ .map(line => ({
101
+ criterion: line.replace(/^[-*]\s*\[[ x]\]\s*\d*\.?\s*/, '').trim(),
102
+ passed: line.includes('[x]') || line.includes('[X]'),
103
+ }));
104
+ }
105
+ extractNotes(raw) {
106
+ const section = this.getSection(raw, 'Notlar');
107
+ return section ?? '';
108
+ }
109
+ // ── Helpers ─────────────────────────────────────────────
110
+ getSection(raw, heading) {
111
+ // ## Heading veya ### Heading
112
+ const escapedHeading = heading.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
113
+ const regex = new RegExp(`#{2,3}\\s*${escapedHeading}\\s*\\n([\\s\\S]*?)(?=\\n#{2,3}\\s|$)`);
114
+ const match = raw.match(regex);
115
+ return match?.[1]?.trim() ?? null;
116
+ }
117
+ scanForFilePaths(raw) {
118
+ // src/xxx.ts, tests/xxx.test.ts gibi pattern'leri bul
119
+ const matches = raw.match(/(?:^|\s)((?:src|tests?|lib|dist)\/[\w/.-]+\.\w+)/gm);
120
+ if (!matches)
121
+ return [];
122
+ return [...new Set(matches.map(m => m.trim()))];
123
+ }
124
+ formatOutput(parsed) {
125
+ const parts = [];
126
+ parts.push(`Status: ${parsed.status}`);
127
+ if (parsed.actions.length > 0) {
128
+ parts.push(`Actions:\n${parsed.actions.map(a => ` - ${a}`).join('\n')}`);
129
+ }
130
+ if (parsed.artifacts.length > 0) {
131
+ parts.push(`Artifacts: ${parsed.artifacts.join(', ')}`);
132
+ }
133
+ if (parsed.criteriaChecks.length > 0) {
134
+ const passed = parsed.criteriaChecks.filter(c => c.passed).length;
135
+ const total = parsed.criteriaChecks.length;
136
+ parts.push(`Criteria: ${passed}/${total} passed`);
137
+ }
138
+ if (parsed.notes) {
139
+ parts.push(`Notes: ${parsed.notes.slice(0, 200)}`);
140
+ }
141
+ return parts.join('\n');
142
+ }
143
+ formatFailureOutput(stdout, stderr, exitCode) {
144
+ const parts = [`Exit code: ${exitCode}`];
145
+ if (stderr) {
146
+ parts.push(`Stderr: ${stderr.slice(0, 500)}`);
147
+ }
148
+ if (stdout) {
149
+ parts.push(`Stdout (last 500): ${stdout.slice(-500)}`);
150
+ }
151
+ return parts.join('\n');
152
+ }
153
+ }
154
+ //# sourceMappingURL=output-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-parser.js","sourceRoot":"","sources":["../../src/agent/output-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Process Spawner — Claude CLI Child Process Yönetimi
3
+ *
4
+ * Claude Code binary'sini spawn eder, prompt'u stdin pipe ile gönderir,
5
+ * stdout/stderr toplar, timeout yönetir.
6
+ *
7
+ * Karar D004: Agent'lar Claude Code ile çalışır.
8
+ * Karar D008: --print modu yeterli.
9
+ * Karar D009: Uzun prompt'lar stdin pipe ile gönderilir (Windows cmd limit).
10
+ */
11
+ export interface SpawnOptions {
12
+ /** Prompt to send to claude CLI */
13
+ prompt: string;
14
+ /** Working directory for the agent */
15
+ cwd: string;
16
+ /** Timeout in milliseconds (default: 120_000) */
17
+ timeout?: number;
18
+ /** Claude CLI binary path (default: 'claude') */
19
+ binaryPath?: string;
20
+ /** Additional CLI flags */
21
+ flags?: string[];
22
+ /** Environment variables to inject */
23
+ env?: Record<string, string>;
24
+ }
25
+ export interface ProcessResult {
26
+ exitCode: number;
27
+ stdout: string;
28
+ stderr: string;
29
+ duration: number;
30
+ timedOut: boolean;
31
+ }
32
+ export declare class ProcessSpawner {
33
+ private defaultBinary;
34
+ private defaultTimeout;
35
+ constructor(binaryPath?: string, timeout?: number);
36
+ /**
37
+ * Claude CLI'ı --print modunda spawn et.
38
+ * Kısa prompt → args ile, uzun prompt → stdin pipe ile.
39
+ */
40
+ spawn(options: SpawnOptions): Promise<ProcessResult>;
41
+ /**
42
+ * Uzun prompt'lar için: stdin pipe ile gönder.
43
+ * claude --print -p "read from stdin" < prompt
44
+ */
45
+ private spawnWithStdin;
46
+ /**
47
+ * Sağlık kontrolü — claude binary erişilebilir mi?
48
+ */
49
+ healthCheck(): Promise<{
50
+ available: boolean;
51
+ version?: string;
52
+ error?: string;
53
+ }>;
54
+ private runProcess;
55
+ }
56
+ //# sourceMappingURL=process-spawner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-spawner.d.ts","sourceRoot":"","sources":["../../src/agent/process-spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAQD,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;gBAEnB,UAAU,SAAW,EAAE,OAAO,SAAU;IAKpD;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAqC1D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BtF,OAAO,CAAC,UAAU;CA8CnB"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Process Spawner — Claude CLI Child Process Yönetimi
3
+ *
4
+ * Claude Code binary'sini spawn eder, prompt'u stdin pipe ile gönderir,
5
+ * stdout/stderr toplar, timeout yönetir.
6
+ *
7
+ * Karar D004: Agent'lar Claude Code ile çalışır.
8
+ * Karar D008: --print modu yeterli.
9
+ * Karar D009: Uzun prompt'lar stdin pipe ile gönderilir (Windows cmd limit).
10
+ */
11
+ import { spawn } from 'node:child_process';
12
+ /**
13
+ * Windows cmd.exe arg limit: ~8191 chars.
14
+ * Prompt'lar bu limiti aşınca stdin pipe veya temp dosya kullanılmalı.
15
+ */
16
+ const WINDOWS_ARG_LIMIT = 7000; // safety margin
17
+ export class ProcessSpawner {
18
+ defaultBinary;
19
+ defaultTimeout;
20
+ constructor(binaryPath = 'claude', timeout = 120_000) {
21
+ this.defaultBinary = binaryPath;
22
+ this.defaultTimeout = timeout;
23
+ }
24
+ /**
25
+ * Claude CLI'ı --print modunda spawn et.
26
+ * Kısa prompt → args ile, uzun prompt → stdin pipe ile.
27
+ */
28
+ async spawn(options) {
29
+ const { prompt, cwd, timeout = this.defaultTimeout, binaryPath = this.defaultBinary, flags = [], env = {}, } = options;
30
+ const startTime = Date.now();
31
+ const envVars = {
32
+ ...process.env,
33
+ ...env,
34
+ PC_AGENT_DEPTH: String(parseInt(process.env['PC_AGENT_DEPTH'] ?? '0', 10) + 1),
35
+ };
36
+ // Flags varken veya uzun prompt: stdin pipe ile gönder (en güvenli)
37
+ // Args-only sadece flagsiz kısa prompt'larda kullan
38
+ if (flags.length > 0 || prompt.length > WINDOWS_ARG_LIMIT) {
39
+ return this.spawnWithStdin(binaryPath, prompt, flags, cwd, timeout, envVars, startTime);
40
+ }
41
+ // Kısa prompt, flag yok: args ile gönder
42
+ return this.runProcess({
43
+ binary: binaryPath,
44
+ args: ['--print', prompt],
45
+ cwd,
46
+ timeout,
47
+ env: envVars,
48
+ startTime,
49
+ useStdin: false,
50
+ });
51
+ }
52
+ /**
53
+ * Uzun prompt'lar için: stdin pipe ile gönder.
54
+ * claude --print -p "read from stdin" < prompt
55
+ */
56
+ spawnWithStdin(binary, prompt, flags, cwd, timeout, env, startTime) {
57
+ return new Promise((resolve, reject) => {
58
+ let stdout = '';
59
+ let stderr = '';
60
+ let timedOut = false;
61
+ let settled = false;
62
+ // stdin pipe açık, stdout/stderr pipe
63
+ const child = spawn(binary, ['--print', ...flags], {
64
+ cwd,
65
+ env,
66
+ stdio: ['pipe', 'pipe', 'pipe'],
67
+ shell: process.platform === 'win32',
68
+ });
69
+ const timer = setTimeout(() => {
70
+ timedOut = true;
71
+ child.kill('SIGTERM');
72
+ setTimeout(() => { if (!settled)
73
+ child.kill('SIGKILL'); }, 5_000);
74
+ }, timeout);
75
+ child.stdout?.on('data', (data) => { stdout += data.toString(); });
76
+ child.stderr?.on('data', (data) => { stderr += data.toString(); });
77
+ child.on('error', (error) => {
78
+ clearTimeout(timer);
79
+ settled = true;
80
+ reject(new Error(`Failed to spawn ${binary}: ${error.message}`));
81
+ });
82
+ child.on('close', (code) => {
83
+ clearTimeout(timer);
84
+ settled = true;
85
+ resolve({ exitCode: code ?? 1, stdout, stderr, duration: Date.now() - startTime, timedOut });
86
+ });
87
+ // Prompt'u stdin'e yaz ve kapat
88
+ child.stdin?.write(prompt);
89
+ child.stdin?.end();
90
+ });
91
+ }
92
+ /**
93
+ * Sağlık kontrolü — claude binary erişilebilir mi?
94
+ */
95
+ async healthCheck() {
96
+ try {
97
+ const result = await this.runProcess({
98
+ binary: this.defaultBinary,
99
+ args: ['--version'],
100
+ cwd: process.cwd(),
101
+ timeout: 10_000,
102
+ env: process.env,
103
+ startTime: Date.now(),
104
+ useStdin: false,
105
+ });
106
+ if (result.exitCode === 0) {
107
+ return { available: true, version: result.stdout.trim() };
108
+ }
109
+ return { available: false, error: `Exit code: ${result.exitCode}` };
110
+ }
111
+ catch (error) {
112
+ return {
113
+ available: false,
114
+ error: error instanceof Error ? error.message : 'Unknown error'
115
+ };
116
+ }
117
+ }
118
+ // ── Private ─────────────────────────────────────────────
119
+ runProcess(opts) {
120
+ return new Promise((resolve, reject) => {
121
+ const { binary, args, cwd, timeout, env, startTime } = opts;
122
+ let stdout = '';
123
+ let stderr = '';
124
+ let timedOut = false;
125
+ let settled = false;
126
+ const child = spawn(binary, args, {
127
+ cwd,
128
+ env,
129
+ stdio: ['ignore', 'pipe', 'pipe'],
130
+ shell: process.platform === 'win32',
131
+ });
132
+ const timer = setTimeout(() => {
133
+ timedOut = true;
134
+ child.kill('SIGTERM');
135
+ setTimeout(() => { if (!settled)
136
+ child.kill('SIGKILL'); }, 5_000);
137
+ }, timeout);
138
+ child.stdout?.on('data', (data) => { stdout += data.toString(); });
139
+ child.stderr?.on('data', (data) => { stderr += data.toString(); });
140
+ child.on('error', (error) => {
141
+ clearTimeout(timer);
142
+ settled = true;
143
+ reject(new Error(`Failed to spawn ${binary}: ${error.message}`));
144
+ });
145
+ child.on('close', (code) => {
146
+ clearTimeout(timer);
147
+ settled = true;
148
+ resolve({ exitCode: code ?? 1, stdout, stderr, duration: Date.now() - startTime, timedOut });
149
+ });
150
+ });
151
+ }
152
+ }
153
+ //# sourceMappingURL=process-spawner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-spawner.js","sourceRoot":"","sources":["../../src/agent/process-spawner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { TracerAgent } from './tracer-agent.js';
2
+ export type { TracerConfig } from './tracer-agent.js';
3
+ export { StaticAnalyzer } from './static-analyzer.js';
4
+ export { SemanticAnalyzer } from './semantic-analyzer.js';
5
+ export { RuntimeTracer } from './runtime-tracer.js';
6
+ export { ReverseEngineer } from './reverse-engineer.js';
7
+ export type { AuditReport, FileClassification, DataFlowChain, ArchitectureViolation, DecisionAuditResult, ArchLayer, } from './reverse-engineer.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/tracer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,GACV,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { TracerAgent } from './tracer-agent.js';
2
+ export { StaticAnalyzer } from './static-analyzer.js';
3
+ export { SemanticAnalyzer } from './semantic-analyzer.js';
4
+ export { RuntimeTracer } from './runtime-tracer.js';
5
+ export { ReverseEngineer } from './reverse-engineer.js';
6
+ //# sourceMappingURL=index.js.map