taskflow-core 0.2.0 → 0.2.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.
- package/README.md +247 -862
- package/dist/agents.d.ts +12 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +29 -1
- package/dist/agents.js.map +1 -1
- package/dist/cwd-bridge.d.ts +61 -0
- package/dist/cwd-bridge.d.ts.map +1 -0
- package/dist/cwd-bridge.js +136 -0
- package/dist/cwd-bridge.js.map +1 -0
- package/dist/detached-runner.js +31 -5
- package/dist/detached-runner.js.map +1 -1
- package/dist/exec/driver.d.ts +1 -0
- package/dist/exec/driver.d.ts.map +1 -1
- package/dist/exec/driver.js +15 -2
- package/dist/exec/driver.js.map +1 -1
- package/dist/exec/step-kinds.d.ts.map +1 -1
- package/dist/exec/step-kinds.js +28 -3
- package/dist/exec/step-kinds.js.map +1 -1
- package/dist/exec/step.d.ts +1 -0
- package/dist/exec/step.d.ts.map +1 -1
- package/dist/exec/step.js +18 -0
- package/dist/exec/step.js.map +1 -1
- package/dist/flowir/compile.d.ts.map +1 -1
- package/dist/flowir/compile.js +13 -0
- package/dist/flowir/compile.js.map +1 -1
- package/dist/host/runner-types.d.ts +16 -0
- package/dist/host/runner-types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/interpolate.d.ts +4 -0
- package/dist/interpolate.d.ts.map +1 -1
- package/dist/interpolate.js +14 -0
- package/dist/interpolate.js.map +1 -1
- package/dist/resources/authority.d.ts +35 -0
- package/dist/resources/authority.d.ts.map +1 -0
- package/dist/resources/authority.js +67 -0
- package/dist/resources/authority.js.map +1 -0
- package/dist/resources/backend.d.ts +302 -0
- package/dist/resources/backend.d.ts.map +1 -0
- package/dist/resources/backend.js +16 -0
- package/dist/resources/backend.js.map +1 -0
- package/dist/resources/baseline.d.ts +116 -0
- package/dist/resources/baseline.d.ts.map +1 -0
- package/dist/resources/baseline.js +447 -0
- package/dist/resources/baseline.js.map +1 -0
- package/dist/resources/canonical-json.d.ts +7 -0
- package/dist/resources/canonical-json.d.ts.map +1 -0
- package/dist/resources/canonical-json.js +75 -0
- package/dist/resources/canonical-json.js.map +1 -0
- package/dist/resources/errors.d.ts +23 -0
- package/dist/resources/errors.d.ts.map +1 -0
- package/dist/resources/errors.js +89 -0
- package/dist/resources/errors.js.map +1 -0
- package/dist/resources/execution.d.ts +90 -0
- package/dist/resources/execution.d.ts.map +1 -0
- package/dist/resources/execution.js +581 -0
- package/dist/resources/execution.js.map +1 -0
- package/dist/resources/index.d.ts +15 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +15 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/journal.d.ts +138 -0
- package/dist/resources/journal.d.ts.map +1 -0
- package/dist/resources/journal.js +438 -0
- package/dist/resources/journal.js.map +1 -0
- package/dist/resources/leases.d.ts +51 -0
- package/dist/resources/leases.d.ts.map +1 -0
- package/dist/resources/leases.js +354 -0
- package/dist/resources/leases.js.map +1 -0
- package/dist/resources/permits.d.ts +52 -0
- package/dist/resources/permits.d.ts.map +1 -0
- package/dist/resources/permits.js +240 -0
- package/dist/resources/permits.js.map +1 -0
- package/dist/resources/persistence.d.ts +63 -0
- package/dist/resources/persistence.d.ts.map +1 -0
- package/dist/resources/persistence.js +522 -0
- package/dist/resources/persistence.js.map +1 -0
- package/dist/resources/registry.d.ts +56 -0
- package/dist/resources/registry.d.ts.map +1 -0
- package/dist/resources/registry.js +139 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/resources/resolve.d.ts +49 -0
- package/dist/resources/resolve.d.ts.map +1 -0
- package/dist/resources/resolve.js +309 -0
- package/dist/resources/resolve.js.map +1 -0
- package/dist/resources/sandbox.d.ts +72 -0
- package/dist/resources/sandbox.d.ts.map +1 -0
- package/dist/resources/sandbox.js +952 -0
- package/dist/resources/sandbox.js.map +1 -0
- package/dist/resources/schema.d.ts +195 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +231 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/resources/types.d.ts +36 -0
- package/dist/resources/types.d.ts.map +1 -0
- package/dist/resources/types.js +75 -0
- package/dist/resources/types.js.map +1 -0
- package/dist/runner-core.d.ts +29 -0
- package/dist/runner-core.d.ts.map +1 -1
- package/dist/runner-core.js +311 -36
- package/dist/runner-core.js.map +1 -1
- package/dist/runtime/phases/script.d.ts.map +1 -1
- package/dist/runtime/phases/script.js +47 -9
- package/dist/runtime/phases/script.js.map +1 -1
- package/dist/runtime.d.ts +39 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +542 -50
- package/dist/runtime.js.map +1 -1
- package/dist/schema.d.ts +68 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +163 -22
- package/dist/schema.js.map +1 -1
- package/dist/store.d.ts +7 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js.map +1 -1
- package/dist/trace.d.ts +3 -0
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js.map +1 -1
- package/package.json +3 -2
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
* Isolated from runtime.ts so S5 strangler can flip kinds without growing the monolith.
|
|
4
4
|
*/
|
|
5
5
|
import { emptyUsage } from "../../usage.js";
|
|
6
|
-
import {
|
|
6
|
+
import { StringDecoder } from "node:string_decoder";
|
|
7
|
+
import { killProcessTree, registerProcessTree, unregisterProcessTree } from "../../runner-core.js";
|
|
8
|
+
import { CWD_BRIDGE_MODE_ENV } from "../../cwd-bridge.js";
|
|
9
|
+
import { WORKSPACE_RECONCILE_MODE_ENV } from "../../resources/execution.js";
|
|
7
10
|
const MAX_STDOUT = 1_048_576; // 1 MB cap
|
|
8
11
|
const SIGKILL_GRACE_MS = 5_000;
|
|
9
12
|
/**
|
|
@@ -13,9 +16,15 @@ export async function runScriptCommand(opts) {
|
|
|
13
16
|
const { spawn } = await import("node:child_process");
|
|
14
17
|
const { interpRunText, arrayForm, cwd, signal, stdinInput, timeoutMs } = opts;
|
|
15
18
|
return new Promise((resolve, reject) => {
|
|
19
|
+
const childEnv = { ...process.env };
|
|
20
|
+
// Script phases execute flow-authored commands, so they are not a trusted
|
|
21
|
+
// host principal. Host-only workspace controls must never be delegated even
|
|
22
|
+
// when the script later launches another Taskflow process.
|
|
23
|
+
delete childEnv[CWD_BRIDGE_MODE_ENV];
|
|
24
|
+
delete childEnv[WORKSPACE_RECONCILE_MODE_ENV];
|
|
16
25
|
const spawnOptions = {
|
|
17
26
|
cwd,
|
|
18
|
-
env:
|
|
27
|
+
env: childEnv,
|
|
19
28
|
detached: process.platform !== "win32",
|
|
20
29
|
};
|
|
21
30
|
const child = arrayForm
|
|
@@ -27,21 +36,33 @@ export async function runScriptCommand(opts) {
|
|
|
27
36
|
...spawnOptions,
|
|
28
37
|
shell: true,
|
|
29
38
|
});
|
|
39
|
+
if (child.pid)
|
|
40
|
+
registerProcessTree(child.pid);
|
|
30
41
|
let stdout = "";
|
|
31
42
|
let stderr = "";
|
|
43
|
+
let stdoutBytes = 0;
|
|
44
|
+
let stderrBytes = 0;
|
|
32
45
|
let stdoutOversize = false;
|
|
33
46
|
let timedOut = false;
|
|
47
|
+
let settled = false;
|
|
48
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
49
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
34
50
|
child.stdout?.on("data", (d) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
const remaining = MAX_STDOUT - stdoutBytes;
|
|
52
|
+
const retained = d.subarray(0, Math.max(0, remaining));
|
|
53
|
+
if (retained.length > 0) {
|
|
54
|
+
stdout += stdoutDecoder.write(retained);
|
|
55
|
+
stdoutBytes += retained.length;
|
|
40
56
|
}
|
|
57
|
+
if (d.length > retained.length)
|
|
58
|
+
stdoutOversize = true;
|
|
41
59
|
});
|
|
42
60
|
child.stderr?.on("data", (d) => {
|
|
43
|
-
|
|
44
|
-
|
|
61
|
+
const remaining = 500 - stderrBytes;
|
|
62
|
+
const retained = d.subarray(0, Math.max(0, remaining));
|
|
63
|
+
if (retained.length > 0) {
|
|
64
|
+
stderr += stderrDecoder.write(retained);
|
|
65
|
+
stderrBytes += retained.length;
|
|
45
66
|
}
|
|
46
67
|
});
|
|
47
68
|
let sigkillTimer;
|
|
@@ -62,9 +83,14 @@ export async function runScriptCommand(opts) {
|
|
|
62
83
|
if (signal?.aborted)
|
|
63
84
|
onAbort();
|
|
64
85
|
child.on("error", (err) => {
|
|
86
|
+
if (settled)
|
|
87
|
+
return;
|
|
88
|
+
settled = true;
|
|
65
89
|
clearTimeout(timer);
|
|
66
90
|
clearTimeout(sigkillTimer);
|
|
67
91
|
signal?.removeEventListener("abort", onAbort);
|
|
92
|
+
if (child.pid)
|
|
93
|
+
unregisterProcessTree(child.pid);
|
|
68
94
|
reject(err);
|
|
69
95
|
});
|
|
70
96
|
child.once("exit", () => {
|
|
@@ -72,11 +98,23 @@ export async function runScriptCommand(opts) {
|
|
|
72
98
|
killProcessTree(child.pid, "SIGKILL", child);
|
|
73
99
|
});
|
|
74
100
|
child.on("close", (code) => {
|
|
101
|
+
if (settled)
|
|
102
|
+
return;
|
|
103
|
+
settled = true;
|
|
75
104
|
clearTimeout(timer);
|
|
76
105
|
clearTimeout(sigkillTimer);
|
|
77
106
|
signal?.removeEventListener("abort", onAbort);
|
|
78
107
|
if (child.pid)
|
|
79
108
|
killProcessTree(child.pid, "SIGKILL", child);
|
|
109
|
+
if (child.pid)
|
|
110
|
+
unregisterProcessTree(child.pid);
|
|
111
|
+
// If truncation cut through a multi-byte character, discard the decoder's
|
|
112
|
+
// incomplete suffix instead of manufacturing U+FFFD. Otherwise flush an
|
|
113
|
+
// actually malformed child stream normally.
|
|
114
|
+
if (!stdoutOversize)
|
|
115
|
+
stdout += stdoutDecoder.end();
|
|
116
|
+
if (stderrBytes < 500)
|
|
117
|
+
stderr += stderrDecoder.end();
|
|
80
118
|
resolve({ stdout, stderr, code, stdoutOversize, timedOut });
|
|
81
119
|
});
|
|
82
120
|
if (child.stdin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/runtime/phases/script.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ import { type TraceSink } from "./trace.ts";
|
|
|
23
23
|
export { parseGateVerdict };
|
|
24
24
|
import { type PhaseState, type RunState } from "./store.ts";
|
|
25
25
|
import { CacheStore } from "./cache.ts";
|
|
26
|
+
import { type CwdBridgeMode } from "./cwd-bridge.ts";
|
|
27
|
+
import { type ResolveOnlyPhaseBinding, type ResolveOnlyWorkspaceSession } from "./resources/execution.ts";
|
|
26
28
|
/** A human-in-the-loop approval request raised by an `approval` phase. */
|
|
27
29
|
export interface ApprovalRequest {
|
|
28
30
|
phaseId: string;
|
|
@@ -76,7 +78,41 @@ export interface RuntimeDeps {
|
|
|
76
78
|
_ctxDir?: string;
|
|
77
79
|
/** Internal: an isolated workspace dir override for the current phase (worktree isolation). */
|
|
78
80
|
_cwdOverride?: string;
|
|
81
|
+
/** Host-owned 0.2.1 cwd bridge mode. Undefined is fail-closed. Flow data
|
|
82
|
+
* cannot enable this; adapters may opt into the documented resolve-only mode. */
|
|
83
|
+
cwdBridgeMode?: CwdBridgeMode;
|
|
84
|
+
/** Optional trusted control-plane location for workspace leases/journal/HMAC
|
|
85
|
+
* state. Defaults outside the flow workspace under ~/.taskflow. */
|
|
86
|
+
workspaceControlDirectory?: string;
|
|
87
|
+
/** Host-created W1a resolve-only session. Ordinarily constructed lazily from
|
|
88
|
+
* cwdBridgeMode; injectable for delivery policy and conformance tests. */
|
|
89
|
+
workspaceSession?: ResolveOnlyWorkspaceSession;
|
|
90
|
+
/** Internal: a cwd-bridge flow may mutate workspace state, so output-only
|
|
91
|
+
* cache/resume reuse is disabled for the entire nested execution tree. */
|
|
92
|
+
_disableCache?: boolean;
|
|
93
|
+
/** Internal: execution originated from an LLM-authored flow{def}/ctx_spawn.
|
|
94
|
+
* Resource-bearing fields remain denied through every nested frame. */
|
|
95
|
+
_dynamic?: boolean;
|
|
96
|
+
/** Internal: canonical directory capability inherited from a cwd-bridge
|
|
97
|
+
* phase. Nested phases may stay inside or narrow it, never escape it. */
|
|
98
|
+
_cwdBoundary?: string;
|
|
99
|
+
/** Internal: only resource-selected execution trees opt into cwd-sensitive
|
|
100
|
+
* cache keys. Ordinary legacy root phases retain their existing key format. */
|
|
101
|
+
_cacheCwdIdentity?: string;
|
|
102
|
+
/** Internal: one immutable loader view per top-level execution. Saved-flow
|
|
103
|
+
* definitions must not change between capability scan and execution. */
|
|
104
|
+
_flowLoaderSnapshot?: Map<string, FlowLoaderSnapshotEntry>;
|
|
105
|
+
/** Internal phase-scoped W1a execution binding inherited only by descendants
|
|
106
|
+
* that remain inside the selected cwd capability. */
|
|
107
|
+
_workspaceBinding?: ResolveOnlyPhaseBinding;
|
|
79
108
|
}
|
|
109
|
+
type FlowLoaderSnapshotEntry = {
|
|
110
|
+
ok: true;
|
|
111
|
+
value: Taskflow | undefined;
|
|
112
|
+
} | {
|
|
113
|
+
ok: false;
|
|
114
|
+
error: unknown;
|
|
115
|
+
};
|
|
80
116
|
export interface RuntimeResult {
|
|
81
117
|
state: RunState;
|
|
82
118
|
finalOutput: string;
|
|
@@ -138,6 +174,9 @@ export interface PhaseCacheCtx {
|
|
|
138
174
|
/** Resolved agent content/config. Same name+scope can still change prompt,
|
|
139
175
|
* model, tools, or thinking and must invalidate cached output. */
|
|
140
176
|
agentDefinitions?: string;
|
|
177
|
+
/** Canonical effective cwd. Required because a typed cwd arg can change the
|
|
178
|
+
* resource selected without appearing in the task text or phase definition. */
|
|
179
|
+
executionCwd?: string;
|
|
141
180
|
/** Content fingerprint of the desugared flow definition — folded into the
|
|
142
181
|
* key so two structurally-different flows that share a name can never
|
|
143
182
|
* collide, and a changed flow never serves a stale cross-run hit. */
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEpF;kEACkE;AAClE,KAAK,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAchD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAe,KAAK,UAAU,EAA0L,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|