taskflow-core 0.3.0-beta.1 → 0.3.0-beta.1.2

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 CHANGED
@@ -21,7 +21,7 @@
21
21
 
22
22
  **taskflow is a declarative runtime for coding-agent workflows.** It turns a graph into a verifiable execution contract, runs phases in isolation, and keeps intermediate work out of the host conversation. In the 0.3 candidate, the contract also describes the effects a phase is allowed to propose.
23
23
 
24
- > **Status: 0.3.0-beta.1 Trusted Effects beta — beta channel, not GA.** This release candidate is prepared for npm's `beta` channel; the beta ships the Trusted Effects MVP described below. The 0.3-C Control Plane remains a follow-on candidate track; it is not a shipped beta surface.
24
+ > **Status: 0.3.0-beta.1.2 Trusted Effects beta — beta channel, not GA.** This release candidate is prepared for npm's `beta` channel; the beta ships the Trusted Effects MVP described below. The 0.3-C Control Plane remains a follow-on candidate track; it is not a shipped beta surface.
25
25
 
26
26
  ## The 0.3 idea
27
27
 
@@ -1,4 +1,4 @@
1
1
  {
2
- "gitCommit": "561cfd3761c683e47fee5aa6d7fb7b26e69c4521",
3
- "buildTime": 1786554879000
2
+ "gitCommit": "d9652629c46ad15f4898dd458867f8e0460f98b5",
3
+ "buildTime": 1787196213000
4
4
  }
@@ -25,6 +25,7 @@ import { cwdBridgeModeFromEnv } from "./cwd-bridge.js";
25
25
  import { bumpReuseInSidecar, getFlow, loadRun, runsDir, saveRun, traceFilePath, DEFAULT_KEPT_RUNS, DEFAULT_RUN_AGE_DAYS, } from "./store.js";
26
26
  import { clearDetachedCancelRequest, clearDetachedProcessRegistry, DETACHED_CONTROL_CWD_ENV, DETACHED_CONTROL_INSTANCE_ENV, DETACHED_CONTROL_OWNER_PID_ENV, DETACHED_CONTROL_RUN_ID_ENV, DETACHED_CONTROL_SIGNAL_READY_ENV, heartbeatDetachedProcessRegistry, terminateDetachedProcessTrees, watchDetachedCancel, } from "./detached-control.js";
27
27
  import { FileTraceSink } from "./trace.js";
28
+ import { toModuleImportSpecifier } from "./module-specifier.js";
28
29
  const START_GATE_TIMEOUT_MS = 5_000;
