Skip to content

Hackday/aggregator component#1801

Draft
Hargun3 wants to merge 4 commits intoTangleML:masterfrom
Hargun3:hackday/aggregator-component
Draft

Hackday/aggregator component#1801
Hargun3 wants to merge 4 commits intoTangleML:masterfrom
Hargun3:hackday/aggregator-component

Conversation

@Hargun3
Copy link
Copy Markdown

@Hargun3 Hargun3 commented Feb 12, 2026

Add Aggregate Inputs component with dynamic input mask

Summary

Adds the Aggregate Inputs component that merges multiple upstream outputs into a single output (object, array, or CSV). Replaces hardcoded input slots with a mask pattern so the frontend can dynamically add unlimited inputs.

Changes

  • New componentpublic/components/aggregator/component.yaml
  • Dynamic inputs — No hardcoded input_1input_10; uses input_mask annotations the frontend reads to generate inputs on demand
  • Python parsing — Replaces argparse with regex-based parsing so any --input-N is accepted (no upper limit)
  • Output type — Renamed dictobject (JSON object) throughout

How it works

  1. Frontend reads input_mask, input_mask_type, etc. and dynamically creates input handles when the user clicks "Add Input"
  2. When serializing the pipeline, the frontend injects the inputs array and corresponding args blocks for whatever inputs are connected
  3. At runtime, the Python script parses whatever --input-N flags the runner passes in

Notes

  • Frontend support for the input mask is still required to complete the feature
  • Backward compatible — pipelines with static inputs continue to work

Add pipeline component that merges up to 10 upstream inputs into a
single output (dict, array, or csv format). Registers the component
in the component library under a new Aggregation folder.
Remove hardcoded input_1-input_10 and their args blocks in favor of
input_mask annotations that let the frontend generate unlimited inputs
dynamically. Replace argparse with regex-based arg parsing to accept
any --input-N flag. Rename output type from "dict" to "object".
@Hargun3 Hargun3 requested a review from a team as a code owner February 12, 2026 22:12
Comment thread public/components/aggregator/component.yaml Outdated
Comment thread public/components/aggregator/component.yaml Outdated
Rename output types to match Tangle conventions where type names
represent file formats on disk, not Python in-memory types:
- object → JsonObject
- array → JsonArray
- csv → CSV
Use tangleml.com/aggregator_components/ prefix for all custom
annotations to avoid naming collisions, as suggested by Ark-kun.
@Hargun3 Hargun3 marked this pull request as draft February 12, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants