--- name: codex-sdk-research description: Investigate the @openai/codex-sdk API by first inspecting installed .d.ts typings in node_modules, then cloning and searching the github.com/openai/codex repo for source/docs. Use for questions about Codex SDK API surface, types, response formats, threads/runs, or debugging codex-sdk behavior. --- # Codex SDK Research ## Workflow Follow the stages in order. Treat stage 1 as the source of truth for the *installed* API, and stage 2 for implementation details and docs. ### Stage 1: Inspect installed .d.ts in node_modules 1. Locate the installed package and version. - `npm ls @openai/codex-sdk` - `node -p "require.resolve('@openai/codex-sdk/package.json')"` 2. Open the package.json and record: - `version` - `types` / `typings` - `exports` entries (especially any `types` fields) 3. Find all .d.ts files under the package root and skim the entrypoint first. - `rg --files -g '*.d.ts' ` - Open the main .d.ts referenced by `types` or `exports` 4. Map the public API surface: - Identify exported classes/functions/types and their signatures. - Note any JSDoc comments or deprecation markers. - Track key types related to the question (e.g., threads, runs, response formats, schemas). 5. If something is missing or unclear, search within .d.ts files: - `rg -n "export|interface|type|class|enum" ` - `rg -n "Thread|Run|outputSchema|response_format|schema" ` ### Stage 1.5: Locate Codex session rollouts (debugging) When debugging Codex CLI behavior, locate the session JSONL rollouts stored under the Codex home directory (`~/.codex` by default or `$CODEX_HOME` if set): - Latest rollout file (by mtime): - `ls -t "${CODEX_HOME:-$HOME/.codex}"/sessions/*/*/*/rollout-*.jsonl | head -n 1` - Grep for a conversation id (if known): - `rg -n "" "${CODEX_HOME:-$HOME/.codex}"/sessions/*/*/*/rollout-*.jsonl` ### Stage 2: Clone repo and inspect source/docs 1. Clone the repo if it is not already present. - `git clone https://github.com/openai/codex ~/repos/codex` 2. If you know the installed SDK version, try to align tags/commits: - `git -C ~/repos/codex tag --list | rg ` - `git -C ~/repos/codex checkout ` 3. Search for implementation and docs related to the question: - `rg -n "codex-sdk|sdk|Thread|Run|outputSchema|response_format" ~/repos/codex` - Check `README`, `docs/`, and any JS/TS packages or SDK folders. 4. Use source to confirm behavior, defaults, and error handling that are not explicit in .d.ts. ## Output - State the installed SDK version and where the typings were found. - Summarize the relevant public API from .d.ts (signatures, types, expected inputs/outputs). - Add implementation/doc details from the repo (if needed) and call out any version mismatch. - If unsure, say what is missing and which file you would inspect next.