micro-models-agent 0.5.0 → 0.6.1
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/dist/agent/context.d.ts +3 -6
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +8 -41
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/error-escalation.d.ts +7 -6
- package/dist/agent/error-escalation.d.ts.map +1 -1
- package/dist/agent/error-escalation.js +82 -36
- package/dist/agent/error-escalation.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +151 -210
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory.d.ts +0 -29
- package/dist/agent/memory.d.ts.map +1 -1
- package/dist/agent/memory.js +1 -78
- package/dist/agent/memory.js.map +1 -1
- package/dist/agent/modes/registry.d.ts +1 -1
- package/dist/agent/modes/registry.d.ts.map +1 -1
- package/dist/agent/modes/registry.js +26 -27
- package/dist/agent/modes/registry.js.map +1 -1
- package/dist/agent/modes/types.d.ts +0 -5
- package/dist/agent/modes/types.d.ts.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +95 -147
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-executor.d.ts +2 -6
- package/dist/agent/tool-executor.d.ts.map +1 -1
- package/dist/agent/tool-executor.js +79 -65
- package/dist/agent/tool-executor.js.map +1 -1
- package/dist/agent/user-profile.d.ts +1 -21
- package/dist/agent/user-profile.d.ts.map +1 -1
- package/dist/agent/user-profile.js +41 -174
- package/dist/agent/user-profile.js.map +1 -1
- package/dist/agent/write-enforcer.d.ts +4 -8
- package/dist/agent/write-enforcer.d.ts.map +1 -1
- package/dist/agent/write-enforcer.js +4 -88
- package/dist/agent/write-enforcer.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +2 -25
- package/dist/cli/config.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +102 -139
- package/dist/cli.js.map +1 -1
- package/dist/config/config.d.ts +15 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -38
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +0 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/repl/commands.d.ts +16 -16
- package/dist/repl/commands.d.ts.map +1 -1
- package/dist/repl/commands.js +474 -321
- package/dist/repl/commands.js.map +1 -1
- package/dist/repl/index.d.ts +4 -4
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +60 -56
- package/dist/repl/index.js.map +1 -1
- package/dist/session/store.d.ts +4 -7
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +35 -71
- package/dist/session/store.js.map +1 -1
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +5 -23
- package/dist/setup-wizard.js.map +1 -1
- package/dist/styling/engine.d.ts +7 -12
- package/dist/styling/engine.d.ts.map +1 -1
- package/dist/styling/engine.js +85 -134
- package/dist/styling/engine.js.map +1 -1
- package/dist/styling/index.d.ts +2 -2
- package/dist/styling/index.d.ts.map +1 -1
- package/dist/styling/index.js +0 -1
- package/dist/styling/index.js.map +1 -1
- package/dist/styling/loader.d.ts +2 -2
- package/dist/styling/loader.d.ts.map +1 -1
- package/dist/styling/loader.js +99 -47
- package/dist/styling/loader.js.map +1 -1
- package/dist/subagent/chat.d.ts +12 -0
- package/dist/subagent/chat.d.ts.map +1 -1
- package/dist/subagent/chat.js +28 -6
- package/dist/subagent/chat.js.map +1 -1
- package/dist/subagent/context.d.ts +7 -0
- package/dist/subagent/context.d.ts.map +1 -1
- package/dist/subagent/context.js +11 -0
- package/dist/subagent/context.js.map +1 -1
- package/dist/subagent/definition.d.ts +4 -0
- package/dist/subagent/definition.d.ts.map +1 -1
- package/dist/subagent/definition.js +4 -0
- package/dist/subagent/definition.js.map +1 -1
- package/dist/subagent/errors.d.ts +17 -0
- package/dist/subagent/errors.d.ts.map +1 -1
- package/dist/subagent/errors.js +21 -0
- package/dist/subagent/errors.js.map +1 -1
- package/dist/subagent/validation.d.ts +6 -0
- package/dist/subagent/validation.d.ts.map +1 -1
- package/dist/subagent/validation.js +6 -0
- package/dist/subagent/validation.js.map +1 -1
- package/dist/tools/hooks.d.ts +2 -0
- package/dist/tools/hooks.d.ts.map +1 -1
- package/dist/tools/hooks.js +118 -16
- package/dist/tools/hooks.js.map +1 -1
- package/dist/tools/parse-tool-call.d.ts.map +1 -1
- package/dist/tools/parse-tool-call.js +16 -14
- package/dist/tools/parse-tool-call.js.map +1 -1
- package/dist/tools/registry.d.ts +5 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +47 -28
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/subagent.d.ts +0 -10
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +47 -9
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/types.d.ts +2 -10
- package/dist/tools/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from
|
|
2
|
-
import { join } from
|
|
3
|
-
import { homedir, platform, version as osVersion
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { homedir, platform, version as osVersion } from "node:os";
|
|
4
4
|
/**
|
|
5
5
|
* Профиль пользователя — автоматический сбор наблюдений.
|
|
6
6
|
*
|
|
@@ -17,9 +17,9 @@ import { homedir, platform, version as osVersion, hostname } from 'node:os';
|
|
|
17
17
|
* @module agent/user-profile
|
|
18
18
|
*/
|
|
19
19
|
// ─── Константы ──────────────────────────────────────────
|
|
20
|
-
const USER_DIR = join(homedir(),
|
|
21
|
-
const PROFILE_FILE = join(USER_DIR,
|
|
22
|
-
const COUNTER_FILE = join(USER_DIR,
|
|
20
|
+
const USER_DIR = join(homedir(), ".mma", "user");
|
|
21
|
+
const PROFILE_FILE = join(USER_DIR, "profile.md");
|
|
22
|
+
const COUNTER_FILE = join(USER_DIR, ".counter");
|
|
23
23
|
const STALE_DAYS = 30; // дни до пометки записи как stale
|
|
24
24
|
/** Создаёт директорию профиля если не существует */
|
|
25
25
|
export function ensureUserDir() {
|
|
@@ -30,10 +30,10 @@ export function ensureUserDir() {
|
|
|
30
30
|
export function loadProfile() {
|
|
31
31
|
ensureUserDir();
|
|
32
32
|
try {
|
|
33
|
-
return readFileSync(PROFILE_FILE,
|
|
33
|
+
return readFileSync(PROFILE_FILE, "utf-8");
|
|
34
34
|
}
|
|
35
35
|
catch {
|
|
36
|
-
return
|
|
36
|
+
return "";
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
/** Проверяет существует ли файл профиля */
|
|
@@ -45,20 +45,20 @@ export function profileExists() {
|
|
|
45
45
|
function getProfile() {
|
|
46
46
|
ensureUserDir();
|
|
47
47
|
try {
|
|
48
|
-
return readFileSync(PROFILE_FILE,
|
|
48
|
+
return readFileSync(PROFILE_FILE, "utf-8");
|
|
49
49
|
}
|
|
50
50
|
catch {
|
|
51
|
-
return
|
|
51
|
+
return "# User Profile\n";
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
/** Внутренняя: записывает содержимое профиля */
|
|
55
55
|
function writeProfile(content) {
|
|
56
56
|
ensureUserDir();
|
|
57
|
-
writeFileSync(PROFILE_FILE, content,
|
|
57
|
+
writeFileSync(PROFILE_FILE, content, "utf-8");
|
|
58
58
|
}
|
|
59
59
|
/** Возвращает сегодняшнюю дату в формате YYYY-MM-DD */
|
|
60
60
|
function today() {
|
|
61
|
-
return new Date().toISOString().split(
|
|
61
|
+
return new Date().toISOString().split("T")[0];
|
|
62
62
|
}
|
|
63
63
|
/** Считает количество дней между датой и текущим моментом */
|
|
64
64
|
function daysAgo(dateStr) {
|
|
@@ -69,7 +69,7 @@ function daysAgo(dateStr) {
|
|
|
69
69
|
}
|
|
70
70
|
/** Удаляет дату из строки записи для сравнения содержимого */
|
|
71
71
|
function stripDate(line) {
|
|
72
|
-
return line.replace(/^-\s*\[\d{4}-\d{2}-\d{2}\]\s*/,
|
|
72
|
+
return line.replace(/^-\s*\[\d{4}-\d{2}-\d{2}\]\s*/, "- ").trim();
|
|
73
73
|
}
|
|
74
74
|
/** Проверяет содержит ли строка дату в формате [YYYY-MM-DD] */
|
|
75
75
|
function hasDate(line) {
|
|
@@ -91,16 +91,16 @@ export function upsertEntry(section, content) {
|
|
|
91
91
|
writeProfile(profile);
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
|
-
const sectionEnd = profile.indexOf(
|
|
94
|
+
const sectionEnd = profile.indexOf("\n## ", sectionIdx + 1);
|
|
95
95
|
const secStart = sectionIdx + sectionHeader.length + 1;
|
|
96
96
|
const secEnd = sectionEnd === -1 ? profile.length : sectionEnd;
|
|
97
97
|
const before = profile.slice(0, secStart);
|
|
98
98
|
const after = profile.slice(secEnd);
|
|
99
99
|
const sectionBody = profile.slice(secStart, secEnd);
|
|
100
|
-
const lines = sectionBody.split(
|
|
100
|
+
const lines = sectionBody.split("\n").filter((l) => l.trim());
|
|
101
101
|
const strippedNew = stripDate(newLine);
|
|
102
102
|
let found = false;
|
|
103
|
-
const updated = lines.map(line => {
|
|
103
|
+
const updated = lines.map((line) => {
|
|
104
104
|
if (hasDate(line) && stripDate(line) === strippedNew) {
|
|
105
105
|
found = true;
|
|
106
106
|
return newLine;
|
|
@@ -109,194 +109,61 @@ export function upsertEntry(section, content) {
|
|
|
109
109
|
});
|
|
110
110
|
if (!found)
|
|
111
111
|
updated.push(newLine);
|
|
112
|
-
writeProfile(before +
|
|
112
|
+
writeProfile(before + "\n" + updated.join("\n") + "\n" + after);
|
|
113
113
|
}
|
|
114
114
|
/** Добавляет заметку в указанную секцию профиля */
|
|
115
|
-
export function appendNote(note, section =
|
|
115
|
+
export function appendNote(note, section = "Notes") {
|
|
116
116
|
upsertEntry(section, note);
|
|
117
117
|
}
|
|
118
118
|
/** Собирает информацию об ОС (вызывается при старте REPL, один раз) */
|
|
119
119
|
export function collectOS() {
|
|
120
120
|
const existing = loadProfile();
|
|
121
|
-
if (existing.includes(
|
|
121
|
+
if (existing.includes("## OS"))
|
|
122
122
|
return;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
catch { }
|
|
128
|
-
upsertEntry('OS', `Platform: ${platform()}`);
|
|
129
|
-
upsertEntry('OS', `Version: ${osVer}`);
|
|
130
|
-
upsertEntry('OS', `Hostname: ${hostname()}`);
|
|
131
|
-
upsertEntry('OS', `Node.js: ${process.version}`);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Собирает информацию о технологическом стеке из package.json.
|
|
135
|
-
* Классифицирует зависимости по категориям:
|
|
136
|
-
* Runtime, Framework, UI, Styling, Database, Build, Testing, Lint
|
|
137
|
-
*/
|
|
138
|
-
export function collectTechStack() {
|
|
139
|
-
const pkgPath = join(process.cwd(), 'package.json');
|
|
140
|
-
if (!existsSync(pkgPath))
|
|
141
|
-
return;
|
|
142
|
-
let pkg;
|
|
143
|
-
try {
|
|
144
|
-
pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
const allDeps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
|
|
150
|
-
const depNames = Object.keys(allDeps);
|
|
151
|
-
const techCategories = {
|
|
152
|
-
Runtime: ['node', 'bun', 'deno'],
|
|
153
|
-
Framework: ['next', 'remix', 'nuxt', 'astro', 'svelte', 'vue', 'angular', 'express', 'fastify', 'hono', 'nest'],
|
|
154
|
-
UI: ['react', 'preact', 'solid', 'lit'],
|
|
155
|
-
Styling: ['tailwind', 'sass', 'less', 'styled-components', 'emotion', 'css-modules'],
|
|
156
|
-
Database: ['prisma', 'drizzle', 'typeorm', 'mongoose', 'sequelize', 'knex', 'pg', 'mysql', 'sqlite'],
|
|
157
|
-
Build: ['vite', 'webpack', 'esbuild', 'rollup', 'parcel', 'turbo'],
|
|
158
|
-
Testing: ['vitest', 'jest', 'mocha', 'cypress', 'playwright', 'testing-library'],
|
|
159
|
-
Lint: ['eslint', 'prettier', 'biome'],
|
|
160
|
-
};
|
|
161
|
-
for (const dep of depNames) {
|
|
162
|
-
let categorized = false;
|
|
163
|
-
for (const [category, keywords] of Object.entries(techCategories)) {
|
|
164
|
-
if (keywords.some(k => dep.toLowerCase().includes(k))) {
|
|
165
|
-
upsertEntry('Tech Stack', `${dep} (${category})`);
|
|
166
|
-
categorized = true;
|
|
167
|
-
break;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
if (!categorized && !dep.startsWith('@types/') && !dep.startsWith('typescript') && !dep.startsWith('@')) {
|
|
171
|
-
upsertEntry('Tech Stack', dep);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Собирает информацию о стиле кодирования из записанного файла.
|
|
177
|
-
* Определяет:
|
|
178
|
-
* - Индентацию (табуляция / N пробелов)
|
|
179
|
-
* - Тип кавычек (одинарные / двойные)
|
|
180
|
-
* - Наличие точек с запятой
|
|
181
|
-
*/
|
|
182
|
-
export function collectCodingStyle(filePath, content) {
|
|
183
|
-
const ext = filePath.split('.').pop()?.toLowerCase() || '';
|
|
184
|
-
if (!['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs'].includes(ext))
|
|
185
|
-
return;
|
|
186
|
-
const lines = content.split('\n');
|
|
187
|
-
const nonEmptyLines = lines.filter(l => l.trim().length > 0);
|
|
188
|
-
if (nonEmptyLines.length < 3)
|
|
189
|
-
return;
|
|
190
|
-
const indentLines = nonEmptyLines.filter(l => l[0] === ' ' || l[0] === '\t');
|
|
191
|
-
if (indentLines.length > 0) {
|
|
192
|
-
const firstIndent = indentLines[0];
|
|
193
|
-
if (firstIndent[0] === '\t') {
|
|
194
|
-
upsertEntry('Coding Style', 'Индентация: табуляция');
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
const spaceCount = firstIndent.search(/\S/);
|
|
198
|
-
upsertEntry('Coding Style', `Индентация: ${spaceCount} пробела`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
const singleQ = lines.filter(l => l.includes("'") && !l.includes('"'));
|
|
202
|
-
const doubleQ = lines.filter(l => l.includes('"') && !l.includes("'"));
|
|
203
|
-
if (singleQ.length > doubleQ.length * 1.5) {
|
|
204
|
-
upsertEntry('Coding Style', 'Кавычки: одинарные');
|
|
205
|
-
}
|
|
206
|
-
else if (doubleQ.length > singleQ.length * 1.5) {
|
|
207
|
-
upsertEntry('Coding Style', 'Кавычки: двойные');
|
|
208
|
-
}
|
|
209
|
-
const semiLines = lines.filter(l => l.trim().endsWith(';') && !l.trim().startsWith('//') && !l.trim().startsWith('/*'));
|
|
210
|
-
const noSemiLines = lines.filter(l => {
|
|
211
|
-
const t = l.trim();
|
|
212
|
-
return t.length > 0 && !t.endsWith(';') && !t.startsWith('//') && !t.startsWith('/*') && !t.startsWith('*') && !t.startsWith('import') && !t.startsWith('export') && !t.startsWith('{') && !t.startsWith('}') && !t.startsWith('(') && !t.endsWith('{') && !t.endsWith('}') && !t.endsWith(',');
|
|
213
|
-
});
|
|
214
|
-
if (semiLines.length > noSemiLines.length * 2) {
|
|
215
|
-
upsertEntry('Coding Style', 'Точки с запятой: да');
|
|
216
|
-
}
|
|
217
|
-
else if (noSemiLines.length > semiLines.length * 2) {
|
|
218
|
-
upsertEntry('Coding Style', 'Точки с запятой: нет');
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
/** Регистрирует начало сессии (вызывается при старте REPL) */
|
|
222
|
-
export function collectSessionStart() {
|
|
223
|
-
const now = new Date();
|
|
224
|
-
const dateStr = now.toISOString().split('T')[0];
|
|
225
|
-
const timeStr = now.toLocaleTimeString('ru-RU');
|
|
226
|
-
upsertEntry('Session Patterns', `Сессия начата: ${dateStr} ${timeStr}`);
|
|
227
|
-
let counter = 1;
|
|
228
|
-
try {
|
|
229
|
-
if (existsSync(COUNTER_FILE)) {
|
|
230
|
-
counter = parseInt(readFileSync(COUNTER_FILE, 'utf-8').trim(), 10) + 1;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
catch { }
|
|
234
|
-
try {
|
|
235
|
-
writeFileSync(COUNTER_FILE, String(counter), 'utf-8');
|
|
236
|
-
}
|
|
237
|
-
catch { }
|
|
238
|
-
}
|
|
239
|
-
/** Регистрирует завершение сессии (вызывается при остановке REPL) */
|
|
240
|
-
export function sessionEnded() {
|
|
241
|
-
const timeStr = new Date().toLocaleTimeString('ru-RU');
|
|
242
|
-
upsertEntry('Session Patterns', `Сессия завершена: ${timeStr}`);
|
|
123
|
+
const osVer = `${platform()} (${osVersion()})`;
|
|
124
|
+
upsertEntry("OS", `Platform: ${platform()}`);
|
|
125
|
+
upsertEntry("OS", `Version: ${osVer}`);
|
|
126
|
+
upsertEntry("OS", `Node.js: ${process.version}`);
|
|
243
127
|
}
|
|
244
128
|
/**
|
|
245
129
|
* Формирует блок для system prompt с учётом версионности.
|
|
246
|
-
* Записи старше STALE_DAYS помечаются как (stale Nd ago).
|
|
247
|
-
* Секция Notes исключается.
|
|
248
130
|
*/
|
|
249
131
|
export function loadProfileSummary() {
|
|
250
132
|
const profile = loadProfile();
|
|
251
133
|
if (!profile)
|
|
252
|
-
return
|
|
253
|
-
const lines = profile.split(
|
|
134
|
+
return "";
|
|
135
|
+
const lines = profile.split("\n");
|
|
254
136
|
const sections = [];
|
|
255
|
-
let currentSection =
|
|
137
|
+
let currentSection = "";
|
|
256
138
|
let items = [];
|
|
257
139
|
for (const line of lines) {
|
|
258
|
-
if (line.startsWith(
|
|
259
|
-
if (currentSection && currentSection !==
|
|
260
|
-
sections.push(` ${currentSection}: ${items.join(
|
|
140
|
+
if (line.startsWith("## ")) {
|
|
141
|
+
if (currentSection && currentSection !== "Notes" && items.length > 0) {
|
|
142
|
+
sections.push(` ${currentSection}: ${items.join(", ")}`);
|
|
261
143
|
}
|
|
262
|
-
currentSection = line.replace(
|
|
144
|
+
currentSection = line.replace("## ", "").trim();
|
|
263
145
|
items = [];
|
|
264
146
|
}
|
|
265
|
-
else if (line.startsWith(
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
if (match) {
|
|
272
|
-
val = match[2].trim();
|
|
273
|
-
ageDays = daysAgo(match[1]);
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
val = line.replace('- ', '').trim();
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
val = line.replace('- ', '').trim();
|
|
281
|
-
}
|
|
282
|
-
if (ageDays > STALE_DAYS && ageDays !== Infinity) {
|
|
283
|
-
val += ` (stale ${ageDays}d ago)`;
|
|
284
|
-
}
|
|
285
|
-
items.push(val);
|
|
147
|
+
else if (line.startsWith("- ") &&
|
|
148
|
+
currentSection &&
|
|
149
|
+
currentSection !== "Notes") {
|
|
150
|
+
const match = line.match(/^-\s*\[\d{4}-\d{2}-\d{2}\]\s*(.*)/);
|
|
151
|
+
if (match)
|
|
152
|
+
items.push(match[1].trim());
|
|
286
153
|
}
|
|
287
154
|
}
|
|
288
|
-
if (currentSection && currentSection !==
|
|
289
|
-
sections.push(` ${currentSection}: ${items.join(
|
|
155
|
+
if (currentSection && currentSection !== "Notes" && items.length > 0) {
|
|
156
|
+
sections.push(` ${currentSection}: ${items.join(", ")}`);
|
|
290
157
|
}
|
|
291
158
|
if (sections.length === 0)
|
|
292
|
-
return
|
|
293
|
-
return `\n## User Profile\n${sections.join(
|
|
159
|
+
return "";
|
|
160
|
+
return `\n## User Profile\n${sections.join("\n")}\n`;
|
|
294
161
|
}
|
|
295
162
|
/** Создаёт пустой профиль если не существует */
|
|
296
163
|
export function initDefaultProfile() {
|
|
297
164
|
ensureUserDir();
|
|
298
165
|
if (existsSync(PROFILE_FILE))
|
|
299
166
|
return;
|
|
300
|
-
writeProfile(
|
|
167
|
+
writeProfile("# User Profile\n\n");
|
|
301
168
|
}
|
|
302
169
|
//# sourceMappingURL=user-profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-profile.js","sourceRoot":"","sources":["../../src/agent/user-profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user-profile.js","sourceRoot":"","sources":["../../src/agent/user-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import type { ParsedCall } from
|
|
2
|
-
import type { ChatMessage } from
|
|
3
|
-
import type { OutputRenderer } from
|
|
1
|
+
import type { ParsedCall } from "../tools/parse-tool-call.js";
|
|
2
|
+
import type { ChatMessage } from "../llm/provider.js";
|
|
3
|
+
import type { OutputRenderer } from "../ui/renderer.js";
|
|
4
4
|
export declare class WriteEnforcer {
|
|
5
|
-
|
|
6
|
-
resetDirectWriteStreak(): void;
|
|
7
|
-
enforcePlan(validCalls: ParsedCall[], messages: ChatMessage[], planEnforcement: boolean, quiet?: boolean, renderer?: OutputRenderer): void;
|
|
8
|
-
enforceWriteStreak(validCalls: ParsedCall[], messages: ChatMessage[], directWriteStreakMax: number, quiet?: boolean, renderer?: OutputRenderer): void;
|
|
9
|
-
enforceSingleWrite(validCalls: ParsedCall[], messages: ChatMessage[], quiet?: boolean, renderer?: OutputRenderer): void;
|
|
5
|
+
enforceSingleWrite(_validCalls: ParsedCall[], _messages: ChatMessage[], _quiet?: boolean, _renderer?: OutputRenderer): void;
|
|
10
6
|
}
|
|
11
7
|
//# sourceMappingURL=write-enforcer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-enforcer.d.ts","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-enforcer.d.ts","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,qBAAa,aAAa;IACxB,kBAAkB,CAChB,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,WAAW,EAAE,EACxB,MAAM,CAAC,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,cAAc,GACzB,IAAI;CAKR"}
|
|
@@ -1,92 +1,8 @@
|
|
|
1
|
-
import { generateToolCallId } from '../tools/id-gen.js';
|
|
2
|
-
import { showPlan } from '../tools/plan.js';
|
|
3
1
|
export class WriteEnforcer {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
enforcePlan(validCalls, messages, planEnforcement, quiet, renderer) {
|
|
9
|
-
const planSteps = showPlan();
|
|
10
|
-
const hasMultiStepPlan = planEnforcement && !planSteps.startsWith('No active plan') && (planSteps.match(/\n/g) || []).length >= 3;
|
|
11
|
-
if (!hasMultiStepPlan)
|
|
12
|
-
return;
|
|
13
|
-
const directWrites = validCalls.filter(c => c.parsed.name === 'write_file' || c.parsed.name === 'edit_file');
|
|
14
|
-
const hasSubagent = validCalls.some(c => c.parsed.name === 'subagent');
|
|
15
|
-
if (directWrites.length === 0 || hasSubagent)
|
|
16
|
-
return;
|
|
17
|
-
for (const wc of directWrites) {
|
|
18
|
-
const idx = validCalls.indexOf(wc);
|
|
19
|
-
if (idx !== -1)
|
|
20
|
-
validCalls.splice(idx, 1);
|
|
21
|
-
const blockId = generateToolCallId();
|
|
22
|
-
messages.push({
|
|
23
|
-
role: 'tool',
|
|
24
|
-
content: 'BLOCKED: Multi-step plan active. Use subagent for each step. Example: subagent({task:"Create file X", existingFiles:"Y.ts"}). After subagent completes, mark step done: plan({action:"done", step:N})',
|
|
25
|
-
tool_call_id: blockId,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
if (!quiet) {
|
|
29
|
-
renderer?.writeWarning(` [blocked ${directWrites.length} direct writes — use subagent for multi-step plans]`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
enforceWriteStreak(validCalls, messages, directWriteStreakMax, quiet, renderer) {
|
|
33
|
-
if (directWriteStreakMax >= Infinity)
|
|
34
|
-
return;
|
|
35
|
-
const planSteps = showPlan();
|
|
36
|
-
const hasMultiStepPlan = !planSteps.startsWith('No active plan') && (planSteps.match(/\n/g) || []).length >= 3;
|
|
37
|
-
if (hasMultiStepPlan)
|
|
38
|
-
return;
|
|
39
|
-
const hasWrite = validCalls.some(c => c.parsed.name === 'write_file');
|
|
40
|
-
const hasSubagentNow = validCalls.some(c => c.parsed.name === 'subagent');
|
|
41
|
-
if (hasSubagentNow) {
|
|
42
|
-
this.directWriteStreak = 0;
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (!hasWrite)
|
|
46
|
-
return;
|
|
47
|
-
const writeCount = validCalls.filter(c => c.parsed.name === 'write_file').length;
|
|
48
|
-
this.directWriteStreak += writeCount;
|
|
49
|
-
if (this.directWriteStreak < directWriteStreakMax)
|
|
50
|
-
return;
|
|
51
|
-
const directWrites = validCalls.filter(c => c.parsed.name === 'write_file');
|
|
52
|
-
for (const wc of directWrites) {
|
|
53
|
-
const idx = validCalls.indexOf(wc);
|
|
54
|
-
if (idx !== -1)
|
|
55
|
-
validCalls.splice(idx, 1);
|
|
56
|
-
}
|
|
57
|
-
if (directWrites.length > 0) {
|
|
58
|
-
const blockId = generateToolCallId();
|
|
59
|
-
messages.push({
|
|
60
|
-
role: 'tool',
|
|
61
|
-
content: `BLOCKED: You're creating file #${this.directWriteStreak} without subagent. For 3+ new files, use subagent for each one. Example: subagent("Create file X. Context: Y already exists.")`,
|
|
62
|
-
tool_call_id: blockId,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
if (!quiet) {
|
|
66
|
-
renderer?.writeWarning(` [blocked ${directWrites.length} writes: ${this.directWriteStreak} files without subagent — use subagent for multi-file projects]`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
enforceSingleWrite(validCalls, messages, quiet, renderer) {
|
|
70
|
-
const writeCalls = validCalls.filter(c => c.parsed.name === 'write_file' || c.parsed.name === 'edit_file');
|
|
71
|
-
if (writeCalls.length <= 1)
|
|
72
|
-
return;
|
|
73
|
-
const blocked = writeCalls.slice(1);
|
|
74
|
-
const firstBlocked = blocked[0];
|
|
75
|
-
const startIdx = validCalls.indexOf(firstBlocked);
|
|
76
|
-
if (startIdx !== -1) {
|
|
77
|
-
validCalls.splice(startIdx, blocked.length);
|
|
78
|
-
}
|
|
79
|
-
for (const bc of blocked) {
|
|
80
|
-
const blockId = generateToolCallId();
|
|
81
|
-
messages.push({
|
|
82
|
-
role: 'tool',
|
|
83
|
-
content: `BLOCKED: Only one file write per response is allowed. You wrote ${writeCalls.length} files at once. Complete the first file, then write the next one.`,
|
|
84
|
-
tool_call_id: blockId,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
if (!quiet) {
|
|
88
|
-
renderer?.writeWarning(` [blocked ${blocked.length} extra file writes — one at a time]`);
|
|
89
|
-
}
|
|
2
|
+
enforceSingleWrite(_validCalls, _messages, _quiet, _renderer) {
|
|
3
|
+
// Больше не блокируем множественные записи.
|
|
4
|
+
// Синтаксическая проверка работает per-file,
|
|
5
|
+
// а write-трекинг ведётся через createdFiles.
|
|
90
6
|
}
|
|
91
7
|
}
|
|
92
8
|
//# sourceMappingURL=write-enforcer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-enforcer.js","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-enforcer.js","sourceRoot":"","sources":["../../src/agent/write-enforcer.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACxB,kBAAkB,CAChB,WAAyB,EACzB,SAAwB,EACxB,MAAgB,EAChB,SAA0B;QAE1B,4CAA4C;QAC5C,6CAA6C;QAC7C,8CAA8C;IAChD,CAAC;CACF"}
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC;;;;;;;;;GASG;AAEH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC;;;;;;;;;GASG;AAEH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8E7D"}
|
package/dist/cli/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { loadConfig, saveConfig } from "../config/config.js";
|
|
1
|
+
import { loadConfig, saveConfig, DEFAULT_CONFIG } from "../config/config.js";
|
|
2
2
|
import { getTheme } from "../styling/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* CLI-команды управления конфигурацией.
|
|
@@ -29,30 +29,7 @@ export function registerConfigCommands(program) {
|
|
|
29
29
|
const theme = getTheme();
|
|
30
30
|
config.providers = {};
|
|
31
31
|
config.active = { provider: "lmstudio", model: "qwen/qwen3.5-9b" };
|
|
32
|
-
config.agent =
|
|
33
|
-
maxSteps: 100,
|
|
34
|
-
autoCompact: true,
|
|
35
|
-
compactThreshold: 0.7,
|
|
36
|
-
toolTimeout: 120,
|
|
37
|
-
maxOutputLength: 2000,
|
|
38
|
-
showThinking: false,
|
|
39
|
-
skillTokenBudget: 4000,
|
|
40
|
-
maxSkillsBase: 2,
|
|
41
|
-
maxSkillsPro: 0,
|
|
42
|
-
specialist: {
|
|
43
|
-
enabled: true,
|
|
44
|
-
triggerThreshold: 2,
|
|
45
|
-
maxSteps: 10,
|
|
46
|
-
minErrorLength: 15,
|
|
47
|
-
},
|
|
48
|
-
grounding: {
|
|
49
|
-
enabled: true,
|
|
50
|
-
strictMode: true,
|
|
51
|
-
checkFiles: true,
|
|
52
|
-
maxMissingGrounding: 2,
|
|
53
|
-
maxConsecutiveGroundingErrors: 5,
|
|
54
|
-
},
|
|
55
|
-
};
|
|
32
|
+
config.agent = JSON.parse(JSON.stringify(DEFAULT_CONFIG.agent));
|
|
56
33
|
saveConfig(config);
|
|
57
34
|
console.log(theme.successMsg("Configuration reset to defaults"));
|
|
58
35
|
});
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+JpC,wBAAgB,SAAS,YA2OxB"}
|