grok-taskflow 0.2.8 → 0.2.10
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/README.md +53 -12
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img src="https://raw.githubusercontent.com/heggria/taskflow/main/assets/hero.png" alt="taskflow: compile, verify, and run multi-agent DAGs across
|
|
3
|
+
<img src="https://raw.githubusercontent.com/heggria/taskflow/main/assets/hero.png" alt="taskflow: compile, verify, and run multi-agent DAGs across six coding-agent hosts" width="100%">
|
|
4
4
|
|
|
5
5
|
<br />
|
|
6
6
|
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
[](https://github.com/heggria/taskflow/actions/workflows/ci.yml)
|
|
9
9
|
[](https://nodejs.org)
|
|
10
10
|
[](https://github.com/heggria/taskflow/blob/main/LICENSE)
|
|
11
|
-
[](#install-on-your-host)
|
|
12
12
|
[](#built-to-survive-real-work)
|
|
13
13
|
|
|
14
14
|
**English** · [简体中文](https://github.com/heggria/taskflow/blob/main/README.zh-CN.md)
|
|
15
15
|
|
|
16
|
-
[Install](#install-on-your-host) · [Quickstart](#60-second-start) · [What's new in 0.2.
|
|
16
|
+
[Install](#install-on-your-host) · [Quickstart](#60-second-start) · [What's new in 0.2.10](#0210-organized-portable-saved-flows) · [0.2 compiler turn](#02-is-the-compiler-turn) · [Docs](https://heggria.github.io/taskflow/en/docs) · [Examples](https://github.com/heggria/taskflow/blob/main/examples)
|
|
17
17
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
It runs on the coding agent you already use:
|
|
27
27
|
|
|
28
|
-
**Pi · Codex · Claude Code · OpenCode · Grok Build**
|
|
28
|
+
**Pi · Codex · Claude Code · OpenCode · Grok Build · Hermes Agent**
|
|
29
29
|
|
|
30
30
|
```text
|
|
31
31
|
JSON or .tf.ts
|
|
@@ -54,7 +54,7 @@ Built-in subagent tools are excellent for one turn. The moment the work branches
|
|
|
54
54
|
| **Intermediate output** | Floods the host context | **Stays isolated in the runtime** |
|
|
55
55
|
| **Failure** | Start over or reconstruct state | **Resume from persisted phase state** |
|
|
56
56
|
| **Changed input** | Re-run broadly | **Explain staleness and re-run the affected frontier** |
|
|
57
|
-
| **Portability** | Coupled to one agent | **One JSON contract across
|
|
57
|
+
| **Portability** | Coupled to one agent | **One JSON contract across six hosts** |
|
|
58
58
|
|
|
59
59
|
The trade is deliberate: less arbitrary orchestration code, more **verifiability, observability, recovery, and reuse**.
|
|
60
60
|
|
|
@@ -131,7 +131,23 @@ Save it as `.pi/taskflows/audit-api.json`, then run:
|
|
|
131
131
|
/tf:audit-api dir=src/api
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
On Codex, Claude Code, OpenCode,
|
|
134
|
+
On Codex, Claude Code, OpenCode, Grok Build, and Hermes Agent, run the same saved definition by name through `taskflow_run`. For long DAGs, use `mode: "background"`, then manage the durable run with `taskflow_runs` (`list` / `status` / `wait` / `cancel`); list output reports active concurrency and can filter `running` or `terminal` runs.
|
|
135
|
+
|
|
136
|
+
Large projects may organize saved definitions recursively below `.pi/taskflows/flows/`, for example `.pi/taskflows/flows/release/audit-api.json`. Legacy `.pi/taskflows/*.json` files remain discoverable and win same-scope name collisions; nested duplicates use locale-independent Unicode-scalar path order. Saving an already-discovered nested flow updates that file and its adjacent metadata in place; new flows still use the legacy top-level location. Discovery uses one shared user/project budget and fails closed if it exceeds 1,000 flows, 10,000 visited entries, 512 directories, 8 MiB of definition data, 1 MiB per definition, or 16 levels. It rejects symlinks below the trusted storage boundary through definition leaves and skips dot paths, metadata (`*.meta.json`), and compiled IR (`*.flowir.json`). The configured agent-directory boundary itself may be a symlink for compatible home-directory relocation. New-flow saves enforce the same storage-boundary policy and revalidate the physical target directory inside the write lock.
|
|
137
|
+
|
|
138
|
+
A file-backed flow can opt script phases into definition-relative execution:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"name": "release",
|
|
143
|
+
"scriptCwd": "flow",
|
|
144
|
+
"phases": [
|
|
145
|
+
{ "id": "prepare", "type": "script", "run": ["./scripts/prepare.sh"], "final": true }
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Here `./scripts/prepare.sh` resolves from the directory containing the saved flow or `defineFile`. The default remains `"invocation"`, and an explicit phase `cwd` still takes precedence. Inline definitions have no trusted file source and therefore fail closed if they request `scriptCwd: "flow"`. If execution inherits a cwd-bridge boundary, the resolved flow source directory must remain inside that boundary.
|
|
135
151
|
|
|
136
152
|
[Follow the full quickstart →](https://heggria.github.io/taskflow/en/docs/getting-started)
|
|
137
153
|
|
|
@@ -152,6 +168,18 @@ This is real output from a Pi run—not a mock dashboard:
|
|
|
152
168
|
|
|
153
169
|
The layout **is** the DAG. Parallel rails expose concurrency; long edges expose dependencies; the gate explains why downstream work stopped. No separate control plane is required to understand the run.
|
|
154
170
|
|
|
171
|
+
## 0.2.10: organized, portable saved flows
|
|
172
|
+
|
|
173
|
+
Saved flows can now be organized below the bounded `.pi/taskflows/flows/**` convention while legacy top-level flows keep their existing precedence and behavior. A file-backed flow may opt into `scriptCwd: "flow"`, making adjacent scripts, templates, and fixtures portable as one reviewable directory bundle.
|
|
174
|
+
|
|
175
|
+
Discovery, provenance, and persistence remain fail-closed: recursion has shared file/entry/directory/byte/depth budgets, symlinked descendants are excluded, source identity survives foreground/background/resume/subflow paths, and nested definition/sidecar writes revalidate the physical parent through atomic promotion. [Full 0.2.10 notes →](https://github.com/heggria/taskflow/blob/main/CHANGELOG.md#0210--2026-08-12)
|
|
176
|
+
|
|
177
|
+
## 0.2.9: Hermes Agent + verify parity
|
|
178
|
+
|
|
179
|
+
Taskflow now ships on **Hermes Agent** as `hermes-taskflow`, bringing the same MCP control plane to a sixth host. Hermes children run with an ephemeral home, explicit toolsets, cwd-confined local reads, provider-only credential material, and an explicit opt-in for mutating `--yolo` phases.
|
|
180
|
+
|
|
181
|
+
Pi's advertised `/tf verify <name>` command now matches the tool surface, including saved flow names containing spaces. Project discovery also stops at canonical home/temp boundaries, so ambient `/tmp/.pi` state cannot become a project by accident. [Full 0.2.9 notes →](https://github.com/heggria/taskflow/blob/main/CHANGELOG.md#029--2026-08-11)
|
|
182
|
+
|
|
155
183
|
## 0.2.8: review, then confirm
|
|
156
184
|
|
|
157
185
|
Pi approvals now separate **selection** from **commit**. Choose Reject, Edit guidance, or Approve with `R` / `E` / `A`, arrows, or Tab; press Enter to confirm. The safe default is Reject, and Escape or Ctrl-C still rejects immediately.
|
|
@@ -349,7 +377,7 @@ claude plugin install claude-taskflow@taskflow
|
|
|
349
377
|
|
|
350
378
|
```bash
|
|
351
379
|
opencode mcp add taskflow -- \
|
|
352
|
-
npx -y -p opencode-taskflow@0.2.
|
|
380
|
+
npx -y -p opencode-taskflow@0.2.10 opencode-taskflow-mcp
|
|
353
381
|
```
|
|
354
382
|
|
|
355
383
|
[OpenCode guide →](https://heggria.github.io/taskflow/en/docs/guides/opencode)
|
|
@@ -358,18 +386,31 @@ opencode mcp add taskflow -- \
|
|
|
358
386
|
|
|
359
387
|
```bash
|
|
360
388
|
grok mcp add taskflow -- \
|
|
361
|
-
npx -y -p grok-taskflow@0.2.
|
|
389
|
+
npx -y -p grok-taskflow@0.2.10 grok-taskflow-mcp
|
|
362
390
|
```
|
|
363
391
|
|
|
364
392
|
Grok Build support is new in 0.2. Its CLI stream does not report token/cost usage, so budget-declaring flows are rejected rather than silently running without enforcement.
|
|
365
393
|
|
|
366
394
|
[Grok Build guide →](https://heggria.github.io/taskflow/en/docs/guides/grok-build)
|
|
367
395
|
|
|
396
|
+
### Hermes Agent
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
hermes mcp add taskflow --command npx --args -y -p hermes-taskflow@0.2.10 hermes-taskflow-mcp
|
|
400
|
+
# Prefer env in config.yaml (not CLI --env after args — can be stuffed into argv):
|
|
401
|
+
# mcp_servers.taskflow.env.PI_TASKFLOW_HERMES_UNSAFE_YOLO: "1" # mutating only
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Hermes quiet mode does not report token/cost usage, so budget-declaring flows are rejected rather than silently running without enforcement. Child agents use an ephemeral HERMES_HOME with only non-secret model/fallback routing, a routed-provider-only inference `auth.json`, and provider-allowlisted dotenv keys; parent MCP, skills, memory, sessions, and rules are not inherited. RO local-read → `taskflow_readonly_files`; else `taskflow_model_only` (never omit `-t`).
|
|
405
|
+
|
|
406
|
+
[Hermes guide →](https://github.com/heggria/taskflow/blob/main/docs/hermes-mcp.md)
|
|
407
|
+
|
|
408
|
+
|
|
368
409
|
## Built to survive real work
|
|
369
410
|
|
|
370
411
|
<div align="center">
|
|
371
412
|
|
|
372
|
-
**
|
|
413
|
+
**10 packages** · **6 hosts** · **12 phase types** · **18 built-in agents** · **1,500+ tests** · **MIT**
|
|
373
414
|
|
|
374
415
|
</div>
|
|
375
416
|
|
|
@@ -381,10 +422,10 @@ Grok Build support is new in 0.2. Its CLI stream does not report token/cost usag
|
|
|
381
422
|
taskflow-hosts ─────┼─ codex-taskflow
|
|
382
423
|
├─ claude-taskflow
|
|
383
424
|
├─ opencode-taskflow
|
|
384
|
-
└─ grok-taskflow
|
|
425
|
+
└─ grok-taskflow / hermes-taskflow
|
|
385
426
|
```
|
|
386
427
|
|
|
387
|
-
`taskflow-core` is host-neutral and imports no host SDK. `taskflow-mcp-core` implements stdio JSON-RPC without an MCP SDK dependency; `taskflow-hosts` owns the shared host process runners. The
|
|
428
|
+
`taskflow-core` is host-neutral and imports no host SDK. `taskflow-mcp-core` implements stdio JSON-RPC without an MCP SDK dependency; `taskflow-hosts` owns the shared host process runners. The five MCP delivery packages bind both layers (and core), while Pi keeps its native adapter.
|
|
388
429
|
|
|
389
430
|
The test suite covers orchestration semantics, persistence and file-lock races, cache freshness, path traversal, dynamic graph hardening, cancellation, budgets, all 12 phase kinds, FlowIR/replay/recompute, TypeScript DSL erasure, host argv contracts, MCP servers, and packed consumer imports.
|
|
390
431
|
|
|
@@ -396,7 +437,7 @@ The test suite covers orchestration semantics, persistence and file-lock races,
|
|
|
396
437
|
| [Concepts](https://heggria.github.io/taskflow/en/docs/concepts/) | DAGs, isolation, verification, resume, shared context |
|
|
397
438
|
| [Syntax](https://heggria.github.io/taskflow/en/docs/syntax/) | Phase fields, control flow, budgets, caching, scorers |
|
|
398
439
|
| [Compiler & Runtime](https://heggria.github.io/taskflow/en/docs/compiler-runtime/) | TypeScript DSL, FlowIR, replay, recompute, background runs |
|
|
399
|
-
| [Host Guides](https://heggria.github.io/taskflow/en/docs/guides/) | Pi, Codex, Claude Code, OpenCode, and
|
|
440
|
+
| [Host Guides](https://heggria.github.io/taskflow/en/docs/guides/) | Pi, Codex, Claude Code, OpenCode, Grok, and Hermes setup |
|
|
400
441
|
| [Reference](https://heggria.github.io/taskflow/en/docs/reference/) | Commands, shorthand, and exact tool surfaces |
|
|
401
442
|
| [Showcase](https://heggria.github.io/taskflow/en/docs/showcase/) | Real flows and case studies |
|
|
402
443
|
| [0.2.0 Frontier Assessment](https://github.com/heggria/taskflow/blob/main/docs/taskflow-0.2.0-frontier-assessment.zh-CN.md) | Independent, evidence-based technical assessment (Chinese) |
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "grok-taskflow",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Run taskflow on Grok Build:
|
|
3
|
+
"version": "0.2.10",
|
|
4
|
+
"description": "Run taskflow on Grok Build: the npm tarball provides the Grok subagent runner and MCP server; the plugin is distributed through the repository marketplace.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"grok",
|
|
7
7
|
"grok-build",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"taskflow-core": "0.2.
|
|
53
|
-
"taskflow-hosts": "0.2.
|
|
54
|
-
"taskflow-mcp-core": "0.2.
|
|
52
|
+
"taskflow-core": "0.2.10",
|
|
53
|
+
"taskflow-hosts": "0.2.10",
|
|
54
|
+
"taskflow-mcp-core": "0.2.10"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "rm -rf dist && tsc -p tsconfig.build.json && node ../../scripts/copy-readme.mjs grok-taskflow"
|