Research: one model access component for parents, children and the supervisor
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- ai-infra-agents, backend, documentation
Línea de trabajo
Read ADRs 0005, 0013, 0021 and 0027 to map current model call paths in the gateway and orchestrator. Trace Pi's provider registry and the gateway credential attachment. Write docs/research/model-access.md with findings, recommendation, acceptance tests and ADR amendments; optionally install pi-claude-bridge on a Pi 1.4.0 test instance to record behaviour.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Research issue, output is a document under docs/research/ and, if the recommendation holds, an ADR proposal. Motivated by #799 and by the quota day of 2026-10-30.
Problem
Model calls leave usine through two unrelated paths. Children (Claude Code, Codex) run in attempt containers and reach providers through the gateway, which attaches API keys or forwards the machine's subscription login (ADR 0027). The Pi parent runs inside the orchestrator and calls providers through Pi's own provider registry and credential store: a ChatGPT login for openai-codex/..., API keys for anything else (ADR 0021). Consequences seen in operation: the parent cannot use the Claude subscription, so the children could move off a nearly exhausted ChatGPT window on 2026-10-30 but the parent could not; pool accounting and rate-window warnings exist per path; a future supervisor agent (#799) would inherit the parent's limits.
Questions to answer
- A
ModelAccessport: every model call in the system, parent included, goes through one component that knows the credential kinds (API key held by the gateway, subscription forwarded from a Claude Code or Codex client), assigns the pool, enforces rate windows and refuses what it cannot bill. Where does it live (the gateway process, or a library the orchestrator and the gateway share), what does the parent's call path look like through it, and what breaks in Pi's session model when its provider is a usine component? - The parent harness: what it would take for the parent to be a Claude Code or Codex session (through their SDKs) instead of Pi, keeping the parent protocol usine relies on (holds, steers, interrupts, release, reattachment after a restart, child spawning, usage events). Which of those exist in each SDK, which would need a shim, and what the migration order is.
- Bridges as stopgaps: evaluate
pi-claude-bridge(a Pi extension that runs a Claude Code subprocess through the Agent SDK and routes Pi's turns through it, model idsclaude-bridge/<model>, Pi ≥ 1.2, Agent SDK ^0.3.308). Install it on a test instance behind usine's Pi 1.4.0, map its provider to the Claude pool, run one attempt end to end, then a restart with reattachment, and record prompt-cache behaviour, steering latency and any Extra Usage sign. State the terms and billing uncertainty (Anthropic announced and withdrew a billing change for Agent SDK use). - Terms: for each credential kind, what the provider's terms allow (forwarded login, held key, SDK use under a subscription), with the source.
Deliverable
docs/research/model-access.md with the findings, a recommendation in the order to do things (port first with Pi behind it, parent harness later, bridge only as a measured stopgap or not at all), the acceptance tests for the port, and the ADR amendments it would need (0005, 0013, 0021, 0027).
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 0
- Merge medio
- 4 h 26 min
- PR fusionados (30 d)
- 280
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de basaltbytes/usine
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
basaltbytes/usine#801 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
basaltbytes/usine#799 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
basaltbytes/usine#798 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
basaltbytes/usine#792 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
basaltbytes/usine#780 ·
Los mantenedores suelen responder en 1 día
Todos los issues de basaltbytes/usine
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
components-web-app/docs#311 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NEARBuilders/everything-dev#678 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
formbricks/formbricks#9881 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día