@galaxy-tool-util/schema 0.2.0 → 0.4.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/index.d.ts +75 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/type-guards.d.ts +14 -0
- package/dist/schema/type-guards.d.ts.map +1 -0
- package/dist/schema/type-guards.js +25 -0
- package/dist/schema/type-guards.js.map +1 -0
- package/dist/test-format/cross-check/check.d.ts +18 -0
- package/dist/test-format/cross-check/check.d.ts.map +1 -0
- package/dist/test-format/cross-check/check.js +89 -0
- package/dist/test-format/cross-check/check.js.map +1 -0
- package/dist/test-format/cross-check/extract-format2.d.ts +13 -0
- package/dist/test-format/cross-check/extract-format2.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract-format2.js +98 -0
- package/dist/test-format/cross-check/extract-format2.js.map +1 -0
- package/dist/test-format/cross-check/extract-native.d.ts +4 -0
- package/dist/test-format/cross-check/extract-native.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract-native.js +89 -0
- package/dist/test-format/cross-check/extract-native.js.map +1 -0
- package/dist/test-format/cross-check/extract.d.ts +9 -0
- package/dist/test-format/cross-check/extract.d.ts.map +1 -0
- package/dist/test-format/cross-check/extract.js +16 -0
- package/dist/test-format/cross-check/extract.js.map +1 -0
- package/dist/test-format/cross-check/index.d.ts +7 -0
- package/dist/test-format/cross-check/index.d.ts.map +1 -0
- package/dist/test-format/cross-check/index.js +6 -0
- package/dist/test-format/cross-check/index.js.map +1 -0
- package/dist/test-format/cross-check/type-compat.d.ts +23 -0
- package/dist/test-format/cross-check/type-compat.d.ts.map +1 -0
- package/dist/test-format/cross-check/type-compat.js +48 -0
- package/dist/test-format/cross-check/type-compat.js.map +1 -0
- package/dist/test-format/cross-check/types.d.ts +23 -0
- package/dist/test-format/cross-check/types.d.ts.map +1 -0
- package/dist/test-format/cross-check/types.js +10 -0
- package/dist/test-format/cross-check/types.js.map +1 -0
- package/dist/test-format/index.d.ts +3 -0
- package/dist/test-format/index.d.ts.map +1 -0
- package/dist/test-format/index.js +3 -0
- package/dist/test-format/index.js.map +1 -0
- package/dist/test-format/tests.schema.generated.d.ts +5610 -0
- package/dist/test-format/tests.schema.generated.d.ts.map +1 -0
- package/dist/test-format/tests.schema.generated.js +6899 -0
- package/dist/test-format/tests.schema.generated.js.map +1 -0
- package/dist/test-format/validate.d.ts +20 -0
- package/dist/test-format/validate.d.ts.map +1 -0
- package/dist/test-format/validate.js +41 -0
- package/dist/test-format/validate.js.map +1 -0
- package/dist/tool-state-validator.d.ts +23 -0
- package/dist/tool-state-validator.d.ts.map +1 -0
- package/dist/tool-state-validator.js +59 -0
- package/dist/tool-state-validator.js.map +1 -0
- package/dist/workflow/clean.d.ts +29 -3
- package/dist/workflow/clean.d.ts.map +1 -1
- package/dist/workflow/clean.js +199 -28
- package/dist/workflow/clean.js.map +1 -1
- package/dist/workflow/index.d.ts +13 -5
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +13 -3
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/lint-profiles.d.ts +27 -0
- package/dist/workflow/lint-profiles.d.ts.map +1 -0
- package/dist/workflow/lint-profiles.js +49 -0
- package/dist/workflow/lint-profiles.js.map +1 -0
- package/dist/workflow/lint-rules.d.ts +15 -0
- package/dist/workflow/lint-rules.d.ts.map +1 -0
- package/dist/workflow/lint-rules.js +15 -0
- package/dist/workflow/lint-rules.js.map +1 -0
- package/dist/workflow/lint.d.ts +4 -18
- package/dist/workflow/lint.d.ts.map +1 -1
- package/dist/workflow/lint.js +9 -30
- package/dist/workflow/lint.js.map +1 -1
- package/dist/workflow/lint_profiles.yml +41 -0
- package/dist/workflow/linting.d.ts +54 -0
- package/dist/workflow/linting.d.ts.map +1 -0
- package/dist/workflow/linting.js +71 -0
- package/dist/workflow/linting.js.map +1 -0
- package/dist/workflow/param-navigation.d.ts +26 -0
- package/dist/workflow/param-navigation.d.ts.map +1 -0
- package/dist/workflow/param-navigation.js +60 -0
- package/dist/workflow/param-navigation.js.map +1 -0
- package/dist/workflow/raw/gxformat2.effect.d.ts +341 -117
- package/dist/workflow/raw/gxformat2.effect.d.ts.map +1 -1
- package/dist/workflow/raw/gxformat2.effect.js +107 -109
- package/dist/workflow/raw/gxformat2.effect.js.map +1 -1
- package/dist/workflow/raw/native.d.ts +2 -2
- package/dist/workflow/raw/native.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.d.ts +150 -3
- package/dist/workflow/raw/native.effect.d.ts.map +1 -1
- package/dist/workflow/raw/native.effect.js +3 -5
- package/dist/workflow/raw/native.effect.js.map +1 -1
- package/dist/workflow/report-models.d.ts +412 -0
- package/dist/workflow/report-models.d.ts.map +1 -0
- package/dist/workflow/report-models.js +342 -0
- package/dist/workflow/report-models.js.map +1 -0
- package/dist/workflow/roundtrip.d.ts +31 -8
- package/dist/workflow/roundtrip.d.ts.map +1 -1
- package/dist/workflow/roundtrip.js +107 -26
- package/dist/workflow/roundtrip.js.map +1 -1
- package/dist/workflow/schema-rules.d.ts +38 -0
- package/dist/workflow/schema-rules.d.ts.map +1 -0
- package/dist/workflow/schema-rules.js +28 -0
- package/dist/workflow/schema-rules.js.map +1 -0
- package/dist/workflow/schema_rules.yml +69 -0
- package/dist/workflow/serialize.d.ts +30 -0
- package/dist/workflow/serialize.d.ts.map +1 -0
- package/dist/workflow/serialize.js +37 -0
- package/dist/workflow/serialize.js.map +1 -0
- package/dist/workflow/state-merge.d.ts +15 -32
- package/dist/workflow/state-merge.d.ts.map +1 -1
- package/dist/workflow/state-merge.js +30 -207
- package/dist/workflow/state-merge.js.map +1 -1
- package/dist/workflow/stateful-validate.d.ts +21 -0
- package/dist/workflow/stateful-validate.d.ts.map +1 -1
- package/dist/workflow/stateful-validate.js +27 -0
- package/dist/workflow/stateful-validate.js.map +1 -1
- package/dist/workflow/strict-checks.d.ts +22 -0
- package/dist/workflow/strict-checks.d.ts.map +1 -0
- package/dist/workflow/strict-checks.js +95 -0
- package/dist/workflow/strict-checks.js.map +1 -0
- package/dist/workflow/tool-state-io.d.ts +14 -0
- package/dist/workflow/tool-state-io.d.ts.map +1 -0
- package/dist/workflow/tool-state-io.js +33 -0
- package/dist/workflow/tool-state-io.js.map +1 -0
- package/dist/workflow/validators.d.ts +34 -0
- package/dist/workflow/validators.d.ts.map +1 -0
- package/dist/workflow/validators.js +83 -0
- package/dist/workflow/validators.js.map +1 -0
- package/dist/workflow/walk-helpers.d.ts +29 -0
- package/dist/workflow/walk-helpers.d.ts.map +1 -0
- package/dist/workflow/walk-helpers.js +89 -0
- package/dist/workflow/walk-helpers.js.map +1 -0
- package/dist/workflow/walker.d.ts +2 -0
- package/dist/workflow/walker.d.ts.map +1 -1
- package/dist/workflow/walker.js +16 -6
- package/dist/workflow/walker.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured report models for CLI and API output.
|
|
3
|
+
*
|
|
4
|
+
* These types mirror Python's `galaxy.tool_util.workflow_state._report_models`
|
|
5
|
+
* exactly — field names are snake_case, status literals match, and JSON shape
|
|
6
|
+
* is identical so that the same frontend rendering code works for both.
|
|
7
|
+
*
|
|
8
|
+
* Hierarchy:
|
|
9
|
+
* Step-level → Single-workflow wrappers → Tree-level reports
|
|
10
|
+
*/
|
|
11
|
+
export const SKIP_STATUSES = new Set([
|
|
12
|
+
"skip_tool_not_found",
|
|
13
|
+
"skip_replacement_params",
|
|
14
|
+
]);
|
|
15
|
+
// ── Builder helpers ──────────────────────────────────────────────────
|
|
16
|
+
/** Compute summary counts for a list of step results. */
|
|
17
|
+
export function validationSummary(results) {
|
|
18
|
+
let ok = 0;
|
|
19
|
+
let fail = 0;
|
|
20
|
+
let skip = 0;
|
|
21
|
+
for (const r of results) {
|
|
22
|
+
if (r.status === "ok")
|
|
23
|
+
ok++;
|
|
24
|
+
else if (r.status === "fail")
|
|
25
|
+
fail++;
|
|
26
|
+
else
|
|
27
|
+
skip++;
|
|
28
|
+
}
|
|
29
|
+
return { ok, fail, skip };
|
|
30
|
+
}
|
|
31
|
+
/** Build flat failure list from step results (for template rendering). */
|
|
32
|
+
export function validationFailures(results) {
|
|
33
|
+
const out = [];
|
|
34
|
+
for (const sr of results) {
|
|
35
|
+
if (sr.status !== "fail")
|
|
36
|
+
continue;
|
|
37
|
+
for (const err of sr.errors) {
|
|
38
|
+
out.push({ step: sr.step, tool_id: sr.tool_id, message: err });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/** Compute display_label matching Python's CleanStepResult. */
|
|
44
|
+
export function cleanDisplayLabel(tool_id, version) {
|
|
45
|
+
let label = tool_id ?? "unknown";
|
|
46
|
+
if (version)
|
|
47
|
+
label += ` ${version}`;
|
|
48
|
+
return label;
|
|
49
|
+
}
|
|
50
|
+
/** Compute category from a relative path (directory portion, or "(root)"). */
|
|
51
|
+
export function categoryOf(relativePath) {
|
|
52
|
+
const lastSlash = relativePath.lastIndexOf("/");
|
|
53
|
+
if (lastSlash < 0)
|
|
54
|
+
return "(root)";
|
|
55
|
+
const dir = relativePath.slice(0, lastSlash);
|
|
56
|
+
return dir || "(root)";
|
|
57
|
+
}
|
|
58
|
+
/** Extract basename from a path (portion after last slash). Avoids node:path for browser compat. */
|
|
59
|
+
function baseName(path) {
|
|
60
|
+
const lastSlash = path.lastIndexOf("/");
|
|
61
|
+
return lastSlash < 0 ? path : path.slice(lastSlash + 1);
|
|
62
|
+
}
|
|
63
|
+
/** Group results by category, sorted by name. */
|
|
64
|
+
export function groupByCategory(results) {
|
|
65
|
+
const groups = new Map();
|
|
66
|
+
for (const r of results) {
|
|
67
|
+
const cat = r.category || "(root)";
|
|
68
|
+
let list = groups.get(cat);
|
|
69
|
+
if (!list) {
|
|
70
|
+
list = [];
|
|
71
|
+
groups.set(cat, list);
|
|
72
|
+
}
|
|
73
|
+
list.push(r);
|
|
74
|
+
}
|
|
75
|
+
return Array.from(groups.entries())
|
|
76
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
77
|
+
.map(([name, results]) => ({ name, results }));
|
|
78
|
+
}
|
|
79
|
+
// ── Single-workflow report builders ──────────────────────────────────
|
|
80
|
+
export function buildSingleValidationReport(workflow, results, opts) {
|
|
81
|
+
return {
|
|
82
|
+
workflow,
|
|
83
|
+
results,
|
|
84
|
+
connection_report: null,
|
|
85
|
+
skipped_reason: opts?.skipped_reason ?? null,
|
|
86
|
+
structure_errors: opts?.structure_errors ?? [],
|
|
87
|
+
encoding_errors: opts?.encoding_errors ?? [],
|
|
88
|
+
summary: validationSummary(results),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function buildSingleLintReport(workflow, lint_errors, lint_warnings, results, opts) {
|
|
92
|
+
const summary = validationSummary(results);
|
|
93
|
+
return {
|
|
94
|
+
workflow,
|
|
95
|
+
lint_errors,
|
|
96
|
+
lint_warnings,
|
|
97
|
+
results,
|
|
98
|
+
structure_errors: opts?.structure_errors ?? [],
|
|
99
|
+
encoding_errors: opts?.encoding_errors ?? [],
|
|
100
|
+
summary: {
|
|
101
|
+
lint_errors,
|
|
102
|
+
lint_warnings,
|
|
103
|
+
state_ok: summary.ok,
|
|
104
|
+
state_fail: summary.fail,
|
|
105
|
+
state_skip: summary.skip,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function buildSingleCleanReport(workflow, results) {
|
|
110
|
+
return {
|
|
111
|
+
workflow,
|
|
112
|
+
results,
|
|
113
|
+
total_removed: results.reduce((n, r) => n + r.removed_keys.length, 0),
|
|
114
|
+
steps_with_removals: results.filter((r) => r.removed_keys.length > 0).length,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// ── Tree workflow-level result builders ──────────────────────────────
|
|
118
|
+
export function buildWorkflowValidationResult(relativePath, stepResults, opts) {
|
|
119
|
+
const hasError = !!(opts?.error || opts?.skipped_reason);
|
|
120
|
+
return {
|
|
121
|
+
path: relativePath,
|
|
122
|
+
category: categoryOf(relativePath),
|
|
123
|
+
name: baseName(relativePath),
|
|
124
|
+
error: opts?.error ?? null,
|
|
125
|
+
skipped_reason: opts?.skipped_reason ?? null,
|
|
126
|
+
results: stepResults,
|
|
127
|
+
connection_report: null,
|
|
128
|
+
summary: hasError ? null : validationSummary(stepResults),
|
|
129
|
+
failures: hasError ? null : validationFailures(stepResults),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export function buildLintWorkflowResult(relativePath, lint_errors, lint_warnings, stepResults, opts) {
|
|
133
|
+
const hasError = !!(opts?.error || opts?.skipped_reason);
|
|
134
|
+
return {
|
|
135
|
+
path: relativePath,
|
|
136
|
+
category: categoryOf(relativePath),
|
|
137
|
+
name: baseName(relativePath),
|
|
138
|
+
error: opts?.error ?? null,
|
|
139
|
+
skipped_reason: opts?.skipped_reason ?? null,
|
|
140
|
+
lint_errors,
|
|
141
|
+
lint_warnings,
|
|
142
|
+
results: stepResults,
|
|
143
|
+
step_counts: hasError ? null : validationSummary(stepResults),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export function buildWorkflowCleanResult(relativePath, stepResults, opts) {
|
|
147
|
+
return {
|
|
148
|
+
path: relativePath,
|
|
149
|
+
category: categoryOf(relativePath),
|
|
150
|
+
name: baseName(relativePath),
|
|
151
|
+
error: opts?.error ?? null,
|
|
152
|
+
skipped_reason: opts?.skipped_reason ?? null,
|
|
153
|
+
results: stepResults,
|
|
154
|
+
total_removed: stepResults.reduce((n, r) => n + r.removed_keys.length, 0),
|
|
155
|
+
steps_affected: stepResults.filter((r) => r.removed_keys.length > 0).length,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// ── Tree report builders ─────────────────────────────────────────────
|
|
159
|
+
export function buildTreeValidationReport(root, workflows) {
|
|
160
|
+
let ok = 0;
|
|
161
|
+
let fail = 0;
|
|
162
|
+
let skip = 0;
|
|
163
|
+
let error = 0;
|
|
164
|
+
let skipped = 0;
|
|
165
|
+
const all_failures = [];
|
|
166
|
+
for (const r of workflows) {
|
|
167
|
+
if (r.skipped_reason) {
|
|
168
|
+
skipped++;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
if (r.error) {
|
|
172
|
+
error++;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
for (const sr of r.results) {
|
|
176
|
+
if (sr.status === "ok")
|
|
177
|
+
ok++;
|
|
178
|
+
else if (sr.status === "fail")
|
|
179
|
+
fail++;
|
|
180
|
+
else
|
|
181
|
+
skip++;
|
|
182
|
+
}
|
|
183
|
+
for (const f of r.failures ?? []) {
|
|
184
|
+
all_failures.push({ workflow: r.path, ...f });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
root,
|
|
189
|
+
workflows,
|
|
190
|
+
categories: groupByCategory(workflows),
|
|
191
|
+
all_failures,
|
|
192
|
+
summary: { ok, fail, skip, error, skipped },
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export function buildLintTreeReport(root, workflows) {
|
|
196
|
+
let lint_errors = 0;
|
|
197
|
+
let lint_warnings = 0;
|
|
198
|
+
let state_ok = 0;
|
|
199
|
+
let state_fail = 0;
|
|
200
|
+
let state_skip = 0;
|
|
201
|
+
let errors = 0;
|
|
202
|
+
let skipped = 0;
|
|
203
|
+
for (const r of workflows) {
|
|
204
|
+
if (r.skipped_reason) {
|
|
205
|
+
skipped++;
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
if (r.error) {
|
|
209
|
+
errors++;
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
lint_errors += r.lint_errors;
|
|
213
|
+
lint_warnings += r.lint_warnings;
|
|
214
|
+
for (const sr of r.results) {
|
|
215
|
+
if (sr.status === "ok")
|
|
216
|
+
state_ok++;
|
|
217
|
+
else if (sr.status === "fail")
|
|
218
|
+
state_fail++;
|
|
219
|
+
else
|
|
220
|
+
state_skip++;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
root,
|
|
225
|
+
workflows,
|
|
226
|
+
categories: groupByCategory(workflows),
|
|
227
|
+
summary: { lint_errors, lint_warnings, state_ok, state_fail, state_skip, errors, skipped },
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export function buildWorkflowExportResult(relativePath, opts = {}) {
|
|
231
|
+
const { ok = false, steps_converted = 0, steps_fallback = 0, error = null, skipped_reason = null, } = opts;
|
|
232
|
+
let status;
|
|
233
|
+
if (error)
|
|
234
|
+
status = "error";
|
|
235
|
+
else if (skipped_reason)
|
|
236
|
+
status = "skipped";
|
|
237
|
+
else if (ok)
|
|
238
|
+
status = "ok";
|
|
239
|
+
else
|
|
240
|
+
status = "partial";
|
|
241
|
+
return {
|
|
242
|
+
path: relativePath,
|
|
243
|
+
category: categoryOf(relativePath),
|
|
244
|
+
name: baseName(relativePath),
|
|
245
|
+
error,
|
|
246
|
+
skipped_reason,
|
|
247
|
+
ok,
|
|
248
|
+
steps_converted,
|
|
249
|
+
steps_fallback,
|
|
250
|
+
status,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
export function buildExportTreeReport(root, output_dir, workflows) {
|
|
254
|
+
const ok = workflows.filter((r) => r.ok && !r.error && !r.skipped_reason).length;
|
|
255
|
+
const fail = workflows.filter((r) => !!r.error).length;
|
|
256
|
+
const skipped = workflows.filter((r) => !!r.skipped_reason).length;
|
|
257
|
+
return { root, output_dir, workflows, summary: { ok, fail, skipped } };
|
|
258
|
+
}
|
|
259
|
+
export function buildWorkflowToNativeResult(relativePath, opts = {}) {
|
|
260
|
+
const { ok = false, steps_encoded = 0, steps_fallback = 0, error = null, skipped_reason = null, } = opts;
|
|
261
|
+
let status;
|
|
262
|
+
if (error)
|
|
263
|
+
status = "error";
|
|
264
|
+
else if (skipped_reason)
|
|
265
|
+
status = "skipped";
|
|
266
|
+
else if (ok)
|
|
267
|
+
status = "ok";
|
|
268
|
+
else
|
|
269
|
+
status = "partial";
|
|
270
|
+
return {
|
|
271
|
+
path: relativePath,
|
|
272
|
+
category: categoryOf(relativePath),
|
|
273
|
+
name: baseName(relativePath),
|
|
274
|
+
error,
|
|
275
|
+
skipped_reason,
|
|
276
|
+
ok,
|
|
277
|
+
steps_encoded,
|
|
278
|
+
steps_fallback,
|
|
279
|
+
status,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
export function buildToNativeTreeReport(root, output_dir, workflows) {
|
|
283
|
+
const ok = workflows.filter((r) => r.ok && !r.error && !r.skipped_reason).length;
|
|
284
|
+
const fail = workflows.filter((r) => !!r.error).length;
|
|
285
|
+
const skipped = workflows.filter((r) => !!r.skipped_reason).length;
|
|
286
|
+
return { root, output_dir, workflows, summary: { ok, fail, skipped } };
|
|
287
|
+
}
|
|
288
|
+
export function buildRoundTripTreeReport(root, workflows) {
|
|
289
|
+
let clean = 0, benign_only = 0, fail = 0, error = 0, skipped = 0;
|
|
290
|
+
for (const r of workflows) {
|
|
291
|
+
const status = r.status;
|
|
292
|
+
if (status === "skipped")
|
|
293
|
+
skipped++;
|
|
294
|
+
else if (status === "error")
|
|
295
|
+
error++;
|
|
296
|
+
else if (status === "ok") {
|
|
297
|
+
if (r.benign_diffs.length > 0)
|
|
298
|
+
benign_only++;
|
|
299
|
+
else
|
|
300
|
+
clean++;
|
|
301
|
+
}
|
|
302
|
+
else
|
|
303
|
+
fail++;
|
|
304
|
+
}
|
|
305
|
+
const tool_failure_modes = [];
|
|
306
|
+
return {
|
|
307
|
+
root,
|
|
308
|
+
workflows,
|
|
309
|
+
total: workflows.length,
|
|
310
|
+
summary: { clean, benign_only, fail, error, skipped },
|
|
311
|
+
tool_failure_modes,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
export function buildTreeCleanReport(root, workflows) {
|
|
315
|
+
let total_keys = 0;
|
|
316
|
+
let affected = 0;
|
|
317
|
+
let clean = 0;
|
|
318
|
+
let errors = 0;
|
|
319
|
+
let skipped = 0;
|
|
320
|
+
for (const r of workflows) {
|
|
321
|
+
if (r.skipped_reason) {
|
|
322
|
+
skipped++;
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
if (r.error) {
|
|
326
|
+
errors++;
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
total_keys += r.total_removed;
|
|
330
|
+
if (r.total_removed > 0)
|
|
331
|
+
affected++;
|
|
332
|
+
else
|
|
333
|
+
clean++;
|
|
334
|
+
}
|
|
335
|
+
return {
|
|
336
|
+
root,
|
|
337
|
+
workflows,
|
|
338
|
+
categories: groupByCategory(workflows),
|
|
339
|
+
summary: { total_keys, affected, clean, errors, skipped },
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=report-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-models.js","sourceRoot":"","sources":["../../src/workflow/report-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import type { StepConversionStatus, ToolInputsResolver } from "./normalized/stateful-runner.js";
|
|
2
|
+
import type { DiffSeverity, StepDiff } from "./report-models.js";
|
|
3
|
+
/**
|
|
4
|
+
* TS-internal failure class for roundtrip steps. Intentionally narrower than
|
|
5
|
+
* the Python-API-mirror `FailureClass` in `report-models.ts`.
|
|
6
|
+
*
|
|
7
|
+
* Gap vs `FailureClass`: Python has `"native_validation"`, `"type_not_handled"`,
|
|
8
|
+
* `"format2_validation"`, `"parse_error"`, `"other"` which the TS roundtrip
|
|
9
|
+
* algorithm does not produce. TS has `"subworkflow_external_ref"` which has no
|
|
10
|
+
* direct Python equivalent (closest: Python's `"subworkflow"`).
|
|
11
|
+
*
|
|
12
|
+
* If building a `StepResult` (Python API shape) from a `StepRoundtripResult`,
|
|
13
|
+
* map `"subworkflow_external_ref"` → `null` or add it to `FailureClass`.
|
|
14
|
+
*/
|
|
2
15
|
export type RoundtripFailureClass = "conversion_error" | "reimport_error" | "roundtrip_mismatch"
|
|
3
16
|
/** Subworkflow ref was an external URL/TRS string — inline steps not available for diff. */
|
|
4
17
|
| "subworkflow_external_ref";
|
|
5
|
-
export type DiffSeverity
|
|
18
|
+
export type { DiffSeverity, StepDiff };
|
|
6
19
|
export type BenignArtifactKind = "type_coercion" | "multi_select_normalized" | "all_null_section_omitted" | "empty_container_omitted" | "connection_only_section_omitted" | "bookkeeping_stripped"
|
|
7
20
|
/**
|
|
8
21
|
* Runtime-leak key (`__workflow_invocation_uuid__` or `*|__identifier__`)
|
|
@@ -10,12 +23,6 @@ export type BenignArtifactKind = "type_coercion" | "multi_select_normalized" | "
|
|
|
10
23
|
* stateful conversion; mirrors Galaxy's `RUNTIME_LEAK` classification.
|
|
11
24
|
*/
|
|
12
25
|
| "runtime_leak_stripped";
|
|
13
|
-
export interface StepDiff {
|
|
14
|
-
path: string;
|
|
15
|
-
severity: DiffSeverity;
|
|
16
|
-
kind?: BenignArtifactKind;
|
|
17
|
-
message: string;
|
|
18
|
-
}
|
|
19
26
|
export interface StepRoundtripResult {
|
|
20
27
|
stepId: string;
|
|
21
28
|
toolId?: string;
|
|
@@ -41,6 +48,22 @@ export interface RoundtripResult {
|
|
|
41
48
|
success: boolean;
|
|
42
49
|
/** No diffs at all (clean roundtrip). */
|
|
43
50
|
clean: boolean;
|
|
51
|
+
/** Strict-encoding errors across all stages (input, forward output, reverse output). */
|
|
52
|
+
encodingErrors: string[];
|
|
53
|
+
/** Strict-structure errors across all stages (input, forward output, reverse output). */
|
|
54
|
+
structureErrors: string[];
|
|
55
|
+
/**
|
|
56
|
+
* The re-imported native workflow dict (result of format2→native reverse pass).
|
|
57
|
+
* Only populated on successful roundtrip. Cast to Record<string, unknown> for
|
|
58
|
+
* serialization (same pattern as operateToNative in the server layer).
|
|
59
|
+
*/
|
|
60
|
+
reimportedWorkflow?: unknown;
|
|
61
|
+
}
|
|
62
|
+
/** Options controlling strict validation within roundtripValidate. */
|
|
63
|
+
export interface RoundtripStrictOptions {
|
|
64
|
+
strictEncoding?: boolean;
|
|
65
|
+
strictStructure?: boolean;
|
|
66
|
+
strictState?: boolean;
|
|
44
67
|
}
|
|
45
68
|
/**
|
|
46
69
|
* Roundtrip a native workflow through format2 and back, diffing each
|
|
@@ -50,5 +73,5 @@ export interface RoundtripResult {
|
|
|
50
73
|
* Returns `success=true` iff no error-severity diffs and no conversion
|
|
51
74
|
* failures. `clean=true` iff there are zero diffs of any severity.
|
|
52
75
|
*/
|
|
53
|
-
export declare function roundtripValidate(nativeRaw: unknown, toolInputsResolver: ToolInputsResolver): RoundtripResult;
|
|
76
|
+
export declare function roundtripValidate(nativeRaw: unknown, toolInputsResolver: ToolInputsResolver, strictOpts?: RoundtripStrictOptions): RoundtripResult;
|
|
54
77
|
//# sourceMappingURL=roundtrip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundtrip.d.ts","sourceRoot":"","sources":["../../src/workflow/roundtrip.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"roundtrip.d.ts","sourceRoot":"","sources":["../../src/workflow/roundtrip.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAMhG,OAAO,KAAK,EAAkB,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAIjF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB;AACtB,4FAA4F;GAC1F,0BAA0B,CAAC;AAE/B,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEvC,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,yBAAyB,GACzB,0BAA0B,GAC1B,yBAAyB,GACzB,iCAAiC,GACjC,sBAAsB;AACxB;;;;GAIG;GACD,uBAAuB,CAAC;AAO5B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,yEAAyE;IACzE,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yFAAyF;IACzF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoYD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,CAAC,EAAE,sBAAsB,GAClC,eAAe,CAiOjB"}
|