@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 @@
1
+ {"version":3,"file":"reverse-engineer.js","sourceRoot":"","sources":["../../../src/agent/tracer/reverse-engineer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Runtime Tracer — Çalışma Zamanı Data Flow İzleme
3
+ *
4
+ * 1. Server başlat (npm run dev / node dist/index.js)
5
+ * 2. Test HTTP request'leri at
6
+ * 3. Request → response arasındaki handler zincirini izle
7
+ * 4. Data flow adımlarını kaydet
8
+ * 5. Gap'leri tespit et (middleware atlanmış, handler bağlanmamış, vs.)
9
+ *
10
+ * İzleme yöntemi:
11
+ * - Instrumented server: dinamik olarak require hook / loader inject
12
+ * - VEYA çıktı analizi: server loglarından flow çıkar
13
+ * - VEYA HTTP probe: request/response pattern'lerinden infer
14
+ *
15
+ * Bu implementasyon HTTP probe + log analizi kullanır (en az invasive).
16
+ */
17
+ import type { RequestTrace, WiringIssue } from '../../types/index.js';
18
+ interface ProbeEndpoint {
19
+ method: string;
20
+ path: string;
21
+ body?: Record<string, unknown>;
22
+ headers?: Record<string, string>;
23
+ description: string;
24
+ }
25
+ export declare class RuntimeTracer {
26
+ private projectRoot;
27
+ private port;
28
+ private serverProcess;
29
+ private serverLogs;
30
+ constructor(projectRoot: string, port?: number);
31
+ /**
32
+ * Server başlat, probe'la, trace topla, server'ı kapat
33
+ */
34
+ trace(customEndpoints?: ProbeEndpoint[]): Promise<{
35
+ traces: RequestTrace[];
36
+ issues: WiringIssue[];
37
+ serverLog: string;
38
+ }>;
39
+ private startServer;
40
+ private stopServer;
41
+ private probeEndpoint;
42
+ private makeRequest;
43
+ private inferDataFlow;
44
+ private analyzeTrace;
45
+ private analyzeServerLogs;
46
+ private detectStartCommand;
47
+ private discoverEndpoints;
48
+ private checkPort;
49
+ private extractCallsFromLogs;
50
+ private extractHandlerChain;
51
+ private guessFileForPath;
52
+ private inferLayer;
53
+ /**
54
+ * Geçici bir trace middleware dosyası oluştur.
55
+ * Server başlatıldığında bu middleware her request'i loglar.
56
+ */
57
+ private injectInstrumentation;
58
+ private removeInstrumentation;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=runtime-tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-tracer.d.ts","sourceRoot":"","sources":["../../../src/agent/tracer/runtime-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAGV,YAAY,EAEZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAiB9B,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAgB;gBAEtB,WAAW,EAAE,MAAM,EAAE,IAAI,SAAO;IAO5C;;OAEG;IACG,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,EAAE,YAAY,EAAE,CAAC;QACvB,MAAM,EAAE,WAAW,EAAE,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;YA0DY,WAAW;YAiDX,UAAU;YAkBV,aAAa;IA+B3B,OAAO,CAAC,WAAW;IAoDnB,OAAO,CAAC,aAAa;IAyDrB,OAAO,CAAC,YAAY;IAgEpB,OAAO,CAAC,iBAAiB;YAkCX,kBAAkB;YAmBlB,iBAAiB;YAiBjB,SAAS;IAQvB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IAalB;;;OAGG;YACW,qBAAqB;YA2BrB,qBAAqB;CAOpC"}
@@ -0,0 +1,484 @@
1
+ /**
2
+ * Runtime Tracer — Çalışma Zamanı Data Flow İzleme
3
+ *
4
+ * 1. Server başlat (npm run dev / node dist/index.js)
5
+ * 2. Test HTTP request'leri at
6
+ * 3. Request → response arasındaki handler zincirini izle
7
+ * 4. Data flow adımlarını kaydet
8
+ * 5. Gap'leri tespit et (middleware atlanmış, handler bağlanmamış, vs.)
9
+ *
10
+ * İzleme yöntemi:
11
+ * - Instrumented server: dinamik olarak require hook / loader inject
12
+ * - VEYA çıktı analizi: server loglarından flow çıkar
13
+ * - VEYA HTTP probe: request/response pattern'lerinden infer
14
+ *
15
+ * Bu implementasyon HTTP probe + log analizi kullanır (en az invasive).
16
+ */
17
+ import { spawn } from 'node:child_process';
18
+ import { readFile, writeFile } from 'node:fs/promises';
19
+ import { join } from 'node:path';
20
+ import http from 'node:http';
21
+ /** Server başlatma timeout (ms) */
22
+ const SERVER_START_TIMEOUT = 15_000;
23
+ /** Her request timeout (ms) */
24
+ const REQUEST_TIMEOUT = 10_000;
25
+ /** Trace edilecek default endpoint'ler */
26
+ const PROBE_ENDPOINTS = [
27
+ { method: 'GET', path: '/', description: 'Root / health check' },
28
+ { method: 'GET', path: '/api', description: 'API root' },
29
+ { method: 'GET', path: '/health', description: 'Health endpoint' },
30
+ { method: 'GET', path: '/todos', description: 'List resource' },
31
+ { method: 'GET', path: '/users', description: 'Users endpoint' },
32
+ { method: 'POST', path: '/auth/register', body: { email: 'trace@test.com', password: 'Test123!', name: 'Tracer' }, description: 'Auth register' },
33
+ { method: 'POST', path: '/auth/login', body: { email: 'trace@test.com', password: 'Test123!' }, description: 'Auth login' },
34
+ ];
35
+ export class RuntimeTracer {
36
+ projectRoot;
37
+ port;
38
+ serverProcess = null;
39
+ serverLogs = [];
40
+ constructor(projectRoot, port = 3000) {
41
+ this.projectRoot = projectRoot;
42
+ this.port = port;
43
+ }
44
+ // ── Public API ─────────────────────────────────────────────
45
+ /**
46
+ * Server başlat, probe'la, trace topla, server'ı kapat
47
+ */
48
+ async trace(customEndpoints) {
49
+ const endpoints = customEndpoints ?? await this.discoverEndpoints();
50
+ const traces = [];
51
+ const issues = [];
52
+ // 1. Instrumentation inject et (opsiyonel — Express middleware)
53
+ const instrumented = await this.injectInstrumentation();
54
+ // 2. Server başlat
55
+ const started = await this.startServer();
56
+ if (!started) {
57
+ issues.push({
58
+ type: 'runtime-gap',
59
+ severity: 'critical',
60
+ file: 'package.json',
61
+ detail: 'Server başlatılamadı — runtime trace yapılamıyor',
62
+ suggestion: 'npm run dev veya npm start komutunun çalıştığını doğrula',
63
+ });
64
+ return { traces, issues, serverLog: this.serverLogs.join('\n') };
65
+ }
66
+ // 3. Her endpoint'i probe et
67
+ for (const endpoint of endpoints) {
68
+ try {
69
+ const trace = await this.probeEndpoint(endpoint);
70
+ traces.push(trace);
71
+ // Gap analizi — bu trace'de sorun var mı?
72
+ const gapIssues = this.analyzeTrace(trace);
73
+ trace.gaps = gapIssues;
74
+ issues.push(...gapIssues);
75
+ }
76
+ catch (error) {
77
+ const msg = error instanceof Error ? error.message : 'Unknown error';
78
+ issues.push({
79
+ type: 'runtime-gap',
80
+ severity: 'warning',
81
+ file: endpoint.path,
82
+ detail: `Endpoint probe başarısız: ${endpoint.method} ${endpoint.path} — ${msg}`,
83
+ suggestion: `Route tanımlı mı? Handler bağlı mı?`,
84
+ });
85
+ }
86
+ }
87
+ // 4. Server loglarından ek flow bilgisi çıkar
88
+ const logInsights = this.analyzeServerLogs();
89
+ issues.push(...logInsights);
90
+ // 5. Server'ı kapat ve temizle
91
+ await this.stopServer();
92
+ if (instrumented) {
93
+ await this.removeInstrumentation();
94
+ }
95
+ return { traces, issues, serverLog: this.serverLogs.join('\n') };
96
+ }
97
+ // ── Server Management ──────────────────────────────────────
98
+ async startServer() {
99
+ // Hangi komutla başlatılacağını belirle
100
+ const startCommand = await this.detectStartCommand();
101
+ if (!startCommand)
102
+ return false;
103
+ return new Promise((resolve) => {
104
+ const [cmd, ...args] = startCommand.split(' ');
105
+ this.serverProcess = spawn(cmd, args, {
106
+ cwd: this.projectRoot,
107
+ env: { ...process.env, PORT: String(this.port), NODE_ENV: 'development' },
108
+ stdio: ['ignore', 'pipe', 'pipe'],
109
+ shell: process.platform === 'win32',
110
+ });
111
+ const timer = setTimeout(() => {
112
+ // Timeout — ama belki server yine de ayakta, port kontrol et
113
+ this.checkPort().then(resolve);
114
+ }, SERVER_START_TIMEOUT);
115
+ this.serverProcess.stdout?.on('data', (data) => {
116
+ const line = data.toString();
117
+ this.serverLogs.push(line);
118
+ // "listening on port" gibi pattern'ler
119
+ if (/listen|ready|started|running/i.test(line)) {
120
+ clearTimeout(timer);
121
+ // Kısa bekle, port açılsın
122
+ setTimeout(() => resolve(true), 500);
123
+ }
124
+ });
125
+ this.serverProcess.stderr?.on('data', (data) => {
126
+ this.serverLogs.push(`[stderr] ${data.toString()}`);
127
+ });
128
+ this.serverProcess.on('error', () => {
129
+ clearTimeout(timer);
130
+ resolve(false);
131
+ });
132
+ this.serverProcess.on('close', (code) => {
133
+ if (code !== 0 && code !== null) {
134
+ clearTimeout(timer);
135
+ resolve(false);
136
+ }
137
+ });
138
+ });
139
+ }
140
+ async stopServer() {
141
+ if (!this.serverProcess)
142
+ return;
143
+ this.serverProcess.kill('SIGTERM');
144
+ await new Promise((resolve) => {
145
+ const timer = setTimeout(() => {
146
+ this.serverProcess?.kill('SIGKILL');
147
+ resolve();
148
+ }, 5000);
149
+ this.serverProcess.on('close', () => {
150
+ clearTimeout(timer);
151
+ resolve();
152
+ });
153
+ });
154
+ this.serverProcess = null;
155
+ }
156
+ // ── Endpoint Probing ───────────────────────────────────────
157
+ async probeEndpoint(endpoint) {
158
+ const startTime = Date.now();
159
+ const traceId = `trace-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
160
+ // Özel trace header ekle — instrumented server bunu loglar
161
+ const headers = {
162
+ 'X-Trace-Id': traceId,
163
+ 'Content-Type': 'application/json',
164
+ ...(endpoint.headers ?? {}),
165
+ };
166
+ const httpEvent = await this.makeRequest(endpoint.method, endpoint.path, endpoint.body, headers);
167
+ // Server loglarından bu request'in handler zincirini çıkar
168
+ const calls = this.extractCallsFromLogs(traceId, startTime);
169
+ const dataFlow = this.inferDataFlow(endpoint, httpEvent, calls);
170
+ return {
171
+ id: traceId,
172
+ httpEvent,
173
+ calls,
174
+ dataFlow,
175
+ gaps: [], // analyze sonra doldurulacak
176
+ };
177
+ }
178
+ makeRequest(method, path, body, headers) {
179
+ const start = Date.now();
180
+ return new Promise((resolve, reject) => {
181
+ const bodyStr = body ? JSON.stringify(body) : undefined;
182
+ const options = {
183
+ hostname: 'localhost',
184
+ port: this.port,
185
+ path,
186
+ method,
187
+ headers: {
188
+ ...headers,
189
+ ...(bodyStr ? { 'Content-Length': Buffer.byteLength(bodyStr) } : {}),
190
+ },
191
+ timeout: REQUEST_TIMEOUT,
192
+ };
193
+ const req = http.request(options, (res) => {
194
+ let data = '';
195
+ res.on('data', (chunk) => { data += chunk; });
196
+ res.on('end', () => {
197
+ resolve({
198
+ timestamp: start,
199
+ method,
200
+ path,
201
+ status: res.statusCode ?? 0,
202
+ requestBody: bodyStr?.slice(0, 500),
203
+ responseBody: data.slice(0, 1000),
204
+ duration: Date.now() - start,
205
+ handlerChain: this.extractHandlerChain(path),
206
+ });
207
+ });
208
+ });
209
+ req.on('error', (err) => reject(err));
210
+ req.on('timeout', () => {
211
+ req.destroy();
212
+ reject(new Error(`Request timeout: ${method} ${path}`));
213
+ });
214
+ if (bodyStr)
215
+ req.write(bodyStr);
216
+ req.end();
217
+ });
218
+ }
219
+ // ── Flow Analysis ──────────────────────────────────────────
220
+ inferDataFlow(endpoint, httpEvent, calls) {
221
+ const steps = [];
222
+ let order = 0;
223
+ // Adım 1: HTTP giriş (controller/route)
224
+ steps.push({
225
+ order: order++,
226
+ layer: 'controller',
227
+ file: this.guessFileForPath(endpoint.path),
228
+ function: `${endpoint.method} ${endpoint.path}`,
229
+ dataIn: endpoint.body ? `JSON(${Object.keys(endpoint.body).join(', ')})` : 'none',
230
+ dataOut: `status ${httpEvent.status}`,
231
+ });
232
+ // Adım 2: Middleware (auth, validation, vs.)
233
+ if (httpEvent.status === 401 || httpEvent.status === 403) {
234
+ steps.push({
235
+ order: order++,
236
+ layer: 'middleware',
237
+ file: 'middleware/auth',
238
+ function: 'authMiddleware',
239
+ dataIn: 'request headers',
240
+ dataOut: `${httpEvent.status} — auth rejected`,
241
+ transform: 'JWT/session verification',
242
+ });
243
+ }
244
+ // Adım 3: Runtime call'lardan flow çıkar
245
+ for (const call of calls) {
246
+ steps.push({
247
+ order: order++,
248
+ layer: this.inferLayer(call.file, call.function),
249
+ file: call.file,
250
+ function: call.function,
251
+ dataIn: call.args?.slice(0, 100),
252
+ dataOut: call.returnType,
253
+ transform: undefined,
254
+ });
255
+ }
256
+ // Son adım: HTTP response
257
+ steps.push({
258
+ order: order++,
259
+ layer: 'controller',
260
+ file: this.guessFileForPath(endpoint.path),
261
+ function: 'response',
262
+ dataIn: 'service result',
263
+ dataOut: `HTTP ${httpEvent.status}, body: ${(httpEvent.responseBody ?? '').slice(0, 100)}`,
264
+ });
265
+ return steps;
266
+ }
267
+ analyzeTrace(trace) {
268
+ const issues = [];
269
+ // 404 → route tanımlı değil
270
+ if (trace.httpEvent.status === 404) {
271
+ issues.push({
272
+ type: 'runtime-gap',
273
+ severity: 'warning',
274
+ file: trace.httpEvent.path,
275
+ detail: `Route bulunamadı: ${trace.httpEvent.method} ${trace.httpEvent.path} → 404`,
276
+ suggestion: 'Route tanımını kontrol et, router middleware\'ini app\'e bağladığından emin ol',
277
+ });
278
+ }
279
+ // 500 → handler patlamış
280
+ if (trace.httpEvent.status >= 500) {
281
+ issues.push({
282
+ type: 'runtime-gap',
283
+ severity: 'critical',
284
+ file: trace.httpEvent.path,
285
+ detail: `Server error: ${trace.httpEvent.method} ${trace.httpEvent.path} → ${trace.httpEvent.status}`,
286
+ suggestion: 'Error handler ve handler fonksiyonunu kontrol et, server loglarını incele',
287
+ });
288
+ }
289
+ // Çok yavaş response (>5s) → muhtemelen beklenen service bağlanmamış
290
+ if (trace.httpEvent.duration > 5000) {
291
+ issues.push({
292
+ type: 'runtime-gap',
293
+ severity: 'warning',
294
+ file: trace.httpEvent.path,
295
+ detail: `Yavaş response: ${trace.httpEvent.method} ${trace.httpEvent.path} → ${trace.httpEvent.duration}ms`,
296
+ suggestion: 'DB bağlantısı, external service veya unresolved promise olabilir',
297
+ });
298
+ }
299
+ // Boş response body (beklenmedik)
300
+ if (trace.httpEvent.status === 200 && !trace.httpEvent.responseBody?.trim()) {
301
+ issues.push({
302
+ type: 'runtime-gap',
303
+ severity: 'info',
304
+ file: trace.httpEvent.path,
305
+ detail: `Boş response body: ${trace.httpEvent.method} ${trace.httpEvent.path}`,
306
+ suggestion: 'Handler response gönderiyor mu? res.json() veya res.send() çağrılmış mı?',
307
+ });
308
+ }
309
+ // Data flow gap: controller var ama service yok
310
+ const layers = new Set(trace.dataFlow.map(s => s.layer));
311
+ if (layers.has('controller') && !layers.has('service') && trace.httpEvent.status < 400) {
312
+ issues.push({
313
+ type: 'runtime-gap',
314
+ severity: 'info',
315
+ file: trace.httpEvent.path,
316
+ detail: `Controller direkt response dönüyor, service katmanı yok: ${trace.httpEvent.method} ${trace.httpEvent.path}`,
317
+ suggestion: 'Business logic\'i bir service\'e ayırmak ileride test edilebilirliği artırır',
318
+ });
319
+ }
320
+ return issues;
321
+ }
322
+ // ── Server Log Analysis ────────────────────────────────────
323
+ analyzeServerLogs() {
324
+ const issues = [];
325
+ const logText = this.serverLogs.join('\n').toLowerCase();
326
+ // Tipik hata pattern'leri
327
+ const errorPatterns = [
328
+ { pattern: /cannot find module ['"]([^'"]+)['"]/i, detail: 'Module bulunamadı: $1', severity: 'critical' },
329
+ { pattern: /is not a function/i, detail: 'Fonksiyon bulunamadı — yanlış import veya undefined inject', severity: 'critical' },
330
+ { pattern: /is not defined/i, detail: 'Tanımsız değişken — wiring eksik olabilir', severity: 'critical' },
331
+ { pattern: /eaddrinuse/i, detail: 'Port zaten kullanımda', severity: 'warning' },
332
+ { pattern: /econnrefused/i, detail: 'Bağlantı reddedildi — external service ayakta mı?', severity: 'warning' },
333
+ { pattern: /unhandled.*rejection/i, detail: 'Yakalanmamış async hata — promise chain kırık', severity: 'warning' },
334
+ { pattern: /deprecat/i, detail: 'Deprecated API kullanımı tespit edildi', severity: 'info' },
335
+ ];
336
+ for (const { pattern, detail, severity } of errorPatterns) {
337
+ const match = logText.match(pattern);
338
+ if (match) {
339
+ const resolvedDetail = detail.replace('$1', match[1] ?? '');
340
+ issues.push({
341
+ type: 'runtime-gap',
342
+ severity,
343
+ file: 'server-log',
344
+ detail: `[Runtime] ${resolvedDetail}`,
345
+ suggestion: 'Server loglarını incele ve ilgili modülün doğru bağlandığından emin ol',
346
+ });
347
+ }
348
+ }
349
+ return issues;
350
+ }
351
+ // ── Helpers ────────────────────────────────────────────────
352
+ async detectStartCommand() {
353
+ try {
354
+ const pkg = JSON.parse(await readFile(join(this.projectRoot, 'package.json'), 'utf-8'));
355
+ const scripts = pkg.scripts ?? {};
356
+ // Öncelik: dev → start → custom
357
+ if (scripts.dev)
358
+ return `npm run dev`;
359
+ if (scripts.start)
360
+ return `npm start`;
361
+ if (scripts['serve'])
362
+ return `npm run serve`;
363
+ // Fallback: main field
364
+ if (pkg.main)
365
+ return `node ${pkg.main}`;
366
+ return null;
367
+ }
368
+ catch {
369
+ return null;
370
+ }
371
+ }
372
+ async discoverEndpoints() {
373
+ // Route dosyalarından endpoint keşfi
374
+ const endpoints = [...PROBE_ENDPOINTS];
375
+ try {
376
+ const pkg = JSON.parse(await readFile(join(this.projectRoot, 'package.json'), 'utf-8'));
377
+ const hasExpress = !!(pkg.dependencies?.express || pkg.devDependencies?.express);
378
+ if (hasExpress) {
379
+ // Express projesi — src/routes/ veya src/api/ altında route dosyaları ara
380
+ // TODO: daha akıllı route discovery
381
+ }
382
+ }
383
+ catch { /* ignore */ }
384
+ return endpoints;
385
+ }
386
+ async checkPort() {
387
+ return new Promise((resolve) => {
388
+ const req = http.get(`http://localhost:${this.port}/`, () => resolve(true));
389
+ req.on('error', () => resolve(false));
390
+ req.setTimeout(2000, () => { req.destroy(); resolve(false); });
391
+ });
392
+ }
393
+ extractCallsFromLogs(traceId, startTime) {
394
+ const calls = [];
395
+ // X-Trace-Id header'ını loglayan instrumented middleware varsa
396
+ for (const log of this.serverLogs) {
397
+ if (log.includes(traceId)) {
398
+ // [trace-xxx] handler: functionName (file.ts) 10ms
399
+ const match = log.match(/\[.*\]\s*(\w+):\s*(\w+)\s*\(([^)]+)\)\s*(\d+)ms/);
400
+ if (match) {
401
+ calls.push({
402
+ timestamp: startTime,
403
+ file: match[3],
404
+ function: match[2],
405
+ duration: parseInt(match[4], 10),
406
+ });
407
+ }
408
+ }
409
+ }
410
+ return calls;
411
+ }
412
+ extractHandlerChain(path) {
413
+ // Server loglarından bu path'e hangi handler'ların yanıt verdiğini çıkar
414
+ const chain = [];
415
+ for (const log of this.serverLogs) {
416
+ if (log.includes(path) && /handler|middleware|route/i.test(log)) {
417
+ const match = log.match(/(\w+(?:Handler|Middleware|Router))/);
418
+ if (match)
419
+ chain.push(match[1]);
420
+ }
421
+ }
422
+ return chain.length > 0 ? chain : ['unknown-handler'];
423
+ }
424
+ guessFileForPath(urlPath) {
425
+ // /auth/login → src/routes/auth.ts veya src/controllers/auth.ts
426
+ const segment = urlPath.split('/').filter(s => s.length > 0)[0] ?? 'index';
427
+ return `src/routes/${segment}.ts`;
428
+ }
429
+ inferLayer(file, fn) {
430
+ const lower = (file + fn).toLowerCase();
431
+ if (lower.includes('controller') || lower.includes('route') || lower.includes('handler'))
432
+ return 'controller';
433
+ if (lower.includes('middleware') || lower.includes('guard') || lower.includes('auth'))
434
+ return 'middleware';
435
+ if (lower.includes('service') || lower.includes('usecase'))
436
+ return 'service';
437
+ if (lower.includes('repo') || lower.includes('dal') || lower.includes('db'))
438
+ return 'repository';
439
+ if (lower.includes('model') || lower.includes('entity') || lower.includes('schema'))
440
+ return 'model';
441
+ if (lower.includes('util') || lower.includes('helper') || lower.includes('lib'))
442
+ return 'util';
443
+ return 'service';
444
+ }
445
+ // ── Instrumentation (Express middleware injection) ──────────
446
+ /**
447
+ * Geçici bir trace middleware dosyası oluştur.
448
+ * Server başlatıldığında bu middleware her request'i loglar.
449
+ */
450
+ async injectInstrumentation() {
451
+ const instrumentPath = join(this.projectRoot, '__pc_trace_middleware.js');
452
+ const middleware = `
453
+ // Auto-generated by Project Consciousness Tracer — silmek güvenlidir
454
+ const TRACE_HEADER = 'x-trace-id';
455
+ module.exports = function pcTraceMiddleware(req, res, next) {
456
+ const traceId = req.headers[TRACE_HEADER] || 'no-trace';
457
+ const start = Date.now();
458
+ const originalEnd = res.end;
459
+ res.end = function(...args) {
460
+ const duration = Date.now() - start;
461
+ console.log('[' + traceId + '] ' + req.method + ' ' + req.path + ' → ' + res.statusCode + ' (' + duration + 'ms)');
462
+ return originalEnd.apply(this, args);
463
+ };
464
+ next();
465
+ };
466
+ `;
467
+ try {
468
+ await writeFile(instrumentPath, middleware, 'utf-8');
469
+ return true;
470
+ }
471
+ catch {
472
+ return false;
473
+ }
474
+ }
475
+ async removeInstrumentation() {
476
+ const instrumentPath = join(this.projectRoot, '__pc_trace_middleware.js');
477
+ try {
478
+ const { rm } = await import('node:fs/promises');
479
+ await rm(instrumentPath, { force: true });
480
+ }
481
+ catch { /* sessizce geç */ }
482
+ }
483
+ }
484
+ //# sourceMappingURL=runtime-tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-tracer.js","sourceRoot":"","sources":["../../../src/agent/tracer/runtime-tracer.ts"],"names":[],"mappings":"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"}