terraphim / terraphim/terraphim-ai

Evaluate: Extract standalone LLM interaction crate (Pi layered architecture pattern)

Aperta
#684 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
Lingua principale
Rust
Stelle
62
Fork
5
Merge medio
2h 27m
PR unite (30g)
1

Descrizione

Parent Epic

#682 -- Evaluate Pi architectural patterns

Pattern

Pi uses a 3-layer architecture where each layer is independently usable:

pi-ai (unified LLM API, multi-provider streaming, token/cost tracking)
    |
pi-agent-core (stateful agent loop, tool execution, events, state management)
    |
pi-coding-agent (TUI, sessions, extensions, skills, themes)

Any consumer can use pi-ai alone for LLM streaming, pi-agent-core for an agent without UI, or the full stack.

Current State

LLM interaction code in terraphim-ai is scattered across:

  • terraphim_orchestrator -- spawns CLI agents (subprocess management)
  • terraphim_multi_agent -- agent configurations and model routing
  • terraphim_llm_proxy -- HTTP proxy with model routing
  • Ad-hoc scripts in cto-executive-system/automation/

There is no standalone crate for "call an LLM, get a response, track tokens/cost" that other crates can depend on without pulling in the full orchestrator or multi-agent machinery.

Evaluation Questions

  1. What belongs in a standalone LLM crate? Candidates: provider abstraction, streaming response types, token counting, cost calculation, context serialisation, model registry.
  2. Does this overlap with existing crates? Check terraphim_llm_proxy (already has model routing) and terraphim_multi_agent (has agent configs).
  3. Would this simplify ADF? Currently terraphim_orchestrator shells out to claude -p and codex exec. A Rust-native LLM crate could replace some subprocess calls.
  4. What about the Claude Agent SDK? The Agent SDK (#682 context) provides a Python/TypeScript library for Claude. A Rust LLM crate would serve a different purpose (direct API calls, multi-provider, no agent loop).

Acceptance Criteria

  • Map all LLM interaction points across the 54-crate workspace
  • Define proposed crate boundary (what goes in, what stays out)
  • Assess overlap with terraphim_llm_proxy and terraphim_multi_agent
  • Decision: extract, refactor existing, or reject with rationale

References

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Start by mapping LLM interaction points across the 54-crate workspace, including terraphim_orchestrator, terraphim_multi_agent, terraphim_llm_proxy, and cto-executive-system/automation/. Read the referenced Pi pi-ai package and compare existing model routing and agent configurations. Done means a proposed crate boundary, overlap assessment, and a documented extract, refactor, or reject decision with rationale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
ai, backend-api-design
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.