@basegrid_tech/mcp 0.15.2 → 0.16.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 +204 -10
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -8,19 +8,59 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
8
8
|
import fs4 from "fs";
|
|
9
9
|
|
|
10
10
|
// ../shared/src/types.ts
|
|
11
|
-
var CLAUDE_DEFAULT_MODEL_ID = "claude-
|
|
11
|
+
var CLAUDE_DEFAULT_MODEL_ID = "claude-opus-5";
|
|
12
12
|
var CLAUDE_DEFAULT_EFFORT = "medium";
|
|
13
13
|
var CLAUDE_OBSOLETE_MODEL_IDS = [
|
|
14
14
|
"claude-opus-4-7[1m]",
|
|
15
|
-
"claude-opus-4-6[1m]"
|
|
15
|
+
"claude-opus-4-6[1m]",
|
|
16
|
+
// Opus 4.1 уходит в retirement 2026-08-05 — после этой даты Anthropic
|
|
17
|
+
// отвечает 404, поэтому убран из пикера и мигрируется на дефолт.
|
|
18
|
+
"claude-opus-4-1"
|
|
16
19
|
];
|
|
17
|
-
var
|
|
20
|
+
var CODEX_EFFORT_LEVELS = [
|
|
21
|
+
"low",
|
|
22
|
+
"medium",
|
|
23
|
+
"high",
|
|
24
|
+
"xhigh",
|
|
25
|
+
"max",
|
|
26
|
+
"ultra"
|
|
27
|
+
];
|
|
28
|
+
var CODEX_DEFAULT_MODEL_ID = "gpt-5.6-terra";
|
|
18
29
|
var CODEX_OBSOLETE_MODEL_IDS = [
|
|
19
30
|
"gpt-5-codex",
|
|
20
|
-
"gpt-5.
|
|
21
|
-
|
|
31
|
+
"gpt-5.2",
|
|
32
|
+
// Выпали из shipping-списка CLI к 0.145.0. `gpt-5.4-mini` наоборот
|
|
33
|
+
// вернулся в пикер, поэтому в obsolete его больше нет.
|
|
34
|
+
"gpt-5.4",
|
|
35
|
+
"gpt-5.3-codex-spark",
|
|
36
|
+
"gpt-5.3-codex",
|
|
37
|
+
"gpt-5.2-codex"
|
|
22
38
|
];
|
|
23
39
|
var CODEX_DEFAULT_EFFORT = "medium";
|
|
40
|
+
var CODEX_EFFORTS_BY_MODEL = {
|
|
41
|
+
"gpt-5.6-terra": ["low", "medium", "high", "xhigh", "max", "ultra"],
|
|
42
|
+
"gpt-5.6-luna": ["low", "medium", "high", "xhigh", "max"],
|
|
43
|
+
"gpt-5.5": ["low", "medium", "high", "xhigh"],
|
|
44
|
+
"gpt-5.4-mini": ["low", "medium", "high", "xhigh"]
|
|
45
|
+
};
|
|
46
|
+
var CODEX_EFFORTS_FALLBACK = ["low", "medium", "high", "xhigh"];
|
|
47
|
+
function getCodexEfforts(model) {
|
|
48
|
+
if (!model) return CODEX_EFFORTS_FALLBACK;
|
|
49
|
+
return CODEX_EFFORTS_BY_MODEL[model] ?? CODEX_EFFORTS_FALLBACK;
|
|
50
|
+
}
|
|
51
|
+
function normalizeCodexEffort(value, model) {
|
|
52
|
+
const supported = getCodexEfforts(model);
|
|
53
|
+
const raw = value === "minimal" ? "low" : value;
|
|
54
|
+
if (typeof raw === "string" && supported.includes(raw)) {
|
|
55
|
+
return raw;
|
|
56
|
+
}
|
|
57
|
+
const idx = CODEX_EFFORT_LEVELS.indexOf(raw);
|
|
58
|
+
if (idx < 0) return CODEX_DEFAULT_EFFORT;
|
|
59
|
+
for (let i = idx; i >= 0; i--) {
|
|
60
|
+
if (supported.includes(CODEX_EFFORT_LEVELS[i])) return CODEX_EFFORT_LEVELS[i];
|
|
61
|
+
}
|
|
62
|
+
return CODEX_DEFAULT_EFFORT;
|
|
63
|
+
}
|
|
24
64
|
var DEFAULT_WORKSPACE = {
|
|
25
65
|
id: "personal",
|
|
26
66
|
name: "Personal",
|
|
@@ -513,6 +553,23 @@ function createSchema() {
|
|
|
513
553
|
value TEXT NOT NULL
|
|
514
554
|
);
|
|
515
555
|
|
|
556
|
+
-- \u0423\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0439 \u0434\u043E\u0441\u0442\u0443\u043F \u0441 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430: \u043E\u0434\u0438\u043D \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 VPS \u043D\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044E.
|
|
557
|
+
-- \u0421\u0442\u0440\u043E\u043A\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043E\u0434\u043D\u0430 (id = 'default'); \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F.
|
|
558
|
+
-- \u041F\u0430\u0440\u043E\u043B\u044C root \u041D\u0415 \u0445\u0440\u0430\u043D\u0438\u043C \u2014 \u043E\u043D \u043D\u0443\u0436\u0435\u043D \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u0432\u0440\u0435\u043C\u044F \u043F\u0435\u0440\u0432\u043E\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438,
|
|
559
|
+
-- \u0434\u0430\u043B\u044C\u0448\u0435 \u0432\u0445\u043E\u0434 \u043F\u043E \u043A\u043B\u044E\u0447\u0443.
|
|
560
|
+
CREATE TABLE IF NOT EXISTS remote_access (
|
|
561
|
+
id TEXT PRIMARY KEY,
|
|
562
|
+
host TEXT NOT NULL,
|
|
563
|
+
ssh_user TEXT NOT NULL,
|
|
564
|
+
ssh_port INTEGER NOT NULL DEFAULT 22,
|
|
565
|
+
domain TEXT NOT NULL,
|
|
566
|
+
token TEXT NOT NULL,
|
|
567
|
+
tunnel_user TEXT NOT NULL,
|
|
568
|
+
remote_port INTEGER NOT NULL,
|
|
569
|
+
created_at TEXT NOT NULL,
|
|
570
|
+
updated_at TEXT NOT NULL
|
|
571
|
+
);
|
|
572
|
+
|
|
516
573
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
517
574
|
id TEXT PRIMARY KEY,
|
|
518
575
|
project_name TEXT NOT NULL,
|
|
@@ -675,6 +732,12 @@ function createSchema() {
|
|
|
675
732
|
updated_at INTEGER NOT NULL
|
|
676
733
|
);
|
|
677
734
|
|
|
735
|
+
CREATE TABLE IF NOT EXISTS worktree_view_modes (
|
|
736
|
+
worktree_path TEXT PRIMARY KEY,
|
|
737
|
+
view_mode TEXT NOT NULL,
|
|
738
|
+
updated_at INTEGER NOT NULL
|
|
739
|
+
);
|
|
740
|
+
|
|
678
741
|
CREATE TABLE IF NOT EXISTS worktree_list_cache (
|
|
679
742
|
project_path TEXT NOT NULL,
|
|
680
743
|
worktree_path TEXT NOT NULL,
|
|
@@ -685,6 +748,7 @@ function createSchema() {
|
|
|
685
748
|
alias_generated_at INTEGER,
|
|
686
749
|
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
687
750
|
is_auto_generated INTEGER,
|
|
751
|
+
ownership TEXT,
|
|
688
752
|
updated_at INTEGER NOT NULL,
|
|
689
753
|
PRIMARY KEY (project_path, worktree_path)
|
|
690
754
|
);
|
|
@@ -692,6 +756,17 @@ function createSchema() {
|
|
|
692
756
|
CREATE INDEX IF NOT EXISTS idx_worktree_list_project
|
|
693
757
|
ON worktree_list_cache(project_path);
|
|
694
758
|
|
|
759
|
+
CREATE TABLE IF NOT EXISTS external_worktree_settings (
|
|
760
|
+
project_path TEXT PRIMARY KEY,
|
|
761
|
+
visibility TEXT NOT NULL DEFAULT 'hide',
|
|
762
|
+
prompt_dismissed_at INTEGER,
|
|
763
|
+
discovery_suppressed_at INTEGER,
|
|
764
|
+
imported_paths TEXT NOT NULL DEFAULT '[]',
|
|
765
|
+
hidden_paths TEXT NOT NULL DEFAULT '[]',
|
|
766
|
+
baseline_paths TEXT NOT NULL DEFAULT '[]',
|
|
767
|
+
updated_at INTEGER NOT NULL
|
|
768
|
+
);
|
|
769
|
+
|
|
695
770
|
CREATE TABLE IF NOT EXISTS usage_metrics (
|
|
696
771
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
697
772
|
terminal_id TEXT NOT NULL,
|
|
@@ -724,6 +799,22 @@ function createSchema() {
|
|
|
724
799
|
-- sparkline reads with, so no extra index is needed.
|
|
725
800
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_usage_limit_snap_unique
|
|
726
801
|
ON usage_limit_snapshots(window_type, snapshot_at);
|
|
802
|
+
|
|
803
|
+
-- \u041F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430: \u0443 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0432\u043E\u0439 \u0442\u043E\u043A\u0435\u043D \u0432\u043C\u0435\u0441\u0442\u043E \u043E\u0431\u0449\u0435\u0433\u043E
|
|
804
|
+
-- \u043F\u0430\u0440\u043E\u043B\u044F. \u0425\u0440\u0430\u043D\u0438\u043C \u0442\u043E\u043B\u044C\u043A\u043E sha256 \u2014 \u0431\u0430\u0437\u0430 \u043B\u0435\u0436\u0438\u0442 \u043E\u0431\u044B\u0447\u043D\u044B\u043C \u0444\u0430\u0439\u043B\u043E\u043C, \u0438 \u0435\u0451 \u0443\u0442\u0435\u0447\u043A\u0430
|
|
805
|
+
-- \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u0430 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F. \u0418\u043D\u0434\u0435\u043A\u0441 \u043F\u043E \u0445\u0435\u0448\u0443: \u043F\u043E \u043D\u0435\u043C\u0443 \u0438\u0434\u0451\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430
|
|
806
|
+
-- \u043D\u0430 \u043A\u0430\u0436\u0434\u043E\u043C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0438.
|
|
807
|
+
CREATE TABLE IF NOT EXISTS devices (
|
|
808
|
+
id TEXT PRIMARY KEY,
|
|
809
|
+
token_hash TEXT NOT NULL,
|
|
810
|
+
kind TEXT NOT NULL DEFAULT 'mobile',
|
|
811
|
+
name TEXT NOT NULL DEFAULT '',
|
|
812
|
+
paired_at INTEGER NOT NULL,
|
|
813
|
+
last_seen_at INTEGER NOT NULL,
|
|
814
|
+
revoked_at INTEGER
|
|
815
|
+
);
|
|
816
|
+
|
|
817
|
+
CREATE INDEX IF NOT EXISTS idx_devices_token_hash ON devices(token_hash);
|
|
727
818
|
`);
|
|
728
819
|
migrateSchema(d);
|
|
729
820
|
verifySchema(d);
|
|
@@ -1306,6 +1397,73 @@ function migrateSchema(d) {
|
|
|
1306
1397
|
})();
|
|
1307
1398
|
logger_default.info("[database] migrated schema to version 27 (projects.basegrid_config overrides)");
|
|
1308
1399
|
}
|
|
1400
|
+
if (version < 28) {
|
|
1401
|
+
d.transaction(() => {
|
|
1402
|
+
const cols = d.prepare("PRAGMA table_info(worktree_list_cache)").all();
|
|
1403
|
+
if (!cols.some((c) => c.name === "ownership")) {
|
|
1404
|
+
d.exec("ALTER TABLE worktree_list_cache ADD COLUMN ownership TEXT");
|
|
1405
|
+
}
|
|
1406
|
+
d.exec("UPDATE worktree_list_cache SET ownership = 'managed' WHERE ownership IS NULL");
|
|
1407
|
+
d.prepare(
|
|
1408
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '28')"
|
|
1409
|
+
).run();
|
|
1410
|
+
})();
|
|
1411
|
+
logger_default.info("[database] migrated schema to version 28 (worktree_list_cache.ownership)");
|
|
1412
|
+
}
|
|
1413
|
+
if (version < 29) {
|
|
1414
|
+
d.transaction(() => {
|
|
1415
|
+
d.exec(`
|
|
1416
|
+
CREATE TABLE IF NOT EXISTS external_worktree_settings (
|
|
1417
|
+
project_path TEXT PRIMARY KEY,
|
|
1418
|
+
visibility TEXT NOT NULL DEFAULT 'hide',
|
|
1419
|
+
prompt_dismissed_at INTEGER,
|
|
1420
|
+
discovery_suppressed_at INTEGER,
|
|
1421
|
+
imported_paths TEXT NOT NULL DEFAULT '[]',
|
|
1422
|
+
hidden_paths TEXT NOT NULL DEFAULT '[]',
|
|
1423
|
+
baseline_paths TEXT NOT NULL DEFAULT '[]',
|
|
1424
|
+
updated_at INTEGER NOT NULL
|
|
1425
|
+
);
|
|
1426
|
+
`);
|
|
1427
|
+
d.prepare(
|
|
1428
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '29')"
|
|
1429
|
+
).run();
|
|
1430
|
+
})();
|
|
1431
|
+
logger_default.info("[database] migrated schema to version 29 (external_worktree_settings)");
|
|
1432
|
+
}
|
|
1433
|
+
if (version < 30) {
|
|
1434
|
+
d.transaction(() => {
|
|
1435
|
+
const cols = d.prepare("PRAGMA table_info(external_worktree_settings)").all();
|
|
1436
|
+
if (!cols.some((c) => c.name === "hidden_paths")) {
|
|
1437
|
+
d.exec(
|
|
1438
|
+
"ALTER TABLE external_worktree_settings ADD COLUMN hidden_paths TEXT NOT NULL DEFAULT '[]'"
|
|
1439
|
+
);
|
|
1440
|
+
}
|
|
1441
|
+
d.prepare(
|
|
1442
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '30')"
|
|
1443
|
+
).run();
|
|
1444
|
+
})();
|
|
1445
|
+
logger_default.info("[database] migrated schema to version 30 (external_worktree_settings.hidden_paths)");
|
|
1446
|
+
}
|
|
1447
|
+
if (version < 31) {
|
|
1448
|
+
d.transaction(() => {
|
|
1449
|
+
d.exec(`
|
|
1450
|
+
CREATE TABLE IF NOT EXISTS devices (
|
|
1451
|
+
id TEXT PRIMARY KEY,
|
|
1452
|
+
token_hash TEXT NOT NULL,
|
|
1453
|
+
kind TEXT NOT NULL DEFAULT 'mobile',
|
|
1454
|
+
name TEXT NOT NULL DEFAULT '',
|
|
1455
|
+
paired_at INTEGER NOT NULL,
|
|
1456
|
+
last_seen_at INTEGER NOT NULL,
|
|
1457
|
+
revoked_at INTEGER
|
|
1458
|
+
);
|
|
1459
|
+
CREATE INDEX IF NOT EXISTS idx_devices_token_hash ON devices(token_hash);
|
|
1460
|
+
`);
|
|
1461
|
+
d.prepare(
|
|
1462
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '31')"
|
|
1463
|
+
).run();
|
|
1464
|
+
})();
|
|
1465
|
+
logger_default.info("[database] migrated schema to version 31 (devices)");
|
|
1466
|
+
}
|
|
1309
1467
|
}
|
|
1310
1468
|
function verifySchema(d) {
|
|
1311
1469
|
const expectedTables = [
|
|
@@ -1472,6 +1630,16 @@ function verifySchema(d) {
|
|
|
1472
1630
|
{
|
|
1473
1631
|
column: "is_auto_generated",
|
|
1474
1632
|
ddl: "ALTER TABLE worktree_list_cache ADD COLUMN is_auto_generated INTEGER"
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
column: "ownership",
|
|
1636
|
+
ddl: "ALTER TABLE worktree_list_cache ADD COLUMN ownership TEXT"
|
|
1637
|
+
}
|
|
1638
|
+
],
|
|
1639
|
+
external_worktree_settings: [
|
|
1640
|
+
{
|
|
1641
|
+
column: "hidden_paths",
|
|
1642
|
+
ddl: "ALTER TABLE external_worktree_settings ADD COLUMN hidden_paths TEXT NOT NULL DEFAULT '[]'"
|
|
1475
1643
|
}
|
|
1476
1644
|
]
|
|
1477
1645
|
};
|
|
@@ -1524,8 +1692,10 @@ var DEFAULTS_KEYS_MAP = {
|
|
|
1524
1692
|
hasSeenOnboarding: true,
|
|
1525
1693
|
widgetEnabled: true,
|
|
1526
1694
|
minimizeToTray: true,
|
|
1695
|
+
singleMobileClient: true,
|
|
1527
1696
|
slashCommandFallbackDescription: true,
|
|
1528
1697
|
taskViewMode: true,
|
|
1698
|
+
usagePopoverMode: true,
|
|
1529
1699
|
taskListCollapsedStatuses: true,
|
|
1530
1700
|
layoutMode: true,
|
|
1531
1701
|
mainViewMode: true,
|
|
@@ -2222,6 +2392,22 @@ function listWorkflowRunsByTask(taskId, limit = 20) {
|
|
|
2222
2392
|
nodeStates: nodesByRunId.get(r.id) ?? []
|
|
2223
2393
|
}));
|
|
2224
2394
|
}
|
|
2395
|
+
var LIMIT_HISTORY_WINDOW_MINUTES = {
|
|
2396
|
+
session: 300,
|
|
2397
|
+
// Claude, 5 часов
|
|
2398
|
+
weekly: 10080,
|
|
2399
|
+
// Claude, 7 дней
|
|
2400
|
+
fable: 10080,
|
|
2401
|
+
// Claude Fable, 7 дней
|
|
2402
|
+
// Длительность окон Codex зависит от тарифа (free — одно 30-дневное ведро,
|
|
2403
|
+
// платные — 5ч + неделя), а сервер её не знает. Отдаём с запасом на 30 дней;
|
|
2404
|
+
// спарклайн в рендерере обрезает точки по реальному окну.
|
|
2405
|
+
"codex-session": 43200,
|
|
2406
|
+
"codex-weekly": 43200
|
|
2407
|
+
};
|
|
2408
|
+
var LIMIT_HISTORY_WINDOW_TYPES = Object.keys(
|
|
2409
|
+
LIMIT_HISTORY_WINDOW_MINUTES
|
|
2410
|
+
);
|
|
2225
2411
|
|
|
2226
2412
|
// ../server/src/config-manager.ts
|
|
2227
2413
|
var DB_DIR = getDataDir();
|
|
@@ -2308,20 +2494,28 @@ var ConfigManager = class {
|
|
|
2308
2494
|
seedCodexDefaults(config) {
|
|
2309
2495
|
const stored = config.defaults.codexDefaultModel;
|
|
2310
2496
|
const needsModel = stored == null || typeof stored === "string" && CODEX_OBSOLETE_MODEL_IDS.includes(stored);
|
|
2311
|
-
const
|
|
2312
|
-
|
|
2497
|
+
const model = needsModel ? CODEX_DEFAULT_MODEL_ID : stored;
|
|
2498
|
+
const storedEffort = config.defaults.codexDefaultEffort;
|
|
2499
|
+
const effort = storedEffort == null ? CODEX_DEFAULT_EFFORT : normalizeCodexEffort(storedEffort, model);
|
|
2500
|
+
const needsEffort = effort !== storedEffort;
|
|
2501
|
+
const storedReviewEffort = config.defaults.reviewCodexEffort;
|
|
2502
|
+
const reviewModel = config.defaults.reviewCodexModel ?? model;
|
|
2503
|
+
const reviewEffort = storedReviewEffort == null ? void 0 : normalizeCodexEffort(storedReviewEffort, reviewModel);
|
|
2504
|
+
const needsReviewEffort = reviewEffort !== void 0 && reviewEffort !== storedReviewEffort;
|
|
2505
|
+
if (!needsModel && !needsEffort && !needsReviewEffort) return config;
|
|
2313
2506
|
const seeded = {
|
|
2314
2507
|
...config,
|
|
2315
2508
|
defaults: {
|
|
2316
2509
|
...config.defaults,
|
|
2317
2510
|
...needsModel ? { codexDefaultModel: CODEX_DEFAULT_MODEL_ID } : {},
|
|
2318
|
-
...needsEffort ? { codexDefaultEffort:
|
|
2511
|
+
...needsEffort ? { codexDefaultEffort: effort } : {},
|
|
2512
|
+
...needsReviewEffort ? { reviewCodexEffort: reviewEffort } : {}
|
|
2319
2513
|
}
|
|
2320
2514
|
};
|
|
2321
2515
|
try {
|
|
2322
2516
|
saveConfig(seeded);
|
|
2323
2517
|
logger_default.info(
|
|
2324
|
-
`[config-manager] seeded codex defaults: model=${needsModel ? CODEX_DEFAULT_MODEL_ID : "(kept)"} effort=${needsEffort ?
|
|
2518
|
+
`[config-manager] seeded codex defaults: model=${needsModel ? CODEX_DEFAULT_MODEL_ID : "(kept)"} effort=${needsEffort ? effort : "(kept)"} reviewEffort=${needsReviewEffort ? reviewEffort : "(kept)"}`
|
|
2325
2519
|
);
|
|
2326
2520
|
} catch (err) {
|
|
2327
2521
|
logger_default.warn(
|
|
@@ -3769,7 +3963,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
|
|
|
3769
3963
|
console.error = (...args) => _origError("[mcp:error]", ...args);
|
|
3770
3964
|
async function main() {
|
|
3771
3965
|
configManager.init();
|
|
3772
|
-
const version = true ? "0.
|
|
3966
|
+
const version = true ? "0.16.0" : createRequire(import.meta.url)("../package.json").version;
|
|
3773
3967
|
const server = createMcpServer(version);
|
|
3774
3968
|
const transport = new StdioServerTransport();
|
|
3775
3969
|
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.16.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.16.0",
|
|
46
|
+
"@basegrid/shared": "0.16.0",
|
|
47
47
|
"tsup": "^8.5.1",
|
|
48
48
|
"tsx": "^4.21.0",
|
|
49
49
|
"typescript": "^6.0.3"
|