@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.
- package/.env.example +8 -0
- package/LICENSE +21 -0
- package/README.md +364 -0
- package/dist/agent/agent-runner.d.ts +48 -0
- package/dist/agent/agent-runner.d.ts.map +1 -0
- package/dist/agent/agent-runner.js +180 -0
- package/dist/agent/agent-runner.js.map +1 -0
- package/dist/agent/architect.d.ts +34 -0
- package/dist/agent/architect.d.ts.map +1 -0
- package/dist/agent/architect.js +156 -0
- package/dist/agent/architect.js.map +1 -0
- package/dist/agent/codebase-reader.d.ts +35 -0
- package/dist/agent/codebase-reader.d.ts.map +1 -0
- package/dist/agent/codebase-reader.js +305 -0
- package/dist/agent/codebase-reader.js.map +1 -0
- package/dist/agent/context-builder.d.ts +39 -0
- package/dist/agent/context-builder.d.ts.map +1 -0
- package/dist/agent/context-builder.js +163 -0
- package/dist/agent/context-builder.js.map +1 -0
- package/dist/agent/index.d.ts +14 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +12 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/output-parser.d.ts +27 -0
- package/dist/agent/output-parser.d.ts.map +1 -0
- package/dist/agent/output-parser.js +154 -0
- package/dist/agent/output-parser.js.map +1 -0
- package/dist/agent/process-spawner.d.ts +56 -0
- package/dist/agent/process-spawner.d.ts.map +1 -0
- package/dist/agent/process-spawner.js +153 -0
- package/dist/agent/process-spawner.js.map +1 -0
- package/dist/agent/tracer/index.d.ts +8 -0
- package/dist/agent/tracer/index.d.ts.map +1 -0
- package/dist/agent/tracer/index.js +6 -0
- package/dist/agent/tracer/index.js.map +1 -0
- package/dist/agent/tracer/reverse-engineer.d.ts +113 -0
- package/dist/agent/tracer/reverse-engineer.d.ts.map +1 -0
- package/dist/agent/tracer/reverse-engineer.js +695 -0
- package/dist/agent/tracer/reverse-engineer.js.map +1 -0
- package/dist/agent/tracer/runtime-tracer.d.ts +61 -0
- package/dist/agent/tracer/runtime-tracer.d.ts.map +1 -0
- package/dist/agent/tracer/runtime-tracer.js +484 -0
- package/dist/agent/tracer/runtime-tracer.js.map +1 -0
- package/dist/agent/tracer/semantic-analyzer.d.ts +24 -0
- package/dist/agent/tracer/semantic-analyzer.d.ts.map +1 -0
- package/dist/agent/tracer/semantic-analyzer.js +132 -0
- package/dist/agent/tracer/semantic-analyzer.js.map +1 -0
- package/dist/agent/tracer/static-analyzer.d.ts +44 -0
- package/dist/agent/tracer/static-analyzer.d.ts.map +1 -0
- package/dist/agent/tracer/static-analyzer.js +453 -0
- package/dist/agent/tracer/static-analyzer.js.map +1 -0
- package/dist/agent/tracer/tracer-agent.d.ts +61 -0
- package/dist/agent/tracer/tracer-agent.d.ts.map +1 -0
- package/dist/agent/tracer/tracer-agent.js +252 -0
- package/dist/agent/tracer/tracer-agent.js.map +1 -0
- package/dist/bin/csns.d.ts +24 -0
- package/dist/bin/csns.d.ts.map +1 -0
- package/dist/bin/csns.js +389 -0
- package/dist/bin/csns.js.map +1 -0
- package/dist/bin/pc.d.ts +13 -0
- package/dist/bin/pc.d.ts.map +1 -0
- package/dist/bin/pc.js +212 -0
- package/dist/bin/pc.js.map +1 -0
- package/dist/brief/brief-collector.d.ts +42 -0
- package/dist/brief/brief-collector.d.ts.map +1 -0
- package/dist/brief/brief-collector.js +228 -0
- package/dist/brief/brief-collector.js.map +1 -0
- package/dist/brief/index.d.ts +3 -0
- package/dist/brief/index.d.ts.map +1 -0
- package/dist/brief/index.js +3 -0
- package/dist/brief/index.js.map +1 -0
- package/dist/brief/smart-brief.d.ts +52 -0
- package/dist/brief/smart-brief.d.ts.map +1 -0
- package/dist/brief/smart-brief.js +440 -0
- package/dist/brief/smart-brief.js.map +1 -0
- package/dist/calculator/calculator.d.ts +7 -0
- package/dist/calculator/calculator.d.ts.map +1 -0
- package/dist/calculator/calculator.js +18 -0
- package/dist/calculator/calculator.js.map +1 -0
- package/dist/calculator/index.d.ts +2 -0
- package/dist/calculator/index.d.ts.map +1 -0
- package/dist/calculator/index.js +2 -0
- package/dist/calculator/index.js.map +1 -0
- package/dist/i18n/en.d.ts +6 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +136 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +31 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +44 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/tr.d.ts +6 -0
- package/dist/i18n/tr.d.ts.map +1 -0
- package/dist/i18n/tr.js +136 -0
- package/dist/i18n/tr.js.map +1 -0
- package/dist/i18n/types.d.ts +86 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +9 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/anthropic-provider.d.ts +18 -0
- package/dist/llm/anthropic-provider.d.ts.map +1 -0
- package/dist/llm/anthropic-provider.js +55 -0
- package/dist/llm/anthropic-provider.js.map +1 -0
- package/dist/llm/factory.d.ts +21 -0
- package/dist/llm/factory.d.ts.map +1 -0
- package/dist/llm/factory.js +59 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +5 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/ollama-provider.d.ts +20 -0
- package/dist/llm/ollama-provider.d.ts.map +1 -0
- package/dist/llm/ollama-provider.js +62 -0
- package/dist/llm/ollama-provider.js.map +1 -0
- package/dist/llm/openai-provider.d.ts +20 -0
- package/dist/llm/openai-provider.d.ts.map +1 -0
- package/dist/llm/openai-provider.js +65 -0
- package/dist/llm/openai-provider.js.map +1 -0
- package/dist/llm/resolve.d.ts +10 -0
- package/dist/llm/resolve.d.ts.map +1 -0
- package/dist/llm/resolve.js +21 -0
- package/dist/llm/resolve.js.map +1 -0
- package/dist/llm/types.d.ts +45 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +11 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-layer.d.ts +54 -0
- package/dist/memory/memory-layer.d.ts.map +1 -0
- package/dist/memory/memory-layer.js +297 -0
- package/dist/memory/memory-layer.js.map +1 -0
- package/dist/orchestrator/dependency-graph.d.ts +39 -0
- package/dist/orchestrator/dependency-graph.d.ts.map +1 -0
- package/dist/orchestrator/dependency-graph.js +134 -0
- package/dist/orchestrator/dependency-graph.js.map +1 -0
- package/dist/orchestrator/escalator.d.ts +42 -0
- package/dist/orchestrator/escalator.d.ts.map +1 -0
- package/dist/orchestrator/escalator.js +163 -0
- package/dist/orchestrator/escalator.js.map +1 -0
- package/dist/orchestrator/evaluator.d.ts +34 -0
- package/dist/orchestrator/evaluator.d.ts.map +1 -0
- package/dist/orchestrator/evaluator.js +335 -0
- package/dist/orchestrator/evaluator.js.map +1 -0
- package/dist/orchestrator/index.d.ts +9 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +9 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/integration-evaluator.d.ts +59 -0
- package/dist/orchestrator/integration-evaluator.d.ts.map +1 -0
- package/dist/orchestrator/integration-evaluator.js +405 -0
- package/dist/orchestrator/integration-evaluator.js.map +1 -0
- package/dist/orchestrator/milestone-manager.d.ts +28 -0
- package/dist/orchestrator/milestone-manager.d.ts.map +1 -0
- package/dist/orchestrator/milestone-manager.js +208 -0
- package/dist/orchestrator/milestone-manager.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +35 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +338 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/planner.d.ts +15 -0
- package/dist/orchestrator/planner.d.ts.map +1 -0
- package/dist/orchestrator/planner.js +87 -0
- package/dist/orchestrator/planner.js.map +1 -0
- package/dist/orchestrator/recovery.d.ts +45 -0
- package/dist/orchestrator/recovery.d.ts.map +1 -0
- package/dist/orchestrator/recovery.js +98 -0
- package/dist/orchestrator/recovery.js.map +1 -0
- package/dist/run-calculator-test.d.ts +11 -0
- package/dist/run-calculator-test.d.ts.map +1 -0
- package/dist/run-calculator-test.js +212 -0
- package/dist/run-calculator-test.js.map +1 -0
- package/dist/run-real-task.d.ts +14 -0
- package/dist/run-real-task.d.ts.map +1 -0
- package/dist/run-real-task.js +185 -0
- package/dist/run-real-task.js.map +1 -0
- package/dist/run-todo-test.d.ts +6 -0
- package/dist/run-todo-test.d.ts.map +1 -0
- package/dist/run-todo-test.js +149 -0
- package/dist/run-todo-test.js.map +1 -0
- package/dist/todo/index.d.ts +2 -0
- package/dist/todo/index.d.ts.map +1 -0
- package/dist/todo/index.js +2 -0
- package/dist/todo/index.js.map +1 -0
- package/dist/todo/server.d.ts +2 -0
- package/dist/todo/server.d.ts.map +1 -0
- package/dist/todo/server.js +32 -0
- package/dist/todo/server.js.map +1 -0
- package/dist/types/index.d.ts +412 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recovery Manager — Crash Recovery
|
|
3
|
+
*
|
|
4
|
+
* Sistem çökerse kaldığı yerden devam et.
|
|
5
|
+
* .pc-checkpoint.json dosyasına checkpoint yazar.
|
|
6
|
+
*
|
|
7
|
+
* Tasarım ilkesi #2: Fail-Safe
|
|
8
|
+
*/
|
|
9
|
+
import { readFile, writeFile, access } from 'node:fs/promises';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
const CHECKPOINT_FILE = '.pc-checkpoint.json';
|
|
12
|
+
export class RecoveryManager {
|
|
13
|
+
checkpointPath;
|
|
14
|
+
_askFn = null;
|
|
15
|
+
constructor(projectRoot) {
|
|
16
|
+
this.checkpointPath = join(projectRoot, CHECKPOINT_FILE);
|
|
17
|
+
}
|
|
18
|
+
/** Test injection */
|
|
19
|
+
setAskFn(fn) {
|
|
20
|
+
this._askFn = fn;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Checkpoint kaydet
|
|
24
|
+
*/
|
|
25
|
+
async saveCheckpoint(checkpoint) {
|
|
26
|
+
await writeFile(this.checkpointPath, JSON.stringify(checkpoint, null, 2), 'utf-8');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Son checkpoint'i oku
|
|
30
|
+
*/
|
|
31
|
+
async loadCheckpoint() {
|
|
32
|
+
try {
|
|
33
|
+
const content = await readFile(this.checkpointPath, 'utf-8');
|
|
34
|
+
return JSON.parse(content);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resume edilebilir checkpoint var mı?
|
|
42
|
+
*/
|
|
43
|
+
async canResume() {
|
|
44
|
+
try {
|
|
45
|
+
await access(this.checkpointPath);
|
|
46
|
+
const checkpoint = await this.loadCheckpoint();
|
|
47
|
+
return checkpoint !== null && checkpoint.milestoneId !== '';
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Checkpoint'i sil (temiz başlangıç veya tamamlanma sonrası)
|
|
55
|
+
*/
|
|
56
|
+
async clearCheckpoint() {
|
|
57
|
+
try {
|
|
58
|
+
const { unlink } = await import('node:fs/promises');
|
|
59
|
+
await unlink(this.checkpointPath);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// dosya yoksa sorun değil
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Kullanıcıya devam etmek isteyip istemediğini sor
|
|
67
|
+
*/
|
|
68
|
+
async promptResume(checkpoint) {
|
|
69
|
+
const msg = `\n📌 Önceki session bulundu:
|
|
70
|
+
Session: ${checkpoint.sessionId}
|
|
71
|
+
Milestone: ${checkpoint.milestoneId}
|
|
72
|
+
Tamamlanan: ${checkpoint.completedMilestones.length} milestone, ${checkpoint.completedTasks.length} task
|
|
73
|
+
Tarih: ${checkpoint.timestamp}
|
|
74
|
+
|
|
75
|
+
Devam edilsin mi? (e/h): `;
|
|
76
|
+
const answer = await this.ask(msg);
|
|
77
|
+
return answer.trim().toLowerCase().startsWith('e');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Hangi milestone'dan devam edileceğini hesapla
|
|
81
|
+
*/
|
|
82
|
+
getResumePoint(checkpoint) {
|
|
83
|
+
return {
|
|
84
|
+
milestoneId: checkpoint.milestoneId,
|
|
85
|
+
completedTasks: new Set(checkpoint.completedTasks),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
ask(prompt) {
|
|
89
|
+
if (this._askFn)
|
|
90
|
+
return this._askFn(prompt);
|
|
91
|
+
return new Promise((resolve) => {
|
|
92
|
+
const { createInterface } = require('node:readline');
|
|
93
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
94
|
+
rl.question(prompt, (answer) => { rl.close(); resolve(answer); });
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/orchestrator/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,OAAO,eAAe;IAClB,cAAc,CAAS;IACvB,MAAM,GAAiD,IAAI,CAAC;IAEpE,YAAY,WAAmB;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,qBAAqB;IACrB,QAAQ,CAAC,EAAuC;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,UAAsB;QACzC,MAAM,SAAS,CACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,WAAW,KAAK,EAAE,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACpD,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAsB;QACvC,MAAM,GAAG,GAAG;aACH,UAAU,CAAC,SAAS;eAClB,UAAU,CAAC,WAAW;gBACrB,UAAU,CAAC,mBAAmB,CAAC,MAAM,eAAe,UAAU,CAAC,cAAc,CAAC,MAAM;WACzF,UAAU,CAAC,SAAS;;4BAEH,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAsB;QACnC,OAAO;YACL,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,cAAc,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;SACnD,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,MAAc;QACxB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entegrasyon Testi: Brief → Agent → Calculator → Evaluator v2
|
|
3
|
+
*
|
|
4
|
+
* 1. BriefCollector.create() ile brief oluştur
|
|
5
|
+
* 2. MISSION.md'ye yaz
|
|
6
|
+
* 3. Agent'a hesap makinesi yaptır
|
|
7
|
+
* 4. Evaluator v2 ile gerçek kontrolleri çalıştır
|
|
8
|
+
* 5. Raporla
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=run-calculator-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-calculator-test.d.ts","sourceRoot":"","sources":["../src/run-calculator-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entegrasyon Testi: Brief → Agent → Calculator → Evaluator v2
|
|
3
|
+
*
|
|
4
|
+
* 1. BriefCollector.create() ile brief oluştur
|
|
5
|
+
* 2. MISSION.md'ye yaz
|
|
6
|
+
* 3. Agent'a hesap makinesi yaptır
|
|
7
|
+
* 4. Evaluator v2 ile gerçek kontrolleri çalıştır
|
|
8
|
+
* 5. Raporla
|
|
9
|
+
*/
|
|
10
|
+
import { MemoryLayer } from './memory/index.js';
|
|
11
|
+
import { BriefCollector } from './brief/index.js';
|
|
12
|
+
import { AgentRunner } from './agent/index.js';
|
|
13
|
+
import { Evaluator } from './orchestrator/evaluator.js';
|
|
14
|
+
const PROJECT_ROOT = process.cwd();
|
|
15
|
+
async function main() {
|
|
16
|
+
console.log('╔═══════════════════════════════════════════════════════════╗');
|
|
17
|
+
console.log('║ ENTEGRASYON TESTİ: Brief → Agent → Calculator → Eval ║');
|
|
18
|
+
console.log('╚═══════════════════════════════════════════════════════════╝\n');
|
|
19
|
+
const memory = new MemoryLayer(PROJECT_ROOT);
|
|
20
|
+
// ═══════════════════════════════════════════════════════
|
|
21
|
+
// STEP 1: Brief oluştur
|
|
22
|
+
// ═══════════════════════════════════════════════════════
|
|
23
|
+
console.log('━━━ STEP 1: Brief Oluştur ━━━');
|
|
24
|
+
const brief = BriefCollector.create({
|
|
25
|
+
whatToBuild: 'Basit bir Node.js CLI hesap makinesi',
|
|
26
|
+
stack: 'typescript-node',
|
|
27
|
+
successCriteria: [
|
|
28
|
+
'npm test geçmeli',
|
|
29
|
+
'Toplama çalışmalı',
|
|
30
|
+
'Çıkarma çalışmalı',
|
|
31
|
+
'Çarpma çalışmalı',
|
|
32
|
+
'Bölme çalışmalı',
|
|
33
|
+
],
|
|
34
|
+
}, {
|
|
35
|
+
protectedFiles: ['MISSION.md', 'ARCHITECTURE.md'],
|
|
36
|
+
lockedDecisions: ['D001 Dosya tabanlı hafıza sistemi'],
|
|
37
|
+
forbiddenDeps: ['lodash'],
|
|
38
|
+
breakingChanges: ['Mevcut testler kırılmasın'],
|
|
39
|
+
});
|
|
40
|
+
console.log(` ✅ Brief oluşturuldu`);
|
|
41
|
+
console.log(` Stack: ${brief.scope.stack}`);
|
|
42
|
+
console.log(` Protected: ${brief.antiScope.protectedFiles.join(', ')}`);
|
|
43
|
+
console.log(` Forbidden: ${brief.antiScope.forbiddenDeps.join(', ')}`);
|
|
44
|
+
// ═══════════════════════════════════════════════════════
|
|
45
|
+
// STEP 2: MISSION.md'ye yaz
|
|
46
|
+
// ═══════════════════════════════════════════════════════
|
|
47
|
+
console.log('\n━━━ STEP 2: MISSION.md Güncelle ━━━');
|
|
48
|
+
const collector = new BriefCollector();
|
|
49
|
+
const missionPath = `${PROJECT_ROOT}/MISSION.md`;
|
|
50
|
+
await collector.writeMission(brief, missionPath);
|
|
51
|
+
// Doğrula
|
|
52
|
+
const missionContent = await memory.readMission();
|
|
53
|
+
console.log(` SCOPE var: ${missionContent.includes('## SCOPE') ? '✅' : '❌'}`);
|
|
54
|
+
console.log(` ANTI-SCOPE var: ${missionContent.includes('## ANTI-SCOPE') ? '✅' : '❌'}`);
|
|
55
|
+
console.log(` SUCCESS CRITERIA var: ${missionContent.includes('## SUCCESS CRITERIA') ? '✅' : '❌'}`);
|
|
56
|
+
console.log(` lodash yasaklı: ${missionContent.includes('lodash') ? '✅' : '❌'}`);
|
|
57
|
+
// ═══════════════════════════════════════════════════════
|
|
58
|
+
// STEP 3: Agent'a hesap makinesi yaptır
|
|
59
|
+
// ═══════════════════════════════════════════════════════
|
|
60
|
+
console.log('\n━━━ STEP 3: Agent — Hesap Makinesi Yaz ━━━');
|
|
61
|
+
const runner = new AgentRunner({
|
|
62
|
+
binaryPath: 'claude.exe',
|
|
63
|
+
workingDirectory: PROJECT_ROOT,
|
|
64
|
+
timeout: 180_000,
|
|
65
|
+
maxDepth: 3,
|
|
66
|
+
log: (msg) => console.log(` ${msg}`),
|
|
67
|
+
});
|
|
68
|
+
const health = await runner.checkHealth();
|
|
69
|
+
console.log(` Agent health: ${health.ready ? '✅' : '❌'} ${health.details}`);
|
|
70
|
+
const snapshot = await memory.snapshot();
|
|
71
|
+
const task = {
|
|
72
|
+
id: 'T-CALC-001',
|
|
73
|
+
title: 'Hesap makinesi yaz',
|
|
74
|
+
description: `src/calculator/ klasörü altında basit bir hesap makinesi modülü oluştur.
|
|
75
|
+
|
|
76
|
+
Dosyalar:
|
|
77
|
+
1. src/calculator/calculator.ts — Calculator class:
|
|
78
|
+
- add(a: number, b: number): number
|
|
79
|
+
- subtract(a: number, b: number): number
|
|
80
|
+
- multiply(a: number, b: number): number
|
|
81
|
+
- divide(a: number, b: number): number (0'a bölme Error fırlatsın)
|
|
82
|
+
|
|
83
|
+
2. src/calculator/index.ts — export
|
|
84
|
+
|
|
85
|
+
3. tests/calculator.test.ts — Vitest testleri:
|
|
86
|
+
- Her operasyon için en az 1 test
|
|
87
|
+
- 0'a bölme testi
|
|
88
|
+
- Negatif sayı testi
|
|
89
|
+
|
|
90
|
+
KURALLAR:
|
|
91
|
+
- lodash veya başka harici kütüphane KULLANMA
|
|
92
|
+
- MISSION.md ve ARCHITECTURE.md dosyalarına DOKUNMA
|
|
93
|
+
- Sadece src/calculator/ ve tests/calculator.test.ts oluştur
|
|
94
|
+
- TypeScript strict uyumlu yaz`,
|
|
95
|
+
type: 'code',
|
|
96
|
+
dependencies: [],
|
|
97
|
+
priority: 'high',
|
|
98
|
+
estimatedComplexity: 'simple',
|
|
99
|
+
acceptanceCriteria: [
|
|
100
|
+
'src/calculator/calculator.ts mevcut ve derleniyor',
|
|
101
|
+
'tests/calculator.test.ts mevcut ve geçiyor',
|
|
102
|
+
'Toplama, çıkarma, çarpma, bölme çalışıyor',
|
|
103
|
+
'0a bölme hata fırlatıyor',
|
|
104
|
+
'lodash kullanılmamış',
|
|
105
|
+
'MISSION.md ve ARCHITECTURE.md değiştirilmemiş',
|
|
106
|
+
],
|
|
107
|
+
};
|
|
108
|
+
console.log(` ⏳ Agent başlatılıyor (task: ${task.id})...\n`);
|
|
109
|
+
const agentResult = await runner.runTask(task, snapshot);
|
|
110
|
+
console.log(`\n ══ Agent Result ══`);
|
|
111
|
+
console.log(` Success: ${agentResult.success}`);
|
|
112
|
+
console.log(` Duration: ${Math.round(agentResult.duration / 1000)}s`);
|
|
113
|
+
console.log(` Artifacts: [${agentResult.artifacts.join(', ')}]`);
|
|
114
|
+
console.log(` Output (first 500):`);
|
|
115
|
+
console.log(` ${agentResult.output.slice(0, 500)}`);
|
|
116
|
+
// ═══════════════════════════════════════════════════════
|
|
117
|
+
// STEP 4: Evaluator v2 çalıştır
|
|
118
|
+
// ═══════════════════════════════════════════════════════
|
|
119
|
+
console.log('\n━━━ STEP 4: Evaluator v2 — Gerçek Kontroller ━━━');
|
|
120
|
+
const evalConfig = {
|
|
121
|
+
projectRoot: PROJECT_ROOT,
|
|
122
|
+
claudeApiKey: '', // LLM yok, sadece gerçek kontroller
|
|
123
|
+
model: 'claude-sonnet-4-20250514',
|
|
124
|
+
maxRetries: 3,
|
|
125
|
+
escalationThreshold: 0.4,
|
|
126
|
+
maxParallelAgents: 3,
|
|
127
|
+
verbose: true,
|
|
128
|
+
};
|
|
129
|
+
const evaluator = new Evaluator(evalConfig);
|
|
130
|
+
// Güncel memory snapshot (agent'ın değişiklikleri yansısın)
|
|
131
|
+
const freshSnapshot = await memory.snapshot();
|
|
132
|
+
// Stack tespiti
|
|
133
|
+
const stack = await evaluator.detectStack(freshSnapshot);
|
|
134
|
+
console.log(` Stack tespit: ${stack}`);
|
|
135
|
+
// Tam değerlendirme
|
|
136
|
+
const evalResult = await evaluator.evaluate(agentResult, freshSnapshot);
|
|
137
|
+
console.log(`\n ══ Evaluation Result ══`);
|
|
138
|
+
console.log(` Verdict: ${evalResult.verdict}`);
|
|
139
|
+
console.log(` Consistency: ${(evalResult.consistencyScore * 100).toFixed(0)}%`);
|
|
140
|
+
console.log(` Quality: ${(evalResult.qualityScore * 100).toFixed(0)}%`);
|
|
141
|
+
console.log(` Mission Alignment: ${(evalResult.missionAlignment * 100).toFixed(0)}%`);
|
|
142
|
+
console.log(` Stack Detected: ${evalResult.stackDetected}`);
|
|
143
|
+
console.log(`\n ── Checks ──`);
|
|
144
|
+
for (const check of evalResult.checks) {
|
|
145
|
+
const icon = check.passed ? '✅' : '❌';
|
|
146
|
+
console.log(` ${icon} ${check.name}${check.duration ? ` (${check.duration}ms)` : ''}`);
|
|
147
|
+
if (!check.passed && check.output) {
|
|
148
|
+
console.log(` → ${check.output.slice(0, 150)}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
console.log(`\n ── Anti-Scope ──`);
|
|
152
|
+
if (evalResult.antiScopeViolations.length === 0) {
|
|
153
|
+
console.log(` ✅ İhlal yok`);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
for (const v of evalResult.antiScopeViolations) {
|
|
157
|
+
console.log(` ❌ [${v.type}] ${v.detail}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
console.log(`\n ── Issues ──`);
|
|
161
|
+
if (evalResult.issues.length === 0) {
|
|
162
|
+
console.log(` ✅ Sorun yok`);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
for (const issue of evalResult.issues) {
|
|
166
|
+
const icon = issue.severity === 'critical' ? '🚨' : issue.severity === 'warning' ? '⚠️' : 'ℹ️';
|
|
167
|
+
console.log(` ${icon} [${issue.category}] ${issue.description}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
console.log(`\n Feedback: ${evalResult.feedback}`);
|
|
171
|
+
// ═══════════════════════════════════════════════════════
|
|
172
|
+
// STEP 5: DECISIONS.md logla
|
|
173
|
+
// ═══════════════════════════════════════════════════════
|
|
174
|
+
console.log('\n━━━ STEP 5: Decision Log ━━━');
|
|
175
|
+
const nextId = await memory.getNextDecisionId();
|
|
176
|
+
const decision = {
|
|
177
|
+
id: nextId,
|
|
178
|
+
title: `Calculator entegrasyon testi — Evaluator v2`,
|
|
179
|
+
date: new Date().toISOString(),
|
|
180
|
+
context: 'Brief→Agent→Calculator→Evaluator tam döngü testi',
|
|
181
|
+
decision: `Verdict: ${evalResult.verdict}. Quality: ${(evalResult.qualityScore * 100).toFixed(0)}%. Checks: ${evalResult.checks.filter(c => c.passed).length}/${evalResult.checks.length}. Anti-scope: ${evalResult.antiScopeViolations.length} ihlal.`,
|
|
182
|
+
rationale: 'Sistemin gerçek bir kod üretim + değerlendirme döngüsünü kanıtlaması',
|
|
183
|
+
alternatives: 'Manuel test (otomasyon kanıtı olmaz)',
|
|
184
|
+
status: 'active',
|
|
185
|
+
};
|
|
186
|
+
await memory.appendDecision(decision);
|
|
187
|
+
console.log(` Karar: ${nextId}`);
|
|
188
|
+
// ═══════════════════════════════════════════════════════
|
|
189
|
+
// FINAL REPORT
|
|
190
|
+
// ═══════════════════════════════════════════════════════
|
|
191
|
+
const checksPass = evalResult.checks.filter(c => c.passed).length;
|
|
192
|
+
const checksTotal = evalResult.checks.length;
|
|
193
|
+
const violations = evalResult.antiScopeViolations.length;
|
|
194
|
+
console.log('\n╔═══════════════════════════════════════════════════════════╗');
|
|
195
|
+
console.log('║ FINAL REPORT ║');
|
|
196
|
+
console.log('╠═══════════════════════════════════════════════════════════╣');
|
|
197
|
+
console.log(`║ Brief oluşturuldu: ✅ ║`);
|
|
198
|
+
console.log(`║ MISSION.md güncellendi: ✅ ║`);
|
|
199
|
+
console.log(`║ Agent çalıştı: ${agentResult.success ? '✅' : '❌'} (${Math.round(agentResult.duration / 1000)}s) ║`);
|
|
200
|
+
console.log(`║ Evaluator verdict: ${evalResult.verdict.toUpperCase().padEnd(10)} ║`);
|
|
201
|
+
console.log(`║ Checks: ${checksPass}/${checksTotal} passed ║`);
|
|
202
|
+
console.log(`║ Anti-scope: ${violations === 0 ? '✅ Temiz' : `❌ ${violations} ihlal`} ║`);
|
|
203
|
+
console.log(`║ Quality: ${(evalResult.qualityScore * 100).toFixed(0)}% ║`);
|
|
204
|
+
console.log(`║ Consistency: ${(evalResult.consistencyScore * 100).toFixed(0)}% ║`);
|
|
205
|
+
console.log(`║ Mission: ${(evalResult.missionAlignment * 100).toFixed(0)}% ║`);
|
|
206
|
+
console.log('╚═══════════════════════════════════════════════════════════╝');
|
|
207
|
+
}
|
|
208
|
+
main().catch((err) => {
|
|
209
|
+
console.error('💥 Fatal:', err);
|
|
210
|
+
process.exit(1);
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=run-calculator-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-calculator-test.js","sourceRoot":"","sources":["../src/run-calculator-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real-World Task Runner
|
|
3
|
+
*
|
|
4
|
+
* Orchestrator'ın tam döngüsünü tek bir gerçek görevle çalıştırır:
|
|
5
|
+
* 1. Memory snapshot al
|
|
6
|
+
* 2. Task tanımla
|
|
7
|
+
* 3. Agent'ı gerçek claude.exe ile spawn et
|
|
8
|
+
* 4. Çıktıyı parse et
|
|
9
|
+
* 5. DECISIONS.md'ye logla
|
|
10
|
+
* 6. STATE.md güncelle
|
|
11
|
+
* 7. Sonucu raporla
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=run-real-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-real-task.d.ts","sourceRoot":"","sources":["../src/run-real-task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real-World Task Runner
|
|
3
|
+
*
|
|
4
|
+
* Orchestrator'ın tam döngüsünü tek bir gerçek görevle çalıştırır:
|
|
5
|
+
* 1. Memory snapshot al
|
|
6
|
+
* 2. Task tanımla
|
|
7
|
+
* 3. Agent'ı gerçek claude.exe ile spawn et
|
|
8
|
+
* 4. Çıktıyı parse et
|
|
9
|
+
* 5. DECISIONS.md'ye logla
|
|
10
|
+
* 6. STATE.md güncelle
|
|
11
|
+
* 7. Sonucu raporla
|
|
12
|
+
*/
|
|
13
|
+
import { MemoryLayer } from './memory/index.js';
|
|
14
|
+
import { AgentRunner } from './agent/index.js';
|
|
15
|
+
import { ContextBuilder } from './agent/context-builder.js';
|
|
16
|
+
const PROJECT_ROOT = process.cwd();
|
|
17
|
+
async function main() {
|
|
18
|
+
console.log('╔══════════════════════════════════════════════════════╗');
|
|
19
|
+
console.log('║ PROJECT CONSCIOUSNESS — Real-World Task Runner ║');
|
|
20
|
+
console.log('╚══════════════════════════════════════════════════════╝\n');
|
|
21
|
+
const memory = new MemoryLayer(PROJECT_ROOT);
|
|
22
|
+
const runner = new AgentRunner({
|
|
23
|
+
binaryPath: 'claude.exe',
|
|
24
|
+
workingDirectory: PROJECT_ROOT,
|
|
25
|
+
timeout: 120_000,
|
|
26
|
+
maxDepth: 3,
|
|
27
|
+
log: (msg) => console.log(` ${msg}`),
|
|
28
|
+
});
|
|
29
|
+
// ── Step 1: Memory Snapshot ───────────────────────────
|
|
30
|
+
console.log('━━━ Step 1: Memory Snapshot ━━━');
|
|
31
|
+
const snapshot = await memory.snapshot();
|
|
32
|
+
console.log(` Hash: ${snapshot.hash}`);
|
|
33
|
+
console.log(` Mission bütünlüğü: ${await memory.validateMissionIntegrity() ? '✅' : '❌'}`);
|
|
34
|
+
console.log(` Mevcut kararlar: ${await memory.getDecisionCount()}`);
|
|
35
|
+
// ── Step 2: Health Check ──────────────────────────────
|
|
36
|
+
console.log('\n━━━ Step 2: Agent Runner Health ━━━');
|
|
37
|
+
const health = await runner.checkHealth();
|
|
38
|
+
console.log(` Ready: ${health.ready}`);
|
|
39
|
+
console.log(` Details: ${health.details}`);
|
|
40
|
+
if (!health.ready) {
|
|
41
|
+
console.error('❌ Agent runner hazır değil, çıkılıyor.');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
// ── Step 3: Task Tanımı ───────────────────────────────
|
|
45
|
+
console.log('\n━━━ Step 3: Task Tanımı ━━━');
|
|
46
|
+
const task = {
|
|
47
|
+
id: 'T-REAL-001',
|
|
48
|
+
title: 'Create docs/GLOSSARY.md',
|
|
49
|
+
description: `docs/ klasörünü oluştur ve içine GLOSSARY.md dosyası yaz.
|
|
50
|
+
|
|
51
|
+
Bu dosya, Project Consciousness sisteminde kullanılan temel terimleri açıklamalı:
|
|
52
|
+
|
|
53
|
+
1. MISSION.md — Projenin değişmez varlık sebebi
|
|
54
|
+
2. ARCHITECTURE.md — Teknik mimari ve katman yapısı
|
|
55
|
+
3. DECISIONS.md — Append-only karar logu
|
|
56
|
+
4. STATE.md — Canlı proje durumu
|
|
57
|
+
5. Orchestrator — Plan, değerlendirme ve eskalasyon yönetimi
|
|
58
|
+
6. Agent Runner — Claude Code instance'ları spawn ve yönetimi
|
|
59
|
+
7. Memory Layer — 4 dosyanın okuma/yazma guardianı
|
|
60
|
+
8. Memory Snapshot — Tüm hafızanın anlık kopyası
|
|
61
|
+
9. Escalation — İnsan müdahalesi gereken durumlar
|
|
62
|
+
10. Context Injection — Agent prompt'una hafıza enjeksiyonu
|
|
63
|
+
|
|
64
|
+
Her terim için:
|
|
65
|
+
- Türkçe kısa tanım (1-2 cümle)
|
|
66
|
+
- Hangi dosyada/modülde yaşadığı
|
|
67
|
+
|
|
68
|
+
SADECE docs/GLOSSARY.md dosyasını oluştur. Başka dosya değiştirme.`,
|
|
69
|
+
type: 'document',
|
|
70
|
+
dependencies: [],
|
|
71
|
+
priority: 'medium',
|
|
72
|
+
estimatedComplexity: 'simple',
|
|
73
|
+
acceptanceCriteria: [
|
|
74
|
+
'docs/ klasörü oluşturulmuş',
|
|
75
|
+
'docs/GLOSSARY.md dosyası var',
|
|
76
|
+
'En az 7 terim tanımlanmış',
|
|
77
|
+
'Her terim Türkçe açıklanmış',
|
|
78
|
+
'Dosya markdown formatında',
|
|
79
|
+
],
|
|
80
|
+
};
|
|
81
|
+
console.log(` ID: ${task.id}`);
|
|
82
|
+
console.log(` Title: ${task.title}`);
|
|
83
|
+
console.log(` Criteria: ${task.acceptanceCriteria.length} adet`);
|
|
84
|
+
// ── Step 4: Context Build (doğrulama) ─────────────────
|
|
85
|
+
console.log('\n━━━ Step 4: Context Preview ━━━');
|
|
86
|
+
const ctxBuilder = new ContextBuilder();
|
|
87
|
+
const agent = runner.getAgent('documenter');
|
|
88
|
+
const prompt = ctxBuilder.buildPrompt(task, snapshot, agent);
|
|
89
|
+
console.log(` Prompt uzunluğu: ${prompt.length} karakter`);
|
|
90
|
+
console.log(` MISSION içeriyor: ${prompt.includes('MISSION') ? '✅' : '❌'}`);
|
|
91
|
+
console.log(` ARCHITECTURE içeriyor: ${prompt.includes('ARCHITECTURE') ? '✅' : '❌'}`);
|
|
92
|
+
console.log(` DECISIONS içeriyor: ${prompt.includes('DECISIONS') ? '✅' : '❌'}`);
|
|
93
|
+
// ── Step 5: Agent Execution ───────────────────────────
|
|
94
|
+
console.log('\n━━━ Step 5: Agent Execution ━━━');
|
|
95
|
+
console.log(' ⏳ claude.exe --print çalıştırılıyor...\n');
|
|
96
|
+
const result = await runner.runTask(task, snapshot);
|
|
97
|
+
console.log(`\n ══ Agent Result ══`);
|
|
98
|
+
console.log(` Task ID: ${result.taskId}`);
|
|
99
|
+
console.log(` Agent: ${result.agentId}`);
|
|
100
|
+
console.log(` Success: ${result.success}`);
|
|
101
|
+
console.log(` Duration: ${result.duration}ms`);
|
|
102
|
+
console.log(` Artifacts: [${result.artifacts.join(', ')}]`);
|
|
103
|
+
console.log(` Output (first 500):`);
|
|
104
|
+
console.log(` ${result.output.slice(0, 500)}`);
|
|
105
|
+
// ── Step 6: Decision Logging ──────────────────────────
|
|
106
|
+
console.log('\n━━━ Step 6: Decision Logging ━━━');
|
|
107
|
+
const nextId = await memory.getNextDecisionId();
|
|
108
|
+
const decision = {
|
|
109
|
+
id: nextId,
|
|
110
|
+
title: 'Real-world task: docs/GLOSSARY.md oluşturma',
|
|
111
|
+
date: new Date().toISOString(),
|
|
112
|
+
context: 'Sistemin çalışma kanıtı olarak gerçek bir dosya üretim görevi verildi',
|
|
113
|
+
decision: `Agent (documenter) ${result.success ? 'başarıyla' : 'başarısız şekilde'} çalıştı. Süre: ${result.duration}ms`,
|
|
114
|
+
rationale: 'E2E sonrası gerçek dünya testi — orchestrator döngüsünün tüm adımları çalışmalı',
|
|
115
|
+
alternatives: 'Manuel dosya oluşturma (orchestrator kanıtı olmaz)',
|
|
116
|
+
status: 'active',
|
|
117
|
+
};
|
|
118
|
+
await memory.appendDecision(decision);
|
|
119
|
+
console.log(` Karar loglandı: ${nextId}`);
|
|
120
|
+
// ── Step 7: State Update ──────────────────────────────
|
|
121
|
+
console.log('\n━━━ Step 7: State Update ━━━');
|
|
122
|
+
const state = await memory.parseState();
|
|
123
|
+
// Active tasks'a T-REAL-001'i ekle ve tamamlanmış olarak işaretle
|
|
124
|
+
state.completedTasks.push({
|
|
125
|
+
taskId: task.id,
|
|
126
|
+
title: task.title,
|
|
127
|
+
status: result.success ? 'done' : 'failed',
|
|
128
|
+
assignedAgent: result.agentId,
|
|
129
|
+
completedAt: new Date().toISOString(),
|
|
130
|
+
output: `${result.success ? 'Başarılı' : 'Başarısız'} — ${result.duration}ms`,
|
|
131
|
+
});
|
|
132
|
+
state.iteration += 1;
|
|
133
|
+
state.lastUpdated = new Date().toISOString();
|
|
134
|
+
await memory.updateState(state);
|
|
135
|
+
console.log(` STATE.md güncellendi (iteration: ${state.iteration})`);
|
|
136
|
+
// ── Step 8: Verification ──────────────────────────────
|
|
137
|
+
console.log('\n━━━ Step 8: Doğrulama ━━━');
|
|
138
|
+
// DECISIONS.md kontrol
|
|
139
|
+
const decisionsContent = await memory.readDecisions();
|
|
140
|
+
const hasNewDecision = decisionsContent.includes(nextId);
|
|
141
|
+
console.log(` DECISIONS.md yeni karar (${nextId}): ${hasNewDecision ? '✅' : '❌'}`);
|
|
142
|
+
// STATE.md kontrol
|
|
143
|
+
const stateContent = await memory.readState();
|
|
144
|
+
const hasTaskInState = stateContent.includes('T-REAL-001');
|
|
145
|
+
console.log(` STATE.md task kaydı: ${hasTaskInState ? '✅' : '❌'}`);
|
|
146
|
+
// docs/GLOSSARY.md kontrol
|
|
147
|
+
let glossaryExists = false;
|
|
148
|
+
let glossaryContent = '';
|
|
149
|
+
try {
|
|
150
|
+
const { readFile } = await import('node:fs/promises');
|
|
151
|
+
const { join } = await import('node:path');
|
|
152
|
+
glossaryContent = await readFile(join(PROJECT_ROOT, 'docs', 'GLOSSARY.md'), 'utf-8');
|
|
153
|
+
glossaryExists = true;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
glossaryExists = false;
|
|
157
|
+
}
|
|
158
|
+
console.log(` docs/GLOSSARY.md oluştu: ${glossaryExists ? '✅' : '❌'}`);
|
|
159
|
+
if (glossaryExists) {
|
|
160
|
+
const terms = ['MISSION', 'ARCHITECTURE', 'DECISIONS', 'STATE', 'Orchestrator', 'Agent', 'Memory'];
|
|
161
|
+
const foundTerms = terms.filter(t => glossaryContent.includes(t));
|
|
162
|
+
console.log(` Terimler (${foundTerms.length}/${terms.length}): ${foundTerms.join(', ')}`);
|
|
163
|
+
console.log(` Dosya boyutu: ${glossaryContent.length} karakter`);
|
|
164
|
+
console.log(`\n ── GLOSSARY.md İlk 600 Karakter ──`);
|
|
165
|
+
console.log(glossaryContent.slice(0, 600));
|
|
166
|
+
console.log(' ──────────────────────────────────\n');
|
|
167
|
+
}
|
|
168
|
+
// ── Final Report ──────────────────────────────────────
|
|
169
|
+
console.log('╔══════════════════════════════════════════════════════╗');
|
|
170
|
+
console.log('║ FINAL REPORT ║');
|
|
171
|
+
console.log('╠══════════════════════════════════════════════════════╣');
|
|
172
|
+
console.log(`║ Agent çalıştı: ${result.success ? '✅ EVET' : '❌ HAYIR'} ║`);
|
|
173
|
+
console.log(`║ Claude CLI spawn: ✅ claude.exe --print ║`);
|
|
174
|
+
console.log(`║ Memory context: ✅ 4 dosya enjekte edildi ║`);
|
|
175
|
+
console.log(`║ docs/GLOSSARY.md: ${glossaryExists ? '✅ OLUŞTU' : '❌ OLUŞMADI'} ║`);
|
|
176
|
+
console.log(`║ DECISIONS.md: ${hasNewDecision ? '✅ LOGLAND' : '❌ LOGLANMADI'}I ║`);
|
|
177
|
+
console.log(`║ STATE.md: ${hasTaskInState ? '✅ GÜNCELLENDİ' : '❌ GÜNCELLENMEDİ'} ║`);
|
|
178
|
+
console.log(`║ Süre: ${Math.round(result.duration / 1000)}s ║`);
|
|
179
|
+
console.log('╚══════════════════════════════════════════════════════╝');
|
|
180
|
+
}
|
|
181
|
+
main().catch((err) => {
|
|
182
|
+
console.error('💥 Fatal:', err);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
});
|
|
185
|
+
//# sourceMappingURL=run-real-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-real-task.js","sourceRoot":"","sources":["../src/run-real-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-todo-test.d.ts","sourceRoot":"","sources":["../src/run-todo-test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|