db-mcp 3.0.1 → 4.0.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/README.md +92 -75
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/database-adapter.d.ts +2 -1
- package/dist/adapters/database-adapter.d.ts.map +1 -1
- package/dist/adapters/registration/resources.d.ts.map +1 -1
- package/dist/adapters/registration/tools.d.ts.map +1 -1
- package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -1
- package/dist/adapters/sqlite/resources.d.ts +1 -1
- package/dist/adapters/sqlite/resources.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/admin.d.ts +29 -15
- package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/core.d.ts +2 -0
- package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/fts.d.ts +4 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/introspection.d.ts +20 -11
- package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/spatialite.d.ts +1 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -1
- package/dist/adapters/sqlite/schemas/text.d.ts +36 -0
- package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -1
- package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts +0 -4
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/text/helpers.d.ts +9 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -1
- package/dist/adapters/sqlite/tools/text/search.d.ts +4 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -1
- package/dist/adapters/sqlite/types.d.ts +4 -0
- package/dist/adapters/sqlite/types.d.ts.map +1 -1
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -1
- package/dist/audit/interceptor.d.ts.map +1 -1
- package/dist/audit/logger.d.ts +26 -25
- package/dist/audit/logger.d.ts.map +1 -1
- package/dist/{chunk-W5WQVNVX.js → chunk-EQF3WZHX.js} +10 -17
- package/dist/{chunk-37G4DLL6.js → chunk-NIC5Z2CA.js} +732 -138
- package/dist/chunk-R5M4WKDM.js +987 -0
- package/dist/{chunk-NV34JSQM.js → chunk-TGE7LFAR.js} +708 -996
- package/dist/{chunk-L552U3QS.js → chunk-Y57WFKAP.js} +227 -9
- package/dist/cli.js +103 -10
- package/dist/codemode/sandbox.d.ts.map +1 -1
- package/dist/constants/server-instructions.d.ts +1 -1
- package/dist/constants/server-instructions.d.ts.map +1 -1
- package/dist/filtering/tool-constants.d.ts +9 -9
- package/dist/{http-HWTUVFIA.js → http-2WGR3E5K.js} +13 -1
- package/dist/index.js +4 -4
- package/dist/observability/metrics.d.ts +36 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/system-db.d.ts +13 -0
- package/dist/observability/system-db.d.ts.map +1 -0
- package/dist/server/mcp-server.d.ts +3 -0
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/registration/admin-tools.d.ts +6 -0
- package/dist/server/registration/admin-tools.d.ts.map +1 -0
- package/dist/server/registration/audit-tools.d.ts +4 -0
- package/dist/server/registration/audit-tools.d.ts.map +1 -1
- package/dist/server/registration/help-resources.d.ts.map +1 -1
- package/dist/server/registration/index.d.ts +3 -1
- package/dist/server/registration/index.d.ts.map +1 -1
- package/dist/server/registration/observability-resources.d.ts +11 -0
- package/dist/server/registration/observability-resources.d.ts.map +1 -0
- package/dist/server/subscription-manager.d.ts +35 -0
- package/dist/server/subscription-manager.d.ts.map +1 -0
- package/dist/{sqlite-TB56Z7G3.js → sqlite-D4WCNPU4.js} +8 -5
- package/dist/{sqlite-native-IF75BB3O.js → sqlite-native-DLVS2T52.js} +159 -34
- package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -1
- package/dist/transports/http/sessions/stateful.d.ts.map +1 -1
- package/dist/transports/http/transport.d.ts.map +1 -1
- package/dist/transports/http/types.d.ts +2 -0
- package/dist/transports/http/types.d.ts.map +1 -1
- package/dist/types/server.d.ts +2 -0
- package/dist/types/server.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/logger/types.d.ts +1 -1
- package/dist/utils/logger/types.d.ts.map +1 -1
- package/dist/utils/tokens.d.ts +15 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/package.json +10 -7
- package/dist/chunk-E5IESRTK.js +0 -489
- package/dist/utils/insights-manager.d.ts +0 -39
- package/dist/utils/insights-manager.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "db-mcp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "SQLite MCP
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "SQLite MCP Server — Secure Database Administration & Observability with Code Mode. True V8 Isolate Sandbox Unifying 170+ Specialized Tools with Highly Optimized Payloads for 70–90% Token Savings. Includes Dynamic Tool Filtering, Dual-Transport HTTP/SSE, OAuth 2.1 Auth, Granular Access Control, Audit Logging, & Deterministic Error Handling.",
|
|
5
5
|
"mcpName": "io.github.neverinfamous/db-mcp",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
65
|
+
"acorn": "^8.16.0",
|
|
65
66
|
"cors": "2.8.6",
|
|
66
67
|
"express": "5.2.1",
|
|
67
68
|
"express-rate-limit": "8.5.2",
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
"redis": "^6.0.0",
|
|
72
73
|
"sql.js": "1.14.1",
|
|
73
74
|
"sqlite-parser": "^1.0.1",
|
|
75
|
+
"yaml": "^2.9.0",
|
|
74
76
|
"zod": "^4.4.3",
|
|
75
77
|
"zod-to-json-schema": "3.25.2"
|
|
76
78
|
},
|
|
@@ -82,7 +84,7 @@
|
|
|
82
84
|
"@types/express": "^5.0.6",
|
|
83
85
|
"@types/node": "^25.4.0",
|
|
84
86
|
"@types/sql.js": "^1.4.9",
|
|
85
|
-
"@vitest/coverage-v8": "^4.
|
|
87
|
+
"@vitest/coverage-v8": "^4.1.8",
|
|
86
88
|
"eslint": "^10.0.2",
|
|
87
89
|
"globals": "^17.4.0",
|
|
88
90
|
"node-addon-api": "^8.8.0",
|
|
@@ -90,17 +92,18 @@
|
|
|
90
92
|
"tsup": "^8.5.1",
|
|
91
93
|
"tsx": "^4.22.1",
|
|
92
94
|
"typescript": "^6.0.3",
|
|
93
|
-
"typescript-eslint": "^8.60.
|
|
94
|
-
"vitest": "^4.
|
|
95
|
+
"typescript-eslint": "^8.60.1",
|
|
96
|
+
"vitest": "^4.1.8"
|
|
95
97
|
},
|
|
96
98
|
"optionalDependencies": {
|
|
97
|
-
"better-sqlite3": "^12.10.0"
|
|
99
|
+
"better-sqlite3": "^12.10.0",
|
|
100
|
+
"better-sqlite3-multiple-ciphers": "^12.10.0"
|
|
98
101
|
},
|
|
99
102
|
"//overrides": "Transitive CVE patches. Review quarterly or when dockerfile-patch-drift.yml flags staleness.",
|
|
100
103
|
"overrides": {
|
|
101
104
|
"diff": "9.0.0",
|
|
102
105
|
"@isaacs/brace-expansion": "5.0.1",
|
|
103
|
-
"tar": "7.5.
|
|
106
|
+
"tar": "7.5.16",
|
|
104
107
|
"minimatch": "10.2.5",
|
|
105
108
|
"brace-expansion": "5.0.6"
|
|
106
109
|
}
|
package/dist/chunk-E5IESRTK.js
DELETED
|
@@ -1,489 +0,0 @@
|
|
|
1
|
-
import { SCOPES } from './chunk-L552U3QS.js';
|
|
2
|
-
import { createRequire } from 'module';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
|
|
5
|
-
var _require = createRequire(import.meta.url);
|
|
6
|
-
var pkg = _require("../package.json");
|
|
7
|
-
var VERSION = pkg.version;
|
|
8
|
-
var NAME = pkg.name;
|
|
9
|
-
|
|
10
|
-
// src/utils/icons.ts
|
|
11
|
-
var MDI_BASE = "https://cdn.jsdelivr.net/npm/@mdi/svg@7.4.47/svg";
|
|
12
|
-
var SERVER_ICONS = [
|
|
13
|
-
{
|
|
14
|
-
src: `${MDI_BASE}/server.svg`,
|
|
15
|
-
mimeType: "image/svg+xml"
|
|
16
|
-
}
|
|
17
|
-
];
|
|
18
|
-
var TOOL_GROUP_ICONS = {
|
|
19
|
-
core: [{ src: `${MDI_BASE}/database.svg`, mimeType: "image/svg+xml" }],
|
|
20
|
-
json: [{ src: `${MDI_BASE}/code-json.svg`, mimeType: "image/svg+xml" }],
|
|
21
|
-
text: [{ src: `${MDI_BASE}/format-text.svg`, mimeType: "image/svg+xml" }],
|
|
22
|
-
stats: [{ src: `${MDI_BASE}/chart-bar.svg`, mimeType: "image/svg+xml" }],
|
|
23
|
-
vector: [
|
|
24
|
-
{ src: `${MDI_BASE}/vector-polyline.svg`, mimeType: "image/svg+xml" }
|
|
25
|
-
],
|
|
26
|
-
admin: [{ src: `${MDI_BASE}/cog.svg`, mimeType: "image/svg+xml" }],
|
|
27
|
-
transactions: [
|
|
28
|
-
{ src: `${MDI_BASE}/swap-horizontal.svg`, mimeType: "image/svg+xml" }
|
|
29
|
-
],
|
|
30
|
-
geo: [{ src: `${MDI_BASE}/earth.svg`, mimeType: "image/svg+xml" }],
|
|
31
|
-
introspection: [
|
|
32
|
-
{ src: `${MDI_BASE}/graph-outline.svg`, mimeType: "image/svg+xml" }
|
|
33
|
-
],
|
|
34
|
-
migration: [
|
|
35
|
-
{ src: `${MDI_BASE}/source-branch.svg`, mimeType: "image/svg+xml" }
|
|
36
|
-
],
|
|
37
|
-
codemode: [{ src: `${MDI_BASE}/code-braces.svg`, mimeType: "image/svg+xml" }]
|
|
38
|
-
};
|
|
39
|
-
function getToolGroupIcon(group) {
|
|
40
|
-
return TOOL_GROUP_ICONS[group];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// src/utils/annotations.ts
|
|
44
|
-
var READ_ONLY = {
|
|
45
|
-
readOnlyHint: true,
|
|
46
|
-
destructiveHint: false,
|
|
47
|
-
openWorldHint: false,
|
|
48
|
-
sensitiveHint: false
|
|
49
|
-
};
|
|
50
|
-
var WRITE = {
|
|
51
|
-
readOnlyHint: false,
|
|
52
|
-
destructiveHint: false,
|
|
53
|
-
openWorldHint: false,
|
|
54
|
-
sensitiveHint: false
|
|
55
|
-
};
|
|
56
|
-
var DESTRUCTIVE = {
|
|
57
|
-
readOnlyHint: false,
|
|
58
|
-
destructiveHint: true,
|
|
59
|
-
openWorldHint: false,
|
|
60
|
-
sensitiveHint: false
|
|
61
|
-
};
|
|
62
|
-
var IDEMPOTENT = {
|
|
63
|
-
readOnlyHint: false,
|
|
64
|
-
destructiveHint: false,
|
|
65
|
-
idempotentHint: true,
|
|
66
|
-
openWorldHint: false,
|
|
67
|
-
sensitiveHint: false
|
|
68
|
-
};
|
|
69
|
-
var ADMIN = {
|
|
70
|
-
readOnlyHint: false,
|
|
71
|
-
destructiveHint: true,
|
|
72
|
-
openWorldHint: false,
|
|
73
|
-
sensitiveHint: true
|
|
74
|
-
// System maintenance may expose internal db structures
|
|
75
|
-
};
|
|
76
|
-
function readOnly(title) {
|
|
77
|
-
return { title, ...READ_ONLY };
|
|
78
|
-
}
|
|
79
|
-
function write(title) {
|
|
80
|
-
return { title, ...WRITE };
|
|
81
|
-
}
|
|
82
|
-
function destructive(title) {
|
|
83
|
-
return { title, ...DESTRUCTIVE };
|
|
84
|
-
}
|
|
85
|
-
function idempotent(title) {
|
|
86
|
-
return { title, ...IDEMPOTENT };
|
|
87
|
-
}
|
|
88
|
-
function admin(title) {
|
|
89
|
-
return { title, ...ADMIN };
|
|
90
|
-
}
|
|
91
|
-
var ADMIN_FS = {
|
|
92
|
-
readOnlyHint: false,
|
|
93
|
-
destructiveHint: true,
|
|
94
|
-
openWorldHint: true,
|
|
95
|
-
sensitiveHint: true
|
|
96
|
-
};
|
|
97
|
-
var WRITE_FS = {
|
|
98
|
-
readOnlyHint: false,
|
|
99
|
-
destructiveHint: false,
|
|
100
|
-
openWorldHint: true,
|
|
101
|
-
sensitiveHint: true
|
|
102
|
-
};
|
|
103
|
-
function adminFs(title) {
|
|
104
|
-
return { title, ...ADMIN_FS };
|
|
105
|
-
}
|
|
106
|
-
function writeFs(title) {
|
|
107
|
-
return { title, ...WRITE_FS };
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// src/utils/redaction.ts
|
|
111
|
-
var SENSITIVE_KEY_PATTERN = /(?:sk-|Bearer |token\s*[:=]\s*|password\s*[:=]\s*|secret\s*[:=]\s*|apikey\s*[:=]\s*|api_key\s*[:=]\s*|AWS_SECRET_ACCESS_KEY\s*[:=]\s*|GITHUB_TOKEN\s*[:=]\s*|ghp_|gho_|ghu_|ghs_|xoxb-|xoxp-|xoxs-|AZURE_[A-Z_]*\s*[:=]\s*|DATABASE_URL\s*[:=]\s*|AKIA|sk-ant-api[a-zA-Z0-9_-]+|sk_live_[a-zA-Z0-9_]+|rk_live_[a-zA-Z0-9_]+|SG\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+|npm_[a-zA-Z0-9]{30,}|dpl_[a-zA-Z0-9]{30,}|hvs\.[a-zA-Z0-9_-]+)[^\s'",;)}\]]{2,}/i;
|
|
112
|
-
var SENSITIVE_VALUE_REGEX = new RegExp(SENSITIVE_KEY_PATTERN.source, "gi");
|
|
113
|
-
var SENSITIVE_KEY_REGEX = /^(password|passwd|token|secret|authorization|api_?key|credential|private_?key|access_?token|refresh_?token|database_url)$/i;
|
|
114
|
-
function redactObject(obj, depth = 0, maxDepth = 15) {
|
|
115
|
-
if (depth > maxDepth || obj === null || obj === void 0) {
|
|
116
|
-
return obj;
|
|
117
|
-
}
|
|
118
|
-
if (typeof obj === "string") {
|
|
119
|
-
return obj.replace(SENSITIVE_VALUE_REGEX, "[REDACTED]");
|
|
120
|
-
}
|
|
121
|
-
if (typeof obj !== "object") {
|
|
122
|
-
return obj;
|
|
123
|
-
}
|
|
124
|
-
if (Array.isArray(obj)) {
|
|
125
|
-
return obj.map((item) => redactObject(item, depth + 1, maxDepth));
|
|
126
|
-
}
|
|
127
|
-
const redacted = {};
|
|
128
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
129
|
-
if (SENSITIVE_KEY_REGEX.test(key)) {
|
|
130
|
-
redacted[key] = "[REDACTED]";
|
|
131
|
-
} else {
|
|
132
|
-
redacted[key] = redactObject(value, depth + 1, maxDepth);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return redacted;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// src/auth/scope-map.ts
|
|
139
|
-
var toolScopeMap = /* @__PURE__ */ new Map();
|
|
140
|
-
function registerToolScope(toolName, scope) {
|
|
141
|
-
toolScopeMap.set(toolName, scope);
|
|
142
|
-
if (!toolName.startsWith("sqlite_")) {
|
|
143
|
-
toolScopeMap.set(`sqlite_${toolName}`, scope);
|
|
144
|
-
} else {
|
|
145
|
-
toolScopeMap.set(toolName.slice(7), scope);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function getRequiredScope(toolName) {
|
|
149
|
-
return toolScopeMap.get(toolName) ?? SCOPES.ADMIN;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// src/utils/resource-annotations.ts
|
|
153
|
-
var HIGH_PRIORITY = {
|
|
154
|
-
audience: ["user", "assistant"],
|
|
155
|
-
priority: 0.9
|
|
156
|
-
};
|
|
157
|
-
var MEDIUM_PRIORITY = {
|
|
158
|
-
audience: ["user", "assistant"],
|
|
159
|
-
priority: 0.6
|
|
160
|
-
};
|
|
161
|
-
var LOW_PRIORITY = {
|
|
162
|
-
audience: ["user", "assistant"],
|
|
163
|
-
priority: 0.4
|
|
164
|
-
};
|
|
165
|
-
var ASSISTANT_FOCUSED = {
|
|
166
|
-
audience: ["assistant"],
|
|
167
|
-
priority: 0.5
|
|
168
|
-
};
|
|
169
|
-
var ErrorResponseFields = z.object({
|
|
170
|
-
error: z.string().optional().describe("Error message (human-readable)"),
|
|
171
|
-
code: z.string().optional().describe("Error code (e.g. VALIDATION_ERROR, QUERY_ERROR)"),
|
|
172
|
-
category: z.string().optional().describe("Error category (validation, query, connection, internal)"),
|
|
173
|
-
recoverable: z.boolean().optional().describe("Whether the error is recoverable"),
|
|
174
|
-
suggestion: z.string().optional().describe("Suggested fix for the error"),
|
|
175
|
-
details: z.record(z.string(), z.unknown()).optional().describe("Additional error context")
|
|
176
|
-
});
|
|
177
|
-
var coerceNumber = (val) => {
|
|
178
|
-
if (typeof val === "string") {
|
|
179
|
-
if (val.trim() === "") return void 0;
|
|
180
|
-
const num = Number(val);
|
|
181
|
-
return isNaN(num) ? val : num;
|
|
182
|
-
}
|
|
183
|
-
return val;
|
|
184
|
-
};
|
|
185
|
-
var BackupSchema = z.object({
|
|
186
|
-
targetPath: z.string().describe("Path for backup file")
|
|
187
|
-
});
|
|
188
|
-
var AnalyzeSchema = z.object({
|
|
189
|
-
table: z.string().optional().describe("Specific table to analyze (default: all)")
|
|
190
|
-
});
|
|
191
|
-
var IntegrityCheckSchema = z.object({
|
|
192
|
-
maxErrors: z.preprocess(
|
|
193
|
-
coerceNumber,
|
|
194
|
-
z.number().int().optional().default(100).describe("Maximum errors to report")
|
|
195
|
-
)
|
|
196
|
-
});
|
|
197
|
-
var OptimizeSchema = z.object({
|
|
198
|
-
table: z.string().optional().describe("Specific table to optimize"),
|
|
199
|
-
reindex: z.boolean().optional().default(false),
|
|
200
|
-
analyze: z.boolean().optional().default(true)
|
|
201
|
-
});
|
|
202
|
-
var RestoreSchema = z.object({
|
|
203
|
-
sourcePath: z.string().describe("Path to backup file to restore from"),
|
|
204
|
-
allowTriggers: z.boolean().optional().default(false).describe(
|
|
205
|
-
"If true, allows triggers in the backup file to be restored. This is a security risk if the backup file is untrusted."
|
|
206
|
-
)
|
|
207
|
-
});
|
|
208
|
-
var VerifyBackupSchema = z.object({
|
|
209
|
-
backupPath: z.string().describe("Path to backup file to verify")
|
|
210
|
-
});
|
|
211
|
-
var IndexStatsSchema = z.object({
|
|
212
|
-
table: z.string().optional().describe("Filter indexes by table name (default: all tables)"),
|
|
213
|
-
excludeSystemIndexes: z.boolean().optional().default(true).describe(
|
|
214
|
-
"Exclude SpatiaLite system indexes (default: true). Set to false to include all indexes."
|
|
215
|
-
)
|
|
216
|
-
});
|
|
217
|
-
var PragmaOptimizeSchema = z.object({
|
|
218
|
-
mask: z.preprocess(
|
|
219
|
-
coerceNumber,
|
|
220
|
-
z.number().int().optional().describe("Optional optimization mask (default: 0xfffe)")
|
|
221
|
-
)
|
|
222
|
-
});
|
|
223
|
-
var PragmaSettingsSchema = z.object({
|
|
224
|
-
pragma: z.string().describe("PRAGMA name (e.g., 'cache_size', 'journal_mode')"),
|
|
225
|
-
value: z.union([z.string(), z.number().int()]).optional().describe("Value to set (omit to only read)")
|
|
226
|
-
});
|
|
227
|
-
var PragmaTableInfoSchema = z.object({
|
|
228
|
-
table: z.string().describe("Table name to get column information for")
|
|
229
|
-
});
|
|
230
|
-
var PragmaCompileOptionsSchema = z.object({
|
|
231
|
-
filter: z.string().optional().describe(
|
|
232
|
-
"Optional filter pattern (case-insensitive substring match) to limit returned options"
|
|
233
|
-
)
|
|
234
|
-
});
|
|
235
|
-
var PragmaDatabaseListSchema = z.object({});
|
|
236
|
-
var AppendInsightSchema = z.object({
|
|
237
|
-
insight: z.string().max(2e3).regex(
|
|
238
|
-
/^[\x20-\x7E\n\r]*$/,
|
|
239
|
-
"Insight must contain only printable ASCII characters"
|
|
240
|
-
).describe("Business insight discovered from data analysis")
|
|
241
|
-
});
|
|
242
|
-
z.object({
|
|
243
|
-
analyze: z.boolean().optional().default(true).describe("Run ANALYZE after VACUUM")
|
|
244
|
-
});
|
|
245
|
-
var AttachDatabaseSchema = z.object({
|
|
246
|
-
filepath: z.string().describe("Path to the database file to attach"),
|
|
247
|
-
alias: z.string().regex(
|
|
248
|
-
/^[a-zA-Z_]\w*$/,
|
|
249
|
-
"Alias must start with a letter or underscore and contain only alphanumeric characters"
|
|
250
|
-
).describe("Schema alias for the attached database (e.g., 'analytics')")
|
|
251
|
-
});
|
|
252
|
-
var DetachDatabaseSchema = z.object({
|
|
253
|
-
alias: z.string().describe("Schema alias of the database to detach (cannot be 'main')")
|
|
254
|
-
});
|
|
255
|
-
var VacuumIntoCopySchema = z.object({
|
|
256
|
-
outputPath: z.string().describe(
|
|
257
|
-
"Path for the output database file. Creates a compacted copy of the database."
|
|
258
|
-
)
|
|
259
|
-
});
|
|
260
|
-
var AuditListBackupsSchema = z.object({
|
|
261
|
-
limit: z.preprocess(
|
|
262
|
-
coerceNumber,
|
|
263
|
-
z.number().int().min(1).max(100).optional().default(10).describe("Maximum number of snapshots to return (default 10, max 100)")
|
|
264
|
-
),
|
|
265
|
-
offset: z.preprocess(
|
|
266
|
-
coerceNumber,
|
|
267
|
-
z.number().int().min(0).optional().default(0).describe("Pagination offset")
|
|
268
|
-
)
|
|
269
|
-
});
|
|
270
|
-
z.object({
|
|
271
|
-
filename: z.string().describe(
|
|
272
|
-
"Snapshot filename from sqlite_audit_list_backups results (e.g., '2025-01-01T00-00-00-000Z_sqlite_drop_table_users.snapshot.json.gz')"
|
|
273
|
-
),
|
|
274
|
-
dryRun: z.boolean().optional().default(false).describe(
|
|
275
|
-
"If true, returns the DDL that would be executed without applying changes"
|
|
276
|
-
)
|
|
277
|
-
});
|
|
278
|
-
z.object({
|
|
279
|
-
filename: z.string().describe("Snapshot filename to compare against the live database schema")
|
|
280
|
-
});
|
|
281
|
-
var SqlDumpSchema = z.object({
|
|
282
|
-
outputPath: z.string().describe(
|
|
283
|
-
"Absolute path where the SQL text dump file will be written (e.g. '/path/to/dump.sql')"
|
|
284
|
-
)
|
|
285
|
-
});
|
|
286
|
-
var AuditListBackupsOutputSchema = z.object({
|
|
287
|
-
success: z.boolean(),
|
|
288
|
-
snapshots: z.array(z.any()).optional(),
|
|
289
|
-
count: z.number().optional(),
|
|
290
|
-
totalCount: z.number().optional(),
|
|
291
|
-
_meta: z.object({ tokenEstimate: z.number() }).optional()
|
|
292
|
-
}).extend(ErrorResponseFields.shape);
|
|
293
|
-
var AuditGetBackupOutputSchema = z.object({
|
|
294
|
-
success: z.boolean(),
|
|
295
|
-
metadata: z.any().optional(),
|
|
296
|
-
ddl: z.string().optional(),
|
|
297
|
-
data: z.string().optional()
|
|
298
|
-
}).extend(ErrorResponseFields.shape);
|
|
299
|
-
var AuditCleanupOutputSchema = z.object({
|
|
300
|
-
success: z.boolean(),
|
|
301
|
-
deletedCount: z.number().optional(),
|
|
302
|
-
message: z.string().optional()
|
|
303
|
-
}).extend(ErrorResponseFields.shape);
|
|
304
|
-
var AuditDiffBackupOutputSchema = z.object({
|
|
305
|
-
success: z.boolean(),
|
|
306
|
-
diffs: z.array(z.any()).optional(),
|
|
307
|
-
snapshotTimestamp: z.string().optional(),
|
|
308
|
-
snapshotTarget: z.string().optional()
|
|
309
|
-
}).extend(ErrorResponseFields.shape);
|
|
310
|
-
var AuditRestoreBackupOutputSchema = z.object({
|
|
311
|
-
success: z.boolean(),
|
|
312
|
-
message: z.string().optional(),
|
|
313
|
-
ddl: z.string().optional(),
|
|
314
|
-
dryRun: z.boolean().optional(),
|
|
315
|
-
changesApplied: z.number().optional()
|
|
316
|
-
}).extend(ErrorResponseFields.shape);
|
|
317
|
-
var VacuumOutputSchema = z.object({
|
|
318
|
-
success: z.boolean(),
|
|
319
|
-
message: z.string().optional(),
|
|
320
|
-
durationMs: z.number().optional(),
|
|
321
|
-
wasmLimitation: z.boolean().optional(),
|
|
322
|
-
sizeChange: z.object({
|
|
323
|
-
before: z.number(),
|
|
324
|
-
after: z.number(),
|
|
325
|
-
saved: z.number()
|
|
326
|
-
}).optional()
|
|
327
|
-
}).extend(ErrorResponseFields.shape);
|
|
328
|
-
var BackupOutputSchema = z.object({
|
|
329
|
-
success: z.boolean(),
|
|
330
|
-
message: z.string().optional(),
|
|
331
|
-
path: z.string().optional(),
|
|
332
|
-
sizeBytes: z.number().optional(),
|
|
333
|
-
durationMs: z.number().optional(),
|
|
334
|
-
wasmLimitation: z.boolean().optional(),
|
|
335
|
-
note: z.string().optional()
|
|
336
|
-
}).extend(ErrorResponseFields.shape);
|
|
337
|
-
var SqlDumpOutputSchema = z.object({
|
|
338
|
-
success: z.boolean(),
|
|
339
|
-
message: z.string().optional(),
|
|
340
|
-
path: z.string().optional(),
|
|
341
|
-
durationMs: z.number().optional(),
|
|
342
|
-
wasmLimitation: z.boolean().optional()
|
|
343
|
-
}).extend(ErrorResponseFields.shape);
|
|
344
|
-
var AnalyzeOutputSchema = z.object({
|
|
345
|
-
success: z.boolean(),
|
|
346
|
-
message: z.string().optional(),
|
|
347
|
-
tablesAnalyzed: z.number().optional(),
|
|
348
|
-
durationMs: z.number().optional()
|
|
349
|
-
}).extend(ErrorResponseFields.shape);
|
|
350
|
-
var OptimizeOutputSchema = z.object({
|
|
351
|
-
success: z.boolean(),
|
|
352
|
-
message: z.string().optional(),
|
|
353
|
-
operations: z.array(z.string()).optional(),
|
|
354
|
-
durationMs: z.number().optional()
|
|
355
|
-
}).extend(ErrorResponseFields.shape);
|
|
356
|
-
var IntegrityCheckOutputSchema = z.object({
|
|
357
|
-
success: z.boolean(),
|
|
358
|
-
integrity: z.enum(["ok", "errors_found"]).optional(),
|
|
359
|
-
errorCount: z.number().optional(),
|
|
360
|
-
messages: z.array(z.string()).optional()
|
|
361
|
-
}).extend(ErrorResponseFields.shape);
|
|
362
|
-
var RestoreOutputSchema = z.object({
|
|
363
|
-
success: z.boolean(),
|
|
364
|
-
message: z.string().optional(),
|
|
365
|
-
sourcePath: z.string().optional(),
|
|
366
|
-
durationMs: z.number().optional(),
|
|
367
|
-
wasmLimitation: z.boolean().optional(),
|
|
368
|
-
skippedTables: z.array(z.string()).optional(),
|
|
369
|
-
note: z.string().optional()
|
|
370
|
-
}).extend(ErrorResponseFields.shape);
|
|
371
|
-
var VerifyBackupOutputSchema = z.object({
|
|
372
|
-
success: z.boolean(),
|
|
373
|
-
valid: z.boolean().optional(),
|
|
374
|
-
pageCount: z.number().optional(),
|
|
375
|
-
pageSize: z.number().optional(),
|
|
376
|
-
integrity: z.enum(["ok", "errors_found"]).optional(),
|
|
377
|
-
messages: z.array(z.string()).optional(),
|
|
378
|
-
message: z.string().optional(),
|
|
379
|
-
wasmLimitation: z.boolean().optional(),
|
|
380
|
-
backupPath: z.string().optional()
|
|
381
|
-
}).extend(ErrorResponseFields.shape);
|
|
382
|
-
var IndexColumnSchema = z.object({
|
|
383
|
-
name: z.string(),
|
|
384
|
-
seqno: z.number()
|
|
385
|
-
});
|
|
386
|
-
var IndexStatsEntrySchema = z.object({
|
|
387
|
-
name: z.string(),
|
|
388
|
-
table: z.string(),
|
|
389
|
-
unique: z.boolean(),
|
|
390
|
-
partial: z.boolean(),
|
|
391
|
-
columns: z.array(IndexColumnSchema)
|
|
392
|
-
});
|
|
393
|
-
var IndexStatsOutputSchema = z.object({
|
|
394
|
-
success: z.boolean(),
|
|
395
|
-
indexes: z.array(IndexStatsEntrySchema).optional()
|
|
396
|
-
}).extend(ErrorResponseFields.shape);
|
|
397
|
-
var PragmaCompileOptionsOutputSchema = z.object({
|
|
398
|
-
success: z.boolean(),
|
|
399
|
-
options: z.array(z.string()).optional()
|
|
400
|
-
}).extend(ErrorResponseFields.shape);
|
|
401
|
-
var DatabaseListEntrySchema = z.object({
|
|
402
|
-
seq: z.number(),
|
|
403
|
-
name: z.string(),
|
|
404
|
-
file: z.string()
|
|
405
|
-
});
|
|
406
|
-
var PragmaDatabaseListOutputSchema = z.object({
|
|
407
|
-
success: z.boolean(),
|
|
408
|
-
databases: z.array(DatabaseListEntrySchema).optional(),
|
|
409
|
-
configuredPath: z.string().optional(),
|
|
410
|
-
note: z.string().optional()
|
|
411
|
-
}).extend(ErrorResponseFields.shape);
|
|
412
|
-
var PragmaOptimizeOutputSchema = z.object({
|
|
413
|
-
success: z.boolean(),
|
|
414
|
-
message: z.string().optional(),
|
|
415
|
-
durationMs: z.number().optional()
|
|
416
|
-
}).extend(ErrorResponseFields.shape);
|
|
417
|
-
var PragmaSettingsOutputSchema = z.object({
|
|
418
|
-
success: z.boolean(),
|
|
419
|
-
pragma: z.string().optional(),
|
|
420
|
-
value: z.unknown().optional(),
|
|
421
|
-
oldValue: z.unknown().optional(),
|
|
422
|
-
newValue: z.unknown().optional()
|
|
423
|
-
}).extend(ErrorResponseFields.shape);
|
|
424
|
-
var PragmaTableInfoColumnSchema = z.object({
|
|
425
|
-
cid: z.number(),
|
|
426
|
-
name: z.string(),
|
|
427
|
-
type: z.string(),
|
|
428
|
-
notNull: z.boolean(),
|
|
429
|
-
defaultValue: z.unknown().nullable(),
|
|
430
|
-
pk: z.number()
|
|
431
|
-
});
|
|
432
|
-
var PragmaTableInfoOutputSchema = z.object({
|
|
433
|
-
success: z.boolean(),
|
|
434
|
-
table: z.string().optional(),
|
|
435
|
-
columns: z.array(PragmaTableInfoColumnSchema).optional()
|
|
436
|
-
}).extend(ErrorResponseFields.shape);
|
|
437
|
-
var AppendInsightOutputSchema = z.object({
|
|
438
|
-
success: z.boolean(),
|
|
439
|
-
message: z.string().optional(),
|
|
440
|
-
insightCount: z.number().optional()
|
|
441
|
-
}).extend(ErrorResponseFields.shape);
|
|
442
|
-
var AttachDatabaseOutputSchema = z.object({
|
|
443
|
-
success: z.boolean(),
|
|
444
|
-
message: z.string().optional(),
|
|
445
|
-
alias: z.string().optional(),
|
|
446
|
-
filepath: z.string().optional()
|
|
447
|
-
}).extend(ErrorResponseFields.shape);
|
|
448
|
-
var DetachDatabaseOutputSchema = z.object({
|
|
449
|
-
success: z.boolean(),
|
|
450
|
-
message: z.string().optional(),
|
|
451
|
-
alias: z.string().optional()
|
|
452
|
-
}).extend(ErrorResponseFields.shape);
|
|
453
|
-
var VacuumIntoCopyOutputSchema = z.object({
|
|
454
|
-
success: z.boolean(),
|
|
455
|
-
message: z.string().optional(),
|
|
456
|
-
outputPath: z.string().optional(),
|
|
457
|
-
sizeBytes: z.number().optional(),
|
|
458
|
-
durationMs: z.number().optional(),
|
|
459
|
-
wasmLimitation: z.boolean().optional()
|
|
460
|
-
}).extend(ErrorResponseFields.shape);
|
|
461
|
-
var ReindexSchema = z.object({
|
|
462
|
-
target: z.string().optional().describe(
|
|
463
|
-
"Index name, table name, or collation name to reindex. Omit to reindex the entire database."
|
|
464
|
-
)
|
|
465
|
-
});
|
|
466
|
-
var ReindexOutputSchema = z.object({
|
|
467
|
-
success: z.boolean(),
|
|
468
|
-
message: z.string().optional(),
|
|
469
|
-
sql: z.string().optional(),
|
|
470
|
-
durationMs: z.number().optional()
|
|
471
|
-
}).extend(ErrorResponseFields.shape);
|
|
472
|
-
var WalSchema = z.object({
|
|
473
|
-
action: z.enum(["status", "enable", "disable", "checkpoint"]).describe(
|
|
474
|
-
"WAL action: 'status' = check journal_mode, 'enable' = switch to WAL, 'disable' = switch to DELETE (default journal mode), 'checkpoint' = force WAL checkpoint"
|
|
475
|
-
),
|
|
476
|
-
checkpointMode: z.enum(["PASSIVE", "FULL", "RESTART", "TRUNCATE"]).optional().default("PASSIVE").describe(
|
|
477
|
-
"Checkpoint mode (only used with 'checkpoint' action). PASSIVE = checkpoint without blocking readers (default). FULL = wait for readers to finish. RESTART = same as FULL but restart WAL file. TRUNCATE = same as RESTART but truncate WAL file to zero bytes."
|
|
478
|
-
)
|
|
479
|
-
});
|
|
480
|
-
var WalOutputSchema = z.object({
|
|
481
|
-
success: z.boolean(),
|
|
482
|
-
message: z.string().optional(),
|
|
483
|
-
journalMode: z.string().optional(),
|
|
484
|
-
previousMode: z.string().optional(),
|
|
485
|
-
walPages: z.number().optional(),
|
|
486
|
-
checkpointedPages: z.number().optional()
|
|
487
|
-
}).extend(ErrorResponseFields.shape);
|
|
488
|
-
|
|
489
|
-
export { ASSISTANT_FOCUSED, AnalyzeOutputSchema, AnalyzeSchema, AppendInsightOutputSchema, AppendInsightSchema, AttachDatabaseOutputSchema, AttachDatabaseSchema, AuditCleanupOutputSchema, AuditDiffBackupOutputSchema, AuditGetBackupOutputSchema, AuditListBackupsOutputSchema, AuditListBackupsSchema, AuditRestoreBackupOutputSchema, BackupOutputSchema, BackupSchema, DetachDatabaseOutputSchema, DetachDatabaseSchema, ErrorResponseFields, HIGH_PRIORITY, IndexStatsOutputSchema, IndexStatsSchema, IntegrityCheckOutputSchema, IntegrityCheckSchema, LOW_PRIORITY, MEDIUM_PRIORITY, NAME, OptimizeOutputSchema, OptimizeSchema, PragmaCompileOptionsOutputSchema, PragmaCompileOptionsSchema, PragmaDatabaseListOutputSchema, PragmaDatabaseListSchema, PragmaOptimizeOutputSchema, PragmaOptimizeSchema, PragmaSettingsOutputSchema, PragmaSettingsSchema, PragmaTableInfoOutputSchema, PragmaTableInfoSchema, READ_ONLY, ReindexOutputSchema, ReindexSchema, RestoreOutputSchema, RestoreSchema, SENSITIVE_KEY_PATTERN, SERVER_ICONS, SqlDumpOutputSchema, SqlDumpSchema, VERSION, VacuumIntoCopyOutputSchema, VacuumIntoCopySchema, VacuumOutputSchema, VerifyBackupOutputSchema, VerifyBackupSchema, WalOutputSchema, WalSchema, admin, adminFs, destructive, getRequiredScope, getToolGroupIcon, idempotent, readOnly, redactObject, registerToolScope, write, writeFs };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Insights Manager
|
|
3
|
-
*
|
|
4
|
-
* Singleton manager for business insights collected during database analysis.
|
|
5
|
-
* Used by the append_insight tool and memo://insights resource.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Manages business insights collected during analysis sessions.
|
|
9
|
-
* Insights are stored in memory and synthesized into a formatted memo.
|
|
10
|
-
*/
|
|
11
|
-
declare class InsightsManager {
|
|
12
|
-
private insights;
|
|
13
|
-
/**
|
|
14
|
-
* Append a new business insight
|
|
15
|
-
*/
|
|
16
|
-
append(insight: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Get all insights
|
|
19
|
-
*/
|
|
20
|
-
getAll(): string[];
|
|
21
|
-
/**
|
|
22
|
-
* Get insight count
|
|
23
|
-
*/
|
|
24
|
-
count(): number;
|
|
25
|
-
/**
|
|
26
|
-
* Clear all insights
|
|
27
|
-
*/
|
|
28
|
-
clear(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Synthesize insights into a formatted memo
|
|
31
|
-
*/
|
|
32
|
-
synthesizeMemo(): string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Singleton instance of the insights manager
|
|
36
|
-
*/
|
|
37
|
-
export declare const insightsManager: InsightsManager;
|
|
38
|
-
export {};
|
|
39
|
-
//# sourceMappingURL=insights-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insights-manager.d.ts","sourceRoot":"","sources":["../../src/utils/insights-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,cAAc,IAAI,MAAM;CAoBzB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|