Skip to main content
Comparison targets: Integration path: handwritten frame mapping — custom JSON frames from server.py are translated one by one into standard events (tool-input -> operation.started, tool-output -> operation.finished, accumulated text-delta -> message, tool-approval-request -> stop turn + input.requested). HITL stop-turn state is stored through a typed ctx.session slot. The subject app is Python, while the eval side is a separate TypeScript project. App-side src/backend/*.py files are byte-for-byte unchanged. Use tier2/ for OTel waterfalls and tier3/ for feature A/B. All integration code changes (measured from both directories when generated):

File list

Added TypeScript-side scaffolding (the app itself is unchanged)

Added adapter, evals, and experiments