@basegrid_tech/mcp 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +58 -7
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -364,7 +364,8 @@ function createSchema() {
|
|
|
364
364
|
icon TEXT,
|
|
365
365
|
icon_color TEXT,
|
|
366
366
|
host_ids TEXT,
|
|
367
|
-
project_id TEXT
|
|
367
|
+
project_id TEXT,
|
|
368
|
+
basegrid_config TEXT
|
|
368
369
|
);
|
|
369
370
|
-- UNIQUE INDEX \u043F\u043E project_id \u0441\u043E\u0437\u0434\u0430\u0451\u0442\u0441\u044F \u0432 \u043C\u0438\u0433\u0440\u0430\u0446\u0438\u0438 v17 (\u0441\u043C. migrateSchema):
|
|
370
371
|
-- \u043D\u0430 upgrade-\u0441\u0446\u0435\u043D\u0430\u0440\u0438\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 project_id \u0435\u0449\u0451 \u043D\u0435\u0442, \u0438 CREATE INDEX \u0437\u0434\u0435\u0441\u044C \u043F\u0430\u0434\u0430\u043B \u0431\u044B.
|
|
@@ -623,6 +624,19 @@ function createSchema() {
|
|
|
623
624
|
ON usage_metrics(project_path, timestamp);
|
|
624
625
|
CREATE INDEX IF NOT EXISTS idx_usage_metrics_ts
|
|
625
626
|
ON usage_metrics(timestamp);
|
|
627
|
+
|
|
628
|
+
CREATE TABLE IF NOT EXISTS usage_limit_snapshots (
|
|
629
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
630
|
+
window_type TEXT NOT NULL,
|
|
631
|
+
snapshot_at INTEGER NOT NULL,
|
|
632
|
+
used_percent REAL NOT NULL,
|
|
633
|
+
resets_at INTEGER
|
|
634
|
+
);
|
|
635
|
+
|
|
636
|
+
-- Unique per (window, fetch time): also serves the ordered range scan the
|
|
637
|
+
-- sparkline reads with, so no extra index is needed.
|
|
638
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_usage_limit_snap_unique
|
|
639
|
+
ON usage_limit_snapshots(window_type, snapshot_at);
|
|
626
640
|
`);
|
|
627
641
|
migrateSchema(d);
|
|
628
642
|
verifySchema(d);
|
|
@@ -1193,6 +1207,18 @@ function migrateSchema(d) {
|
|
|
1193
1207
|
})();
|
|
1194
1208
|
logger_default.info("[database] migrated schema to version 26 (worktree is_auto_generated flag)");
|
|
1195
1209
|
}
|
|
1210
|
+
if (version < 27) {
|
|
1211
|
+
d.transaction(() => {
|
|
1212
|
+
const cols = d.prepare("PRAGMA table_info(projects)").all();
|
|
1213
|
+
if (!cols.some((c) => c.name === "basegrid_config")) {
|
|
1214
|
+
d.exec("ALTER TABLE projects ADD COLUMN basegrid_config TEXT");
|
|
1215
|
+
}
|
|
1216
|
+
d.prepare(
|
|
1217
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '27')"
|
|
1218
|
+
).run();
|
|
1219
|
+
})();
|
|
1220
|
+
logger_default.info("[database] migrated schema to version 27 (projects.basegrid_config overrides)");
|
|
1221
|
+
}
|
|
1196
1222
|
}
|
|
1197
1223
|
function verifySchema(d) {
|
|
1198
1224
|
const expectedTables = [
|
|
@@ -1263,6 +1289,10 @@ function verifySchema(d) {
|
|
|
1263
1289
|
{
|
|
1264
1290
|
column: "project_id",
|
|
1265
1291
|
ddl: "ALTER TABLE projects ADD COLUMN project_id TEXT"
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
column: "basegrid_config",
|
|
1295
|
+
ddl: "ALTER TABLE projects ADD COLUMN basegrid_config TEXT"
|
|
1266
1296
|
}
|
|
1267
1297
|
],
|
|
1268
1298
|
workflows: [
|
|
@@ -1546,7 +1576,7 @@ function saveConfig(config) {
|
|
|
1546
1576
|
}
|
|
1547
1577
|
d.prepare("DELETE FROM projects").run();
|
|
1548
1578
|
const insertProject = d.prepare(
|
|
1549
|
-
"INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1579
|
+
"INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1550
1580
|
);
|
|
1551
1581
|
for (const p of config.projects) {
|
|
1552
1582
|
const projectId = p.projectId ?? existingIds.get(p.name) ?? randomUUID();
|
|
@@ -1558,7 +1588,8 @@ function saveConfig(config) {
|
|
|
1558
1588
|
p.iconColor ?? null,
|
|
1559
1589
|
p.hostIds ? JSON.stringify(p.hostIds) : null,
|
|
1560
1590
|
p.workspaceId ?? "personal",
|
|
1561
|
-
projectId
|
|
1591
|
+
projectId,
|
|
1592
|
+
serializeBasegridConfig(p.basegridConfig)
|
|
1562
1593
|
);
|
|
1563
1594
|
}
|
|
1564
1595
|
d.prepare("DELETE FROM workflows").run();
|
|
@@ -1750,7 +1781,7 @@ function dbGetProject(name) {
|
|
|
1750
1781
|
function dbInsertProject(project) {
|
|
1751
1782
|
const projectId = project.projectId ?? randomUUID();
|
|
1752
1783
|
getDb().prepare(
|
|
1753
|
-
"INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1784
|
+
"INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1754
1785
|
).run(
|
|
1755
1786
|
project.name,
|
|
1756
1787
|
project.path,
|
|
@@ -1759,7 +1790,8 @@ function dbInsertProject(project) {
|
|
|
1759
1790
|
project.iconColor ?? null,
|
|
1760
1791
|
project.hostIds ? JSON.stringify(project.hostIds) : null,
|
|
1761
1792
|
project.workspaceId ?? "personal",
|
|
1762
|
-
projectId
|
|
1793
|
+
projectId,
|
|
1794
|
+
serializeBasegridConfig(project.basegridConfig)
|
|
1763
1795
|
);
|
|
1764
1796
|
}
|
|
1765
1797
|
function dbUpdateProject(name, updates) {
|
|
@@ -1789,6 +1821,10 @@ function dbUpdateProject(name, updates) {
|
|
|
1789
1821
|
sets.push("workspace_id = ?");
|
|
1790
1822
|
params.push(updates.workspaceId);
|
|
1791
1823
|
}
|
|
1824
|
+
if (updates.basegridConfig !== void 0) {
|
|
1825
|
+
sets.push("basegrid_config = ?");
|
|
1826
|
+
params.push(serializeBasegridConfig(updates.basegridConfig));
|
|
1827
|
+
}
|
|
1792
1828
|
if (sets.length === 0) return;
|
|
1793
1829
|
params.push(name);
|
|
1794
1830
|
getDb().prepare(`UPDATE projects SET ${sets.join(", ")} WHERE name = ?`).run(...params);
|
|
@@ -1932,6 +1968,7 @@ function rowToTask(r) {
|
|
|
1932
1968
|
};
|
|
1933
1969
|
}
|
|
1934
1970
|
function rowToProject(r) {
|
|
1971
|
+
const basegridConfig = parseBasegridConfig(r.basegrid_config);
|
|
1935
1972
|
return {
|
|
1936
1973
|
name: r.name,
|
|
1937
1974
|
path: r.path,
|
|
@@ -1940,9 +1977,23 @@ function rowToProject(r) {
|
|
|
1940
1977
|
...r.icon_color != null && { iconColor: r.icon_color },
|
|
1941
1978
|
...r.host_ids != null && { hostIds: JSON.parse(r.host_ids) },
|
|
1942
1979
|
workspaceId: r.workspace_id ?? "personal",
|
|
1943
|
-
...r.project_id != null && r.project_id !== "" && { projectId: r.project_id }
|
|
1980
|
+
...r.project_id != null && r.project_id !== "" && { projectId: r.project_id },
|
|
1981
|
+
...basegridConfig && { basegridConfig }
|
|
1944
1982
|
};
|
|
1945
1983
|
}
|
|
1984
|
+
function parseBasegridConfig(raw) {
|
|
1985
|
+
if (!raw) return null;
|
|
1986
|
+
try {
|
|
1987
|
+
const parsed = JSON.parse(raw);
|
|
1988
|
+
return parsed && typeof parsed === "object" ? parsed : null;
|
|
1989
|
+
} catch {
|
|
1990
|
+
return null;
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1993
|
+
function serializeBasegridConfig(cfg) {
|
|
1994
|
+
if (!cfg || Object.keys(cfg).length === 0) return null;
|
|
1995
|
+
return JSON.stringify(cfg);
|
|
1996
|
+
}
|
|
1946
1997
|
function rowToWorkflow(r) {
|
|
1947
1998
|
return {
|
|
1948
1999
|
id: r.id,
|
|
@@ -3586,7 +3637,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
|
|
|
3586
3637
|
console.error = (...args) => _origError("[mcp:error]", ...args);
|
|
3587
3638
|
async function main() {
|
|
3588
3639
|
configManager.init();
|
|
3589
|
-
const version = true ? "0.
|
|
3640
|
+
const version = true ? "0.12.0" : createRequire(import.meta.url)("../package.json").version;
|
|
3590
3641
|
const server = createMcpServer(version);
|
|
3591
3642
|
const transport = new StdioServerTransport();
|
|
3592
3643
|
await server.connect(transport);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basegrid_tech/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "BaseGrid MCP server — task management, git, and workflow tools for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"zod": "^4.3.6"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@basegrid/server": "0.
|
|
46
|
-
"@basegrid/shared": "0.
|
|
45
|
+
"@basegrid/server": "0.12.0",
|
|
46
|
+
"@basegrid/shared": "0.12.0",
|
|
47
47
|
"tsup": "^8.5.1",
|
|
48
48
|
"tsx": "^4.21.0",
|
|
49
49
|
"typescript": "^6.0.3"
|