kinderp / kinderp/durex

Add manual runtime selection and capability-aware routing

Open
#31 0 comments 0 reactions 0 assignees View on GitHub
area:agents kind:feature
Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Parent and milestone

- Parent issue: #23
- Milestone: not scheduled; implementation starts after #15.

## Problem

Multiple adapters are not useful if task creation cannot choose one safely, while automatic routing without capability and usage evidence would make outcomes unpredictable.

## Outcome

Add explicit per-task runtime selection first, then an opt-in deterministic router based on required capabilities, configured preferences, availability, privacy, and observed usage.

## Scope

- Add runtime IDs and required capabilities to task configuration.
- Expose available runtimes and reasons for ineligibility.
- Add deterministic manual, preferred-order, and capability-aware policies.
- Record the routing decision and usage observations without claiming cross-provider token equivalence.

## Non-goals

- Routing to consumer web chat.
- Circumventing provider usage limits.
- Dynamic price arbitrage without official machine-readable data.

## Acceptance criteria

- [ ] Manual selection is available before automatic routing.
- [ ] Routing is explainable, deterministic for the same state, and auditable.
- [ ] Missing capability, unavailable runtime, and exhausted configured budget produce explicit outcomes.
- [ ] Targeted and conformance tests pass.
- [ ] Architecture, adapter, and operator documentation is updated.

## Validation

- Test routing matrices, fallback order, health changes, privacy constraints, stale usage data, and deterministic replay.

## Dependencies

#28, #29, #30, and unified configuration in #14.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the unified configuration work in #14 and the dependent adapter issues #28, #29, and #30. Review the targeted and conformance tests, then validate routing matrices, fallback order, health changes, privacy constraints, stale usage data, and deterministic replay. Done means the acceptance criteria pass and the architecture, adapter, and operator documentation are updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.