29
30
  /**
30
31
  * The spawn-only entry consumes and deletes its context file. Refuse arbitrary
@@ -173,7 +174,7 @@ try {
173
174
  let runnerLoadError;
174
175
  if (ctx.runnerModule) {
175
176
  try {
176
- const runnerMod = await import(__rewriteRelativeImportExtension(ctx.runnerModule));
177
+ const runnerMod = await import(__rewriteRelativeImportExtension(toModuleImportSpecifier(ctx.runnerModule)));
177
178
  const exportName = ctx.runnerFactoryExport ?? ctx.runnerExport ?? "piSubagentRunner";
178
179
  const exported = runnerMod[exportName];
179
180
  const runner = ctx.runnerFactoryExport && typeof exported === "function"
@@ -1 +1 @@
1
- {"version":3,"file":"detached-runner.js","sourceRoot":"","sources":["../src/detached-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detached-runner.js","sourceRoot":"","sources":["../src/detached-runner.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -37,6 +37,7 @@ export * from "./library/types.ts";
37
37
  export * from "./library/meta.ts";
38
38
  export * from "./library/search.ts";
39
39
  export * from "./runner-core.ts";
40
+ export * from "./module-specifier.ts";
40
41
  export * from "./host/runner-types.ts";
41
42
  export * from "./flowir/index.ts";
42
43
  export * from "./trace.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AAKtC,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC5B,gCAAgC,GAChC,MAAM,0BAA0B,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAK7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AAKtC,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC5B,gCAAgC,GAChC,MAAM,0BAA0B,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAK7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -45,6 +45,7 @@ export * from "./library/types.js";
45
45
  export * from "./library/meta.js";
46
46
  export * from "./library/search.js";
47
47
  export * from "./runner-core.js";
48
+ export * from "./module-specifier.js";
48
49
  export * from "./host/runner-types.js";
49
50
  export * from "./flowir/index.js";
50
51
  export * from "./trace.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC5B,gCAAgC,GAChC,MAAM,0BAA0B,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,uFAAuF;AACvF,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC5B,gCAAgC,GAChC,MAAM,0BAA0B,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,uFAAuF;AACvF,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function toModuleImportSpecifier(moduleRef: string): string;
2
+ //# sourceMappingURL=module-specifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-specifier.d.ts","sourceRoot":"","sources":["../src/module-specifier.ts"],"names":[],"mappings":"AAqCA,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAYjE"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Turn a filesystem path or already-valid ESM specifier into something
3
+ * `import()` will accept on every platform.
4
+ *
5
+ * Node's ESM loader only accepts `file:`, `data:`, and `node:` URLs. A native
6
+ * Windows path such as `C:\\…\\runner.js` is parsed as protocol `c:` and
7
+ * rejected with ERR_UNSUPPORTED_ESM_URL_SCHEME (issue #139). `pathToFileURL`
8
+ * is correct for the *current* platform, but unit tests and docs also need
9
+ * drive-letter / UNC strings to convert when the process itself is POSIX.
10
+ *
11
+ * Drive/UNC conversion goes through `URL.pathname` so `#` / `?` / spaces are
12
+ * percent-encoded (a raw `new URL("file:///C:/a#b")` would treat `#` as a
13
+ * fragment and import the truncated path).
14
+ */
15
+ import { pathToFileURL } from "node:url";
16
+ const WINDOWS_DRIVE = /^[A-Za-z]:[\\/]/;
17
+ const WINDOWS_UNC = /^[\\/]{2}[^\\/]/;
18
+ function windowsDriveToFileUrl(windowsPath) {
19
+ const normalized = windowsPath.replace(/\\/g, "/");
20
+ const url = new URL("file:///");
21
+ url.pathname = `/${normalized}`;
22
+ return url.href;
23
+ }
24
+ function windowsUncToFileUrl(windowsPath) {
25
+ const normalized = windowsPath.replace(/\\/g, "/").replace(/^\/+/, "");
26
+ const slash = normalized.indexOf("/");
27
+ const host = slash === -1 ? normalized : normalized.slice(0, slash);
28
+ const rest = slash === -1 ? "/" : normalized.slice(slash);
29
+ const url = new URL("file://");
30
+ url.host = host;
31
+ url.pathname = rest || "/";
32
+ return url.href;
33
+ }
34
+ export function toModuleImportSpecifier(moduleRef) {
35
+ const trimmed = moduleRef.trim();
36
+ if (trimmed.startsWith("file:") ||
37
+ trimmed.startsWith("data:") ||
38
+ trimmed.startsWith("node:")) {
39
+ return trimmed;
40
+ }
41
+ if (WINDOWS_DRIVE.test(trimmed))
42
+ return windowsDriveToFileUrl(trimmed);
43
+ if (WINDOWS_UNC.test(trimmed))
44
+ return windowsUncToFileUrl(trimmed);
45
+ return pathToFileURL(trimmed).href;
46
+ }
47
+ //# sourceMappingURL=module-specifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-specifier.js","sourceRoot":"","sources":["../src/module-specifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,SAAS,qBAAqB,CAAC,WAAmB;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,OAAO,GAAG,CAAC,IAAI,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAC;IAC3B,OAAO,GAAG,CAAC,IAAI,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IACC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAC1B,CAAC;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -45,7 +45,8 @@ export type ThinkingLevel = (typeof THINKING_LEVELS)[number];
45
45
  declare const CACHE_SCOPES: readonly ["run-only", "cross-run", "off"];
