@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,609 @@
1
+ # Galaxy Collection Operation Tools Research
2
+
3
+ ## Context
4
+
5
+ Galaxy provides comprehensive native tools for collection operations. Per project goals, Claude should recommend these tools over direct API manipulation to ensure reproducibility, workflow-extractability, and alignment with Galaxy best practices.
6
+
7
+ This document catalogs the collection operation tools available in Galaxy's core toolset (lib/galaxy/tools), documenting their capabilities, inputs, outputs, and use cases.
8
+
9
+ ## Tool Categories
10
+
11
+ ### 1. Advanced Restructuring Tools
12
+
13
+ #### Apply Rules Tool (`__APPLY_RULES__`)
14
+ **Location:** `lib/galaxy/tools/apply_rules.xml`
15
+
16
+ **Purpose:** Advanced collection restructuring tool that processes collection metadata as tabular data and applies transformation rules to generate new collections.
17
+
18
+ **Key Features:**
19
+ - Process collections with arbitrary nesting levels
20
+ - Filter, re-sort, nest, flatten, and combine operations
21
+ - Dynamic preview in interactive tool form
22
+ - Workflow-compatible (no preview in workflows)
23
+ - Most flexible collection operation tool
24
+
25
+ **Inputs:**
26
+ - `input`: Data collection of any type
27
+ - `rules`: Rules specification (references input collection)
28
+
29
+ **Outputs:**
30
+ - `output`: Reorganized collection (type determined by rules)
31
+ - Label: `${input.name} (re-organized)`
32
+
33
+ **Use Cases:**
34
+ - Complex filtering combined with structural modifications
35
+ - Arbitrary nesting/flattening operations
36
+ - Operations not possible with simpler collection tools
37
+ - Batch restructuring with saved rule definitions
38
+
39
+ **Training Resources:** https://training.galaxyproject.org/training-material/search?query=rule+builder
40
+
41
+ **Notes:**
42
+ - Does not increase quota usage
43
+ - Can handle operations too complex for other collection tools
44
+ - Rules can be exported as JSON and reused
45
+
46
+ ---
47
+
48
+ ### 2. Filtering and Selection Tools
49
+
50
+ #### Filter Collection (`__FILTER_FROM_FILE__`)
51
+ **Location:** `lib/galaxy/tools/filter_from_file.xml`
52
+
53
+ **Purpose:** Filter collection elements using identifiers from a supplied text file.
54
+
55
+ **Inputs:**
56
+ - `input`: Data collection to filter
57
+ - `how_filter`: Selection mode
58
+ - `remove_if_absent`: Keep only elements whose identifiers are IN the file
59
+ - `remove_if_present`: Keep only elements whose identifiers are NOT IN the file
60
+ - `filter_source`: Text file containing identifiers (one per line)
61
+
62
+ **Outputs:**
63
+ - `output_filtered`: Collection with matching elements
64
+ - `output_discarded`: Collection with removed elements
65
+
66
+ **Use Cases:**
67
+ - Subset collections based on sample lists
68
+ - Remove failed or problematic samples
69
+ - Keep only samples of interest for downstream analysis
70
+
71
+ **Example:**
72
+ Collection: [A, B, X] + File: [A, B, Z] with `remove_if_absent` → Filtered: [A, B], Discarded: [X]
73
+
74
+ **Notes:**
75
+ - Produces TWO collections (filtered and discarded)
76
+ - Identifiers in file that don't match collection elements are ignored
77
+
78
+ ---
79
+
80
+ #### Filter Empty Datasets (`__FILTER_EMPTY_DATASETS__`)
81
+ **Location:** `lib/galaxy/tools/filter_empty_collection.xml`
82
+
83
+ **Purpose:** Remove empty datasets from a collection.
84
+
85
+ **Inputs:**
86
+ - `input`: Collection (type: list or list:paired)
87
+
88
+ **Outputs:**
89
+ - `output`: Collection with empty datasets removed
90
+
91
+ **Use Cases:**
92
+ - Continue multi-sample analysis when some samples produce no output
93
+ - Clean collections before downstream tools that require content
94
+
95
+ ---
96
+
97
+ #### Filter Failed Datasets (`__FILTER_FAILED_DATASETS__`)
98
+ **Location:** `lib/galaxy/tools/filter_failed_collection.xml`
99
+
100
+ **Purpose:** Remove datasets in error (red) state from a collection.
101
+
102
+ **Inputs:**
103
+ - `input`: Collection (type: list or list:paired)
104
+ - `replacement`: Optional dataset to replace failed elements (instead of removing)
105
+
106
+ **Outputs:**
107
+ - `output`: Collection with failed datasets removed/replaced
108
+
109
+ **Use Cases:**
110
+ - Continue multi-sample pipeline when some samples fail
111
+ - Replace failed samples with placeholder data
112
+
113
+ ---
114
+
115
+ #### Keep Success Datasets (`__KEEP_SUCCESS_DATASETS__`)
116
+ **Location:** `lib/galaxy/tools/keep_success_collection.xml`
117
+
118
+ **Purpose:** Keep only datasets in success (green) state, removing failed and paused datasets.
119
+
120
+ **Inputs:**
121
+ - `input`: Collection (type: list or list:paired)
122
+
123
+ **Outputs:**
124
+ - `output`: Collection with only successful datasets
125
+
126
+ **Use Cases:**
127
+ - Filter out failed or paused samples
128
+ - Ensure downstream tools only process completed samples
129
+
130
+ ---
131
+
132
+ #### Extract Dataset (`__EXTRACT_DATASET__`)
133
+ **Location:** `lib/galaxy/tools/extract_dataset.xml`
134
+
135
+ **Purpose:** Extract a single dataset from a collection by position or identifier.
136
+
137
+ **Inputs:**
138
+ - `input`: Collection (type: list, paired, paired_or_unpaired, or record)
139
+ - `which_dataset`: Selection method
140
+ - `first`: Extract the first dataset
141
+ - `by_identifier`: Extract by element identifier name
142
+ - `by_index`: Extract by position (0-indexed)
143
+
144
+ **Outputs:**
145
+ - `output`: Single extracted dataset
146
+
147
+ **Use Cases:**
148
+ - Extract reference sample from collection
149
+ - Get specific dataset for individual inspection
150
+ - Collapse nested collections to simpler structure
151
+
152
+ **Notes:**
153
+ - For nested collections, extracts from innermost level
154
+ - Creates new list where selected element replaces innermost collection
155
+
156
+ ---
157
+
158
+ ### 3. Structure Transformation Tools
159
+
160
+ #### Flatten Collection (`__FLATTEN__`)
161
+ **Location:** `lib/galaxy/tools/flatten_collection.xml`
162
+
163
+ **Purpose:** Flatten nested collections (list:paired, list:list, etc.) into a simple list.
164
+
165
+ **Inputs:**
166
+ - `input`: Nested data collection
167
+ - `join_identifier`: String to join identifier levels (default: "_")
168
+
169
+ **Outputs:**
170
+ - `output`: Flattened list collection
171
+
172
+ **Use Cases:**
173
+ - Convert list:paired → list (for single-dataset tools)
174
+ - Simplify nested list:list structures
175
+ - Prepare collections for tools requiring simple lists
176
+
177
+ **Example:**
178
+ ```
179
+ Input: list:paired [i1 → {forward, reverse}]
180
+ Output: list [i1_forward, i1_reverse]
181
+ ```
182
+
183
+ ---
184
+
185
+ #### Zip Collections (`__ZIP_COLLECTION__`)
186
+ **Location:** `lib/galaxy/tools/zip_collection.xml`
187
+
188
+ **Purpose:** Combine two datasets or collections into a paired collection.
189
+
190
+ **Inputs:**
191
+ - `input_forward`: Dataset or collection (forward reads)
192
+ - `input_reverse`: Dataset or collection (reverse reads)
193
+
194
+ **Outputs:**
195
+ - `output`: Paired collection with forward/reverse structure
196
+
197
+ **Use Cases:**
198
+ - Combine separate forward/reverse read collections
199
+ - Create paired structure from two simple lists
200
+ - Prepare data for paired-end analysis tools
201
+
202
+ **Example:**
203
+ ```
204
+ Input: forward_list [A, B] + reverse_list [A, B]
205
+ Output: paired [A → {forward, reverse}, B → {forward, reverse}]
206
+ ```
207
+
208
+ ---
209
+
210
+ #### Unzip Collection (`__UNZIP_COLLECTION__`)
211
+ **Location:** `lib/galaxy/tools/unzip_collection.xml`
212
+
213
+ **Purpose:** Split a paired collection into two separate list collections.
214
+
215
+ **Inputs:**
216
+ - `input`: Paired collection
217
+
218
+ **Outputs:**
219
+ - `forward`: List collection containing forward elements
220
+ - `reverse`: List collection containing reverse elements
221
+
222
+ **Use Cases:**
223
+ - Separate paired reads for single-end processing
224
+ - Process forward and reverse reads independently
225
+ - Extract specific read orientation
226
+
227
+ **Example:**
228
+ ```
229
+ Input: paired [A → {forward, reverse}, B → {forward, reverse}]
230
+ Output: forward_list [A, B] + reverse_list [A, B]
231
+ ```
232
+
233
+ ---
234
+
235
+ #### Nest Collection (`__NEST__`)
236
+ **Location:** `lib/galaxy/tools/nest_collection.xml`
237
+
238
+ **Purpose:** Add a nesting level to a collection (create collection of collections).
239
+
240
+ **Inputs:**
241
+ - `input`: Collection (type: list or paired)
242
+
243
+ **Outputs:**
244
+ - `output`: Nested collection (list:list or list:paired)
245
+
246
+ **Use Cases:**
247
+ - Enable map-over behavior for list-processing tools
248
+ - Add hierarchy level for batch processing
249
+ - Prepare collections for tools expecting nested structure
250
+
251
+ **Example:**
252
+ ```
253
+ Input: list [sample1, sample2]
254
+ Output: list:list [sample1 → [sample1], sample2 → [sample2]]
255
+ ```
256
+
257
+ **Purpose Explanation:**
258
+ When a tool accepts a list, Galaxy maps over elements. If you want to process entire lists as units, add nesting so Galaxy maps over the outer lists instead.
259
+
260
+ ---
261
+
262
+ ### 4. Collection Building and Merging Tools
263
+
264
+ #### Build List (`__BUILD_LIST__`)
265
+ **Location:** `lib/galaxy/tools/build_list.xml`
266
+
267
+ **Purpose:** Build a new list collection from individual datasets or collections.
268
+
269
+ **Inputs:**
270
+ - `datasets`: Repeating parameter for dataset/collection inputs
271
+
272
+ **Outputs:**
273
+ - `output`: List collection containing all inputs
274
+
275
+ **Use Cases:**
276
+ - Combine individual datasets into a collection
277
+ - Merge dataset with collection elements (creates nested collection)
278
+ - Merge multiple collections (creates nested collection)
279
+
280
+ **Examples:**
281
+ - **Case A:** Individual datasets → simple list
282
+ - **Case B:** Collection + datasets → nested collection (dataset added to each collection element)
283
+ - **Case C:** Multiple collections → nested collection (must have equal element counts)
284
+
285
+ **Notes:**
286
+ - When merging collections, they must have the same number of elements
287
+ - If providing collections, tool runs in batch mode
288
+
289
+ ---
290
+
291
+ #### Merge Collections (`__MERGE_COLLECTION__`)
292
+ **Location:** `lib/galaxy/tools/merge_collection.xml`
293
+
294
+ **Purpose:** Merge two or more collections into a single collection.
295
+
296
+ **Inputs:**
297
+ - `inputs`: Repeating parameter for collections (minimum 2)
298
+ - `conflict.duplicate_options`: How to handle duplicate identifiers
299
+ - `keep_first`: Keep first occurrence (default)
300
+ - `keep_last`: Keep last occurrence
301
+ - `suffix_conflict`: Append suffix to all conflicting identifiers
302
+ - `suffix_conflict_rest`: Append suffix to conflicts after first
303
+ - `suffix_every`: Append suffix to every identifier
304
+ - `fail`: Error on conflicts
305
+ - `suffix_pattern`: Pattern for suffixes (default: "_#")
306
+
307
+ **Outputs:**
308
+ - `output`: Merged collection (same type as first input)
309
+
310
+ **Use Cases:**
311
+ - Combine results from multiple analysis runs
312
+ - Merge sample collections from different sources
313
+ - Append additional samples to existing collection
314
+
315
+ **Example with suffix_conflict_rest:**
316
+ ```
317
+ Input: [A, B, X] + [A, B, Y]
318
+ Output: [A, B, A_2, B_2, X, Y]
319
+ ```
320
+
321
+ ---
322
+
323
+ #### Duplicate File to Collection (`__DUPLICATE_FILE_TO_COLLECTION__`)
324
+ **Location:** `lib/galaxy/tools/duplicate_file_to_collection.xml`
325
+
326
+ **Purpose:** Create a collection by duplicating a single dataset N times.
327
+
328
+ **Inputs:**
329
+ - `input`: Dataset to duplicate
330
+ - `number`: Number of duplicates to create (integer)
331
+ - `element_identifier`: Base name for element identifiers
332
+
333
+ **Outputs:**
334
+ - `output`: List collection with N identical elements
335
+
336
+ **Use Cases:**
337
+ - Create reference dataset collection matching sample count
338
+ - Replicate parameter file for batch processing
339
+ - Generate collections for testing
340
+
341
+ **Example:**
342
+ ```
343
+ Input: dataset.txt, number=3, identifier="ref"
344
+ Output: list [ref 1, ref 2, ref 3] (all identical)
345
+ ```
346
+
347
+ ---
348
+
349
+ ### 5. Metadata and Organization Tools
350
+
351
+ #### Relabel Identifiers (`__RELABEL_FROM_FILE__`)
352
+ **Location:** `lib/galaxy/tools/relabel_from_file.xml`
353
+
354
+ **Purpose:** Change element identifiers in a collection using identifiers from a file.
355
+
356
+ **Inputs:**
357
+ - `input`: Collection to relabel
358
+ - `how_select`: Label specification method
359
+ - `txt`: Simple text file (one identifier per line, order-dependent)
360
+ - `tabular`: Two-column mapping (old → new identifiers)
361
+ - `tabular_extended`: Any two columns from table
362
+ - `labels`: File containing new identifiers
363
+ - `strict`: Enforce exact matching (optional boolean)
364
+
365
+ **Outputs:**
366
+ - `output`: Collection with relabeled elements
367
+
368
+ **Use Cases:**
369
+ - Rename samples to human-readable names
370
+ - Map technical IDs to sample names
371
+ - Standardize naming across collections
372
+
373
+ **Valid Identifier Characters:** a-z, A-Z, 0-9, -, _, ., space, comma
374
+
375
+ **Example with tabular mapping:**
376
+ ```
377
+ Input: Collection [A, B, X]
378
+ File: B → Beta, X → Gamma, A → Alpha
379
+ Output: Collection [Alpha, Beta, Gamma]
380
+ ```
381
+
382
+ ---
383
+
384
+ #### Sort Collection (`__SORTLIST__`)
385
+ **Location:** `lib/galaxy/tools/sort_collection_list.xml`
386
+
387
+ **Purpose:** Sort collection elements alphabetically, numerically, or by custom order.
388
+
389
+ **Inputs:**
390
+ - `input`: Collection (type: list or list:paired)
391
+ - `sort_type`: Sorting method
392
+ - `alpha`: Alphabetical sorting
393
+ - `numeric`: Numeric sorting (ignores non-numeric characters)
394
+ - `file`: Custom order from file
395
+ - `sort_file`: Text file with desired order (for file-based sorting)
396
+
397
+ **Outputs:**
398
+ - `output`: Sorted collection
399
+
400
+ **Use Cases:**
401
+ - Organize samples alphabetically
402
+ - Order by sample numbers
403
+ - Apply custom experimental order
404
+
405
+ **Example with numeric sort:**
406
+ ```
407
+ Input: [Horse123, Donkey543, Mule176]
408
+ Output: [Horse123, Mule176, Donkey543] (sorted by numbers: 123, 176, 543)
409
+ ```
410
+
411
+ ---
412
+
413
+ #### Tag Elements (`__TAG_FROM_FILE__`)
414
+ **Location:** `lib/galaxy/tools/tag_collection_from_file.xml`
415
+
416
+ **Purpose:** Add, set, or remove tags on collection elements.
417
+
418
+ **Inputs:**
419
+ - `input`: Collection to tag
420
+ - `tags`: Two-column tabular file (identifier → tags)
421
+ - `how`: Tag update mode
422
+ - `add`: Add new tags, keep existing
423
+ - `set`: Add new tags, remove existing
424
+ - `remove`: Remove specified tags
425
+
426
+ **Outputs:**
427
+ - `output`: Collection with updated tags
428
+
429
+ **Tag Types:**
430
+ - **Simple tags:** Alternative labels for finding datasets
431
+ - **Name tags** (`name:` or `#`): Propagate through derived datasets
432
+ - **Group tags** (`group:`): Label groups (e.g., treatment/control)
433
+
434
+ **Use Cases:**
435
+ - Annotate samples with metadata
436
+ - Track experimental conditions
437
+ - Enable tag-based filtering downstream
438
+
439
+ **Training Resources:** https://training.galaxyproject.org/training-material/search?query=tags
440
+
441
+ ---
442
+
443
+ ### 6. Advanced Combination Tools
444
+
445
+ #### Flat Cross Product (`__CROSS_PRODUCT_FLAT__`)
446
+ **Location:** `lib/galaxy/tools/cross_product_flat.xml`
447
+
448
+ **Purpose:** Create all-vs-all combinations of two list collections for pairwise comparisons.
449
+
450
+ **Inputs:**
451
+ - `input_a`: First list collection (length n)
452
+ - `input_b`: Second list collection (length m)
453
+ - `join_identifier`: String to join identifiers (default: "_")
454
+
455
+ **Outputs:**
456
+ - `output_a`: List of size n×m (repeats from input_a)
457
+ - `output_b`: List of size n×m (repeats from input_b)
458
+
459
+ **Use Cases:**
460
+ - All-vs-all pairwise comparisons
461
+ - Combinatorial analysis
462
+ - Cross-reference testing
463
+
464
+ **How It Works:**
465
+ Creates two matched lists where the kth element identifier is the concatenation of input_a[i] and input_b[j] identifiers. The kth element of output_a contains input_a[i] data, and the kth element of output_b contains input_b[j] data. When used with a comparison tool, produces all combinations.
466
+
467
+ **Example:**
468
+ ```
469
+ Input A: [a1, a2] (n=2)
470
+ Input B: [b1, b2] (m=2)
471
+
472
+ Output A: [a1_b1, a1_b2, a2_b1, a2_b2] (contains: a1, a1, a2, a2)
473
+ Output B: [a1_b1, a1_b2, a2_b1, a2_b2] (contains: b1, b2, b1, b2)
474
+
475
+ Comparison tool produces: [a1 vs b1, a1 vs b2, a2 vs b1, a2 vs b2]
476
+ ```
477
+
478
+ **Notes:**
479
+ - Both output lists have identical element identifiers in same order
480
+ - Matching corresponding elements produces every combination
481
+ - Does not increase quota usage
482
+
483
+ ---
484
+
485
+ ## Tool Selection Guide
486
+
487
+ ### When to Use Which Tool
488
+
489
+ **For Filtering:**
490
+ - **Simple cleanup:** `Filter Empty`, `Filter Failed`, `Keep Success`
491
+ - **Identifier-based selection:** `Filter from File`
492
+ - **Extract single item:** `Extract Dataset`
493
+
494
+ **For Restructuring:**
495
+ - **Simple operations:** `Flatten`, `Zip`, `Unzip`, `Nest`
496
+ - **Complex operations:** `Apply Rules` (most flexible)
497
+
498
+ **For Building Collections:**
499
+ - **From scratch:** `Build List`
500
+ - **Combining collections:** `Merge Collections`
501
+ - **Replicating data:** `Duplicate File to Collection`
502
+
503
+ **For Metadata:**
504
+ - **Rename elements:** `Relabel Identifiers`
505
+ - **Reorder elements:** `Sort Collection`
506
+ - **Add metadata:** `Tag Elements`
507
+
508
+ **For Advanced Operations:**
509
+ - **All-vs-all comparisons:** `Flat Cross Product`
510
+ - **Everything else complex:** `Apply Rules`
511
+
512
+ ## Best Practices
513
+
514
+ ### Reproducibility
515
+ 1. **Prefer tools over API:** All these tools are workflow-compatible
516
+ 2. **Document operations:** Tool parameters capture transformation logic
517
+ 3. **Reuse patterns:** Export Apply Rules JSON for similar datasets
518
+ 4. **Test incrementally:** Verify each transformation before chaining
519
+
520
+ ### Workflow Integration
521
+ 1. **Chain operations:** Tools work together seamlessly
522
+ 2. **Preserve structure:** Choose tools that maintain needed hierarchy
523
+ 3. **Consider downstream:** Match collection type to next tool's requirements
524
+ 4. **Batch wisely:** Use nesting to control map-over behavior
525
+
526
+ ### Performance
527
+ 1. **Filter early:** Remove unwanted elements before heavy processing
528
+ 2. **Flatten when appropriate:** Simpler structures are easier to work with
529
+ 3. **Avoid unnecessary nesting:** Only nest when tools require it
530
+ 4. **No quota impact:** Collection operations don't increase storage usage
531
+
532
+ ## Common Patterns
533
+
534
+ ### Pattern 1: Clean and Filter Pipeline
535
+ ```
536
+ 1. Filter Failed Datasets → Remove errors
537
+ 2. Filter Empty Datasets → Remove empty files
538
+ 3. Filter from File → Keep only samples of interest
539
+ 4. Sort Collection → Organize for downstream
540
+ ```
541
+
542
+ ### Pattern 2: Paired-End Read Processing
543
+ ```
544
+ 1. Zip Collections → Combine forward/reverse lists
545
+ 2. Process paired data (mapping, alignment)
546
+ 3. Unzip Collection → Separate for single-end analysis
547
+ 4. Flatten Collection → Convert to simple list if needed
548
+ ```
549
+
550
+ ### Pattern 3: Complex Restructuring
551
+ ```
552
+ 1. Apply Rules → Custom filtering/nesting/flattening
553
+ - Load or create transformation rules
554
+ - Preview results in interactive mode
555
+ - Export rules JSON for reuse
556
+ 2. Downstream analysis with restructured collection
557
+ ```
558
+
559
+ ### Pattern 4: Metadata Management
560
+ ```
561
+ 1. Relabel Identifiers → Standardize naming
562
+ 2. Tag Elements → Add experimental metadata
563
+ 3. Sort Collection → Order by experiment design
564
+ 4. Downstream analysis with organized metadata
565
+ ```
566
+
567
+ ### Pattern 5: All-vs-All Analysis
568
+ ```
569
+ 1. Flat Cross Product → Generate all combinations
570
+ 2. Comparison tool → Process each pair
571
+ 3. Merge Collections → Combine with original data if needed
572
+ 4. Analysis and visualization
573
+ ```
574
+
575
+ ## Summary: Tool-Based vs. API-Based Operations
576
+
577
+ ### Why Tools Win
578
+
579
+ **Reproducibility:**
580
+ - Operations captured in workflow format
581
+ - Parameters documented automatically
582
+ - Re-execution produces identical results
583
+
584
+ **Traceability:**
585
+ - Galaxy tracks all transformations
586
+ - Provenance preserved throughout pipeline
587
+ - Operations visible in history
588
+
589
+ **Shareability:**
590
+ - Workflows extractable and shareable
591
+ - Community can reproduce analyses
592
+ - Published methods remain executable
593
+
594
+ **Consistency:**
595
+ - Tested and validated operations
596
+ - Uniform application across datasets
597
+ - Reduced human error
598
+
599
+ ### When Claude Encounters Collection Requests
600
+
601
+ 1. **Analyze requirements:** Understand data structure and goals
602
+ 2. **Select appropriate tool(s):** Match operation to tool capabilities
603
+ 3. **Explain approach:** Describe why tool-based solution is preferred
604
+ 4. **Provide guidance:** Step-by-step instructions for tool usage
605
+ 5. **Avoid API manipulation:** Only when no tool-based alternative exists
606
+
607
+ ### The Galaxy Way
608
+
609
+ Collections + tool-based operations + workflow integration = reproducible, scalable, shareable bioinformatics analyses.