Skip to content

feat(sdk): stage 5 — export adapter factories from package root#1432

Open
vanceingalls wants to merge 1 commit into
06-13-docs_sdk-playground_accurate_readme_with_stage_coverage_and_canresultfrom
sdk-stage5-adapter-exports
Open

feat(sdk): stage 5 — export adapter factories from package root#1432
vanceingalls wants to merge 1 commit into
06-13-docs_sdk-playground_accurate_readme_with_stage_coverage_and_canresultfrom
sdk-stage5-adapter-exports

Conversation

@vanceingalls

Copy link
Copy Markdown
Collaborator

Stage 5 — public adapter factory exports

Ships the public entry points for the SDK's adapter layer. The concrete adapters already existed internally (memory.ts, headless.ts, fs.ts) and pass the T13 contract suite, but index.ts only re-exported the type interfaces — so consumers had to reach into deep src/adapters/* paths to instantiate one. This wires them to the package root.

What's exported

Factory Adapter Use case
createHeadlessAdapter() PreviewAdapter (no-op) Agents, CI, SSR — no browser, no DOM
createMemoryAdapter() PersistAdapter (in-memory) Tests, demos, headless open with no storage backend
createFsAdapter(opts) PersistAdapter (node fs) Local dev — versioned history on disk

FsAdapterOptions is exported alongside createFsAdapter.

Why this completes the headless story

Agents and CI can now open a composition with zero browser and zero disk:

import { openComposition, createHeadlessAdapter, createMemoryAdapter } from "@hyperframes/sdk";

const session = await openComposition(html, {
  preview: createHeadlessAdapter(),
  persist: createMemoryAdapter(),
});

Scope

  • S3 / production HTTP adapters are post-Pacific — intentionally not included.
  • No new adapter implementations; this is purely the public export surface.

Verification

  • index.ts only, +6 lines
  • oxlint clean, oxfmt clean
  • sdk typecheck clean
  • 156/156 sdk tests pass

🤖 Generated with Claude Code

Expose the concrete adapter factories so consumers no longer reach into deep
adapter paths:
- createHeadlessAdapter — no-op PreviewAdapter for agents/CI/SSR (no browser)
- createMemoryAdapter — in-memory PersistAdapter for tests/headless open
- createFsAdapter (+ FsAdapterOptions) — node fs PersistAdapter for local dev

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant