viberadar 0.3.205 → 0.3.207
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/server/index.d.ts.map +1 -1
- package/dist/server/index.js +45 -20
- package/dist/server/index.js.map +1 -1
- package/dist/ui/dashboard.html +73 -95
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,UAAU,EAA4H,MAAM,YAAY,CAAC;AAOlK,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AA0vED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAggG1G"}
|
package/dist/server/index.js
CHANGED
|
@@ -1253,8 +1253,11 @@ function buildObsFeatureReviewPrompt(featureKey, data) {
|
|
|
1253
1253
|
.slice(0, 5)
|
|
1254
1254
|
.map(fp => ` - строка ~${fp.lineApprox}: ${FP_TYPE_LABELS[fp.type] || fp.type} — \`${fp.snippet}\``)
|
|
1255
1255
|
.join('\n');
|
|
1256
|
+
const coverageState = item.hasAnyWarnError
|
|
1257
|
+
? 'часть warn/error уже есть, но не все точки покрыты'
|
|
1258
|
+
: 'warn/error покрытия не найдено';
|
|
1256
1259
|
return [
|
|
1257
|
-
`- ${item.modulePath} (${item.
|
|
1260
|
+
`- ${item.modulePath} (${item.failurePoints.length} точек отказа; ${coverageState})`,
|
|
1258
1261
|
fpLines || ` - Нет warn/error покрытия: найди точки отказа вручную`,
|
|
1259
1262
|
].join('\n');
|
|
1260
1263
|
});
|
|
@@ -1301,7 +1304,7 @@ function buildObsFeatureReviewPrompt(featureKey, data) {
|
|
|
1301
1304
|
...catalogLines,
|
|
1302
1305
|
``,
|
|
1303
1306
|
`Правила принятия решений:`,
|
|
1304
|
-
`- Для
|
|
1307
|
+
`- Для каждой точки/лога сначала определи: add_error_log | add_warn_log | enrich_fields | remove_noise | downgrade_to_debug | keep_without_log | keep | needs_human_review.`,
|
|
1305
1308
|
`- Никогда не трогай logger.warn/logger.error/logger.fatal как "шум".`,
|
|
1306
1309
|
`- Не понижай ERROR/WARN уровни.`,
|
|
1307
1310
|
`- Не добавляй ERROR-лог для штатных 400/401/403/404/409/422, validation/not-found/conflict/domain ошибок, если это ожидаемый ответ API.`,
|
|
@@ -1311,7 +1314,7 @@ function buildObsFeatureReviewPrompt(featureKey, data) {
|
|
|
1311
1314
|
`- В payload логгера используй только переменные из текущего scope; не угадывай поля из типов.`,
|
|
1312
1315
|
`- Не добавляй process.env в клиентские Vite/React файлы; используй import.meta.env.MODE, если env реально нужен.`,
|
|
1313
1316
|
``,
|
|
1314
|
-
`Перед правками выведи краткий план: файл, действие, причина. Если уверенность низкая — не меняй код, пометь как needs_human_review.`,
|
|
1317
|
+
`Перед правками выведи краткий план: файл, действие, причина. Меняй код только для add_error_log/add_warn_log/enrich_fields/remove_noise/downgrade_to_debug. Если уверенность низкая — не меняй код, пометь как needs_human_review.`,
|
|
1315
1318
|
``,
|
|
1316
1319
|
`Проверка после изменений:`,
|
|
1317
1320
|
`- npm run check -- --pretty false или npm run typecheck, если check отсутствует.`,
|
|
@@ -1324,17 +1327,24 @@ function buildObsAddCriticalLogsPrompt(modulePath, catalog) {
|
|
|
1324
1327
|
const moduleItem = catalog.find(c => c.modulePath === modulePath);
|
|
1325
1328
|
const missingFields = moduleItem?.missingFields || [];
|
|
1326
1329
|
return [
|
|
1327
|
-
|
|
1330
|
+
`Проверь точки отказа и добавь нужные warn/error логи в модуль \`${modulePath}\`.`,
|
|
1328
1331
|
``,
|
|
1329
|
-
|
|
1332
|
+
`VibeRadar не нашёл достаточного warn/error покрытия. Это статический сигнал, а не приказ логировать всё подряд.`,
|
|
1330
1333
|
``,
|
|
1331
1334
|
moduleItem
|
|
1332
1335
|
? `Текущее состояние модуля:\n- Формат: ${moduleItem.format}\n- Уровень: ${moduleItem.level}\n- Пропущенные поля: ${missingFields.length > 0 ? missingFields.join(', ') : 'нет'}`
|
|
1333
1336
|
: '',
|
|
1334
1337
|
``,
|
|
1338
|
+
`Важно: VibeRadar дал кандидатов, а не список обязательных правок.`,
|
|
1339
|
+
`Сначала классифицируй каждую точку:`,
|
|
1340
|
+
`- add_error_log — реальный неожиданный сбой операции, должен быть виден в production`,
|
|
1341
|
+
`- add_warn_log — деградация, retry, graceful fallback или частичный результат`,
|
|
1342
|
+
`- keep_without_log — ожидаемый domain/validation/not-found/conflict/permission ответ, UI validation или intentional fallback`,
|
|
1343
|
+
`- needs_human_review — контекст спорный`,
|
|
1344
|
+
``,
|
|
1335
1345
|
`Что сделать:`,
|
|
1336
1346
|
`- Найди в модуле точки, где может произойти ошибка (catch-блоки, проверки null/undefined, HTTP-ответы с ошибкой, DB-ошибки)`,
|
|
1337
|
-
`-
|
|
1347
|
+
`- Меняй код только для add_error_log/add_warn_log`,
|
|
1338
1348
|
`- НЕ добавляй ERROR-лог для штатных validation/not-found/conflict/domain throws, если это ожидаемый ответ API`,
|
|
1339
1349
|
`- НЕ логируй намеренные .catch(() => null/undefined) cleanup/json-parse fallbacks без реального operational риска`,
|
|
1340
1350
|
`- Каждый лог должен включать: event_name, outcome, error_code (для error)`,
|
|
@@ -1357,9 +1367,8 @@ function buildObsAddCriticalLogsPromptV2(item, catalog) {
|
|
|
1357
1367
|
const catalogEntry = catalog.find(c => c.modulePath === item.modulePath);
|
|
1358
1368
|
const fpDescriptions = item.failurePoints.map(fp => `- Строка ~${fp.lineApprox}: ${FP_TYPE_LABELS[fp.type] || fp.type}\n \`${fp.snippet}\``).join('\n');
|
|
1359
1369
|
return [
|
|
1360
|
-
|
|
1370
|
+
`Проверь точки отказа и добавь нужные warn/error логи в модуль \`${item.modulePath}\`.`,
|
|
1361
1371
|
``,
|
|
1362
|
-
`Роль модуля: ${item.roleHint} (приоритет: ${item.riskTier})`,
|
|
1363
1372
|
item.hasAnyWarnError
|
|
1364
1373
|
? `В модуле есть некоторые warn/error, но обнаружены незакрытые точки отказа.`
|
|
1365
1374
|
: `В модуле НЕТ ни одного warn/error. При сбоях мы не увидим ошибку в логах.`,
|
|
@@ -1371,13 +1380,17 @@ function buildObsAddCriticalLogsPromptV2(item, catalog) {
|
|
|
1371
1380
|
`Обнаруженные точки отказа без логирования (${item.failurePoints.length}):`,
|
|
1372
1381
|
fpDescriptions,
|
|
1373
1382
|
``,
|
|
1383
|
+
`Важно: VibeRadar дал кандидатов, а не список обязательных правок.`,
|
|
1374
1384
|
`Что сделать с каждой точкой:`,
|
|
1375
|
-
`-
|
|
1376
|
-
`-
|
|
1377
|
-
`-
|
|
1378
|
-
`-
|
|
1379
|
-
`-
|
|
1380
|
-
`-
|
|
1385
|
+
`- Сначала прочитай контекст и реши: add_error_log | add_warn_log | keep_without_log | needs_human_review.`,
|
|
1386
|
+
`- Меняй код только для add_error_log/add_warn_log.`,
|
|
1387
|
+
`- Пустые catch-блоки: добавь logger.error только если ошибка реально теряется и влияет на операцию.`,
|
|
1388
|
+
`- catch без лога: добавь logger.error/warn рядом с обработкой ошибки, если это operational-сбой.`,
|
|
1389
|
+
`- .catch() без лога: добавь лог только если это не намеренный безопасный fallback/cleanup.`,
|
|
1390
|
+
`- HTTP/DB без обработки: оберни в try/catch с logger.error только при реальном риске потери сбоя.`,
|
|
1391
|
+
`- throw без лога: НЕ добавляй лог для штатных validation/not-found/conflict/domain ошибок.`,
|
|
1392
|
+
`- if(err) без лога: добавь logger.warn/error в ветку ошибки, если ошибка должна быть видна в production.`,
|
|
1393
|
+
`- Для keep_without_log не добавляй лог даже если VibeRadar подсветил точку.`,
|
|
1381
1394
|
``,
|
|
1382
1395
|
`Каждый лог: event_name, outcome, error_code (для error).`,
|
|
1383
1396
|
`event_name: <domain>.<entity>.<action> (lower_snake_case через точку)`,
|
|
@@ -1395,7 +1408,8 @@ function guessTestFile(modulePath) {
|
|
|
1395
1408
|
function buildObsBatchAddCriticalLogsPrompt(items, catalog) {
|
|
1396
1409
|
const moduleBlocks = items.map(item => {
|
|
1397
1410
|
const fpSummary = item.failurePoints.map(fp => ` - строка ~${fp.lineApprox}: ${FP_TYPE_LABELS[fp.type] || fp.type} — \`${fp.snippet}\``).join('\n');
|
|
1398
|
-
|
|
1411
|
+
const coverageState = item.hasAnyWarnError ? 'частично покрыто warn/error' : 'warn/error не найдено';
|
|
1412
|
+
return `### \`${item.modulePath}\` (${item.failurePoints.length} точек отказа; ${coverageState})\n${fpSummary || ' - Нет warn/error, проверь весь модуль на точки отказа'}`;
|
|
1399
1413
|
}).join('\n\n');
|
|
1400
1414
|
const testCommands = items
|
|
1401
1415
|
.map(item => guessTestFile(item.modulePath))
|
|
@@ -1404,9 +1418,20 @@ function buildObsBatchAddCriticalLogsPrompt(items, catalog) {
|
|
|
1404
1418
|
.map(f => ` npm run test -- ${f}`)
|
|
1405
1419
|
.join('\n');
|
|
1406
1420
|
return [
|
|
1407
|
-
|
|
1421
|
+
`Проверь точки отказа и добавь нужные warn/error логи в ${items.length} модулей.`,
|
|
1422
|
+
``,
|
|
1423
|
+
`Для каждого модуля: прочитай контекст точек отказа (указаны ниже) и добавь logger.warn/error только там, где это реальный operational-сбой.`,
|
|
1424
|
+
``,
|
|
1425
|
+
`Важно: VibeRadar дал список кандидатов, а не список обязательных правок.`,
|
|
1426
|
+
`Перед любым изменением классифицируй каждую точку:`,
|
|
1427
|
+
`- add_error_log — реальный неожиданный сбой операции, должен быть виден в production`,
|
|
1428
|
+
`- add_warn_log — деградация, retry, graceful fallback или частичный результат`,
|
|
1429
|
+
`- keep_without_log — ожидаемый domain/validation/not-found/conflict/permission ответ, UI validation, intentional cleanup или best-effort fallback`,
|
|
1430
|
+
`- needs_human_review — контекст спорный или уверенность низкая`,
|
|
1408
1431
|
``,
|
|
1409
|
-
|
|
1432
|
+
`Меняй код только для add_error_log/add_warn_log.`,
|
|
1433
|
+
`Для keep_without_log не добавляй лог даже если VibeRadar подсветил точку.`,
|
|
1434
|
+
`В финальном ответе отдельно перечисли: что изменил, что оставил без изменений и почему.`,
|
|
1410
1435
|
``,
|
|
1411
1436
|
moduleBlocks,
|
|
1412
1437
|
``,
|
|
@@ -1415,8 +1440,8 @@ function buildObsBatchAddCriticalLogsPrompt(items, catalog) {
|
|
|
1415
1440
|
`- outcome: failure|partial`,
|
|
1416
1441
|
`- error_code из словаря (VALIDATION_ERROR, DEPENDENCY_TIMEOUT, INTERNAL_ERROR и т.д.)`,
|
|
1417
1442
|
`- Не стремись обнулить все сигналы VibeRadar: validation/not-found/conflict/domain throws и intentional silent fallbacks можно оставить без ERROR-лога`,
|
|
1418
|
-
`- Пустые catch: добавь logger.error
|
|
1419
|
-
`- HTTP/DB без обработки: оберни в try/catch с logger.error`,
|
|
1443
|
+
`- Пустые catch: добавь logger.error только если ошибка теряется и влияет на операцию; intentional cleanup/best-effort fallback можно оставить без error-лога или оформить как debug/warn по контексту`,
|
|
1444
|
+
`- HTTP/DB без обработки: оберни в try/catch с logger.error только если ошибка не обрабатывается выше и должна быть видна в production`,
|
|
1420
1445
|
`- В payload-объекте логгера используй ТОЛЬКО переменные из текущего скоупа (не угадывай имена полей из типов)`,
|
|
1421
1446
|
``,
|
|
1422
1447
|
`⚠️ ВАЖНО — React / Vite файлы (.tsx):`,
|
|
@@ -3327,7 +3352,7 @@ function startServer({ data: initialData, port, projectRoot }) {
|
|
|
3327
3352
|
}
|
|
3328
3353
|
else if (task === 'obs-add-critical-logs') {
|
|
3329
3354
|
const modulePath = meta?.modulePath || 'unknown';
|
|
3330
|
-
title = `${agentLabel} — добавить
|
|
3355
|
+
title = `${agentLabel} — добавить логи точек отказа в "${modulePath}"`;
|
|
3331
3356
|
}
|
|
3332
3357
|
else if (task === 'obs-enrich-field') {
|
|
3333
3358
|
const fieldName = meta?.fieldName || 'unknown';
|