@galaxy-tool-util/cli 1.5.0 → 1.6.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.
@@ -4,4 +4,4 @@ export interface DraftExtractOptions {
4
4
  format?: string;
5
5
  }
6
6
  export declare function runDraftExtract(filePath: string, opts: DraftExtractOptions): Promise<void>;
7
- //# sourceMappingURL=_draft-extract.d.ts.map
7
+ //# sourceMappingURL=draft-extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-extract.d.ts","sourceRoot":"","sources":["../../src/commands/draft-extract.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDhG"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * `gxwf _draft-extract` — extract the concrete subset of a draft workflow.
2
+ * `gxwf draft-extract` — extract the concrete subset of a draft workflow.
3
3
  *
4
- * Hidden agent-loop command: runs `extractConcreteSubset` from
5
- * @galaxy-tool-util/schema, strips `_plan_*` planning fields, and promotes
6
- * `class: GalaxyWorkflowDraft` `class: GalaxyWorkflow` on any
7
- * (sub)workflow that is now fully concrete. Emits the trimmed workflow to
8
- * stdout (or `-o` file) and an optional sidecar JSON report.
4
+ * Runs `extractConcreteSubset` from @galaxy-tool-util/schema, strips
5
+ * `_plan_*` planning fields, and promotes `class: GalaxyWorkflowDraft` →
6
+ * `class: GalaxyWorkflow` on any (sub)workflow that is now fully concrete.
7
+ * Emits the trimmed workflow to stdout (or `-o` file) and an optional
8
+ * sidecar JSON report.
9
9
  *
10
10
  * Exit codes:
11
11
  * 0 — input parses + extract ran (including empty-extract case)
@@ -33,7 +33,7 @@ export async function runDraftExtract(filePath, opts) {
33
33
  }
34
34
  const format = resolveFormat(data, opts.format);
35
35
  if (format === "native") {
36
- console.error("_draft-extract requires format2 — native workflows cannot be drafts");
36
+ console.error("draft-extract requires format2 — native workflows cannot be drafts");
37
37
  process.exitCode = 2;
38
38
  return;
39
39
  }
@@ -72,4 +72,4 @@ function outputFormatFor(output, fallback) {
72
72
  return "native";
73
73
  return "format2";
74
74
  }
