@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.
Files changed (451) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/LICENSE +21 -0
  3. package/README.md +760 -5
  4. package/bin/legacy-mcp-config.js +363 -0
  5. package/bin/orbit.js +810 -0
  6. package/bin/pi-extension-path.d.ts +4 -0
  7. package/bin/pi-extension-path.js +44 -0
  8. package/bin/provider-auth.d.ts +22 -0
  9. package/bin/provider-auth.js +77 -0
  10. package/bin/thinking-pref.js +38 -0
  11. package/bin/update-check.d.ts +15 -0
  12. package/bin/update-check.js +137 -0
  13. package/extensions/cli-update/index.ts +32 -0
  14. package/extensions/orbit/activity-hooks.ts +141 -0
  15. package/extensions/orbit/activity.ts +116 -0
  16. package/extensions/orbit/agent-dir.ts +11 -0
  17. package/extensions/orbit/auto-resume.ts +352 -0
  18. package/extensions/orbit/config.ts +3 -0
  19. package/extensions/orbit/confusables.ts +1 -0
  20. package/extensions/orbit/context.ts +957 -0
  21. package/extensions/orbit/dashboard-commands.ts +191 -0
  22. package/extensions/orbit/dashboard-store.ts +473 -0
  23. package/extensions/orbit/dashboard-tools.ts +1185 -0
  24. package/extensions/orbit/empty-completion.ts +99 -0
  25. package/extensions/orbit/evidence-gate.ts +1276 -0
  26. package/extensions/orbit/evidence-override-command.ts +294 -0
  27. package/extensions/orbit/exec-guard/bash-risk.ts +1408 -0
  28. package/extensions/orbit/exec-guard/gate.ts +181 -0
  29. package/extensions/orbit/exec-guard/guardian-config.ts +54 -0
  30. package/extensions/orbit/exec-guard/index.ts +1 -0
  31. package/extensions/orbit/exec-guard/model-tier.ts +36 -0
  32. package/extensions/orbit/exec-guard/path-jail.ts +54 -0
  33. package/extensions/orbit/exec-guard/policy.ts +342 -0
  34. package/extensions/orbit/exec-guard/runtime-state.ts +15 -0
  35. package/extensions/orbit/exec-guard/sensitive-read.ts +525 -0
  36. package/extensions/orbit/exec-guard/types.ts +42 -0
  37. package/extensions/orbit/execution-commands.ts +134 -0
  38. package/extensions/orbit/feedback-command.ts +81 -0
  39. package/extensions/orbit/feedback.ts +96 -0
  40. package/extensions/orbit/galaxy-api.test.ts +122 -0
  41. package/extensions/orbit/galaxy-api.ts +606 -0
  42. package/extensions/orbit/galaxy-artifact-link-guidance.ts +5 -0
  43. package/extensions/orbit/galaxy-destructive-gate.ts +113 -0
  44. package/extensions/orbit/galaxy-enrich.ts +1108 -0
  45. package/extensions/orbit/galaxy-failure.ts +101 -0
  46. package/extensions/orbit/galaxy-fixture.ts +126 -0
  47. package/extensions/orbit/galaxy-history-guard.ts +233 -0
  48. package/extensions/orbit/galaxy-job-block.ts +347 -0
  49. package/extensions/orbit/galaxy-job-ops.ts +288 -0
  50. package/extensions/orbit/galaxy-live-source.ts +929 -0
  51. package/extensions/orbit/galaxy-markdown-adapter.ts +248 -0
  52. package/extensions/orbit/galaxy-op-policy.ts +332 -0
  53. package/extensions/orbit/galaxy-ops-tools.ts +326 -0
  54. package/extensions/orbit/galaxy-output-store.ts +80 -0
  55. package/extensions/orbit/galaxy-output.ts +346 -0
  56. package/extensions/orbit/galaxy-page-binding.ts +222 -0
  57. package/extensions/orbit/galaxy-page-markdown-guidance.ts +15 -0
  58. package/extensions/orbit/galaxy-page-ops.ts +159 -0
  59. package/extensions/orbit/galaxy-page-sync.test.ts +417 -0
  60. package/extensions/orbit/galaxy-page-sync.ts +318 -0
  61. package/extensions/orbit/galaxy-pages-api.ts +203 -0
  62. package/extensions/orbit/galaxy-pages-sync.ts +409 -0
  63. package/extensions/orbit/galaxy-poll-guard.ts +189 -0
  64. package/extensions/orbit/galaxy-poller.ts +706 -0
  65. package/extensions/orbit/galaxy-provenance.ts +623 -0
  66. package/extensions/orbit/galaxy-reconcile.ts +956 -0
  67. package/extensions/orbit/galaxy-recovery.ts +176 -0
  68. package/extensions/orbit/galaxy-repeat-guard.ts +55 -0
  69. package/extensions/orbit/galaxy-submission-capture.ts +707 -0
  70. package/extensions/orbit/galaxy-submission.ts +502 -0
  71. package/extensions/orbit/galaxy-tool-source.ts +78 -0
  72. package/extensions/orbit/galaxy-tool-wrap.ts +234 -0
  73. package/extensions/orbit/galaxy-udt-block.ts +127 -0
  74. package/extensions/orbit/galaxy-upload-tus.ts +334 -0
  75. package/extensions/orbit/galaxy-upload.ts +300 -0
  76. package/extensions/orbit/galaxy-version-capture.ts +65 -0
  77. package/extensions/orbit/git.ts +173 -0
  78. package/extensions/orbit/harness-block-fields.ts +597 -0
  79. package/extensions/orbit/index.ts +593 -0
  80. package/extensions/orbit/init-gate.ts +284 -0
  81. package/extensions/orbit/instructions-command.ts +136 -0
  82. package/extensions/orbit/invocation-failure-hint.ts +57 -0
  83. package/extensions/orbit/iwc-plan-check.ts +94 -0
  84. package/extensions/orbit/lesson-command.ts +303 -0
  85. package/extensions/orbit/lesson-hint.ts +245 -0
  86. package/extensions/orbit/lesson-nudge.ts +106 -0
  87. package/extensions/orbit/lessons/compose.ts +177 -0
  88. package/extensions/orbit/lessons/counters.ts +120 -0
  89. package/extensions/orbit/lessons/enabled.ts +116 -0
  90. package/extensions/orbit/lessons/matcher.ts +346 -0
  91. package/extensions/orbit/lessons/paths.ts +286 -0
  92. package/extensions/orbit/lessons/pi-event-contract.ts +105 -0
  93. package/extensions/orbit/lessons/propose-replay.ts +103 -0
  94. package/extensions/orbit/lessons/propose-tool.ts +222 -0
  95. package/extensions/orbit/lessons/propose.ts +502 -0
  96. package/extensions/orbit/lessons/replay.ts +89 -0
  97. package/extensions/orbit/lessons/reproduction-index.ts +83 -0
  98. package/extensions/orbit/lessons/search-tool.ts +99 -0
  99. package/extensions/orbit/lessons/search.ts +136 -0
  100. package/extensions/orbit/lessons/store.ts +415 -0
  101. package/extensions/orbit/lessons/text.ts +36 -0
  102. package/extensions/orbit/lessons/types.ts +69 -0
  103. package/extensions/orbit/lessons/user-dir.ts +24 -0
  104. package/extensions/orbit/lessons/user-lesson.ts +88 -0
  105. package/extensions/orbit/lessons/wrapper.ts +61 -0
  106. package/extensions/orbit/lessons-command.ts +147 -0
  107. package/extensions/orbit/local-exec.ts +39 -0
  108. package/extensions/orbit/mcp-output.ts +179 -0
  109. package/extensions/orbit/mcp-servers.test.ts +24 -0
  110. package/extensions/orbit/mcp-servers.ts +25 -0
  111. package/extensions/orbit/model-script.ts +351 -0
  112. package/extensions/orbit/notebook-anchors.ts +342 -0
  113. package/extensions/orbit/notebook-writer.ts +863 -0
  114. package/extensions/orbit/observation-allowlists.ts +1109 -0
  115. package/extensions/orbit/observation-replay.ts +148 -0
  116. package/extensions/orbit/observation-triggers.ts +563 -0
  117. package/extensions/orbit/observation-ui.ts +175 -0
  118. package/extensions/orbit/observations-command.ts +421 -0
  119. package/extensions/orbit/observations-config.ts +200 -0
  120. package/extensions/orbit/observations.ts +1381 -0
  121. package/extensions/orbit/profiles.ts +270 -0
  122. package/extensions/orbit/progress-updates.ts +95 -0
  123. package/extensions/orbit/proposal-commands.ts +882 -0
  124. package/extensions/orbit/provenance-fs-file.ts +59 -0
  125. package/extensions/orbit/provenance-fs.ts +32 -0
  126. package/extensions/orbit/provenance-memory-fs.ts +59 -0
  127. package/extensions/orbit/record-store-file.ts +177 -0
  128. package/extensions/orbit/record-store-page.ts +77 -0
  129. package/extensions/orbit/record-store-seam.ts +47 -0
  130. package/extensions/orbit/record-store.ts +149 -0
  131. package/extensions/orbit/registry-carrier.ts +107 -0
  132. package/extensions/orbit/registry-eligibility.ts +95 -0
  133. package/extensions/orbit/registry-evaluation.ts +403 -0
  134. package/extensions/orbit/registry-evaluator.ts +519 -0
  135. package/extensions/orbit/registry-import.ts +91 -0
  136. package/extensions/orbit/registry-lock.ts +221 -0
  137. package/extensions/orbit/registry-memory-fs.ts +42 -0
  138. package/extensions/orbit/registry-page-carrier.ts +103 -0
  139. package/extensions/orbit/registry-proposal.ts +1348 -0
  140. package/extensions/orbit/registry-runtime.ts +234 -0
  141. package/extensions/orbit/registry-schema.ts +735 -0
  142. package/extensions/orbit/registry-submitter.ts +59 -0
  143. package/extensions/orbit/registry-templates.ts +346 -0
  144. package/extensions/orbit/registry.ts +476 -0
  145. package/extensions/orbit/sandbox/index.ts +120 -0
  146. package/extensions/orbit/sandbox/sandbox-bash.ts +93 -0
  147. package/extensions/orbit/sandbox/sandbox-config.ts +87 -0
  148. package/extensions/orbit/sandbox/sandbox-init-message.ts +28 -0
  149. package/extensions/orbit/secret-redaction.ts +247 -0
  150. package/extensions/orbit/session-index/cwd.ts +18 -0
  151. package/extensions/orbit/session-index/db.ts +56 -0
  152. package/extensions/orbit/session-index/indexer.ts +154 -0
  153. package/extensions/orbit/session-index/is-enabled.ts +17 -0
  154. package/extensions/orbit/session-index/parse.ts +254 -0
  155. package/extensions/orbit/session-index/query.ts +209 -0
  156. package/extensions/orbit/session-index/schema.ts +72 -0
  157. package/extensions/orbit/session-index/tools.ts +152 -0
  158. package/extensions/orbit/session-lifecycle.ts +321 -0
  159. package/extensions/orbit/skill-triggers.ts +159 -0
  160. package/extensions/orbit/skills-command.ts +48 -0
  161. package/extensions/orbit/skills-discovery.ts +435 -0
  162. package/extensions/orbit/skills.ts +84 -0
  163. package/extensions/orbit/sra-import-gate.ts +77 -0
  164. package/extensions/orbit/state.ts +265 -0
  165. package/extensions/orbit/submission-replay.ts +147 -0
  166. package/extensions/orbit/sync-command.ts +157 -0
  167. package/extensions/orbit/teams/critic-parser.ts +93 -0
  168. package/extensions/orbit/teams/dispatcher.ts +210 -0
  169. package/extensions/orbit/teams/is-enabled.ts +22 -0
  170. package/extensions/orbit/teams/tool.ts +187 -0
  171. package/extensions/orbit/teams/types.ts +57 -0
  172. package/extensions/orbit/teams/validate.ts +42 -0
  173. package/extensions/orbit/tester-id-command.ts +133 -0
  174. package/extensions/orbit/tools-sync.ts +279 -0
  175. package/extensions/orbit/tools.ts +1300 -0
  176. package/extensions/orbit/types.ts +41 -0
  177. package/extensions/orbit/ui-bridge.ts +55 -0
  178. package/extensions/orbit/ulid.ts +60 -0
  179. package/extensions/orbit/user-instructions.ts +388 -0
  180. package/extensions/orbit/vendor/skills/_catalog.json +68 -0
  181. package/extensions/orbit/vendor/skills/_manifest.json +1106 -0
  182. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/SKILL.md +112 -0
  183. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_provenance.json +218 -0
  184. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_required_tools.json +33 -0
  185. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_verify.json +4 -0
  186. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/add.json +50 -0
  187. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-extract.json +51 -0
  188. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-next-step.json +42 -0
  189. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-validate.json +140 -0
  190. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/list.json +32 -0
  191. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/galaxy-tool-job-failure-reference.md +137 -0
  192. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/open-requirements-ledger.md +173 -0
  193. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-tool-summary.schema.json +175 -0
  194. package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
  195. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/SKILL.md +82 -0
  196. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_provenance.json +133 -0
  197. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_required_tools.json +16 -0
  198. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_verify.json +4 -0
  199. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/cli/draft-validate.json +140 -0
  200. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/galaxy-workflow-draft-format.md +135 -0
  201. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
  202. package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
  203. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/SKILL.md +84 -0
  204. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_provenance.json +166 -0
  205. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_verify.json +29 -0
  206. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/galaxy-workflow-testability-design.md +136 -0
  207. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
  208. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-test-data-conventions.md +308 -0
  209. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-asserts-idioms.md +246 -0
  210. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-workflow-test-architecture.md +151 -0
  211. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
  212. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/summary-galaxy-workflow.schema.json +687 -0
  213. package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/tests-format.schema.json +7328 -0
  214. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/SKILL.md +127 -0
  215. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_provenance.json +198 -0
  216. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_required_tools.json +16 -0
  217. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_verify.json +4 -0
  218. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/cli/convert.json +123 -0
  219. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/galaxy-data-flow-draft-contract.md +129 -0
  220. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
  221. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-test-data-conventions.md +308 -0
  222. package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/open-requirements-ledger.md +173 -0
  223. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/SKILL.md +73 -0
  224. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_provenance.json +160 -0
  225. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_verify.json +4 -0
  226. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.md +43 -0
  227. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.yml +1250 -0
  228. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-tool-job-failure-reference.md +137 -0
  229. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
  230. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
  231. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/nextflow-operators-to-galaxy-collection-recipes.md +98 -0
  232. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-asserts-idioms.md +246 -0
  233. package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-workflow-test-architecture.md +151 -0
  234. package/extensions/orbit/vendor/skills/discover-shed-tool/SKILL.md +174 -0
  235. package/extensions/orbit/vendor/skills/discover-shed-tool/_provenance.json +130 -0
  236. package/extensions/orbit/vendor/skills/discover-shed-tool/_required_tools.json +18 -0
  237. package/extensions/orbit/vendor/skills/discover-shed-tool/_verify.json +17 -0
  238. package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-revisions.json +48 -0
  239. package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-search.json +95 -0
  240. package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-versions.json +39 -0
  241. package/extensions/orbit/vendor/skills/discover-shed-tool/references/notes/component-tool-shed-search.md +230 -0
  242. package/extensions/orbit/vendor/skills/discover-shed-tool/references/schemas/galaxy-tool-discovery.schema.json +231 -0
  243. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/SKILL.md +93 -0
  244. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_provenance.json +201 -0
  245. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_required_tools.json +28 -0
  246. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_verify.json +17 -0
  247. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/planemo.md +44 -0
  248. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/validate-tests.json +40 -0
  249. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/galaxy-workflow-testability-design.md +136 -0
  250. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
  251. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-test-data-conventions.md +308 -0
  252. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
  253. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
  254. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
  255. package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/tests-format.schema.json +7328 -0
  256. package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/SKILL.md +81 -0
  257. package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_provenance.json +93 -0
  258. package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_verify.json +17 -0
  259. package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
  260. package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/schemas/summary-galaxy-workflow.schema.json +687 -0
  261. package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/SKILL.md +81 -0
  262. package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/_assembly.json +23 -0
  263. package/extensions/orbit/vendor/skills/run-workflow-test/SKILL.md +79 -0
  264. package/extensions/orbit/vendor/skills/run-workflow-test/_provenance.json +125 -0
  265. package/extensions/orbit/vendor/skills/run-workflow-test/_required_tools.json +28 -0
  266. package/extensions/orbit/vendor/skills/run-workflow-test/_verify.json +4 -0
  267. package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/planemo.md +44 -0
  268. package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/validate-tests.json +40 -0
  269. package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
  270. package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
  271. package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
  272. package/extensions/orbit/vendor/skills/run-workflow-test/references/schemas/tests-format.schema.json +7328 -0
  273. package/extensions/orbit/vendor/skills/skills/LICENSE +21 -0
  274. package/extensions/orbit/vendor/skills/skills/collection-manipulation/README.md +39 -0
  275. package/extensions/orbit/vendor/skills/skills/collection-manipulation/SKILL.md +892 -0
  276. package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/api-patterns.md +927 -0
  277. package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/apply-rules.md +1482 -0
  278. package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/test-patterns.md +996 -0
  279. package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/tools.md +609 -0
  280. package/extensions/orbit/vendor/skills/skills/galaxy-data-libraries/SKILL.md +170 -0
  281. package/extensions/orbit/vendor/skills/skills/galaxy-integration/README.md +162 -0
  282. package/extensions/orbit/vendor/skills/skills/galaxy-integration/SKILL.md +99 -0
  283. package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/README.md +119 -0
  284. package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/tool-checking.md +419 -0
  285. package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/workflow-testing.md +617 -0
  286. package/extensions/orbit/vendor/skills/skills/galaxy-integration/galaxy-integration.md +614 -0
  287. package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/SKILL.md +144 -0
  288. package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/average_col3.ipynb +68 -0
  289. package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/extract_sample_metadata.ipynb +190 -0
  290. package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/variant_annotation.ipynb +816 -0
  291. package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/vcp_variant_map.ipynb +443 -0
  292. package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/README.md +165 -0
  293. package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/galaxy_tool_checker.py +521 -0
  294. package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/SKILL.md +128 -0
  295. package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/gotchas.md +135 -0
  296. package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/history-access.md +132 -0
  297. package/extensions/orbit/vendor/skills/skills/reproduciblify/SKILL.md +146 -0
  298. package/extensions/orbit/vendor/skills/skills/reproduciblify/references/directives.yml +496 -0
  299. package/extensions/orbit/vendor/skills/skills/udt-authoring/SKILL.md +245 -0
  300. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/01-minimal-echo.yml +27 -0
  301. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/02-single-data-in-out.yml +27 -0
  302. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/03-multiple-data-js.yml +28 -0
  303. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/04-select-integer-boolean.yml +41 -0
  304. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/05-resource-requirements.yml +25 -0
  305. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/06-biocontainer-tool.yml +38 -0
  306. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/07-inline-python-script.yml +56 -0
  307. package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/08-configfile-script.yml +74 -0
  308. package/extensions/orbit/vendor/skills/skills/udt-authoring/references/common-mistakes.md +76 -0
  309. package/extensions/orbit/vendor/skills/skills/udt-authoring/references/schema-reference.md +155 -0
  310. package/extensions/orbit/vendor/skills/skills/udt-authoring/references/templating.md +196 -0
  311. package/extensions/orbit/vendor/skills/skills/udt-authoring/scripts/validate.py +109 -0
  312. package/extensions/orbit/vendor/skills/skills/workflow-reports/README.md +71 -0
  313. package/extensions/orbit/vendor/skills/skills/workflow-reports/SKILL.md +190 -0
  314. package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/histology-staining.md +145 -0
  315. package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/tissue-microarray-analysis.md +176 -0
  316. package/extensions/orbit/vendor/skills/skills/workflow-reports/references/directives.md +415 -0
  317. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/SKILL.md +98 -0
  318. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_provenance.json +93 -0
  319. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_required_tools.json +28 -0
  320. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_verify.json +17 -0
  321. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/convert.json +123 -0
  322. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/foundry.md +25 -0
  323. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/validate.json +142 -0
  324. package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/schemas/summary-galaxy-workflow.schema.json +687 -0
  325. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/SKILL.md +74 -0
  326. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_provenance.json +71 -0
  327. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_required_tools.json +16 -0
  328. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_verify.json +4 -0
  329. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/cli/validate.json +142 -0
  330. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
  331. package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-testability-design.md +136 -0
  332. package/extensions/orbit/vendor-skills.ts +283 -0
  333. package/extensions/orbit/workspace-state-dir.ts +46 -0
  334. package/extensions/orbit-handoff/index.ts +73 -0
  335. package/extensions/orbit-handoff/orbit-launcher.ts +142 -0
  336. package/extensions/whats-new/index.ts +98 -0
  337. package/lessons/LICENSE +17 -0
  338. package/lessons/README.md +117 -0
  339. package/lessons/SCHEMA.md +187 -0
  340. package/lessons/build-snapshot.mjs +311 -0
  341. package/lessons/data/downloaded-file-is-not-what-its-extension-says.md +61 -0
  342. package/lessons/galaxy-api/403-history-is-a-hard-stop.md +57 -0
  343. package/lessons/galaxy-api/collection-into-single-dataset-input.md +61 -0
  344. package/lessons/galaxy-api/connectedvalue-in-command-line.md +62 -0
  345. package/lessons/galaxy-api/hid-is-not-an-id.md +59 -0
  346. package/lessons/galaxy-api/invoke-workflow-inputs-not-params.md +60 -0
  347. package/lessons/galaxy-api/repeat-param-pipe-keys.md +63 -0
  348. package/lessons/galaxy-api/run-tool-returns-on-submit.md +61 -0
  349. package/lessons/galaxy-tools/reference-index-not-on-server.md +62 -0
  350. package/lessons/log.md +42 -0
  351. package/lessons/reproduction/input-population-mismatch.md +59 -0
  352. package/lessons/reproduction/methods-text-vs-executed-parameters.md +62 -0
  353. package/lessons/snapshot.json +1004 -0
  354. package/lessons/stats/de-contrast-direction-and-sample-labels.md +63 -0
  355. package/lessons/stats/na-coerced-to-zero-in-filters.md +59 -0
  356. package/lessons/validate.mjs +1219 -0
  357. package/package.json +103 -5
  358. package/shared/agent-prompt.d.ts +8 -0
  359. package/shared/agent-prompt.js +15 -0
  360. package/shared/approval-prompt.d.ts +4 -0
  361. package/shared/approval-prompt.js +61 -0
  362. package/shared/brain-env.d.ts +14 -0
  363. package/shared/brain-env.js +108 -0
  364. package/shared/brain-exit.d.ts +20 -0
  365. package/shared/brain-exit.js +149 -0
  366. package/shared/capability-profile.d.ts +16 -0
  367. package/shared/capability-profile.js +75 -0
  368. package/shared/config-source.d.ts +13 -0
  369. package/shared/config-source.js +17 -0
  370. package/shared/confusables.d.ts +3 -0
  371. package/shared/confusables.js +93 -0
  372. package/shared/custom-provider.d.ts +45 -0
  373. package/shared/custom-provider.js +169 -0
  374. package/shared/dashboard-contract.d.ts +123 -0
  375. package/shared/dashboard-contract.js +560 -0
  376. package/shared/dashboard-layout-store.d.ts +44 -0
  377. package/shared/dashboard-layout-store.js +281 -0
  378. package/shared/feedback-contract.d.ts +61 -0
  379. package/shared/feedback-contract.js +146 -0
  380. package/shared/galaxy-artifact-links.d.ts +30 -0
  381. package/shared/galaxy-artifact-links.js +166 -0
  382. package/shared/galaxy-credentials.d.ts +26 -0
  383. package/shared/galaxy-credentials.js +71 -0
  384. package/shared/galaxy-destructive.d.ts +21 -0
  385. package/shared/galaxy-destructive.js +269 -0
  386. package/shared/galaxy-guidance.d.ts +2 -0
  387. package/shared/galaxy-guidance.js +53 -0
  388. package/shared/galaxy-live-contract.d.ts +92 -0
  389. package/shared/galaxy-live-contract.js +180 -0
  390. package/shared/galaxy-page-cells.d.ts +2 -0
  391. package/shared/galaxy-page-cells.js +22 -0
  392. package/shared/galaxy-tool-family.d.ts +5 -0
  393. package/shared/galaxy-tool-family.js +27 -0
  394. package/shared/galaxy-url.d.ts +1 -0
  395. package/shared/galaxy-url.js +48 -0
  396. package/shared/gtn.d.ts +31 -0
  397. package/shared/gtn.js +253 -0
  398. package/shared/handled-prompt.d.ts +3 -0
  399. package/shared/handled-prompt.js +26 -0
  400. package/shared/known-provider.d.ts +11 -0
  401. package/shared/known-provider.js +89 -0
  402. package/shared/lesson-hint-marker.d.ts +7 -0
  403. package/shared/lesson-hint-marker.js +32 -0
  404. package/shared/lesson-rules.d.ts +150 -0
  405. package/shared/lesson-rules.js +203 -0
  406. package/shared/malformed-object-ids.d.ts +1 -0
  407. package/shared/malformed-object-ids.js +37 -0
  408. package/shared/markdown-sections.d.ts +10 -0
  409. package/shared/markdown-sections.js +118 -0
  410. package/shared/notebook-fences.d.ts +12 -0
  411. package/shared/notebook-fences.js +53 -0
  412. package/shared/observation-contract.d.ts +91 -0
  413. package/shared/observation-contract.js +544 -0
  414. package/shared/orbit-config.d.ts +226 -0
  415. package/shared/orbit-config.js +189 -0
  416. package/shared/orbit-env.d.ts +13 -0
  417. package/shared/orbit-env.js +124 -0
  418. package/shared/orbit-shell-contract.d.ts +74 -0
  419. package/shared/orbit-shell-contract.js +30 -0
  420. package/shared/page-content-hash.d.ts +1 -0
  421. package/shared/page-content-hash.js +13 -0
  422. package/shared/pi-default-model.d.ts +7 -0
  423. package/shared/pi-default-model.js +41 -0
  424. package/shared/prompt-blocks.d.ts +87 -0
  425. package/shared/prompt-blocks.js +898 -0
  426. package/shared/provider-auth-caps.d.ts +22 -0
  427. package/shared/provider-auth-caps.js +57 -0
  428. package/shared/random.d.ts +2 -0
  429. package/shared/random.js +15 -0
  430. package/shared/record-excerpt.d.ts +4 -0
  431. package/shared/record-excerpt.js +16 -0
  432. package/shared/redirect-guard.d.ts +36 -0
  433. package/shared/redirect-guard.js +235 -0
  434. package/shared/skills-pin.d.ts +8 -0
  435. package/shared/skills-pin.js +9 -0
  436. package/shared/skills-router.d.ts +17 -0
  437. package/shared/skills-router.js +63 -0
  438. package/shared/sra-import.d.ts +34 -0
  439. package/shared/sra-import.js +206 -0
  440. package/shared/state-dir.d.ts +21 -0
  441. package/shared/state-dir.js +240 -0
  442. package/shared/team-dispatch-contract.d.ts +28 -0
  443. package/shared/team-dispatch-contract.js +1 -0
  444. package/shared/truncate-middle.d.ts +11 -0
  445. package/shared/truncate-middle.js +68 -0
  446. package/shared/version-compare.d.ts +10 -0
  447. package/shared/version-compare.js +74 -0
  448. package/shared/whats-new.d.ts +31 -0
  449. package/shared/whats-new.js +83 -0
  450. package/shared/wsl.d.ts +10 -0
  451. 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