mister-wolf 2.5.0 → 2.7.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 +6 -9
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/analytics.d.ts +2 -2
- package/dist/adapters/cli/commands/analytics.d.ts.map +1 -1
- package/dist/adapters/cli/commands/analytics.js +42 -5
- package/dist/adapters/cli/commands/analytics.js.map +1 -1
- package/dist/adapters/cli/commands/coord.d.ts +3 -0
- package/dist/adapters/cli/commands/coord.d.ts.map +1 -0
- package/dist/adapters/cli/commands/coord.js +36 -0
- package/dist/adapters/cli/commands/coord.js.map +1 -0
- package/dist/adapters/cli/commands/memory-brief.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-brief.js +16 -0
- 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 +16 -2
- package/dist/adapters/cli/commands/memory-call.js.map +1 -1
- package/dist/adapters/cli/commands/memory-get.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-get.js +18 -0
- package/dist/adapters/cli/commands/memory-get.js.map +1 -1
- package/dist/adapters/cli/commands/memory-migrate.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-migrate.js +28 -0
- package/dist/adapters/cli/commands/memory-migrate.js.map +1 -1
- package/dist/adapters/cli/commands/memory-run.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-run.js +36 -23
- package/dist/adapters/cli/commands/memory-run.js.map +1 -1
- package/dist/adapters/cli/commands/memory-search.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-search.js +16 -0
- package/dist/adapters/cli/commands/memory-search.js.map +1 -1
- package/dist/adapters/cli/commands/memory-stage.d.ts +3 -0
- package/dist/adapters/cli/commands/memory-stage.d.ts.map +1 -0
- package/dist/adapters/cli/commands/memory-stage.js +35 -0
- package/dist/adapters/cli/commands/memory-stage.js.map +1 -0
- package/dist/adapters/cli/commands/memory-tool.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-tool.js +4 -3
- package/dist/adapters/cli/commands/memory-tool.js.map +1 -1
- package/dist/adapters/fs/run-log-migration.d.ts +18 -0
- package/dist/adapters/fs/run-log-migration.d.ts.map +1 -0
- package/dist/adapters/fs/run-log-migration.js +63 -0
- package/dist/adapters/fs/run-log-migration.js.map +1 -0
- package/dist/adapters/fs/session-metrics-log.d.ts +87 -2
- package/dist/adapters/fs/session-metrics-log.d.ts.map +1 -1
- package/dist/adapters/fs/session-metrics-log.js +105 -2
- package/dist/adapters/fs/session-metrics-log.js.map +1 -1
- package/dist/adapters/mcp/mcp-schemas.d.ts +1 -0
- package/dist/adapters/mcp/mcp-schemas.d.ts.map +1 -1
- package/dist/adapters/mcp/mcp-schemas.js +1 -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 +104 -23
- package/dist/adapters/mcp/mcp-tools.js.map +1 -1
- package/dist/adapters/version.d.ts +3 -0
- package/dist/adapters/version.d.ts.map +1 -0
- package/dist/adapters/version.js +12 -0
- package/dist/adapters/version.js.map +1 -0
- package/dist/app/use-cases/build-analytics.d.ts +67 -1
- package/dist/app/use-cases/build-analytics.d.ts.map +1 -1
- package/dist/app/use-cases/build-analytics.js +225 -29
- package/dist/app/use-cases/build-analytics.js.map +1 -1
- package/dist/app/use-cases/effectiveness.d.ts.map +1 -1
- package/dist/app/use-cases/effectiveness.js +8 -6
- package/dist/app/use-cases/effectiveness.js.map +1 -1
- package/dist/app/use-cases/generate-agent-brief.d.ts +2 -0
- package/dist/app/use-cases/generate-agent-brief.d.ts.map +1 -1
- package/dist/app/use-cases/generate-agent-brief.js +1 -1
- package/dist/app/use-cases/generate-agent-brief.js.map +1 -1
- package/dist/app/use-cases/run-source.d.ts +15 -0
- package/dist/app/use-cases/run-source.d.ts.map +1 -0
- package/dist/app/use-cases/run-source.js +26 -0
- package/dist/app/use-cases/run-source.js.map +1 -0
- package/dist/app/use-cases/tool-stats.d.ts +5 -1
- package/dist/app/use-cases/tool-stats.d.ts.map +1 -1
- package/dist/app/use-cases/tool-stats.js +6 -13
- package/dist/app/use-cases/tool-stats.js.map +1 -1
- package/dist/domain/actor.d.ts +3 -0
- package/dist/domain/actor.d.ts.map +1 -1
- package/dist/domain/actor.js +6 -0
- package/dist/domain/actor.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
3
4
|
import { join } from 'node:path';
|
|
4
5
|
import { Command, Option } from 'commander';
|
|
5
6
|
import { createCliContainer } from '../../../bootstrap/container.js';
|
|
@@ -38,11 +39,28 @@ export function memoryRunCommand() {
|
|
|
38
39
|
.option('--tool <name>', 'Mark this run as using tool(s) (repeatable)', collect, [])
|
|
39
40
|
.option('--experiment <id>', 'Experiment id (comparative methodologies, e.g. RCT)')
|
|
40
41
|
.addOption(new Option('--arm <choice>', 'Experiment arm').choices(['wolf', 'baseline']))
|
|
41
|
-
.option('--task-id <id>', 'Task id
|
|
42
|
+
.option('--task-id <id>', 'Task id (written as top-level task_id; duplicated in experiment when --experiment)')
|
|
43
|
+
.option('--trace-id <id>', 'Trace id (defaults to a fresh uuid)')
|
|
44
|
+
.option('--attempt <n>', 'Attempt number within the task', (v) => parseInt(v, 10))
|
|
42
45
|
.argument('<prompt>', 'Prompt passed to opencode')
|
|
43
46
|
.action(async (prompt, options) => {
|
|
44
47
|
const model = await resolveModel();
|
|
45
48
|
const startedAt = Date.now();
|
|
49
|
+
// P1 D3: identity прогона — run_id/trace_id/config- и prompt-подпись (v2-поля сигнала)
|
|
50
|
+
const runId = randomUUID();
|
|
51
|
+
const traceId = options.traceId ?? randomUUID();
|
|
52
|
+
const configHash = (() => {
|
|
53
|
+
try {
|
|
54
|
+
return createHash('sha256')
|
|
55
|
+
.update(readFileSync(join(process.cwd(), '.wolf', 'config.yaml'), 'utf-8'))
|
|
56
|
+
.digest('hex')
|
|
57
|
+
.slice(0, 12);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return undefined; // нет конфига — нет подписи
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
63
|
+
const promptHash = createHash('sha256').update(prompt).digest('hex').slice(0, 12);
|
|
46
64
|
const args = ['run', '--format', 'json', '--agent', options.agent, '--model', model];
|
|
47
65
|
if (options.session)
|
|
48
66
|
args.push('--session', options.session);
|
|
@@ -80,9 +98,10 @@ export function memoryRunCommand() {
|
|
|
80
98
|
const durationMs = Date.now() - startedAt;
|
|
81
99
|
// M1 (D5): experiment пишется только полным набором --experiment + --arm;
|
|
82
100
|
// arm — union 'wolf' | 'baseline' (обязателен в типе сигнала), поэтому
|
|
83
|
-
// experiment без arm не записывается, как и arm
|
|
84
|
-
|
|
85
|
-
|
|
101
|
+
// experiment без arm не записывается, как и arm без experiment.
|
|
102
|
+
// P1 D3: --task-id легален и без --experiment (топ-левел task_id).
|
|
103
|
+
if (options.experiment === undefined && options.arm !== undefined) {
|
|
104
|
+
console.error('[wolf-run] Warning: --arm without --experiment is ignored');
|
|
86
105
|
}
|
|
87
106
|
if (options.experiment !== undefined && options.arm === undefined) {
|
|
88
107
|
console.error('[wolf-run] Warning: --experiment without --arm: experiment fields are not recorded');
|
|
@@ -94,24 +113,10 @@ export function memoryRunCommand() {
|
|
|
94
113
|
...(options.taskId !== undefined ? { task_id: options.taskId } : {}),
|
|
95
114
|
}
|
|
96
115
|
: undefined;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
ts: new Date().toISOString(),
|
|
102
|
-
model,
|
|
103
|
-
agent: options.agent,
|
|
104
|
-
title: options.title,
|
|
105
|
-
session: metrics.session,
|
|
106
|
-
weighted: metrics.weighted,
|
|
107
|
-
verdict_pending: true,
|
|
108
|
-
duration_ms: durationMs,
|
|
109
|
-
tokens: { input: metrics.tokensIn, output: metrics.tokensOut, cache_read: metrics.cacheRead },
|
|
110
|
-
...(experiment !== undefined ? { experiment } : {}),
|
|
111
|
-
...(options.tool.length > 0 ? { tools: options.tool } : {}),
|
|
112
|
-
}) + '\n');
|
|
113
|
-
console.error(`[wolf-run] model=${model} weighted=${metrics.weighted} log=${logPath}`);
|
|
114
|
-
// Ф20 (а): событие metrics в сигнальный лог контура самообучения
|
|
116
|
+
// P1 D3: .wolf/run-log.jsonl больше не пишется — канонический источник run-метрик
|
|
117
|
+
// сигнальный лог (.wolf/metrics/session-metrics.jsonl), legacy-файл мержится на чтении.
|
|
118
|
+
console.error(`[wolf-run] model=${model} weighted=${metrics.weighted} run_id=${runId} trace_id=${traceId}`);
|
|
119
|
+
// Ф20 (а) + P1 D3: событие metrics в сигнальный лог контура самообучения, writer v2
|
|
115
120
|
appendRunSignal(process.cwd(), {
|
|
116
121
|
model,
|
|
117
122
|
agent: options.agent,
|
|
@@ -122,6 +127,14 @@ export function memoryRunCommand() {
|
|
|
122
127
|
actor: resolveCreatedBy(undefined),
|
|
123
128
|
durationMs,
|
|
124
129
|
tokens: { input: metrics.tokensIn, output: metrics.tokensOut, cache_read: metrics.cacheRead },
|
|
130
|
+
eventId: randomUUID(),
|
|
131
|
+
runId,
|
|
132
|
+
traceId,
|
|
133
|
+
...(options.attempt !== undefined && Number.isInteger(options.attempt) ? { attempt: options.attempt } : {}),
|
|
134
|
+
...(options.taskId !== undefined ? { taskId: options.taskId } : {}),
|
|
135
|
+
...(configHash !== undefined ? { configHash } : {}),
|
|
136
|
+
promptHash,
|
|
137
|
+
...(options.tool.length > 0 ? { tools: options.tool } : {}),
|
|
125
138
|
...(experiment !== undefined
|
|
126
139
|
? {
|
|
127
140
|
experiment: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-run.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"memory-run.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mBAAmB,IAAI,OAAO,CA8D7C"}
|
|
@@ -2,6 +2,8 @@ import { Command } from 'commander';
|
|
|
2
2
|
import { searchMemory } from '../../../app/use-cases/search-memory.js';
|
|
3
3
|
import { createCliContainer } from '../../../bootstrap/container.js';
|
|
4
4
|
import { FTS_COLUMNS } from '../../sqlite/sqlite-search-index.js';
|
|
5
|
+
import { appendMemoryStageSignal } from '../../fs/session-metrics-log.js';
|
|
6
|
+
import { resolveCreatedBy, resolveSessionId } from '../../../domain/actor.js';
|
|
5
7
|
export function memorySearchCommand() {
|
|
6
8
|
return new Command('search')
|
|
7
9
|
.description('Search memory objects')
|
|
@@ -34,6 +36,20 @@ export function memorySearchCommand() {
|
|
|
34
36
|
limit: options.limit,
|
|
35
37
|
includeSuperseded: !options.hideSuperseded,
|
|
36
38
|
});
|
|
39
|
+
// P2 D1: авто-писатель memory_stage(retrieved); сбой телеметрии не ломает поиск
|
|
40
|
+
if (results.length > 0) {
|
|
41
|
+
try {
|
|
42
|
+
appendMemoryStageSignal(process.cwd(), {
|
|
43
|
+
stage: 'retrieved',
|
|
44
|
+
memoryIds: results.map((r) => r.object.id),
|
|
45
|
+
actor: resolveCreatedBy(undefined),
|
|
46
|
+
sessionId: resolveSessionId(),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// телеметрия не должна ломать основной поток
|
|
51
|
+
}
|
|
52
|
+
}
|
|
37
53
|
for (const result of results) {
|
|
38
54
|
const mark = result.object.status === 'superseded' ? ' [superseded]' : '';
|
|
39
55
|
console.log(`${result.object.id} [${result.object.type}] ${result.object.title}${mark}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-search.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-search.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stage.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAS5C,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAkB,GAAG,OAAO,CA2BvE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Command, Option } from 'commander';
|
|
2
|
+
import { safeCwd } from '../cli-entry.js';
|
|
3
|
+
import { appendMemoryStageSignal } from '../../fs/session-metrics-log.js';
|
|
4
|
+
import { resolveCreatedBy, resolveSessionId } from '../../../domain/actor.js';
|
|
5
|
+
import { UserFacingError } from '../../../domain/errors.js';
|
|
6
|
+
// P2 D1: `wolf memory-stage` — ручная фиксация стадии жизненного цикла памяти
|
|
7
|
+
// (event memory_stage, writer (е) в session-metrics-log.ts). baseDir инъектится
|
|
8
|
+
// для тестов (прецедент: task-eval.ts).
|
|
9
|
+
export function memoryStageCommand(baseDir = safeCwd()) {
|
|
10
|
+
return new Command('memory-stage')
|
|
11
|
+
.description('Record a memory lifecycle stage into the signal log (event memory_stage)')
|
|
12
|
+
.addOption(new Option('--stage <stage>', 'Memory lifecycle stage')
|
|
13
|
+
.choices(['retrieved', 'injected', 'cited', 'applied'])
|
|
14
|
+
.makeOptionMandatory())
|
|
15
|
+
.option('--ids <ids>', 'Comma-separated memory object ids')
|
|
16
|
+
.option('--actor <actor>', 'Actor attribution (default: WOLF_ACTOR env or user:cli)')
|
|
17
|
+
.option('--session <id>', 'Session id')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const memoryIds = (options.ids ?? '')
|
|
20
|
+
.split(',')
|
|
21
|
+
.map((s) => s.trim())
|
|
22
|
+
.filter(Boolean);
|
|
23
|
+
if (memoryIds.length === 0) {
|
|
24
|
+
throw new UserFacingError('no memory ids provided: --ids <id,...>');
|
|
25
|
+
}
|
|
26
|
+
appendMemoryStageSignal(baseDir, {
|
|
27
|
+
stage: options.stage,
|
|
28
|
+
memoryIds,
|
|
29
|
+
actor: resolveCreatedBy(options.actor),
|
|
30
|
+
sessionId: options.session !== undefined ? options.session : resolveSessionId(),
|
|
31
|
+
});
|
|
32
|
+
console.log(`memory stage recorded: stage=${options.stage} ids=${memoryIds.length}`);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=memory-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stage.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,8EAA8E;AAC9E,gFAAgF;AAChF,wCAAwC;AACxC,MAAM,UAAU,kBAAkB,CAAC,UAAkB,OAAO,EAAE;IAC5D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;SAC/B,WAAW,CAAC,0EAA0E,CAAC;SACvF,SAAS,CACR,IAAI,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACpD,OAAO,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SACtD,mBAAmB,EAAE,CACzB;SACA,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;SAC1D,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,CAAC;SACpF,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;aAClC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAC;QACtE,CAAC;QACD,uBAAuB,CAAC,OAAO,EAAE;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS;YACT,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;YACtC,SAAS,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE;SAChF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,KAAK,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tool.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAwB5C,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"memory-tool.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAwB5C,wBAAgB,iBAAiB,IAAI,OAAO,CAoK3C"}
|
|
@@ -5,7 +5,7 @@ import { registerTool, listTools, useTool, exposeTool, deprecateTool, reviveTool
|
|
|
5
5
|
import { toolStats } from '../../../app/use-cases/tool-stats.js';
|
|
6
6
|
import { createCliContainer } from '../../../bootstrap/container.js';
|
|
7
7
|
import { resolveCreatedBy } from '../../../domain/actor.js';
|
|
8
|
-
import { appendDeliverySignal } from '../../../adapters/fs/session-metrics-log.js';
|
|
8
|
+
import { appendDeliverySignal, readSignals } from '../../../adapters/fs/session-metrics-log.js';
|
|
9
9
|
function printContractReminder(tool) {
|
|
10
10
|
console.log(`Input: ${tool.contract_input ?? '—'}`);
|
|
11
11
|
console.log(`Output: ${tool.contract_output ?? '—'}`);
|
|
@@ -101,12 +101,13 @@ export function memoryToolCommand() {
|
|
|
101
101
|
});
|
|
102
102
|
cmd
|
|
103
103
|
.command('stats')
|
|
104
|
-
.description('Usage counters per tool + reuse economy
|
|
104
|
+
.description('Usage counters per tool + reuse economy (signal log + legacy run-log)')
|
|
105
105
|
.action(async () => {
|
|
106
106
|
const { store } = createCliContainer(process.cwd());
|
|
107
107
|
const logPath = join(process.cwd(), '.wolf', 'run-log.jsonl');
|
|
108
108
|
const runLogText = existsSync(logPath) ? readFileSync(logPath, 'utf-8') : null;
|
|
109
|
-
const
|
|
109
|
+
const signals = readSignals(process.cwd());
|
|
110
|
+
const result = await toolStats({ store }, { signals, runLogText });
|
|
110
111
|
console.log(`tools: ${result.tools.length}`);
|
|
111
112
|
for (const t of result.tools) {
|
|
112
113
|
console.log(` ${t.name.padEnd(24)}${t.status.padEnd(12)}used ${String(t.usage_count).padEnd(6)}last: ${t.last_used_at ?? '—'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tool.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,GAEX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-tool.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/memory-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,GAEX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAEhG,SAAS,qBAAqB,CAAC,IAAgB;IAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,IAAI,GAAG,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2DAA2D,CAAC,CAAC;IAEzG,GAAG;SACA,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,yEAAyE,CAAC;SACtF,cAAc,CAAC,eAAe,EAAE,oBAAoB,CAAC;SACrD,cAAc,CAAC,uBAAuB,EAAE,iDAAiD,CAAC;QAC3F,8EAA8E;QAC9E,2EAA2E;SAC1E,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;SAChD,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;SAClD,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;SACvD,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,sBAAsB,EAAE,wDAAwD,CAAC;SACxF,MAAM,CACL,KAAK,EACH,UAAkB,EAClB,OASC,EACD,EAAE;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EACnF;YACE,UAAU;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,mBAAmB,EAAE,OAAO,CAAC,WAAW;YACxC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;SAC/C,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,SAAS,CACR,IAAI,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAC/G;SACA,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GACxF,CAAC,CAAC,YAAY,IAAI,GACpB,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EACvD,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,CACjD,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EACnF,EAAE,QAAQ,EAAE,CACb,CAAC;QACF,+DAA+D;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAC5D,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;YAClC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,oCAAoC,CAAC;SACjD,cAAc,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAA2B,EAAE,EAAE;QAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EACvD,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,CACzE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EACvD,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,CACjD,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,IAAI,GAAG,EAAE,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,MAAM,IAAI,0BAA0B,GAAG,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CACT,uBAAuB,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAClH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type RunLogMigrationReport = {
|
|
2
|
+
moved: false;
|
|
3
|
+
} | {
|
|
4
|
+
moved: true;
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
lineCount: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Одноразовая архивация legacy .wolf/run-log.jsonl (P1 D4): сигнальный лог —
|
|
11
|
+
* канонический источник, но analytics на переходном периоде конкатенирует
|
|
12
|
+
* legacy-файл с сигналами → двойной счёт у обновившихся. Команда выносит файл
|
|
13
|
+
* в .wolf/metrics/archive/run-log-<дата>-legacy.jsonl (rename, содержимое не
|
|
14
|
+
* переписывается — файл может быть большим). Идемпотентна: файла нет →
|
|
15
|
+
* moved: false без побочных действий (archive-каталог не создаётся).
|
|
16
|
+
*/
|
|
17
|
+
export declare function migrateRunLog(baseDir: string): Promise<RunLogMigrationReport>;
|
|
18
|
+
//# sourceMappingURL=run-log-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-log-migration.d.ts","sourceRoot":"","sources":["../../../src/adapters/fs/run-log-migration.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2BnF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import { createReadStream, existsSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
/**
|
|
5
|
+
* Одноразовая архивация legacy .wolf/run-log.jsonl (P1 D4): сигнальный лог —
|
|
6
|
+
* канонический источник, но analytics на переходном периоде конкатенирует
|
|
7
|
+
* legacy-файл с сигналами → двойной счёт у обновившихся. Команда выносит файл
|
|
8
|
+
* в .wolf/metrics/archive/run-log-<дата>-legacy.jsonl (rename, содержимое не
|
|
9
|
+
* переписывается — файл может быть большим). Идемпотентна: файла нет →
|
|
10
|
+
* moved: false без побочных действий (archive-каталог не создаётся).
|
|
11
|
+
*/
|
|
12
|
+
export async function migrateRunLog(baseDir) {
|
|
13
|
+
const from = join(baseDir, '.wolf', 'run-log.jsonl');
|
|
14
|
+
if (!existsSync(from))
|
|
15
|
+
return { moved: false };
|
|
16
|
+
// счётчик строк — ДО rename (после файла на старом месте уже нет)
|
|
17
|
+
let lineCount;
|
|
18
|
+
try {
|
|
19
|
+
lineCount = await countLines(from);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
throw new Error(`read ${from} (run-log migration): ${errText(err)}`);
|
|
23
|
+
}
|
|
24
|
+
const archiveDir = join(baseDir, '.wolf', 'metrics', 'archive');
|
|
25
|
+
await fs.mkdir(archiveDir, { recursive: true }).catch((err) => {
|
|
26
|
+
throw new Error(`mkdir ${archiveDir} (run-log migration): ${errText(err)}`);
|
|
27
|
+
});
|
|
28
|
+
// дата — ЛОКАЛЬНЫЙ день запуска (не UTC); коллизия имени → следующий
|
|
29
|
+
// свободный суффикс -2, -3, … — детерминированно, без перезаписи
|
|
30
|
+
const date = localDateStamp();
|
|
31
|
+
let to = join(archiveDir, `run-log-${date}-legacy.jsonl`);
|
|
32
|
+
for (let n = 2; existsSync(to); n++)
|
|
33
|
+
to = join(archiveDir, `run-log-${date}-legacy-${n}.jsonl`);
|
|
34
|
+
await fs.rename(from, to).catch((err) => {
|
|
35
|
+
throw new Error(`rename ${from} -> ${to} (run-log migration): ${errText(err)}`);
|
|
36
|
+
});
|
|
37
|
+
return { moved: true, from, to, lineCount };
|
|
38
|
+
}
|
|
39
|
+
/** Локальная дата YYYY-MM-DD (не UTC) — архив привязан к дню запуска машины. */
|
|
40
|
+
function localDateStamp(d = new Date()) {
|
|
41
|
+
return [d.getFullYear(), d.getMonth() + 1, d.getDate()].map((n) => String(n).padStart(2, '0')).join('-');
|
|
42
|
+
}
|
|
43
|
+
/** Потоковый подсчёт строк: считаем '\n'; последняя строка без '\n' — тоже строка; пустой файл → 0. */
|
|
44
|
+
function countLines(path) {
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
const stream = createReadStream(path);
|
|
47
|
+
let newlines = 0;
|
|
48
|
+
let lastByte = -1;
|
|
49
|
+
stream.on('data', (chunk) => {
|
|
50
|
+
const buf = typeof chunk === 'string' ? Buffer.from(chunk) : chunk;
|
|
51
|
+
for (let i = 0; i < buf.length; i++)
|
|
52
|
+
if (buf[i] === 0x0a)
|
|
53
|
+
newlines++;
|
|
54
|
+
lastByte = buf[buf.length - 1];
|
|
55
|
+
});
|
|
56
|
+
stream.on('end', () => resolve(lastByte === -1 ? 0 : lastByte === 0x0a ? newlines : newlines + 1));
|
|
57
|
+
stream.on('error', reject);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function errText(err) {
|
|
61
|
+
return err instanceof Error ? err.message : String(err);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=run-log-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-log-migration.js","sourceRoot":"","sources":["../../../src/adapters/fs/run-log-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export type SignalEventName = 'run' | 'complaint' | 'delivery' | 'tool_error' | 'task_evaluated';
|
|
2
|
+
export type SignalEventName = 'run' | 'complaint' | 'delivery' | 'tool_error' | 'task_evaluated' | 'mcp_call' | 'memory_stage' | 'coord_event';
|
|
3
3
|
/**
|
|
4
4
|
* Схема сигнального лога (P0 D6): чтение лога валидируется Zod, неизвестные поля
|
|
5
5
|
* отбрасываются (strip — дефолт zod-object). Тип SignalEvent выводится из схемы.
|
|
@@ -12,6 +12,9 @@ export declare const SignalEventSchema: z.ZodObject<{
|
|
|
12
12
|
delivery: "delivery";
|
|
13
13
|
tool_error: "tool_error";
|
|
14
14
|
task_evaluated: "task_evaluated";
|
|
15
|
+
mcp_call: "mcp_call";
|
|
16
|
+
memory_stage: "memory_stage";
|
|
17
|
+
coord_event: "coord_event";
|
|
15
18
|
}>;
|
|
16
19
|
session_id: z.ZodNullable<z.ZodString>;
|
|
17
20
|
gen_ai: z.ZodObject<{
|
|
@@ -40,6 +43,21 @@ export declare const SignalEventSchema: z.ZodObject<{
|
|
|
40
43
|
outcome: z.ZodOptional<z.ZodString>;
|
|
41
44
|
tool_name: z.ZodOptional<z.ZodString>;
|
|
42
45
|
error_class_id: z.ZodOptional<z.ZodString>;
|
|
46
|
+
event_id: z.ZodOptional<z.ZodString>;
|
|
47
|
+
schema_version: z.ZodOptional<z.ZodLiteral<2>>;
|
|
48
|
+
run_id: z.ZodOptional<z.ZodString>;
|
|
49
|
+
trace_id: z.ZodOptional<z.ZodString>;
|
|
50
|
+
parent_span_id: z.ZodOptional<z.ZodString>;
|
|
51
|
+
role_level: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
L0: "L0";
|
|
53
|
+
L1: "L1";
|
|
54
|
+
L2: "L2";
|
|
55
|
+
}>>;
|
|
56
|
+
attempt: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
task_id: z.ZodOptional<z.ZodString>;
|
|
58
|
+
config_hash: z.ZodOptional<z.ZodString>;
|
|
59
|
+
prompt_hash: z.ZodOptional<z.ZodString>;
|
|
60
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
43
61
|
detail: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
44
62
|
}, z.core.$strip>;
|
|
45
63
|
export type SignalEvent = z.infer<typeof SignalEventSchema>;
|
|
@@ -89,7 +107,10 @@ export declare function appendSignal(baseDir: string, ev: SignalEvent): {
|
|
|
89
107
|
count: number;
|
|
90
108
|
patternFixed: boolean;
|
|
91
109
|
};
|
|
92
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Writer (а): `wolf run` — метрики сессии (модель из routing, weighted, outcome; M1: duration/tokens/experiment).
|
|
112
|
+
* P1 D3: writer перешёл на v2 — schema_version: 2 всегда, identity-поля опциональны.
|
|
113
|
+
*/
|
|
93
114
|
export declare function appendRunSignal(baseDir: string, input: {
|
|
94
115
|
model: string;
|
|
95
116
|
agent: string;
|
|
@@ -110,6 +131,15 @@ export declare function appendRunSignal(baseDir: string, input: {
|
|
|
110
131
|
arm: 'wolf' | 'baseline';
|
|
111
132
|
taskId?: string;
|
|
112
133
|
};
|
|
134
|
+
/** P1 D3: identity-поля v2 (event_id/run_id/trace_id/attempt/task_id/config_hash/prompt_hash/tools). */
|
|
135
|
+
eventId?: string;
|
|
136
|
+
runId?: string;
|
|
137
|
+
traceId?: string;
|
|
138
|
+
attempt?: number;
|
|
139
|
+
taskId?: string;
|
|
140
|
+
configHash?: string;
|
|
141
|
+
promptHash?: string;
|
|
142
|
+
tools?: string[];
|
|
113
143
|
}): {
|
|
114
144
|
key: string | null;
|
|
115
145
|
count: number;
|
|
@@ -176,4 +206,59 @@ export declare function appendTaskEvaluatedSignal(baseDir: string, input: {
|
|
|
176
206
|
count: number;
|
|
177
207
|
patternFixed: boolean;
|
|
178
208
|
};
|
|
209
|
+
/** Detail memory_stage: стадия жизненного цикла памяти + затронутые объекты. */
|
|
210
|
+
export declare const MemoryStageDetailSchema: z.ZodObject<{
|
|
211
|
+
stage: z.ZodEnum<{
|
|
212
|
+
retrieved: "retrieved";
|
|
213
|
+
injected: "injected";
|
|
214
|
+
cited: "cited";
|
|
215
|
+
applied: "applied";
|
|
216
|
+
}>;
|
|
217
|
+
memory_ids: z.ZodArray<z.ZodString>;
|
|
218
|
+
}, z.core.$strip>;
|
|
219
|
+
/** Detail coord_event: факт координации между агентами (handoff/review/...). */
|
|
220
|
+
export declare const CoordEventDetailSchema: z.ZodObject<{
|
|
221
|
+
kind: z.ZodEnum<{
|
|
222
|
+
blocker: "blocker";
|
|
223
|
+
escalation: "escalation";
|
|
224
|
+
handoff: "handoff";
|
|
225
|
+
review: "review";
|
|
226
|
+
acceptance: "acceptance";
|
|
227
|
+
}>;
|
|
228
|
+
actor_from: z.ZodString;
|
|
229
|
+
actor_to: z.ZodOptional<z.ZodString>;
|
|
230
|
+
refs: z.ZodArray<z.ZodString>;
|
|
231
|
+
note: z.ZodOptional<z.ZodString>;
|
|
232
|
+
}, z.core.$strip>;
|
|
233
|
+
/**
|
|
234
|
+
* Writer (е): memory_stage (P2 D1) — стадия жизненного цикла памяти. Контекст-событие:
|
|
235
|
+
* signalKey → null (как run/task_evaluated), пороги Ф21 не считаются. Detail
|
|
236
|
+
* валидируется схемой — parse-ошибка = программная ошибка писателя (бросаем).
|
|
237
|
+
*/
|
|
238
|
+
export declare function appendMemoryStageSignal(baseDir: string, input: {
|
|
239
|
+
stage: 'retrieved' | 'injected' | 'cited' | 'applied';
|
|
240
|
+
memoryIds: string[];
|
|
241
|
+
actor: string;
|
|
242
|
+
sessionId?: string | null;
|
|
243
|
+
}): {
|
|
244
|
+
key: string | null;
|
|
245
|
+
count: number;
|
|
246
|
+
patternFixed: boolean;
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Writer (ж): coord_event (P2 D3) — факт координации агентов (handoff, review,
|
|
250
|
+
* acceptance, blocker, escalation). Контекст-событие: signalKey → null.
|
|
251
|
+
*/
|
|
252
|
+
export declare function appendCoordEventSignal(baseDir: string, input: {
|
|
253
|
+
kind: 'handoff' | 'review' | 'acceptance' | 'blocker' | 'escalation';
|
|
254
|
+
actorFrom: string;
|
|
255
|
+
actorTo?: string;
|
|
256
|
+
refs: string[];
|
|
257
|
+
note?: string;
|
|
258
|
+
actor: string;
|
|
259
|
+
}): {
|
|
260
|
+
key: string | null;
|
|
261
|
+
count: number;
|
|
262
|
+
patternFixed: boolean;
|
|
263
|
+
};
|
|
179
264
|
//# sourceMappingURL=session-metrics-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-metrics-log.d.ts","sourceRoot":"","sources":["../../../src/adapters/fs/session-metrics-log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-metrics-log.d.ts","sourceRoot":"","sources":["../../../src/adapters/fs/session-metrics-log.ts"],"names":[],"mappings":"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"}
|