mister-wolf 2.10.0 → 2.12.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/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +337 -94
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/analytics.d.ts +1 -1
- package/dist/adapters/cli/commands/analytics.d.ts.map +1 -1
- package/dist/adapters/cli/commands/analytics.js +30 -1
- package/dist/adapters/cli/commands/analytics.js.map +1 -1
- package/dist/adapters/cli/commands/memory-brief.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-brief.js +15 -2
- package/dist/adapters/cli/commands/memory-brief.js.map +1 -1
- package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-call.js +54 -3
- package/dist/adapters/cli/commands/memory-call.js.map +1 -1
- package/dist/adapters/cli/commands/memory-recap.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-recap.js +16 -1
- package/dist/adapters/cli/commands/memory-recap.js.map +1 -1
- package/dist/adapters/fs/config-file.d.ts +8 -0
- package/dist/adapters/fs/config-file.d.ts.map +1 -1
- package/dist/adapters/fs/config-file.js +57 -2
- package/dist/adapters/fs/config-file.js.map +1 -1
- package/dist/adapters/fs/heuristic-project-scanner.d.ts +10 -0
- package/dist/adapters/fs/heuristic-project-scanner.d.ts.map +1 -1
- package/dist/adapters/fs/heuristic-project-scanner.js +58 -1
- package/dist/adapters/fs/heuristic-project-scanner.js.map +1 -1
- package/dist/adapters/fs/markdown-memory-store.d.ts +2 -0
- package/dist/adapters/fs/markdown-memory-store.d.ts.map +1 -1
- package/dist/adapters/fs/markdown-memory-store.js +25 -1
- package/dist/adapters/fs/markdown-memory-store.js.map +1 -1
- package/dist/adapters/fs/scan-snapshot-cache.d.ts +23 -0
- package/dist/adapters/fs/scan-snapshot-cache.d.ts.map +1 -0
- package/dist/adapters/fs/scan-snapshot-cache.js +36 -0
- package/dist/adapters/fs/scan-snapshot-cache.js.map +1 -0
- package/dist/adapters/fs/session-delivery-registry.d.ts +31 -0
- package/dist/adapters/fs/session-delivery-registry.d.ts.map +1 -0
- package/dist/adapters/fs/session-delivery-registry.js +104 -0
- package/dist/adapters/fs/session-delivery-registry.js.map +1 -0
- package/dist/adapters/fs/session-metrics-log.d.ts +15 -3
- package/dist/adapters/fs/session-metrics-log.d.ts.map +1 -1
- package/dist/adapters/fs/session-metrics-log.js +150 -29
- package/dist/adapters/fs/session-metrics-log.js.map +1 -1
- package/dist/adapters/mcp/mcp-schemas.d.ts +10 -1
- package/dist/adapters/mcp/mcp-schemas.d.ts.map +1 -1
- package/dist/adapters/mcp/mcp-schemas.js +29 -0
- package/dist/adapters/mcp/mcp-schemas.js.map +1 -1
- package/dist/adapters/mcp/mcp-tools.d.ts.map +1 -1
- package/dist/adapters/mcp/mcp-tools.js +72 -19
- package/dist/adapters/mcp/mcp-tools.js.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.d.ts +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.js +47 -8
- package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
- package/dist/adapters/render/sync-state.d.ts +9 -0
- package/dist/adapters/render/sync-state.d.ts.map +1 -0
- package/dist/adapters/render/sync-state.js +32 -0
- package/dist/adapters/render/sync-state.js.map +1 -0
- package/dist/adapters/sqlite/sqlite-search-index.d.ts +6 -1
- package/dist/adapters/sqlite/sqlite-search-index.d.ts.map +1 -1
- package/dist/adapters/sqlite/sqlite-search-index.js +47 -25
- package/dist/adapters/sqlite/sqlite-search-index.js.map +1 -1
- package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/add-memory-object.js +2 -1
- package/dist/app/use-cases/add-memory-object.js.map +1 -1
- package/dist/app/use-cases/build-analytics.d.ts +64 -1
- package/dist/app/use-cases/build-analytics.d.ts.map +1 -1
- package/dist/app/use-cases/build-analytics.js +157 -0
- package/dist/app/use-cases/build-analytics.js.map +1 -1
- package/dist/app/use-cases/generate-agent-brief.d.ts.map +1 -1
- package/dist/app/use-cases/generate-agent-brief.js +3 -0
- package/dist/app/use-cases/generate-agent-brief.js.map +1 -1
- package/dist/app/use-cases/generate-recap.d.ts +14 -0
- package/dist/app/use-cases/generate-recap.d.ts.map +1 -1
- package/dist/app/use-cases/generate-recap.js +37 -0
- package/dist/app/use-cases/generate-recap.js.map +1 -1
- package/dist/app/use-cases/get-call-injections.d.ts +6 -0
- package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
- package/dist/app/use-cases/get-call-injections.js +26 -8
- package/dist/app/use-cases/get-call-injections.js.map +1 -1
- package/dist/app/use-cases/scan-project.d.ts +36 -1
- package/dist/app/use-cases/scan-project.d.ts.map +1 -1
- package/dist/app/use-cases/scan-project.js +91 -37
- package/dist/app/use-cases/scan-project.js.map +1 -1
- package/dist/domain/error-class.d.ts.map +1 -1
- package/dist/domain/error-class.js +5 -0
- package/dist/domain/error-class.js.map +1 -1
- package/dist/domain/memory-types.d.ts.map +1 -1
- package/dist/domain/memory-types.js +7 -2
- package/dist/domain/memory-types.js.map +1 -1
- package/dist/domain/router-log.d.ts +8 -2
- package/dist/domain/router-log.d.ts.map +1 -1
- package/dist/domain/router-log.js +14 -2
- package/dist/domain/router-log.js.map +1 -1
- package/dist/domain/schemas/relation-schema.d.ts +1 -1
- package/package.json +1 -1
- package/templates/base/agents/executor-lead.md +5 -3
- package/templates/base/playbooks/executor-lead-playbook.md +68 -0
- package/templates/opencode/plugins/wolf-router.ts +102 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-agent-brief.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/generate-agent-brief.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAI9E,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,EAC1D,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"generate-agent-brief.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/generate-agent-brief.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAI9E,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,EAC1D,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,wBAAwB,CAAC,CAkCnC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
2
|
import { briefsDir } from '../../adapters/fs/project-paths.js';
|
|
3
3
|
export async function generateAgentBrief(deps, root, snapshot) {
|
|
4
|
+
// T013: ровно ОДИН store.list() — MarkdownMemoryStore.list() в любом случае
|
|
5
|
+
// обходит все файлы, type-фильтры не сокращают IO; три фильтрованных вызова
|
|
6
|
+
// дали бы три полных прохода. С parse-кэшем стора это одна walk+stat-проходка.
|
|
4
7
|
const memoryObjects = await deps.store.list();
|
|
5
8
|
const acceptedMemory = memoryObjects
|
|
6
9
|
.filter((obj) => obj.review_state === 'accepted' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-agent-brief.js","sourceRoot":"","sources":["../../../src/app/use-cases/generate-agent-brief.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-agent-brief.js","sourceRoot":"","sources":["../../../src/app/use-cases/generate-agent-brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MemoryStore } from '../../ports/memory-store.port.js';
|
|
2
2
|
import { MemoryObject } from '../../domain/schemas/memory-object-schema.js';
|
|
3
|
+
import type { RouterLogRow } from '../../domain/router-log.js';
|
|
3
4
|
/** Сигнал «онбординг не завершён» (спека onboarding-pipeline-v2 §3, D6/D8). */
|
|
4
5
|
export type OnboardingSignal = {
|
|
5
6
|
kind: 'bootstrap';
|
|
@@ -7,6 +8,17 @@ export type OnboardingSignal = {
|
|
|
7
8
|
kind: 'continue';
|
|
8
9
|
threadId: string;
|
|
9
10
|
};
|
|
11
|
+
/** P110: панель наблюдаемости доставки по router.log (нет данных в окне → null, секция опускается). */
|
|
12
|
+
export interface RecapDelivery {
|
|
13
|
+
deliveries: number;
|
|
14
|
+
/** Промахи канона ⊆ доставок: hit-строки с variant === 'fallback'. */
|
|
15
|
+
fallbacks: number;
|
|
16
|
+
/** Топ-3 agentId по числу fallback-строк; сорт count убыв., потом агент. */
|
|
17
|
+
topMissAgents: {
|
|
18
|
+
agent: string;
|
|
19
|
+
count: number;
|
|
20
|
+
}[];
|
|
21
|
+
}
|
|
10
22
|
export interface RecapReport {
|
|
11
23
|
activeRules: MemoryObject[];
|
|
12
24
|
activeWorkThreads: MemoryObject[];
|
|
@@ -15,9 +27,11 @@ export interface RecapReport {
|
|
|
15
27
|
openInfoRequests: MemoryObject[];
|
|
16
28
|
recentDecisions: MemoryObject[];
|
|
17
29
|
onboarding: OnboardingSignal | null;
|
|
30
|
+
delivery: RecapDelivery | null;
|
|
18
31
|
}
|
|
19
32
|
export declare function generateRecap(deps: {
|
|
20
33
|
store: MemoryStore;
|
|
34
|
+
routerLogRows?: RouterLogRow[];
|
|
21
35
|
}): Promise<RecapReport>;
|
|
22
36
|
export declare function renderRecap(report: RecapReport): string;
|
|
23
37
|
//# sourceMappingURL=generate-recap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-recap.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/generate-recap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-recap.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/generate-recap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAK9F,uGAAuG;AACvG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;CAChC;AA4CD,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBvB;AA6BD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA0BvD"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { BOOTSTRAP_THREAD_TITLE } from './bootstrap-project.js';
|
|
2
|
+
/** P110: окно панели доставки в recap — 7 дней от «сейчас». */
|
|
3
|
+
const DELIVERY_WINDOW_MS = 7 * 86_400_000;
|
|
2
4
|
/**
|
|
3
5
|
* Правила вывода секции Onboarding (§3):
|
|
4
6
|
* 1. bootstrap-thread active → продолжение-сигнал (покрывает legacy без init-report);
|
|
@@ -14,6 +16,31 @@ function detectOnboarding(all) {
|
|
|
14
16
|
const hasInitReport = all.some((o) => o.type === 'report' && o.status === 'active' && o.tags.includes('wolf-init') && o.tags.includes('onboarding-v2'));
|
|
15
17
|
return hasInitReport ? { kind: 'bootstrap' } : null;
|
|
16
18
|
}
|
|
19
|
+
/** P110: доставки за 7 дней по router.log; NaN-ts — пропуск (fail-safe), пустое окно → null. */
|
|
20
|
+
function buildDeliveryStats(rows, nowMs) {
|
|
21
|
+
if (rows === undefined)
|
|
22
|
+
return null;
|
|
23
|
+
const inWindow = rows.filter((r) => {
|
|
24
|
+
const ts = Date.parse(r.ts);
|
|
25
|
+
return !Number.isNaN(ts) && ts >= nowMs - DELIVERY_WINDOW_MS;
|
|
26
|
+
});
|
|
27
|
+
if (inWindow.length === 0)
|
|
28
|
+
return null;
|
|
29
|
+
const hits = inWindow.filter((r) => r.hit);
|
|
30
|
+
const byAgent = new Map();
|
|
31
|
+
for (const r of hits) {
|
|
32
|
+
if (r.variant === 'fallback')
|
|
33
|
+
byAgent.set(r.agentId, (byAgent.get(r.agentId) ?? 0) + 1);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
deliveries: hits.length,
|
|
37
|
+
fallbacks: [...byAgent.values()].reduce((n, c) => n + c, 0),
|
|
38
|
+
topMissAgents: [...byAgent.entries()]
|
|
39
|
+
.map(([agent, count]) => ({ agent, count }))
|
|
40
|
+
.sort((a, b) => b.count - a.count || a.agent.localeCompare(b.agent))
|
|
41
|
+
.slice(0, 3),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
17
44
|
export async function generateRecap(deps) {
|
|
18
45
|
// ponytail: store.list() — полный reparse всех md (V6); ровно один вызов на отчёт (D1)
|
|
19
46
|
const all = await deps.store.list();
|
|
@@ -30,6 +57,7 @@ export async function generateRecap(deps) {
|
|
|
30
57
|
.sort((a, b) => b.updated_at.localeCompare(a.updated_at))
|
|
31
58
|
.slice(0, 5),
|
|
32
59
|
onboarding: detectOnboarding(all),
|
|
60
|
+
delivery: buildDeliveryStats(deps.routerLogRows, Date.now()),
|
|
33
61
|
};
|
|
34
62
|
}
|
|
35
63
|
function section(lines, title, items) {
|
|
@@ -61,6 +89,15 @@ export function renderRecap(report) {
|
|
|
61
89
|
if (report.onboarding !== null) {
|
|
62
90
|
section(lines, 'Onboarding', [onboardingText(report.onboarding)]);
|
|
63
91
|
}
|
|
92
|
+
// P110: панель доставки — после Onboarding, до Active rules; тело строки русское (Т3)
|
|
93
|
+
if (report.delivery !== null) {
|
|
94
|
+
const d = report.delivery;
|
|
95
|
+
let line = `доставок ${d.deliveries}, промахов ${d.fallbacks}`;
|
|
96
|
+
if (d.topMissAgents.length > 0) {
|
|
97
|
+
line += `, топ промахов: ${d.topMissAgents.map((a) => `${a.agent} (×${a.count})`).join(', ')}`;
|
|
98
|
+
}
|
|
99
|
+
section(lines, 'Delivery (7d)', [line]);
|
|
100
|
+
}
|
|
64
101
|
section(lines, 'Active rules', report.activeRules.map(fmtObj));
|
|
65
102
|
section(lines, 'Active work threads', report.activeWorkThreads.map(fmtObj));
|
|
66
103
|
section(lines, 'Open blockers', report.openBlockers.map(fmtObj));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-recap.js","sourceRoot":"","sources":["../../../src/app/use-cases/generate-recap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-recap.js","sourceRoot":"","sources":["../../../src/app/use-cases/generate-recap.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ export interface CallInjectionResult {
|
|
|
6
6
|
truncated: number;
|
|
7
7
|
/** Ф26: id объектов, реально попавших в вывод (срабатывание доставки → decay-пробег). */
|
|
8
8
|
deliveredIds: string[];
|
|
9
|
+
/** P108 (4.C): сколько объектов отфильтровано сессионной дедупликацией
|
|
10
|
+
* (id уже в реестре сессии с той же checksum блока). */
|
|
11
|
+
deduplicated: number;
|
|
9
12
|
}
|
|
10
13
|
export declare function getCallInjections(deps: {
|
|
11
14
|
store: MemoryStore;
|
|
@@ -15,5 +18,8 @@ export declare function getCallInjections(deps: {
|
|
|
15
18
|
topic?: string;
|
|
16
19
|
thread?: boolean | string;
|
|
17
20
|
compact?: number | true;
|
|
21
|
+
/** P108 (4.C): мапа id→checksum уже доставленных в сессию блоков (готовит
|
|
22
|
+
* memory-call из loadSessionRegistry). Не передана (MCP-канал) — фильтр выключен. */
|
|
23
|
+
deliveredRegistry?: Record<string, string>;
|
|
18
24
|
}): Promise<CallInjectionResult>;
|
|
19
25
|
//# sourceMappingURL=get-call-injections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-call-injections.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/get-call-injections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"get-call-injections.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/get-call-injections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKlD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;4DACwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,EAC/D,KAAK,EAAE;IACL,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;yFACqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC,mBAAmB,CAAC,CA2H9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { tokenize } from '../../domain/solve/scenarios.js';
|
|
2
2
|
import { finalScore } from '../../domain/solve/relevance.js';
|
|
3
|
+
import { checksumBlock } from '../../adapters/fs/session-delivery-registry.js';
|
|
3
4
|
function formatBlock(obj) {
|
|
4
5
|
return `- [${obj.id}] ${obj.title} (${obj.confidence}, ${obj.updated_at})\n source: ${obj.id}`;
|
|
5
6
|
}
|
|
@@ -10,9 +11,14 @@ function isMachineState(obj) {
|
|
|
10
11
|
export async function getCallInjections(deps, input) {
|
|
11
12
|
const now = deps.clock.now();
|
|
12
13
|
const topicTokens = input.topic ? tokenize(input.topic) : [];
|
|
14
|
+
// P103 (волна 2.12 A4): ровно ОДИН store.list() — list() в любом случае
|
|
15
|
+
// обходит всё дерево, type/status-фильтры не сокращают IO (прецедент T013
|
|
16
|
+
// в generate-agent-brief.ts). Было 5 полных проходов, один — буквальный
|
|
17
|
+
// дубль rules-запроса; фильтрация по типу/статусу — в памяти.
|
|
18
|
+
const memoryObjects = (await deps.store.list());
|
|
19
|
+
const activeOf = (type) => memoryObjects.filter((o) => o.type === type && o.status === 'active');
|
|
13
20
|
// 1. active call-injections
|
|
14
|
-
const
|
|
15
|
-
const injections = allInjections;
|
|
21
|
+
const injections = activeOf('call-injection');
|
|
16
22
|
// 2. topic matching
|
|
17
23
|
let matched;
|
|
18
24
|
if (input.topic) {
|
|
@@ -41,12 +47,12 @@ export async function getCallInjections(deps, input) {
|
|
|
41
47
|
const kw = obj.trigger_keywords ?? [];
|
|
42
48
|
return kw.some((k) => topicTokens.includes(k));
|
|
43
49
|
};
|
|
44
|
-
const lessons = (
|
|
50
|
+
const lessons = activeOf('lesson');
|
|
45
51
|
for (const l of lessons) {
|
|
46
52
|
if (kwMatched(l) && !matched.some((m) => m.id === l.id))
|
|
47
53
|
matched.push(l);
|
|
48
54
|
}
|
|
49
|
-
const rules = (
|
|
55
|
+
const rules = activeOf('rule');
|
|
50
56
|
const keywordRules = rules.filter((r) => !isMachineState(r) && kwMatched(r));
|
|
51
57
|
for (const r of keywordRules) {
|
|
52
58
|
if (!matched.some((m) => m.id === r.id))
|
|
@@ -63,14 +69,14 @@ export async function getCallInjections(deps, input) {
|
|
|
63
69
|
// 4. thread mode: append project rules + open blockers with matching thread
|
|
64
70
|
if (input.thread !== undefined) {
|
|
65
71
|
const threadId = typeof input.thread === 'string' ? input.thread : null;
|
|
66
|
-
const rules = (
|
|
72
|
+
const rules = activeOf('rule');
|
|
67
73
|
for (const r of rules) {
|
|
68
74
|
if (!isMachineState(r) && r.scope === 'project' && !matched.some((m) => m.id === r.id)) {
|
|
69
75
|
matched.push(r);
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
78
|
if (threadId) {
|
|
73
|
-
const blockers = (
|
|
79
|
+
const blockers = activeOf('blocker');
|
|
74
80
|
for (const b of blockers) {
|
|
75
81
|
if (b.thread === threadId && !matched.some((m) => m.id === b.id)) {
|
|
76
82
|
matched.push(b);
|
|
@@ -90,13 +96,25 @@ export async function getCallInjections(deps, input) {
|
|
|
90
96
|
}, now),
|
|
91
97
|
}))
|
|
92
98
|
.sort((a, b) => b.score - a.score);
|
|
99
|
+
// P108 (4.C): сессионная дедупликация ДО бюджета — уже доставленные в этой
|
|
100
|
+
// сессии с той же checksum блока не занимают бюджет; изменившийся текст
|
|
101
|
+
// (иная checksum) доставляется повторно. Реестр не передан → фильтр выключен.
|
|
102
|
+
let deduplicated = 0;
|
|
103
|
+
const pending = input.deliveredRegistry
|
|
104
|
+
? scored.filter(({ obj }) => {
|
|
105
|
+
if (input.deliveredRegistry[obj.id] !== checksumBlock(formatBlock(obj)))
|
|
106
|
+
return true;
|
|
107
|
+
deduplicated++;
|
|
108
|
+
return false;
|
|
109
|
+
})
|
|
110
|
+
: scored;
|
|
93
111
|
// 6. build blocks (deliveredIds — то, что прошло бюджет, включая fallback)
|
|
94
112
|
const blocks = [];
|
|
95
113
|
const deliveredIds = [];
|
|
96
114
|
let truncated = 0;
|
|
97
115
|
const budget = input.compact === undefined ? Infinity : input.compact === true ? 1200 : input.compact;
|
|
98
116
|
let used = 0;
|
|
99
|
-
for (const { obj } of
|
|
117
|
+
for (const { obj } of pending) {
|
|
100
118
|
const block = formatBlock(obj);
|
|
101
119
|
if (used + block.length <= budget) {
|
|
102
120
|
blocks.push(block);
|
|
@@ -107,6 +125,6 @@ export async function getCallInjections(deps, input) {
|
|
|
107
125
|
truncated++;
|
|
108
126
|
}
|
|
109
127
|
}
|
|
110
|
-
return { blocks, truncated, deliveredIds };
|
|
128
|
+
return { blocks, truncated, deliveredIds, deduplicated };
|
|
111
129
|
}
|
|
112
130
|
//# sourceMappingURL=get-call-injections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-call-injections.js","sourceRoot":"","sources":["../../../src/app/use-cases/get-call-injections.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"get-call-injections.js","sourceRoot":"","sources":["../../../src/app/use-cases/get-call-injections.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAY/E,SAAS,WAAW,CAAC,GAA4B;IAC/C,OAAO,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,gBAAgB,GAAG,CAAC,EAAE,EAAE,CAAC;AAClG,CAAC;AAED,iGAAiG;AACjG,SAAS,cAAc,CAAC,GAA4B;IAClD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAK,GAAG,CAAC,IAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA+D,EAC/D,KAOC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAA8B,CAAC;IAC7E,MAAM,QAAQ,GAAG,CAAC,IAAY,EAA6B,EAAE,CAC3D,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAExE,4BAA4B;IAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAE9C,oBAAoB;IACpB,IAAI,OAAkC,CAAC;IACvC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5F,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,oFAAoF;YACtF,CAAC;QACH,CAAC;QACD,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,MAAM,EAAE,GAAc,GAAG,CAAC,gBAA6B,IAAI,EAAE,CAAC;YAC9D,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,SAAS,GAAG,CAAC,GAA4B,EAAW,EAAE;YAC1D,MAAM,EAAE,GAAc,GAAG,CAAC,gBAA6B,IAAI,EAAE,CAAC;YAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAA8B,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAA8B,CAAC;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,sEAAsE;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,4EAA4E;IAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAA8B,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAA8B,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,GAAG;QACH,KAAK,EAAE,UAAU,CACf;YACE,QAAQ,EAAE,CAAC;YACX,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,GAAG;YAC7C,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,QAAQ;YAClD,SAAS,EAAE,GAAG,CAAC,UAAoB;SACpC,EACD,GAAG,CACJ;KACF,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,2EAA2E;IAC3E,wEAAwE;IACxE,8EAA8E;IAC9E,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB;QACrC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,IAAI,KAAK,CAAC,iBAAkB,CAAC,GAAG,CAAC,EAAY,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChG,YAAY,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC;IAEX,2EAA2E;IAC3E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IACtG,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC3D,CAAC"}
|
|
@@ -12,7 +12,31 @@ export interface ScanProjectResult {
|
|
|
12
12
|
snapshot: ProjectSnapshot;
|
|
13
13
|
documents: MemoryObject[];
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
/** Запись персистного кэша скана: сигнатура дерева + результат скана (P105). */
|
|
16
|
+
export type ScanSnapshotEntry = {
|
|
17
|
+
sig: string;
|
|
18
|
+
} & ScanProjectResult;
|
|
19
|
+
/**
|
|
20
|
+
* Персистный кэш скана (P105, спека A5). Реализация — см.
|
|
21
|
+
* src/adapters/fs/scan-snapshot-cache.ts (`.wolf/cache/scan-snapshot.json`);
|
|
22
|
+
* портовский тип структурно совместим с адаптером.
|
|
23
|
+
*/
|
|
24
|
+
export interface ScanSnapshotCache {
|
|
25
|
+
read(): Promise<ScanSnapshotEntry | null>;
|
|
26
|
+
write(entry: ScanSnapshotEntry): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Кэш скана по сигнатуре дерева (T013 → P105: кэш персистный). sig совпал →
|
|
30
|
+
* результат из кэша без обхода дерева и побочных эффектов; не совпал →
|
|
31
|
+
* полный scanProject (diff-before-save внутри) и перезапись кэша.
|
|
32
|
+
* treeSignature отсутствует → всегда полный скан (обратная совместимость портов
|
|
33
|
+
* в тестах); snapshotCache отсутствует → скан без кэширования.
|
|
34
|
+
* Инвалидация — см. projectTreeSignature в heuristic-project-scanner.ts:
|
|
35
|
+
* dir mtime (добавление/удаление/переименование файлов), package.json, .git/HEAD;
|
|
36
|
+
* контентные правки существующих файлов НЕ инвалидируют (brief не зависит от
|
|
37
|
+
* содержимого файлов).
|
|
38
|
+
*/
|
|
39
|
+
export declare function scanProjectCached(deps: {
|
|
16
40
|
store: MemoryStore;
|
|
17
41
|
log: EventLog;
|
|
18
42
|
clock: Clock;
|
|
@@ -20,6 +44,17 @@ export declare function scanProject(deps: {
|
|
|
20
44
|
scanner: ProjectScanner;
|
|
21
45
|
index?: SearchIndex;
|
|
22
46
|
lock?: MemoryLock;
|
|
47
|
+
treeSignature?: (root: string) => Promise<string>;
|
|
48
|
+
snapshotCache?: ScanSnapshotCache;
|
|
23
49
|
}, root: string): Promise<ScanProjectResult>;
|
|
50
|
+
export declare function scanProject(deps: {
|
|
51
|
+
store: MemoryStore;
|
|
52
|
+
log: EventLog;
|
|
53
|
+
clock: Clock;
|
|
54
|
+
idGen: IdGenerator;
|
|
55
|
+
scanner: ProjectScanner;
|
|
56
|
+
index?: SearchIndex;
|
|
57
|
+
lock?: MemoryLock;
|
|
58
|
+
}, root: string, afterScan?: (result: ScanProjectResult) => Promise<void>): Promise<ScanProjectResult>;
|
|
24
59
|
export declare function renderScanBody(snapshot: ProjectSnapshot): string;
|
|
25
60
|
//# sourceMappingURL=scan-project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-project.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/scan-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAI9E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,EACD,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scan-project.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/scan-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAI9E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC,EACD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,EACD,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GACvD,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAwID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAQhE"}
|
|
@@ -1,49 +1,93 @@
|
|
|
1
1
|
import { governanceDefaults } from '../../domain/governance.js';
|
|
2
2
|
import { documentRefId, withTieBreak } from '../../adapters/fs/document-id.js';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Кэш скана по сигнатуре дерева (T013 → P105: кэш персистный). sig совпал →
|
|
5
|
+
* результат из кэша без обхода дерева и побочных эффектов; не совпал →
|
|
6
|
+
* полный scanProject (diff-before-save внутри) и перезапись кэша.
|
|
7
|
+
* treeSignature отсутствует → всегда полный скан (обратная совместимость портов
|
|
8
|
+
* в тестах); snapshotCache отсутствует → скан без кэширования.
|
|
9
|
+
* Инвалидация — см. projectTreeSignature в heuristic-project-scanner.ts:
|
|
10
|
+
* dir mtime (добавление/удаление/переименование файлов), package.json, .git/HEAD;
|
|
11
|
+
* контентные правки существующих файлов НЕ инвалидируют (brief не зависит от
|
|
12
|
+
* содержимого файлов).
|
|
13
|
+
*/
|
|
14
|
+
export async function scanProjectCached(deps, root) {
|
|
15
|
+
if (!deps.treeSignature)
|
|
16
|
+
return scanProject(deps, root);
|
|
17
|
+
const sig = await deps.treeSignature(root);
|
|
18
|
+
const cache = deps.snapshotCache;
|
|
19
|
+
if (cache) {
|
|
20
|
+
const hit = await cache.read();
|
|
21
|
+
if (hit && hit.sig === sig)
|
|
22
|
+
return { object: hit.object, snapshot: hit.snapshot, documents: hit.documents };
|
|
23
|
+
}
|
|
24
|
+
// P105: запись кэша — под lock скана (хук выполняется внутри run)
|
|
25
|
+
const persist = cache
|
|
26
|
+
? async (result) => cache.write({ ...result, sig })
|
|
27
|
+
: undefined;
|
|
28
|
+
return scanProject(deps, root, persist);
|
|
29
|
+
}
|
|
30
|
+
export async function scanProject(deps, root, afterScan) {
|
|
4
31
|
const run = async () => {
|
|
5
32
|
const snapshot = await deps.scanner.scan(root);
|
|
6
33
|
const now = deps.clock.now();
|
|
7
34
|
const actor = 'agent:mr-wolf';
|
|
8
|
-
const
|
|
9
|
-
const object = {
|
|
10
|
-
id: 'project-scan-latest',
|
|
11
|
-
type: 'context',
|
|
12
|
-
title: `Project scan for ${snapshot.projectName}`,
|
|
13
|
-
body: renderScanBody(snapshot),
|
|
14
|
-
status: 'active',
|
|
15
|
-
review_state: 'accepted',
|
|
16
|
-
confidence: 'high',
|
|
17
|
-
importance: 0.7,
|
|
18
|
-
created_at: now.toISOString(),
|
|
19
|
-
updated_at: now.toISOString(),
|
|
20
|
-
created_by: actor,
|
|
21
|
-
schema_version: 1,
|
|
22
|
-
source: { kind: 'scan', path: snapshot.root },
|
|
23
|
-
related: { files: [], docs: [], decisions: [] },
|
|
24
|
-
tags: ['scan'],
|
|
25
|
-
superseded_by: null,
|
|
26
|
-
memory_class: defaults.memory_class,
|
|
27
|
-
truth_role: defaults.truth_role,
|
|
28
|
-
lifetime: defaults.lifetime,
|
|
29
|
-
};
|
|
30
|
-
const existingScan = await deps.store.get(object.id);
|
|
31
|
-
await deps.store.save(object);
|
|
32
|
-
await deps.log.append({
|
|
33
|
-
id: deps.idGen.generateEventId(now),
|
|
34
|
-
type: existingScan ? 'memory.scan.updated' : 'memory.added',
|
|
35
|
-
timestamp: now.toISOString(),
|
|
36
|
-
actor,
|
|
37
|
-
payload: { memory_id: object.id, type: object.type },
|
|
38
|
-
});
|
|
39
|
-
if (deps.index) {
|
|
40
|
-
await deps.index.indexObject(object);
|
|
41
|
-
}
|
|
35
|
+
const object = await upsertScanObject(deps, snapshot, now, actor);
|
|
42
36
|
const documents = await registerDocuments(deps, snapshot, now, actor);
|
|
43
|
-
|
|
37
|
+
const result = { object, snapshot, documents };
|
|
38
|
+
if (afterScan)
|
|
39
|
+
await afterScan(result);
|
|
40
|
+
return result;
|
|
44
41
|
};
|
|
45
42
|
return deps.lock ? deps.lock.withLock(run) : run();
|
|
46
43
|
}
|
|
44
|
+
const SCAN_OBJECT_ID = 'project-scan-latest';
|
|
45
|
+
/**
|
|
46
|
+
* Scan-объект project-scan-latest с diff-before-save (P105): title+body
|
|
47
|
+
* (renderScanBody детерминирован) не изменились → ни save, ни event, ни index;
|
|
48
|
+
* возвращается existing, updated_at не тикает.
|
|
49
|
+
*/
|
|
50
|
+
async function upsertScanObject(deps, snapshot, now, actor) {
|
|
51
|
+
const title = `Project scan for ${snapshot.projectName}`;
|
|
52
|
+
const body = renderScanBody(snapshot);
|
|
53
|
+
const existing = await deps.store.get(SCAN_OBJECT_ID);
|
|
54
|
+
if (existing && existing.title === title && existing.body === body)
|
|
55
|
+
return existing;
|
|
56
|
+
const defaults = governanceDefaults(actor);
|
|
57
|
+
const object = {
|
|
58
|
+
id: SCAN_OBJECT_ID,
|
|
59
|
+
type: 'context',
|
|
60
|
+
title,
|
|
61
|
+
body,
|
|
62
|
+
status: 'active',
|
|
63
|
+
review_state: 'accepted',
|
|
64
|
+
confidence: 'high',
|
|
65
|
+
importance: 0.7,
|
|
66
|
+
created_at: existing?.created_at ?? now.toISOString(),
|
|
67
|
+
updated_at: now.toISOString(),
|
|
68
|
+
created_by: actor,
|
|
69
|
+
schema_version: 1,
|
|
70
|
+
source: { kind: 'scan', path: snapshot.root },
|
|
71
|
+
related: { files: [], docs: [], decisions: [] },
|
|
72
|
+
tags: ['scan'],
|
|
73
|
+
superseded_by: null,
|
|
74
|
+
memory_class: defaults.memory_class,
|
|
75
|
+
truth_role: defaults.truth_role,
|
|
76
|
+
lifetime: defaults.lifetime,
|
|
77
|
+
};
|
|
78
|
+
await deps.store.save(object);
|
|
79
|
+
await deps.log.append({
|
|
80
|
+
id: deps.idGen.generateEventId(now),
|
|
81
|
+
type: existing ? 'memory.scan.updated' : 'memory.added',
|
|
82
|
+
timestamp: now.toISOString(),
|
|
83
|
+
actor,
|
|
84
|
+
payload: { memory_id: object.id, type: object.type },
|
|
85
|
+
});
|
|
86
|
+
if (deps.index) {
|
|
87
|
+
await deps.index.indexObject(object);
|
|
88
|
+
}
|
|
89
|
+
return object;
|
|
90
|
+
}
|
|
47
91
|
async function registerDocuments(deps, snapshot, now, actor) {
|
|
48
92
|
const results = [];
|
|
49
93
|
const defaults = governanceDefaults(actor);
|
|
@@ -57,6 +101,16 @@ async function registerDocuments(deps, snapshot, now, actor) {
|
|
|
57
101
|
const takenIds = new Set((await deps.store.list()).map((o) => o.id));
|
|
58
102
|
for (const doc of snapshot.docs) {
|
|
59
103
|
const existing = existingByPath.get(doc.path);
|
|
104
|
+
const createdAt = existing?.created_at ?? now.toISOString();
|
|
105
|
+
// P105 diff-before-save: title/path/created_at не изменились → ни save, ни
|
|
106
|
+
// event, ни index; возвращается existing, updated_at не тикает.
|
|
107
|
+
if (existing &&
|
|
108
|
+
existing.title === doc.title &&
|
|
109
|
+
existing.source?.path === doc.path &&
|
|
110
|
+
existing.created_at === createdAt) {
|
|
111
|
+
results.push(existing);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
60
114
|
// Скан не мигрирует (§2.1): у существующего объекта id сохраняется как есть
|
|
61
115
|
// (даже легаси doc_*); канонический id — только для новых объектов.
|
|
62
116
|
const id = existing ? existing.id : withTieBreak(documentRefId(doc.path, now.toISOString()), takenIds);
|
|
@@ -70,7 +124,7 @@ async function registerDocuments(deps, snapshot, now, actor) {
|
|
|
70
124
|
review_state: 'accepted',
|
|
71
125
|
confidence: 'high',
|
|
72
126
|
importance: 0.6,
|
|
73
|
-
created_at:
|
|
127
|
+
created_at: createdAt,
|
|
74
128
|
updated_at: now.toISOString(),
|
|
75
129
|
created_by: existing?.created_by ?? actor,
|
|
76
130
|
schema_version: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/scan-project.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"scan-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/scan-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-class.d.ts","sourceRoot":"","sources":["../../src/domain/error-class.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,EAAE,EAAE,MAAM,CAAC;IACX,0FAA0F;IAC1F,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"error-class.d.ts","sourceRoot":"","sources":["../../src/domain/error-class.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,EAAE,EAAE,MAAM,CAAC;IACX,0FAA0F;IAC1F,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,cAAc,EA8D9D,CAAC;AAEF,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1C,YAAY,GAAE,SAAS,cAAc,EAAO,GAC3C,MAAM,CAMR"}
|
|
@@ -55,6 +55,11 @@ export const DEFAULT_ERROR_CLASS_RULES = [
|
|
|
55
55
|
'failed to parse',
|
|
56
56
|
'invalid json',
|
|
57
57
|
'invalid yaml',
|
|
58
|
+
// T011: рантайм-валидация add (тип/поле/ключ схемы) — не uncategorized
|
|
59
|
+
'unknown memory type',
|
|
60
|
+
'no taxonomy declaration',
|
|
61
|
+
'unknown field',
|
|
62
|
+
'unrecognized key',
|
|
58
63
|
],
|
|
59
64
|
},
|
|
60
65
|
{ id: 'conflict', match: ['already exists', 'conflict', 'eexist'] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-class.js","sourceRoot":"","sources":["../../src/domain/error-class.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA8B;IAClE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,2BAA2B,CAAC,EAAE;IAC9D;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,OAAO,CAAC;KAC7F;IACD,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE;IAC1F,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC,EAAE;IAClE;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACxG;IACD,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;IAChF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;IAC/D;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC;KAC/G;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE;YACL,cAAc;YACd,YAAY;YACZ,WAAW;YACX,WAAW;YACX,cAAc;YACd,oBAAoB;YACpB,kBAAkB;YAClB,SAAS;SACV;KACF;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE;YACL,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB;YAChB,YAAY;YACZ,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,cAAc;
|
|
1
|
+
{"version":3,"file":"error-class.js","sourceRoot":"","sources":["../../src/domain/error-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
|