Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

effect: Effect bridge package (LanguageModel over gateway + agent, schema interop, scoped sandbox layers)

Aperta
#144 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Inizia esaminando gli entry point dei package esistenti @coder/ai-sdk-provider, @coder/ai-sdk-sandbox e @coder/ai-sdk-agent, quindi crea lo scaffold del package privato packages/effect. Segui la roadmap di Phase 1: implementa il mapping del provider, gli helper per gli schema e i layer sandbox con scope, aggiungi unit test e la validazione live su dev.coder.com, e documenta le API Effect bloccate nel README del package.

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

Descrizione

accepted enhancement

Tracking issue for an Effect bridge to the Coder AI SDK — a new packages/effect package (@coder/ai-sdk-effect) exposing the three existing packages through Effect-native abstractions.

Architecture

The bridge adapts our imperative SDK surfaces to Effect's service/Layer/Stream model without changing the underlying packages:

  • LanguageModel service over AI Gateway (@coder/ai-sdk-provider): implement Effect's LanguageModel interface on top of the gateway endpoints, mapping Effect Prompt/Response to the provider's chat-completions/messages calls and HTTP failures to typed AiErrors (auth, quota, provider-unavailable, malformed-response), preserving the centralized vs BYOK auth modes.
  • Schema interop: helpers bridging Standard Schema / Effect Schema to the SDK's tool-definition and structured-output surfaces, so Effect users define tools and output schemas in Effect Schema and get correct wire types both directions.
  • Scoped resource management for sandboxes (@coder/ai-sdk-sandbox): ensureCoderWorkspace + session lifecycle as Effect.acquireRelease / scoped Layers, so workspace acquisition, agent-readiness waits, and teardown compose with Effect scopes and interruption.
  • LanguageModel over CoderAgent/chatd (@coder/ai-sdk-agent): server-side agent loop as an Effect service — TurnTranslator output mapped onto Effect Stream, fiber interruption wired to agent.interrupt(), and the SDK's retryable/terminal error taxonomy (CoderStreamError.isRetryable, timeout vs cancellation) surfaced as tagged errors usable with Effect retry policies.

Roadmap

Phase 1 — Spike (merged: #145)
  • packages/effect scaffold (private, excluded from release-please until graduation)
  • Effect LanguageModel implementation over @coder/ai-sdk-provider (AI Gateway): Prompt/Response mapping + typed AiError hierarchy for HTTP errors
  • Standard Schema / Effect Schema interop helpers for tool definitions and structured outputs
  • Scoped Layers for workspace sandbox lifecycle (ensureCoderWorkspace + session as Effect.acquireRelease)
  • Unit tests + live validation against dev.coder.com
Phase 2 (2A merged: #240, #241, #242; publishing decision pending)
  • LanguageModel implementation over CoderAgent/chatd: TurnTranslator → Effect Stream mapping
  • Fiber interruption → agent.interrupt()
  • Retryable error tagging aligned with Effect retry policies
  • Publishing decision: versioning, peerDependency policy on effect/@effect/ai, release-please wiring

Notes

  • Spike ships as a private package: no npm publish and no release-please manifest entry until Phase 1 review concludes the API shape is right.
  • Effect / @effect/ai are fast-moving; the spike should pin exact versions and record the pinned API surface in the package README.

Generated with mux • Model: anthropic:claude-fable-5 • Thinking: xhigh

Lingua principale
TypeScript
Stelle
3
Fork
0
Merge medio
55m
PR unite (30g)
136

Preparare l'ambiente

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.

Altre issue di coder/ai-sdk

Tutte le issue di coder/ai-sdk

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.