@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,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Layer — Dört Dosyanın Guardianı
|
|
3
|
+
*
|
|
4
|
+
* MISSION.md: salt okunur (sadece validasyon)
|
|
5
|
+
* ARCHITECTURE.md: okunur, değişiklik önerisi üretir
|
|
6
|
+
* DECISIONS.md: append-only log
|
|
7
|
+
* STATE.md: her task sonrası güncellenir
|
|
8
|
+
*/
|
|
9
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
12
|
+
export class MemoryLayer {
|
|
13
|
+
paths;
|
|
14
|
+
constructor(projectRoot) {
|
|
15
|
+
this.paths = {
|
|
16
|
+
mission: join(projectRoot, 'MISSION.md'),
|
|
17
|
+
architecture: join(projectRoot, 'ARCHITECTURE.md'),
|
|
18
|
+
decisions: join(projectRoot, 'DECISIONS.md'),
|
|
19
|
+
state: join(projectRoot, 'STATE.md'),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// ── Snapshot: Tüm hafızayı tek seferde oku ──────────────
|
|
23
|
+
async snapshot() {
|
|
24
|
+
const files = await this.readAll();
|
|
25
|
+
const hash = this.computeHash(files);
|
|
26
|
+
return {
|
|
27
|
+
files,
|
|
28
|
+
timestamp: new Date().toISOString(),
|
|
29
|
+
hash,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Optimize edilmiş snapshot — context window'u korumak için
|
|
34
|
+
* DECISIONS.md ve STATE.md otomatik sıkıştırılır.
|
|
35
|
+
*
|
|
36
|
+
* @param recentDecisionCount Tam gösterilecek son karar sayısı (default: 10)
|
|
37
|
+
* @param maxCompletedTasks Tam gösterilecek max tamamlanan task (default: 5)
|
|
38
|
+
*/
|
|
39
|
+
async optimizedSnapshot(recentDecisionCount = 10, maxCompletedTasks = 5) {
|
|
40
|
+
const [mission, architecture, decisionsRaw, stateRaw] = await Promise.all([
|
|
41
|
+
this.readFile('mission'),
|
|
42
|
+
this.readFile('architecture'),
|
|
43
|
+
this.readFile('decisions'),
|
|
44
|
+
this.readFile('state'),
|
|
45
|
+
]);
|
|
46
|
+
const decisions = this.summarizeDecisions(decisionsRaw, recentDecisionCount);
|
|
47
|
+
const state = this.compressState(stateRaw, maxCompletedTasks);
|
|
48
|
+
const files = { mission, architecture, decisions, state };
|
|
49
|
+
return {
|
|
50
|
+
files,
|
|
51
|
+
timestamp: new Date().toISOString(),
|
|
52
|
+
hash: this.computeHash(files),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async readAll() {
|
|
56
|
+
const [mission, architecture, decisions, state] = await Promise.all([
|
|
57
|
+
this.readFile('mission'),
|
|
58
|
+
this.readFile('architecture'),
|
|
59
|
+
this.readFile('decisions'),
|
|
60
|
+
this.readFile('state'),
|
|
61
|
+
]);
|
|
62
|
+
return { mission, architecture, decisions, state };
|
|
63
|
+
}
|
|
64
|
+
// ── Individual File Operations ──────────────────────────
|
|
65
|
+
async readMission() {
|
|
66
|
+
return this.readFile('mission');
|
|
67
|
+
}
|
|
68
|
+
async readArchitecture() {
|
|
69
|
+
return this.readFile('architecture');
|
|
70
|
+
}
|
|
71
|
+
async readDecisions() {
|
|
72
|
+
return this.readFile('decisions');
|
|
73
|
+
}
|
|
74
|
+
async readState() {
|
|
75
|
+
return this.readFile('state');
|
|
76
|
+
}
|
|
77
|
+
// ── DECISIONS.md: Append-Only ───────────────────────────
|
|
78
|
+
async appendDecision(decision) {
|
|
79
|
+
const current = await this.readDecisions();
|
|
80
|
+
const entry = `
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## ${decision.id} — ${decision.title}
|
|
84
|
+
|
|
85
|
+
- **Tarih**: ${decision.date}
|
|
86
|
+
- **Bağlam**: ${decision.context}
|
|
87
|
+
- **Karar**: ${decision.decision}
|
|
88
|
+
- **Gerekçe**: ${decision.rationale}
|
|
89
|
+
- **Alternatifler**: ${decision.alternatives}
|
|
90
|
+
- **Durum**: ${decision.status}
|
|
91
|
+
`;
|
|
92
|
+
await writeFile(this.paths.decisions, current + entry, 'utf-8');
|
|
93
|
+
}
|
|
94
|
+
// ── STATE.md: Full Rewrite ──────────────────────────────
|
|
95
|
+
async updateState(state) {
|
|
96
|
+
const content = this.renderState(state);
|
|
97
|
+
await writeFile(this.paths.state, content, 'utf-8');
|
|
98
|
+
}
|
|
99
|
+
async parseState() {
|
|
100
|
+
const content = await this.readState();
|
|
101
|
+
return this.parseStateContent(content);
|
|
102
|
+
}
|
|
103
|
+
// ── Validation ──────────────────────────────────────────
|
|
104
|
+
async validateMissionIntegrity() {
|
|
105
|
+
const mission = await this.readMission();
|
|
106
|
+
// Mission dosyası boş olmamalı ve temel bölümleri içermeli
|
|
107
|
+
return (mission.includes('## Neden Varız') &&
|
|
108
|
+
mission.includes('## Ne İnşa Ediyoruz') &&
|
|
109
|
+
mission.includes('## Başarı Tanımı'));
|
|
110
|
+
}
|
|
111
|
+
async getDecisionCount() {
|
|
112
|
+
const content = await this.readDecisions();
|
|
113
|
+
const matches = content.match(/^## D\d+/gm);
|
|
114
|
+
return matches?.length ?? 0;
|
|
115
|
+
}
|
|
116
|
+
async getNextDecisionId() {
|
|
117
|
+
const count = await this.getDecisionCount();
|
|
118
|
+
return `D${String(count + 1).padStart(3, '0')}`;
|
|
119
|
+
}
|
|
120
|
+
// ── Memory Optimization ─────────────────────────────────
|
|
121
|
+
/**
|
|
122
|
+
* DECISIONS.md özetleme:
|
|
123
|
+
* - Son N karar tam gösterilir
|
|
124
|
+
* - Eskiler tek satır özete indirilir
|
|
125
|
+
*
|
|
126
|
+
* Örnek: "D001-D006: dosya tabanlı hafıza, TypeScript stack, Claude API kararları"
|
|
127
|
+
*/
|
|
128
|
+
summarizeDecisions(raw, recentCount = 10) {
|
|
129
|
+
// Header'ı ayır
|
|
130
|
+
const headerMatch = raw.match(/^([\s\S]*?)(?=\n---\n|\n## D\d)/);
|
|
131
|
+
const header = headerMatch?.[1]?.trim() ?? '# DECISIONS';
|
|
132
|
+
// Kararları parse et
|
|
133
|
+
const decisionBlocks = raw.split(/(?=\n---\n\s*\n## D\d)/).filter(b => /## D\d/.test(b));
|
|
134
|
+
if (decisionBlocks.length <= recentCount) {
|
|
135
|
+
return raw; // sıkıştırma gereksiz
|
|
136
|
+
}
|
|
137
|
+
const oldCount = decisionBlocks.length - recentCount;
|
|
138
|
+
const oldBlocks = decisionBlocks.slice(0, oldCount);
|
|
139
|
+
const recentBlocks = decisionBlocks.slice(oldCount);
|
|
140
|
+
// Eski kararları özetle
|
|
141
|
+
const oldSummaries = oldBlocks.map(block => {
|
|
142
|
+
const idMatch = block.match(/## (D\d+)\s*—\s*(.+)/);
|
|
143
|
+
const id = idMatch?.[1] ?? '?';
|
|
144
|
+
const title = idMatch?.[2]?.trim() ?? 'untitled';
|
|
145
|
+
return `${id}: ${title}`;
|
|
146
|
+
});
|
|
147
|
+
// Grup halinde özetle (max 5 per line)
|
|
148
|
+
const summaryLines = [];
|
|
149
|
+
for (let i = 0; i < oldSummaries.length; i += 5) {
|
|
150
|
+
const chunk = oldSummaries.slice(i, i + 5);
|
|
151
|
+
const firstId = chunk[0]?.split(':')[0] ?? '';
|
|
152
|
+
const lastId = chunk[chunk.length - 1]?.split(':')[0] ?? '';
|
|
153
|
+
const titles = chunk.map(s => s.split(': ').slice(1).join(': ')).join(', ');
|
|
154
|
+
summaryLines.push(`**${firstId}-${lastId}**: ${titles}`);
|
|
155
|
+
}
|
|
156
|
+
const summary = `${header}
|
|
157
|
+
|
|
158
|
+
> ℹ️ ${oldCount} eski karar özetlendi, son ${recentCount} tam gösteriliyor.
|
|
159
|
+
|
|
160
|
+
### Özetlenen Kararlar
|
|
161
|
+
${summaryLines.map(l => `- ${l}`).join('\n')}
|
|
162
|
+
${recentBlocks.join('')}`;
|
|
163
|
+
return summary;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* STATE.md sıkıştırma:
|
|
167
|
+
* - Completed tasks 5'ten fazlaysa özete indir
|
|
168
|
+
* - Active tasks ve blocked tam kalır
|
|
169
|
+
*/
|
|
170
|
+
compressState(raw, maxCompleted = 5) {
|
|
171
|
+
const state = this.parseStateContent(raw);
|
|
172
|
+
if (state.completedTasks.length <= maxCompleted) {
|
|
173
|
+
return raw; // sıkıştırma gereksiz
|
|
174
|
+
}
|
|
175
|
+
const totalCompleted = state.completedTasks.length;
|
|
176
|
+
const recent = state.completedTasks.slice(-maxCompleted);
|
|
177
|
+
// Sıkıştırılmış render
|
|
178
|
+
const activeTasks = state.activeTasks
|
|
179
|
+
.map(t => `- [ ] ${t.taskId} — ${t.title} — status: ${t.status}`)
|
|
180
|
+
.join('\n');
|
|
181
|
+
const recentTasks = recent
|
|
182
|
+
.map(t => `- [x] ${t.taskId} — ${t.title}`)
|
|
183
|
+
.join('\n');
|
|
184
|
+
const blockedTasks = state.blockedTasks
|
|
185
|
+
.map(t => `- ${t.taskId} — ${t.reason} — ${t.escalationStatus}`)
|
|
186
|
+
.join('\n');
|
|
187
|
+
return `# STATE — Project Consciousness
|
|
188
|
+
|
|
189
|
+
## Current Phase: \`${state.phase}\`
|
|
190
|
+
|
|
191
|
+
## Iteration: ${state.iteration}
|
|
192
|
+
|
|
193
|
+
## Active Tasks
|
|
194
|
+
${activeTasks || '_yok_'}
|
|
195
|
+
|
|
196
|
+
## Completed Tasks
|
|
197
|
+
> ${totalCompleted} task tamamlandı (son ${maxCompleted} gösteriliyor, detay: git log)
|
|
198
|
+
|
|
199
|
+
${recentTasks}
|
|
200
|
+
|
|
201
|
+
## Blocked
|
|
202
|
+
${blockedTasks || '_yok_'}
|
|
203
|
+
|
|
204
|
+
## Last Updated: ${state.lastUpdated}
|
|
205
|
+
`;
|
|
206
|
+
}
|
|
207
|
+
// ── Private Helpers ─────────────────────────────────────
|
|
208
|
+
async readFile(key) {
|
|
209
|
+
try {
|
|
210
|
+
return await readFile(this.paths[key], 'utf-8');
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
throw new Error(`Memory file not found: ${this.paths[key]}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
computeHash(files) {
|
|
217
|
+
const content = Object.values(files).join('\n---\n');
|
|
218
|
+
return createHash('sha256').update(content).digest('hex').slice(0, 12);
|
|
219
|
+
}
|
|
220
|
+
renderState(state) {
|
|
221
|
+
const activeTasks = state.activeTasks
|
|
222
|
+
.map(t => `- [ ] ${t.taskId} — ${t.title} — agent: ${t.assignedAgent ?? 'unassigned'} — status: ${t.status}`)
|
|
223
|
+
.join('\n');
|
|
224
|
+
const completedTasks = state.completedTasks
|
|
225
|
+
.map(t => `- [x] ${t.taskId} — ${t.title} — ${t.output ?? 'done'}`)
|
|
226
|
+
.join('\n');
|
|
227
|
+
const blockedTasks = state.blockedTasks
|
|
228
|
+
.map(t => `- ${t.taskId} — ${t.reason} — ${t.escalationStatus}`)
|
|
229
|
+
.join('\n');
|
|
230
|
+
return `# STATE — Project Consciousness
|
|
231
|
+
|
|
232
|
+
## Current Phase: \`${state.phase}\`
|
|
233
|
+
|
|
234
|
+
## Iteration: ${state.iteration}
|
|
235
|
+
|
|
236
|
+
## Active Tasks
|
|
237
|
+
${activeTasks || '_yok_'}
|
|
238
|
+
|
|
239
|
+
## Completed Tasks
|
|
240
|
+
${completedTasks || '_henüz yok_'}
|
|
241
|
+
|
|
242
|
+
## Blocked
|
|
243
|
+
${blockedTasks || '_henüz yok_'}
|
|
244
|
+
|
|
245
|
+
## Last Updated: ${state.lastUpdated}
|
|
246
|
+
`;
|
|
247
|
+
}
|
|
248
|
+
parseStateContent(content) {
|
|
249
|
+
const phaseMatch = content.match(/## Current Phase: `(\w+)`/);
|
|
250
|
+
const iterationMatch = content.match(/## Iteration: (\d+)/);
|
|
251
|
+
const phase = (phaseMatch?.[1] ?? 'initialization');
|
|
252
|
+
const iteration = parseInt(iterationMatch?.[1] ?? '0', 10);
|
|
253
|
+
// Parse active tasks
|
|
254
|
+
const activeTasks = this.parseTaskLines(content, 'Active Tasks', false);
|
|
255
|
+
const completedTasks = this.parseTaskLines(content, 'Completed Tasks', true);
|
|
256
|
+
const blockedTasks = this.parseBlockedLines(content);
|
|
257
|
+
return {
|
|
258
|
+
phase,
|
|
259
|
+
iteration,
|
|
260
|
+
activeTasks,
|
|
261
|
+
completedTasks,
|
|
262
|
+
blockedTasks,
|
|
263
|
+
lastUpdated: new Date().toISOString(),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
parseTaskLines(content, section, completed) {
|
|
267
|
+
const sectionRegex = new RegExp(`## ${section}\\n([\\s\\S]*?)(?=\\n## |$)`);
|
|
268
|
+
const match = content.match(sectionRegex);
|
|
269
|
+
if (!match?.[1])
|
|
270
|
+
return [];
|
|
271
|
+
const lines = match[1].trim().split('\n').filter(l => l.startsWith('- ['));
|
|
272
|
+
return lines.map(line => {
|
|
273
|
+
const parts = line.replace(/^- \[[ x]\] /, '').split(' — ');
|
|
274
|
+
return {
|
|
275
|
+
taskId: parts[0]?.trim() ?? '',
|
|
276
|
+
title: parts[1]?.trim() ?? '',
|
|
277
|
+
status: completed ? 'done' : 'pending',
|
|
278
|
+
assignedAgent: undefined,
|
|
279
|
+
};
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
parseBlockedLines(content) {
|
|
283
|
+
const match = content.match(/## Blocked\n([\s\S]*?)(?=\n## |$)/);
|
|
284
|
+
if (!match?.[1] || match[1].includes('_henüz yok_'))
|
|
285
|
+
return [];
|
|
286
|
+
const lines = match[1].trim().split('\n').filter(l => l.startsWith('- '));
|
|
287
|
+
return lines.map(line => {
|
|
288
|
+
const parts = line.replace(/^- /, '').split(' — ');
|
|
289
|
+
return {
|
|
290
|
+
taskId: parts[0]?.trim() ?? '',
|
|
291
|
+
reason: parts[1]?.trim() ?? '',
|
|
292
|
+
escalationStatus: 'pending',
|
|
293
|
+
};
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=memory-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-layer.js","sourceRoot":"","sources":["../../src/memory/memory-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Graph — Topological Sort ile Task Sıralama
|
|
3
|
+
*
|
|
4
|
+
* Task'lar arası bağımlılıkları yönetir.
|
|
5
|
+
* Kahn's algorithm ile topological sort yapar.
|
|
6
|
+
* Paralel çalışabilecek task'ları gruplayarak döndürür.
|
|
7
|
+
*/
|
|
8
|
+
import type { TaskDefinition } from '../types/index.js';
|
|
9
|
+
export declare class DependencyGraph {
|
|
10
|
+
private tasks;
|
|
11
|
+
private edges;
|
|
12
|
+
private reverseEdges;
|
|
13
|
+
addTask(task: TaskDefinition): void;
|
|
14
|
+
addDependency(taskId: string, dependsOnId: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Topological sort → paralel gruplar.
|
|
17
|
+
* [[T01, T02], [T03], [T04, T05]]
|
|
18
|
+
* → T01+T02 paralel, sonra T03, sonra T04+T05 paralel
|
|
19
|
+
*/
|
|
20
|
+
getExecutionOrder(): string[][];
|
|
21
|
+
/**
|
|
22
|
+
* Döngü tespiti (DFS-based)
|
|
23
|
+
*/
|
|
24
|
+
hasCycle(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Bağımlılıkları tamamlanmış, çalışmaya hazır task'lar
|
|
27
|
+
*/
|
|
28
|
+
getReadyTasks(completedTaskIds: Set<string>): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Bir task'ın doğrudan bağımlılıkları
|
|
31
|
+
*/
|
|
32
|
+
getDependencies(taskId: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Bir task'a bağımlı olan task'lar
|
|
35
|
+
*/
|
|
36
|
+
getDependents(taskId: string): string[];
|
|
37
|
+
get size(): number;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=dependency-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/orchestrator/dependency-graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,YAAY,CAAuC;IAI3D,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAenC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAYxD;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,EAAE,EAAE;IAyC/B;;OAEG;IACH,QAAQ,IAAI,OAAO;IA0BnB;;OAEG;IACH,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAYtD;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAIzC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAIvC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Graph — Topological Sort ile Task Sıralama
|
|
3
|
+
*
|
|
4
|
+
* Task'lar arası bağımlılıkları yönetir.
|
|
5
|
+
* Kahn's algorithm ile topological sort yapar.
|
|
6
|
+
* Paralel çalışabilecek task'ları gruplayarak döndürür.
|
|
7
|
+
*/
|
|
8
|
+
export class DependencyGraph {
|
|
9
|
+
tasks = new Map();
|
|
10
|
+
edges = new Map(); // taskId → depends on
|
|
11
|
+
reverseEdges = new Map(); // taskId → depended by
|
|
12
|
+
// ── Build ───────────────────────────────────────────────
|
|
13
|
+
addTask(task) {
|
|
14
|
+
this.tasks.set(task.id, task);
|
|
15
|
+
if (!this.edges.has(task.id)) {
|
|
16
|
+
this.edges.set(task.id, new Set());
|
|
17
|
+
}
|
|
18
|
+
if (!this.reverseEdges.has(task.id)) {
|
|
19
|
+
this.reverseEdges.set(task.id, new Set());
|
|
20
|
+
}
|
|
21
|
+
// Task'ın kendi dependency'lerini ekle
|
|
22
|
+
for (const dep of task.dependencies) {
|
|
23
|
+
this.addDependency(task.id, dep);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
addDependency(taskId, dependsOnId) {
|
|
27
|
+
if (!this.edges.has(taskId))
|
|
28
|
+
this.edges.set(taskId, new Set());
|
|
29
|
+
if (!this.edges.has(dependsOnId))
|
|
30
|
+
this.edges.set(dependsOnId, new Set());
|
|
31
|
+
if (!this.reverseEdges.has(taskId))
|
|
32
|
+
this.reverseEdges.set(taskId, new Set());
|
|
33
|
+
if (!this.reverseEdges.has(dependsOnId))
|
|
34
|
+
this.reverseEdges.set(dependsOnId, new Set());
|
|
35
|
+
this.edges.get(taskId).add(dependsOnId);
|
|
36
|
+
this.reverseEdges.get(dependsOnId).add(taskId);
|
|
37
|
+
}
|
|
38
|
+
// ── Query ───────────────────────────────────────────────
|
|
39
|
+
/**
|
|
40
|
+
* Topological sort → paralel gruplar.
|
|
41
|
+
* [[T01, T02], [T03], [T04, T05]]
|
|
42
|
+
* → T01+T02 paralel, sonra T03, sonra T04+T05 paralel
|
|
43
|
+
*/
|
|
44
|
+
getExecutionOrder() {
|
|
45
|
+
if (this.hasCycle()) {
|
|
46
|
+
throw new Error('Dependency graph has a cycle — cannot determine execution order');
|
|
47
|
+
}
|
|
48
|
+
const inDegree = new Map();
|
|
49
|
+
for (const id of this.edges.keys()) {
|
|
50
|
+
inDegree.set(id, this.edges.get(id).size);
|
|
51
|
+
}
|
|
52
|
+
const groups = [];
|
|
53
|
+
const completed = new Set();
|
|
54
|
+
while (completed.size < this.edges.size) {
|
|
55
|
+
// Bu turda çalışabilecek task'lar (in-degree = 0, henüz tamamlanmamış)
|
|
56
|
+
const ready = [];
|
|
57
|
+
for (const [id, degree] of inDegree) {
|
|
58
|
+
if (degree === 0 && !completed.has(id)) {
|
|
59
|
+
ready.push(id);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (ready.length === 0) {
|
|
63
|
+
break; // döngü olmamalı (hasCycle kontrol edildi) ama safety
|
|
64
|
+
}
|
|
65
|
+
groups.push(ready.sort()); // deterministic sıra
|
|
66
|
+
// Tamamlanan task'ların bağımlılarının in-degree'sini düşür
|
|
67
|
+
for (const id of ready) {
|
|
68
|
+
completed.add(id);
|
|
69
|
+
for (const dependent of this.reverseEdges.get(id) ?? []) {
|
|
70
|
+
const current = inDegree.get(dependent) ?? 0;
|
|
71
|
+
inDegree.set(dependent, current - 1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return groups;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Döngü tespiti (DFS-based)
|
|
79
|
+
*/
|
|
80
|
+
hasCycle() {
|
|
81
|
+
const visited = new Set();
|
|
82
|
+
const inStack = new Set();
|
|
83
|
+
const dfs = (node) => {
|
|
84
|
+
if (inStack.has(node))
|
|
85
|
+
return true;
|
|
86
|
+
if (visited.has(node))
|
|
87
|
+
return false;
|
|
88
|
+
visited.add(node);
|
|
89
|
+
inStack.add(node);
|
|
90
|
+
for (const dep of this.edges.get(node) ?? []) {
|
|
91
|
+
if (dfs(dep))
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
inStack.delete(node);
|
|
95
|
+
return false;
|
|
96
|
+
};
|
|
97
|
+
for (const id of this.edges.keys()) {
|
|
98
|
+
if (dfs(id))
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Bağımlılıkları tamamlanmış, çalışmaya hazır task'lar
|
|
105
|
+
*/
|
|
106
|
+
getReadyTasks(completedTaskIds) {
|
|
107
|
+
const ready = [];
|
|
108
|
+
for (const [id, deps] of this.edges) {
|
|
109
|
+
if (completedTaskIds.has(id))
|
|
110
|
+
continue;
|
|
111
|
+
const allDepsMet = [...deps].every(d => completedTaskIds.has(d));
|
|
112
|
+
if (allDepsMet) {
|
|
113
|
+
ready.push(id);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return ready.sort();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Bir task'ın doğrudan bağımlılıkları
|
|
120
|
+
*/
|
|
121
|
+
getDependencies(taskId) {
|
|
122
|
+
return [...(this.edges.get(taskId) ?? [])];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Bir task'a bağımlı olan task'lar
|
|
126
|
+
*/
|
|
127
|
+
getDependents(taskId) {
|
|
128
|
+
return [...(this.reverseEdges.get(taskId) ?? [])];
|
|
129
|
+
}
|
|
130
|
+
get size() {
|
|
131
|
+
return this.tasks.size;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=dependency-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../src/orchestrator/dependency-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator — Escalator
|
|
3
|
+
*
|
|
4
|
+
* İnsan müdahalesi gereken durumları yönetir.
|
|
5
|
+
* Terminal'den gerçek readline ile kullanıcı yanıtı alır.
|
|
6
|
+
*
|
|
7
|
+
* Tasarım ilkesi #2: Fail-Safe — şüphe durumunda insana sor
|
|
8
|
+
*/
|
|
9
|
+
import type { EscalationRequest, EscalationResponse, EvaluationResult } from '../types/index.js';
|
|
10
|
+
export declare class Escalator {
|
|
11
|
+
/** Readline override (test injection) */
|
|
12
|
+
private _askFn;
|
|
13
|
+
/**
|
|
14
|
+
* Test'ler için readline'ı override et
|
|
15
|
+
*/
|
|
16
|
+
setAskFn(fn: (prompt: string) => Promise<string>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Değerlendirme sonucuna göre eskalasyon gerekip gerekmediğine karar verir
|
|
19
|
+
*/
|
|
20
|
+
shouldEscalate(evaluation: EvaluationResult): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Eskalasyon request'i oluşturur
|
|
23
|
+
*/
|
|
24
|
+
createEscalation(evaluation: EvaluationResult, retryCount?: number): EscalationRequest;
|
|
25
|
+
/**
|
|
26
|
+
* Eskalasyonu terminal'e yaz ve kullanıcıdan yanıt al
|
|
27
|
+
*/
|
|
28
|
+
promptUser(escalation: EscalationRequest): Promise<EscalationResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* Eskalasyonu insan tarafından okunabilir formatta render eder
|
|
31
|
+
*/
|
|
32
|
+
formatForHuman(escalation: EscalationRequest): string;
|
|
33
|
+
/**
|
|
34
|
+
* Kullanıcı yanıtını parse et
|
|
35
|
+
*/
|
|
36
|
+
parseResponse(input: string): EscalationResponse;
|
|
37
|
+
private formatReason;
|
|
38
|
+
private formatContext;
|
|
39
|
+
private generateOptions;
|
|
40
|
+
private ask;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=escalator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/escalator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,SAAS;IACpB,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAsD;IAEpE;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO;IAIrD;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAmBtF;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS5E;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM;IA4BrD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAuBhD,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,GAAG;CAkBZ"}
|