Skip to content

Flatten pipe/flow: update all pipeio MCP functions

Goal

Update every mcp_* function in packages/pipeio/src/pipeio/mcp.py to use flow-only addressing. Remove all pipe: str parameters. There is no derivative field — it was removed entirely.

Context

The prior task changed the registry schema: FlowEntry.pipe removed, keys from "pipe/flow" to "flow", registry.get(flow) instead of registry.get(pipe, flow). There is no derivative field — the derivative directory is always derivatives/{flow_name}/ (implicit).

Prompt

Update all MCP functions in packages/pipeio/src/pipeio/mcp.py to drop the pipe parameter.

What changed in the registry (prior task)

  • FlowEntry.pipe removed entirely (no derivative field either)
  • registry.get(flow) instead of registry.get(pipe, flow)
  • registry.remove(flow) instead of registry.remove(pipe, flow)
  • registry.list_flows() — no pipe/derivative filter
  • Registry keys are flow names, not "pipe/flow"
  • Derivative dir is always derivatives/{flow_name}/ (implicit from name)

Functions to update (all in mcp.py)

Every function that takes pipe: str and flow: str → drop pipe, keep flow.

Pattern — where it currently does:

entry = registry.get(pipe, flow)
Change to:
entry = registry.get(flow)
Where it references entry.pipe, replace with entry.name (for flow name) or compute derivative as just flow (the name).

Flow/registry tools: - mcp_flow_list(root, pipe=None)mcp_flow_list(root) (no filter, or add optional name prefix filter) - mcp_flow_status(root, pipe, flow)mcp_flow_status(root, flow) - mcp_flow_deregister(root, pipe, flow)mcp_flow_deregister(root, flow) — also update ignore list key - mcp_flow_fork(root, pipe, flow, new_flow, new_pipe)mcp_flow_fork(root, flow, new_flow)

All notebook tools: drop pipe param, keep flow and name

All mod/rule/config tools: drop pipe param, keep flow

Special cases: - mcp_cross_flow(root, pipe)mcp_cross_flow(root) (compare all flows, no pipe grouping) - _resolve_mod_doc_path(root, pipe, flow, mod)_resolve_mod_doc_path(root, flow, mod) — path becomes docs/pipelines/{flow}/mods/{mod}.md - Modkey format: pipe-{pipe}_flow-{flow}_mod-{mod}{flow}_mod-{mod} (simpler citekey) - mcp_nb_publish paths: docs/pipelines/{pipe}/{flow}/notebooks/docs/pipelines/{flow}/notebooks/ - mcp_nb_status / mcp_nb_lab: where they used pipe for filtering/grouping, just use flow

Constraints

  • Only modify packages/pipeio/src/pipeio/mcp.py
  • Run PYTHONPATH=src python -m pytest tests/ -q — fix any test failures
  • Save with datalad_save

Acceptance Criteria

  • [ ] No pipe: str parameter on any mcp_* function
  • [ ] All registry.get(pipe, flow) calls updated to registry.get(flow)
  • [ ] No references to entry.pipe anywhere
  • [ ] Modkey format simplified
  • [ ] Doc paths use {flow}/ not {pipe}/{flow}/
  • [ ] All tests pass

Result

(Filled in after execution)

Batch Result

  • status: failed
  • batch queue_id: 48c064cff89c
  • batch duration: 1800.1s