@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,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: galaxy-data-libraries
|
|
3
|
+
description: Use when data lives in a Galaxy data library rather than a history (a named library, or a folder id starting with F) -- walk folders, get dataset ids, run tools on library datasets in place, import only when needed.
|
|
4
|
+
metadata:
|
|
5
|
+
surfaces: [loom]
|
|
6
|
+
# Staging in Orbit; this is where it should end up.
|
|
7
|
+
proposed_home: galaxy-skills
|
|
8
|
+
user_invocable: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Galaxy Data Libraries
|
|
12
|
+
|
|
13
|
+
A data library is a server-side folder tree an admin or project has published: reference data,
|
|
14
|
+
challenge data, a consortium's release. The files are already on the server, often in large
|
|
15
|
+
numbers, and nobody should upload or download them to use them. This skill is how to find them and
|
|
16
|
+
hand them to tools without copying.
|
|
17
|
+
|
|
18
|
+
## Which tool does what
|
|
19
|
+
|
|
20
|
+
galaxy-ops has no library operations yet, so **listing** uses the REST API through `bash` + `curl`.
|
|
21
|
+
Everything after that goes through the normal in-process tools:
|
|
22
|
+
|
|
23
|
+
| Step | How |
|
|
24
|
+
| --------------------------------------- | --------------------------------------------------------------------------------- |
|
|
25
|
+
| List libraries, walk folders, find ids | `curl` (below) |
|
|
26
|
+
| Run a tool on a library dataset | `run_tool` with `{"src": "ldda", "id": ...}` |
|
|
27
|
+
| Bring a dataset into a history | `curl` POST (below), then the usual history tools |
|
|
28
|
+
| Look at a dataset, run a workflow on it | Import it first, then `get_dataset_details` / `invoke_workflow` with `src: "hda"` |
|
|
29
|
+
|
|
30
|
+
If this shell has no `bash`, stop and tell the user: they can browse the library in the Galaxy UI
|
|
31
|
+
(Libraries in the top menu) and import what they need into a history, and you take it from there.
|
|
32
|
+
|
|
33
|
+
## curl conventions
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
curl -s -H "x-api-key: $GALAXY_API_KEY" "$GALAXY_URL/api/libraries"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- Use `$GALAXY_URL` and `$GALAXY_API_KEY` from the environment. Never paste the key into a command,
|
|
40
|
+
the notebook or chat.
|
|
41
|
+
- Public libraries also answer without the key; restricted ones need it. When a library the user
|
|
42
|
+
can see in the UI comes back missing or 403, the key is the first suspect.
|
|
43
|
+
- Use `jq` to print only the fields you need; folder listings are verbose. Without `jq`, save the
|
|
44
|
+
response with `-o` and read the file with `python3`. Never pipe `curl` into `python3` (or any
|
|
45
|
+
interpreter): Orbit's command guard refuses that outright, whatever the approval mode.
|
|
46
|
+
|
|
47
|
+
## Ids: the part that goes wrong
|
|
48
|
+
|
|
49
|
+
| Thing | Looks like | Where it comes from |
|
|
50
|
+
| --------------------------------- | ------------------ | ------------------------------------------------- |
|
|
51
|
+
| Library | 16 hex chars | `GET /api/libraries` -> `id` |
|
|
52
|
+
| Folder | `F` + 16 hex chars | library `root_folder_id`, or a folder item's `id` |
|
|
53
|
+
| Library dataset (`ld`) | 16 hex chars | a file item's `id` |
|
|
54
|
+
| Library dataset instance (`ldda`) | 16 hex chars | a file item's `ldda_id` |
|
|
55
|
+
|
|
56
|
+
A file in a folder listing has **two** ids. They are often equal, but they are different objects and
|
|
57
|
+
can differ, so always take the one the consumer asks for:
|
|
58
|
+
|
|
59
|
+
- `run_tool` inputs want the **`ldda_id`**: `{"src": "ldda", "id": "<ldda_id>"}`.
|
|
60
|
+
- Importing into a history wants the **`id`** (the `ld`).
|
|
61
|
+
|
|
62
|
+
The folder endpoint needs the `F`. Without it Galaxy answers "Invalid library folder ID".
|
|
63
|
+
|
|
64
|
+
## Walk a library
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Libraries, with the folder to start from
|
|
68
|
+
curl -s -H "x-api-key: $GALAXY_API_KEY" "$GALAXY_URL/api/libraries" \
|
|
69
|
+
| jq -r '.[] | [.id, .root_folder_id, .name] | @tsv'
|
|
70
|
+
|
|
71
|
+
# The same without jq: save it, then read the file
|
|
72
|
+
curl -s -H "x-api-key: $GALAXY_API_KEY" "$GALAXY_URL/api/libraries" -o libraries.json
|
|
73
|
+
python3 -c 'import json; [print(l["id"], l["root_folder_id"], l["name"]) for l in json.load(open("libraries.json"))]'
|
|
74
|
+
|
|
75
|
+
# One folder's contents
|
|
76
|
+
curl -s -H "x-api-key: $GALAXY_API_KEY" \
|
|
77
|
+
"$GALAXY_URL/api/folders/F0123456789abcdef/contents?limit=100&offset=0"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The folder response is `{"metadata": {...}, "folder_contents": [...]}`:
|
|
81
|
+
|
|
82
|
+
- Each item has `type` (`"folder"` or `"file"`), `name` and `id`. File items also carry `ldda_id`,
|
|
83
|
+
`file_ext`, `file_size` (human-readable), `raw_size` (bytes) and `state`.
|
|
84
|
+
- `metadata.total_rows` is the true count. **The default page is only 10 items**, so a folder that
|
|
85
|
+
looks like it holds 10 files may hold hundreds. Pass `limit`, and page with `offset` until you
|
|
86
|
+
have `total_rows`.
|
|
87
|
+
- `search_text=<substring>` filters by name on the server. Use it rather than paging through a
|
|
88
|
+
folder of hundreds of files to find one.
|
|
89
|
+
- `metadata.full_path` gives the breadcrumb of `[folder_id, name]` pairs back to the library root.
|
|
90
|
+
|
|
91
|
+
Walk only as deep as the question needs. A large library can have thousands of files, so summarise
|
|
92
|
+
what you find (counts per folder, a few example names) rather than listing everything.
|
|
93
|
+
|
|
94
|
+
## Use a dataset in place
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
run_tool({
|
|
98
|
+
"toolId": "Show beginning1",
|
|
99
|
+
"historyId": "<history id>",
|
|
100
|
+
"inputs": {"input": {"src": "ldda", "id": "<ldda_id>"}, "lineNum": 10}
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Galaxy adds the library dataset to the target history as a new item, without copying the bytes,
|
|
105
|
+
and the job's output lands after it. Expect one extra history item per library input. That is
|
|
106
|
+
normal, not a duplicate upload.
|
|
107
|
+
|
|
108
|
+
**Several library datasets into one `multiple: true` input:** wrap the list, as in
|
|
109
|
+
`{"tars": {"values": [{"src": "ldda", "id": "..."}, {"src": "ldda", "id": "..."}]}}` for an input
|
|
110
|
+
named `tars` (use the tool's own input name). A bare list
|
|
111
|
+
of `ldda` references is rejected before any job is created, with `'LibraryDatasetDatasetAssociation'
|
|
112
|
+
object has no attribute 'auto_propagated_tags'`. Bare lists of `hda` references are fine, so
|
|
113
|
+
importing first also works.
|
|
114
|
+
|
|
115
|
+
**Workflows:** Galaxy accepts `ldda` inputs to a workflow, but `invoke_workflow`'s input check only
|
|
116
|
+
accepts `hda`/`hdca` and rejects the run. Import the dataset into the history first (below) and pass
|
|
117
|
+
the resulting `hda`.
|
|
118
|
+
|
|
119
|
+
## Import into a history
|
|
120
|
+
|
|
121
|
+
Import when a workflow needs the dataset, when the user wants it in the history, or before
|
|
122
|
+
`get_dataset_details`, which reads history datasets:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# One dataset: content is the file item's `id` (the ld), not its ldda_id
|
|
126
|
+
curl -s -X POST -H "x-api-key: $GALAXY_API_KEY" -H "Content-Type: application/json" \
|
|
127
|
+
-d '{"type": "dataset", "source": "library", "content": "<ld id>"}' \
|
|
128
|
+
"$GALAXY_URL/api/histories/<history id>/contents"
|
|
129
|
+
|
|
130
|
+
# A whole folder, recursively: content is the F-prefixed folder id
|
|
131
|
+
curl -s -X POST -H "x-api-key: $GALAXY_API_KEY" -H "Content-Type: application/json" \
|
|
132
|
+
-d '{"type": "dataset", "source": "library_folder", "content": "F0123456789abcdef"}' \
|
|
133
|
+
"$GALAXY_URL/api/histories/<history id>/contents"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Check the `name` in the response matches the file you meant. A mixed-up id is not always an
|
|
137
|
+
error (see Troubleshooting).
|
|
138
|
+
|
|
139
|
+
An import links the existing dataset, so it is instant and its state is `ok` at once, whatever the
|
|
140
|
+
size. It costs no quota or disk. It does add history items, though: importing a folder of hundreds of
|
|
141
|
+
files makes a history nobody can navigate. Import the few files a step needs, and confirm with the
|
|
142
|
+
user before importing a whole folder.
|
|
143
|
+
|
|
144
|
+
## Large files
|
|
145
|
+
|
|
146
|
+
Library datasets are often big: a 40 MB manifest, multi-gigabyte archives. Don't pull one into the
|
|
147
|
+
conversation.
|
|
148
|
+
|
|
149
|
+
- **Tables and manifests:** import, then `get_dataset_details` for a preview, or run Galaxy tools
|
|
150
|
+
(Select first, Cut, Filter, Count, Group) to summarise them. The summary lands in the history, and
|
|
151
|
+
that is the record.
|
|
152
|
+
- **Archives and images:** run tools on them in place. Never download them locally.
|
|
153
|
+
|
|
154
|
+
## Troubleshooting
|
|
155
|
+
|
|
156
|
+
| Symptom | Likely cause |
|
|
157
|
+
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
158
|
+
| Library missing from `/api/libraries`, or 403 on a folder | No key, or the user lacks access to a restricted library |
|
|
159
|
+
| "Invalid library folder ID" | Folder id sent without its leading `F` |
|
|
160
|
+
| "'content' id of lda or hda is missing" | Import POST without `content` |
|
|
161
|
+
| An import brought in a file you never asked for | A folder id was sent with `source: "library"`. Galaxy does not reject it: it drops the `F` and imports whatever dataset has that number. Use `library_folder` for folders, and check the imported item's name |
|
|
162
|
+
| A folder seems to hold exactly 10 files | You read only the default page; check `metadata.total_rows` |
|
|
163
|
+
| `'LibraryDatasetDatasetAssociation' object has no attribute 'auto_propagated_tags'` | A bare list of `ldda` refs in a multiple input; wrap it as `{"values": [...]}` |
|
|
164
|
+
| `invoke_workflow` rejects an `ldda` input | Known limit of the input check; import first and pass the `hda` |
|
|
165
|
+
|
|
166
|
+
## Related
|
|
167
|
+
|
|
168
|
+
- `galaxy-mcp-reference` (galaxy-skills) for history, tool and workflow operations in general.
|
|
169
|
+
- Galaxy API source: [folder contents](https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/webapps/galaxy/api/folder_contents.py),
|
|
170
|
+
[history import from a library](https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/webapps/galaxy/services/history_contents.py).
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# Galaxy Integration
|
|
2
|
+
|
|
3
|
+
Using Galaxy MCP, JupyterLite notebooks, and BioBlend-based scripts to interact with Galaxy instances.
|
|
4
|
+
|
|
5
|
+
This is the canonical documentation for Galaxy instance integration across skills in this repository.
|
|
6
|
+
|
|
7
|
+
**Agent entrypoint**: See `SKILL.md`.
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Galaxy integration provides programmatic access to Galaxy instances. Useful for:
|
|
12
|
+
|
|
13
|
+
- **Testing** - Validate converted tools on Galaxy instances
|
|
14
|
+
- **Automation** - Streamline development workflows
|
|
15
|
+
- **Validation** - Compare outputs (e.g., NF vs Galaxy)
|
|
16
|
+
- **Analysis** - Write JupyterLite notebooks that interact with Galaxy datasets
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
galaxy-integration/
|
|
22
|
+
├── SKILL.md # Router to sub-skills
|
|
23
|
+
├── galaxy-integration.md # Detailed MCP + BioBlend docs
|
|
24
|
+
│
|
|
25
|
+
├── jupyterlite/ # JupyterLite notebook skill
|
|
26
|
+
│ ├── SKILL.md # gxy package reference
|
|
27
|
+
│ └── examples/ # Example notebooks
|
|
28
|
+
│
|
|
29
|
+
(mcp-reference now lives at ../galaxy-mcp-reference/)
|
|
30
|
+
│ ├── SKILL.md # Full MCP tools reference
|
|
31
|
+
│ ├── history-access.md # History/dataset access patterns
|
|
32
|
+
│ └── gotchas.md # Common pitfalls (keychain, URL slugs)
|
|
33
|
+
│
|
|
34
|
+
├── scripts/ # BioBlend automation
|
|
35
|
+
│ └── galaxy_tool_checker.py
|
|
36
|
+
│
|
|
37
|
+
└── examples/ # Tool checking and workflow testing
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Key Files
|
|
41
|
+
|
|
42
|
+
- **`SKILL.md`** - Router to sub-skills
|
|
43
|
+
- **`jupyterlite/SKILL.md`** - gxy package for JupyterLite notebooks
|
|
44
|
+
- **`../galaxy-mcp-reference/SKILL.md`** - Complete MCP tools reference
|
|
45
|
+
- **`galaxy-integration.md`** - Detailed guide (MCP + BioBlend)
|
|
46
|
+
- **`scripts/`** - Automation scripts (galaxy_tool_checker.py)
|
|
47
|
+
- **`examples/`** - Tool checking and workflow testing examples
|
|
48
|
+
|
|
49
|
+
## Usage Context
|
|
50
|
+
|
|
51
|
+
MCP is primarily used in the **nf-to-galaxy** conversion workflow for:
|
|
52
|
+
- Testing converted tools on local Galaxy instances
|
|
53
|
+
- Uploading test data
|
|
54
|
+
- Running tools and validating outputs
|
|
55
|
+
- Comparing Nextflow vs Galaxy results
|
|
56
|
+
|
|
57
|
+
It may also be used by other skills that need to interact with a Galaxy instance (tool discovery, workflow testing, automation).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Quick Reference
|
|
62
|
+
|
|
63
|
+
### Setup
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Install
|
|
67
|
+
pip install galaxy-mcp
|
|
68
|
+
|
|
69
|
+
# Configure for Claude Code
|
|
70
|
+
# Add to ~/.config/claude/claude_desktop_config.json:
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"galaxy-mcp": {
|
|
74
|
+
"command": "uvx",
|
|
75
|
+
"args": ["galaxy-mcp"],
|
|
76
|
+
"env": {
|
|
77
|
+
"GALAXY_URL": "http://localhost:8080",
|
|
78
|
+
"GALAXY_API_KEY": "your-key"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## When to Use Galaxy MCP
|
|
88
|
+
|
|
89
|
+
Use Galaxy MCP when:
|
|
90
|
+
- You want **interactive exploration** of a Galaxy instance (tool search, tool I/O inspection)
|
|
91
|
+
- You are iterating on a workflow/tool and want **fast feedback** (create history, invoke workflow, inspect failures)
|
|
92
|
+
- You are working in an agentic environment where MCP tools are available
|
|
93
|
+
|
|
94
|
+
Prefer a script (e.g. BioBlend) when:
|
|
95
|
+
- You need to check **many tools at once**
|
|
96
|
+
- You want **repeatable automation** (CI-style checks)
|
|
97
|
+
- You want **workflow validation** without interactive iteration
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Prerequisites
|
|
102
|
+
|
|
103
|
+
- Galaxy instance URL (e.g. `https://usegalaxy.org/`)
|
|
104
|
+
- Galaxy API key (User → Preferences → Manage API Key)
|
|
105
|
+
|
|
106
|
+
**Where to find these**:
|
|
107
|
+
- **Galaxy URL**: The base URL of the Galaxy server you use (for public servers this is the site URL, e.g. `https://usegalaxy.org/`, `https://usegalaxy.eu/`).
|
|
108
|
+
- **API key**: In Galaxy, go to **User → Preferences → Manage API Key**.
|
|
109
|
+
|
|
110
|
+
**Using the repo-wide `.env` (recommended for this repository)**:
|
|
111
|
+
- From the **skills repository root**:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
cp .env.example .env
|
|
115
|
+
nano .env
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Add:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
GALAXY_URL=https://usegalaxy.org/
|
|
122
|
+
GALAXY_API_KEY=your_actual_api_key_here
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The root `.env` is gitignored; do not commit API keys.
|
|
126
|
+
|
|
127
|
+
Treat the API key like a password. Do not commit it to git.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Common MCP Tools (Typical Development Loop)
|
|
132
|
+
|
|
133
|
+
- **Connect**: `connect()` (or equivalent connection step depending on the client)
|
|
134
|
+
- **Find tools**: `search_tools_by_name(query=...)`
|
|
135
|
+
- **Inspect tool I/O**: `get_tool_details(tool_id=..., io_details=True)`
|
|
136
|
+
- **Create a history**: `create_history(history_name=...)`
|
|
137
|
+
- **Upload data**: `upload_file(...)`
|
|
138
|
+
- **Run tools**: `run_tool(...)`
|
|
139
|
+
- **Run workflows**: `invoke_workflow(workflow_id=..., inputs=..., history_id=...)`
|
|
140
|
+
- **Inspect outputs**: `get_history_contents(history_id=...)`, `get_dataset_details(...)`
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Minimal Workflow Testing Pattern
|
|
145
|
+
|
|
146
|
+
1. Create a new history for a clean run
|
|
147
|
+
2. Upload (or reuse) small test inputs
|
|
148
|
+
3. Invoke your workflow
|
|
149
|
+
4. Poll history contents until jobs finish
|
|
150
|
+
5. If something fails:
|
|
151
|
+
- identify the failing step/tool
|
|
152
|
+
- fix tool IDs / parameter mapping
|
|
153
|
+
- re-import workflow and retry
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Where This Is Used
|
|
158
|
+
|
|
159
|
+
- **Nextflow → Galaxy conversions**: see `../../dev-skills/nf-to-galaxy/` (the conversion skill points here when MCP is needed)
|
|
160
|
+
|
|
161
|
+
See the upstream project for the full API reference:
|
|
162
|
+
- https://github.com/galaxyproject/galaxy-mcp
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: galaxy-integration
|
|
3
|
+
description: "Use when setting up or choosing how an agent talks to a Galaxy instance -- first-time connection (server URL, API key, verifying access), then picking between Galaxy MCP for interactive work, JupyterLite notebooks for analysis against Galaxy datasets, and BioBlend scripts for batch or CI. Start here to use Galaxy when not yet connected."
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Galaxy Integration Skill
|
|
8
|
+
|
|
9
|
+
Use Galaxy MCP and BioBlend-based scripts to interact with a Galaxy instance for tool discovery, workflow validation, and workflow testing.
|
|
10
|
+
|
|
11
|
+
## Sub-Skills
|
|
12
|
+
|
|
13
|
+
Route to the appropriate sub-skill based on task:
|
|
14
|
+
|
|
15
|
+
| Task | Sub-Skill | Location |
|
|
16
|
+
|------|-----------|----------|
|
|
17
|
+
| Write JupyterLite notebook | `jupyterlite-galaxy` | `jupyterlite/SKILL.md` |
|
|
18
|
+
| MCP tools reference | `galaxy-mcp-reference` | `../galaxy-mcp-reference/SKILL.md` |
|
|
19
|
+
| History/dataset access | - | `../galaxy-mcp-reference/history-access.md` |
|
|
20
|
+
| Common gotchas | - | `../galaxy-mcp-reference/gotchas.md` |
|
|
21
|
+
| BioBlend batch scripts | - | `scripts/galaxy_tool_checker.py` |
|
|
22
|
+
| Tool checking examples | - | `examples/tool-checking.md` |
|
|
23
|
+
| Workflow testing examples | - | `examples/workflow-testing.md` |
|
|
24
|
+
|
|
25
|
+
## When to Use
|
|
26
|
+
|
|
27
|
+
- **Query tools** installed on a Galaxy instance
|
|
28
|
+
- **Inspect tool I/O** and parameters
|
|
29
|
+
- **Create histories**, upload data, run tools/workflows
|
|
30
|
+
- **Debug workflow/tool issues** with fast, interactive feedback
|
|
31
|
+
- **Write JupyterLite notebooks** that interact with Galaxy datasets
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
### Galaxy URL
|
|
36
|
+
|
|
37
|
+
The base URL of the Galaxy server:
|
|
38
|
+
- `https://usegalaxy.org/`
|
|
39
|
+
- `https://usegalaxy.eu/`
|
|
40
|
+
- `http://localhost:8080/`
|
|
41
|
+
|
|
42
|
+
### Galaxy API Key
|
|
43
|
+
|
|
44
|
+
In Galaxy UI: **User -> Preferences -> Manage API Key**
|
|
45
|
+
|
|
46
|
+
### Repository `.env` (recommended)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
cp .env.example .env
|
|
50
|
+
nano .env
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Set:
|
|
54
|
+
```bash
|
|
55
|
+
GALAXY_URL=https://usegalaxy.org/
|
|
56
|
+
GALAXY_API_KEY=your_actual_api_key_here
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## When to Use MCP vs Scripts
|
|
60
|
+
|
|
61
|
+
**Galaxy MCP** when:
|
|
62
|
+
- Interactive exploration (find a tool, inspect exact tool IDs)
|
|
63
|
+
- Debugging a workflow with fast iteration
|
|
64
|
+
|
|
65
|
+
**BioBlend script** (`scripts/galaxy_tool_checker.py`) when:
|
|
66
|
+
- Batch checks across many tools
|
|
67
|
+
- Repeatable validation/testing as part of CI-like flow
|
|
68
|
+
|
|
69
|
+
## Core MCP Workflow
|
|
70
|
+
|
|
71
|
+
1. **Confirm MCP connectivity**
|
|
72
|
+
- If not connected, see `README.md` for configuration
|
|
73
|
+
|
|
74
|
+
2. **Tool discovery**
|
|
75
|
+
```
|
|
76
|
+
search_tools_by_name(query=...)
|
|
77
|
+
get_tool_details(tool_id=..., io_details=True)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
3. **Workflow testing loop**
|
|
81
|
+
```
|
|
82
|
+
create_history(history_name=...)
|
|
83
|
+
invoke_workflow(workflow_id=..., inputs=..., history_id=...)
|
|
84
|
+
get_history_contents(history_id=...)
|
|
85
|
+
# Fix and repeat
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Output Expectations
|
|
89
|
+
|
|
90
|
+
When reporting MCP results:
|
|
91
|
+
- Provide **full Galaxy tool ID** (ToolShed-style)
|
|
92
|
+
- Include tool version
|
|
93
|
+
- Note whether tool is installed vs only available in repository
|
|
94
|
+
|
|
95
|
+
## References
|
|
96
|
+
|
|
97
|
+
- Upstream Galaxy MCP: https://github.com/galaxyproject/galaxy-mcp
|
|
98
|
+
- Repository guide: `README.md`
|
|
99
|
+
- Detailed MCP docs: `galaxy-integration.md`
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Galaxy Integration Examples
|
|
2
|
+
|
|
3
|
+
Practical examples for interacting with Galaxy instances using MCP and BioBlend.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
These examples demonstrate **how to use Galaxy MCP and BioBlend** to interact with Galaxy instances. They are **domain-agnostic** and can be applied to any workflow or tool testing scenario.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### tool-checking.md
|
|
16
|
+
|
|
17
|
+
**Purpose**: Check tool availability on a Galaxy instance
|
|
18
|
+
|
|
19
|
+
**Covers**:
|
|
20
|
+
- Using Galaxy MCP to search for tools
|
|
21
|
+
- Using BioBlend script to validate tool lists
|
|
22
|
+
- Decision matrix: when to use MCP vs BioBlend
|
|
23
|
+
- Interpreting results
|
|
24
|
+
|
|
25
|
+
**Use when**: You need to verify tools exist before creating/running workflows
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### workflow-testing.md
|
|
30
|
+
|
|
31
|
+
**Purpose**: Test and validate workflows on a Galaxy instance
|
|
32
|
+
|
|
33
|
+
**Covers**:
|
|
34
|
+
- Using Galaxy MCP for interactive workflow testing
|
|
35
|
+
- Using BioBlend script for automated workflow validation
|
|
36
|
+
- Workflow invocation and monitoring
|
|
37
|
+
- Output verification
|
|
38
|
+
- Decision matrix: when to use MCP vs BioBlend
|
|
39
|
+
|
|
40
|
+
**Use when**: You need to test a workflow on a Galaxy instance
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## When to Use These Examples
|
|
45
|
+
|
|
46
|
+
### During Conversion (Nextflow → Galaxy)
|
|
47
|
+
|
|
48
|
+
After converting a Nextflow workflow to Galaxy, use these examples to:
|
|
49
|
+
1. Check that all required tools exist (`tool-checking.md`)
|
|
50
|
+
2. Test the converted workflow (`workflow-testing.md`)
|
|
51
|
+
|
|
52
|
+
**See also**: `../../../dev-skills/nf-to-galaxy/examples/` for conversion-specific scenarios
|
|
53
|
+
|
|
54
|
+
### During Tool Development
|
|
55
|
+
|
|
56
|
+
After creating or updating a Galaxy tool, use these examples to:
|
|
57
|
+
1. Verify tool is available on target instance
|
|
58
|
+
2. Test tool in a workflow context
|
|
59
|
+
|
|
60
|
+
**See also**: `../../../dev-skills/tool-dev/SKILL.md`
|
|
61
|
+
|
|
62
|
+
### General Workflow Testing
|
|
63
|
+
|
|
64
|
+
For any Galaxy workflow testing needs:
|
|
65
|
+
1. Validate workflow structure
|
|
66
|
+
2. Test workflow execution
|
|
67
|
+
3. Compare outputs
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Prerequisites
|
|
72
|
+
|
|
73
|
+
### Galaxy MCP
|
|
74
|
+
|
|
75
|
+
Interactive Galaxy client for exploration and debugging.
|
|
76
|
+
|
|
77
|
+
**Setup**: See `../galaxy-integration.md` for MCP configuration
|
|
78
|
+
|
|
79
|
+
**Best for**:
|
|
80
|
+
- Interactive exploration
|
|
81
|
+
- Debugging workflow issues
|
|
82
|
+
- Real-time monitoring
|
|
83
|
+
- Complex decision-making
|
|
84
|
+
|
|
85
|
+
### BioBlend Script
|
|
86
|
+
|
|
87
|
+
Automated Galaxy tool checker and workflow validator.
|
|
88
|
+
|
|
89
|
+
**Setup**: See `../scripts/README.md` for script configuration
|
|
90
|
+
|
|
91
|
+
**Best for**:
|
|
92
|
+
- Automated validation
|
|
93
|
+
- Batch checking
|
|
94
|
+
- CI/CD integration
|
|
95
|
+
- Scripted workflows
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Related Documentation
|
|
100
|
+
|
|
101
|
+
- **Main guide**: `../galaxy-integration.md` - Complete Galaxy integration guide
|
|
102
|
+
- **MCP setup**: `../galaxy-integration.md#setup`
|
|
103
|
+
- **BioBlend script**: `../scripts/README.md` - galaxy_tool_checker.py usage
|
|
104
|
+
- **Conversion examples**: `../../../dev-skills/nf-to-galaxy/examples/` - Conversion-specific scenarios
|
|
105
|
+
- **Testing guide**: `../../../dev-skills/tool-dev/references/testing.md` - Planemo tool testing
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Quick Reference
|
|
110
|
+
|
|
111
|
+
| Task | MCP | BioBlend Script |
|
|
112
|
+
|------|-----|-----------------|
|
|
113
|
+
| Check single tool | `search_tools_by_name()` | `--tool-id TOOL_ID` |
|
|
114
|
+
| Check tool list | Multiple calls | `--tool-list file.txt` |
|
|
115
|
+
| Validate workflow | `import_workflow()` | `--workflow file.ga` |
|
|
116
|
+
| Test workflow | `invoke_workflow()` | `--workflow --test` |
|
|
117
|
+
| Monitor execution | `get_invocation()` | `--wait` flag |
|
|
118
|
+
| Batch operations | Manual iteration | Native support |
|
|
119
|
+
| CI/CD integration | Possible but complex | Designed for it |
|