@vornrun/mcp 0.3.2 → 0.4.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 (2) hide show
  1. package/dist/index.js +33 -5
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -2410,7 +2410,19 @@ var launchAgentConfigSchema = z5.object({
2410
2410
  prompt: V.prompt.optional(),
2411
2411
  promptDelayMs: z5.number().optional(),
2412
2412
  taskId: V.id.optional(),
2413
- taskFromQueue: z5.boolean().optional()
2413
+ taskFromQueue: z5.boolean().optional(),
2414
+ // Runs the agent in the background and waits for it to finish (required for
2415
+ // typed output). Opens a terminal tab when false/omitted.
2416
+ headless: z5.boolean().optional(),
2417
+ // JSON Schema the agent's final answer must satisfy (headless only). When set,
2418
+ // the engine parses a matching object from the run and exposes its fields as
2419
+ // `{{steps.<slug>.<field>}}` for downstream condition nodes.
2420
+ outputSchema: z5.record(z5.string(), z5.unknown()).optional()
2421
+ }).refine((c) => !c.outputSchema || c.headless === true, {
2422
+ // The engine only parses typed output for headless runs; reject a config that
2423
+ // declares a schema it would silently ignore instead of accepting a lie.
2424
+ message: "outputSchema requires headless: true",
2425
+ path: ["outputSchema"]
2414
2426
  });
2415
2427
  var triggerConfigSchema = z5.union([
2416
2428
  z5.object({
@@ -2433,15 +2445,31 @@ var triggerConfigSchema = z5.union([
2433
2445
  ]);
2434
2446
  var nodeSchema = z5.object({
2435
2447
  id: V.id,
2436
- type: z5.enum(["trigger", "launchAgent"]),
2448
+ // Full node palette — parity with the editor. `config` is a passthrough so
2449
+ // each type carries its own shape (ConditionConfig, ApprovalConfig, etc.).
2450
+ type: z5.enum([
2451
+ "trigger",
2452
+ "launchAgent",
2453
+ "script",
2454
+ "condition",
2455
+ "approval",
2456
+ "createTaskFromItem",
2457
+ "callConnectorAction"
2458
+ ]),
2437
2459
  label: V.shortText,
2460
+ // Referenced by typed step vars as `{{steps.<slug>.<field>}}`. Set one on any
2461
+ // node whose output a later node consumes.
2462
+ slug: V.shortText.optional(),
2438
2463
  config: z5.record(z5.string(), z5.unknown()),
2439
2464
  position: z5.object({ x: z5.number(), y: z5.number() })
2440
2465
  });
2441
2466
  var edgeSchema = z5.object({
2442
2467
  id: V.id,
2443
2468
  source: V.id,
2444
- target: V.id
2469
+ target: V.id,
2470
+ // Which branch of a `condition` node this edge represents. Omit for normal
2471
+ // edges; required to wire both outcomes of a condition.
2472
+ conditionBranch: z5.enum(["true", "false"]).optional()
2445
2473
  });
2446
2474
  function buildGraphFromFlat(trigger, actions) {
2447
2475
  const nodes = [];
@@ -2492,7 +2520,7 @@ function registerWorkflowTools(server) {
2492
2520
  );
2493
2521
  server.tool(
2494
2522
  "create_workflow",
2495
- "Create a new workflow. Accepts either full nodes/edges or a convenience flat format (trigger + actions array).",
2523
+ 'Create a new workflow. Accepts either full nodes/edges (advanced mode \u2014 every node type is supported: trigger, launchAgent, script, condition, approval, createTaskFromItem, callConnectorAction; wire condition outcomes with edge conditionBranch "true"/"false") or a convenience flat format (trigger + actions array). Give a node a slug to reference its output downstream as {{steps.<slug>.<field>}}. A headless launchAgent with an outputSchema returns typed fields for condition nodes.',
2496
2524
  {
2497
2525
  name: V.title.describe("Workflow name"),
2498
2526
  trigger: triggerConfigSchema.optional().describe("Trigger config (convenience mode). Defaults to manual."),
@@ -2775,7 +2803,7 @@ console.warn = (...args) => _origError("[mcp:warn]", ...args);
2775
2803
  console.error = (...args) => _origError("[mcp:error]", ...args);
2776
2804
  async function main() {
2777
2805
  configManager.init();
2778
- const version = true ? "0.3.2" : createRequire(import.meta.url)("../package.json").version;
2806
+ const version = true ? "0.4.0" : createRequire(import.meta.url)("../package.json").version;
2779
2807
  const server = createMcpServer(version);
2780
2808
  const transport = new StdioServerTransport();
2781
2809
  await server.connect(transport);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vornrun/mcp",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "Vorn MCP server — task management, git, and workflow tools for AI coding agents",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -34,14 +34,14 @@
34
34
  "@modelcontextprotocol/sdk": "^1.29.0",
35
35
  "libsql": "^0.5.29",
36
36
  "pino": "^10.3.1",
37
- "ws": "^8.21.0",
37
+ "ws": "^8.21.1",
38
38
  "zod": "^4.4.3"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@vornrun/server": "0.2.0",
42
42
  "@vornrun/shared": "0.2.0",
43
43
  "tsup": "^8.5.1",
44
- "tsx": "^4.22.4",
44
+ "tsx": "^4.23.1",
45
45
  "typescript": "^6.0.3"
46
46
  }
47
47
  }