# Project export: Podo

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: OpenAI Build Week
- Tagline: Evidence-backed incident response from runtime signal to an operator-approved, tested pull request.
- Devpost: https://devpost.com/software/podo
- GitHub: https://github.com/reseaxch/podo
- Video: https://www.youtube.com/embed/11Oi6YFuDmM?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: 6 GitHub contributor(s) — lubluniky (106 commits), mzoom1 (34 commits), b0d9a (12 commits), 4ubak (6 commits), aleksandrlugchenko (5 commits), Popoi45 (4 commits)

## Devpost submission (written by the team)

No Devpost description available.

## README (from the GitHub repository)

# Podo

**Podo** is short for **Podoroznyk** (Ukrainian: **подорожник**, plantain). In
folklore, its leaf is placed on a small wound to help it heal. Podo follows the
same metaphor for software: it finds an engineering incident, traces the wound
back to its cause, and prepares a safe, tested fix.

Podo connects infrastructure signals, runtime evidence, deployments, commits,
and code into a living system graph, then uses Codex to produce remediation
through an approval-gated workflow.

> **Status:** canonical runtime-incident POC complete. `bun run poc` verifies the pinned live
> Codex App Server and then executes the complete deterministic vertical slice
> through the real graph, replay, core, typed client, Codex remediation producer,
> isolated git worktree, red-to-green regression gate, and reproducible
> pull-request preview. The GitHub delivery slice is implemented as an explicit,
> disabled-by-default production composition: Core seals the exact tested Git
> tree, requires a separate delivery approval, publishes only a derived branch,
> and creates or reconciles the exactly matching GitHub pull request. The live
> GitHub path is covered with REST fakes and an isolated bare remote rather than
> a real repository write. UC-13 is also implemented as a backend vertical:
> signed GitHub Actions failure → bound run/job/step evidence → read-only
> investigation → approved exact-run retry or red-green tested remediation →
> exact CI-success verification → one ordered audit trail. Its integration proof
> uses only provider fakes. Durable Core state/reconciliation and authenticated
> actor identity remain milestones before broader production use.

## MVP outcome

The initial vertical slice is:

```text
incident → evidence → root cause → tested fix → pull request
```

The canonical product documents are:

- [Integration guide](docs/INTEGRATION_GUIDE.md) — connect Podo to your own
  repository, telemetry, Codex, and GitHub
- [MVP plan](docs/MVP_PLAN.md)
- [Use cases](docs/USE_CASES.md)
- [Workstream ownership](docs/WORKSTREAMS.md)
- [Submission and judge guide](docs/SUBMISSION.md)

## POC completion path

Podo is built as one real vertical flow, not as disconnected feature demos:

```text
canonical graph + telemetry replay
  → detected incident with evidence
  → structured Codex diagnosis with validated evidence references
  → explicit remediation approval
  → isolated patch and regression test
  → passing validation
  → reproducible pull-request preview
  → separate delivery approval
  → verified derived Git branch and exact GitHub pull request
```

The deterministic POC keeps state in memory and uses a fake pull-request
delivery port so `bun run poc` remains offline and reproducible. The same sealed
artifact now has an opt-in real GitHub delivery composition for operator runs.
Post-hackathon hardening still needs durable operations and reconciliation,
authenticated actor identity, and complete audit persistence. External
submission artifacts such as the final video and `/feedback` session ID remain
owner-provided. Failed validation must never reach either path.

## System shape

```mermaid
flowchart LR
    CLI["CLI"] --> Core["Podo core"]
    TUI["OpenTUI client"] --> Core
    Dashboard["Dashboard"] --> Core
    Core --> Graph["System knowledge graph"]
    Core --> Plugins["Graphify, OTEL, GitHub plugins"]
    Core --> Codex["Codex app-server"]
    Codex --> Sandbox["Isolated checkout and tests"]
    Sandbox --> Delivery["Pull request or issue"]
```

`apps/core` owns incident state, evidence, approvals, remediation, and audit history. CLI, TUI, and dashboard are clients of the same core contract; they must not duplicate workflow decisions or connect directly to storage or Codex.

