@maadb/core 0.7.10-rc.6 → 0.7.10-rc.7

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cleanup.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAuC7C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAqNpE"}
@@ -0,0 +1,246 @@
1
+ // ============================================================================
2
+ // 0.7.10 — Destructive cleanup primitives. Three admin-tier tools governed by
3
+ // the confirm-contract foundation (P1) that landed in rc.1:
4
+ //
5
+ // maad_bulk_delete — explicit docId list, soft or hard.
6
+ // maad_delete_where — filter-driven, composes query + bulk_delete.
7
+ // maad_purge_soft_deleted — hard-delete the cemetery older than a threshold.
8
+ //
9
+ // Contract (per docs/specs/0.7.10-integrity-cleanup.md §confirm-contract):
10
+ // - confirm:true required to mutate; otherwise dry-run returns the would-
11
+ // affect set with no side effects.
12
+ // - maxRecords default 100, ceiling 1000, with per-tool env override
13
+ // MAAD_CLEANUP_MAX_RECORDS_<TOOL_SUFFIX>. Tool arg > env > default.
14
+ // - Exceeding the cap returns BULK_LIMIT_EXCEEDED with chunking hint.
15
+ // - One commit per call on confirmed runs (atomic batch).
16
+ // - Audit log carries confirm_mode: 'dry_run' | 'confirmed' via auditToolCall
17
+ // extras.
18
+ // - Optional idempotencyKey deduplicates retries within TTL via withIdempotency.
19
+ // ============================================================================
20
+ import { z } from 'zod';
21
+ import { withEngine } from '../with-session.js';
22
+ import { withIdempotency } from '../idempotency.js';
23
+ import { auditToolCall } from '../guardrails.js';
24
+ import { resultToResponse, errorResponse, successResponse, attachDurability } from '../response.js';
25
+ import { maadError } from '../../errors.js';
26
+ import { docId as toDocId, docType as toDocType } from '../../types.js';
27
+ import { resolveCleanupMaxRecords, checkCleanupSize, } from '../bulk-cap.js';
28
+ import { notifyWrite } from '../notifications.js';
29
+ const DEFAULT_PURGE_RETENTION_DAYS = 30;
30
+ function resolvePurgeRetentionDays() {
31
+ const raw = process.env.MAAD_PURGE_DEFAULT_RETENTION_DAYS;
32
+ if (!raw)
33
+ return DEFAULT_PURGE_RETENTION_DAYS;
34
+ const n = Number.parseInt(raw, 10);
35
+ if (!Number.isFinite(n) || n < 0)
36
+ return DEFAULT_PURGE_RETENTION_DAYS;
37
+ return n;
38
+ }
39
+ function dryRunResponseAffected(toolName, affected, extra = {}) {
40
+ return successResponse({
41
+ dryRun: true,
42
+ tool: toolName,
43
+ confirmMode: 'dry_run',
44
+ totalAffected: affected.length,
45
+ affected,
46
+ ...extra,
47
+ }, toolName);
48
+ }
49
+ export function register(server, ctx) {
50
+ // --------------------------------------------------------------------------
51
+ // maad_bulk_delete — explicit list, single commit, soft or hard.
52
+ // --------------------------------------------------------------------------
53
+ server.registerTool('maad_bulk_delete', {
54
+ description: 'Delete multiple records in one call with single-commit atomicity. Dry-run by default — pass confirm:true to actually delete. Per-record failures (e.g., docId not found) collect into result.failed without aborting the batch. Default mode is "soft" (rename to _deleted_*); "hard" unlinks the file and removes the index row + cascade. Caps at maxRecords (default 100, ceiling 1000); MAAD_CLEANUP_MAX_RECORDS_BULK_DELETE env override.',
55
+ inputSchema: z.object({
56
+ docIds: z.array(z.string()).min(1).describe('Explicit docId list to delete'),
57
+ mode: z.enum(['soft', 'hard']).optional().describe('soft=rename to _deleted_* (default), hard=unlink file + remove index row'),
58
+ maxRecords: z.number().optional().describe('Per-call cap (default 100, ceiling 1000)'),
59
+ confirm: z.boolean().optional().describe('Set true to actually delete. Absent/false returns dry-run preview.'),
60
+ idempotencyKey: z.string().max(128).optional().describe('Opaque client-supplied key; scopes (project, tool, key) and dedupes retries within TTL'),
61
+ project: z.string().optional().describe('Project name (multi-project mode only)'),
62
+ }),
63
+ }, async (args, extra) => withEngine(ctx, extra, 'maad_bulk_delete', args, async ({ engine, projectName, requestId }) => withIdempotency(projectName, 'maad_bulk_delete', args.idempotencyKey, requestId, async () => {
64
+ const confirmed = args.confirm === true;
65
+ const mode = (args.mode ?? 'soft');
66
+ const maxRecords = resolveCleanupMaxRecords('BULK_DELETE', args.maxRecords);
67
+ const cap = checkCleanupSize('maad_bulk_delete', args.docIds.length, maxRecords);
68
+ if (cap) {
69
+ return errorResponse([
70
+ maadError('BULK_LIMIT_EXCEEDED', cap.message, undefined, {
71
+ tool: cap.tool,
72
+ received: cap.received,
73
+ limit: cap.limit,
74
+ suggestedChunkSize: cap.suggestedChunkSize,
75
+ }),
76
+ ]);
77
+ }
78
+ auditToolCall('maad_bulk_delete', args, { confirm_mode: confirmed ? 'confirmed' : 'dry_run' });
79
+ if (!confirmed) {
80
+ // Resolve which of the requested docIds actually exist so the
81
+ // dry-run preview matches what a confirmed run would touch.
82
+ const affected = [];
83
+ const missing = [];
84
+ for (const id of args.docIds) {
85
+ const doc = engine.getBackend().getDocument(toDocId(id));
86
+ if (doc) {
87
+ affected.push({ docId: doc.docId, docType: doc.docType, filePath: doc.filePath });
88
+ }
89
+ else {
90
+ missing.push(id);
91
+ }
92
+ }
93
+ return dryRunResponseAffected('maad_bulk_delete', affected, {
94
+ mode,
95
+ missing,
96
+ maxRecords,
97
+ });
98
+ }
99
+ const result = await engine.bulkDelete(args.docIds, mode);
100
+ const response = resultToResponse(result, 'maad_bulk_delete');
101
+ if (!result.ok)
102
+ return response;
103
+ const value = result.value;
104
+ if (value.writeDurable) {
105
+ for (const s of value.succeeded) {
106
+ await notifyWrite(ctx, {
107
+ action: 'delete',
108
+ docId: s.docId,
109
+ docType: s.docType,
110
+ project: projectName,
111
+ updatedAt: new Date().toISOString(),
112
+ });
113
+ }
114
+ }
115
+ return attachDurability(response, value.writeDurable, value.commitFailure);
116
+ })));
117
+ // --------------------------------------------------------------------------
118
+ // maad_delete_where — filter-driven; composes query + bulk_delete.
119
+ // --------------------------------------------------------------------------
120
+ server.registerTool('maad_delete_where', {
121
+ description: 'Delete every record matching a filter, single commit. Same filter shape as maad_query. Dry-run by default — pass confirm:true to actually delete. Default mode soft; hard removes file + index row. Caps at maxRecords (default 100, ceiling 1000); MAAD_CLEANUP_MAX_RECORDS_DELETE_WHERE env override. If the filter matches more than maxRecords, returns BULK_LIMIT_EXCEEDED with chunking hint.',
122
+ inputSchema: z.object({
123
+ docType: z.string().describe('Document type to delete within'),
124
+ filters: z.any().optional().describe('Field filters — same shape as maad_query (shorthand eq, single-op, between, array-of-ops AND-semantics)'),
125
+ mode: z.enum(['soft', 'hard']).optional().describe('soft=rename to _deleted_* (default), hard=unlink file + remove index row'),
126
+ maxRecords: z.number().optional().describe('Per-call cap (default 100, ceiling 1000)'),
127
+ confirm: z.boolean().optional().describe('Set true to actually delete. Absent/false returns dry-run preview.'),
128
+ idempotencyKey: z.string().max(128).optional().describe('Opaque client-supplied key; scopes (project, tool, key) and dedupes retries within TTL'),
129
+ project: z.string().optional().describe('Project name (multi-project mode only)'),
130
+ }),
131
+ }, async (args, extra) => withEngine(ctx, extra, 'maad_delete_where', args, async ({ engine, projectName, requestId }) => withIdempotency(projectName, 'maad_delete_where', args.idempotencyKey, requestId, async () => {
132
+ const confirmed = args.confirm === true;
133
+ const mode = (args.mode ?? 'soft');
134
+ const maxRecords = resolveCleanupMaxRecords('DELETE_WHERE', args.maxRecords);
135
+ const query = { docType: toDocType(args.docType) };
136
+ if (args.filters !== undefined)
137
+ query.filters = args.filters;
138
+ // Probe with maxRecords+1 so we can detect overflow without scanning
139
+ // the entire matching set when the operator's scope is wider than
140
+ // they realize.
141
+ query.limit = maxRecords + 1;
142
+ const queryResult = engine.findDocuments(query);
143
+ if (!queryResult.ok)
144
+ return resultToResponse(queryResult, 'maad_delete_where');
145
+ const matched = queryResult.value.results;
146
+ if (matched.length > maxRecords) {
147
+ const cap = checkCleanupSize('maad_delete_where', matched.length, maxRecords);
148
+ return errorResponse([
149
+ maadError('BULK_LIMIT_EXCEEDED', cap.message, undefined, {
150
+ tool: cap.tool,
151
+ received: cap.received,
152
+ limit: cap.limit,
153
+ suggestedChunkSize: cap.suggestedChunkSize,
154
+ }),
155
+ ]);
156
+ }
157
+ auditToolCall('maad_delete_where', args, { confirm_mode: confirmed ? 'confirmed' : 'dry_run' });
158
+ const docIds = matched.map(m => m.docId);
159
+ if (!confirmed) {
160
+ const affected = matched.map(m => ({
161
+ docId: m.docId,
162
+ docType: args.docType,
163
+ }));
164
+ return dryRunResponseAffected('maad_delete_where', affected, {
165
+ mode,
166
+ docType: args.docType,
167
+ maxRecords,
168
+ });
169
+ }
170
+ if (docIds.length === 0) {
171
+ // Confirmed call with no matches — succeed cheaply, no commit.
172
+ const empty = { succeeded: [], failed: [], totalRequested: 0, writeDurable: true };
173
+ return resultToResponse({ ok: true, value: empty }, 'maad_delete_where');
174
+ }
175
+ const result = await engine.bulkDelete(docIds, mode);
176
+ const response = resultToResponse(result, 'maad_delete_where');
177
+ if (!result.ok)
178
+ return response;
179
+ const value = result.value;
180
+ if (value.writeDurable) {
181
+ for (const s of value.succeeded) {
182
+ await notifyWrite(ctx, {
183
+ action: 'delete',
184
+ docId: s.docId,
185
+ docType: s.docType,
186
+ project: projectName,
187
+ updatedAt: new Date().toISOString(),
188
+ });
189
+ }
190
+ }
191
+ return attachDurability(response, value.writeDurable, value.commitFailure);
192
+ })));
193
+ // --------------------------------------------------------------------------
194
+ // maad_purge_soft_deleted — hard-delete cemetery older than retention.
195
+ // --------------------------------------------------------------------------
196
+ server.registerTool('maad_purge_soft_deleted', {
197
+ description: 'Hard-delete soft-deleted records older than the retention threshold. Removes the _deleted_* file from disk, removes the documents row, cascades to objects/relationships/blocks/field_index. Single commit. Dry-run by default — pass confirm:true to actually purge. Default retention 30 days (MAAD_PURGE_DEFAULT_RETENTION_DAYS env). Caps at maxRecords (default 100, ceiling 1000); MAAD_CLEANUP_MAX_RECORDS_PURGE_SOFT_DELETED env override. Reports scanned (total matching) vs purged.length (clipped to maxRecords).',
198
+ inputSchema: z.object({
199
+ olderThan: z.string().optional().describe('ISO-8601 timestamp threshold. Records with updated_at < this are eligible. Default: now - MAAD_PURGE_DEFAULT_RETENTION_DAYS (default 30 days).'),
200
+ maxRecords: z.number().optional().describe('Per-call cap (default 100, ceiling 1000)'),
201
+ confirm: z.boolean().optional().describe('Set true to actually purge. Absent/false returns dry-run preview.'),
202
+ idempotencyKey: z.string().max(128).optional().describe('Opaque client-supplied key; scopes (project, tool, key) and dedupes retries within TTL'),
203
+ project: z.string().optional().describe('Project name (multi-project mode only)'),
204
+ }),
205
+ }, async (args, extra) => withEngine(ctx, extra, 'maad_purge_soft_deleted', args, async ({ engine, projectName, requestId }) => withIdempotency(projectName, 'maad_purge_soft_deleted', args.idempotencyKey, requestId, async () => {
206
+ const confirmed = args.confirm === true;
207
+ const maxRecords = resolveCleanupMaxRecords('PURGE_SOFT_DELETED', args.maxRecords);
208
+ const olderThanIso = args.olderThan ?? new Date(Date.now() - resolvePurgeRetentionDays() * 24 * 60 * 60 * 1000).toISOString();
209
+ auditToolCall('maad_purge_soft_deleted', args, { confirm_mode: confirmed ? 'confirmed' : 'dry_run' });
210
+ if (!confirmed) {
211
+ // Dry-run preview: scan with maxRecords clip so the affected list
212
+ // is what a confirmed run would touch. `scanned` from the engine
213
+ // accounts for the unclipped count when we do the real run.
214
+ const candidates = engine.getBackend().findSoftDeletedBefore(olderThanIso, maxRecords);
215
+ const affected = candidates.map(d => ({
216
+ docId: d.docId,
217
+ docType: d.docType,
218
+ filePath: d.filePath,
219
+ updatedAt: d.updatedAt,
220
+ }));
221
+ return dryRunResponseAffected('maad_purge_soft_deleted', affected, {
222
+ retentionThresholdIso: olderThanIso,
223
+ maxRecords,
224
+ });
225
+ }
226
+ const result = await engine.purgeSoftDeleted(olderThanIso, maxRecords);
227
+ const response = resultToResponse(result, 'maad_purge_soft_deleted');
228
+ if (!result.ok)
229
+ return response;
230
+ const value = result.value;
231
+ if (value.writeDurable) {
232
+ for (const p of value.purged) {
233
+ await notifyWrite(ctx, {
234
+ action: 'delete',
235
+ docId: p.docId,
236
+ docType: p.docType,
237
+ project: projectName,
238
+ updatedAt: new Date().toISOString(),
239
+ });
240
+ }
241
+ }
242
+ return attachDurability(response, value.writeDurable, value.commitFailure);
243
+ })));
244
+ return 3;
245
+ }
246
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/mcp/tools/cleanup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maadb/core",
3
- "version": "0.7.10-rc.6",
3
+ "version": "0.7.10-rc.7",
4
4
  "description": "Markdown As A Database — treats markdown as the canonical data store, builds a queryable index, and gives LLMs deterministic read/write access.",
5
5
  "repository": {
6
6
  "type": "git",