taskflow-core 0.1.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.
- package/dist/agents/analyst.md +30 -0
- package/dist/agents/critic.md +31 -0
- package/dist/agents/doc-writer.md +43 -0
- package/dist/agents/executor-code.md +36 -0
- package/dist/agents/executor-fast.md +26 -0
- package/dist/agents/executor-ui.md +35 -0
- package/dist/agents/executor.md +29 -0
- package/dist/agents/final-arbiter.md +29 -0
- package/dist/agents/plan-arbiter.md +35 -0
- package/dist/agents/planner.md +30 -0
- package/dist/agents/recover.md +28 -0
- package/dist/agents/reviewer.md +37 -0
- package/dist/agents/risk-reviewer.md +37 -0
- package/dist/agents/scout.md +51 -0
- package/dist/agents/security-reviewer.md +39 -0
- package/dist/agents/test-engineer.md +31 -0
- package/dist/agents/verifier.md +29 -0
- package/dist/agents/visual-explorer.md +32 -0
- package/dist/agents.d.ts +55 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +265 -0
- package/dist/agents.js.map +1 -0
- package/dist/cache.d.ts +57 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +256 -0
- package/dist/cache.js.map +1 -0
- package/dist/compile.d.ts +37 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +324 -0
- package/dist/compile.js.map +1 -0
- package/dist/context-store.d.ts +142 -0
- package/dist/context-store.d.ts.map +1 -0
- package/dist/context-store.js +383 -0
- package/dist/context-store.js.map +1 -0
- package/dist/detached-runner.d.ts +12 -0
- package/dist/detached-runner.d.ts.map +1 -0
- package/dist/detached-runner.js +68 -0
- package/dist/detached-runner.js.map +1 -0
- package/dist/flowir/hash.d.ts +51 -0
- package/dist/flowir/hash.d.ts.map +1 -0
- package/dist/flowir/hash.js +90 -0
- package/dist/flowir/hash.js.map +1 -0
- package/dist/flowir/index.d.ts +43 -0
- package/dist/flowir/index.d.ts.map +1 -0
- package/dist/flowir/index.js +62 -0
- package/dist/flowir/index.js.map +1 -0
- package/dist/flowir/meta.d.ts +103 -0
- package/dist/flowir/meta.d.ts.map +1 -0
- package/dist/flowir/meta.js +19 -0
- package/dist/flowir/meta.js.map +1 -0
- package/dist/flowir/phasefp.d.ts +55 -0
- package/dist/flowir/phasefp.d.ts.map +1 -0
- package/dist/flowir/phasefp.js +123 -0
- package/dist/flowir/phasefp.js.map +1 -0
- package/dist/flowir/translate.d.ts +37 -0
- package/dist/flowir/translate.d.ts.map +1 -0
- package/dist/flowir/translate.js +137 -0
- package/dist/flowir/translate.js.map +1 -0
- package/dist/frontmatter.d.ts +21 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +107 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/host/runner-types.d.ts +98 -0
- package/dist/host/runner-types.d.ts.map +1 -0
- package/dist/host/runner-types.js +21 -0
- package/dist/host/runner-types.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/interpolate.d.ts +52 -0
- package/dist/interpolate.d.ts.map +1 -0
- package/dist/interpolate.js +418 -0
- package/dist/interpolate.js.map +1 -0
- package/dist/paths.d.ts +23 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +43 -0
- package/dist/paths.js.map +1 -0
- package/dist/runner-core.d.ts +49 -0
- package/dist/runner-core.d.ts.map +1 -0
- package/dist/runner-core.js +208 -0
- package/dist/runner-core.js.map +1 -0
- package/dist/runtime.d.ts +234 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2284 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema.d.ts +257 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +795 -0
- package/dist/schema.js.map +1 -0
- package/dist/stale.d.ts +72 -0
- package/dist/stale.d.ts.map +1 -0
- package/dist/stale.js +179 -0
- package/dist/stale.js.map +1 -0
- package/dist/store.d.ts +237 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +761 -0
- package/dist/store.js.map +1 -0
- package/dist/typebox-helpers.d.ts +15 -0
- package/dist/typebox-helpers.d.ts.map +1 -0
- package/dist/typebox-helpers.js +19 -0
- package/dist/typebox-helpers.js.map +1 -0
- package/dist/usage.d.ts +21 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +33 -0
- package/dist/usage.js.map +1 -0
- package/dist/verify.d.ts +38 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +324 -0
- package/dist/verify.js.map +1 -0
- package/dist/workspace.d.ts +64 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +178 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-phase workspace isolation ("worktree isolation", STRATEGY H2).
|
|
3
|
+
*
|
|
4
|
+
* By default a phase's `cwd` is a literal path (or inherited from the run).
|
|
5
|
+
* Three reserved keywords ask the runtime to ALLOCATE an isolated working
|
|
6
|
+
* directory for the phase's subagent(s) and tear it down afterwards:
|
|
7
|
+
*
|
|
8
|
+
* - `"temp"` — an ephemeral dir under the OS tmpdir; removed when the
|
|
9
|
+
* phase finishes (success or failure). For scratch work that
|
|
10
|
+
* must not touch the main tree.
|
|
11
|
+
* - `"dedicated"` — a persistent dir under the run's own state directory
|
|
12
|
+
* (`<runs>/ws/<runId>/<phaseId>`); kept after the phase so
|
|
13
|
+
* its artifacts survive for inspection / downstream reuse.
|
|
14
|
+
* Idempotent across resume (same path for the same phase).
|
|
15
|
+
* - `"worktree"` — a real `git worktree` on a throwaway branch, rooted at the
|
|
16
|
+
* run's git repo; removed (`git worktree remove --force`)
|
|
17
|
+
* when the phase finishes. For changes you want to diff /
|
|
18
|
+
* commit / discard in isolation. Falls back to a `temp` dir
|
|
19
|
+
* (fail-open) when the base dir is not a git work tree.
|
|
20
|
+
*
|
|
21
|
+
* Invariants honoured (AGENTS.md "Critical invariants"):
|
|
22
|
+
* - Fail-open: any allocation/teardown error degrades gracefully and never
|
|
23
|
+
* sinks the phase (a failed allocation falls back to the base cwd).
|
|
24
|
+
* - No new deps: OS tmpdir via `fs.mkdtemp`, git via `child_process` (already
|
|
25
|
+
* a peer of the runner). No third-party libraries.
|
|
26
|
+
* - Resume-safe: `dedicated` is deterministic per (runId, phaseId) so a resume
|
|
27
|
+
* reuses the same dir; `temp`/`worktree` are re-allocated cleanly.
|
|
28
|
+
* - Path containment: `dedicated` dirs are contained under the run dir;
|
|
29
|
+
* sanitized phase ids prevent traversal.
|
|
30
|
+
*/
|
|
31
|
+
import { spawnSync } from "node:child_process";
|
|
32
|
+
import fs from "node:fs";
|
|
33
|
+
import os from "node:os";
|
|
34
|
+
import path from "node:path";
|
|
35
|
+
/** The reserved `cwd` keywords that trigger workspace allocation. */
|
|
36
|
+
export const WORKSPACE_KEYWORDS = ["temp", "dedicated", "worktree"];
|
|
37
|
+
export function isWorkspaceKeyword(cwd) {
|
|
38
|
+
return cwd === "temp" || cwd === "dedicated" || cwd === "worktree";
|
|
39
|
+
}
|
|
40
|
+
/** A no-op workspace: the phase runs in `baseCwd` and nothing is torn down. */
|
|
41
|
+
function inherited(baseCwd, note) {
|
|
42
|
+
return { dir: baseCwd, kind: "inherited", note, teardown() { } };
|
|
43
|
+
}
|
|
44
|
+
/** Sanitize a phase id for use as a path segment (mirrors safeFlowDirName). */
|
|
45
|
+
function safeSegment(id) {
|
|
46
|
+
const cleaned = id.replace(/[^A-Za-z0-9._-]/g, "_").replace(/^\.+/, "_");
|
|
47
|
+
return cleaned.slice(0, 100) || "phase";
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Best-effort recursive delete, restricted to dirs we ourselves allocate
|
|
51
|
+
* (under the OS tmpdir or a run's `ws/` tree). The containment check is
|
|
52
|
+
* defense-in-depth: every `dir` passed here is already constructed by this
|
|
53
|
+
* module, but guarding ensures a future caller can't turn `rmrf` into an
|
|
54
|
+
* arbitrary-path delete.
|
|
55
|
+
*/
|
|
56
|
+
function rmrf(dir, allowedRoots) {
|
|
57
|
+
try {
|
|
58
|
+
const resolved = path.resolve(dir);
|
|
59
|
+
const roots = [path.resolve(os.tmpdir()), ...(allowedRoots ?? []).map((r) => path.resolve(r))];
|
|
60
|
+
const contained = roots.some((root) => resolved === root || resolved.startsWith(root + path.sep));
|
|
61
|
+
if (!contained)
|
|
62
|
+
return; // refuse to delete outside our own allocation roots
|
|
63
|
+
fs.rmSync(resolved, { recursive: true, force: true });
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
/* fail-open: best-effort cleanup */
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Is `dir` inside a git work tree? (cheap, no network, fail-closed to false) */
|
|
70
|
+
function isGitRepo(dir) {
|
|
71
|
+
try {
|
|
72
|
+
const r = spawnSync("git", ["-C", dir, "rev-parse", "--is-inside-work-tree"], {
|
|
73
|
+
encoding: "utf-8",
|
|
74
|
+
timeout: 5000,
|
|
75
|
+
});
|
|
76
|
+
return r.status === 0 && String(r.stdout).trim() === "true";
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** The absolute toplevel of the git work tree containing `dir`, or undefined. */
|
|
83
|
+
function gitToplevel(dir) {
|
|
84
|
+
try {
|
|
85
|
+
const r = spawnSync("git", ["-C", dir, "rev-parse", "--show-toplevel"], {
|
|
86
|
+
encoding: "utf-8",
|
|
87
|
+
timeout: 5000,
|
|
88
|
+
});
|
|
89
|
+
if (r.status === 0)
|
|
90
|
+
return String(r.stdout).trim() || undefined;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
/* fall through */
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Allocate an isolated workspace for a phase. Always returns a usable handle:
|
|
99
|
+
* on any failure it falls back to the base cwd (fail-open) with a `note`.
|
|
100
|
+
*/
|
|
101
|
+
export function allocateWorkspace(kind, opts) {
|
|
102
|
+
const { baseCwd, runId, phaseId, runsRoot } = opts;
|
|
103
|
+
const seg = safeSegment(phaseId);
|
|
104
|
+
if (kind === "temp") {
|
|
105
|
+
try {
|
|
106
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), `pi-tf-ws-${seg}-`));
|
|
107
|
+
return { dir, kind: "temp", teardown: () => rmrf(dir) };
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
return inherited(baseCwd, `temp workspace alloc failed: ${errMsg(e)}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (kind === "dedicated") {
|
|
114
|
+
try {
|
|
115
|
+
// Deterministic per (runId, phaseId) → resume reuses the same dir.
|
|
116
|
+
const dir = path.join(runsRoot, "ws", safeSegment(runId), seg);
|
|
117
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
118
|
+
// Persistent by design: teardown is a no-op (kept for inspection).
|
|
119
|
+
return { dir, kind: "dedicated", teardown() { } };
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
return inherited(baseCwd, `dedicated workspace alloc failed: ${errMsg(e)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// kind === "worktree"
|
|
126
|
+
if (!isGitRepo(baseCwd)) {
|
|
127
|
+
// Fail-open: not a git repo → degrade to an ephemeral temp dir so the
|
|
128
|
+
// phase still gets isolation (just without git semantics).
|
|
129
|
+
const fb = allocateWorkspace("temp", opts);
|
|
130
|
+
return { ...fb, note: "worktree requested but base cwd is not a git work tree; used a temp dir instead" };
|
|
131
|
+
}
|
|
132
|
+
const top = gitToplevel(baseCwd) ?? baseCwd;
|
|
133
|
+
const branch = `tf/${safeSegment(runId)}/${seg}-${Date.now().toString(36)}`;
|
|
134
|
+
let dir;
|
|
135
|
+
try {
|
|
136
|
+
dir = fs.mkdtempSync(path.join(os.tmpdir(), `pi-tf-wt-${seg}-`));
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
const fb = allocateWorkspace("temp", opts);
|
|
140
|
+
return { ...fb, note: `worktree temp path alloc failed: ${errMsg(e)}` };
|
|
141
|
+
}
|
|
142
|
+
// `git worktree add -b <branch> <dir>` creates the dir's contents itself, so
|
|
143
|
+
// remove the empty mkdtemp dir first and let git recreate it.
|
|
144
|
+
rmrf(dir);
|
|
145
|
+
const add = spawnSync("git", ["-C", top, "worktree", "add", "-b", branch, dir, "HEAD"], {
|
|
146
|
+
encoding: "utf-8",
|
|
147
|
+
timeout: 60000,
|
|
148
|
+
});
|
|
149
|
+
if (add.status !== 0) {
|
|
150
|
+
rmrf(dir);
|
|
151
|
+
const fb = allocateWorkspace("temp", opts);
|
|
152
|
+
return {
|
|
153
|
+
...fb,
|
|
154
|
+
note: `git worktree add failed (${String(add.stderr).trim().slice(0, 200)}); used a temp dir instead`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
const teardown = () => {
|
|
158
|
+
// Remove the worktree, then delete its throwaway branch. Both best-effort.
|
|
159
|
+
try {
|
|
160
|
+
spawnSync("git", ["-C", top, "worktree", "remove", "--force", dir], { timeout: 30000 });
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
/* fall through to rmrf */
|
|
164
|
+
}
|
|
165
|
+
rmrf(dir);
|
|
166
|
+
try {
|
|
167
|
+
spawnSync("git", ["-C", top, "branch", "-D", branch], { timeout: 10000 });
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
/* fail-open: leftover branch is harmless */
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
return { dir, kind: "worktree", branch, teardown };
|
|
174
|
+
}
|
|
175
|
+
function errMsg(e) {
|
|
176
|
+
return e instanceof Error ? e.message : String(e);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "taskflow-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Host-neutral engine for declarative, verifiable task-DAG orchestration — the runtime, DSL, cache, and verification shared by pi-taskflow and codex-taskflow.",
|
|
5
|
+
"keywords": ["taskflow", "dag", "orchestration", "subagents", "workflow"],
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "heggria <bshengtao@gmail.com>",
|
|
8
|
+
"homepage": "https://github.com/heggria/pi-taskflow#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/heggria/pi-taskflow.git",
|
|
12
|
+
"directory": "packages/taskflow-core"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"development": "./src/index.ts",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./*": {
|
|
24
|
+
"development": "./src/*.ts",
|
|
25
|
+
"types": "./dist/*.d.ts",
|
|
26
|
+
"default": "./dist/*.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": ["dist"],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc -p tsconfig.build.json && node ../../scripts/copy-agents.mjs",
|
|
32
|
+
"prepublishOnly": "npm run build"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"typebox": "*"
|
|
39
|
+
}
|
|
40
|
+
}
|