## Repository map

| Path | Responsibility |
| --- | --- |
| `apps/core` | Podo core service, orchestration, incident engine, approvals, and audit trail |
| `apps/cli` | Scriptable, non-interactive commands and machine-readable output |
| `apps/tui` | Interactive terminal client built with OpenTUI |
| `apps/dashboard` | Primary browser dashboard for the demo flow |
| `packages/codex-protocol` | Generated TypeScript and JSON Schema for the pinned Codex app-server version |
| `packages/codex-app-server-client` | JSON-RPC lifecycle, event streaming, approvals, and process communication |
| `packages/contracts` | Shared Podo API, event, and persistence-boundary schemas |
| `packages/client` | Typed Podo client used by CLI, TUI, and dashboard |
| `packages/domain` | Incident, evidence, autonomy, and safety rules |
| `packages/plugin-sdk` | Plugin manifests and capability contracts |
| `plugins` | First-party Graphify, OpenTelemetry replay, and GitHub adapters |
| `vendor/codex` | Reserved for a pinned upstream [OpenAI Codex](https://github.com/openai/codex) checkout if source vendoring is selected |
| `scenarios` | Versioned incident fixtures shared by demo, evals, and benchmarks |
| `evals` | Product-quality evaluation suites and deterministic scorers |
| `benchmarks` | Latency, stability, resource, token, and cost measurements |
| `tests` | Unit, contract, integration, and end-to-end correctness tests |
| `demo` | Judge-facing orchestration for the canonical scenario |
| `scripts` | Repository-supported setup, replay, reset, and validation commands |

## Codex app-server

Codex is a required execution runtime, not an optional plugin.

The intended boundary is:

```text
pinned Codex runtime
  → generated protocol
  → codex app-server client
  → Podo core
  → CLI / TUI / dashboard
```

Core owns one supervised `codex app-server --stdio` connection. The transport initializes it once, frames JSONL, correlates requests, surfaces notifications and server-initiated requests, and fails pending work on timeout, abort, EOF, or process exit. The runtime adapter starts or resumes one Codex thread per investigation and maps Codex messages into stable Podo runtime events. Raw Codex protocol and thread IDs do not cross the core boundary.

The pinned TypeScript SDK was evaluated but is not used by this path. At the pinned revision it launches `codex exec --experimental-json` per turn and exposes batch item/turn events, but not the long-lived App Server approval, user-input, steer, or server-request contract. It may later fit isolated batch/eval adapters behind the same runtime port; Direct App Server remains the default interactive runtime and the only state authority is core.

## Investigation API foundation

The current core implementation is intentionally in-memory. It owns investigation lifecycle, approval decisions, the Codex-to-investigation association, and a bounded ordered event log (256 events by default).

| Method | Endpoint | Purpose |
| --- | --- | --- |
| `GET` | `/api/incidents/:id/evidence` | Read incident evidence paired with its normalized telemetry event for rich clients |
| `POST` | `/api/incidents/:id/investigation` | Start a core-owned, evidence-backed, read-only investigation for a detected incident |
| `POST` | `/api/investigations` | Start with required `prompt`, absolute `cwd`, and `sandbox` (`read-only` or `workspace-write`) |
| `GET` | `/api/investigations/:id` | Read authoritative state and the current pending approval |
| `DELETE` | `/api/investigations/:id` | Deny a pending approval, interrupt the active turn, and cancel |
| `POST` | `/api/investigations/:id/approvals/:approvalId` | Submit explicit `approve` or `deny`; user-input approvals may include `answers` |
| `GET` | `/api/investigations/:id/events` | Stream ordered SSE events; reconnect with `Last-Event-ID` or `?after=` |

The lifecycle exposed to clients is `starting → running ↔ waiting_for_approval → completed | cancelled | failed`. Approval requests never receive a default approval. A Codex EOF or crash fails every active investigation explicitly and degrades readiness. A later investigation performs one controlled lazy connection replacement; old thread/turn mutations are never retried, and readiness rec

[README truncated for size]

## Detected evidence (automated analysis)

Indexed codebase: 992 recognized source files, 3139 KB.
- CSS (language) — detected in the code
- Next.js (technology) — detected in the code
- React (technology) — detected in the code
- TypeScript (language) — detected in the code
- AI coding agent: Codex — evidence: config files committed to the repository

## Codebase structure (from repository index)

### Files (120 of 1333)

```
.env.example
.github/workflows/ci.yml
.gitignore
.gitmodules
AGENTS.md
apps/AGENTS.md
apps/cli/AGENTS.md
apps/cli/package.json
apps/cli/README.md
apps/cli/src/index.test.ts
apps/cli/src/index.ts
apps/cli/tsconfig.json
apps/core/AGENTS.md
apps/core/package.json
apps/core/README.md
apps/core/src/agent-chat.test.ts
apps/core/src/agent-chat.ts
apps/core/src/app.test.ts
apps/core/src/app.ts
apps/core/src/build-incidents.integration.test.ts
apps/core/src/client.integration.test.ts
apps/core/src/incident-investigations.test.ts
apps/core/src/index.ts
apps/core/src/investigations.test.ts
apps/core/src/investigations.ts
apps/core/src/library.ts
apps/core/src/modules/approvals/README.md
apps/core/src/modules/audit/incident-audit.test.ts
apps/core/src/modules/audit/incident-audit.ts
apps/core/src/modules/audit/README.md
apps/core/src/modules/graph/in-memory-graph.test.ts
apps/core/src/modules/graph/in-memory-graph.ts
apps/core/src/modules/graph/incident-causal-path.ts
apps/core/src/modules/graph/incident-overlay.test.ts
apps/core/src/modules/graph/incident-overlay.ts
apps/core/src/modules/graph/README.md
apps/core/src/modules/incidents/build-incident-actions.test.ts
apps/core/src/modules/incidents/build-incident-actions.ts
apps/core/src/modules/incidents/build-incident-registry.test.ts
apps/core/src/modules/incidents/build-incident-registry.ts
apps/core/src/modules/incidents/incident-monitor.test.ts
apps/core/src/modules/incidents/incident-monitor.ts
apps/core/src/modules/incidents/incident-telemetry-comparison.test.ts
apps/core/src/modules/incidents/incident-telemetry-comparison.ts
apps/core/src/modules/incidents/README.md
apps/core/src/modules/investigation/incident-investigation.ts
apps/core/src/modules/investigation/README.md
apps/core/src/modules/plugins/README.md
apps/core/src/modules/remediation/codex-remediation-patch-producer.test.ts
apps/core/src/modules/remediation/codex-remediation-patch-producer.ts
apps/core/src/modules/remediation/incident-delivery.integration.test.ts
apps/core/src/modules/remediation/incident-delivery.ts
apps/core/src/modules/remediation/incident-issue.ts
apps/core/src/modules/remediation/incident-remediation.integration.test.ts
apps/core/src/modules/remediation/incident-remediation.ts
apps/core/src/modules/remediation/local-worktree-remediation-executor.test.ts
apps/core/src/modules/remediation/local-worktree-remediation-executor.ts
apps/core/src/modules/remediation/README.md
apps/core/src/modules/telemetry/index.test.ts
apps/core/src/modules/telemetry/index.ts
apps/core/src/modules/telemetry/README.md
apps/core/src/runtime/codex/README.md
apps/core/src/runtime/production-agent-chat.test.ts
apps/core/src/runtime/production-agent-chat.ts
apps/core/src/runtime/production-codex-runtime.test.ts
apps/core/src/runtime/production-codex-runtime.ts
apps/core/src/runtime/production-core.test.ts
apps/core/src/runtime/production-core.ts
apps/core/src/runtime/production-github-actions.test.ts
apps/core/src/runtime/production-github-actions.ts
apps/core/src/runtime/production-github-delivery.test.ts
apps/core/src/runtime/production-github-delivery.ts
apps/core/src/runtime/production-github-issue.test.ts
apps/core/src/runtime/production-github-issue.ts
apps/core/src/runtime/production-incident-graph.test.ts
apps/core/src/runtime/production-incident-graph.ts
apps/core/src/runtime/production-remediation.test.ts
apps/core/src/runtime/production-remediation.ts
apps/core/src/settings.ts
apps/core/tsconfig.json
apps/dashboard/.prettierignore
apps/dashboard/.prettierrc.json
apps/dashboard/AGENTS.md
apps/dashboard/app/api/podo/agent/agent-routes.vitest.ts
apps/dashboard/app/api/podo/agent/chats/[id]/events/route.ts
apps/dashboard/app/api/podo/agent/chats/[id]/messages/route.ts
apps/dashboard/app/api/podo/agent/chats/[id]/route.ts
apps/dashboard/app/api/podo/agent/chats/[id]/turn/route.ts
apps/dashboard/app/api/podo/agent/chats/route.ts
apps/dashboard/app/api/podo/agent/readiness/route.ts
apps/dashboard/app/api/podo/build-incidents/[id]/route.ts
apps/dashboard/app/api/podo/build-incidents/[id]/route.vitest.ts
apps/dashboard/app/api/podo/incidents/[id]/route.ts
apps/dashboard/app/api/podo/incidents/[id]/route.vitest.ts
apps/dashboard/app/api/podo/safety/route.ts
apps/dashboard/app/api/podo/safety/route.vitest.ts
apps/dashboard/app/api/podo/settings/route.ts
apps/dashboard/app/audit/error.tsx
apps/dashboard/app/audit/page.tsx
apps/dashboard/app/build-incidents/[id]/loading.tsx
apps/dashboard/app/build-incidents/[id]/not-found.tsx
apps/dashboard/app/build-incidents/[id]/page.tsx
apps/dashboard/app/build-incidents/error.tsx
apps/dashboard/app/build-incidents/loading.tsx
apps/dashboard/app/build-incidents/page.tsx
apps/dashboard/app/components/agent/agent-panel.tsx
apps/dashboard/app/components/agent/agent-panel.vitest.tsx
apps/dashboard/app/components/audit/audit-log.module.css
apps/dashboard/app/components/audit/audit-log.tsx
apps/dashboard/app/components/audit/audit-log.vitest.tsx
apps/dashboard/app/components/auth/auth-screen.module.css
apps/dashboard/app/components/auth/auth-screen.tsx
apps/dashboard/app/components/auth/auth-screen.vitest.tsx
apps/dashboard/app/components/build-incidents/build-incident-workspace.tsx
apps/dashboard/app/components/build-incidents/build-incidents-overview.tsx
apps/dashboard/app/components/build-incidents/build-incidents.vitest.tsx
apps/dashboard/app/components/demo-incident-route.tsx
apps/dashboard/app/components/demo-incident-workspace.tsx
apps/dashboard/app/components/evidence-sources/evidence-sources.module.css
apps/dashboard/app/components/evidence-sources/evidence-sources.tsx
[1213 more files omitted for size]
```

### Dependencies

- apps/cli/package.json: @podo/client@workspace:*
- apps/core/package.json: @podo/codex-app-server-client@workspace:*, @podo/contracts@workspace:*, @podo/domain@workspace:*, @podo/plugin-github@workspace:*, @podo/plugin-graphify@workspace:*
- apps/dashboard/package.json: @playwright/test@^1.61.1, @podo/client@workspace:*, @podo/contracts@workspace:*, @testing-library/jest-dom@^6.9.1, @testing-library/react@^16.3.2, @testing-library/user-event@^14.6.1, @vitejs/plugin-react@^6.0.3, eslint@^9.39.0, eslint-config-next@^16.2.10, jsdom@^29.1.1, next@^16.2.10, prettier@^3.9.5, react@^19.2.7, react-dom@^19.2.7, vitest@^4.1.10
- apps/tui/package.json: @opentui/core@^0.4.3, @opentui/react@^0.4.3, @podo/client@workspace:*, @podo/contracts@workspace:*, react@^19.2.7
- benchmarks/package.json: @podo/client@workspace:*, @podo/codex-app-server-client@workspace:*, @podo/contracts@workspace:*, @podo/core@workspace:*, @podo/plugin-graphify@workspace:*, @podo/plugin-otel-replay@workspace:*
- demo/package.json: @podo/client@workspace:*, @podo/codex-app-server-client@workspace:*, @podo/contracts@workspace:*, @podo/core@workspace:*, @podo/plugin-otel-replay@workspace:*
- evals/package.json: @podo/client@workspace:*, @podo/contracts@workspace:*, @podo/core@workspace:*, @podo/plugin-github@workspace:*
- package.json: @types/bun@^1.3.14, @types/node@^26.1.1, @types/react@^19.2.17, @types/react-dom@^19.2.3, typescript@^5.9.3
- packages/client/package.json: @podo/contracts@workspace:*
- packages/codex-app-server-client/package.json: @podo/codex-protocol@workspace:*
- plugins/github/package.json: @podo/plugin-sdk@workspace:*
- plugins/graphify/package.json: @podo/contracts@workspace:*, @podo/plugin-sdk@workspace:*
- plugins/otel-replay/package.json: @podo/contracts@workspace:*, @podo/domain@workspace:*, @podo/plugin-sdk@workspace:*

### Recent commits (newest first)

- Merge pull request #39 from reseaxch/codex/fix-judge-demo-runner
- fix(demo): make judge flow reliable and mutation-capable
- Merge pull request #38 from reseaxch/codex/add-apache-license
- docs: license Podo under Apache-2.0
- Merge pull request #35 from reseaxch/codex/hackathon-completion
- Merge main into hackathon completion
- Merge pull request #36 from reseaxch/agent/add-integration-guide
- Merge pull request #34 from reseaxch/codex/ui-production-readiness-v2
- Merge integration guide into hackathon completion
- Merge dashboard production readiness into hackathon completion
- docs: correct submission capability claims
- fix(evals): fingerprint reference scorer implementation
- feat(core): verify post-fix telemetry replay
- docs: add project integration guide
- docs: add hackathon judge and submission guide
- feat(benchmarks): measure canonical remediation flow
- feat(core): audit Codex tool lifecycle
- fix(dashboard): bind trusted mutations to configured origin
- fix(dashboard): accept same-origin operator actions
- feat(dashboard): finalize UI and trusted Core integration

## Key source files (fetched from GitHub, selected and truncated for size)

### AGENTS.md

```markdown
# AGENTS.md

This file applies to the entire repository. A deeper `AGENTS.md` may add narrower instructions for its subtree.

## Product contract

Podo must demonstrate one evidence-backed flow:

```text
incident → evidence → root cause → tested fix → pull request
```

Read `README.md`, `docs/MVP_PLAN.md`, and the relevant section of `docs/USE_CASES.md` before non-trivial work.

## Architecture invariants

- `apps/core` owns incident state, evidence selection, approvals, remediation orchestration, and audit history.
- CLI, TUI, and dashboard are clients. They must not query persistence directly or invoke Codex directly.
- Codex app-server is a required runtime, not a plugin. Integration belongs in `packages/codex-protocol`, `packages/codex-app-server-client`, and the Codex runtime boundary inside core.
- Generated Codex protocol artifacts must come from the pinned Codex version and must not be hand-edited.
- `plugins` contains replaceable external adapters such as Graphify, OpenTelemetry replay, and GitHub.
- `packages/contracts` is the producer/consumer boundary. Contract changes require validation of every directly affected client and server path.
- `scenarios` is the canonical incident-fixture source for demo, evals, and benchmarks. Do not duplicate scenario data across those areas.
- `tests`, `evals`, and `benchmarks` remain separate: correctness, decision quality, and performance are different signals.

## Collaboration rules

- Keep changes scoped to the assigned workstream and preserve unrelated work.
- Prefer a vertical slice through existing boundaries over parallel placeholder implementations.
- Do not add a second source of truth for incident, evidence, approval, or agent-run state.
- Do not introduce generic shared helpers or framework layers before a real repeated need exists.
- New production dependencies require explicit approval.
- Use pull requests for collaboration. Do not mutate production or merge remediation changes directly into the default branch.
- Keep investigation artifacts under `.scratch/`; do not place temporary files in the repository root.

## Validation

- Define the primary observable signal for each non-trivial change.
- Run the smallest meaningful tests first, then contract, integration, eval, or benchmark suites appropriate to the changed boundary.
- A diagnosis is not valid without evidence references.
- A remediation is not successful unless its regression test fails before the patch and passes after it.
- Failed validation must be reported clearly and must never be converted into a pull request by the product flow.

## Current repository state

The repository is a Bun workspace with runnable foundations for core, CLI, OpenTUI, dashboard, plugins, evals, and benchmarks. Use only commands documented in `README.md` or the nearest `AGENTS.md`.

Before handing off a module, run the narrow checks listed in its nearest `AGENTS.md`. Before integrating a cross-workstream change, run:

```sh
bun run codex:smoke
bun r
[truncated — 13 more characters]
```

### design-qa.md

```markdown
# Design QA — Agent-analysis spotlight

- Source visual truth: `/var/folders/fj/w_7bmw3s06703lzn1g02k4r80000gn/T/codex-clipboard-d400167b-5f85-4504-b44d-ee1edcb20813.png`
- Focused source: `/var/folders/fj/w_7bmw3s06703lzn1g02k4r80000gn/T/codex-clipboard-6acf1657-91a9-46e2-8e36-588bd52856c1.png`
- Implementation reload screenshot: `/Users/eugenetoporkov/Documents/podo/podo/.scratch/auth-design-qa/agent-analysis-reload.png`
- Implementation interaction screenshot: `/Users/eugenetoporkov/Documents/podo/podo/.scratch/auth-design-qa/agent-analysis-deploy.png`
- Viewport: `1440 × 1024`
- States: `/login` immediately after reload; `/login` after inspecting the deployment node
- Full-view comparison: `/Users/eugenetoporkov/Documents/podo/podo/.scratch/auth-design-qa/agent-analysis-full-comparison.png`
- Focused comparison: `/Users/eugenetoporkov/Documents/podo/podo/.scratch/auth-design-qa/agent-analysis-focused-comparison.png`

## Findings

- P0: none.
- P1: none.
- P2: none.
- P3: the agent-result card is intentionally more compact than the zoomed feedback capture so it remains fully contained by the inspection aperture.

## Required fidelity surfaces

- Fonts and typography: the auth hierarchy is unchanged. Revealed graph labels now use concise agent-result language such as `Trace collected`, `Code suspect`, `Latency evidence`, `Change detected`, `Impact mapped`, and `Queue impact`.
- Spacing and layout rhythm: system nodes retain the aligned perimeter topology. Connector lines now sit behind cards instead of crossing through their content.
- Colors and visual tokens: the white inspection interior and restrained teal ring are retained; agent outcomes reuse the existing semantic status colors.
- Image and asset fidelity: all icons come from Podo's existing pictogram library; no placeholder or improvised image assets were added.
- Copy and content: the revealed layer communicates work completed by the agent rather than repeating the underlying system-node label. The cursor cue is renamed `Agent analysis` and identifies the source service.

## Comparison history

1. P1 — A spotlight was rendered on the right immediately after page load, implying a cursor position that did not exist. Fixed by starting in the `idle` state with no coordinates painted until the first real pointer movement. Evidence: full-view comparison.
2. P2 — The reveal repeated the highlighted system block and did not communicate agent work. Fixed by mapping each source node to an evidence-oriented agent outcome. Evidence: focused comparison.
3. P2 — Revealed connector lines crossed through the graph-card surface. Fixed by placing paths at z-index 0 and node cards at z-index 2 in both faint and revealed maps. Evidence: focused comparison.

## Interaction and implementation checks

- Reload with no default spotlight or inspection cue: passed.
- First real pointer movement activates the spotlight: passed.
- Deployment inspection reveals `Change detected · v2.8.1 · 14m before spike`: passed
[truncated — 463 more characters]
```

### package.json

```
{
  "name": "podo",
  "version": "0.0.0",
  "private": true,
  "packageManager": "bun@1.3.10",
  "workspaces": [
    "apps/*",
    "packages/*",
    "plugins/*",
    "demo",
    "evals",
    "benchmarks"
  ],
  "scripts": {
    "dev:core": "bun run --cwd apps/core dev",
    "dev:cli": "bun run --cwd apps/cli dev",
    "dev:tui": "bun run --cwd apps/tui dev",
    "dev:dashboard": "bun run --cwd apps/dashboard dev",
    "typecheck": "bun run --workspaces --if-present typecheck",
    "test": "bun test ./apps ./packages ./plugins ./evals ./benchmarks ./tests",
    "build": "bun run --workspaces --if-present build",
    "check": "bun run typecheck && bun run test && bun run build",
    "codex:generate": "bun run --cwd packages/codex-protocol generate",
    "codex:smoke": "bun run --cwd packages/codex-app-server-client smoke",
    "codex:upstream:status": "bun scripts/codex-upstream.ts status",
    "codex:upstream:update": "bun scripts/codex-upstream.ts update",
    "demo": "bun demo/run.ts",
    "demo:verify": "bun demo/run.ts --verify",
    "lab": "bun demo/live-lab.ts",
    "lab:load": "bun demo/live-load.ts",
    "poc": "bun run codex:smoke && bun test --timeout 60000 tests/integration/canonical-poc.test.ts && bun run telemetry:compare",
    "telemetry:compare": "bun scripts/cache-growth-comparison.ts",
    "eval": "bun run --cwd evals eval",
    "bench": "bun run --cwd benchmarks bench"
  },
  "devDependencies": {
    "@types/bun": "^1.3.14",
    "@types/node": "^26.1.1",
    "@types/react": "^19.2.17",
    "@types/react-dom": "^19.2.3",
    "typescript": "^5.9.3"
  }
}

```

### demo/package.json

```
{
  "name": "@podo/demo",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "dependencies": {
    "@podo/client": "workspace:*",
    "@podo/codex-app-server-client": "workspace:*",
    "@podo/contracts": "workspace:*",
    "@podo/core": "workspace:*",
    "@podo/plugin-otel-replay": "workspace:*"
  },
  "scripts": {
    "core": "bun core.ts",
    "start": "bun run.ts",
    "typecheck": "tsc -p tsconfig.json --noEmit"
  }
}

```

### evals/package.json

```
{
  "name": "@podo/evals",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "eval": "bun src/index.ts",
    "eval:build-incident": "bun src/build-incident/index.ts",
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/index.ts --outdir dist --target bun"
  },
  "devDependencies": {
    "@podo/client": "workspace:*",
    "@podo/contracts": "workspace:*",
    "@podo/core": "workspace:*",
    "@podo/plugin-github": "workspace:*"
  }
}

