@galaxyproject/orbit 0.0.0 → 0.9.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/CHANGELOG.md +123 -0
- package/LICENSE +21 -0
- package/README.md +760 -5
- package/bin/legacy-mcp-config.js +363 -0
- package/bin/orbit.js +810 -0
- package/bin/pi-extension-path.d.ts +4 -0
- package/bin/pi-extension-path.js +44 -0
- package/bin/provider-auth.d.ts +22 -0
- package/bin/provider-auth.js +77 -0
- package/bin/thinking-pref.js +38 -0
- package/bin/update-check.d.ts +15 -0
- package/bin/update-check.js +137 -0
- package/extensions/cli-update/index.ts +32 -0
- package/extensions/orbit/activity-hooks.ts +141 -0
- package/extensions/orbit/activity.ts +116 -0
- package/extensions/orbit/agent-dir.ts +11 -0
- package/extensions/orbit/auto-resume.ts +352 -0
- package/extensions/orbit/config.ts +3 -0
- package/extensions/orbit/confusables.ts +1 -0
- package/extensions/orbit/context.ts +957 -0
- package/extensions/orbit/dashboard-commands.ts +191 -0
- package/extensions/orbit/dashboard-store.ts +473 -0
- package/extensions/orbit/dashboard-tools.ts +1185 -0
- package/extensions/orbit/empty-completion.ts +99 -0
- package/extensions/orbit/evidence-gate.ts +1276 -0
- package/extensions/orbit/evidence-override-command.ts +294 -0
- package/extensions/orbit/exec-guard/bash-risk.ts +1408 -0
- package/extensions/orbit/exec-guard/gate.ts +181 -0
- package/extensions/orbit/exec-guard/guardian-config.ts +54 -0
- package/extensions/orbit/exec-guard/index.ts +1 -0
- package/extensions/orbit/exec-guard/model-tier.ts +36 -0
- package/extensions/orbit/exec-guard/path-jail.ts +54 -0
- package/extensions/orbit/exec-guard/policy.ts +342 -0
- package/extensions/orbit/exec-guard/runtime-state.ts +15 -0
- package/extensions/orbit/exec-guard/sensitive-read.ts +525 -0
- package/extensions/orbit/exec-guard/types.ts +42 -0
- package/extensions/orbit/execution-commands.ts +134 -0
- package/extensions/orbit/feedback-command.ts +81 -0
- package/extensions/orbit/feedback.ts +96 -0
- package/extensions/orbit/galaxy-api.test.ts +122 -0
- package/extensions/orbit/galaxy-api.ts +606 -0
- package/extensions/orbit/galaxy-artifact-link-guidance.ts +5 -0
- package/extensions/orbit/galaxy-destructive-gate.ts +113 -0
- package/extensions/orbit/galaxy-enrich.ts +1108 -0
- package/extensions/orbit/galaxy-failure.ts +101 -0
- package/extensions/orbit/galaxy-fixture.ts +126 -0
- package/extensions/orbit/galaxy-history-guard.ts +233 -0
- package/extensions/orbit/galaxy-job-block.ts +347 -0
- package/extensions/orbit/galaxy-job-ops.ts +288 -0
- package/extensions/orbit/galaxy-live-source.ts +929 -0
- package/extensions/orbit/galaxy-markdown-adapter.ts +248 -0
- package/extensions/orbit/galaxy-op-policy.ts +332 -0
- package/extensions/orbit/galaxy-ops-tools.ts +326 -0
- package/extensions/orbit/galaxy-output-store.ts +80 -0
- package/extensions/orbit/galaxy-output.ts +346 -0
- package/extensions/orbit/galaxy-page-binding.ts +222 -0
- package/extensions/orbit/galaxy-page-markdown-guidance.ts +15 -0
- package/extensions/orbit/galaxy-page-ops.ts +159 -0
- package/extensions/orbit/galaxy-page-sync.test.ts +417 -0
- package/extensions/orbit/galaxy-page-sync.ts +318 -0
- package/extensions/orbit/galaxy-pages-api.ts +203 -0
- package/extensions/orbit/galaxy-pages-sync.ts +409 -0
- package/extensions/orbit/galaxy-poll-guard.ts +189 -0
- package/extensions/orbit/galaxy-poller.ts +706 -0
- package/extensions/orbit/galaxy-provenance.ts +623 -0
- package/extensions/orbit/galaxy-reconcile.ts +956 -0
- package/extensions/orbit/galaxy-recovery.ts +176 -0
- package/extensions/orbit/galaxy-repeat-guard.ts +55 -0
- package/extensions/orbit/galaxy-submission-capture.ts +707 -0
- package/extensions/orbit/galaxy-submission.ts +502 -0
- package/extensions/orbit/galaxy-tool-source.ts +78 -0
- package/extensions/orbit/galaxy-tool-wrap.ts +234 -0
- package/extensions/orbit/galaxy-udt-block.ts +127 -0
- package/extensions/orbit/galaxy-upload-tus.ts +334 -0
- package/extensions/orbit/galaxy-upload.ts +300 -0
- package/extensions/orbit/galaxy-version-capture.ts +65 -0
- package/extensions/orbit/git.ts +173 -0
- package/extensions/orbit/harness-block-fields.ts +597 -0
- package/extensions/orbit/index.ts +593 -0
- package/extensions/orbit/init-gate.ts +284 -0
- package/extensions/orbit/instructions-command.ts +136 -0
- package/extensions/orbit/invocation-failure-hint.ts +57 -0
- package/extensions/orbit/iwc-plan-check.ts +94 -0
- package/extensions/orbit/lesson-command.ts +303 -0
- package/extensions/orbit/lesson-hint.ts +245 -0
- package/extensions/orbit/lesson-nudge.ts +106 -0
- package/extensions/orbit/lessons/compose.ts +177 -0
- package/extensions/orbit/lessons/counters.ts +120 -0
- package/extensions/orbit/lessons/enabled.ts +116 -0
- package/extensions/orbit/lessons/matcher.ts +346 -0
- package/extensions/orbit/lessons/paths.ts +286 -0
- package/extensions/orbit/lessons/pi-event-contract.ts +105 -0
- package/extensions/orbit/lessons/propose-replay.ts +103 -0
- package/extensions/orbit/lessons/propose-tool.ts +222 -0
- package/extensions/orbit/lessons/propose.ts +502 -0
- package/extensions/orbit/lessons/replay.ts +89 -0
- package/extensions/orbit/lessons/reproduction-index.ts +83 -0
- package/extensions/orbit/lessons/search-tool.ts +99 -0
- package/extensions/orbit/lessons/search.ts +136 -0
- package/extensions/orbit/lessons/store.ts +415 -0
- package/extensions/orbit/lessons/text.ts +36 -0
- package/extensions/orbit/lessons/types.ts +69 -0
- package/extensions/orbit/lessons/user-dir.ts +24 -0
- package/extensions/orbit/lessons/user-lesson.ts +88 -0
- package/extensions/orbit/lessons/wrapper.ts +61 -0
- package/extensions/orbit/lessons-command.ts +147 -0
- package/extensions/orbit/local-exec.ts +39 -0
- package/extensions/orbit/mcp-output.ts +179 -0
- package/extensions/orbit/mcp-servers.test.ts +24 -0
- package/extensions/orbit/mcp-servers.ts +25 -0
- package/extensions/orbit/model-script.ts +351 -0
- package/extensions/orbit/notebook-anchors.ts +342 -0
- package/extensions/orbit/notebook-writer.ts +863 -0
- package/extensions/orbit/observation-allowlists.ts +1109 -0
- package/extensions/orbit/observation-replay.ts +148 -0
- package/extensions/orbit/observation-triggers.ts +563 -0
- package/extensions/orbit/observation-ui.ts +175 -0
- package/extensions/orbit/observations-command.ts +421 -0
- package/extensions/orbit/observations-config.ts +200 -0
- package/extensions/orbit/observations.ts +1381 -0
- package/extensions/orbit/profiles.ts +270 -0
- package/extensions/orbit/progress-updates.ts +95 -0
- package/extensions/orbit/proposal-commands.ts +882 -0
- package/extensions/orbit/provenance-fs-file.ts +59 -0
- package/extensions/orbit/provenance-fs.ts +32 -0
- package/extensions/orbit/provenance-memory-fs.ts +59 -0
- package/extensions/orbit/record-store-file.ts +177 -0
- package/extensions/orbit/record-store-page.ts +77 -0
- package/extensions/orbit/record-store-seam.ts +47 -0
- package/extensions/orbit/record-store.ts +149 -0
- package/extensions/orbit/registry-carrier.ts +107 -0
- package/extensions/orbit/registry-eligibility.ts +95 -0
- package/extensions/orbit/registry-evaluation.ts +403 -0
- package/extensions/orbit/registry-evaluator.ts +519 -0
- package/extensions/orbit/registry-import.ts +91 -0
- package/extensions/orbit/registry-lock.ts +221 -0
- package/extensions/orbit/registry-memory-fs.ts +42 -0
- package/extensions/orbit/registry-page-carrier.ts +103 -0
- package/extensions/orbit/registry-proposal.ts +1348 -0
- package/extensions/orbit/registry-runtime.ts +234 -0
- package/extensions/orbit/registry-schema.ts +735 -0
- package/extensions/orbit/registry-submitter.ts +59 -0
- package/extensions/orbit/registry-templates.ts +346 -0
- package/extensions/orbit/registry.ts +476 -0
- package/extensions/orbit/sandbox/index.ts +120 -0
- package/extensions/orbit/sandbox/sandbox-bash.ts +93 -0
- package/extensions/orbit/sandbox/sandbox-config.ts +87 -0
- package/extensions/orbit/sandbox/sandbox-init-message.ts +28 -0
- package/extensions/orbit/secret-redaction.ts +247 -0
- package/extensions/orbit/session-index/cwd.ts +18 -0
- package/extensions/orbit/session-index/db.ts +56 -0
- package/extensions/orbit/session-index/indexer.ts +154 -0
- package/extensions/orbit/session-index/is-enabled.ts +17 -0
- package/extensions/orbit/session-index/parse.ts +254 -0
- package/extensions/orbit/session-index/query.ts +209 -0
- package/extensions/orbit/session-index/schema.ts +72 -0
- package/extensions/orbit/session-index/tools.ts +152 -0
- package/extensions/orbit/session-lifecycle.ts +321 -0
- package/extensions/orbit/skill-triggers.ts +159 -0
- package/extensions/orbit/skills-command.ts +48 -0
- package/extensions/orbit/skills-discovery.ts +435 -0
- package/extensions/orbit/skills.ts +84 -0
- package/extensions/orbit/sra-import-gate.ts +77 -0
- package/extensions/orbit/state.ts +265 -0
- package/extensions/orbit/submission-replay.ts +147 -0
- package/extensions/orbit/sync-command.ts +157 -0
- package/extensions/orbit/teams/critic-parser.ts +93 -0
- package/extensions/orbit/teams/dispatcher.ts +210 -0
- package/extensions/orbit/teams/is-enabled.ts +22 -0
- package/extensions/orbit/teams/tool.ts +187 -0
- package/extensions/orbit/teams/types.ts +57 -0
- package/extensions/orbit/teams/validate.ts +42 -0
- package/extensions/orbit/tester-id-command.ts +133 -0
- package/extensions/orbit/tools-sync.ts +279 -0
- package/extensions/orbit/tools.ts +1300 -0
- package/extensions/orbit/types.ts +41 -0
- package/extensions/orbit/ui-bridge.ts +55 -0
- package/extensions/orbit/ulid.ts +60 -0
- package/extensions/orbit/user-instructions.ts +388 -0
- package/extensions/orbit/vendor/skills/_catalog.json +68 -0
- package/extensions/orbit/vendor/skills/_manifest.json +1106 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/SKILL.md +112 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_provenance.json +218 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_required_tools.json +33 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/add.json +50 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-extract.json +51 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-next-step.json +42 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/list.json +32 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-tool-summary.schema.json +175 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/SKILL.md +82 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_provenance.json +133 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/galaxy-workflow-draft-format.md +135 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/SKILL.md +84 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_provenance.json +166 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_verify.json +29 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/SKILL.md +127 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_provenance.json +198 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/galaxy-data-flow-draft-contract.md +129 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/SKILL.md +73 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_provenance.json +160 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.md +43 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.yml +1250 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/nextflow-operators-to-galaxy-collection-recipes.md +98 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/SKILL.md +174 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_provenance.json +130 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_required_tools.json +18 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-revisions.json +48 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-search.json +95 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-versions.json +39 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/notes/component-tool-shed-search.md +230 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/schemas/galaxy-tool-discovery.schema.json +231 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/SKILL.md +93 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_provenance.json +201 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/_assembly.json +23 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/SKILL.md +79 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_provenance.json +125 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/skills/LICENSE +21 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/README.md +39 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/SKILL.md +892 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/api-patterns.md +927 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/apply-rules.md +1482 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/test-patterns.md +996 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/tools.md +609 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-data-libraries/SKILL.md +170 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/README.md +162 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/SKILL.md +99 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/README.md +119 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/tool-checking.md +419 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/workflow-testing.md +617 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/galaxy-integration.md +614 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/SKILL.md +144 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/average_col3.ipynb +68 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/extract_sample_metadata.ipynb +190 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/variant_annotation.ipynb +816 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/vcp_variant_map.ipynb +443 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/README.md +165 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/galaxy_tool_checker.py +521 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/SKILL.md +128 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/gotchas.md +135 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/history-access.md +132 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/SKILL.md +146 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/references/directives.yml +496 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/SKILL.md +245 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/01-minimal-echo.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/02-single-data-in-out.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/03-multiple-data-js.yml +28 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/04-select-integer-boolean.yml +41 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/05-resource-requirements.yml +25 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/06-biocontainer-tool.yml +38 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/07-inline-python-script.yml +56 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/08-configfile-script.yml +74 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/common-mistakes.md +76 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/schema-reference.md +155 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/templating.md +196 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/scripts/validate.py +109 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/README.md +71 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/SKILL.md +190 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/histology-staining.md +145 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/tissue-microarray-analysis.md +176 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/references/directives.md +415 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/SKILL.md +98 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/foundry.md +25 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/SKILL.md +74 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_provenance.json +71 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor-skills.ts +283 -0
- package/extensions/orbit/workspace-state-dir.ts +46 -0
- package/extensions/orbit-handoff/index.ts +73 -0
- package/extensions/orbit-handoff/orbit-launcher.ts +142 -0
- package/extensions/whats-new/index.ts +98 -0
- package/lessons/LICENSE +17 -0
- package/lessons/README.md +117 -0
- package/lessons/SCHEMA.md +187 -0
- package/lessons/build-snapshot.mjs +311 -0
- package/lessons/data/downloaded-file-is-not-what-its-extension-says.md +61 -0
- package/lessons/galaxy-api/403-history-is-a-hard-stop.md +57 -0
- package/lessons/galaxy-api/collection-into-single-dataset-input.md +61 -0
- package/lessons/galaxy-api/connectedvalue-in-command-line.md +62 -0
- package/lessons/galaxy-api/hid-is-not-an-id.md +59 -0
- package/lessons/galaxy-api/invoke-workflow-inputs-not-params.md +60 -0
- package/lessons/galaxy-api/repeat-param-pipe-keys.md +63 -0
- package/lessons/galaxy-api/run-tool-returns-on-submit.md +61 -0
- package/lessons/galaxy-tools/reference-index-not-on-server.md +62 -0
- package/lessons/log.md +42 -0
- package/lessons/reproduction/input-population-mismatch.md +59 -0
- package/lessons/reproduction/methods-text-vs-executed-parameters.md +62 -0
- package/lessons/snapshot.json +1004 -0
- package/lessons/stats/de-contrast-direction-and-sample-labels.md +63 -0
- package/lessons/stats/na-coerced-to-zero-in-filters.md +59 -0
- package/lessons/validate.mjs +1219 -0
- package/package.json +103 -5
- package/shared/agent-prompt.d.ts +8 -0
- package/shared/agent-prompt.js +15 -0
- package/shared/approval-prompt.d.ts +4 -0
- package/shared/approval-prompt.js +61 -0
- package/shared/brain-env.d.ts +14 -0
- package/shared/brain-env.js +108 -0
- package/shared/brain-exit.d.ts +20 -0
- package/shared/brain-exit.js +149 -0
- package/shared/capability-profile.d.ts +16 -0
- package/shared/capability-profile.js +75 -0
- package/shared/config-source.d.ts +13 -0
- package/shared/config-source.js +17 -0
- package/shared/confusables.d.ts +3 -0
- package/shared/confusables.js +93 -0
- package/shared/custom-provider.d.ts +45 -0
- package/shared/custom-provider.js +169 -0
- package/shared/dashboard-contract.d.ts +123 -0
- package/shared/dashboard-contract.js +560 -0
- package/shared/dashboard-layout-store.d.ts +44 -0
- package/shared/dashboard-layout-store.js +281 -0
- package/shared/feedback-contract.d.ts +61 -0
- package/shared/feedback-contract.js +146 -0
- package/shared/galaxy-artifact-links.d.ts +30 -0
- package/shared/galaxy-artifact-links.js +166 -0
- package/shared/galaxy-credentials.d.ts +26 -0
- package/shared/galaxy-credentials.js +71 -0
- package/shared/galaxy-destructive.d.ts +21 -0
- package/shared/galaxy-destructive.js +269 -0
- package/shared/galaxy-guidance.d.ts +2 -0
- package/shared/galaxy-guidance.js +53 -0
- package/shared/galaxy-live-contract.d.ts +92 -0
- package/shared/galaxy-live-contract.js +180 -0
- package/shared/galaxy-page-cells.d.ts +2 -0
- package/shared/galaxy-page-cells.js +22 -0
- package/shared/galaxy-tool-family.d.ts +5 -0
- package/shared/galaxy-tool-family.js +27 -0
- package/shared/galaxy-url.d.ts +1 -0
- package/shared/galaxy-url.js +48 -0
- package/shared/gtn.d.ts +31 -0
- package/shared/gtn.js +253 -0
- package/shared/handled-prompt.d.ts +3 -0
- package/shared/handled-prompt.js +26 -0
- package/shared/known-provider.d.ts +11 -0
- package/shared/known-provider.js +89 -0
- package/shared/lesson-hint-marker.d.ts +7 -0
- package/shared/lesson-hint-marker.js +32 -0
- package/shared/lesson-rules.d.ts +150 -0
- package/shared/lesson-rules.js +203 -0
- package/shared/malformed-object-ids.d.ts +1 -0
- package/shared/malformed-object-ids.js +37 -0
- package/shared/markdown-sections.d.ts +10 -0
- package/shared/markdown-sections.js +118 -0
- package/shared/notebook-fences.d.ts +12 -0
- package/shared/notebook-fences.js +53 -0
- package/shared/observation-contract.d.ts +91 -0
- package/shared/observation-contract.js +544 -0
- package/shared/orbit-config.d.ts +226 -0
- package/shared/orbit-config.js +189 -0
- package/shared/orbit-env.d.ts +13 -0
- package/shared/orbit-env.js +124 -0
- package/shared/orbit-shell-contract.d.ts +74 -0
- package/shared/orbit-shell-contract.js +30 -0
- package/shared/page-content-hash.d.ts +1 -0
- package/shared/page-content-hash.js +13 -0
- package/shared/pi-default-model.d.ts +7 -0
- package/shared/pi-default-model.js +41 -0
- package/shared/prompt-blocks.d.ts +87 -0
- package/shared/prompt-blocks.js +898 -0
- package/shared/provider-auth-caps.d.ts +22 -0
- package/shared/provider-auth-caps.js +57 -0
- package/shared/random.d.ts +2 -0
- package/shared/random.js +15 -0
- package/shared/record-excerpt.d.ts +4 -0
- package/shared/record-excerpt.js +16 -0
- package/shared/redirect-guard.d.ts +36 -0
- package/shared/redirect-guard.js +235 -0
- package/shared/skills-pin.d.ts +8 -0
- package/shared/skills-pin.js +9 -0
- package/shared/skills-router.d.ts +17 -0
- package/shared/skills-router.js +63 -0
- package/shared/sra-import.d.ts +34 -0
- package/shared/sra-import.js +206 -0
- package/shared/state-dir.d.ts +21 -0
- package/shared/state-dir.js +240 -0
- package/shared/team-dispatch-contract.d.ts +28 -0
- package/shared/team-dispatch-contract.js +1 -0
- package/shared/truncate-middle.d.ts +11 -0
- package/shared/truncate-middle.js +68 -0
- package/shared/version-compare.d.ts +10 -0
- package/shared/version-compare.js +74 -0
- package/shared/whats-new.d.ts +31 -0
- package/shared/whats-new.js +83 -0
- package/shared/wsl.d.ts +10 -0
- package/shared/wsl.js +24 -0
|
@@ -0,0 +1,614 @@
|
|
|
1
|
+
# Galaxy Integration for Tool Checking and Workflow Testing
|
|
2
|
+
|
|
3
|
+
Complete guide for using Galaxy MCP or BioBlend to check tool availability, validate workflows, and test workflow execution during Nextflow-to-Galaxy conversions.
|
|
4
|
+
|
|
5
|
+
**Contents**:
|
|
6
|
+
- [Setup](#setup) - First-time configuration
|
|
7
|
+
- [Usage](#usage) - Tool checking and workflow testing
|
|
8
|
+
- [Agent Guide](#agent-guide) - For AI agents using this skill
|
|
9
|
+
- [Examples](#examples) - See `examples/` directory
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
### Prerequisites
|
|
16
|
+
|
|
17
|
+
1. **Galaxy Account**: Account on a Galaxy instance (e.g., https://usegalaxy.org)
|
|
18
|
+
2. **Galaxy API Key**: Required for programmatic access
|
|
19
|
+
3. **Python 3.8+**: For BioBlend script
|
|
20
|
+
|
|
21
|
+
### Get Your Galaxy API Key
|
|
22
|
+
|
|
23
|
+
1. Go to your Galaxy instance (e.g., https://usegalaxy.org)
|
|
24
|
+
2. Log in → **User** → **Preferences** → **Manage API Key**
|
|
25
|
+
3. Click **Create a new key** (if needed)
|
|
26
|
+
4. Copy the key
|
|
27
|
+
|
|
28
|
+
**Important**: Treat API key like a password. Never commit to git.
|
|
29
|
+
|
|
30
|
+
### Configure Credentials
|
|
31
|
+
|
|
32
|
+
**Option 1: .env File (Recommended)**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
cd /path/to/skills
|
|
36
|
+
cp .env.example .env
|
|
37
|
+
nano .env # Add your credentials
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`.env` contents:
|
|
41
|
+
```bash
|
|
42
|
+
GALAXY_URL=https://usegalaxy.org/
|
|
43
|
+
GALAXY_API_KEY=your_actual_api_key_here
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Option 2: Environment Variables**
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
export GALAXY_URL="https://usegalaxy.org/"
|
|
50
|
+
export GALAXY_API_KEY="your_api_key"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Option 3: Command Line**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py --url https://usegalaxy.org --api-key YOUR_KEY --tool hyphy
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Install Dependencies
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Required
|
|
63
|
+
pip install bioblend
|
|
64
|
+
|
|
65
|
+
# Optional: For .env file support
|
|
66
|
+
pip install python-dotenv
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Test Setup
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py --tool hyphy --verbose
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Expected: Connection success and tool results.
|
|
76
|
+
|
|
77
|
+
**Troubleshooting**:
|
|
78
|
+
- "API key required" → Check `.env` file or environment variables
|
|
79
|
+
- "Failed to connect" → Verify URL format (must end with `/`)
|
|
80
|
+
- "401 Authentication failed" → Regenerate API key in Galaxy
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Usage
|
|
85
|
+
|
|
86
|
+
## Overview
|
|
87
|
+
|
|
88
|
+
When converting Nextflow workflows to Galaxy, you need to:
|
|
89
|
+
1. **Check if tools exist** on your target Galaxy instance
|
|
90
|
+
2. **Get tool versions** to ensure compatibility
|
|
91
|
+
3. **Validate .ga workflow files** (check all tools are available)
|
|
92
|
+
4. **Test workflow execution** iteratively without manual intervention
|
|
93
|
+
|
|
94
|
+
You have two options:
|
|
95
|
+
- **Galaxy MCP**: Best for interactive agent workflows (when available)
|
|
96
|
+
- **BioBlend Python Script** (`galaxy_tool_checker.py`): Best for reducing token usage, automation, and workflow validation
|
|
97
|
+
|
|
98
|
+
**Key Point**: The BioBlend script does MORE than just check tools - it can validate and test entire workflows.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Option 1: Galaxy MCP (Agent-Friendly)
|
|
103
|
+
|
|
104
|
+
Galaxy MCP is useful for interactive tool discovery and workflow testing during conversions.
|
|
105
|
+
|
|
106
|
+
**Canonical documentation** for MCP setup and usage lives in:
|
|
107
|
+
- `galaxy-integration/README.md`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Option 2: BioBlend Python Script (Low-Token)
|
|
112
|
+
|
|
113
|
+
### When to Use BioBlend Script
|
|
114
|
+
|
|
115
|
+
Use the BioBlend script when:
|
|
116
|
+
- You want to minimize token usage
|
|
117
|
+
- You need repeatable, automated checks
|
|
118
|
+
- You're doing batch conversions
|
|
119
|
+
- You want to avoid MCP overhead
|
|
120
|
+
- **You need to validate .ga workflow files**
|
|
121
|
+
- **You want to test workflow execution on Galaxy**
|
|
122
|
+
|
|
123
|
+
### What the Script Can Do
|
|
124
|
+
|
|
125
|
+
The script has **three main capabilities**:
|
|
126
|
+
|
|
127
|
+
1. **Tool Availability Checking** - Check if tools exist on Galaxy instance
|
|
128
|
+
2. **Workflow Validation** - Validate .ga files (check all tools are available)
|
|
129
|
+
3. **Workflow Testing** - Import and run workflows on Galaxy
|
|
130
|
+
|
|
131
|
+
### The Script
|
|
132
|
+
|
|
133
|
+
See `galaxy-integration/scripts/galaxy_tool_checker.py` for the complete implementation.
|
|
134
|
+
|
|
135
|
+
### Configuration
|
|
136
|
+
|
|
137
|
+
Before using the script, set up your Galaxy credentials:
|
|
138
|
+
|
|
139
|
+
**Option 1: .env file (Recommended)**
|
|
140
|
+
```bash
|
|
141
|
+
# Create .env file in the skills repository root
|
|
142
|
+
cat > .env << EOF
|
|
143
|
+
GALAXY_URL=https://usegalaxy.org/
|
|
144
|
+
GALAXY_API_KEY=your_api_key_here
|
|
145
|
+
EOF
|
|
146
|
+
|
|
147
|
+
# Then run without --url or --api-key
|
|
148
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py --tool hyphy
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Option 2: Environment variables**
|
|
152
|
+
```bash
|
|
153
|
+
export GALAXY_URL="https://usegalaxy.org/"
|
|
154
|
+
export GALAXY_API_KEY="your_api_key"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Option 3: Command line arguments**
|
|
158
|
+
```bash
|
|
159
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
160
|
+
--url https://usegalaxy.org \
|
|
161
|
+
--api-key YOUR_API_KEY \
|
|
162
|
+
--tool hyphy
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Get your API key**: Galaxy → User → Preferences → Manage API Key
|
|
166
|
+
|
|
167
|
+
### Usage Examples
|
|
168
|
+
|
|
169
|
+
#### Check Single Tool
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# With .env file configured
|
|
173
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py --tool hyphy
|
|
174
|
+
|
|
175
|
+
# Or with explicit credentials
|
|
176
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
177
|
+
--url https://usegalaxy.org \
|
|
178
|
+
--api-key YOUR_API_KEY \
|
|
179
|
+
--tool hyphy
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Output:
|
|
183
|
+
```json
|
|
184
|
+
{
|
|
185
|
+
"tool_name": "hyphy",
|
|
186
|
+
"found": true,
|
|
187
|
+
"matches": [
|
|
188
|
+
{
|
|
189
|
+
"id": "toolshed.g2.bx.psu.edu/repos/iuc/hyphy_fel/hyphy_fel/2.5.84+galaxy0",
|
|
190
|
+
"name": "HyPhy-FEL",
|
|
191
|
+
"version": "2.5.84+galaxy0"
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### Check Multiple Tools
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
201
|
+
--url https://usegalaxy.org \
|
|
202
|
+
--api-key YOUR_API_KEY \
|
|
203
|
+
--tool hyphy iqtree seqkit \
|
|
204
|
+
--output tools_report.json
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### Validate Workflow (.ga file)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Check that all tools in workflow exist on Galaxy instance
|
|
211
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
212
|
+
--url https://usegalaxy.org \
|
|
213
|
+
--api-key YOUR_API_KEY \
|
|
214
|
+
--workflow my_workflow.ga \
|
|
215
|
+
--verbose
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Output shows which tools are available and which are missing.
|
|
219
|
+
|
|
220
|
+
#### Test Workflow Execution
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# Import and run the workflow on Galaxy
|
|
224
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
225
|
+
--url https://usegalaxy.org \
|
|
226
|
+
--api-key YOUR_API_KEY \
|
|
227
|
+
--workflow my_workflow.ga \
|
|
228
|
+
--test \
|
|
229
|
+
--history "Test Run" \
|
|
230
|
+
--wait
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Script Features
|
|
234
|
+
|
|
235
|
+
**Tool Checking**:
|
|
236
|
+
- Batch tool checking: Check multiple tools at once
|
|
237
|
+
- JSON output: Machine-readable results for automation
|
|
238
|
+
- Version comparison: Compare available vs. required versions
|
|
239
|
+
|
|
240
|
+
**Workflow Validation**:
|
|
241
|
+
- Validate .ga files: Check all tools in workflow exist
|
|
242
|
+
- Structured error reporting: Identify missing tools by step
|
|
243
|
+
- Fast validation: No execution needed
|
|
244
|
+
|
|
245
|
+
**Workflow Testing**:
|
|
246
|
+
- Import workflows: Test import process
|
|
247
|
+
- Execute workflows: Actually run on Galaxy
|
|
248
|
+
- Wait for completion: Monitor execution with `--wait` flag
|
|
249
|
+
- Exit codes: 0 for success, 1 for failure (CI/CD friendly)
|
|
250
|
+
|
|
251
|
+
**General**:
|
|
252
|
+
- Minimal output: Reduces context bloat in agent conversations
|
|
253
|
+
- Environment variable support: Use `GALAXY_URL` and `GALAXY_API_KEY`
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Workflow Testing, Validation, and Output Comparison
|
|
258
|
+
|
|
259
|
+
Workflow tests require a Galaxy instance because `.ga` workflows are executed by Galaxy.
|
|
260
|
+
|
|
261
|
+
### When a local Galaxy is worth it
|
|
262
|
+
|
|
263
|
+
Use a local Galaxy instance when:
|
|
264
|
+
- You created **custom tools** (not already installed anywhere)
|
|
265
|
+
- You are using tools from a repo not installed on your target Galaxy
|
|
266
|
+
- You need rapid iteration without affecting a shared server
|
|
267
|
+
|
|
268
|
+
If all tools exist on a target Galaxy instance already (e.g. usegalaxy.*, or your institution’s Galaxy), you can test directly there.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### Option A: Workflow Testing via Galaxy MCP (Agent-Friendly)
|
|
273
|
+
|
|
274
|
+
If `galaxy-mcp` is available and you can connect to a Galaxy instance:
|
|
275
|
+
|
|
276
|
+
#### Complete testing flow
|
|
277
|
+
|
|
278
|
+
```python
|
|
279
|
+
# 1. Connect to Galaxy
|
|
280
|
+
connect(url="https://usegalaxy.org", api_key="YOUR_API_KEY")
|
|
281
|
+
|
|
282
|
+
# 2. Create test history
|
|
283
|
+
history = create_history(history_name="Test: My Workflow")
|
|
284
|
+
history_id = history["id"]
|
|
285
|
+
|
|
286
|
+
# 3. Validate tools exist
|
|
287
|
+
search_tools_by_name(query="hyphy")
|
|
288
|
+
get_tool_details(tool_id="toolshed.g2.bx.psu.edu/repos/iuc/hyphy_fel/hyphy_fel/2.5.84+galaxy0", io_details=True)
|
|
289
|
+
|
|
290
|
+
# 4. Invoke workflow
|
|
291
|
+
invoke_workflow(
|
|
292
|
+
workflow_id="WORKFLOW_ID",
|
|
293
|
+
inputs={"0": {"id": "DATASET_ID", "src": "hda"}},
|
|
294
|
+
history_id=history_id
|
|
295
|
+
)
|
|
296
|
+
|
|
297
|
+
# 5. Monitor execution
|
|
298
|
+
get_history_contents(
|
|
299
|
+
history_id=history_id,
|
|
300
|
+
order="create_time-dsc",
|
|
301
|
+
limit=25
|
|
302
|
+
)
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
#### Iterative testing pattern
|
|
306
|
+
|
|
307
|
+
The agent can automatically:
|
|
308
|
+
1. **Run the workflow**
|
|
309
|
+
2. **Check for failures** in history contents
|
|
310
|
+
3. **Identify problematic tools** (wrong IDs, missing parameters)
|
|
311
|
+
4. **Fix the .ga file** by searching for correct tool IDs
|
|
312
|
+
5. **Re-import and test** without user intervention
|
|
313
|
+
|
|
314
|
+
**When to prefer MCP**:
|
|
315
|
+
- You are already working in an agentic environment
|
|
316
|
+
- You want interactive debugging and iteration
|
|
317
|
+
- You need to explore tool details during testing
|
|
318
|
+
- You want the same interface for "find tool → run tool → inspect outputs"
|
|
319
|
+
|
|
320
|
+
**See**: `galaxy-integration/README.md` for MCP setup and usage patterns.
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
### Option B: Workflow Testing via BioBlend (Low-Token / Script-Friendly)
|
|
325
|
+
|
|
326
|
+
For repeated testing (CI-like runs) and for minimizing LLM context/tokens, use the provided BioBlend script.
|
|
327
|
+
|
|
328
|
+
#### Why BioBlend can be better than MCP
|
|
329
|
+
|
|
330
|
+
- **Less conversational overhead** - Minimal token usage
|
|
331
|
+
- **Easy to run repeatedly** with the same parameters
|
|
332
|
+
- **Produces deterministic logs** and artifacts
|
|
333
|
+
- **Batch operations** - Check multiple tools/workflows at once
|
|
334
|
+
- **CI/CD friendly** - Scriptable and automatable
|
|
335
|
+
|
|
336
|
+
#### Validate workflow structure
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
# Check that all tools in workflow exist on target Galaxy
|
|
340
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
341
|
+
--url https://usegalaxy.org \
|
|
342
|
+
--api-key $GALAXY_API_KEY \
|
|
343
|
+
--workflow my_workflow.ga \
|
|
344
|
+
--verbose
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
#### Test workflow execution
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# Import and optionally run the workflow
|
|
351
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
352
|
+
--url https://usegalaxy.org \
|
|
353
|
+
--api-key $GALAXY_API_KEY \
|
|
354
|
+
--workflow my_workflow.ga \
|
|
355
|
+
--test \
|
|
356
|
+
--history "Test Run" \
|
|
357
|
+
--wait
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
#### Batch tool checking
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
# Check multiple tools at once (efficient for large conversions)
|
|
364
|
+
python galaxy-integration/scripts/galaxy_tool_checker.py \
|
|
365
|
+
--url https://usegalaxy.org \
|
|
366
|
+
--api-key $GALAXY_API_KEY \
|
|
367
|
+
--tool hyphy iqtree seqkit mafft \
|
|
368
|
+
--output tool_report.json
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
**Notes**:
|
|
372
|
+
- Use `--output` to save JSON results for programmatic processing
|
|
373
|
+
- Exit code indicates success (0) or failure (non-zero)
|
|
374
|
+
- Useful for automated testing pipelines
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
### Output validation / comparison guidance
|
|
379
|
+
|
|
380
|
+
#### What “matching Nextflow” means
|
|
381
|
+
|
|
382
|
+
Choose the appropriate fidelity level:
|
|
383
|
+
- **Structural match**:
|
|
384
|
+
- outputs exist, file types correct, counts plausible
|
|
385
|
+
- **Content match**:
|
|
386
|
+
- identical output (only if deterministic)
|
|
387
|
+
- **Semantic match**:
|
|
388
|
+
- key metrics / summary stats match within tolerance
|
|
389
|
+
|
|
390
|
+
#### Practical recommendations
|
|
391
|
+
|
|
392
|
+
- Prefer checking:
|
|
393
|
+
- presence of expected output files
|
|
394
|
+
- expected columns/headers
|
|
395
|
+
- JSON schema keys
|
|
396
|
+
- basic stats (counts, sizes)
|
|
397
|
+
- Use exact matching only when outputs are deterministic.
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
### Decision matrix: which testing method?
|
|
402
|
+
|
|
403
|
+
| Scenario | Recommended Method | Why |
|
|
404
|
+
|----------|-------------------|-----|
|
|
405
|
+
| **Creating new tool** | Planemo | Static validation, unit tests |
|
|
406
|
+
| **Testing 1-2 workflows interactively** | Galaxy MCP | Interactive debugging, iteration |
|
|
407
|
+
| **Testing 5+ workflows** | BioBlend script | Batch processing, low tokens |
|
|
408
|
+
| **Checking tool availability** | BioBlend script first, then MCP for details | Efficient batch check, then explore |
|
|
409
|
+
| **CI/CD pipeline** | BioBlend script | Automated, deterministic |
|
|
410
|
+
| **Iterating on failures** | Galaxy MCP | Agent can auto-fix and retry |
|
|
411
|
+
| **First-time Galaxy exploration** | Galaxy MCP | Interactive, educational |
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
## Integration with Conversion Skills
|
|
416
|
+
|
|
417
|
+
### For `nf-process-to-galaxy-tool`
|
|
418
|
+
|
|
419
|
+
When creating a new tool:
|
|
420
|
+
|
|
421
|
+
1. **Extract tool name** from Nextflow process container
|
|
422
|
+
2. **Check if tool exists** using MCP or script
|
|
423
|
+
3. **If found**: Note the tool ID for workflow creation
|
|
424
|
+
4. **If not found**: Proceed with tool creation
|
|
425
|
+
|
|
426
|
+
Example workflow:
|
|
427
|
+
```
|
|
428
|
+
Process: HYPHY_FEL
|
|
429
|
+
Container: biocontainers/hyphy:2.5.84
|
|
430
|
+
|
|
431
|
+
→ search_tools_by_name(query="hyphy")
|
|
432
|
+
→ Found: toolshed.g2.bx.psu.edu/repos/iuc/hyphy_fel/hyphy_fel/2.5.84+galaxy0
|
|
433
|
+
→ Action: Use existing tool (no need to create)
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### For `nf-subworkflow-to-galaxy-workflow`
|
|
437
|
+
|
|
438
|
+
When creating a workflow:
|
|
439
|
+
|
|
440
|
+
1. **Check all required tools** exist on target instance
|
|
441
|
+
2. **Get exact tool IDs** with versions
|
|
442
|
+
3. **Create .ga file** with correct tool IDs
|
|
443
|
+
4. **Test workflow** using MCP or script
|
|
444
|
+
5. **Iterate on failures** automatically
|
|
445
|
+
|
|
446
|
+
### For `nf-pipeline-to-galaxy-workflow`
|
|
447
|
+
|
|
448
|
+
When converting a complete pipeline:
|
|
449
|
+
|
|
450
|
+
1. **Inventory all processes** and their tools
|
|
451
|
+
2. **Batch check tool availability** (use BioBlend script for efficiency)
|
|
452
|
+
3. **Generate tool availability report**
|
|
453
|
+
4. **Create workflows** with verified tool IDs
|
|
454
|
+
5. **Test each workflow** independently
|
|
455
|
+
6. **Chain workflows** and test integration
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
## Agent Guide
|
|
460
|
+
|
|
461
|
+
### Credential Prompt (copy/paste)
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
To check tool availability on your Galaxy instance, I need:
|
|
465
|
+
1. Galaxy instance URL (e.g., https://usegalaxy.org/)
|
|
466
|
+
2. Galaxy API key
|
|
467
|
+
|
|
468
|
+
You can provide these by:
|
|
469
|
+
- Creating a .env file (recommended)
|
|
470
|
+
- Setting environment variables: GALAXY_URL and GALAXY_API_KEY
|
|
471
|
+
- Passing as arguments: --url and --api-key
|
|
472
|
+
|
|
473
|
+
Would you like help setting this up?
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### Method Selection
|
|
477
|
+
|
|
478
|
+
- **Tool checking (1-3 tools)**
|
|
479
|
+
- Prefer Galaxy MCP (interactive) when available.
|
|
480
|
+
- **Tool checking (5+ tools)**
|
|
481
|
+
- Prefer BioBlend script (batch, low tokens).
|
|
482
|
+
- **Workflow validation (.ga)**
|
|
483
|
+
- Prefer BioBlend script (fast structural validation).
|
|
484
|
+
- **Workflow testing + iteration**
|
|
485
|
+
- Prefer Galaxy MCP when available (agent can iterate on failures).
|
|
486
|
+
|
|
487
|
+
### Iteration Pattern for Workflow Failures
|
|
488
|
+
|
|
489
|
+
1. Run workflow
|
|
490
|
+
2. Identify failing step(s)
|
|
491
|
+
3. If tool ID mismatch
|
|
492
|
+
- Search tools
|
|
493
|
+
- Update `.ga` tool IDs and versions
|
|
494
|
+
4. If datatype mismatch
|
|
495
|
+
- Inspect tool IO
|
|
496
|
+
- Update connections or add conversion steps
|
|
497
|
+
5. Re-import and re-test
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## Summary
|
|
502
|
+
|
|
503
|
+
### What This Integration Provides
|
|
504
|
+
|
|
505
|
+
- **Tool Availability Checking**
|
|
506
|
+
- Galaxy MCP (interactive)
|
|
507
|
+
- BioBlend script (batch)
|
|
508
|
+
- **Workflow Validation**
|
|
509
|
+
- BioBlend script validates `.ga` files by checking required tools exist
|
|
510
|
+
- **Workflow Testing**
|
|
511
|
+
- Galaxy MCP for interactive iteration
|
|
512
|
+
- BioBlend script for repeatable test runs
|
|
513
|
+
|
|
514
|
+
### Key Files
|
|
515
|
+
|
|
516
|
+
- `scripts/galaxy_tool_checker.py`
|
|
517
|
+
- `.env.example`
|
|
518
|
+
- `scripts/README.md`
|
|
519
|
+
- `examples/` - Practical examples:
|
|
520
|
+
- `examples/tool-checking.md` - Tool availability checking examples
|
|
521
|
+
- `examples/workflow-testing.md` - Workflow testing and validation examples
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## Best Practices
|
|
526
|
+
|
|
527
|
+
### Token Efficiency
|
|
528
|
+
|
|
529
|
+
**Use MCP when**:
|
|
530
|
+
- Doing interactive, exploratory work
|
|
531
|
+
- Need to iterate on a single workflow
|
|
532
|
+
- Want real-time feedback during development
|
|
533
|
+
|
|
534
|
+
**Use BioBlend script when**:
|
|
535
|
+
- Checking many tools at once (>5 tools)
|
|
536
|
+
- Doing batch conversions
|
|
537
|
+
- Running automated tests
|
|
538
|
+
- Want deterministic, repeatable results
|
|
539
|
+
|
|
540
|
+
### Error Handling
|
|
541
|
+
|
|
542
|
+
Both approaches should handle:
|
|
543
|
+
- **Tool not found**: Report clearly, suggest alternatives
|
|
544
|
+
- **Wrong version**: Note version mismatch, suggest update
|
|
545
|
+
- **Workflow failures**: Identify failing step, suggest fixes
|
|
546
|
+
- **Connection issues**: Retry with exponential backoff
|
|
547
|
+
|
|
548
|
+
### Reporting Format
|
|
549
|
+
|
|
550
|
+
When reporting tool availability, use this format:
|
|
551
|
+
|
|
552
|
+
```markdown
|
|
553
|
+
## Tool Availability Report
|
|
554
|
+
|
|
555
|
+
### Tools Found on Galaxy Instance
|
|
556
|
+
|
|
557
|
+
| Nextflow Process | Tool Name | Galaxy Tool ID | Version | Status |
|
|
558
|
+
|------------------|-----------|----------------|---------|--------|
|
|
559
|
+
| HYPHY_FEL | hyphy | toolshed.g2.bx.psu.edu/repos/iuc/hyphy_fel/hyphy_fel | 2.5.84+galaxy0 | ✅ Available |
|
|
560
|
+
| IQTREE | iqtree | toolshed.g2.bx.psu.edu/repos/iuc/iqtree/iqtree | 2.1.2+galaxy2 | ✅ Available |
|
|
561
|
+
| CUSTOM_TOOL | custom | - | - | ❌ Not found - needs creation |
|
|
562
|
+
|
|
563
|
+
### Summary
|
|
564
|
+
- **Available**: 2/3 tools (67%)
|
|
565
|
+
- **Missing**: 1 tool requires creation
|
|
566
|
+
- **Action**: Create CUSTOM_TOOL wrapper, then build workflow
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
## Troubleshooting
|
|
572
|
+
|
|
573
|
+
### MCP Connection Issues
|
|
574
|
+
|
|
575
|
+
```python
|
|
576
|
+
# Check connection
|
|
577
|
+
get_server_info()
|
|
578
|
+
|
|
579
|
+
# If fails, reconnect
|
|
580
|
+
connect(url="https://usegalaxy.org", api_key="YOUR_KEY")
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### Tool ID Format Issues
|
|
584
|
+
|
|
585
|
+
Galaxy tool IDs can have multiple formats:
|
|
586
|
+
- Simple: `Cut1`, `cat1`
|
|
587
|
+
- ToolShed: `toolshed.g2.bx.psu.edu/repos/iuc/hyphy_fel/hyphy_fel/2.5.84+galaxy0`
|
|
588
|
+
|
|
589
|
+
Always use the full ToolShed format in workflows for reproducibility.
|
|
590
|
+
|
|
591
|
+
### Workflow Testing Failures
|
|
592
|
+
|
|
593
|
+
Common issues:
|
|
594
|
+
1. **Wrong tool ID**: Use `search_tools_by_name` to find correct ID
|
|
595
|
+
2. **Missing input mapping**: Check workflow input step indices
|
|
596
|
+
3. **Datatype mismatch**: Verify input/output datatypes match
|
|
597
|
+
4. **Tool not installed**: Check with `get_tool_panel`
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
## Examples
|
|
602
|
+
|
|
603
|
+
See `examples/` directory for:
|
|
604
|
+
- `tool-checking-example.md` - Complete tool checking workflow
|
|
605
|
+
- `workflow-testing-example.md` - End-to-end workflow testing
|
|
606
|
+
- `capheine-mapping.md` - Complete CAPHEINE pipeline conversion
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
## Related Documentation
|
|
611
|
+
|
|
612
|
+
- `check-tool-availability.md` - Manual checking methods
|
|
613
|
+
- `testing-and-validation.md` - Testing strategies
|
|
614
|
+
- `scripts/galaxy_tool_checker.py` - BioBlend automation script
|