@basegrid_tech/mcp 0.11.0 → 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 -8
- 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: [
|
|
@@ -1426,7 +1456,6 @@ var DEFAULTS_KEYS_MAP = {
|
|
|
1426
1456
|
language: true,
|
|
1427
1457
|
hasSeededDefaultTaskWorkflow: true,
|
|
1428
1458
|
defaultSpinnerVariant: true,
|
|
1429
|
-
dragFilesFromChanges: true,
|
|
1430
1459
|
taskGithubIssueEnabled: true,
|
|
1431
1460
|
perfOverlayEnabled: true,
|
|
1432
1461
|
sidebarSnapPointsEnabled: true,
|
|
@@ -1547,7 +1576,7 @@ function saveConfig(config) {
|
|
|
1547
1576
|
}
|
|
1548
1577
|
d.prepare("DELETE FROM projects").run();
|
|
1549
1578
|
const insertProject = d.prepare(
|
|
1550
|
-
"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 (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1551
1580
|
);
|
|
1552
1581
|
for (const p of config.projects) {
|
|
1553
1582
|
const projectId = p.projectId ?? existingIds.get(p.name) ?? randomUUID();
|
|
@@ -1559,7 +1588,8 @@ function saveConfig(config) {
|
|
|
1559
1588
|
p.iconColor ?? null,
|
|
1560
1589
|
p.hostIds ? JSON.stringify(p.hostIds) : null,
|
|
1561
1590
|
p.workspaceId ?? "personal",
|
|
1562
|
-
projectId
|
|
1591
|
+
projectId,
|
|
1592
|
+
serializeBasegridConfig(p.basegridConfig)
|
|
1563
1593
|
);
|
|
1564
1594
|
}
|
|
1565
1595
|
d.prepare("DELETE FROM workflows").run();
|
|
@@ -1751,7 +1781,7 @@ function dbGetProject(name) {
|
|
|
1751
1781
|
function dbInsertProject(project) {
|
|
1752
1782
|
const projectId = project.projectId ?? randomUUID();
|
|
1753
1783
|
getDb().prepare(
|
|
1754
|
-
"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 (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
|
1755
1785
|
).run(
|
|
1756
1786
|
project.name,
|
|
1757
1787
|
project.path,
|
|
@@ -1760,7 +1790,8 @@ function dbInsertProject(project) {
|
|
|
1760
1790
|
project.iconColor ?? null,
|
|
1761
1791
|
project.hostIds ? JSON.stringify(project.hostIds) : null,
|
|
1762
1792
|
project.workspaceId ?? "personal",
|
|
1763
|
-
projectId
|
|
1793
|
+
projectId,
|
|
1794
|
+
serializeBasegridConfig(project.basegridConfig)
|
|
1764
1795
|
);
|
|
1765
1796
|
}
|
|
1766
1797
|
function dbUpdateProject(name, updates) {
|
|
@@ -1790,6 +1821,10 @@ function dbUpdateProject(name, updates) {
|
|
|
1790
1821
|
sets.push("workspace_id = ?");
|
|
1791
1822
|
params.push(updates.workspaceId);
|
|
1792
1823
|
}
|
|
1824
|
+
if (updates.basegridConfig !== void 0) {
|
|
1825
|
+
sets.push("basegrid_config = ?");
|
|
1826
|
+
params.push(serializeBasegridConfig(updates.basegridConfig));
|
|
1827
|
+
}
|
|
1793
1828
|
if (sets.length === 0) return;
|
|
1794
1829
|
params.push(name);
|
|
1795
1830
|
getDb().prepare(`UPDATE projects SET ${sets.join(", ")} WHERE name = ?`).run(...params);
|
|
@@ -1933,6 +1968,7 @@ function rowToTask(r) {
|
|
|
1933
1968
|
};
|
|
1934
1969
|
}
|
|
1935
1970
|
function rowToProject(r) {
|
|
1971
|
+
const basegridConfig = parseBasegridConfig(r.basegrid_config);
|
|
1936
1972
|
return {
|
|
1937
1973
|
name: r.name,
|
|
1938
1974
|
path: r.path,
|
|
@@ -1941,9 +1977,23 @@ function rowToProject(r) {
|
|
|
1941
1977
|
...r.icon_color != null && { iconColor: r.icon_color },
|
|
1942
1978
|
...r.host_ids != null && { hostIds: JSON.parse(r.host_ids) },
|
|
1943
1979
|
workspaceId: r.workspace_id ?? "personal",
|
|
1944
|
-
...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 }
|
|
1945
1982
|
};
|
|
1946
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
|
+
}
|
|
1947
1997
|
function rowToWorkflow(r) {
|
|
1948
1998
|
return {
|
|
1949
1999
|
id: r.id,
|
|
@@ -3587,7 +3637,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
|
|
|
3587
3637
|
console.error = (...args) => _origError("[mcp:error]", ...args);
|
|
3588
3638
|
async function main() {
|
|
3589
3639
|
configManager.init();
|
|
3590
|
-
const version = true ? "0.
|
|
3640
|
+
const version = true ? "0.12.0" : createRequire(import.meta.url)("../package.json").version;
|
|
3591
3641
|
const server = createMcpServer(version);
|
|
3592
3642
|
const transport = new StdioServerTransport();
|
|
3593
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"
|