@molecule/api-agent-transcript-codex
v1.0.0
Published
Reads Codex CLI sessions — the Markdown export and the rollout .jsonl — into a normalized agent session
Maintainers
Readme
@molecule/api-agent-transcript-codex
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
Codex CLI transcript reader for @molecule/api-agent-transcript.
Reads both forms of a Codex CLI session into a normalized AgentSession:
the rollout log Codex keeps at ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
(per-turn model, timestamps, and every file its apply_patch wrote), and
the Markdown file its /export → "Save to file" writes (# Codex
conversation, then ## User / ## Assistant / ## Activity sections).
Quick Start
import { readFileSync } from 'node:fs'
import { readTranscript, setProvider } from '@molecule/api-agent-transcript'
import { provider } from '@molecule/api-agent-transcript-codex'
setProvider(provider)
const session = readTranscript({
text: readFileSync('codex-session.md', 'utf8'),
fileName: 'codex-session.md',
})Type
provider
Installation
npm install @molecule/api-agent-transcript-codex @molecule/api-agent-transcriptAPI
Functions
findPatches(input)
Every patch in a tool call's input, whether the input is the raw patch, a JSON arguments object, or source code that passes the patch as a string.
function findPatches(input: string): string[]input— The tool call's input or arguments string.
Returns: The patch texts, in order.
looksLikeMarkdownExport(text)
Whether a text is a Codex Markdown export.
function looksLikeMarkdownExport(text: string): booleantext— The file's text.
Returns: True when it opens with the export's title and has a role section.
looksLikeRollout(text)
Whether a text is a Codex rollout.
function looksLikeRollout(text: string): booleantext— The file's text.
Returns: True when its first JSON line is a session_meta record.
readMarkdownExport(text)
Read a Codex Markdown export.
function readMarkdownExport(text: string): AgentSessiontext— The export's text.
Returns: The normalized session.
readRollout(text)
Read a Codex rollout.
function readRollout(text: string): AgentSessiontext— The.jsonltext.
Returns: The normalized session.
writesOfPatch(patch)
The files a patch writes: an added file's whole text, an updated file's added lines.
function writesOfPatch(patch: string): AgentFileWrite[]patch— One*** Begin Patch … *** End Patchblock.
Returns: The writes.
Constants
provider
Reads Codex CLI sessions: the rollout log (.jsonl) and the Markdown export.
const provider: AgentTranscriptReaderCore Interface
Implements @molecule/api-agent-transcript interface.
Bond Wiring
Setup function to register this provider with the core interface:
import { setProvider } from '@molecule/api-agent-transcript'
import { provider } from '@molecule/api-agent-transcript-codex'
export function setupAgentTranscriptCodex(): void {
setProvider(provider)
}Injection Notes
Requirements
Peer dependencies:
@molecule/api-agent-transcript^1.0.0
Runtime Dependencies
@molecule/api-agent-transcriptThe Markdown export names no model and no times; the rollout does (
turn_context.model, per-line timestamps). Use the rollout when a per-paragraph model matters.Only the section headers
## User,## Assistantand## Activitysplit the export; the assistant's own##headings stay part of its reply.Dropped from user turns: the context Codex injects as whole-tag blocks (
<environment_context>,<user_instructions>…) and developer messages.Files: an
Add(export) /*** Add File(patch) is the whole file; anUpdatecontributes the lines it added. Patches are found wherever the call carries them — a rawapply_patchinput, JSON arguments, or the string passed totools.apply_patch(...)in code mode.Verified against Codex CLI 0.156.1's own files.
