components-advanced
workflowv1.0.0Advanced components: unpacked directories and packed .komponent archives
Install
kdeps registry install components-advanced
Then run locally:
kdeps exec components-advanced
Configure LLM provider in ~/.kdeps/config.yaml (created automatically on first run).
README
Mixed Components Example (Packed + Unpacked, Multiple Resources)
This advanced example demonstrates:
- Unpacked component directories (
formatter/) - Packed
.komponentarchives (data-processor-2.0.0.komponent) - Components with multiple resources
- Cross-component dependencies
Structure
components-advanced/
├── workflow.yaml
├── resources/
│ ├── init.yaml # Sets initial 'name' parameter
│ └── output.yaml # Final API response
└── components/
├── formatter/ # Unpacked component (2 resources)
│ └── component.yaml
└── data-processor-2.0.0.komponent # Packed component (2 resources)
Components
1. formatter (unpacked directory)
Provides two independent resources:
formatName: CreatesformattedName = "Hello, <name>! Welcome!"addTimestamp: Setstimestamp = now()
2. data-processor (packed .komponent)
Provides two resources with dependencies:
uppercaseText: RequiresformatName, setsupper = uppercase(formattedName)logResult: RequiresuppercaseText, logs the processed result
Workflow Flow
setName→ initializesname = "Claude"formatName→ createsformattedNameaddTimestamp→ createstimestamp(runs in parallel with formatName)uppercaseText→ waits forformatName, createsupperlogResult→ waits foruppercaseText, executes shell commandfinalResponse→ waits forlogResult, returns all collected data
Execution Order
The execution graph resolves dependencies automatically:
setName
├── formatName ──┐
│ ↓
└── addTimestamp uppercaseText ── logResult ── finalResponse
Note: addTimestamp and formatName can run in parallel since they have no dependency between them.
Running the Example
kdeps run examples/components-advanced/workflow.yaml
Expected output:
{
"success": true,
"message": "Hello, Claude! Welcome!",
"upper": "HELLO, CLAUDE! WELCOME!",
"timestamp": "2025-..."
}
Key Takeaways
- ✅ Unpacked directories and
.komponentarchives can coexist incomponents/ - ✅ Each component can define multiple resources
- ✅ Resources from different components can depend on each other
- ✅ Auto-loading merges all resources into a single execution graph
- ✅ Duplicate
actionIds are automatically deduplicated (last wins)
This pattern enables:
- Reusable component libraries (packed as
.komponent) - Local development with unpacked components (easy to iterate)
- Mix-and-match composition of complex workflows from many components
Versions
| Version | Published | Status |
|---|---|---|
| 1.0.0 | 4/11/2026 | active |
Details
- Author
- kdeps
- License
- Apache-2.0
- Latest Version
- 1.0.0
- Published
- 4/11/2026
Tags
componentsadvanced