feat(fixtures): replace toy passthrough sample with Claude/Gemini/Codex shapes#11
Merged
Merged
Conversation
…ex shapes Three vendor-shaped fixtures replace the synthetic `sample.json`. Each exercises a structurally distinct JSON payload through the live cribl/cribl preview API via the existing `pipelines.test.ts` auto-discovery: - `claude-code.json` — nested `message.content[]` with polymorphic `tool_use` entry, inline `usage` accounting, UUID `sessionId` - `gemini.json` — flat shape with `type` discriminator + `projectHash` - `codex.json` — turn-scoped `item.tool.result` with `rollout-<uuid>` session and discrete `tool` field Each fixture keeps `datatype: 'cribl-demo'` so the existing route filter still matches; each `.expected.json` partial-matches the three Eval-stamped fields (`sourcetype`, `index`, `datatype`) plus one or two distinctive input fields per vendor. No pipeline, route, test-code, workflow, or doc changes. Downstream packs mirroring this template swap fixture content + filter/Eval as needed; the harness shape is unchanged. Shape sources (plausible, not byte-canonical): - Claude Code: https://code.claude.com/docs/en/agent-sdk/session-storage - Gemini CLI: google-gemini/gemini-cli#15292 - Codex CLI: https://developers.openai.com/codex/cli/reference https://claude.ai/code/session_01W79ngAnJY1uRwMnTAEhBKH
There was a problem hiding this comment.
Pull request overview
This PR updates the template’s passthrough pipeline fixtures to use more realistic vendor-shaped events (Claude Code, Gemini, Codex), ensuring the existing fixture auto-discovery + live /preview pipeline test harness exercises heterogeneous JSON inputs without changing pipelines or test code.
Changes:
- Removed the old toy
sample.jsonpassthrough fixture. - Added three new vendor-shaped passthrough input fixtures (
claude-code,gemini,codex). - Added matching
.expected.jsonfiles to partial-assert key stamped fields plus a couple vendor-distinctive fields per fixture.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/fixtures/passthrough/sample.json | Removes the previous minimal demo fixture. |
| tests/fixtures/passthrough/claude-code.json | Adds Claude-shaped input fixture event. |
| tests/fixtures/passthrough/claude-code.expected.json | Updates expected partial-match keys for the Claude fixture. |
| tests/fixtures/passthrough/gemini.json | Adds Gemini-shaped input fixture event. |
| tests/fixtures/passthrough/gemini.expected.json | Adds expected partial-match keys for the Gemini fixture. |
| tests/fixtures/passthrough/codex.json | Adds Codex-shaped input fixture event. |
| tests/fixtures/passthrough/codex.expected.json | Adds expected partial-match keys for the Codex fixture. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the toy
sample.jsonfixture with three vendor-shaped fixtures(Claude Code, Gemini, Codex) that exercise the live
cribl/criblpreviewAPI through the existing
pipelines.test.tsauto-discovery. No pipeline,route, test-code, workflow, or doc changes — the harness shape is
unchanged; this is the demo-data buildout the AGENTS.md / docs already
promised.
This is the second of two PRs proving the template runs end-to-end:
@AGENTS.mdpattern.Cribl Edge instance with realistic-shaped vendor input.
Fixtures
Each fixture keeps
datatype: 'cribl-demo'so the existing route filterstill matches; each
.expected.jsonpartial-matches the three Eval-stampedfields (
sourcetype,index,datatype) plus one or two distinctiveinput fields per vendor.
tests/fixtures/passthrough/claude-code.jsonmessage.content[]with polymorphictool_useentry, inlineusageaccounting, UUIDsessionIdtests/fixtures/passthrough/gemini.jsontypediscriminator +projectHash+content[].texttests/fixtures/passthrough/codex.jsonitem.tool.resultwithrollout-<uuid>session + discretetoolfieldShape sources (plausible-looking, not byte-canonical — the demo's job is to
exercise heterogeneous JSON through the live pipeline, not parse production
vendor output):
Workflow validation
This PR's CI run is the validation:
tests/**→test.yml's path filter triggerscribl-pack-test.yml→validate-pack-structure.sh+ Vitest against thelive
cribl/criblservice container. Green CI = test.yml +cribl-pack-test.yml + global-setup + pack install + pipeline execution
all proven end-to-end.
release-please.ymlandrelease.ymlare intentionally gated off on thetemplate (
is_template == falseguard +v*tag-only trigger). Theirfull execution path is validated the first time a downstream pack
(e.g.
cc-edge-claude-code-io) merges afeat:to main and merges theresulting release PR. Not actionable in this repo.
Mirror-readiness
A downstream
cc-edge-<vendor>-iopack that scaffolds from this templateswaps:
default/pipelines/route.ymlsourcetype/indexvalues indefault/pipelines/passthrough/conf.yml…and gets a working CI-validated pack with zero test-code edits. Per the
"After scaffolding" section in the README.
Test plan
pnpm run lint(Biome) — cleanpnpm run typecheck— cleanJSON.parsemake docker-up && make test— couldn't run in thissandbox (no Docker daemon). Relying on CI for the live container run.
cribl-pack-test.ymlgreen — this PR'stest.ymlrunhttps://claude.ai/code/session_01W79ngAnJY1uRwMnTAEhBKH
Generated by Claude Code