```

### benchmarks/package.json

```
{
  "name": "@podo/benchmarks",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "dependencies": {
    "@podo/client": "workspace:*",
    "@podo/codex-app-server-client": "workspace:*",
    "@podo/contracts": "workspace:*",
    "@podo/core": "workspace:*",
    "@podo/plugin-graphify": "workspace:*",
    "@podo/plugin-otel-replay": "workspace:*"
  },
  "scripts": {
    "bench": "bun src/cli.ts",
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/cli.ts --outdir dist --target bun"
  }
}

```

### packages/domain/package.json

```
{
  "name": "@podo/domain",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": "./src/index.ts",
  "scripts": {
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/index.ts --outdir dist --target bun"
  }
}

```

### packages/contracts/package.json

```
{
  "name": "@podo/contracts",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": "./src/index.ts",
  "scripts": {
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/index.ts --outdir dist --target bun"
  }
}

```

### packages/plugin-sdk/package.json

```
{
  "name": "@podo/plugin-sdk",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": "./src/index.ts",
  "scripts": {
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/index.ts --outdir dist --target bun"
  }
}

```

### packages/client/package.json

```
{
  "name": "@podo/client",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "exports": "./src/index.ts",
  "dependencies": {
    "@podo/contracts": "workspace:*"
  },
  "scripts": {
    "typecheck": "tsc -p tsconfig.json",
    "build": "bun build src/index.ts --outdir dist --target browser"
  }
}

```

[959 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]