taskflow-dsl 0.2.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/LICENSE +21 -0
- package/README.md +1008 -0
- package/dist/build/erase/ast.d.ts +13 -0
- package/dist/build/erase/ast.d.ts.map +1 -0
- package/dist/build/erase/ast.js +76 -0
- package/dist/build/erase/ast.js.map +1 -0
- package/dist/build/erase/context.d.ts +18 -0
- package/dist/build/erase/context.d.ts.map +1 -0
- package/dist/build/erase/context.js +109 -0
- package/dist/build/erase/context.js.map +1 -0
- package/dist/build/erase/index.d.ts +4 -0
- package/dist/build/erase/index.d.ts.map +1 -0
- package/dist/build/erase/index.js +2 -0
- package/dist/build/erase/index.js.map +1 -0
- package/dist/build/erase/kinds/agent-script.d.ts +5 -0
- package/dist/build/erase/kinds/agent-script.d.ts.map +1 -0
- package/dist/build/erase/kinds/agent-script.js +100 -0
- package/dist/build/erase/kinds/agent-script.js.map +1 -0
- package/dist/build/erase/kinds/approval.d.ts +4 -0
- package/dist/build/erase/kinds/approval.d.ts.map +1 -0
- package/dist/build/erase/kinds/approval.js +39 -0
- package/dist/build/erase/kinds/approval.js.map +1 -0
- package/dist/build/erase/kinds/branch-opts.d.ts +10 -0
- package/dist/build/erase/kinds/branch-opts.d.ts.map +1 -0
- package/dist/build/erase/kinds/branch-opts.js +21 -0
- package/dist/build/erase/kinds/branch-opts.js.map +1 -0
- package/dist/build/erase/kinds/expand-flow.d.ts +9 -0
- package/dist/build/erase/kinds/expand-flow.d.ts.map +1 -0
- package/dist/build/erase/kinds/expand-flow.js +80 -0
- package/dist/build/erase/kinds/expand-flow.js.map +1 -0
- package/dist/build/erase/kinds/gate-sugar.d.ts +5 -0
- package/dist/build/erase/kinds/gate-sugar.d.ts.map +1 -0
- package/dist/build/erase/kinds/gate-sugar.js +98 -0
- package/dist/build/erase/kinds/gate-sugar.js.map +1 -0
- package/dist/build/erase/kinds/gate.d.ts +5 -0
- package/dist/build/erase/kinds/gate.d.ts.map +1 -0
- package/dist/build/erase/kinds/gate.js +60 -0
- package/dist/build/erase/kinds/gate.js.map +1 -0
- package/dist/build/erase/kinds/index.d.ts +9 -0
- package/dist/build/erase/kinds/index.d.ts.map +1 -0
- package/dist/build/erase/kinds/index.js +107 -0
- package/dist/build/erase/kinds/index.js.map +1 -0
- package/dist/build/erase/kinds/loop.d.ts +4 -0
- package/dist/build/erase/kinds/loop.d.ts.map +1 -0
- package/dist/build/erase/kinds/loop.js +55 -0
- package/dist/build/erase/kinds/loop.js.map +1 -0
- package/dist/build/erase/kinds/map.d.ts +4 -0
- package/dist/build/erase/kinds/map.d.ts.map +1 -0
- package/dist/build/erase/kinds/map.js +117 -0
- package/dist/build/erase/kinds/map.js.map +1 -0
- package/dist/build/erase/kinds/parallel.d.ts +4 -0
- package/dist/build/erase/kinds/parallel.d.ts.map +1 -0
- package/dist/build/erase/kinds/parallel.js +62 -0
- package/dist/build/erase/kinds/parallel.js.map +1 -0
- package/dist/build/erase/kinds/race.d.ts +4 -0
- package/dist/build/erase/kinds/race.d.ts.map +1 -0
- package/dist/build/erase/kinds/race.js +61 -0
- package/dist/build/erase/kinds/race.js.map +1 -0
- package/dist/build/erase/kinds/reduce.d.ts +4 -0
- package/dist/build/erase/kinds/reduce.d.ts.map +1 -0
- package/dist/build/erase/kinds/reduce.js +81 -0
- package/dist/build/erase/kinds/reduce.js.map +1 -0
- package/dist/build/erase/kinds/tournament.d.ts +4 -0
- package/dist/build/erase/kinds/tournament.d.ts.map +1 -0
- package/dist/build/erase/kinds/tournament.js +75 -0
- package/dist/build/erase/kinds/tournament.js.map +1 -0
- package/dist/build/erase/opts.d.ts +18 -0
- package/dist/build/erase/opts.d.ts.map +1 -0
- package/dist/build/erase/opts.js +241 -0
- package/dist/build/erase/opts.js.map +1 -0
- package/dist/build/erase/pipeline.d.ts +8 -0
- package/dist/build/erase/pipeline.d.ts.map +1 -0
- package/dist/build/erase/pipeline.js +420 -0
- package/dist/build/erase/pipeline.js.map +1 -0
- package/dist/build/erase/templates.d.ts +20 -0
- package/dist/build/erase/templates.d.ts.map +1 -0
- package/dist/build/erase/templates.js +185 -0
- package/dist/build/erase/templates.js.map +1 -0
- package/dist/build/erase/types.d.ts +31 -0
- package/dist/build/erase/types.d.ts.map +1 -0
- package/dist/build/erase/types.js +28 -0
- package/dist/build/erase/types.js.map +1 -0
- package/dist/build/erase.d.ts +4 -0
- package/dist/build/erase.d.ts.map +1 -0
- package/dist/build/erase.js +2 -0
- package/dist/build/erase.js.map +1 -0
- package/dist/build.d.ts +26 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +200 -0
- package/dist/build.js.map +1 -0
- package/dist/check.d.ts +21 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +42 -0
- package/dist/check.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +279 -0
- package/dist/cli.js.map +1 -0
- package/dist/decompile.d.ts +7 -0
- package/dist/decompile.d.ts.map +1 -0
- package/dist/decompile.js +353 -0
- package/dist/decompile.js.map +1 -0
- package/dist/diagnostics.d.ts +27 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +17 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/new-skeleton.d.ts +4 -0
- package/dist/new-skeleton.d.ts.map +1 -0
- package/dist/new-skeleton.js +22 -0
- package/dist/new-skeleton.js.map +1 -0
- package/dist/paths.d.ts +28 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +153 -0
- package/dist/paths.js.map +1 -0
- package/dist/runes.d.ts +175 -0
- package/dist/runes.d.ts.map +1 -0
- package/dist/runes.js +83 -0
- package/dist/runes.js.map +1 -0
- package/dist/typecheck.d.ts +6 -0
- package/dist/typecheck.d.ts.map +1 -0
- package/dist/typecheck.js +62 -0
- package/dist/typecheck.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional full tsc Program diagnostics for a .tf.ts file.
|
|
3
|
+
*/
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import ts from "typescript";
|
|
6
|
+
export function typecheckFile(filePath, cwd = process.cwd()) {
|
|
7
|
+
const abs = path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath);
|
|
8
|
+
const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, "tsconfig.json");
|
|
9
|
+
let options = {
|
|
10
|
+
target: ts.ScriptTarget.ES2022,
|
|
11
|
+
module: ts.ModuleKind.ESNext,
|
|
12
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
13
|
+
strict: true,
|
|
14
|
+
skipLibCheck: true,
|
|
15
|
+
noEmit: true,
|
|
16
|
+
esModuleInterop: true,
|
|
17
|
+
allowJs: false,
|
|
18
|
+
};
|
|
19
|
+
const configDiagnostics = [];
|
|
20
|
+
if (configPath) {
|
|
21
|
+
const read = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
22
|
+
if (read.error) {
|
|
23
|
+
configDiagnostics.push(read.error);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, path.dirname(configPath));
|
|
27
|
+
configDiagnostics.push(...parsed.errors);
|
|
28
|
+
options = { ...parsed.options, noEmit: true };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const host = ts.createCompilerHost(options);
|
|
32
|
+
const program = ts.createProgram([abs], options, host);
|
|
33
|
+
const diags = [
|
|
34
|
+
...program.getSyntacticDiagnostics(),
|
|
35
|
+
...program.getSemanticDiagnostics(),
|
|
36
|
+
].filter((d) => {
|
|
37
|
+
const f = d.file?.fileName;
|
|
38
|
+
if (f && path.resolve(f) !== abs)
|
|
39
|
+
return false;
|
|
40
|
+
// A phase binding may be referenced declaratively by its emitted string id
|
|
41
|
+
// (`dependsOn: ["phase-id"]`) rather than by a TS identifier. Treating that
|
|
42
|
+
// valid DSL form as TS6133 would make decompiled and hand-authored DAGs fail
|
|
43
|
+
// check even though the binding is consumed by the eraser and execution engine.
|
|
44
|
+
return d.code !== 6133;
|
|
45
|
+
});
|
|
46
|
+
return [...configDiagnostics, ...diags].map((d) => {
|
|
47
|
+
const file = d.file;
|
|
48
|
+
let range;
|
|
49
|
+
if (file && d.start !== undefined) {
|
|
50
|
+
const { line, character } = file.getLineAndCharacterOfPosition(d.start);
|
|
51
|
+
range = { line: line + 1, character: character + 1 };
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
code: `TS${d.code}`,
|
|
55
|
+
severity: d.category === ts.DiagnosticCategory.Error ? "error" : "warning",
|
|
56
|
+
message: ts.flattenDiagnosticMessageText(d.messageText, "\n"),
|
|
57
|
+
file: file?.fileName ?? abs,
|
|
58
|
+
range,
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=typecheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../src/typecheck.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "taskflow-dsl",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Compile-time TypeScript DSL frontend for taskflow: erase .tf.ts runes to Taskflow JSON, then FlowIR via taskflow-core.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"taskflow",
|
|
7
|
+
"dsl",
|
|
8
|
+
"typescript",
|
|
9
|
+
"dag",
|
|
10
|
+
"orchestration"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": "heggria <bshengtao@gmail.com>",
|
|
14
|
+
"homepage": "https://github.com/heggria/taskflow#readme",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/heggria/taskflow.git",
|
|
18
|
+
"directory": "packages/taskflow-dsl"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/heggria/taskflow/issues"
|
|
22
|
+
},
|
|
23
|
+
"type": "module",
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=22.19.0"
|
|
26
|
+
},
|
|
27
|
+
"main": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"bin": {
|
|
30
|
+
"taskflow-dsl": "./dist/cli.js"
|
|
31
|
+
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"default": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./build": {
|
|
38
|
+
"types": "./dist/build.d.ts",
|
|
39
|
+
"default": "./dist/build.js"
|
|
40
|
+
},
|
|
41
|
+
"./check": {
|
|
42
|
+
"types": "./dist/check.d.ts",
|
|
43
|
+
"default": "./dist/check.js"
|
|
44
|
+
},
|
|
45
|
+
"./decompile": {
|
|
46
|
+
"types": "./dist/decompile.d.ts",
|
|
47
|
+
"default": "./dist/decompile.js"
|
|
48
|
+
},
|
|
49
|
+
"./diagnostics": {
|
|
50
|
+
"types": "./dist/diagnostics.d.ts",
|
|
51
|
+
"default": "./dist/diagnostics.js"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"dist"
|
|
56
|
+
],
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"typescript": "^6.0.3",
|
|
59
|
+
"taskflow-core": "0.2.0"
|
|
60
|
+
},
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json && node ../../scripts/copy-readme.mjs taskflow-dsl",
|
|
66
|
+
"test:e2e": "node --experimental-strip-types test/e2e-dist-cli.mts"
|
|
67
|
+
}
|
|
68
|
+
}
|