@coreyuan/vector-mind 1.0.52 → 1.0.54
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/README.md +14 -15
- package/dist/builtin-conventions.js +1 -1
- package/dist/builtin-conventions.js.map +1 -1
- package/dist/builtin-instructions.d.ts +1 -1
- package/dist/builtin-instructions.js +1 -1
- package/dist/builtin-instructions.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.js +25 -1
- package/dist/config.js.map +1 -1
- package/dist/database-runtime.d.ts +3 -0
- package/dist/database-runtime.js +342 -19
- package/dist/database-runtime.js.map +1 -1
- package/dist/development-warnings.js +2 -2
- package/dist/development-warnings.js.map +1 -1
- package/dist/fix-patterns.d.ts +58 -0
- package/dist/fix-patterns.js +347 -0
- package/dist/fix-patterns.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/large-file-split.d.ts +1 -0
- package/dist/large-file-split.js +8 -3
- package/dist/large-file-split.js.map +1 -1
- package/dist/memory-maintenance/compaction.d.ts +7 -0
- package/dist/memory-maintenance/compaction.js +132 -0
- package/dist/memory-maintenance/compaction.js.map +1 -0
- package/dist/memory-maintenance/context.d.ts +37 -0
- package/dist/memory-maintenance/context.js +52 -0
- package/dist/memory-maintenance/context.js.map +1 -0
- package/dist/memory-maintenance/index-prune.d.ts +22 -0
- package/dist/memory-maintenance/index-prune.js +243 -0
- package/dist/memory-maintenance/index-prune.js.map +1 -0
- package/dist/memory-maintenance/metrics.d.ts +5 -0
- package/dist/memory-maintenance/metrics.js +22 -0
- package/dist/memory-maintenance/metrics.js.map +1 -0
- package/dist/memory-maintenance/pending.d.ts +4 -0
- package/dist/memory-maintenance/pending.js +74 -0
- package/dist/memory-maintenance/pending.js.map +1 -0
- package/dist/memory-maintenance/purge.d.ts +7 -0
- package/dist/memory-maintenance/purge.js +115 -0
- package/dist/memory-maintenance/purge.js.map +1 -0
- package/dist/memory-maintenance/runner.d.ts +4 -0
- package/dist/memory-maintenance/runner.js +170 -0
- package/dist/memory-maintenance/runner.js.map +1 -0
- package/dist/memory-maintenance/sqlite.d.ts +10 -0
- package/dist/memory-maintenance/sqlite.js +67 -0
- package/dist/memory-maintenance/sqlite.js.map +1 -0
- package/dist/memory-maintenance/types.d.ts +86 -0
- package/dist/memory-maintenance/types.js +2 -0
- package/dist/memory-maintenance/types.js.map +1 -0
- package/dist/memory-maintenance.d.ts +5 -80
- package/dist/memory-maintenance.js +3 -536
- package/dist/memory-maintenance.js.map +1 -1
- package/dist/memory-recall.d.ts +3 -1
- package/dist/memory-recall.js +22 -0
- package/dist/memory-recall.js.map +1 -1
- package/dist/operation-scope.d.ts +63 -0
- package/dist/operation-scope.js +438 -0
- package/dist/operation-scope.js.map +1 -0
- package/dist/path-rules.d.ts +1 -0
- package/dist/path-rules.js +23 -1
- package/dist/path-rules.js.map +1 -1
- package/dist/pending-changes.js +4 -0
- package/dist/pending-changes.js.map +1 -1
- package/dist/server-instructions.js +5 -1
- package/dist/server-instructions.js.map +1 -1
- package/dist/tool-catalog.js +13 -7
- package/dist/tool-catalog.js.map +1 -1
- package/dist/tool-handlers/large-files.js +19 -1
- package/dist/tool-handlers/large-files.js.map +1 -1
- package/dist/tool-handlers/memory-diagnostics.js +53 -4
- package/dist/tool-handlers/memory-diagnostics.js.map +1 -1
- package/dist/tool-handlers/memory.js +20 -2
- package/dist/tool-handlers/memory.js.map +1 -1
- package/dist/tool-handlers/operations.d.ts +4 -0
- package/dist/tool-handlers/operations.js +62 -0
- package/dist/tool-handlers/operations.js.map +1 -0
- package/dist/tool-handlers/requirements.js +106 -17
- package/dist/tool-handlers/requirements.js.map +1 -1
- package/dist/tool-handlers.js +263 -1
- package/dist/tool-handlers.js.map +1 -1
- package/dist/tool-output.d.ts +92 -1
- package/dist/tool-output.js +76 -2
- package/dist/tool-output.js.map +1 -1
- package/dist/tool-schemas.d.ts +34 -0
- package/dist/tool-schemas.js +37 -1
- package/dist/tool-schemas.js.map +1 -1
- package/dist/types.d.ts +9 -1
- package/package.json +4 -1
- package/skills/vector-mind-autopilot/SKILL.md +24 -0
- package/skills/vector-mind-autopilot/references/claude-project-instructions.md +4 -0
- package/skills/vector-mind-autopilot/references/universal-system-prompt.md +4 -1
package/dist/tool-handlers.js
CHANGED
|
@@ -8,12 +8,15 @@ import { handleUpsertProjectSummary, handleAddNote, handleUpsertDecision, handle
|
|
|
8
8
|
import { handleGetActivityLog, handleGetActivitySummary, handleClearActivityLog, handleDetectRtk, handleInstallRtk, handleGetTokenSavings } from "./tool-handlers/diagnostics.js";
|
|
9
9
|
import { handleCreateCheckpoint, handleListCheckpoints, handleMemoryTimeline, handleRestoreCheckpointContext } from "./tool-handlers/context-recovery.js";
|
|
10
10
|
import { handleAnalyzeMemoryConflicts, handleCompareCheckpointContext, handleMemoryQualityReport } from "./tool-handlers/memory-diagnostics.js";
|
|
11
|
+
import { handlePreflightOperationScope } from "./tool-handlers/operations.js";
|
|
12
|
+
import { runAutoMaintenanceIfDue } from "./memory-maintenance.js";
|
|
11
13
|
import { oneLine, toolJson } from "./tool-output.js";
|
|
12
14
|
const TOOL_HANDLERS = {
|
|
13
15
|
start_requirement: handleStartRequirement,
|
|
14
16
|
prune_index: handlePruneIndex,
|
|
15
17
|
maintain_memory: handleMaintainMemory,
|
|
16
18
|
preflight_change_scope: handlePreflightChangeScope,
|
|
19
|
+
preflight_operation_scope: handlePreflightOperationScope,
|
|
17
20
|
plan_large_file_split: handlePlanLargeFileSplit,
|
|
18
21
|
record_large_file_split: handleRecordLargeFileSplit,
|
|
19
22
|
sync_change_intent: handleSyncChangeIntent,
|
|
@@ -78,12 +81,269 @@ function attachProjectContextAdvisory(result, advisory) {
|
|
|
78
81
|
});
|
|
79
82
|
return { ...result, content };
|
|
80
83
|
}
|
|
84
|
+
function firstTextContent(result) {
|
|
85
|
+
const item = result.content?.find((content) => content.type === "text");
|
|
86
|
+
return item?.type === "text" && typeof item.text === "string" ? item.text : "";
|
|
87
|
+
}
|
|
88
|
+
function parseJsonToolOutput(result) {
|
|
89
|
+
const text = firstTextContent(result).trim();
|
|
90
|
+
if (!text.startsWith("{"))
|
|
91
|
+
return null;
|
|
92
|
+
try {
|
|
93
|
+
const parsed = JSON.parse(text);
|
|
94
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function warningCode(warning) {
|
|
101
|
+
if (!warning || typeof warning !== "object" || Array.isArray(warning))
|
|
102
|
+
return "";
|
|
103
|
+
const code = warning.code;
|
|
104
|
+
return typeof code === "string" ? code : "";
|
|
105
|
+
}
|
|
106
|
+
function warningMessage(warning) {
|
|
107
|
+
if (!warning || typeof warning !== "object" || Array.isArray(warning))
|
|
108
|
+
return "";
|
|
109
|
+
const record = warning;
|
|
110
|
+
for (const key of ["message", "detail", "title", "reason"]) {
|
|
111
|
+
const value = record[key];
|
|
112
|
+
if (typeof value === "string" && value.length > 0)
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
const code = warningCode(warning);
|
|
116
|
+
return code || "MCP guard warning";
|
|
117
|
+
}
|
|
118
|
+
function eventForWarningCode(code) {
|
|
119
|
+
switch (code) {
|
|
120
|
+
case "huge_file_modularization_required":
|
|
121
|
+
return {
|
|
122
|
+
eventType: "blocked_large_file",
|
|
123
|
+
severity: "critical",
|
|
124
|
+
title: "阻止大文件直接修改,要求先拆模块",
|
|
125
|
+
};
|
|
126
|
+
case "very_large_file":
|
|
127
|
+
case "large_file":
|
|
128
|
+
case "large_file_read":
|
|
129
|
+
return {
|
|
130
|
+
eventType: "large_file_guard",
|
|
131
|
+
severity: "warn",
|
|
132
|
+
title: "提醒大文件风险,避免继续堆叠实现",
|
|
133
|
+
};
|
|
134
|
+
case "scope_drift":
|
|
135
|
+
return {
|
|
136
|
+
eventType: "scope_drift_guard",
|
|
137
|
+
severity: "warn",
|
|
138
|
+
title: "发现需求范围漂移,提醒收窄改动",
|
|
139
|
+
};
|
|
140
|
+
case "requirement_mapping_missing":
|
|
141
|
+
return {
|
|
142
|
+
eventType: "requirement_mapping_guard",
|
|
143
|
+
severity: "warn",
|
|
144
|
+
title: "拦截未映射到需求项的改动",
|
|
145
|
+
};
|
|
146
|
+
case "scope_contract_missing":
|
|
147
|
+
return {
|
|
148
|
+
eventType: "scope_contract_guard",
|
|
149
|
+
severity: "warn",
|
|
150
|
+
title: "缺少需求范围契约,阻止直接编辑",
|
|
151
|
+
};
|
|
152
|
+
case "cross_project_path":
|
|
153
|
+
return {
|
|
154
|
+
eventType: "cross_project_guard",
|
|
155
|
+
severity: "warn",
|
|
156
|
+
title: "发现跨项目路径引用,提醒隔离上下文",
|
|
157
|
+
};
|
|
158
|
+
default:
|
|
159
|
+
return {
|
|
160
|
+
eventType: code ? `development_warning:${code}` : "development_warning",
|
|
161
|
+
severity: "info",
|
|
162
|
+
title: code ? `MCP 开发防护提示:${code}` : "MCP 开发防护提示",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function normalizedGuardSeverity(value, fallback = "info") {
|
|
167
|
+
if (value === "critical" || value === "warn" || value === "info")
|
|
168
|
+
return value;
|
|
169
|
+
if (value === "warning")
|
|
170
|
+
return "warn";
|
|
171
|
+
if (value === "blocker" || value === "error")
|
|
172
|
+
return "critical";
|
|
173
|
+
return fallback;
|
|
174
|
+
}
|
|
175
|
+
function eventForOperationWarningCode(code) {
|
|
176
|
+
const title = code === "stale_default_conflict"
|
|
177
|
+
? "发现过期默认操作,阻止继续执行"
|
|
178
|
+
: code === "operation_constraint_conflict"
|
|
179
|
+
? "发现操作约束冲突,阻止继续执行"
|
|
180
|
+
: `MCP 操作防护提示:${code}`;
|
|
181
|
+
return {
|
|
182
|
+
eventType: `operation_guard:${code}`,
|
|
183
|
+
severity: "warn",
|
|
184
|
+
title,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function parseCompactToolOutputEvents(toolName, text) {
|
|
188
|
+
const events = [];
|
|
189
|
+
const lines = text.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
|
|
190
|
+
if (!lines.length)
|
|
191
|
+
return events;
|
|
192
|
+
const hasDevelopmentWarnings = lines.some((line) => /^development warnings:$/i.test(line));
|
|
193
|
+
const hasOperationWarnings = lines.some((line) => /^operation warnings:$/i.test(line));
|
|
194
|
+
const header = lines[0] ?? "";
|
|
195
|
+
const okMatch = /\bok=(true|false)\b/.exec(header);
|
|
196
|
+
const safeToEditMatch = /\bsafe_to_edit=(true|false)\b/.exec(header);
|
|
197
|
+
const safeToProceedMatch = /\bsafe_to_proceed=(true|false)\b/.exec(header);
|
|
198
|
+
const compactState = {
|
|
199
|
+
ok: okMatch ? okMatch[1] === "true" : undefined,
|
|
200
|
+
safe_to_edit: safeToEditMatch ? safeToEditMatch[1] === "true" : undefined,
|
|
201
|
+
safe_to_proceed: safeToProceedMatch ? safeToProceedMatch[1] === "true" : undefined,
|
|
202
|
+
};
|
|
203
|
+
for (const line of lines) {
|
|
204
|
+
const advisory = /^project_context_advisory\s+([^:\s]+):\s*(.*)$/i.exec(line);
|
|
205
|
+
if (advisory) {
|
|
206
|
+
events.push({
|
|
207
|
+
eventType: "cross_project_reference",
|
|
208
|
+
severity: "info",
|
|
209
|
+
title: "识别跨项目上下文,只作为只读参考",
|
|
210
|
+
detail: advisory[2] || "MCP 检测到 project_root 切换或跨项目引用,提醒不要把外部项目当作当前需求范围。",
|
|
211
|
+
metadata: {
|
|
212
|
+
tool_name: toolName,
|
|
213
|
+
compact: true,
|
|
214
|
+
advisory_code: advisory[1],
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
const operationWarning = /^-\s+([a-z_-]+)\s+([^:\s]+)(?:\s+[^:]*)?:\s*(.*)$/i.exec(line);
|
|
220
|
+
if (operationWarning && hasOperationWarnings) {
|
|
221
|
+
const code = operationWarning[2];
|
|
222
|
+
const base = eventForOperationWarningCode(code);
|
|
223
|
+
const lineSeverity = normalizedGuardSeverity(operationWarning[1], base.severity);
|
|
224
|
+
events.push({
|
|
225
|
+
...base,
|
|
226
|
+
severity: lineSeverity,
|
|
227
|
+
detail: operationWarning[3] || code,
|
|
228
|
+
metadata: {
|
|
229
|
+
tool_name: toolName,
|
|
230
|
+
compact: true,
|
|
231
|
+
warning: {
|
|
232
|
+
code,
|
|
233
|
+
severity: lineSeverity,
|
|
234
|
+
message: operationWarning[3] || code,
|
|
235
|
+
},
|
|
236
|
+
...compactState,
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const warning = /^-\s+([a-z_-]+)\s+([^:\s]+):\s*(.*)$/i.exec(line);
|
|
242
|
+
if (warning && hasDevelopmentWarnings) {
|
|
243
|
+
const code = warning[2];
|
|
244
|
+
const base = eventForWarningCode(code);
|
|
245
|
+
const lineSeverity = normalizedGuardSeverity(warning[1]);
|
|
246
|
+
events.push({
|
|
247
|
+
...base,
|
|
248
|
+
severity: base.severity === "info" ? lineSeverity : base.severity,
|
|
249
|
+
detail: warning[3] || code,
|
|
250
|
+
metadata: {
|
|
251
|
+
tool_name: toolName,
|
|
252
|
+
compact: true,
|
|
253
|
+
warning: {
|
|
254
|
+
code,
|
|
255
|
+
severity: lineSeverity,
|
|
256
|
+
message: warning[3] || code,
|
|
257
|
+
},
|
|
258
|
+
...compactState,
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return events;
|
|
265
|
+
}
|
|
266
|
+
function outputEventsForToolResult(toolName, result) {
|
|
267
|
+
const text = firstTextContent(result).trim();
|
|
268
|
+
const parsed = parseJsonToolOutput(result);
|
|
269
|
+
if (!parsed)
|
|
270
|
+
return parseCompactToolOutputEvents(toolName, text);
|
|
271
|
+
const events = [];
|
|
272
|
+
const developmentWarnings = Array.isArray(parsed.development_warnings) ? parsed.development_warnings : [];
|
|
273
|
+
for (const warning of developmentWarnings) {
|
|
274
|
+
const code = warningCode(warning);
|
|
275
|
+
const base = eventForWarningCode(code);
|
|
276
|
+
events.push({
|
|
277
|
+
...base,
|
|
278
|
+
detail: warningMessage(warning),
|
|
279
|
+
metadata: {
|
|
280
|
+
tool_name: toolName,
|
|
281
|
+
warning,
|
|
282
|
+
ok: parsed.ok,
|
|
283
|
+
safe_to_edit: parsed.safe_to_edit,
|
|
284
|
+
safe_to_proceed: parsed.safe_to_proceed,
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
const operationWarnings = Array.isArray(parsed.warnings) ? parsed.warnings : [];
|
|
289
|
+
for (const warning of operationWarnings) {
|
|
290
|
+
const code = warningCode(warning);
|
|
291
|
+
if (!code)
|
|
292
|
+
continue;
|
|
293
|
+
const base = eventForOperationWarningCode(code);
|
|
294
|
+
events.push({
|
|
295
|
+
...base,
|
|
296
|
+
detail: warningMessage(warning),
|
|
297
|
+
metadata: {
|
|
298
|
+
tool_name: toolName,
|
|
299
|
+
warning,
|
|
300
|
+
ok: parsed.ok,
|
|
301
|
+
safe_to_proceed: parsed.safe_to_proceed,
|
|
302
|
+
},
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
if (parsed.project_context_advisory && typeof parsed.project_context_advisory === "object") {
|
|
306
|
+
events.push({
|
|
307
|
+
eventType: "cross_project_reference",
|
|
308
|
+
severity: "info",
|
|
309
|
+
title: "识别跨项目上下文,只作为只读参考",
|
|
310
|
+
detail: "MCP 检测到 project_root 切换或跨项目引用,提醒不要把外部项目当作当前需求范围。",
|
|
311
|
+
metadata: {
|
|
312
|
+
tool_name: toolName,
|
|
313
|
+
advisory: parsed.project_context_advisory,
|
|
314
|
+
},
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return events;
|
|
318
|
+
}
|
|
319
|
+
function persistMcpGuardEvents(toolName, result, context) {
|
|
320
|
+
const events = outputEventsForToolResult(toolName, result);
|
|
321
|
+
if (!events.length)
|
|
322
|
+
return;
|
|
323
|
+
const stmt = context.getStatements().insertMcpGuardEventStmt;
|
|
324
|
+
if (!stmt)
|
|
325
|
+
return;
|
|
326
|
+
try {
|
|
327
|
+
const db = context.getDb();
|
|
328
|
+
const tx = db.transaction(() => {
|
|
329
|
+
for (const event of events) {
|
|
330
|
+
stmt.run(toolName, event.eventType, event.severity, event.title, event.detail, JSON.stringify(event.metadata));
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
tx();
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
// Guard-event persistence must never break the original MCP tool result.
|
|
337
|
+
}
|
|
338
|
+
}
|
|
81
339
|
export function registerToolHandlers(server, context) {
|
|
82
340
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
83
341
|
const toolName = request.params.name;
|
|
84
342
|
const rawArgs = (request.params.arguments ?? {});
|
|
85
343
|
try {
|
|
86
344
|
await context.ensureInitializedForArgs(rawArgs);
|
|
345
|
+
if (toolName !== "maintain_memory")
|
|
346
|
+
runAutoMaintenanceIfDue();
|
|
87
347
|
const handler = TOOL_HANDLERS[toolName];
|
|
88
348
|
if (!handler) {
|
|
89
349
|
return attachProjectContextAdvisory({
|
|
@@ -92,7 +352,9 @@ export function registerToolHandlers(server, context) {
|
|
|
92
352
|
}, context.consumeProjectContextAdvisory());
|
|
93
353
|
}
|
|
94
354
|
const result = await handler(rawArgs, context);
|
|
95
|
-
|
|
355
|
+
const finalResult = attachProjectContextAdvisory(result, context.consumeProjectContextAdvisory());
|
|
356
|
+
persistMcpGuardEvents(toolName, finalResult, context);
|
|
357
|
+
return finalResult;
|
|
96
358
|
}
|
|
97
359
|
catch (err) {
|
|
98
360
|
return attachProjectContextAdvisory({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-output.d.ts
CHANGED
|
@@ -32,7 +32,9 @@ type CompactRequirementPreview = {
|
|
|
32
32
|
};
|
|
33
33
|
type CompactChangeLogPreview = {
|
|
34
34
|
id: number;
|
|
35
|
-
file_path: string;
|
|
35
|
+
file_path: string | null;
|
|
36
|
+
files?: string[];
|
|
37
|
+
file_count?: number;
|
|
36
38
|
intent_preview: string;
|
|
37
39
|
};
|
|
38
40
|
type CompactSemanticSearchResult = {
|
|
@@ -44,9 +46,58 @@ type CompactSemanticSearchResult = {
|
|
|
44
46
|
item: CompactMemoryItemPreview;
|
|
45
47
|
}>;
|
|
46
48
|
};
|
|
49
|
+
type CompactCurrentConstraint = {
|
|
50
|
+
id: number;
|
|
51
|
+
kind: string;
|
|
52
|
+
title?: string | null;
|
|
53
|
+
source: string;
|
|
54
|
+
preview?: string | null;
|
|
55
|
+
};
|
|
56
|
+
type CompactOperationScopeWarning = {
|
|
57
|
+
code: string;
|
|
58
|
+
severity: string;
|
|
59
|
+
message: string;
|
|
60
|
+
evidence?: Array<{
|
|
61
|
+
constraint_id: number;
|
|
62
|
+
kind: string;
|
|
63
|
+
title?: string | null;
|
|
64
|
+
source: string;
|
|
65
|
+
preview?: string | null;
|
|
66
|
+
}>;
|
|
67
|
+
};
|
|
68
|
+
type CompactRelevantFixPattern = {
|
|
69
|
+
memory_id: number;
|
|
70
|
+
symptom: string;
|
|
71
|
+
root_cause: string;
|
|
72
|
+
invariant: string;
|
|
73
|
+
avoid_regression?: string[];
|
|
74
|
+
relevance_score: number;
|
|
75
|
+
reason?: string;
|
|
76
|
+
};
|
|
77
|
+
type CompactQualitySignals = {
|
|
78
|
+
advisory_only: boolean;
|
|
79
|
+
does_not_control_model_reasoning?: boolean;
|
|
80
|
+
does_not_control_host_runtime?: boolean;
|
|
81
|
+
does_not_replace_model_judgment?: boolean;
|
|
82
|
+
does_not_change_ok_or_safe_to_edit?: boolean;
|
|
83
|
+
does_not_expand_requirement_scope?: boolean;
|
|
84
|
+
relevant_fix_patterns?: CompactRelevantFixPattern[];
|
|
85
|
+
};
|
|
47
86
|
type CompactMaintenanceResult = {
|
|
48
87
|
dry_run: boolean;
|
|
49
88
|
trigger: string;
|
|
89
|
+
db_size_before?: {
|
|
90
|
+
total_bytes: number;
|
|
91
|
+
db_bytes: number;
|
|
92
|
+
wal_bytes: number;
|
|
93
|
+
shm_bytes: number;
|
|
94
|
+
};
|
|
95
|
+
db_size_after?: {
|
|
96
|
+
total_bytes: number;
|
|
97
|
+
db_bytes: number;
|
|
98
|
+
wal_bytes: number;
|
|
99
|
+
shm_bytes: number;
|
|
100
|
+
};
|
|
50
101
|
compacted_memory: {
|
|
51
102
|
candidates: number;
|
|
52
103
|
compacted: number;
|
|
@@ -75,6 +126,30 @@ type CompactMaintenanceResult = {
|
|
|
75
126
|
samples: string[];
|
|
76
127
|
};
|
|
77
128
|
};
|
|
129
|
+
pending_pruned?: {
|
|
130
|
+
ignored_deleted: number;
|
|
131
|
+
old_deleted: number;
|
|
132
|
+
overflow_deleted: number;
|
|
133
|
+
};
|
|
134
|
+
purged_hidden_memory?: {
|
|
135
|
+
memory_candidates: number;
|
|
136
|
+
memory_deleted: number;
|
|
137
|
+
archive_candidates: number;
|
|
138
|
+
archives_deleted: number;
|
|
139
|
+
samples: Array<{
|
|
140
|
+
id: number;
|
|
141
|
+
kind: string;
|
|
142
|
+
title?: string | null;
|
|
143
|
+
file_path?: string | null;
|
|
144
|
+
updated_at: string;
|
|
145
|
+
}>;
|
|
146
|
+
};
|
|
147
|
+
metrics_pruned?: {
|
|
148
|
+
token_savings_deleted: number;
|
|
149
|
+
};
|
|
150
|
+
fts_optimized?: boolean;
|
|
151
|
+
wal_checkpointed?: boolean;
|
|
152
|
+
vacuumed?: boolean;
|
|
78
153
|
};
|
|
79
154
|
type CompactTokenSavingsSummary = {
|
|
80
155
|
summary: {
|
|
@@ -178,6 +253,20 @@ export declare function compactPreflightChangeScopeText(data: {
|
|
|
178
253
|
};
|
|
179
254
|
scope_contract: CompactRequirementScopeContract | null;
|
|
180
255
|
development_warnings: CompactDevelopmentWarning[];
|
|
256
|
+
quality_signals?: CompactQualitySignals;
|
|
257
|
+
}): string;
|
|
258
|
+
export declare function compactPreflightOperationScopeText(data: {
|
|
259
|
+
ok: boolean;
|
|
260
|
+
safe_to_proceed: boolean;
|
|
261
|
+
advisory_only?: boolean;
|
|
262
|
+
operation: string;
|
|
263
|
+
intent: string;
|
|
264
|
+
planned_commands: string[];
|
|
265
|
+
planned_files: string[];
|
|
266
|
+
planned_targets: string[];
|
|
267
|
+
current_constraints: CompactCurrentConstraint[];
|
|
268
|
+
warnings: CompactOperationScopeWarning[];
|
|
269
|
+
recommended_action: string;
|
|
181
270
|
}): string;
|
|
182
271
|
export declare function compactLargeFileSplitPlanText(data: LargeFileSplitPlan): string;
|
|
183
272
|
export declare function compactBootstrapText(data: {
|
|
@@ -189,6 +278,7 @@ export declare function compactBootstrapText(data: {
|
|
|
189
278
|
project_summary: CompactMemoryItemPreview | null;
|
|
190
279
|
decisions: Array<CompactMemoryItemPreview>;
|
|
191
280
|
conventions: Array<CompactMemoryItemPreview>;
|
|
281
|
+
current_constraints?: Array<CompactCurrentConstraint>;
|
|
192
282
|
current_context: Array<CompactMemoryItemPreview>;
|
|
193
283
|
recent_notes: Array<CompactMemoryItemPreview>;
|
|
194
284
|
pending_total: number;
|
|
@@ -197,6 +287,7 @@ export declare function compactBootstrapText(data: {
|
|
|
197
287
|
pending_truncated: boolean;
|
|
198
288
|
pending_changes: PendingChangeRow[];
|
|
199
289
|
development_warnings?: CompactDevelopmentWarning[];
|
|
290
|
+
quality_signals?: CompactQualitySignals;
|
|
200
291
|
items: Array<{
|
|
201
292
|
requirement: CompactRequirementPreview;
|
|
202
293
|
recent_changes: Array<CompactChangeLogPreview>;
|
package/dist/tool-output.js
CHANGED
|
@@ -9,6 +9,22 @@ function compactDevelopmentWarningsText(warnings) {
|
|
|
9
9
|
}
|
|
10
10
|
return lines;
|
|
11
11
|
}
|
|
12
|
+
function compactQualitySignalsText(signals) {
|
|
13
|
+
const patterns = signals?.relevant_fix_patterns ?? [];
|
|
14
|
+
if (!patterns.length)
|
|
15
|
+
return [];
|
|
16
|
+
const lines = [
|
|
17
|
+
`quality signals advisory_only=${signals?.advisory_only === true} relevant_fix_patterns=${patterns.length}`,
|
|
18
|
+
];
|
|
19
|
+
for (const p of patterns.slice(0, 3)) {
|
|
20
|
+
lines.push(`- fix_pattern #${p.memory_id} score=${Number(p.relevance_score).toFixed(2)} invariant=${oneLine(p.invariant, 150)}`);
|
|
21
|
+
if (p.avoid_regression?.length) {
|
|
22
|
+
lines.push(` avoid: ${p.avoid_regression.slice(0, 2).map((item) => oneLine(item, 90)).join("; ")}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
lines.push("hint: fix_pattern matches are reminders only; do not expand scope or change ok/safe flags from them");
|
|
26
|
+
return lines;
|
|
27
|
+
}
|
|
12
28
|
export function safeJson(value) {
|
|
13
29
|
if (value === undefined)
|
|
14
30
|
return null;
|
|
@@ -45,7 +61,11 @@ function compactRequirementLabel(req) {
|
|
|
45
61
|
return `req#${req.id}${mem} [${req.status}] ${oneLine(req.title, 80)}${ctx}`;
|
|
46
62
|
}
|
|
47
63
|
function compactChangeLabel(change) {
|
|
48
|
-
|
|
64
|
+
const files = change.files?.length
|
|
65
|
+
? `${change.files.slice(0, 3).join(",")}${change.files.length > 3 ? "..." : ""}`
|
|
66
|
+
: (change.file_path ?? "unspecified");
|
|
67
|
+
const count = change.file_count && change.file_count > 1 ? ` files=${change.file_count}` : "";
|
|
68
|
+
return `change#${change.id}${count} ${files}: ${oneLine(change.intent_preview, 120)}`;
|
|
49
69
|
}
|
|
50
70
|
function compactPendingLabel(p) {
|
|
51
71
|
const source = "source" in p && p.source === "git" ? " git" : "";
|
|
@@ -127,9 +147,20 @@ export function compactMaintenanceText(data) {
|
|
|
127
147
|
const prunedSymbols = data.pruned.ignored_paths.symbols_deleted +
|
|
128
148
|
data.pruned.filename_noise.symbols_deleted +
|
|
129
149
|
data.pruned.stale_files.symbols_deleted;
|
|
150
|
+
const pendingPruned = data.pending_pruned
|
|
151
|
+
? data.pending_pruned.ignored_deleted + data.pending_pruned.old_deleted + data.pending_pruned.overflow_deleted
|
|
152
|
+
: 0;
|
|
153
|
+
const hiddenDeleted = data.purged_hidden_memory?.memory_deleted ?? 0;
|
|
154
|
+
const archivesDeleted = data.purged_hidden_memory?.archives_deleted ?? 0;
|
|
155
|
+
const tokenSavingsDeleted = data.metrics_pruned?.token_savings_deleted ?? 0;
|
|
156
|
+
const beforeBytes = data.db_size_before?.total_bytes ?? 0;
|
|
157
|
+
const afterBytes = data.db_size_after?.total_bytes ?? 0;
|
|
130
158
|
const lines = [
|
|
131
|
-
`maintain_memory ok dry_run=${data.dry_run} trigger=${data.trigger} compacted=${data.compacted_memory.compacted}/${data.compacted_memory.candidates} archived=${data.compacted_memory.archived} pruned_chunks=${prunedChunks} pruned_symbols=${prunedSymbols}`,
|
|
159
|
+
`maintain_memory ok dry_run=${data.dry_run} trigger=${data.trigger} compacted=${data.compacted_memory.compacted}/${data.compacted_memory.candidates} archived=${data.compacted_memory.archived} pruned_chunks=${prunedChunks} pruned_symbols=${prunedSymbols} pending_pruned=${pendingPruned} hidden_deleted=${hiddenDeleted} archives_deleted=${archivesDeleted} token_savings_deleted=${tokenSavingsDeleted}`,
|
|
132
160
|
];
|
|
161
|
+
if (beforeBytes || afterBytes) {
|
|
162
|
+
lines.push(`db_size total ${beforeBytes} -> ${afterBytes} bytes`);
|
|
163
|
+
}
|
|
133
164
|
if (data.compacted_memory.summary_memory_id) {
|
|
134
165
|
lines.push(`summary memory_compaction #${data.compacted_memory.summary_memory_id}`);
|
|
135
166
|
}
|
|
@@ -144,6 +175,15 @@ export function compactMaintenanceText(data) {
|
|
|
144
175
|
for (const s of data.pruned.stale_files.samples.slice(0, 8))
|
|
145
176
|
lines.push(`- ${s}`);
|
|
146
177
|
}
|
|
178
|
+
if (data.purged_hidden_memory?.samples?.length) {
|
|
179
|
+
lines.push("hidden memory purge candidates:");
|
|
180
|
+
for (const s of data.purged_hidden_memory.samples.slice(0, 8)) {
|
|
181
|
+
lines.push(`- #${s.id} ${s.kind} ${s.file_path ?? ""} ${oneLine(s.title ?? "", 80)} ${s.updated_at}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (data.fts_optimized || data.wal_checkpointed || data.vacuumed) {
|
|
185
|
+
lines.push(`sqlite maintenance fts_optimized=${data.fts_optimized === true} wal_checkpointed=${data.wal_checkpointed === true} vacuumed=${data.vacuumed === true}`);
|
|
186
|
+
}
|
|
147
187
|
lines.push("hint: dry_run=false applies changes; vacuum=true reclaims sqlite file space after pruning");
|
|
148
188
|
return lines.join("\n");
|
|
149
189
|
}
|
|
@@ -164,10 +204,37 @@ export function compactPreflightChangeScopeText(data) {
|
|
|
164
204
|
lines.push(`scope allow_terms=${data.scope_contract.allow_terms.length} deny_terms=${data.scope_contract.deny_terms.length} allowed_paths=${data.scope_contract.allowed_paths.length} denied_paths=${data.scope_contract.denied_paths.length}`);
|
|
165
205
|
}
|
|
166
206
|
lines.push(...compactDevelopmentWarningsText(data.development_warnings));
|
|
207
|
+
lines.push(...compactQualitySignalsText(data.quality_signals));
|
|
167
208
|
if (!data.development_warnings.length)
|
|
168
209
|
lines.push("- no development warnings");
|
|
169
210
|
return lines.join("\n");
|
|
170
211
|
}
|
|
212
|
+
export function compactPreflightOperationScopeText(data) {
|
|
213
|
+
const lines = [
|
|
214
|
+
`preflight_operation_scope ok=${data.ok} safe_to_proceed=${data.safe_to_proceed} advisory_only=${data.advisory_only === true} operation="${oneLine(data.operation, 80)}" commands=${data.planned_commands.length} files=${data.planned_files.length} targets=${data.planned_targets.length}`,
|
|
215
|
+
`action: ${oneLine(data.recommended_action, 200)}`,
|
|
216
|
+
];
|
|
217
|
+
if (data.current_constraints.length) {
|
|
218
|
+
lines.push("current_constraints:");
|
|
219
|
+
for (const c of data.current_constraints.slice(0, 8)) {
|
|
220
|
+
lines.push(`- #${c.id} ${c.source}/${c.kind} ${oneLine(c.title ?? "", 60)} —${oneLine(c.preview ?? "", 140)}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
lines.push("current_constraints: none");
|
|
225
|
+
}
|
|
226
|
+
if (data.warnings.length) {
|
|
227
|
+
lines.push("operation warnings:");
|
|
228
|
+
for (const w of data.warnings.slice(0, 8)) {
|
|
229
|
+
const ev = w.evidence?.[0] ? ` evidence=#${w.evidence[0].constraint_id}` : "";
|
|
230
|
+
lines.push(`- ${w.severity} ${w.code}${ev}: ${oneLine(w.message, 180)}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
lines.push("- no operation warnings");
|
|
235
|
+
}
|
|
236
|
+
return lines.join("\n");
|
|
237
|
+
}
|
|
171
238
|
export function compactLargeFileSplitPlanText(data) {
|
|
172
239
|
const lines = [
|
|
173
240
|
`large_file_split ok=${data.ok} file=${data.file_path} lines=${data.line_count} threshold=${data.huge_threshold_lines} action=${data.required_action}`,
|
|
@@ -198,6 +265,12 @@ export function compactBootstrapText(data) {
|
|
|
198
265
|
for (const d of data.decisions.slice(0, 5))
|
|
199
266
|
lines.push(`- ${compactMemoryLabel(d, 160)}`);
|
|
200
267
|
}
|
|
268
|
+
if (data.current_constraints?.length) {
|
|
269
|
+
lines.push("current constraints:");
|
|
270
|
+
for (const c of data.current_constraints.slice(0, 6)) {
|
|
271
|
+
lines.push(`- #${c.id} ${c.source}/${c.kind} ${oneLine(c.title ?? "", 54)} —${oneLine(c.preview ?? "", 130)}`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
201
274
|
if (data.current_context.length) {
|
|
202
275
|
lines.push("current context:");
|
|
203
276
|
for (const c of data.current_context.slice(0, 8))
|
|
@@ -213,6 +286,7 @@ export function compactBootstrapText(data) {
|
|
|
213
286
|
lines.push("pending 0");
|
|
214
287
|
}
|
|
215
288
|
lines.push(...compactDevelopmentWarningsText(data.development_warnings ?? []));
|
|
289
|
+
lines.push(...compactQualitySignalsText(data.quality_signals));
|
|
216
290
|
if (data.items.length) {
|
|
217
291
|
lines.push("requirements:");
|
|
218
292
|
for (const item of data.items) {
|