@basegrid_tech/mcp 0.17.8 → 0.18.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.
Files changed (3) hide show
  1. package/LICENSE +28 -0
  2. package/dist/index.js +43 -8
  3. package/package.json +4 -4
package/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kirill Olegovich Sokolov
4
+ Portions Copyright (c) 2024 Javier Canizalez
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+
24
+ ---
25
+
26
+ This MIT license covers the BaseGrid MCP server (`@basegrid_tech/mcp`) only.
27
+ The rest of the BaseGrid application is proprietary — see the LICENSE file at
28
+ the repository root.
package/dist/index.js CHANGED
@@ -453,7 +453,9 @@ function createSchema() {
453
453
  icon_color TEXT,
454
454
  host_ids TEXT,
455
455
  project_id TEXT,
456
- basegrid_config TEXT
456
+ basegrid_config TEXT,
457
+ created_at INTEGER,
458
+ last_activity_at INTEGER
457
459
  );
458
460
  -- 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):
459
461
  -- \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.
@@ -1460,6 +1462,22 @@ function migrateSchema(d) {
1460
1462
  })();
1461
1463
  logger_default.info("[database] migrated schema to version 32 (quick command shell)");
1462
1464
  }
1465
+ if (version < 33) {
1466
+ d.transaction(() => {
1467
+ const cols = d.prepare("PRAGMA table_info(projects)").all();
1468
+ if (!cols.some((c) => c.name === "created_at")) {
1469
+ d.exec("ALTER TABLE projects ADD COLUMN created_at INTEGER");
1470
+ }
1471
+ if (!cols.some((c) => c.name === "last_activity_at")) {
1472
+ d.exec("ALTER TABLE projects ADD COLUMN last_activity_at INTEGER");
1473
+ }
1474
+ d.prepare("UPDATE projects SET created_at = ? WHERE created_at IS NULL").run(Date.now());
1475
+ d.prepare(
1476
+ "INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '33')"
1477
+ ).run();
1478
+ })();
1479
+ logger_default.info("[database] migrated schema to version 33 (projects activity timestamps)");
1480
+ }
1463
1481
  }
1464
1482
  function verifySchema(d) {
1465
1483
  const expectedTables = [
@@ -1534,6 +1552,14 @@ function verifySchema(d) {
1534
1552
  {
1535
1553
  column: "basegrid_config",
1536
1554
  ddl: "ALTER TABLE projects ADD COLUMN basegrid_config TEXT"
1555
+ },
1556
+ {
1557
+ column: "created_at",
1558
+ ddl: "ALTER TABLE projects ADD COLUMN created_at INTEGER"
1559
+ },
1560
+ {
1561
+ column: "last_activity_at",
1562
+ ddl: "ALTER TABLE projects ADD COLUMN last_activity_at INTEGER"
1537
1563
  }
1538
1564
  ],
1539
1565
  workflows: [
@@ -1867,13 +1893,18 @@ function saveConfig(config) {
1867
1893
  }
1868
1894
  }
1869
1895
  const existingIds = /* @__PURE__ */ new Map();
1870
- for (const r of d.prepare("SELECT name, project_id FROM projects").all()) {
1896
+ const existingCreatedAt = /* @__PURE__ */ new Map();
1897
+ const existingActivity = /* @__PURE__ */ new Map();
1898
+ for (const r of d.prepare("SELECT name, project_id, created_at, last_activity_at FROM projects").all()) {
1871
1899
  if (r.project_id) existingIds.set(r.name, r.project_id);
1900
+ if (r.created_at != null) existingCreatedAt.set(r.name, r.created_at);
1901
+ if (r.last_activity_at != null) existingActivity.set(r.name, r.last_activity_at);
1872
1902
  }
1873
1903
  d.prepare("DELETE FROM projects").run();
1874
1904
  const insertProject = d.prepare(
1875
- "INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
1905
+ "INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config, created_at, last_activity_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
1876
1906
  );
1907
+ const savedAt = Date.now();
1877
1908
  for (const p of config.projects) {
1878
1909
  const projectId = p.projectId ?? existingIds.get(p.name) ?? randomUUID();
1879
1910
  insertProject.run(
@@ -1885,7 +1916,9 @@ function saveConfig(config) {
1885
1916
  p.hostIds ? JSON.stringify(p.hostIds) : null,
1886
1917
  p.workspaceId ?? "personal",
1887
1918
  projectId,
1888
- serializeBasegridConfig(p.basegridConfig)
1919
+ serializeBasegridConfig(p.basegridConfig),
1920
+ existingCreatedAt.get(p.name) ?? p.createdAt ?? savedAt,
1921
+ existingActivity.get(p.name) ?? null
1889
1922
  );
1890
1923
  }
1891
1924
  d.prepare("DELETE FROM workflows").run();
@@ -2098,7 +2131,7 @@ function dbGetProject(name) {
2098
2131
  function dbInsertProject(project) {
2099
2132
  const projectId = project.projectId ?? randomUUID();
2100
2133
  getDb().prepare(
2101
- "INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
2134
+ "INSERT INTO projects (name, path, preferred_agents, icon, icon_color, host_ids, workspace_id, project_id, basegrid_config, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
2102
2135
  ).run(
2103
2136
  project.name,
2104
2137
  project.path,
@@ -2108,7 +2141,8 @@ function dbInsertProject(project) {
2108
2141
  project.hostIds ? JSON.stringify(project.hostIds) : null,
2109
2142
  project.workspaceId ?? "personal",
2110
2143
  projectId,
2111
- serializeBasegridConfig(project.basegridConfig)
2144
+ serializeBasegridConfig(project.basegridConfig),
2145
+ project.createdAt ?? Date.now()
2112
2146
  );
2113
2147
  }
2114
2148
  function dbUpdateProject(name, updates) {
@@ -2295,7 +2329,8 @@ function rowToProject(r) {
2295
2329
  ...r.host_ids != null && { hostIds: JSON.parse(r.host_ids) },
2296
2330
  workspaceId: r.workspace_id ?? "personal",
2297
2331
  ...r.project_id != null && r.project_id !== "" && { projectId: r.project_id },
2298
- ...basegridConfig && { basegridConfig }
2332
+ ...basegridConfig && { basegridConfig },
2333
+ ...r.created_at != null && { createdAt: r.created_at }
2299
2334
  };
2300
2335
  }
2301
2336
  function parseBasegridConfig(raw) {
@@ -4377,7 +4412,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
4377
4412
  console.error = (...args) => _origError("[mcp:error]", ...args);
4378
4413
  async function main() {
4379
4414
  configManager.init();
4380
- const version = true ? "0.17.8" : createRequire(import.meta.url)("../package.json").version;
4415
+ const version = true ? "0.18.0" : createRequire(import.meta.url)("../package.json").version;
4381
4416
  const server = createMcpServer(version);
4382
4417
  const transport = new StdioServerTransport();
4383
4418
  await server.connect(transport);
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@basegrid_tech/mcp",
3
- "version": "0.17.8",
3
+ "version": "0.18.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",
7
- "author": "BaseGrid LLC",
7
+ "author": "Kirill Sokolov",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/pxlvoid/basegrid.git",
@@ -42,8 +42,8 @@
42
42
  "zod": "^4.3.6"
43
43
  },
44
44
  "devDependencies": {
45
- "@basegrid/server": "0.17.8",
46
- "@basegrid/shared": "0.17.8",
45
+ "@basegrid/server": "0.18.0",
46
+ "@basegrid/shared": "0.18.0",
47
47
  "tsup": "^8.5.1",
48
48
  "tsx": "^4.21.0",
49
49
  "typescript": "^6.0.3"