75
- //# sourceMappingURL=_draft-extract.js.map
75
+ //# sourceMappingURL=draft-extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-extract.js","sourceRoot":"","sources":["../../src/commands/draft-extract.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
- export interface DraftValidateOptions {
1
+ import { type StrictOptions } from "./strict-options.js";
2
+ export interface DraftValidateOptions extends StrictOptions {
2
3
  format?: string;
3
4
  json?: boolean;
4
5
  reportHtml?: string | boolean;
5
6
  reportMarkdown?: string | boolean;
7
+ concrete?: boolean;
8
+ cacheDir?: string;
9
+ toolState?: boolean;
10
+ connections?: boolean;
6
11
  }
7
12
  export declare function runDraftValidate(filePath: string, opts: DraftValidateOptions): Promise<void>;
8
13
  //# sourceMappingURL=draft-validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft-validate.d.ts","sourceRoot":"","sources":["../../src/commands/draft-validate.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAkCf"}
1
+ {"version":3,"file":"draft-validate.d.ts","sourceRoot":"","sources":["../../src/commands/draft-validate.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI/E,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -5,15 +5,42 @@
5
5
  * Wraps `validateDraft` from @galaxy-tool-util/schema. Single-file only; the
6
6
  * tree variant is deferred to workstream v2.
7
7
  *
8
+ * With `--concrete`, additionally runs the `draft-extract` pipeline
9
+ * (extractConcreteSubset + stripPlanFields + promoteFullyConcreteDrafts) and
10
+ * runs the regular `gxwf validate` checks on the trimmed workflow:
11
+ * - structural decode (always)
12
+ * - --strict-structure / --strict-encoding (when the strict flags are set)
13
+ * - tool-state validation (default on, --no-tool-state to skip, --cache-dir
14
+ * selects the cache)
15
+ * - --strict-state (when set, escalates skipped tool-state steps to errors)
16
+ * - --connections (when set, runs connection-type compatibility)
17
+ *
18
+ * When the extracted subset is still a draft (not fully promoted), every
19
+ * concrete-stage check is skipped, not failed. The concrete pass is also
20
+ * skipped entirely when the draft has structural errors (the projection
21
+ * isn't trustworthy in that case).
22
+ *
23
+ * Exit-code differences vs. `gxwf validate`: `gxwf validate` exits 2 on
24
+ * strict-structure / strict-encoding failures; here, those roll into the
25
+ * concrete report and escalate to exit 1 — the draft itself parsed; only the
26
+ * projection failed.
27
+ *
8
28
  * Exit codes (per workstream C):
9
29
  * 0 — clean draft (no structure/topology/semantic errors; warnings allowed)
10
- * 1 — draft validation errors (topology or semantic errors)
30
+ * 1 — draft validation errors (topology or semantic errors), OR --concrete
31
+ * checks surfaced any failure
11
32
  * 2 — parse failure, format mismatch, or structural decode failure
12
33
  * (class !== GalaxyWorkflowDraft, schema decode error)
13
34
  */
14
- import { buildSingleDraftValidationReport, resolveFormat, validateDraft, } from "@galaxy-tool-util/schema";
35
+ import { dirname } from "node:path";
36
+ import { makeNodeToolCache } from "@galaxy-tool-util/core/node";
37
+ import { buildSingleDraftValidationReport, checkStrictEncoding, checkStrictStructure, extractConcreteSubset, promoteFullyConcreteDrafts, resolveFormat, stripPlanFields, validateDraft, } from "@galaxy-tool-util/schema";
38
+ import { decodeStructureErrors, validateFormat2Steps } from "./validate-workflow.js";
15
39
  import { readWorkflowFile } from "./workflow-io.js";
16
40
  import { findStdoutSinkConflict, writeReportHtml, writeReportOutput } from "./report-output.js";
41
+ import { resolveStrictOptions } from "./strict-options.js";
42
+ import { buildConnectionReport } from "./connection-validation.js";
43
+ import { createDefaultResolver } from "./url-resolver.js";
17
44
  export async function runDraftValidate(filePath, opts) {
18
45
  const conflict = findStdoutSinkConflict(opts);
19
46
  if (conflict) {
@@ -32,8 +59,16 @@ export async function runDraftValidate(filePath, opts) {
32
59
  process.exitCode = 2;
33
60
  return;
34
61
  }
62
+ warnUnusedConcreteFlags(opts);
35
63
  const result = validateDraft(data);
36
- const report = buildSingleDraftValidationReport(filePath, result);
64
+ // Gate the concrete pass on draft-structure cleanliness — extractConcreteSubset
65
+ // early-returns the input object verbatim when class != GalaxyWorkflowDraft,
66
+ // and stripPlanFields would then mutate the original `data`. Skipping also
67
+ // avoids running validate checks on a draft we know is structurally broken.
68
+ const concrete = opts.concrete && result.structureErrors.length === 0
69
+ ? await runConcretePass(filePath, data, opts)
70
+ : undefined;
71
+ const report = buildSingleDraftValidationReport(filePath, result, concrete);
37
72
  if (opts.json) {
38
73
  console.log(JSON.stringify(report, null, 2));
39
74
  }
@@ -42,13 +77,135 @@ export async function runDraftValidate(filePath, opts) {
42
77
  }
43
78
  await writeReportOutput("draft_validate.md.j2", report, opts);
44
79
  await writeReportHtml("draft-validate", report, opts.reportHtml);
45
- process.exitCode = exitCodeFor(result);
80
+ process.exitCode = exitCodeFor(result, concrete);
46
81
  }
47
- function exitCodeFor(result) {
82
+ function warnUnusedConcreteFlags(opts) {
83
+ if (opts.concrete) {
84
+ if (opts.toolState === false && opts.strictState) {
85
+ console.error("Warning: --strict-state has no effect when tool-state validation is disabled (--no-tool-state)");
86
+ }
87
+ return;
88
+ }
89
+ const ignored = [];
90
+ if (opts.cacheDir)
91
+ ignored.push("--cache-dir");
92
+ if (opts.toolState === false)
93
+ ignored.push("--no-tool-state");
94
+ if (opts.connections)
95
+ ignored.push("--connections");
96
+ if (opts.strict || opts.strictStructure || opts.strictEncoding || opts.strictState) {
97
+ ignored.push("--strict*");
98
+ }
99
+ if (ignored.length > 0) {
100
+ console.error(`Warning: ${ignored.join(", ")} only apply with --concrete; ignoring`);
101
+ }
102
+ }
103
+ async function runConcretePass(filePath, data, opts) {
104
+ const extract = extractConcreteSubset(data);
105
+ stripPlanFields(extract.workflow);
106
+ promoteFullyConcreteDrafts(extract.workflow);
107
+ const trimmed = extract.workflow != null && typeof extract.workflow === "object"
108
+ ? extract.workflow
109
+ : {};
110
+ const class_after = trimmed.class === "GalaxyWorkflow" ? "GalaxyWorkflow" : "GalaxyWorkflowDraft";
111
+ // Defense-in-depth: for any draft input the gate at the call site lets
112
+ // through, extract+strip+promote always promotes the outer class. The only
113
+ // way to hit this branch is an exotic shape (e.g. inline subworkflow draft
114
+ // that itself fails promotion). Leaving the check here keeps the contract
115
+ // explicit: never decode an unpromoted subset against GalaxyWorkflowSchema.
116
+ if (class_after !== "GalaxyWorkflow") {
117
+ return {
118
+ class_after,
119
+ skipped_reason: "extracted subset is still a draft — not fully promoted",
120
+ structure_errors: [],
121
+ // ok=null (not true) — concrete validation didn't run, so we cannot
122
+ // claim the subset would have validated. Downstream readers must treat
123
+ // null as "unknown," not as a pass.
124
+ ok: null,
125
+ };
126
+ }
127
+ const strict = resolveStrictOptions(opts);
128
+ const report = {
129
+ class_after,
130
+ skipped_reason: null,
131
+ structure_errors: decodeStructureErrors(trimmed, "format2"),
132
+ ok: true,
133
+ };
134
+ if (strict.strictStructure) {
135
+ report.strict_structure_errors = checkStrictStructure(trimmed, "format2");
136
+ }
137
+ if (strict.strictEncoding) {
138
+ report.strict_encoding_errors = checkStrictEncoding(trimmed, "format2");
139
+ }
140
+ // Tool-state defaults to ON (matches `gxwf validate`); --no-tool-state opts out.
141
+ const toolStateEnabled = opts.toolState !== false;
142
+ if (toolStateEnabled) {
143
+ const cache = makeNodeToolCache({ cacheDir: opts.cacheDir });
144
+ await cache.index.load();
145
+ const expansionOpts = {
146
+ resolver: createDefaultResolver({ workflowDirectory: dirname(filePath) }),
147
+ };
148
+ const stepResults = await validateFormat2Steps(trimmed, cache, "", expansionOpts);
149
+ report.tool_state = {
150
+ results: stepResults,
151
+ summary: summarize(stepResults),
152
+ };
153
+ if (strict.strictState) {
154
+ const skipped = stepResults.filter((r) => r.status !== "ok" && r.status !== "fail");
155
+ report.strict_state_errors = skipped.map((r) => `${r.step} (${r.tool_id ?? "?"}): skipped (${r.status})`);
156
+ }
157
+ if (opts.connections) {
158
+ report.connection_report = await buildConnectionReport(trimmed, cache);
159
+ }
160
+ }
161
+ else if (opts.connections) {
162
+ // --connections without tool-state still needs a cache to look up tools.
163
+ const cache = makeNodeToolCache({ cacheDir: opts.cacheDir });
164
+ await cache.index.load();
165
+ report.connection_report = await buildConnectionReport(trimmed, cache);
166
+ }
167
+ report.ok = isConcreteOk(report);
168
+ return report;
169
+ }
170
+ function summarize(results) {
171
+ let ok = 0;
172
+ let fail = 0;
173
+ let skip = 0;
174
+ for (const r of results) {
175
+ if (r.status === "ok")
176
+ ok++;
177
+ else if (r.status === "fail")
178
+ fail++;
179
+ else
180
+ skip++;
181
+ }
182
+ return { ok, fail, skip };
183
+ }
184
+ function isConcreteOk(c) {
185
+ if (c.skipped_reason !== null)
186
+ return null;
187
+ if (c.structure_errors.length > 0)
188
+ return false;
189
+ if (c.strict_structure_errors && c.strict_structure_errors.length > 0)
190
+ return false;
191
+ if (c.strict_encoding_errors && c.strict_encoding_errors.length > 0)
192
+ return false;
193
+ if (c.strict_state_errors && c.strict_state_errors.length > 0)
194
+ return false;
195
+ if (c.tool_state && c.tool_state.summary.fail > 0)
196
+ return false;
197
+ if (c.connection_report && !c.connection_report.valid)
198
+ return false;
199
+ return true;
200
+ }
201
+ function exitCodeFor(result, concrete) {
48
202
  if (result.structureErrors.length > 0)
49
203
  return 2;
50
204
  if (result.topologyErrors.length > 0 || result.semanticErrors.length > 0)
51
205
  return 1;
206
+ // Only explicit `false` escalates — `null` (skipped) is informational.
207
+ if (concrete && concrete.ok === false)
208
+ return 1;
52
209
  return 0;
53
210
  }
54
211
  function printTextReport(report, result) {
@@ -62,6 +219,46 @@ function printTextReport(report, result) {
62
219
  console.log(` Survey: ${survey.todo_count} TODO sentinel${survey.todo_count === 1 ? "" : "s"}` +
63
220
  ` across ${survey.todo_paths.length} step path${survey.todo_paths.length === 1 ? "" : "s"};` +
64
221
  ` ${survey.plan_step_paths.length} step${survey.plan_step_paths.length === 1 ? "" : "s"} with _plan_* fields`);
222
+ if (report.concrete)
223
+ printConcrete(report.concrete);
224
+ }
225
+ function printConcrete(concrete) {
226
+ if (concrete.skipped_reason) {
227
+ console.log(` Concrete: SKIPPED (${concrete.skipped_reason})`);
228
+ return;
229
+ }
230
+ console.log(` Concrete: ${concrete.ok === true ? "OK" : "FAIL"}`);
231
+ printList(" Structure errors", concrete.structure_errors);
232
+ if (concrete.strict_structure_errors)
233
+ printList(" Strict-structure errors", concrete.strict_structure_errors);
234
+ if (concrete.strict_encoding_errors)
235
+ printList(" Strict-encoding errors", concrete.strict_encoding_errors);
236
+ if (concrete.strict_state_errors)
237
+ printList(" Strict-state errors", concrete.strict_state_errors);
238
+ if (concrete.tool_state) {
239
+ const { ok, fail, skip } = concrete.tool_state.summary;
240
+ console.log(` Tool state: ${ok} ok, ${fail} fail, ${skip} skip`);
241
+ for (const r of concrete.tool_state.results) {
242
+ if (r.status === "ok")
243
+ continue;
244
+ const tag = r.tool_id ? `${r.step} (${r.tool_id})` : r.step;
245
+ console.log(` ${tag} [${r.status}]`);
246
+ for (const e of r.errors)
247
+ console.log(` ${e}`);
248
+ }
249
+ }
250
+ if (concrete.connection_report) {
251
+ const cr = concrete.connection_report;
252
+ const { ok = 0, invalid = 0, skip = 0 } = cr.summary;
253
+ console.log(` Connections: ${cr.valid ? "OK" : "INVALID"} — ${ok} ok, ${invalid} invalid, ${skip} skip`);
254
+ }
255
+ }
256
+ function printList(label, lines) {
257
+ if (lines.length === 0)
258
+ return;
259
+ console.log(`${label} (${lines.length}):`);
260
+ for (const line of lines)
261
+ console.log(` ${line}`);
65
262
  }
66
263
  function printBucket(label, diagnostics) {
67
264
  if (diagnostics.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"draft-validate.js","sourceRoot":"","sources":["../../src/commands/draft-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft-validate.js","sourceRoot":"","sources":["../../src/commands/draft-validate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { runClean } from "../commands/clean.js";
2
2
  import { runCleanTree } from "../commands/clean-tree.js";
3
- import { runDraftExtract } from "../commands/_draft-extract.js";
3
+ import { runDraftExtract } from "../commands/draft-extract.js";
4
4
  import { runDraftNextStep } from "../commands/draft-next-step.js";
5
5
  import { runDraftValidate } from "../commands/draft-validate.js";
6
6
  import { runConvert } from "../commands/convert.js";
@@ -1 +1 @@
1
- {"version":3,"file":"gxwf.js","sourceRoot":"","sources":["../../src/programs/gxwf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gxwf.js","sourceRoot":"","sources":["../../src/programs/gxwf.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_templates-bundled.d.ts","sourceRoot":"","sources":["../../src/workflow/_templates-bundled.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqXpD,CAAC"}
1
+ {"version":3,"file":"_templates-bundled.d.ts","sourceRoot":"","sources":["../../src/workflow/_templates-bundled.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsbpD,CAAC"}
@@ -194,6 +194,71 @@ Summary: {{ report.summary }}
194
194
  - \`\`{% if d.path | length == 0 %}<workflow>{% else %}{{ d.path | join("/") }}{% endif %}\`\` — {{ d.message }}
195
195
  {% endfor %}
196
196
 
197
+ {% endif %}
198
+ {% if report.concrete %}
199
+ ## Concrete Subset Validation
200
+
201
+ - Class after extract: \`{{ report.concrete.class_after }}\`
202
+ {% if report.concrete.skipped_reason %}
203
+ - Status: SKIPPED — {{ report.concrete.skipped_reason }}
204
+ {% else %}
205
+ - Status: {% if report.concrete.ok %}OK{% else %}FAIL{% endif %}
206
+
207
+ {% if report.concrete.structure_errors | length > 0 %}
208
+ ### Structure Errors ({{ report.concrete.structure_errors | length }})
209
+
210
+ {% for e in report.concrete.structure_errors %}
211
+ - {{ e }}
212
+ {% endfor %}
213
+
214
+ {% endif %}
215
+ {% if report.concrete.strict_structure_errors and report.concrete.strict_structure_errors | length > 0 %}
216
+ ### Strict-Structure Errors ({{ report.concrete.strict_structure_errors | length }})
217
+
218
+ {% for e in report.concrete.strict_structure_errors %}
219
+ - {{ e }}
220
+ {% endfor %}
221
+
222
+ {% endif %}
223
+ {% if report.concrete.strict_encoding_errors and report.concrete.strict_encoding_errors | length > 0 %}
224
+ ### Strict-Encoding Errors ({{ report.concrete.strict_encoding_errors | length }})
225
+
226
+ {% for e in report.concrete.strict_encoding_errors %}
227
+ - {{ e }}
228
+ {% endfor %}
229
+
230
+ {% endif %}
231
+ {% if report.concrete.strict_state_errors and report.concrete.strict_state_errors | length > 0 %}
232
+ ### Strict-State Errors ({{ report.concrete.strict_state_errors | length }})
233
+
234
+ {% for e in report.concrete.strict_state_errors %}
235
+ - {{ e }}
236
+ {% endfor %}
237
+
238
+ {% endif %}
239
+ {% if report.concrete.tool_state %}
240
+ ### Tool State
241
+
242
+ - Summary: {{ report.concrete.tool_state.summary.ok }} ok, {{ report.concrete.tool_state.summary.fail }} fail, {{ report.concrete.tool_state.summary.skip }} skip
243
+
244
+ {% for r in report.concrete.tool_state.results %}
245
+ {% if r.status != "ok" %}
246
+ - \`\`{{ r.step }}\`\` ({{ r.tool_id }}) — \`{{ r.status }}\`
247
+ {% for e in r.errors %}
248
+ - {{ e }}
249
+ {% endfor %}
250
+ {% endif %}
251
+ {% endfor %}
252
+
253
+ {% endif %}
254
+ {% if report.concrete.connection_report %}
255
+ ### Connections
256
+
257
+ - Status: {% if report.concrete.connection_report.valid %}OK{% else %}INVALID{% endif %} — {{ report.concrete.connection_report.summary.ok }} ok, {{ report.concrete.connection_report.summary.invalid }} invalid, {{ report.concrete.connection_report.summary.skip }} skip
258
+
259
+ {% endif %}
260
+ {% endif %}
261
+
197
262
  {% endif %}
198
263
  `,
199
264
  "export_tree.md.j2": `{#-
@@ -1 +1 @@
1
- {"version":3,"file":"_templates-bundled.js","sourceRoot":"","sources":["../../src/workflow/_templates-bundled.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DlB;IACC,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDrB;IACC,0BAA0B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC7B;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDzB;IACC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BtB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB;IACC,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDxB;CACA,CAAC"}
1
+ {"version":3,"file":"_templates-bundled.js","sourceRoot":"","sources":["../../src/workflow/_templates-bundled.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DlB;IACC,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDrB;IACC,0BAA0B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC7B;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHzB;IACC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BtB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB;IACC,sBAAsB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB;IACC,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDxB;CACA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-tool-util/cli",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "galaxy-tool-cache CLI — cache and inspect Galaxy tool metadata",
5
5
  "type": "module",
6
6
  "bin": {
@@ -39,10 +39,10 @@
39
39
  "effect": "^3.21.0",
40
40
  "nunjucks": "^3.2.4",
41
41
  "yaml": "^2.8.3",
42
- "@galaxy-tool-util/connection-validation": "1.5.0",
43
- "@galaxy-tool-util/core": "1.5.0",
44
- "@galaxy-tool-util/schema": "1.5.0",
45
- "@galaxy-tool-util/search": "1.5.0"
42
+ "@galaxy-tool-util/connection-validation": "1.6.0",
43
+ "@galaxy-tool-util/core": "1.6.0",
44
+ "@galaxy-tool-util/schema": "1.6.0",
45
+ "@galaxy-tool-util/search": "1.6.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/node": "^25.5.0",
package/spec/gxwf.json CHANGED
@@ -117,14 +117,30 @@
117
117
  {
118
118
  "flags": "--report-markdown [file]",
119
119
  "description": "Write Markdown report to file (or stdout if omitted)"
120
+ },
121
+ {
122
+ "flags": "--concrete",
123
+ "description": "Additionally extract the concrete subset and run the regular `gxwf validate` checks on it"
124
+ },
125
+ {
126
+ "flags": "--cache-dir <dir>",
127
+ "description": "Tool cache directory (for --concrete tool-state validation)"
128
+ },
129
+ {
130
+ "flags": "--no-tool-state",
131
+ "description": "Skip tool-state validation in the --concrete pass (default: enabled when --concrete is set)"
132
+ },
133
+ {
134
+ "flags": "--connections",
135
+ "description": "Validate connection-type compatibility on the --concrete subset (collection algebra, map-over)"
120
136
  }
121
- ]
137
+ ],
138
+ "optionGroups": ["strict"]
122
139
  },
123
140
  {
124
- "name": "_draft-extract",
125
- "description": "Extract the concrete subset of a draft workflow (agent-loop internal; hidden)",
141
+ "name": "draft-extract",
142
+ "description": "Extract the concrete subset of a draft workflow (drop drafty steps, strip _plan_* fields, promote class when fully concrete)",
126
143
  "handler": "draftExtract",
127
- "hidden": true,
128
144
  "args": [
129
145
  {
130
146
  "raw": "<file>",
@@ -1 +0,0 @@
1
- {"version":3,"file":"_draft-extract.d.ts","sourceRoot":"","sources":["../../src/commands/_draft-extract.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDhG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_draft-extract.js","sourceRoot":"","sources":["../../src/commands/_draft-extract.ts"],"names":[],"mappings":"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"}