@vibegrid/mcp 0.4.0-beta.0 → 0.4.0-beta.1

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 +103 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -300,6 +300,23 @@ function createSchema() {
300
300
  CREATE INDEX IF NOT EXISTS idx_workflow_runs_task ON workflow_runs(trigger_task_id);
301
301
  CREATE INDEX IF NOT EXISTS idx_workflow_run_nodes_run ON workflow_run_nodes(run_id);
302
302
  CREATE INDEX IF NOT EXISTS idx_workflow_run_nodes_task ON workflow_run_nodes(task_id);
303
+
304
+ CREATE TABLE IF NOT EXISTS session_logs (
305
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
306
+ task_id TEXT NOT NULL,
307
+ session_id TEXT NOT NULL,
308
+ agent_type TEXT,
309
+ branch TEXT,
310
+ status TEXT NOT NULL DEFAULT 'running',
311
+ started_at TEXT NOT NULL,
312
+ completed_at TEXT,
313
+ exit_code INTEGER,
314
+ logs TEXT,
315
+ project_name TEXT
316
+ );
317
+
318
+ CREATE INDEX IF NOT EXISTS idx_session_logs_task ON session_logs(task_id);
319
+ CREATE INDEX IF NOT EXISTS idx_session_logs_session ON session_logs(session_id);
303
320
  `);
304
321
  migrateSchema(d);
305
322
  }
@@ -1648,6 +1665,91 @@ function registerSessionTools(server) {
1648
1665
  }
1649
1666
  }
1650
1667
  );
1668
+ server.tool(
1669
+ "rename_session",
1670
+ "Rename a terminal session. Changes the display name shown in the UI.",
1671
+ {
1672
+ id: V.id.describe("Session ID"),
1673
+ display_name: V.shortText.describe("New display name")
1674
+ },
1675
+ async (args) => {
1676
+ try {
1677
+ await rpcCall("terminal:rename", { id: args.id, displayName: args.display_name });
1678
+ return {
1679
+ content: [{ type: "text", text: `Renamed session ${args.id} to "${args.display_name}"` }]
1680
+ };
1681
+ } catch (err) {
1682
+ return {
1683
+ content: [
1684
+ {
1685
+ type: "text",
1686
+ text: `Error renaming session: ${err instanceof Error ? err.message : err}`
1687
+ }
1688
+ ],
1689
+ isError: true
1690
+ };
1691
+ }
1692
+ }
1693
+ );
1694
+ server.tool(
1695
+ "reorder_sessions",
1696
+ "Reorder terminal sessions in the grid. Provide session IDs in the desired display order.",
1697
+ {
1698
+ session_ids: z4.array(V.id).min(1, "At least one session ID is required").describe("Session IDs in desired order")
1699
+ },
1700
+ async (args) => {
1701
+ try {
1702
+ await rpcCall("terminal:reorder", args.session_ids);
1703
+ return {
1704
+ content: [
1705
+ {
1706
+ type: "text",
1707
+ text: `Reordered ${args.session_ids.length} sessions`
1708
+ }
1709
+ ]
1710
+ };
1711
+ } catch (err) {
1712
+ return {
1713
+ content: [
1714
+ {
1715
+ type: "text",
1716
+ text: `Error reordering sessions: ${err instanceof Error ? err.message : err}`
1717
+ }
1718
+ ],
1719
+ isError: true
1720
+ };
1721
+ }
1722
+ }
1723
+ );
1724
+ server.tool(
1725
+ "read_session_output",
1726
+ "Read terminal output from a running session. Output is stored in a rolling 1000-line buffer with ANSI codes stripped.",
1727
+ {
1728
+ id: V.id.describe("Session ID"),
1729
+ lines: z4.number().int().min(1).max(1e3).optional().describe("Number of lines to read from the end (default: all)")
1730
+ },
1731
+ async (args) => {
1732
+ try {
1733
+ const output = await rpcCall("terminal:readOutput", {
1734
+ id: args.id,
1735
+ lines: args.lines
1736
+ });
1737
+ return {
1738
+ content: [{ type: "text", text: output.join("\n") }]
1739
+ };
1740
+ } catch (err) {
1741
+ return {
1742
+ content: [
1743
+ {
1744
+ type: "text",
1745
+ text: `Error reading session output: ${err instanceof Error ? err.message : err}`
1746
+ }
1747
+ ],
1748
+ isError: true
1749
+ };
1750
+ }
1751
+ }
1752
+ );
1651
1753
  server.tool(
1652
1754
  "write_to_terminal",
1653
1755
  "Send input to a running terminal session. Requires the VibeGrid app to be running.",
@@ -2053,7 +2155,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
2053
2155
  console.error = (...args) => _origError("[mcp:error]", ...args);
2054
2156
  async function main() {
2055
2157
  configManager.init();
2056
- const version = true ? "0.4.0-beta.0" : createRequire(import.meta.url)("../package.json").version;
2158
+ const version = true ? "0.4.0-beta.1" : createRequire(import.meta.url)("../package.json").version;
2057
2159
  const server = createMcpServer(version);
2058
2160
  const transport = new StdioServerTransport();
2059
2161
  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.0",
3
+ "version": "0.4.0-beta.1",
4
4
  "description": "VibeGrid MCP server — task management, git, and workflow tools for AI coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@modelcontextprotocol/sdk": "^1.28.0",
35
35
  "libsql": "^0.5.22",
36
- "pino": "^9.6.0",
36
+ "pino": "^10.3.1",
37
37
  "ws": "^8.18.0",
38
38
  "zod": "^3.23.0"
39
39
  },