@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.
Files changed (2) hide show
  1. package/dist/index.js +62 -2
  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.1" : createRequire(import.meta.url)("../package.json").version;
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibegrid/mcp",
3
- "version": "0.4.0-beta.1",
3
+ "version": "0.4.0-beta.2",
4
4
  "description": "VibeGrid MCP server — task management, git, and workflow tools for AI coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",