codex-taskflow 0.1.1 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-runner.d.ts","sourceRoot":"","sources":["../src/codex-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAKN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,MAAM,eAAe,CAAC;AAwBvB,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAEpE;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA+CzF;AAqBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,CAAC,CA4KpB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,CAE3D,CAAC"}
1
+ {"version":3,"file":"codex-runner.d.ts","sourceRoot":"","sources":["../src/codex-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAKN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,MAAM,eAAe,CAAC;AAwBvB,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAEpE;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA+CzF;AAqBD;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,CAAC,CAuLpB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,WAAW,CAE3D,CAAC"}
@@ -158,6 +158,16 @@ export async function runCodexAgentTask(defaultCwd, agents, agentName, task, opt
158
158
  const tools = opts.tools ?? agent.tools;
159
159
  const sandbox = sandboxForTools(tools);
160
160
  void globalThinking; // codex has no thinking-level flag on exec; reserved.
161
+ // The agent.model comes from the shared modelRoles table, which is written in
162
+ // the pi provider format (e.g. "openrouter/deepseek/...", "anthropic/glm-5.2:xhigh"
163
+ // — note the `/` provider prefix and `:thinking` suffix). Those ids are pi's
164
+ // namespacing and Codex does not recognise them ("Model metadata for ... not
165
+ // found"). Codex model ids are flat (e.g. "gpt-5.5", "claude-sonnet-4-6"). So:
166
+ // if the resolved model still looks like a pi-provider path (contains "/"),
167
+ // drop it and let `codex exec` fall back to its own configured default model.
168
+ // A user who wants a specific Codex model can set it directly (no "/") and it
169
+ // will be passed through. Likewise an unresolved {{placeholder}} is dropped.
170
+ const codexModel = model && !model.includes("/") && !/^\{\{.*\}\}$/.test(model) ? model : undefined;
161
171
  // codex exec [PROMPT] --json --skip-git-repo-check -s <sandbox> [-m model] [-C cwd]
162
172
  // The agent's system prompt is prepended to the task as guidance, since
163
173
  // `codex exec` has no separate append-system-prompt flag. We keep it compact.
@@ -165,8 +175,8 @@ export async function runCodexAgentTask(defaultCwd, agents, agentName, task, opt
165
175
  ? `${agent.systemPrompt.trim()}\n\n---\n\nTask: ${task}`
166
176
  : `Task: ${task}`;
167
177
  const args = ["exec", "--json", "--skip-git-repo-check", "-s", sandbox];
168
- if (model)
169
- args.push("-m", model);
178
+ if (codexModel)
179
+ args.push("-m", codexModel);
170
180
  const cwd = opts.cwd ?? defaultCwd;
171
181
  if (cwd)
172
182
  args.push("-C", cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"codex-runner.js","sourceRoot":"","sources":["../src/codex-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-runner.js","sourceRoot":"","sources":["../src/codex-runner.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * - taskflow_list : list saved flows discoverable in this cwd
17
17
  * - taskflow_show : show a saved flow's definition
18
18
  * - taskflow_verify : statically verify a flow (no execution)
19
- * - taskflow_compile : render a flow as a Mermaid diagram + verify report
19
+ * - taskflow_compile : render a flow as a DAG diagram (SVG image) + status line
20
20
  */
21
21
  import { type RpcHandler } from "./jsonrpc.ts";
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AA0H1E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CA+DjH;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA2BvE;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AA+M1E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAyHjH;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA2BvE;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE"}
@@ -16,17 +16,97 @@
16
16
  * - taskflow_list : list saved flows discoverable in this cwd
17
17
  * - taskflow_show : show a saved flow's definition
18
18
  * - taskflow_verify : statically verify a flow (no execution)
19
- * - taskflow_compile : render a flow as a Mermaid diagram + verify report
19
+ * - taskflow_compile : render a flow as a DAG diagram (SVG image) + status line
20
20
  */
21
21
  import { RpcError, RPC, serveStdio } from "./jsonrpc.js";
22
22
  import { codexSubagentRunner } from "../codex-runner.js";
23
- import { discoverAgents, executeTaskflow, getFlow, listFlows, compileTaskflow, verifyTaskflow, desugar, isShorthand, validateTaskflow, } from "taskflow-core";
23
+ import { renderFlowSvg, renderFlowOutline, svgToBase64 } from "./svg.js";
24
+ import { discoverAgents, executeTaskflow, getFlow, listFlows, compileTaskflow, verifyTaskflow, desugar, isShorthand, validateTaskflow, readSubagentSettings, } from "taskflow-core";
24
25
  const PROTOCOL_VERSION = "2025-06-18";
25
- const SERVER_INFO = { name: "pi-taskflow", title: "pi-taskflow", version: "0.0.28" };
26
- /** MCP tools/call content block (text only — sufficient for our outputs). */
26
+ const SERVER_INFO = { name: "taskflow", title: "Taskflow", version: "0.1.3" };
27
+ /**
28
+ * MCP tools/call result with a single text block.
29
+ *
30
+ * IMPORTANT (Codex rendering): the Codex desktop app renders a `text` content
31
+ * block as a fixed grey "plaintext" <pre> box — it does NOT parse markdown or
32
+ * highlight code, wraps on whitespace, and caps the box at ~192px tall with an
33
+ * inner scroll. So text here is written as *plain text*: no ```fences```, no
34
+ * markdown tables, conclusion-first, and near-duplicate lines collapsed. Rich
35
+ * rendering (structuredContent/_meta) is gated to Codex's first-party "Apps"
36
+ * server, so third-party MCP output can't opt into it. See docs/codex-mcp.md.
37
+ */
27
38
  function textContent(text, isError = false) {
28
39
  return { content: [{ type: "text", text }], isError };
29
40
  }
41
+ /** An MCP `image` content block, optionally followed by text blocks. Codex's
42
+ * desktop app renders the image as `<img src="data:…">` (an inline SVG shows as
43
+ * a real diagram) and shows the trailing text as a caption. The CLI/TUI can't
44
+ * render images — it prints a bare `<image content>` placeholder — so the
45
+ * trailing text MUST be self-sufficient there (and for vision-less models). */
46
+ function imageContent(base64, mimeType, texts, isError = false) {
47
+ const content = [{ type: "image", data: base64, mimeType }];
48
+ for (const t of texts)
49
+ if (t)
50
+ content.push({ type: "text", text: t });
51
+ return { content, isError };
52
+ }
53
+ /**
54
+ * Collapse near-identical validation messages so N phases hitting the same rule
55
+ * render as one line with a count instead of N wall-of-text repeats (the exact
56
+ * ugliness this file is fighting). Strips a leading `Phase '<id>': ` / `Phase
57
+ * '<id>' ` prefix, groups by the remaining message, and lists the affected ids.
58
+ */
59
+ function dedupeMessages(msgs) {
60
+ const groups = new Map();
61
+ const order = [];
62
+ for (const raw of msgs) {
63
+ const m = raw.match(/^Phase '([^']+)':?\s+(.*)$/s);
64
+ const key = m ? m[2] : raw;
65
+ const id = m ? m[1] : "";
66
+ if (!groups.has(key)) {
67
+ groups.set(key, []);
68
+ order.push(key);
69
+ }
70
+ if (id)
71
+ groups.get(key).push(id);
72
+ }
73
+ return order.map((key) => {
74
+ const ids = groups.get(key);
75
+ if (ids.length === 0)
76
+ return key;
77
+ if (ids.length === 1)
78
+ return `${key} (phase ${ids[0]})`;
79
+ const shown = ids.slice(0, 4).join(", ");
80
+ const more = ids.length > 4 ? ` +${ids.length - 4} more` : "";
81
+ return `${key} (${ids.length} phases: ${shown}${more})`;
82
+ });
83
+ }
84
+ /**
85
+ * Render verification issues as deduped, conclusion-friendly "Errors:" /
86
+ * "Warnings:" plaintext blocks. `extraErrors`/`extraWarnings` fold in the raw
87
+ * string messages from `validateTaskflow` so structural + quality issues share
88
+ * one deduped view. Shared by taskflow_verify and taskflow_compile's fallback.
89
+ */
90
+ function issueBlocks(issues, extraErrors = [], extraWarnings = []) {
91
+ const toStr = (i) =>
92
+ // verifyTaskflow messages already embed the phase id in prose ("Phase 'x'
93
+ // is a terminal phase…"); only prepend the id for messages that don't, so
94
+ // dedupeMessages can strip one consistent prefix and collapse same-rule hits.
95
+ i.phaseId && !/^Phase '/.test(i.message) ? `Phase '${i.phaseId}': ${i.message}` : i.message;
96
+ const rawErrors = [...extraErrors, ...issues.filter((i) => i.severity === "error").map(toStr)];
97
+ const rawWarnings = [...extraWarnings, ...issues.filter((i) => i.severity === "warning").map(toStr)];
98
+ // Count reflects the true number of issues; the lines below are the *deduped*
99
+ // compact view (N same-rule hits collapse to one line + a phase list).
100
+ const errors = dedupeMessages(rawErrors);
101
+ const warnings = dedupeMessages(rawWarnings);
102
+ const errBlock = errors.length ? `\n\nErrors:\n${errors.map((e) => `- ${e}`).join("\n")}` : "";
103
+ const warnBlock = warnings.length ? `\n\nWarnings:\n${warnings.map((w) => `- ${w}`).join("\n")}` : "";
104
+ return { errorCount: rawErrors.length, warningCount: rawWarnings.length, text: `${errBlock}${warnBlock}` };
105
+ }
106
+ /** Pluralize a count for a compact status line. */
107
+ function count(n, noun) {
108
+ return `${n} ${noun}${n === 1 ? "" : "s"}`;
109
+ }
30
110
  const TOOLS = [
31
111
  {
32
112
  name: "taskflow_run",
@@ -76,7 +156,7 @@ const TOOLS = [
76
156
  {
77
157
  name: "taskflow_compile",
78
158
  title: "Compile a taskflow to a diagram",
79
- description: "Render a flow as a Mermaid flowchart + a static verification report (markdown). No execution. Provide `name` or `define`.",
159
+ description: "Render a flow's DAG as a diagram (an inline SVG image) with issues overlaid (red=error, amber=warning, green=final), plus a compact status line. No execution. Provide `name` or `define`.",
80
160
  inputSchema: {
81
161
  type: "object",
82
162
  additionalProperties: false,
@@ -125,7 +205,12 @@ export function makeToolHandlers(cwd) {
125
205
  const v = validateTaskflow(def);
126
206
  if (!v.ok)
127
207
  return textContent(`Flow is invalid:\n- ${v.errors.join("\n- ")}`, true);
128
- const { agents } = discoverAgents(cwd, "both");
208
+ // Resolve model roles (e.g. {{fast}} -> a real model id) so the built-in
209
+ // agents' placeholder models map to something codex can launch. This is
210
+ // the same lookup the pi adapter does; without it every phase fails with
211
+ // "Model metadata for {{fast}} not found".
212
+ const settings = readSubagentSettings();
213
+ const { agents } = discoverAgents(cwd, "both", settings.modelRoles, settings.taskflow);
129
214
  const deps = {
130
215
  cwd,
131
216
  agents,
@@ -136,8 +221,8 @@ export function makeToolHandlers(cwd) {
136
221
  deps.cacheScopeDefault = "cross-run";
137
222
  const res = await executeTaskflow(state, deps);
138
223
  const header = res.ok ? "✓ taskflow complete" : "✗ taskflow did not fully succeed";
139
- const usage = res.totalUsage;
140
- const usageLine = `\n\n— usage: ${usage.turns} turns, in ${usage.input}, out ${usage.output}`;
224
+ const u = res.totalUsage;
225
+ const usageLine = `\n\n— ${u.turns} turns · in ${u.input} · out ${u.output} tokens`;
141
226
  return textContent(`${header}\n\n${res.finalOutput}${usageLine}`, !res.ok);
142
227
  },
143
228
  taskflow_list: async () => {
@@ -152,30 +237,84 @@ export function makeToolHandlers(cwd) {
152
237
  const saved = getFlow(cwd, name);
153
238
  if (!saved)
154
239
  return textContent(`No saved flow named "${name}".`, true);
155
- return textContent("```json\n" + JSON.stringify(saved.def, null, 2) + "\n```");
240
+ // No ```json``` fence: Codex shows text blocks as raw plaintext, so a fence
241
+ // would render as literal backticks. The JSON is already monospaced there.
242
+ return textContent(JSON.stringify(saved.def, null, 2));
156
243
  },
157
244
  taskflow_verify: async (args) => {
158
245
  const def = resolveFlow(cwd, args);
159
- // Two layers: validateTaskflow catches structural errors (cycles, missing
160
- // deps, undefined refs); verifyTaskflow adds the deeper static-quality
161
- // issues. Combine both so the tool matches the `/tf verify` behavior.
162
246
  const val = validateTaskflow(def);
163
- const result = verifyTaskflow(def);
164
- const errors = result.issues.filter((i) => i.severity === "error");
165
- const warnings = result.issues.filter((i) => i.severity === "warning");
166
- const passed = val.ok && result.ok && errors.length === 0;
167
- const ok = passed ? "✓ verification PASSED" : "✗ verification FAILED";
168
- const fmt = (i) => `- ${i.category}${i.phaseId ? ` [${i.phaseId}]` : ""}: ${i.message}`;
169
- const valErrs = val.errors.length ? `\n\nErrors:\n- ${val.errors.join("\n- ")}` : "";
170
- const errs = errors.length ? `${valErrs ? "" : "\n\nErrors:"}\n${errors.map(fmt).join("\n")}` : "";
171
- const allWarn = [...val.warnings.map((w) => `- ${w}`), ...warnings.map(fmt)];
172
- const warns = allWarn.length ? `\n\nWarnings:\n${allWarn.join("\n")}` : "";
173
- return textContent(`${ok}${valErrs}${errs}${warns}`, !passed);
247
+ // verifyTaskflow iterates flow.phases and throws if it isn't an array
248
+ // (e.g. a missing `phases`). Only skip it in that unsafe case; otherwise
249
+ // run it so its static-quality warnings (e.g. terminal-not-final) still
250
+ // surface alongside validateTaskflow's structural errors.
251
+ const phasesIterable = Array.isArray(def.phases);
252
+ const result = phasesIterable
253
+ ? verifyTaskflow(def)
254
+ : { ok: false, issues: [] };
255
+ const { errorCount, warningCount, text } = issueBlocks(result.issues, val.errors, val.warnings);
256
+ const passed = val.ok && result.ok && errorCount === 0;
257
+ // Conclusion-first (the plaintext box is short + scrolls): verdict + counts
258
+ // on line 1, deduped detail below.
259
+ const head = passed
260
+ ? warningCount
261
+ ? `✓ verification PASSED — ${count(warningCount, "warning")}`
262
+ : "✓ verification PASSED"
263
+ : `✗ verification FAILED — ${count(errorCount, "error")}, ${count(warningCount, "warning")}`;
264
+ return textContent(`${head}${text}`, !passed);
174
265
  },
175
266
  taskflow_compile: async (args) => {
176
267
  const def = resolveFlow(cwd, args);
268
+ const val = validateTaskflow(def);
269
+ // compileTaskflow / verifyTaskflow / renderFlowSvg all assume phases is an
270
+ // array of objects that each have a string id (they iterate it and index
271
+ // id.replace(...)). A hard-malformed def (non-array phases, a phase missing
272
+ // its id) would throw, so when the shape isn't renderable we return the
273
+ // structured validation errors as text instead of rendering.
274
+ const phases = def.phases;
275
+ const renderable = Array.isArray(phases) && phases.every((p) => p != null && typeof p.id === "string");
276
+ if (!renderable) {
277
+ const { errorCount, warningCount, text } = issueBlocks([], val.errors, val.warnings);
278
+ const caption = `${def.name ?? "taskflow"} — ${count(errorCount, "error")} · ${count(warningCount, "warning")} · ✗ FAIL`;
279
+ return textContent(`${caption}${text}`, true);
280
+ }
281
+ // Merge structural validation into the compile report. compileTaskflow's
282
+ // own verification.ok is true even for a structurally-invalid (but
283
+ // renderable) flow, so a validate-clean check is what stops a false ✓ PASS.
284
+ // We still render the diagram + outline so such a flow can be inspected
285
+ // visually; truncate coerces non-string fields so the renderer won't throw.
177
286
  const result = compileTaskflow(def);
178
- return textContent(result.markdown, !result.verification.ok);
287
+ const v = result.verification;
288
+ const { errorCount, warningCount, text } = issueBlocks(v.issues, val.errors, val.warnings);
289
+ const passed = val.ok && v.ok && errorCount === 0;
290
+ const status = passed ? "✓ PASS" : "✗ FAIL";
291
+ const caption = `${def.name ?? "taskflow"} — ${count(def.phases?.length ?? 0, "phase")} · ${count(errorCount, "error")} · ${count(warningCount, "warning")} · ${status}`;
292
+ // A text outline that stands on its own — the CLI/TUI can't render images
293
+ // (it shows a bare `<image content>` placeholder), and a vision-less model
294
+ // would otherwise see nothing. Includes the layered DAG + deduped issues.
295
+ const outline = renderFlowOutline(def, v);
296
+ const textReport = `${caption}\n\n${outline}${text}`;
297
+ // Fold validation errors into the issue set the SVG colors by, so node
298
+ // coloring matches the text report (a phase with only a validation error
299
+ // still shows red). Validation messages start with `Phase '<id>':`.
300
+ const mergedVerification = {
301
+ ...v,
302
+ ok: passed,
303
+ issues: [
304
+ ...v.issues,
305
+ ...val.errors.map((message) => {
306
+ const m = /^Phase '([^']+)'/.exec(message);
307
+ return { phaseId: m?.[1], message, severity: "error", category: "ref-integrity" };
308
+ }),
309
+ ],
310
+ };
311
+ // Desktop app: the SVG image renders as a real diagram; the outline rides
312
+ // along as its caption/fallback. Oversized graphs skip the image and rely
313
+ // on the text report alone.
314
+ const svg = renderFlowSvg(def, mergedVerification);
315
+ if (svg)
316
+ return imageContent(svgToBase64(svg), "image/svg+xml", [textReport], !passed);
317
+ return textContent(textReport, !passed);
179
318
  },
180
319
  };
181
320
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Render a taskflow DAG for the Codex hosts, in two forms:
3
+ *
4
+ * - `renderFlowSvg` — a self-contained SVG "card" for the Codex **desktop
5
+ * app**, which renders an MCP `image` content block
6
+ * as `<img src="data:…">` in Chromium (an inline SVG
7
+ * data URI shows as an actual diagram).
8
+ * - `renderFlowOutline` — a compact monospace ASCII outline for the Codex
9
+ * **CLI/TUI**, which cannot render images: the Rust
10
+ * binary substitutes a bare `<image content>`
11
+ * placeholder for image blocks, so a picture is
12
+ * useless there (and a vision-less model would see
13
+ * only that placeholder). The outline is plain text
14
+ * that reads in the terminal AND feeds the model.
15
+ *
16
+ * We can't tell the two hosts apart from inside the server (every Codex
17
+ * frontend connects with the same MCP client id, `codex-mcp-client`), so
18
+ * `taskflow_compile` returns BOTH blocks: the desktop app shows the image and
19
+ * ignores the trailing text, while the CLI/TUI shows the text and renders the
20
+ * image as a harmless placeholder. One payload, correct on every host.
21
+ *
22
+ * This is host presentation, so it lives in the codex adapter — core keeps its
23
+ * portable Mermaid/markdown artifact (`compileTaskflow`) and its zero-runtime
24
+ * -deps guarantee. Both renderers reuse core's exported `topoLayers` (layout)
25
+ * and `dependenciesOf` (edges) so they share the engine's exact DAG semantics.
26
+ * Pure functions, no I/O.
27
+ */
28
+ import { type Taskflow, type VerificationResult } from "taskflow-core";
29
+ /** Above this phase count the card stops being legible once scaled — the caller
30
+ * should fall back to the text report instead of embedding a postage stamp. */
31
+ export declare const SVG_PHASE_LIMIT = 60;
32
+ /**
33
+ * Render `flow` (annotated with `verification`) as an SVG string. Layered
34
+ * top-down using core's `topoLayers`; edges follow `dependenciesOf`. Returns a
35
+ * complete `<svg …>…</svg>` document (no XML prolog — it's inlined as a data
36
+ * URI). Returns `null` when the flow is too large to render legibly.
37
+ */
38
+ export declare function renderFlowSvg(flow: Taskflow, verification: VerificationResult): string | null;
39
+ /** Base64 of an SVG string, for an MCP `image` content block (`image/svg+xml`). */
40
+ export declare function svgToBase64(svg: string): string;
41
+ /**
42
+ * Render the DAG as a compact monospace outline: one line per phase, grouped by
43
+ * topological layer (phases in the same layer run concurrently), each showing
44
+ * its id, type tag, agent, and upstream deps. This is the CLI/TUI counterpart
45
+ * to `renderFlowSvg` — it degrades to readable text where images can't render,
46
+ * and (unlike an image placeholder) still tells a vision-less model the shape
47
+ * of the graph. Deterministic; issue markers mirror the SVG overlay.
48
+ */
49
+ export declare function renderFlowOutline(flow: Taskflow, verification: VerificationResult): string;
50
+ //# sourceMappingURL=svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/mcp/svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAMN,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAEvB,MAAM,eAAe,CAAC;AAmBvB;gFACgF;AAChF,eAAO,MAAM,eAAe,KAAK,CAAC;AAqHlC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CA2H7F;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAYD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,GAAG,MAAM,CA0B1F"}
@@ -0,0 +1,310 @@
1
+ /**
2
+ * Render a taskflow DAG for the Codex hosts, in two forms:
3
+ *
4
+ * - `renderFlowSvg` — a self-contained SVG "card" for the Codex **desktop
5
+ * app**, which renders an MCP `image` content block
6
+ * as `<img src="data:…">` in Chromium (an inline SVG
7
+ * data URI shows as an actual diagram).
8
+ * - `renderFlowOutline` — a compact monospace ASCII outline for the Codex
9
+ * **CLI/TUI**, which cannot render images: the Rust
10
+ * binary substitutes a bare `<image content>`
11
+ * placeholder for image blocks, so a picture is
12
+ * useless there (and a vision-less model would see
13
+ * only that placeholder). The outline is plain text
14
+ * that reads in the terminal AND feeds the model.
15
+ *
16
+ * We can't tell the two hosts apart from inside the server (every Codex
17
+ * frontend connects with the same MCP client id, `codex-mcp-client`), so
18
+ * `taskflow_compile` returns BOTH blocks: the desktop app shows the image and
19
+ * ignores the trailing text, while the CLI/TUI shows the text and renders the
20
+ * image as a harmless placeholder. One payload, correct on every host.
21
+ *
22
+ * This is host presentation, so it lives in the codex adapter — core keeps its
23
+ * portable Mermaid/markdown artifact (`compileTaskflow`) and its zero-runtime
24
+ * -deps guarantee. Both renderers reuse core's exported `topoLayers` (layout)
25
+ * and `dependenciesOf` (edges) so they share the engine's exact DAG semantics.
26
+ * Pure functions, no I/O.
27
+ */
28
+ import { dependenciesOf, topoLayers, LOOP_DEFAULT_MAX_ITERATIONS, TOURNAMENT_DEFAULT_VARIANTS, } from "taskflow-core";
29
+ // ---------------------------------------------------------------------------
30
+ // Layout constants (px). Tuned so a small flow (3–8 phases) is legible even
31
+ // after Codex scales the card down to its ~192px image height cap.
32
+ // ---------------------------------------------------------------------------
33
+ const FONT = 12;
34
+ const SUB_FONT = 10.5;
35
+ const CHAR_W = 6.6; // ~0.55em at 12px in the monospace stack below
36
+ const LINE_H = 15;
37
+ const PAD_X = 12;
38
+ const PAD_Y = 9;
39
+ const H_GAP = 26; // horizontal gap between sibling nodes in a layer
40
+ const V_GAP = 38; // vertical gap between layers
41
+ const MARGIN = 18;
42
+ const MIN_NODE_W = 96;
43
+ const MAX_LABEL = 26; // truncate long ids/agents so nodes stay compact
44
+ /** Above this phase count the card stops being legible once scaled — the caller
45
+ * should fall back to the text report instead of embedding a postage stamp. */
46
+ export const SVG_PHASE_LIMIT = 60;
47
+ // ---------------------------------------------------------------------------
48
+ // Palette — baked in (an <img> data URI is fully isolated from host CSS, so we
49
+ // can't read Codex theme tokens). A dark card reads well against Codex's dark
50
+ // chat surface; colors mirror the Mermaid overlay in core's compile.ts.
51
+ // ---------------------------------------------------------------------------
52
+ const C = {
53
+ panel: "#16181d",
54
+ panelStroke: "#2a2d34",
55
+ node: "#21242c",
56
+ nodeStroke: "#3a3f4b",
57
+ text: "#e6e8ec",
58
+ sub: "#9aa0ab",
59
+ edge: "#4b5563",
60
+ errFill: "#3b0d0d",
61
+ errStroke: "#ef4444",
62
+ errText: "#fecaca",
63
+ warnFill: "#3a2e05",
64
+ warnStroke: "#f59e0b",
65
+ warnText: "#fde68a",
66
+ finalStroke: "#43d9ad",
67
+ };
68
+ // ---------------------------------------------------------------------------
69
+ // Helpers
70
+ // ---------------------------------------------------------------------------
71
+ function xml(text) {
72
+ return text
73
+ .replace(/&/g, "&amp;")
74
+ .replace(/</g, "&lt;")
75
+ .replace(/>/g, "&gt;")
76
+ .replace(/"/g, "&quot;")
77
+ .replace(/'/g, "&#39;");
78
+ }
79
+ function truncate(text, max = MAX_LABEL) {
80
+ // Defensive: callers may pass a non-string field (e.g. a malformed `over` /
81
+ // `use` that is an array or object). Coerce so the renderer can never throw
82
+ // — the MCP tools validate first, but this keeps the pure renderer total.
83
+ const s = typeof text === "string" ? text : text == null ? "" : String(text);
84
+ const t = s.replace(/\s+/g, " ").trim();
85
+ return t.length > max ? `${t.slice(0, max - 1)}…` : t;
86
+ }
87
+ /** Compact one-glyph-plus-count type tag (a small-render echo of compile.ts). */
88
+ function typeTag(p) {
89
+ switch (p.type) {
90
+ case "parallel":
91
+ return `▦ parallel ×${p.branches?.length ?? 0}`;
92
+ case "map":
93
+ return `⇉ map · ${truncate(p.over ?? "?", 14)}`;
94
+ case "gate":
95
+ return p.eval?.length ? `◇ gate +${p.eval.length}` : "◇ gate";
96
+ case "reduce":
97
+ return `▽ reduce ←${p.from?.length ?? 0}`;
98
+ case "approval":
99
+ return "⏸ approval";
100
+ case "flow":
101
+ return p.use ? `⊞ ${truncate(p.use, 16)}` : "⊞ flow";
102
+ case "loop":
103
+ return `↻ loop ≤${p.maxIterations ?? LOOP_DEFAULT_MAX_ITERATIONS}`;
104
+ case "tournament":
105
+ return `🏆 ×${p.variants ?? (p.branches?.length || TOURNAMENT_DEFAULT_VARIANTS)}`;
106
+ default:
107
+ return "▸ agent";
108
+ }
109
+ }
110
+ function nodeLines(p) {
111
+ return {
112
+ title: `${truncate(p.id)}${p.final ? " ★" : ""}`,
113
+ tag: typeTag(p),
114
+ agent: p.agent ? `@${truncate(p.agent, 20)}` : undefined,
115
+ };
116
+ }
117
+ function nodeWidth(l) {
118
+ const longest = Math.max(l.title.length, l.tag.length, l.agent?.length ?? 0);
119
+ return Math.max(MIN_NODE_W, Math.round(longest * CHAR_W) + PAD_X * 2);
120
+ }
121
+ function nodeHeight(l) {
122
+ const rows = 2 + (l.agent ? 1 : 0);
123
+ return rows * LINE_H + PAD_Y * 2;
124
+ }
125
+ /** Worst severity per phase, so a node paints red (error) over amber (warning). */
126
+ function severityByPhase(issues) {
127
+ const m = new Map();
128
+ for (const i of issues) {
129
+ if (!i.phaseId)
130
+ continue;
131
+ if (i.severity === "error" || !m.has(i.phaseId))
132
+ m.set(i.phaseId, i.severity);
133
+ }
134
+ return m;
135
+ }
136
+ // ---------------------------------------------------------------------------
137
+ // Renderer
138
+ // ---------------------------------------------------------------------------
139
+ /**
140
+ * Render `flow` (annotated with `verification`) as an SVG string. Layered
141
+ * top-down using core's `topoLayers`; edges follow `dependenciesOf`. Returns a
142
+ * complete `<svg …>…</svg>` document (no XML prolog — it's inlined as a data
143
+ * URI). Returns `null` when the flow is too large to render legibly.
144
+ */
145
+ export function renderFlowSvg(flow, verification) {
146
+ // Total renderer: tolerate a malformed non-array `phases` (raw JSON can bypass
147
+ // schema validation) by coercing to an empty list rather than throwing.
148
+ const phases = (Array.isArray(flow.phases) ? flow.phases : []).filter((p) => !!p && typeof p === "object");
149
+ if (phases.length === 0 || phases.length > SVG_PHASE_LIMIT)
150
+ return null;
151
+ const layers = topoLayers(phases);
152
+ // Any phase not placed by topoLayers (e.g. trapped in a cycle) gets its own
153
+ // trailing layer so the picture never silently drops a node.
154
+ const placed = new Set(layers.flat().map((p) => p.id));
155
+ const orphans = phases.filter((p) => !placed.has(p.id));
156
+ if (orphans.length)
157
+ layers.push(orphans);
158
+ const sev = severityByPhase(verification.issues);
159
+ const rects = new Map();
160
+ // First pass: size every node and measure each layer's total width.
161
+ const linesById = new Map();
162
+ const sizeById = new Map();
163
+ const layerWidths = [];
164
+ const layerHeights = [];
165
+ for (const layer of layers) {
166
+ let w = 0;
167
+ let h = 0;
168
+ layer.forEach((p, i) => {
169
+ const l = nodeLines(p);
170
+ linesById.set(p.id, l);
171
+ const nw = nodeWidth(l);
172
+ const nh = nodeHeight(l);
173
+ sizeById.set(p.id, { w: nw, h: nh });
174
+ w += nw + (i > 0 ? H_GAP : 0);
175
+ h = Math.max(h, nh);
176
+ });
177
+ layerWidths.push(w);
178
+ layerHeights.push(h);
179
+ }
180
+ const contentW = Math.max(...layerWidths, MIN_NODE_W);
181
+ const canvasW = contentW + MARGIN * 2;
182
+ // Second pass: assign positions (each layer centered within contentW).
183
+ let y = MARGIN;
184
+ layers.forEach((layer, li) => {
185
+ let x = MARGIN + (contentW - layerWidths[li]) / 2;
186
+ for (const p of layer) {
187
+ const s = sizeById.get(p.id);
188
+ rects.set(p.id, { x, y, w: s.w, h: s.h, cx: x + s.w / 2 });
189
+ x += s.w + H_GAP;
190
+ }
191
+ y += layerHeights[li] + V_GAP;
192
+ });
193
+ const canvasH = y - V_GAP + MARGIN;
194
+ // Edges — draw first so nodes paint on top.
195
+ const edgeSvg = [];
196
+ const known = new Set(phases.map((p) => p.id));
197
+ for (const p of phases) {
198
+ const to = rects.get(p.id);
199
+ if (!to)
200
+ continue;
201
+ for (const d of dependenciesOf(p)) {
202
+ if (!known.has(d))
203
+ continue;
204
+ const from = rects.get(d);
205
+ if (!from)
206
+ continue;
207
+ const x1 = from.cx;
208
+ const y1 = from.y + from.h;
209
+ const x2 = to.cx;
210
+ const y2 = to.y;
211
+ const my = (y1 + y2) / 2;
212
+ const dotted = p.join === "any" ? ' stroke-dasharray="4 3"' : "";
213
+ edgeSvg.push(`<path d="M${x1.toFixed(1)} ${y1.toFixed(1)} C ${x1.toFixed(1)} ${my.toFixed(1)}, ${x2.toFixed(1)} ${my.toFixed(1)}, ${x2.toFixed(1)} ${(y2 - 6).toFixed(1)}" fill="none" stroke="${C.edge}" stroke-width="1.4"${dotted} marker-end="url(#tf-arrow)"/>`);
214
+ }
215
+ }
216
+ // Nodes.
217
+ const nodeSvg = [];
218
+ for (const p of phases) {
219
+ const r = rects.get(p.id);
220
+ if (!r)
221
+ continue;
222
+ const l = linesById.get(p.id);
223
+ const s = sev.get(p.id);
224
+ let fill = C.node;
225
+ let stroke = C.nodeStroke;
226
+ let strokeW = 1.2;
227
+ let titleColor = C.text;
228
+ if (s === "error") {
229
+ fill = C.errFill;
230
+ stroke = C.errStroke;
231
+ strokeW = 2;
232
+ titleColor = C.errText;
233
+ }
234
+ else if (s === "warning") {
235
+ fill = C.warnFill;
236
+ stroke = C.warnStroke;
237
+ strokeW = 2;
238
+ titleColor = C.warnText;
239
+ }
240
+ else if (p.final) {
241
+ stroke = C.finalStroke;
242
+ strokeW = 2;
243
+ }
244
+ const tx = r.x + PAD_X;
245
+ let ty = r.y + PAD_Y + FONT;
246
+ const parts = [`<rect x="${r.x}" y="${r.y}" width="${r.w}" height="${r.h}" rx="8" fill="${fill}" stroke="${stroke}" stroke-width="${strokeW}"/>`];
247
+ parts.push(`<text x="${tx}" y="${ty.toFixed(1)}" font-size="${FONT}" font-weight="600" fill="${titleColor}">${xml(l.title)}</text>`);
248
+ ty += LINE_H;
249
+ parts.push(`<text x="${tx}" y="${ty.toFixed(1)}" font-size="${SUB_FONT}" fill="${C.sub}">${xml(l.tag)}</text>`);
250
+ if (l.agent) {
251
+ ty += LINE_H;
252
+ parts.push(`<text x="${tx}" y="${ty.toFixed(1)}" font-size="${SUB_FONT}" fill="${C.sub}">${xml(l.agent)}</text>`);
253
+ }
254
+ nodeSvg.push(parts.join(""));
255
+ }
256
+ return [
257
+ `<svg xmlns="http://www.w3.org/2000/svg" width="${canvasW}" height="${canvasH}" viewBox="0 0 ${canvasW} ${canvasH}" font-family="ui-monospace, SFMono-Regular, Menlo, monospace">`,
258
+ `<defs><marker id="tf-arrow" viewBox="0 0 8 8" refX="6" refY="4" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M0 0 L8 4 L0 8 z" fill="${C.edge}"/></marker></defs>`,
259
+ `<rect x="0.5" y="0.5" width="${canvasW - 1}" height="${canvasH - 1}" rx="12" fill="${C.panel}" stroke="${C.panelStroke}"/>`,
260
+ ...edgeSvg,
261
+ ...nodeSvg,
262
+ `</svg>`,
263
+ ].join("");
264
+ }
265
+ /** Base64 of an SVG string, for an MCP `image` content block (`image/svg+xml`). */
266
+ export function svgToBase64(svg) {
267
+ return Buffer.from(svg, "utf8").toString("base64");
268
+ }
269
+ // ---------------------------------------------------------------------------
270
+ // Text outline (Codex CLI/TUI + vision-less models)
271
+ // ---------------------------------------------------------------------------
272
+ /** Worst severity marker for a phase, as a leading glyph in the outline. */
273
+ function sevMark(sev, id) {
274
+ const s = sev.get(id);
275
+ return s === "error" ? "✗ " : s === "warning" ? "! " : "";
276
+ }
277
+ /**
278
+ * Render the DAG as a compact monospace outline: one line per phase, grouped by
279
+ * topological layer (phases in the same layer run concurrently), each showing
280
+ * its id, type tag, agent, and upstream deps. This is the CLI/TUI counterpart
281
+ * to `renderFlowSvg` — it degrades to readable text where images can't render,
282
+ * and (unlike an image placeholder) still tells a vision-less model the shape
283
+ * of the graph. Deterministic; issue markers mirror the SVG overlay.
284
+ */
285
+ export function renderFlowOutline(flow, verification) {
286
+ const phases = (Array.isArray(flow.phases) ? flow.phases : []).filter((p) => !!p && typeof p === "object");
287
+ if (phases.length === 0)
288
+ return "(empty flow — no phases)";
289
+ const sev = severityByPhase(verification.issues);
290
+ const layers = topoLayers(phases);
291
+ const placed = new Set(layers.flat().map((p) => p.id));
292
+ const orphans = phases.filter((p) => !placed.has(p.id));
293
+ if (orphans.length)
294
+ layers.push(orphans); // cycle-trapped nodes still listed
295
+ const lines = [];
296
+ layers.forEach((layer, i) => {
297
+ const tag = layer.length > 1 ? ` (${layer.length} in parallel)` : "";
298
+ lines.push(`Layer ${i + 1}${tag}:`);
299
+ for (const p of layer) {
300
+ const deps = dependenciesOf(p).filter((d) => d !== p.id);
301
+ const arrow = p.join === "any" ? " ↯ any of " : " ← ";
302
+ const depStr = deps.length ? `${arrow}${deps.join(", ")}` : "";
303
+ const agent = p.agent ? ` @${p.agent}` : "";
304
+ const star = p.final ? " ★" : "";
305
+ lines.push(` ${sevMark(sev, p.id)}${p.id}${star} [${typeTag(p)}]${agent}${depStr}`);
306
+ }
307
+ });
308
+ return lines.join("\n");
309
+ }
310
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/mcp/svg.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "codex-taskflow",
3
- "version": "0.1.1",
4
- "description": "Run pi-taskflow on OpenAI Codex: a Codex subagent runner plus an MCP server that exposes taskflow_* tools to Codex users.",
3
+ "version": "0.1.3",
4
+ "description": "Run taskflow on OpenAI Codex: a Codex subagent runner plus an MCP server (and a plug-and-play Codex plugin) that exposes the taskflow_* tools to Codex users.",
5
5
  "keywords": [
6
6
  "codex",
7
7
  "codex-cli",
@@ -13,16 +13,19 @@
13
13
  ],
14
14
  "license": "MIT",
15
15
  "author": "heggria <bshengtao@gmail.com>",
16
- "homepage": "https://github.com/heggria/pi-taskflow#readme",
16
+ "homepage": "https://github.com/heggria/taskflow#readme",
17
17
  "bugs": {
18
- "url": "https://github.com/heggria/pi-taskflow/issues"
18
+ "url": "https://github.com/heggria/taskflow/issues"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",
22
- "url": "git+https://github.com/heggria/pi-taskflow.git",
22
+ "url": "git+https://github.com/heggria/taskflow.git",
23
23
  "directory": "packages/codex-taskflow"
24
24
  },
25
25
  "type": "module",
26
+ "engines": {
27
+ "node": ">=22.19.0"
28
+ },
26
29
  "main": "./dist/codex-runner.js",
27
30
  "types": "./dist/codex-runner.d.ts",
28
31
  "bin": {
@@ -39,6 +42,6 @@
39
42
  "access": "public"
40
43
  },
41
44
  "dependencies": {
42
- "taskflow-core": "0.1.1"
45
+ "taskflow-core": "0.1.3"
43
46
  }
44
47
  }