46
46
  export type CacheScope = (typeof CACHE_SCOPES)[number];
47
47
  declare const ParallelTaskSchema: Type.TObject<{
48
- task: Type.TString;
48
+ task: Type.TOptional<Type.TString>;
49
+ taskFile: Type.TOptional<Type.TString>;
49
50
  agent: Type.TOptional<Type.TString>;
50
51
  cwd: Type.TOptional<Type.TString>;
51
52
  }>;
@@ -75,10 +76,12 @@ declare const PhaseSchema: Type.TObject<{
75
76
  type: Type.TOptional<Type.TUnsafe<"agent" | "approval" | "expand" | "flow" | "gate" | "loop" | "map" | "parallel" | "race" | "reduce" | "script" | "tournament">>;
76
77
  agent: Type.TOptional<Type.TString>;
77
78
  task: Type.TOptional<Type.TString>;
79
+ taskFile: Type.TOptional<Type.TString>;
78
80
  over: Type.TOptional<Type.TString>;
79
81
  as: Type.TOptional<Type.TString>;
80
82
  branches: Type.TOptional<Type.TArray<Type.TObject<{
81
- task: Type.TString;
83
+ task: Type.TOptional<Type.TString>;
84
+ taskFile: Type.TOptional<Type.TString>;
82
85
  agent: Type.TOptional<Type.TString>;
83
86
  cwd: Type.TOptional<Type.TString>;
84
87
  }>>>;
@@ -291,10 +294,12 @@ export declare const TaskflowSchema: Type.TObject<{
291
294
  type: Type.TOptional<Type.TUnsafe<"agent" | "approval" | "expand" | "flow" | "gate" | "loop" | "map" | "parallel" | "race" | "reduce" | "script" | "tournament">>;
292
295
  agent: Type.TOptional<Type.TString>;
293
296
  task: Type.TOptional<Type.TString>;
297
+ taskFile: Type.TOptional<Type.TString>;
294
298
  over: Type.TOptional<Type.TString>;
295
299
  as: Type.TOptional<Type.TString>;
296
300
  branches: Type.TOptional<Type.TArray<Type.TObject<{
297
- task: Type.TString;
301
+ task: Type.TOptional<Type.TString>;
302
+ taskFile: Type.TOptional<Type.TString>;
298
303
  agent: Type.TOptional<Type.TString>;
299
304
  cwd: Type.TOptional<Type.TString>;
300
305
  }>>>;
@@ -395,7 +400,9 @@ export type Budget = Static<typeof BudgetSchema>;
395
400
  export type CachePolicy = Static<typeof CacheSchema>;
396
401
  export interface ShorthandStep {
397
402
  agent?: string;
398
- task: string;
403
+ task?: string;
404
+ /** Load-time include path; trusted loaders inline this into `task` before desugar. */
405
+ taskFile?: string;
399
406
  /** Files to pre-read and inject before the task (pass-through to Phase.context). */
400
407
  context?: string[];
401
408
  /** Max characters per context file (pass-through to Phase.contextLimit). */
@@ -444,6 +451,9 @@ export interface ValidationOptions {
444
451
  * with their real effects; children the loader cannot resolve degrade to
445
452
  * advisory warnings (the runtime loader remains the authoritative gate). */
446
453
  resolveFlow?: (name: string) => ComposedEffectFlowLike | undefined;
454
+ /** When true, leftover `taskFile` is allowed (DSL compile / pre-load check).
455
+ * XOR and dynamic-subflow bans still apply. Runtime loaders must inline. */
456
+ allowTaskFile?: boolean;
447
457
  }
448
458
  /** Validate resolved invocation values independently of full flow structure.
449
459
  * Runtime calls this at the Core boundary so direct, resume, and detached
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -77,7 +77,10 @@ const CACHE_FINGERPRINT_PREFIXES = ["git:", "glob:", "glob!:", "file:", "env:"];
77
77
  /** Phase types that must NOT be cached across runs (a fresh result is required each run). */
78
78
  const CACHE_CROSS_RUN_BLOCKED_TYPES = ["gate", "approval", "loop", "tournament", "script", "race", "expand"];
79
79
  const ParallelTaskSchema = Type.Object({
80
- task: Type.String({ description: "Task for this parallel branch (supports interpolation)" }),
80
+ task: Type.Optional(Type.String({ description: "Task for this parallel branch (supports interpolation)" })),
81
+ taskFile: Type.Optional(Type.String({
82
+ description: "Load-time include: a literal path, relative to the flow definition directory, whose UTF-8 body is inlined into `task` by a trusted loader (defineFile / saved flow). Mutually exclusive with `task`. Path is not interpolated.",
83
+ })),
81
84
  agent: Type.Optional(Type.String({ description: "Override the phase agent for this branch" })),
82
85
  cwd: Type.Optional(Type.String({
83
86
  description: "Working directory for this parallel branch's subagent (a literal path). Overrides the phase-level cwd for this branch only. Reserved workspace keywords ('temp'/'dedicated'/'worktree') are NOT supported per-branch (the workspace lifecycle is per-phase) — use the phase-level cwd for those.",
@@ -116,6 +119,9 @@ const PhaseSchema = Type.Object({
116
119
  type: Type.Optional(StringEnum(PHASE_TYPES, { description: "Phase kind", default: "agent" })),
117
120
  agent: Type.Optional(Type.String({ description: "Agent name to run this phase" })),
118
121
  task: Type.Optional(Type.String({ description: "Task prompt (supports interpolation placeholders)" })),
122
+ taskFile: Type.Optional(Type.String({
123
+ description: "Load-time include: a literal path, relative to the flow definition directory, whose UTF-8 body is inlined into `task` by a trusted loader (defineFile / saved flow). Mutually exclusive with `task`. Path is not interpolated. Forbidden on inline `define` and on generated `flow{def}` / expand.",
124
+ })),
119
125
  // map fan-out
120
126
  over: Type.Optional(Type.String({ description: "[map] Interpolation ref resolving to an array to fan out over" })),
121
127
  as: Type.Optional(Type.String({ description: "[map] Loop variable name (default: item)", default: "item" })),
@@ -388,7 +394,8 @@ export function isShorthand(def) {
388
394
  return false;
389
395
  return ((Array.isArray(d.chain) && d.chain.length > 0) ||
390
396
  (Array.isArray(d.tasks) && d.tasks.length > 0) ||
391
- typeof d.task === "string");
397
+ typeof d.task === "string" ||
398
+ typeof d.taskFile === "string");
392
399
  }
393
400
  /** Coerce an unknown value into a non-empty list of non-empty strings (or undefined). */
394
401
  function readContextList(v) {
@@ -402,7 +409,13 @@ function readStep(s) {
402
409
  return { task: s };
403
410
  if (s && typeof s === "object") {
404
411
  const o = s;
405
- const step = { agent: typeof o.agent === "string" ? o.agent : undefined, task: String(o.task ?? "") };
412
+ const step = { agent: typeof o.agent === "string" ? o.agent : undefined };
413
+ if (typeof o.task === "string")
414
+ step.task = o.task;
415
+ if (typeof o.taskFile === "string")
416
+ step.taskFile = o.taskFile;
417
+ if (step.task === undefined && step.taskFile === undefined)
418
+ step.task = "";
406
419
  const ctx = readContextList(o.context);
407
420
  if (ctx)
408
421
  step.context = ctx;
@@ -414,6 +427,12 @@ function readStep(s) {
414
427
  }
415
428
  return { task: "" };
416
429
  }
430
+ function applyShorthandTask(target, step) {
431
+ if (step.task !== undefined)
432
+ target.task = step.task;
433
+ if (step.taskFile !== undefined)
434
+ target.taskFile = step.taskFile;
435
+ }
417
436
  /**
418
437
  * Desugar a shorthand spec into a full Taskflow DAG. Throws if no recognizable
419
438
  * shorthand field is present. Carries through optional name/description/
@@ -453,7 +472,8 @@ export function desugar(def) {
453
472
  }
454
473
  const steps = d.chain.map(readStep);
455
474
  const phases = steps.map((s, i) => {
456
- const phase = { id: `step${i + 1}`, type: "agent", task: s.task };
475
+ const phase = { id: `step${i + 1}`, type: "agent" };
476
+ applyShorthandTask(phase, s);
457
477
  if (s.agent)
458
478
  phase.agent = s.agent;
459
479
  if (s.context)
@@ -477,7 +497,8 @@ export function desugar(def) {
477
497
  if (Array.isArray(d.tasks) && d.tasks.length > 0) {
478
498
  const steps = d.tasks.map(readStep);
479
499
  const branches = steps.map((s) => {
480
- const b = { task: s.task };
500
+ const b = {};
501
+ applyShorthandTask(b, s);
481
502
  if (s.agent)
482
503
  b.agent = s.agent;
483
504
  // Per-branch literal cwd (workspace keywords are rejected by validation).
@@ -500,8 +521,12 @@ export function desugar(def) {
500
521
  return { name: nameOf("parallel"), ...meta, phases: [phase] };
501
522
  }
502
523
  // single task → one agent phase (the spec itself is the step)
503
- if (typeof d.task === "string") {
504
- const phase = { id: "main", type: "agent", task: d.task, final: true };
524
+ if (typeof d.task === "string" || typeof d.taskFile === "string") {
525
+ const phase = { id: "main", type: "agent", final: true };
526
+ if (typeof d.task === "string")
527
+ phase.task = d.task;
528
+ if (typeof d.taskFile === "string")
529
+ phase.taskFile = d.taskFile;
505
530
  if (typeof d.agent === "string")
506
531
  phase.agent = d.agent;
507
532
  const ctx = readContextList(d.context);
@@ -812,6 +837,19 @@ export function validateTaskflow(def, opts = {}) {
812
837
  if (ids.has(p.id))
813
838
  errors.push(`Duplicate phase id: ${p.id}`);
814
839
  ids.add(p.id);
840
+ const phaseTaskFile = p.taskFile;
841
+ const hasTaskFile = typeof phaseTaskFile === "string";
842
+ if (hasTaskFile && typeof p.task === "string") {
843
+ errors.push(`Phase '${p.id}': 'task' and 'taskFile' are mutually exclusive`);
844
+ }
845
+ else if (hasTaskFile) {
846
+ if (opts.dynamic) {
847
+ errors.push(`TF_DYNAMIC_RESOURCE_FORBIDDEN: Phase '${p.id}': generated sub-flows cannot declare taskFile`);
848
+ }
849
+ else if (!opts.allowTaskFile) {
850
+ errors.push(`TF_TASKFILE_NO_PROVENANCE: Phase '${p.id}': taskFile requires a file-backed definition (defineFile or saved flow)`);
851
+ }
852
+ }
815
853
  // Array-shaped fields must actually be arrays. Several passes below (and
816
854
  // verify/compile/collectRefs downstream) iterate these; a non-array is
817
855
  // reported as a structured error here. The iteration sites use asArray() so
@@ -888,6 +926,16 @@ export function validateTaskflow(def, opts = {}) {
888
926
  p.branches.forEach((b, i) => {
889
927
  if (!b || typeof b !== "object" || Array.isArray(b))
890
928
  errors.push(`Phase '${p.id}': branches[${i}] must be an object with a 'task', got ${b === null ? "null" : typeof b}`);
929
+ else if (typeof b.task === "string" && typeof b.taskFile === "string")
930
+ errors.push(`Phase '${p.id}': branches[${i}]: 'task' and 'taskFile' are mutually exclusive`);
931
+ else if (typeof b.taskFile === "string") {
932
+ if (opts.dynamic) {
933
+ errors.push(`TF_DYNAMIC_RESOURCE_FORBIDDEN: Phase '${p.id}' branches[${i}]: generated sub-flows cannot declare taskFile`);
934
+ }
935
+ else if (!opts.allowTaskFile) {
936
+ errors.push(`TF_TASKFILE_NO_PROVENANCE: Phase '${p.id}' branches[${i}]: taskFile requires a file-backed definition (defineFile or saved flow)`);
937
+ }
938
+ }
891
939
  else if (typeof b.task !== "string")
892
940
  errors.push(`Phase '${p.id}': branches[${i}].task must be a string`);
893
941
  else {
@@ -935,14 +983,14 @@ export function validateTaskflow(def, opts = {}) {
935
983
  errors.push(`Phase '${p.id}': unknown type '${type}'`);
936
984
  // Per-type requirements
937
985
  if (type === "agent") {
938
- if (!p.task)
986
+ if (!p.task && !hasTaskFile)
939
987
  errors.push(`Phase '${p.id}' (agent) requires 'task'`);
940
988
  }
941
989
  if (type === "gate") {
942
990
  // A scoring gate can decide without an LLM task: deterministic pass →
943
991
  // auto-pass; deterministic fail → judge (when present) or explicit BLOCK.
944
992
  const hasScore = p.score !== undefined;
945
- if (!p.task && !hasScore)
993
+ if (!p.task && !hasScore && !hasTaskFile)
946
994
  errors.push(`Phase '${p.id}' (gate) requires 'task' (or 'score')`);
947
995
  }
948
996
  if (type === "gate" && Array.isArray(p.eval)) {
@@ -1039,7 +1087,7 @@ export function validateTaskflow(def, opts = {}) {
1039
1087
  errors.push(`Phase '${p.id}' (map) requires 'over'`);
1040
1088
  else if (typeof p.over !== "string")
1041
1089
  errors.push(`Phase '${p.id}' (map): 'over' must be a string interpolation ref (e.g. "{steps.scan.json}"), not a ${Array.isArray(p.over) ? "literal array" : typeof p.over}. To fan out over a fixed list, emit it from an upstream phase and reference that phase's .json.`);
1042
- if (!p.task)
1090
+ if (!p.task && !hasTaskFile)
1043
1091
  errors.push(`Phase '${p.id}' (map) requires 'task'`);
1044
1092
  }
1045
1093
  if (type === "parallel") {
@@ -1070,7 +1118,7 @@ export function validateTaskflow(def, opts = {}) {
1070
1118
  if (type === "reduce") {
1071
1119
  if (!p.from || p.from.length === 0)
1072
1120
  errors.push(`Phase '${p.id}' (reduce) requires 'from'`);
1073
- if (!p.task)
1121
+ if (!p.task && !hasTaskFile)
1074
1122
  errors.push(`Phase '${p.id}' (reduce) requires 'task'`);
1075
1123
  // reduceStrategy / batchSize (reduce-only).
1076
1124
  const strat = p.reduceStrategy;
@@ -1111,7 +1159,7 @@ export function validateTaskflow(def, opts = {}) {
1111
1159
  }
1112
1160
  }
1113
1161
  if (type === "loop") {
1114
- if (!p.task)
1162
+ if (!p.task && !hasTaskFile)
1115
1163
  errors.push(`Phase '${p.id}' (loop) requires 'task' (the iteration body)`);
1116
1164
  if (!p.until)
1117
1165
  errors.push(`Phase '${p.id}' (loop) requires 'until' (the stop condition)`);
@@ -1126,7 +1174,7 @@ export function validateTaskflow(def, opts = {}) {
1126
1174
  }
1127
1175
  if (type === "tournament") {
1128
1176
  const hasBranches = Array.isArray(p.branches) && p.branches.length > 0;
1129
- if (!hasBranches && !p.task) {
1177
+ if (!hasBranches && !p.task && !hasTaskFile) {
1130
1178
  errors.push(`Phase '${p.id}' (tournament) requires 'task' (the competitor prompt) or non-empty 'branches'`);
1131
1179
  }
1132
1180
  if (p.variants !== undefined) {