Commit graph

11 commits

Author SHA1 Message Date
Kit Langton
e101318f92 refactor(http-recorder): hide cassette format behind Cassette seam
The Cassette interface used to expose its JSON wrapper type (Cassette =
{ version, metadata, interactions }) through read/write/scan, plus a
path() method. Consumers had to know the file format to use the service.

New surface — domain types only:

  interface Interface {
    read:   (name) => Effect<readonly Interaction[], CassetteNotFoundError>
    append: (name, interaction, metadata?) => Effect<{ findings }>
    exists: (name) => Effect<boolean>
    list:   () => Effect<readonly string[]>
  }

What's gone from the public surface: path(), write(), scan(), the
Cassette wrapper type, Entry.path, the format helpers (cassetteFor,
formatCassette, parseCassette, cassettePath). All file-private to the
new fileSystem adapter.

Two adapters:
- Cassette.fileSystem({ directory? }) — file-backed (today's behavior,
  was Cassette.layer)
- Cassette.memory(initial?) — in-memory, used by the package's own
  tests to exercise replay without disk IO. Proves the seam works;
  not user-facing.

Drive-bys from the simplify pass:
- Errors converted to Data.TaggedError (CassetteNotFoundError,
  UnsafeCassetteError) for Effect-native equality + integration.
- storage.ts (5 LOC stub) merged into cassette.ts. hasCassetteSync
  is now exported from cassette.ts directly.
- Entry { name } collapsed to plain string.
- recorder.ts re-export indirection cleaned up; index.ts pulls
  CassetteNotFoundError from cassette.ts directly.
- httpInteractions / webSocketInteractions now take ReadonlyArray<Interaction>
  rather than Cassette (matches the new read shape).

External consumer in packages/llm/test/recorded-test.ts updated
(Cassette.layer → Cassette.fileSystem).
2026-05-10 12:21:48 -04:00
Kit Langton
4fb417d3b5
feat(http-recorder): default mode to "auto" (#26719) 2026-05-10 16:05:11 +00:00
Kit Langton
d28b5ad2f4
refactor(http-recorder): Redactor + Recorder seams, README (#26636) 2026-05-10 10:49:22 -04:00
Frank
ce3235e115 sync 2026-05-10 02:17:32 -04:00
opencode
2f11c9f7ed sync release versions for v1.14.46 2026-05-10 02:34:36 +00:00
opencode
7a79f3a5ea sync release versions for v1.14.45 2026-05-10 00:07:24 +00:00
opencode
19abadaf27 sync release versions for v1.14.44 2026-05-09 19:33:26 +00:00
opencode
e22144806f sync release versions for v1.14.43 2026-05-09 18:06:16 +00:00
opencode
780bbb0f3b sync release versions for v1.14.42 2026-05-09 16:54:43 +00:00
opencode-agent[bot]
ba8c920639 chore: generate 2026-05-08 20:57:36 +00:00
Kit Langton
5bb7b23440
Add native LLM core foundation (#24712) 2026-05-08 16:56:20 -04:00