@vibegrid/mcp 0.4.0-beta.1 → 0.4.0-beta.2
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 +62 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -237,7 +237,8 @@ function createSchema() {
|
|
|
237
237
|
remote_host_label TEXT,
|
|
238
238
|
hook_session_id TEXT,
|
|
239
239
|
status_source TEXT,
|
|
240
|
-
saved_at INTEGER
|
|
240
|
+
saved_at INTEGER,
|
|
241
|
+
sort_order INTEGER NOT NULL DEFAULT 0
|
|
241
242
|
);
|
|
242
243
|
|
|
243
244
|
CREATE TABLE IF NOT EXISTS schedule_log (
|
|
@@ -317,6 +318,17 @@ function createSchema() {
|
|
|
317
318
|
|
|
318
319
|
CREATE INDEX IF NOT EXISTS idx_session_logs_task ON session_logs(task_id);
|
|
319
320
|
CREATE INDEX IF NOT EXISTS idx_session_logs_session ON session_logs(session_id);
|
|
321
|
+
|
|
322
|
+
CREATE TABLE IF NOT EXISTS session_events (
|
|
323
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
324
|
+
session_id TEXT NOT NULL,
|
|
325
|
+
event_type TEXT NOT NULL,
|
|
326
|
+
timestamp TEXT NOT NULL,
|
|
327
|
+
metadata TEXT
|
|
328
|
+
);
|
|
329
|
+
|
|
330
|
+
CREATE INDEX IF NOT EXISTS idx_session_events_session ON session_events(session_id, timestamp DESC);
|
|
331
|
+
CREATE INDEX IF NOT EXISTS idx_session_events_type ON session_events(event_type, timestamp DESC);
|
|
320
332
|
`);
|
|
321
333
|
migrateSchema(d);
|
|
322
334
|
}
|
|
@@ -376,6 +388,18 @@ function migrateSchema(d) {
|
|
|
376
388
|
})();
|
|
377
389
|
logger_default.info("[database] migrated schema to version 2 (ssh credential vault)");
|
|
378
390
|
}
|
|
391
|
+
if (version < 3) {
|
|
392
|
+
d.transaction(() => {
|
|
393
|
+
const sessionCols = d.prepare("PRAGMA table_info(sessions)").all();
|
|
394
|
+
if (!sessionCols.some((c) => c.name === "sort_order")) {
|
|
395
|
+
d.exec("ALTER TABLE sessions ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0");
|
|
396
|
+
}
|
|
397
|
+
d.prepare(
|
|
398
|
+
"INSERT OR REPLACE INTO schema_meta (key, value) VALUES ('schema_version', '3')"
|
|
399
|
+
).run();
|
|
400
|
+
})();
|
|
401
|
+
logger_default.info("[database] migrated schema to version 3 (session sort order)");
|
|
402
|
+
}
|
|
379
403
|
}
|
|
380
404
|
function loadConfig() {
|
|
381
405
|
const d = getDb();
|
|
@@ -1776,6 +1800,42 @@ function registerSessionTools(server) {
|
|
|
1776
1800
|
}
|
|
1777
1801
|
}
|
|
1778
1802
|
);
|
|
1803
|
+
server.tool(
|
|
1804
|
+
"list_session_events",
|
|
1805
|
+
"List session lifecycle events (created, exited, task_linked, renamed, archived, unarchived). Use for post-mortem analysis and multi-agent coordination.",
|
|
1806
|
+
{
|
|
1807
|
+
session_id: V.id.optional().describe("Filter by session ID"),
|
|
1808
|
+
event_type: z4.enum(["created", "exited", "task_linked", "renamed", "archived", "unarchived"]).optional().describe("Filter by event type"),
|
|
1809
|
+
limit: z4.number().int().min(1).max(200).optional().describe("Max events to return (default: 50)")
|
|
1810
|
+
},
|
|
1811
|
+
async (args) => {
|
|
1812
|
+
try {
|
|
1813
|
+
let events;
|
|
1814
|
+
if (args.session_id) {
|
|
1815
|
+
events = await rpcCall("sessionEvent:listBySession", {
|
|
1816
|
+
sessionId: args.session_id,
|
|
1817
|
+
limit: args.limit ?? 50
|
|
1818
|
+
});
|
|
1819
|
+
} else {
|
|
1820
|
+
events = await rpcCall("sessionEvent:list", {
|
|
1821
|
+
eventType: args.event_type,
|
|
1822
|
+
limit: args.limit ?? 50
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
return { content: [{ type: "text", text: JSON.stringify(events, null, 2) }] };
|
|
1826
|
+
} catch (err) {
|
|
1827
|
+
return {
|
|
1828
|
+
content: [
|
|
1829
|
+
{
|
|
1830
|
+
type: "text",
|
|
1831
|
+
text: `Error listing session events: ${err instanceof Error ? err.message : err}`
|
|
1832
|
+
}
|
|
1833
|
+
],
|
|
1834
|
+
isError: true
|
|
1835
|
+
};
|
|
1836
|
+
}
|
|
1837
|
+
}
|
|
1838
|
+
);
|
|
1779
1839
|
}
|
|
1780
1840
|
|
|
1781
1841
|
// src/tools/workflows.ts
|
|
@@ -2155,7 +2215,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
|
|
|
2155
2215
|
console.error = (...args) => _origError("[mcp:error]", ...args);
|
|
2156
2216
|
async function main() {
|
|
2157
2217
|
configManager.init();
|
|
2158
|
-
const version = true ? "0.4.0-beta.
|
|
2218
|
+
const version = true ? "0.4.0-beta.2" : createRequire(import.meta.url)("../package.json").version;
|
|
2159
2219
|
const server = createMcpServer(version);
|
|
2160
2220
|
const transport = new StdioServerTransport();
|
|
2161
2221
|
await server.connect(transport);
|