kinderp / kinderp/durex

Define the versioned AgentRuntime adapter contract

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
area:agents kind:design
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 and the #42 product
gate.

## Problem

Durex runtime contracts currently model one task runner and supervisor but do
not bind ACP or native runtime sessions to provider-neutral Durex identity,
capabilities, follow-up input, health, usage observations, execution
environments, or structured extensions.

## Outcome

Publish an ADR and typed internal `AgentRuntimeAdapter` contract around ACP and
approved native extensions without creating a competing public wire protocol
or importing vendor SDK types into the core.

## Scope

- Define `AgentRuntimeAdapter`, `AgentSessionHandle`, `RuntimeCapabilities`,
`AgentEvent`, `UsageObservation`, and structured error categories.
- Map ACP sessions, prompts, updates, tools, permission requests, content, and
cancellation to Durex run, lease, interaction, and checkpoint identity.
- Define mandatory versus optional capabilities and explicit unsupported
responses.
- Preserve opaque provider extensions in bounded envelopes.
- Define `acp_standard`, `acp_plus_native`, and `pty_degraded` maturity.
- Define compatibility and a conformance suite across ACP and justified native
extensions.

## Non-goals

- Implementing a concrete runtime adapter.
- Forking ACP or adding Durex queue, workspace, plugin, secret, budget, policy,
or node lifecycle to ACP.
- Normalizing model prices or subscription terms.
- Owning execution environments tracked by #44 or pipeline behavior tracked by
#24.

## Acceptance criteria

- [ ] The internal contract covers start, resume, follow-up, cancel, health,
event streaming, interactions, and usage observation.
- [ ] ACP is the default wire path and every native extension has evidence from
#25.
- [ ] Provider and ACP ids never replace Durex task, run, lease, workspace, or
session ids.
- [ ] Capability downgrade and incompatibility behavior is explicit.
- [ ] PTY degradation cannot authenticate high-risk interactions.
- [ ] Targeted and conformance tests pass.
- [ ] Architecture, adapter, and operator documentation is updated.

## Validation

- Review against the capability audit in #25 and execution boundary in #44.
- Run contract serialization and fake ACP/native-adapter lifecycle tests.

## Dependencies

- #25 and #44; #15 gates runtime implementation.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the capability audit in #25 and execution boundary in #44, then define the ADR and typed internal contract named in the issue. Validate with contract serialization and fake ACP/native-adapter lifecycle tests. Done means the listed lifecycle, capability, identity, degradation, and compatibility behaviors are explicit and targeted and conformance tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.