diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..476a21b1c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +datasets/isb1/exports/preview/long_context_1m/*.json filter=lfs diff=lfs merge=lfs -text +datasets/isb1/exports/**/*.json filter=lfs diff=lfs merge=lfs -text diff --git a/.github/configs/multiturn-agentic-trace-isb1.yaml b/.github/configs/multiturn-agentic-trace-isb1.yaml new file mode 100644 index 000000000..c0cfa7a87 --- /dev/null +++ b/.github/configs/multiturn-agentic-trace-isb1.yaml @@ -0,0 +1,73 @@ +# ISB1 sweep cells for Cam's kv-cache-tester replay flow. +# Schema mirrors .github/configs/multiturn-agentic-trace.yaml. +# Merge these top-level keys into that file (or extend the sweep workflow +# to glob .github/configs/multiturn-agentic-trace*.yaml) to include ISB1 sweeps. +# 8k code cells map to datasets/isb1/converted/core/code_8k1k/. +# 32k chat cells map to datasets/isb1/converted/extension_32k/chat_32k1k*/. +# 131k code/chat cells map to datasets/isb1/converted/extension_131k/*_131k1k*/. +# 500k preview cells map to datasets/isb1/converted/preview/long_context_500k/. +# 1m preview cells map to datasets/isb1/converted/preview/long_context_1m/. +# Expected TRACE_DIR is either datasets/isb1/converted/ or one of those subdirs, +# or an HF alias like hf_wchen22--isb1-cc-traces (resolved by the replay +# harness's TRACE_DIR=hf_-- hydration path). +# +# offload values: +# on — KV offload enabled (VLLM_USE_SIMPLE_KV_OFFLOAD=1) +# off — KV offload disabled (baseline) +# noprefix — offload off AND --no-enable-prefix-caching (clean-cache floor). +# Cam's h100 lane already wires the flag in +# multiturn_fp8_h100_lmcache_aiperf.sh:123-126; these cells just +# surface the third mode so the sweep generator emits it. + +h200-fp8-qwen3-isb1-code-8k: + tp2: {users: [2, 4, 8, 16, 32, 64, 128], offload: ["on", "off", "noprefix"]} + tp4: {users: [2, 4, 8, 16, 32, 64, 128], offload: ["on", "off", "noprefix"]} + +h200-fp8-qwen3-isb1-chat-32k: + tp2: {users: [1, 2, 4, 8, 16, 32], offload: ["on", "off", "noprefix"]} + tp4: {users: [1, 2, 4, 8, 16, 32, 64], offload: ["on", "off", "noprefix"]} + +h200-fp8-qwen3-isb1-code-131k: + tp4: {users: [1, 2, 4, 8], offload: ["on", "off", "noprefix"]} + tp8: {users: [1, 2, 4, 8, 16], offload: ["on", "off", "noprefix"]} + +b200-fp4-dsr1-isb1-code-8k: + tp4: {ep: 4, users: [4, 8, 16, 32, 64, 128, 256], offload: ["on", "off"]} + tp8: {ep: 8, users: [8, 16, 32, 64, 128, 256, 512], offload: ["on", "off"]} + +b200-fp4-dsr1-isb1-chat-32k: + tp4: {ep: 4, users: [1, 2, 4, 8, 16, 32, 64], offload: ["on", "off"]} + tp8: {ep: 8, users: [1, 2, 4, 8, 16, 32, 64, 128], offload: ["on", "off"]} + +b200-fp4-dsr1-isb1-code-131k: + tp8: {ep: 8, users: [1, 2, 4, 8, 16], offload: ["on", "off"]} + +# DSR1 131k reasoning cell — trace_replay backed by the HF publish +# (wchen22/isb1-cc-traces). Exercises Cam's Apr 20 --no-max-tokens flag +# against a reasoning corpus without requiring local dataset checkout. +# TRACE_DIR alias: hf_wchen22--isb1-cc-traces +# (subset consumed by this cell: extension_131k/code_131k1k* and +# extension_131k/chat_131k1k*) +b200-fp4-dsr1-isb1-code-131k-hf: + tp8: {ep: 8, users: [1, 2, 4, 8, 16], offload: ["on", "off"]} + +b200-fp4-qwen3-isb1-chat-500k-preview: + tp4: {users: [1, 2, 4], offload: ["on", "off"]} + tp8: {users: [1, 2, 4, 8], offload: ["on", "off"]} + +b200-fp4-qwen3-isb1-chat-1m-preview: + tp8: {users: [1, 2], offload: ["on", "off"]} + +mi355x-fp8-qwen3-isb1-code-8k: + tp2: {users: [2, 4, 8, 16, 32, 64], offload: ["on", "off"]} + tp4: {users: [2, 4, 8, 16, 32, 64, 128], offload: ["on", "off"]} + +mi355x-fp8-qwen3-isb1-chat-32k: + tp4: {users: [1, 2, 4, 8, 16, 32], offload: ["on", "off"]} + +h100-fp8-qwen3-isb1-code-8k-lmcache: + tp2: {users: [1, 2, 4, 8, 16, 32], offload: ["on", "off", "noprefix"]} + tp4: {users: [1, 2, 4, 8, 16, 32, 64], offload: ["on", "off", "noprefix"]} + +h200-fp8-qwen3-isb1-debug: + tp2: {users: [2], offload: ["off"]} diff --git a/datasets/isb1/.gitattributes b/datasets/isb1/.gitattributes new file mode 100644 index 000000000..006356f24 --- /dev/null +++ b/datasets/isb1/.gitattributes @@ -0,0 +1,2 @@ +exports/**/*.json filter=lfs diff=lfs merge=lfs -text linguist-generated=true +converted/**/*.json filter=lfs diff=lfs merge=lfs -text linguist-generated=true diff --git a/datasets/isb1/HF_PUBLISH.md b/datasets/isb1/HF_PUBLISH.md new file mode 100644 index 000000000..28f5ae164 --- /dev/null +++ b/datasets/isb1/HF_PUBLISH.md @@ -0,0 +1,196 @@ +# HF publication recipe for ISB1 converted traces + +Mirror `datasets/isb1/converted/` to Hugging Face so Cam's +`TRACE_DIR=hf_--` path works immediately with kv-cache-tester. +Preferred target: `semianalysisai/isb1-cc-traces`. +Fallback if org write access is unavailable: `ocwc22/isb1-cc-traces`. + +## 1. What gets published + +This publish package is the checked-in trio below: + +- `datasets/isb1/converted/` — 179 validated kv-cache-tester trace JSON files +- `datasets/isb1/converted/manifest.json` — corpus metadata (`1226` total requests) +- `datasets/isb1/hf_dataset_card.md` — staged to HF as `README.md` + +The consumer contract is unchanged: Cam's replay scripts interpret +`hf_--` as a Hugging Face dataset source, hydrate it locally, and +then invoke the existing replay path. + +## 2. Pre-flight validation + +Run the stdlib validator before every publish attempt: + +```bash +python3 tools/validate_kvcache_tester_trace.py datasets/isb1/converted/ +``` + +Expected result: + +- `✓ 179 files valid | 0 failed` +- Exit code `0` + +If validation fails, stop and fix the source corpus before publishing. Do not +push a broken dataset mirror to HF. + +## 3. Python version + +`tools/publish_hf_dataset.py` imports `huggingface_hub >= 0.24`, which in turn +requires Python 3.10+. On macOS the system `/usr/bin/python3` is 3.9 and does +not ship `huggingface_hub`; do not use it. + +Use Python 3.13 explicitly: + +```bash +/opt/homebrew/opt/python@3.13/bin/python3.13 -m pip install --user huggingface_hub +/opt/homebrew/opt/python@3.13/bin/python3.13 tools/publish_hf_dataset.py --help +``` + +Or activate a virtualenv / pyenv shim that resolves to 3.10+ before running any +of the commands below. If you see `ModuleNotFoundError: huggingface_hub`, you +are on 3.9 — switch interpreters first. + +## 4. Token setup + +Authenticate with a token that has write access to the destination namespace: + +```bash +huggingface-cli login +``` + +If you prefer explicit token injection: + +```bash +export HF_TOKEN=hf_xxx +huggingface-cli login --token "$HF_TOKEN" +``` + +## 5. Dry-run the publish package locally + +The uploader script stages the converted corpus plus the dataset card and +prints the exact file list it would upload without making any remote changes. + +```bash +python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo semianalysisai/isb1-cc-traces \ + --private \ + --dry-run +``` + +Use the fallback namespace instead if needed: + +```bash +python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo ocwc22/isb1-cc-traces \ + --private \ + --dry-run +``` + +## 6. Publish for real + +Once the dry-run output looks correct and HF auth is configured, publish with +one of the exact commands below. + +Private-first publish: + +```bash +python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo semianalysisai/isb1-cc-traces \ + --private \ + --commit-message "Publish ISB-1 kv-cache-tester traces" +``` + +Or make the dataset public at creation time: + +```bash +python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo semianalysisai/isb1-cc-traces \ + --public \ + --commit-message "Publish ISB-1 kv-cache-tester traces" +``` + +Fallback org: + +```bash +python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo ocwc22/isb1-cc-traces \ + --public \ + --commit-message "Publish ISB-1 kv-cache-tester traces" +``` + +The script will: + +1. Stage `datasets/isb1/converted/` into a temporary upload tree +2. Copy `datasets/isb1/hf_dataset_card.md` into that tree as `README.md` +3. Create the dataset repo if it does not already exist +4. Upload the staged folder with `huggingface_hub` +5. Verify the published snapshot with `snapshot_download` into `/tmp` + +## 7. Post-publish verification + +### Repository-level verification + +Re-download the published dataset and re-run the validator against the hydrated +copy: + +```bash +huggingface-cli download semianalysisai/isb1-cc-traces \ + --repo-type dataset \ + --local-dir /tmp/isb1-cc-traces-verify +python3 tools/validate_kvcache_tester_trace.py /tmp/isb1-cc-traces-verify +``` + +### Harness-level verification + +The exact consumer path for Cam is the existing `TRACE_DIR=hf_--` +contract. In the replay harness checkout, the closest end-to-end verification +command is: + +```bash +TRACE_DIR=hf_semianalysisai--isb1-cc-traces \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +If the SemianalysisAI org is not available, swap in the fallback namespace: + +```bash +TRACE_DIR=hf_ocwc22--isb1-cc-traces \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +## 8. Consumer note for Cam + +This is the zero-friction handoff: + +```bash +TRACE_DIR=hf_semianalysisai--isb1-cc-traces \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +No code change is required in Cam's harness. The only user action is publishing +this dataset repo once with valid HF credentials. + +## 9. Versioning guidance + +When new traces land: + +1. Regenerate `datasets/isb1/converted/manifest.json` +2. Re-run `tools/validate_kvcache_tester_trace.py` +3. Re-run the uploader dry-run +4. Publish with a commit message that records the corpus revision +5. Record the InferenceX commit SHA and the HF dataset revision together + +Consumers that need immutability should pin an HF revision instead of floating +on `main`. + +## Notes + +- Publish converted artifacts and metadata only +- Do not modify `datasets/isb1/converted/**` during publication prep +- Keep the uploaded layout compatible with kv-cache-tester's existing + `TRACE_DIR=hf_--` convention diff --git a/datasets/isb1/README.md b/datasets/isb1/README.md new file mode 100644 index 000000000..aa3c4ef0e --- /dev/null +++ b/datasets/isb1/README.md @@ -0,0 +1,298 @@ +# ISB1 replay artifacts for InferenceX + +This directory is the InferenceX-side consumer package for ISB1 replay. + +InferenceX consumes committed file artifacts only: +- replay export JSON bundles under `datasets/isb1/exports/` +- replay via [`tools/isb1_to_kvcache_tester.py`](../../tools/isb1_to_kvcache_tester.py) + Cam's [`kv-cache-tester`](https://github.com/callanjfox/kv-cache-tester) +- consumer configs in `.github/configs/isb1-*.yaml` + +InferenceX does **not** import external runtime code and does **not** make +live-serving claims from export-file existence alone. + +--- + +## Why not random data? + +Random-data benchmarks show worst-case performance. Real inference workloads +have multi-turn conversations where each turn shares context with previous +turns. This enables: + +- **Prefix caching** — 60-95% of each request's tokens are shared with the + previous turn. Prefix cache hit rates directly affect throughput. +- **KV cache reuse** — the server reuses computed KV cache entries instead of + recomputing them. This is the biggest performance optimization in production. +- **Realistic offload behavior** — KV cache grows across turns, eventually + exceeding GPU memory and requiring CPU offload. Random data never reaches + this point because each request is independent. + +These traces stress-test the exact KV cache behaviors that determine real +production performance. + +--- + +## Coverage + +Strict audit rule: count only model-architecture-valid cells. Per-model context +limits (DSR1 163,840; GPT-OSS 131,072; Qwen3.5 1,010,000) produce N/A rows +above each model's max. + +### Verified coverage + +| Model | Chat | Code | +|---|---|---| +| `dsr1` | `8k`, `32k`, `64k`, `131k` | `8k`, `32k`, `64k`, `131k` | +| `gptoss` | `8k`, `32k`, `64k`, `131k` | `8k`, `32k`, `64k`, `131k` | +| `qwen3.5` | `8k`, `32k`, `64k`, `131k`, `500k` | `8k`, `32k`, `64k`, `131k`, `500k` | + +### Existing preview artifacts + +- `gptoss` `500k` chat/code preview files exist at `reviewed_preview` tier +- `qwen3.5` `1M` chat/code preview files exist at `gated` tier (consumed only + through `isb1-qwen-1m-preview.yaml`) +- `dsr1` has no `500k` or `1M` lane because the model tops out at `163,840` + +--- + +## Inventory + +### Export-file layout (post-flatten) + +Bundle files are flat per context-band directory — framework-specific variants +are consolidated into single files whose internal cell rows carry runtime +metadata. + +| Subtree | Bundle files | Notes | +|---|---:|---| +| `core/` | 4 | 8K chat/code × {generic, qwen3.5} | +| `extension_32k/` | 4 | 32K chat/code × {generic, qwen3.5} | +| `extension_64k/` | 4 | 64K chat/code × {generic, qwen3.5} | +| `extension_131k/` | 5 | 131K chat/code × {generic, qwen3.5, dsr1 chat} | +| `preview/long_context_500k/` | 4 + 2 manifests | 500K chat/code × {gptoss, qwen3.5} | +| `preview/long_context_1m/` | 2 + 1 manifest | 1M chat/code × qwen3.5 | + +All export files are valid JSON and can be consumed via [`tools/isb1_to_kvcache_tester.py`](../../tools/isb1_to_kvcache_tester.py) + Cam's [`kv-cache-tester`](https://github.com/callanjfox/kv-cache-tester); see [How to consume](#how-to-consume). + +--- + +## Support-status vocabulary + +ISB1 replay surfaces classify under the five-class support vocabulary: + +- `supported` — core 8K replay path +- `reviewed_preview` — 32K / 64K / 131K extensions, 500K preview +- `gated` — 1M preview (manual config only) +- `artifact_only` — retained artifacts without live replay +- `unsupported` — not a valid path + +No ISB1 surface claims `live_benchmark_certification`; all claims are bounded +to `dataset_replay_verified`. + +--- + +## Claim boundary + +Safe claims: +- InferenceX carries the ISB1 replay corpus described above. +- Strict replay-file coverage is **26 valid / 0 failed / 10 N/A** across 36 + (model × band × workload) combinations. +- DSR1 strict coverage stops at `131k`. +- GPT-OSS strict coverage stops at `131k`. +- Qwen3.5 strict coverage reaches `500k`. +- GPT-OSS `500k` and Qwen3.5 `1M` files exist but are excluded from the strict + pass count (`reviewed_preview` and `gated` tiers, respectively). + +Unsafe claims: +- `26/26` valid cells verified (10 N/A due to model `max_position_embeddings` + limits) +- strict GPT-OSS `500k` coverage +- strict Qwen3.5 `1M` coverage +- turning preview-file existence into live benchmark certification + +--- + +## How to consume + +The supported consumption path is [`tools/isb1_to_kvcache_tester.py`](../../tools/isb1_to_kvcache_tester.py) + Cam's [`kv-cache-tester`](https://github.com/callanjfox/kv-cache-tester) `trace_replay_tester.py --trace-directory` flow. + +This is the path that lets ISB1 traces plug into SemiAnalysis's existing Slurm benchmarking pipeline without the consumer having to read any InferenceX-local replay harness. + +### Step 1 — fetch the bundles (LFS) + +From a clone of InferenceX: + +```bash +git lfs install +git lfs pull --include='datasets/isb1/exports/**/*.json' +``` + +Or, if the bundles are published to Hugging Face (see +[HF publication](#hf-publication)), download directly: + +```bash +huggingface-cli download / \ + --repo-type dataset \ + --local-dir ./isb1_bundles +``` + +### Step 2 — convert one bundle to `kv-cache-tester` format + +```bash +python tools/isb1_to_kvcache_tester.py \ + --export-file datasets/isb1/exports/core/chat_8k1k_qwen3.5.json \ + --output-dir traces_isb1/core_chat_qwen/ \ + --runtime-stack-id standalone:vllm \ + --hardware-profile-id nvidia:h200_sxm_141gb \ + --canonical-model-id qwen3_5_397b_a17b \ + --support-status supported +``` + +This writes one `trace_.json` per cell that passes the +filters, in the flat layout `trace_replay_tester.py --trace-directory` +expects. The schema matches `kv-cache-tester@main` (`trace.id`, `requests[].t/in/out/hash_ids`), +so `normalize_trace()` accepts it as-is. + +To convert every bundle in one shot: + +```bash +python tools/isb1_to_kvcache_tester.py \ + --export-root datasets/isb1/exports/ \ + --output-dir traces_isb1/ +``` + +### Pre-converted sidecar + +This repo carries a pre-converted mirror at: + +- `datasets/isb1/converted/` + +Feed that mirror directly to `kv-cache-tester` with: + +```bash +python trace_replay_tester.py --trace-directory datasets/isb1/converted/ --tokenizer Qwen/Qwen2.5-Coder-32B-Instruct --block-size 64 +``` + +Mapping convention: + +- one trace file per ISB1 conversation/event +- each trace filename is prefixed with the source bundle id + +### Step 3 — replay against a running vLLM / SGLang server + +Using PR #993's own recipes (e.g. `benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh`), +set `TRACE_DIR` to the converted directory and let the existing Slurm wiring +pick it up: + +```bash +TRACE_DIR=$PWD/traces_isb1/core_chat_qwen \ +MODEL=Qwen/Qwen3.5-397B-A17B-FP8 \ +TP=8 USERS=8 OFFLOAD_MODE=off TOTAL_CPU_DRAM_GB=0 \ +RESULT_DIR=$PWD/results/isb1_smoke \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +Or, equivalently, invoke Cam's tester directly: + +```bash +python $KV_CACHE_TESTER_DIR/trace_replay_tester.py \ + --api-endpoint http://127.0.0.1:8888 \ + --trace-directory $PWD/traces_isb1/core_chat_qwen \ + --output-dir $PWD/results/isb1_smoke \ + --start-users 2 --max-users 2 --test-duration 60 +``` + +### Step 4 — verify the result + +```bash +jq '.' results/isb1_smoke/results.json | head +``` + +Expected: + +- `trace_replay_tester.py` logs show `Loaded N traces (filtered from N)`. +- Cache-hit rate reported during the run is non-zero for multi-turn bundles + (because each turn's `hash_ids` extends the previous turn's prefix). +- Completed sessions ≥ 1; HTTP error count = 0. + +--- + +## Smoke test + +The one-liner below is the binary go/no-go for "does this PR actually help +SemiAnalysis": + +```bash +# Assumes a vLLM OpenAI server is up on :8888 serving the model. +python tools/isb1_to_kvcache_tester.py \ + --export-file datasets/isb1/exports/core/chat_8k1k_qwen3.5.json \ + --output-dir /tmp/isb1_proof/ \ + --canonical-model-id qwen3_5_397b_a17b \ +&& python $KV_CACHE_TESTER_DIR/trace_replay_tester.py \ + --api-endpoint http://127.0.0.1:8888 \ + --trace-directory /tmp/isb1_proof/ \ + --output-dir /tmp/isb1_proof/out \ + --start-users 1 --max-users 1 --test-duration 30 +``` + +Pass criteria: + +| Artifact | Threshold | +|---|---| +| Shim exit code | `0` | +| `trace_replay_tester.py` exit code | `0` | +| `Loaded N traces` (N) | `≥ 1` | +| Completed sessions | `≥ 1` | +| HTTP errors | `0` | + +Any failure of the above means the PR is not actually plumbed end-to-end for +this bundle and should be reproduced against Cam's `trace_replay_tester.py` +before being claimed as compatible. + +### Validate before publishing + +Before publishing or mirroring `datasets/isb1/converted/`, run `python3 tools/validate_kvcache_tester_trace.py datasets/isb1/converted/` to catch schema drift early: missing required keys, invalid `block_size`, and broken prefix-extending `hash_ids` that would otherwise fail inside Cam's replay sweep. + +--- + +## HF publication + +The `kv-cache-tester` Slurm recipes accept an HF dataset source via the +`hf_--` prefix convention on `TRACE_DIR` — the wrapper `.sh` +scripts download with `huggingface-cli` and point the tester at the local +mirror. + +To publish an HF mirror of these bundles: + +1. Create a dataset repo (e.g. `semianalysisai/isb1-core-v0`). +2. Mirror the directory layout of `datasets/isb1/exports/` exactly. + (Do not copy the inner `datasets/isb1/.gitattributes` — one top-level + LFS-only `.gitattributes` at the HF repo root is sufficient.) +3. For each published bundle, run + `tools/isb1_to_kvcache_tester.py --export-root --output-dir ` + locally to verify the conversion stays green at the new revision. +4. Pin revisions by HF branch/tag matching the producer's + `schema_version` (e.g. `v0.2.0`). + +Once published, Cam's Slurm scripts can consume a bundle with no code change: + +```bash +TRACE_DIR=hf_semianalysisai--isb1-core-v0 \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +(Where the `.sh` does `huggingface-cli download semianalysisai/isb1-core-v0` +into a scratch dir, then runs the converter shim against it before +invoking `trace_replay_tester.py`.) + +--- + +## Related docs + +- [`COEXISTENCE_WITH_KV_CACHE_TESTER.md`](COEXISTENCE_WITH_KV_CACHE_TESTER.md) — + how PR #1032 coexists with PR #993's kv-cache-tester +- [`GMI_EXECUTION_PLAN.md`](GMI_EXECUTION_PLAN.md) — bare-metal execution + runbook for ISB1 replay on GMI Cloud Hopper and Blackwell +- [`exports/preview/long_context_500k/README.md`](exports/preview/long_context_500k/README.md) — + 500K preview lane claim boundary +- [`exports/preview/long_context_1m/README.md`](exports/preview/long_context_1m/README.md) — + 1M gated preview lane claim boundary diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01.json new file mode 100644 index 000000000..289035999 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7410a365bd5603bacd4aa99a362c2ac3bf2ad4d050d0d7856d06cd217736f1ab +size 2359 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0013.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0013.json new file mode 100644 index 000000000..81af45fd2 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0013.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe2fc1546b3b472234e631bc65c1704fffb6a41dafa65953e4f8eeacb70c9fa +size 2293 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0014.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0014.json new file mode 100644 index 000000000..4ccb09be9 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0014.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53309ad6e29880d35fa4a73d77747929119fc9c775d5c68f89497e7929bd190f +size 2335 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0015.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0015.json new file mode 100644 index 000000000..dbc37f825 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0015.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51be1bba71f5d3129a6f3e1ff879296c3ed440fb7637e1fbcca00b38488f2f0d +size 2342 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0016.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0016.json new file mode 100644 index 000000000..d95f27534 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0016.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae6118fd3424465ab45b1402d07f5ff9ea8b3919086fb03bf88d0a9130ac9fbf +size 2360 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0017.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0017.json new file mode 100644 index 000000000..4f9ccaff3 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0017.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2ef537f9cd9db8e4cbb0b9960b35e7e4e3274f11831a4da52577fc1056b5337 +size 2294 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0018.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0018.json new file mode 100644 index 000000000..30aa92a74 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0018.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b430d16b147afbaa0f5a60291456e83db5e997a941632cb5540b6d5b453ee3bd +size 2336 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0019.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0019.json new file mode 100644 index 000000000..7629e156b --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0019.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c54ddeb6a9c56a9ea50b6e82fe4807cf1d11452dade164b05810dcec53b7595b +size 2343 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0020.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0020.json new file mode 100644 index 000000000..ee9615fd8 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0020.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0c916c5054d4e6cb99af4432297b20fb0c12cd6375cbec1b928dce7f2d6d741 +size 2360 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0021.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0021.json new file mode 100644 index 000000000..5b7edbd28 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0021.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ae8aa565ef2627e37b602c520967c49a6b516e05538e5d6603b7c8c96c89820 +size 2294 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0022.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0022.json new file mode 100644 index 000000000..de43c48a5 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0022.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aadbb587997e22fb256fa251ad18a1e424c855f21f5f78483bdabe63e5c2bc31 +size 2336 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0023.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0023.json new file mode 100644 index 000000000..bb5cf37aa --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_chat_lc3_contract_review_01_0023.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e435fa2ce6fbd9a18d9a7ce107abeff46abde60fb7789ff435ab55e48ba34ddf +size 2343 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001.json new file mode 100644 index 000000000..f3c0a78b6 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aab2871b3c45fff6f62cc9d8878b1d2ae8ecb39d2057ea6dbecba8d7da495f74 +size 8445 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0001.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0001.json new file mode 100644 index 000000000..82e834897 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cf0ec347a86e01b6d90f5d149f26bc97b3d10984fd19815bc5db641d2745d23 +size 8258 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0002.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0002.json new file mode 100644 index 000000000..2f1f8efaf --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89dd56c6e1b04caeebb0a392fe7f5c9f79fa2fa95dc50569bb649a6092266327 +size 8377 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0003.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0003.json new file mode 100644 index 000000000..e8af57f2e --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c254daadad8c567aed44fb75b4e53b61b38816fe710a6d1e3ac7acef01aeab +size 8377 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0004.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0004.json new file mode 100644 index 000000000..5170f3057 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c517f0cb668eb570266b1dc9e6246872e22299f6e050315535019b08015ab202 +size 8446 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0005.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0005.json new file mode 100644 index 000000000..deb4e4bb5 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:497e35e3d78278b79047795ceccbd0ece37cbfcd21c7d3898cc70320eb924060 +size 8259 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0006.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0006.json new file mode 100644 index 000000000..6b694b51f --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c684232e36da2520cc9df65e69729da1cfc95f344897cf25616508b8b626908e +size 8378 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0007.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0007.json new file mode 100644 index 000000000..3d18a57dd --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56cf51825e79420f6081ff7005528ac7944ef29e3dedcbd9c37d49c3140d1673 +size 8378 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0008.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0008.json new file mode 100644 index 000000000..4404f7f07 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca32aafab78ee132141a572e7dce5d137dc3d94370bac3efe610ec46132f46d6 +size 8446 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0009.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0009.json new file mode 100644 index 000000000..86896b84a --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84b12ab40701ebdc53f4da237c71107736252c3f25bdae88b028eda02673c308 +size 8259 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0010.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0010.json new file mode 100644 index 000000000..e247daa1d --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1393b46efdb0679a6e7c2decfc216cdbe05082118597b53d72e514aed5fc2826 +size 8378 diff --git a/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0011.json b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0011.json new file mode 100644 index 000000000..fab470726 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k/isb1_sess_tool_free_memory_resume_001_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc31d4126d5eb6e54e9af4ba554cc5b71038de0b5e406b4f9b0a84e38f82ee5 +size 8378 diff --git a/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01.json b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01.json new file mode 100644 index 000000000..c22f2fb06 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caa872caa9d33985a19954712466b6d46fe982aa9bee2a8bbb1b850be9ce2b30 +size 2372 diff --git a/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0001.json b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0001.json new file mode 100644 index 000000000..41d93eb2e --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7620c05724a6b02392b5b95277fac6f28a0dea2edceeec5c28ddfcf19dccf1e7 +size 2373 diff --git a/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0002.json b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0002.json new file mode 100644 index 000000000..536cd8776 --- /dev/null +++ b/datasets/isb1/converted/core/chat_8k1k_qwen3.5/isb1_sess_chat_lc3_contract_review_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05c597f0ad3f46aad040beceac30921c0a774eddd0c225b6ecb4736cc85e7304 +size 2373 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01.json new file mode 100644 index 000000000..b2d78fc85 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228fdf2065df12f63481c4440db4c67c2616bda22ab2711025360baf29f6fb1f +size 2401 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0025.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0025.json new file mode 100644 index 000000000..8b38fca7d --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0025.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c373636a41b2387979e5b9727c34cb10becf29158ac57298bd257a3e33043dd +size 2335 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0026.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0026.json new file mode 100644 index 000000000..f77cb30fe --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0026.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:becdbb0fb66beea439832ca828d447b8898c922b2bcd9f6df8791da7d520958d +size 2377 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0027.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0027.json new file mode 100644 index 000000000..49ebc3f9e --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0027.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1f9bfaebcdedf0623da29d4782fc26a1d76307c3b39dbd3e3fbbe3672b1aeb4 +size 2377 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0028.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0028.json new file mode 100644 index 000000000..2115ed500 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0028.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3e6a9b7b6a3c186179d9734dc3c9eff99bcce8a42fb3c62319551c1cfe01e4b +size 2402 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0029.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0029.json new file mode 100644 index 000000000..b26c2ccb9 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0029.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99c14475b0023dfeb1ae12a23930601e7ecae719c6bcd22afd69fb94b9c27e90 +size 2336 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0030.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0030.json new file mode 100644 index 000000000..ce08beecd --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0030.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b616707f813b632f41b6a2dbfb7a8fa77758cecf8f62d6b7b7b192c9f0b0e57d +size 2378 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0031.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0031.json new file mode 100644 index 000000000..ecc7db393 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0031.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1c1f9168bd06050007b11231eae3a4ce2a091d3b64bf34fed05447c55efc836 +size 2378 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0032.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0032.json new file mode 100644 index 000000000..1a645728d --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0032.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:529dd8da2cb64862f8065283a1d2a0b2f75635931da935ce9db2482cf33bdc9c +size 2402 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0033.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0033.json new file mode 100644 index 000000000..f25844e95 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0033.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1dcefa12491d06065823f209a2770046ad8ba8641506d7bfceaa674aeecd97e +size 2336 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0034.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0034.json new file mode 100644 index 000000000..c8f36e610 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0034.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7a6a137188bfb0fa12b8569de694d6446a7dd52f4481ce4e14ca3b5b0e550ff +size 2378 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0035.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0035.json new file mode 100644 index 000000000..2553d6608 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_code_ca1_agent_benchmark_plan_01_0035.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7f313bea274207cc269c564f5800ca1b942430f127628e7127797deeec6d424 +size 2378 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001.json new file mode 100644 index 000000000..dfdb91bb7 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e68dffcda05a8eab2e94918ae18eeb9b5a0fd2ea5ddac42490d214a0547f31bf +size 2784 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0001.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0001.json new file mode 100644 index 000000000..7c3dab242 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a37c6699eb2f233157f6e8d26287aa8e0d6d98581cc36e7235771deca8ea3b92 +size 2707 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0002.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0002.json new file mode 100644 index 000000000..2683d82da --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c4f8492fe921da1b3a515f6acc4fe4266214b2571e8fd9cf236f027eb469d0c +size 2756 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0003.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0003.json new file mode 100644 index 000000000..8a970849d --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:006ba691e4754f142ffde833e4d49c2b8038e414aeeaf1ea962ee0c0470d56d9 +size 2756 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0004.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0004.json new file mode 100644 index 000000000..adb92e285 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3baca5e56f471e05e34bd32b76520a94ddf9c5ef9b23dae6fbf7e2565f4f5ea +size 2785 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0005.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0005.json new file mode 100644 index 000000000..ed3894147 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7818e9a45227acfe746ecce353cb2d395b8f03f03f9365306df2f8c4a2fce6f2 +size 2708 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0006.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0006.json new file mode 100644 index 000000000..c44120a5e --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:802d7b4d051b3c02f7219edad18540ef339735b35f55cebecd324784bc13f6ae +size 2757 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0007.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0007.json new file mode 100644 index 000000000..c1b6ab46b --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:115595c48ca72295cb99deeff81bb6c9b25c877c0a7d72b59d05cb4995b6c276 +size 2757 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0008.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0008.json new file mode 100644 index 000000000..829e1e445 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c19c8304459bed86d8c901b785edcff750451337868d0d0e373d819cdbb69660 +size 2785 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0009.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0009.json new file mode 100644 index 000000000..ba2d03d5d --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94d4e3bfd6913cade38921bc52e7447445d957e1304cd133914fd50931142993 +size 2708 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0010.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0010.json new file mode 100644 index 000000000..e6594d3c6 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:851ba58a552a39ea9cf5123ce7e642bf00c3d7756b65aafdc6aec9a730799c84 +size 2757 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0011.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0011.json new file mode 100644 index 000000000..b2bd898e4 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_debug_repair_repo_001_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b00d4d905ea1161df0007acc8de86913173090352d9725a38f6a8d2b0fc21321 +size 2757 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982.json new file mode 100644 index 000000000..3c7d72a08 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7bced17c233960a2d61274ea342a2bfcddda9763feaee9c8de77abb865ce78 +size 3270 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0013.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0013.json new file mode 100644 index 000000000..fd98b87ac --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0013.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b86d7b3773d965c200f734e10aaeb0d5a58ccce907bc6d12a88141eda7e36263 +size 3182 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0014.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0014.json new file mode 100644 index 000000000..7876c3d0b --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0014.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:435e61feb29c8527973126324c81aef085c3e27ca3a9570a8b08766c4b468e4d +size 3238 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0015.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0015.json new file mode 100644 index 000000000..4a8db8812 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0015.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b904ef36516f004c8e7e6bc082c4cb6fb1958a7f354a781a2fa67705bb0baacd +size 3238 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0016.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0016.json new file mode 100644 index 000000000..a2533de83 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0016.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:021ac97814c5c44835b76d548f6ea0db809cfb26e918fa11c110cf5d70c67e7c +size 3271 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0017.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0017.json new file mode 100644 index 000000000..b42712a6c --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0017.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceb660d330dff8500047fb45000c890a1e0a922dd24d4d0d5e669f31438e29db +size 3183 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0018.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0018.json new file mode 100644 index 000000000..448693c0f --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0018.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de0dbfd8c652ea9c5e4686f19b7226c67e4632e00055ed941e91ae01d53e2f56 +size 3239 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0019.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0019.json new file mode 100644 index 000000000..60d6c72a6 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0019.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bee5128892e928afd957490a9d47e7dada73c296bc3c9f146d4c03ea9161a6b +size 3239 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0020.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0020.json new file mode 100644 index 000000000..cb66bdc3f --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0020.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56405fb996608d6373fb500d03d1f9617a7916bcbd7bbabf967e6b7db4ab6cec +size 3271 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0021.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0021.json new file mode 100644 index 000000000..4c79b8f57 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0021.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4447403d1c4d08cc334a458241bb85ea0eab4d29236a450bf3bad0bd4353565 +size 3183 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0022.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0022.json new file mode 100644 index 000000000..baad5558f --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0022.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6165657ee626fb9a507d9b39418187654411119d1434c39af71c5fc3f035f63 +size 3239 diff --git a/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0023.json b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0023.json new file mode 100644 index 000000000..f647a5fa8 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k/isb1_sess_offload_cliff_9982_0023.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b9fb5f30984d54379a4f8e72ab3c42f720a3c4399656868c20a716838e3164 +size 3239 diff --git a/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01.json b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01.json new file mode 100644 index 000000000..166fdc3d7 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:022ac4792b506df3b42bd605fc796ca38c3114c91dcf0b3492c3f70a917071a2 +size 2407 diff --git a/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0001.json b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0001.json new file mode 100644 index 000000000..e629502c4 --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b0b285c9dad4335c18945ab55e31d7bc0dda2d2109014903719c42aec4d39c5 +size 2408 diff --git a/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0002.json b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0002.json new file mode 100644 index 000000000..59faaebdc --- /dev/null +++ b/datasets/isb1/converted/core/code_8k1k_qwen3.5/isb1_sess_code_ca1_agent_benchmark_plan_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d28f64eb09f50b8bf9e6e7f0291db3bc1c08db7b76cccfdbc0dcc114b360e04 +size 2408 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01.json new file mode 100644 index 000000000..323c64b7c --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bd56f01e5090d703d0526c11e96e9cbff3cf1c097c486211ece05acfbd3f6b1 +size 4471 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0001.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0001.json new file mode 100644 index 000000000..9c6173124 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f45f7941444d1a3c566163063418333ec3e62eb3cbd9bd029547f7f6f1c0a76 +size 4350 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0002.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0002.json new file mode 100644 index 000000000..793bd64c9 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd8c5b09579a9415d7d414a3896c3c4269df8099bf8a23f49c5eeb7103dd59c +size 4432 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0003.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0003.json new file mode 100644 index 000000000..931e7b086 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81b99077228bcb9c152b252688ef57f146273cc004abdca230e93dd630f2b9ee +size 4427 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0004.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0004.json new file mode 100644 index 000000000..e53fa1dde --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26ab461192902708ec092d408e93416c7c0af125ba283aa61e7c2e0f137599a3 +size 4472 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0005.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0005.json new file mode 100644 index 000000000..831a7c9df --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd50f79726ace6b1c7da24c2ad958c4de3de7ab75e030ae0b9c3c9644e6c056d +size 4351 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0006.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0006.json new file mode 100644 index 000000000..2faf8ca27 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcc6eac63fe7778dc95f47b6d765897907fd47093aee224ba22ad6297bb0fc8f +size 4433 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0007.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0007.json new file mode 100644 index 000000000..586d05e6e --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dcbeacbe9c7cf8415da9141a5fa870d87c5b75b84b0721d91de68aeebe38509 +size 4428 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0008.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0008.json new file mode 100644 index 000000000..2edfcb63d --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a3a7389ad3bc2647502821926867d13dfdd2e8100b228392198d5c0e2fd9351 +size 4472 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0009.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0009.json new file mode 100644 index 000000000..944e818d4 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec67230bd0ddc6525b348730ab869f6fbf87a839b64bbfdedbef50f3d52574d7 +size 4351 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0010.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0010.json new file mode 100644 index 000000000..b19f75e4f --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f401813df485734fcd7bda36aa17a8b81087005180c99c719f65e3c2e4112c0d +size 4433 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0011.json b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0011.json new file mode 100644 index 000000000..d859d3153 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k/isb1_sess_xlc1_text_resume_bridge_01_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d177f9357a51503adbd8af9a410ebf8d5e56ccd9429fede9735a70e2f4c7d6e0 +size 4428 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01.json b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01.json new file mode 100644 index 000000000..323c64b7c --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bd56f01e5090d703d0526c11e96e9cbff3cf1c097c486211ece05acfbd3f6b1 +size 4471 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0001.json b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0001.json new file mode 100644 index 000000000..e53fa1dde --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26ab461192902708ec092d408e93416c7c0af125ba283aa61e7c2e0f137599a3 +size 4472 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0002.json b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0002.json new file mode 100644 index 000000000..2edfcb63d --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_dsr1/isb1_sess_xlc1_text_resume_bridge_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a3a7389ad3bc2647502821926867d13dfdd2e8100b228392198d5c0e2fd9351 +size 4472 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01.json b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01.json new file mode 100644 index 000000000..1ce2fa5c1 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:261ea0938d4768ea20dec329c076174d0f8a44a052e2f02acc9ac6361c8292fa +size 4487 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0001.json b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0001.json new file mode 100644 index 000000000..cb27e8f77 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1788d56651677b95e4acc0ebc88a2218054aa373ca22390d569ea248f92d673d +size 4488 diff --git a/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0002.json b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0002.json new file mode 100644 index 000000000..479e9b01e --- /dev/null +++ b/datasets/isb1/converted/extension_131k/chat_131k1k_qwen3.5/isb1_sess_xlc1_text_resume_bridge_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca8a90183c998f8abbb8504daa48c89bf66dee898cceeba40a6c8ec9ef9b965c +size 4488 diff --git a/datasets/isb1/converted/extension_131k/code_131k1k/isb1_sess_cache_xlc1_text_shared_prefix_swarm_01.json b/datasets/isb1/converted/extension_131k/code_131k1k/isb1_sess_cache_xlc1_text_shared_prefix_swarm_01.json new file mode 100644 index 000000000..88cc7cfa8 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/code_131k1k/isb1_sess_cache_xlc1_text_shared_prefix_swarm_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbd915ed136e1d16788da57d18708969b408d445c408183c65a59520b891d2b6 +size 263363 diff --git a/datasets/isb1/converted/extension_131k/code_131k1k_qwen3.5/isb1_hb_depth_cache_xlc1_text_shared_prefix_swarm_01.json b/datasets/isb1/converted/extension_131k/code_131k1k_qwen3.5/isb1_hb_depth_cache_xlc1_text_shared_prefix_swarm_01.json new file mode 100644 index 000000000..18c269447 --- /dev/null +++ b/datasets/isb1/converted/extension_131k/code_131k1k_qwen3.5/isb1_hb_depth_cache_xlc1_text_shared_prefix_swarm_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0aae25baf94a0f8d1c5b4ca49fa684fa1844366b2a2bc0ade25b162f5ce8c773 +size 263379 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01.json new file mode 100644 index 000000000..1df87abf4 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81111f0fc9153920bbcdaec6e23f7fe4b539adfc68ddd211bbbc5f97f6f61bbf +size 5146 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0001.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0001.json new file mode 100644 index 000000000..27bf25cb7 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c8202aa5e0aad871827d94babcbb4f5d2b9a13fedb9119f4b4f5e6803ea0ed3 +size 5025 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0002.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0002.json new file mode 100644 index 000000000..dbf28066d --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfeb547b1f838f821d06043538f1ca358086fe719fdedf7579fe153da0d29019 +size 5102 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0003.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0003.json new file mode 100644 index 000000000..1f4519732 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37be49b80578e31798c447baa3a5016baf6f10639abd7b7cfe0220af203ad18 +size 5109 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0004.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0004.json new file mode 100644 index 000000000..aadc25c8e --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3f0b45305cb2a3328dc44b0ee32e202f09b063a6295391e990e2942ce4ad44d +size 5147 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0005.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0005.json new file mode 100644 index 000000000..57e9ab3dd --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bbafbac43e8a55570ff4e736708be054f18a10ef2a620b2eed47bdc35fe20a6 +size 5026 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0006.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0006.json new file mode 100644 index 000000000..2dc12c3a6 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06040e76b3f9b4b33f6bb8bb6ad850fab7a9d646dca1cbb5ff87afb60583e9d7 +size 5103 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0007.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0007.json new file mode 100644 index 000000000..e63e2e8fe --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cedb5842f6eaf58cdd062e97f95125dfdec76000df9685bb4a50907d6f8963d +size 5110 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0008.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0008.json new file mode 100644 index 000000000..c1c65b310 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae80514ebac0758d3b7092aaefd792c6fcc659cdbc1eb7567fd15abc833fa4d +size 5147 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0009.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0009.json new file mode 100644 index 000000000..9ed6d3bc8 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f4b5750450b5f0d666cb6892ecc365aa2e673ee11ab68882789dbc31c97f807 +size 5026 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0010.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0010.json new file mode 100644 index 000000000..cde215170 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dde875b3d31b7aec6d06166dcf938208f00bbdc26a47702228dd796911db6906 +size 5103 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0011.json b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0011.json new file mode 100644 index 000000000..b51664086 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k/isb1_sess_chat_lc2_resume_reasoning_01_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed5cb7cf3299c29aeef48f1903dc3c66dd8caef5833f737ff4528ed1fd28801d +size 5110 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01.json b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01.json new file mode 100644 index 000000000..a79b872b3 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cfbc883664bfa60fa0c1ff7895c83b31d5e0551279544ce38db9e04e75cabe5 +size 5164 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0001.json b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0001.json new file mode 100644 index 000000000..6e32fc5be --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdbada52e4b8b50a488e77a9102866244b56620042f3c5d238817b80efe203b8 +size 5165 diff --git a/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0002.json b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0002.json new file mode 100644 index 000000000..a8cd8c71b --- /dev/null +++ b/datasets/isb1/converted/extension_32k/chat_32k1k_qwen3.5/isb1_sess_chat_lc2_resume_reasoning_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3318dfcb10f5d990770616cf5d0f0538b4bf8da1d567f88dfdd5bea168112409 +size 5165 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7.json new file mode 100644 index 000000000..3dcf84566 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:898dbe2c1a03f87a522cf33e310d710ac8223ed1f94b1ee8c7a9100fda9431b6 +size 2804 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0001.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0001.json new file mode 100644 index 000000000..08441a345 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aea5d8909200b74ecec71b915ee017ee9710f618fbe3a69e7f54abbbc8c100b +size 2727 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0002.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0002.json new file mode 100644 index 000000000..260690e2b --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1294b6545ed7b10372c6ef19cb3e8e0328d94bda306f8186362533ee40802c2 +size 2776 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0003.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0003.json new file mode 100644 index 000000000..af2479a77 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:998fc4cdb3d991960ad7858d5231a921fefadd5bd02b2b306a472c81e2119c8d +size 2776 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0004.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0004.json new file mode 100644 index 000000000..ca8a964a5 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92f214b18f52865b839ac93ceecbacee733a7071b84a7e571298eec5a6d50c85 +size 2805 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0005.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0005.json new file mode 100644 index 000000000..d479dd22b --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4adf2f4c220a7bc9416b513b5163a51e092dbc2417393ed67d426735a6fce922 +size 2728 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0006.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0006.json new file mode 100644 index 000000000..c9c098182 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b59c4809a87806e867d8e220204ca209ca529cbc7d2d5a652798034128d1a3d +size 2777 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0007.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0007.json new file mode 100644 index 000000000..4e27df91c --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e643421e2790c88f1bbc604ded96735f9091aa8bd3171aa69d277c557636256e +size 2777 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0008.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0008.json new file mode 100644 index 000000000..ff3c101f7 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a112a6c624844e5bef52cf1cb7523bd701b1529d6881ddcaed845eb3bc1d28c +size 2805 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0009.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0009.json new file mode 100644 index 000000000..7addccd14 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aae820940a72609eb6d89fd2bff155f951a2f3d6d2f3e246ee66795a7c7497ec +size 2728 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0010.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0010.json new file mode 100644 index 000000000..0ff8b11f8 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68e796dc6e7d585511eb80b4b5ebe9d75c26f02f1806f5a65900d9e8844f2464 +size 2777 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0011.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0011.json new file mode 100644 index 000000000..48c92905b --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_2c2a96a7_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f9a6774bac4f0c84077cf790e98f234ca8af29557b0de8375dec82d92ca7b69 +size 2777 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01.json new file mode 100644 index 000000000..bf05252e9 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45ede46fa67491a65f6eaf65c2831c5db29fa1d97e547c6ff5f8dfda4a8ee3ab +size 2327 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0013.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0013.json new file mode 100644 index 000000000..9ac87542e --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0013.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd5748d6bbe1887f1e15805c926d5298d4f2e3c8c63d7eaa70bf33db78ed4e7 +size 2261 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0014.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0014.json new file mode 100644 index 000000000..6a18175c4 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0014.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6ca628bf59a22aca1980873f31e2aa9ea708e44a34bb719a17a85d4f9e75b23 +size 2303 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0015.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0015.json new file mode 100644 index 000000000..0e54cb5ea --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0015.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:037e492903c768d94e11464a4214bf1b131ed76d4b0193b3604df7a8b6479a12 +size 2303 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0016.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0016.json new file mode 100644 index 000000000..cf9c9f602 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0016.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42eb70b9fa39336c31220328e7db575f173af44e37884be2fb7b5e62a57c22ed +size 2328 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0017.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0017.json new file mode 100644 index 000000000..1b2d9bf04 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0017.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bb4ce1e1a68b68ce379ad09da2c09a57b05ce64a7bdfbc5e47defae8418da7d +size 2262 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0018.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0018.json new file mode 100644 index 000000000..8539ee4cb --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0018.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30d39c8419bebc2ca5ffa7ca2056d07b1e114d8fc76961e5cf3fe4aeeb07f5f3 +size 2304 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0019.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0019.json new file mode 100644 index 000000000..8c176a52f --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0019.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46d4f89c5e481a5b93136053ced19de76d23ea8ad3bf195865cb7bcb62c777af +size 2304 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0020.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0020.json new file mode 100644 index 000000000..c8356ca18 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0020.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddd27528ed68ab47637903d86c011a3a0074690966a8d0f8f35e56371f553581 +size 2328 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0021.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0021.json new file mode 100644 index 000000000..5580594fe --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0021.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9eb0005d487df58324b70d717923be60a89c5e5db89026a58f5aee7854244d5 +size 2262 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0022.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0022.json new file mode 100644 index 000000000..b2c99d2d5 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0022.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cca1e74d84c28eec8161eab5fcd475f96bc0f76556adaa42f43403ad0ea9a65a +size 2304 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0023.json b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0023.json new file mode 100644 index 000000000..08ad2f5b9 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k/isb1_sess_doc_comp_fanout_01_0023.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b392ebeb6c0b86f2ef2e6fd1275e61d298c526d5dd32e3ba97b09c99531e3abf +size 2304 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7.json new file mode 100644 index 000000000..65c643380 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f373c4011208b2d97a1e6a0a86accfdd904ebc833f46c5e5b200cc264c57f39 +size 2811 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0001.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0001.json new file mode 100644 index 000000000..b73906f19 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c5879b6e1996c18fe78e80c2e9495ad84dad2e85aa2dcc307d90a6fdef416f7 +size 2812 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0002.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0002.json new file mode 100644 index 000000000..1735d3bdd --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_2c2a96a7_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c926e04d21d2648b6ccc196b14182e06a4593452c0d6c1bec4e37c7d98994dc9 +size 2812 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01.json new file mode 100644 index 000000000..a81c959a0 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3efb687c57a2246be7c98f1d502da42c1b565c0368b4292f476b9c2a78c91ba5 +size 2333 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0004.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0004.json new file mode 100644 index 000000000..ca01016a2 --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1cb0ba5bc2093d1525b09ae13e39b8db1a4fa436025cf389f2320765dee1afe +size 2334 diff --git a/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0005.json b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0005.json new file mode 100644 index 000000000..8703faadd --- /dev/null +++ b/datasets/isb1/converted/extension_32k/code_32k1k_qwen3.5/isb1_sess_doc_comp_fanout_01_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c6a77ff4c9f1b5ad86f9fedb63790372850f11f7b9e8d420dfa140c084b2ed +size 2334 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01.json new file mode 100644 index 000000000..a14eb48da --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:392dcd8298eeeca109a4c349fbcbd085c87bcd5aa32a5a06c593b8e3f4072f35 +size 7684 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json new file mode 100644 index 000000000..6b3233162 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2f601f4fa6ac44b82555eac3a88396b98c3dd700c0a157743a799e0f65653cd +size 7519 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json new file mode 100644 index 000000000..73e206072 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a75a018eb65ec3e3d3074e588c70ade1fb465ee21806a0b26c89c7508e5f6fab +size 7624 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0003.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0003.json new file mode 100644 index 000000000..240ad8dcc --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8fd9574a23e0d71976e13023fc9073c281fe4a58109bffdd421c2cb6d53ecf +size 7631 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0004.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0004.json new file mode 100644 index 000000000..32fd5bded --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0d7c11a14ab5754a53860d4c587a086926d69826ef1db2c103c033357fb53d4 +size 7685 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0005.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0005.json new file mode 100644 index 000000000..ff71c156d --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec0b81adb90c381e352c0a14f5c384a483f7b4bac68df8b2a0d606a88af1ae9f +size 7520 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0006.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0006.json new file mode 100644 index 000000000..c7699b66a --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23388ddf4ce42292403bc1c21a0009b3ed6fe7457bc726ad46e0691c63f49fe6 +size 7625 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0007.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0007.json new file mode 100644 index 000000000..f1920117c --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef9f3dc90c8a293f2001cc01d3659b7b45b0c37225020f179b0599488d8344a7 +size 7632 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0008.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0008.json new file mode 100644 index 000000000..991e10709 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39166450bd02636042142071bae92b87d3791d7d1ff3963484e4bf49a27bd1ff +size 7685 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0009.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0009.json new file mode 100644 index 000000000..c0a75c91b --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d323c45d881962162631d95c5dd529c74f82f3bfd6689dd1295b613b3c50de35 +size 7520 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0010.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0010.json new file mode 100644 index 000000000..758cac801 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94674bf6b28a393a8c5a8da3d5479191d5c8735d6623d9708bba7e899a1fe3c6 +size 7625 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0011.json b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0011.json new file mode 100644 index 000000000..44aa5e7fb --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k/isb1_sess_chat_lc3_multi_day_strategy_01_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17bdda94141044a3ea36ff67cf038366ed8ea0845ffcc918f6b47ac75c21c7d3 +size 7632 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01.json b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01.json new file mode 100644 index 000000000..17e78bdae --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2be8596b4e2ebbd20afdbbb03ef7914f575924a98eee84d0acd5c35fbfae22d +size 7706 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json new file mode 100644 index 000000000..7cc9d4d51 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:177b67dbf79b22bbd0760e063ef5569f72d9d9385a1d88c007ab4f5679c286e4 +size 7707 diff --git a/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json new file mode 100644 index 000000000..eee60953c --- /dev/null +++ b/datasets/isb1/converted/extension_64k/chat_64k1k_qwen3.5/isb1_sess_chat_lc3_multi_day_strategy_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86ab968d40f31e4780c53775a7d51454217abf24040e3d8cd0709727badf5db6 +size 7707 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01.json new file mode 100644 index 000000000..bf9718acb --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15e4d7e653c3f4ee4c422b8923b82580a5134be6550819d484eb5f5e0d51f457 +size 2746 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0001.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0001.json new file mode 100644 index 000000000..55e026e7c --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:278c37d6ce1fd114ab5e6bf0abce101db23dd8b7b32b237952bbadc40f92a487 +size 2669 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0002.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0002.json new file mode 100644 index 000000000..ad27fa0dd --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbeb3201f01eafeea2933baeec39072dddfd0b5a08812e9321da2dd5e823df31 +size 2718 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0003.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0003.json new file mode 100644 index 000000000..dbb7d2fee --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0003.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd61a8e0a839f576224db4308d131e2cd4da5d834fe2a728cdb954d7665f9172 +size 2725 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0004.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0004.json new file mode 100644 index 000000000..993d6845e --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0004.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fca2e437912b0f209119fb524b8896c782d4149e5237436e550ba661784a782 +size 2747 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0005.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0005.json new file mode 100644 index 000000000..061cb6600 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0005.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66f9bd4e2c84710766698e604e887383ae692176bdc08ffec80e210cc6b28e39 +size 2670 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0006.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0006.json new file mode 100644 index 000000000..b8bf217ea --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0006.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79f641c5bc45b0be1938fb6067baa59f1cfe8687d09da1fe78e1dfde09d07784 +size 2719 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0007.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0007.json new file mode 100644 index 000000000..a22ff65e8 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0007.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:764b5d116a9ab258dbb3f39455823e04728171df2078edd8d13ef10d57ae2ebe +size 2726 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0008.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0008.json new file mode 100644 index 000000000..38109b7ab --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0008.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73e9a919db6baad72001517ee6335641e9d03abbb24a03616ae388cd943ca1d0 +size 2747 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0009.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0009.json new file mode 100644 index 000000000..c256ddd8d --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0009.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:126da8b3fed24e28358a905b3051b0e5f345f0f24ba96e06c1edebf55903d0bb +size 2670 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0010.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0010.json new file mode 100644 index 000000000..654a0368f --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0010.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a8b21b503bd9bea0e8315b8658392b67b7b661fb41ebb1273764ba8fdf999f9 +size 2719 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0011.json b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0011.json new file mode 100644 index 000000000..5b491122d --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k/isb1_sess_optimizer_01_0011.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7fb7638ce1fee522641a81199668fa15c34bb544c5daa8ba6b40c1e7198b51b +size 2726 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01.json b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01.json new file mode 100644 index 000000000..4e5c9b718 --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edfe48c31bb12a455d929a2abcdd15a4ccb865918c5fbd2b2809e7967fdecfad +size 2760 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0001.json b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0001.json new file mode 100644 index 000000000..a02eca75f --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c00b21670c05c9406b0b74883f8fe5586fb1c979ec550b174721631b0150b8d1 +size 2761 diff --git a/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0002.json b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0002.json new file mode 100644 index 000000000..cbf22a9df --- /dev/null +++ b/datasets/isb1/converted/extension_64k/code_64k1k_qwen3.5/isb1_sess_optimizer_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe1f712db16fb8a7dd2186bd053f728179de328009c563f4683bcb2151a417d2 +size 2761 diff --git a/datasets/isb1/converted/manifest.json b/datasets/isb1/converted/manifest.json new file mode 100644 index 000000000..2c9886e13 --- /dev/null +++ b/datasets/isb1/converted/manifest.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9694ac3d13014235c5e61f4c7cff955b9d924cad373695ed373896e22439c55c +size 93447 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json new file mode 100644 index 000000000..c4c0876cf --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d451812144b3b944d058b8e7ede4fb7398f54bbbf8cf8b2f431985ee06fad118 +size 3299 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json new file mode 100644 index 000000000..03a2dfb81 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73df71fde60d50ee90c8042d52489c06af17c37537ff94b0dc172b3287929fb2 +size 3298 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json new file mode 100644 index 000000000..db0d40be0 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14f779829ac901f6ad41b269866f52dd77b42ecc6bda879af888e45169b61d26 +size 3299 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json new file mode 100644 index 000000000..44bfb70d2 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:511843bdadda58bb006e1829df648ade5c9740fd7c745a2a108f15a9cf820482 +size 2222198 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json new file mode 100644 index 000000000..447093133 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07072bc586a42f1b625b70f5fec9187b73b1c93cc4d6051466299ba57a80d3e0 +size 2222197 diff --git a/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json new file mode 100644 index 000000000..74e3303ff --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1/isb1_hb_depth_cache_ulc2_offload_cliff_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d12dcf7565874dfb729b12d069fbbcefdff2d0a0cfb280f553dc63e71111cc1d +size 2222198 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json new file mode 100644 index 000000000..dde417aec --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af6bbdedbcceb93c1f384fb00d18d506365709299ba6dfb149c6d638d659c982 +size 2234 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json new file mode 100644 index 000000000..5072474af --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df24fdcda9a63909d62b78cbf9cf84882240ba25e3654970311baf3d6a89e6b9 +size 2235 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json new file mode 100644 index 000000000..948b19e5d --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f3158216c0d1572c28d1a003eebd889bbb0c56c0d4c29769ae983bfe37b83ea +size 2235 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json new file mode 100644 index 000000000..172bfd7b8 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a89f7153acbef8a83f78601ed655f5d3a0907feb30f18e2b4994b96cd703de94 +size 2269 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json new file mode 100644 index 000000000..47dc53b26 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:638194fafecfd1183f4e3787727c8bce03bded3d6237492c9db2fbcbe9d8226e +size 2268 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json new file mode 100644 index 000000000..be419291d --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ec7a67c68bdb06918f0dd05d0fd5ed7c46ad3fc3600a65ec5278d569f6588bb +size 2269 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json new file mode 100644 index 000000000..dde417aec --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af6bbdedbcceb93c1f384fb00d18d506365709299ba6dfb149c6d638d659c982 +size 2234 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json new file mode 100644 index 000000000..5072474af --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df24fdcda9a63909d62b78cbf9cf84882240ba25e3654970311baf3d6a89e6b9 +size 2235 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json new file mode 100644 index 000000000..948b19e5d --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1/isb1_sess_cache_xlc2_hot_cold_session_mix_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f3158216c0d1572c28d1a003eebd889bbb0c56c0d4c29769ae983bfe37b83ea +size 2235 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json new file mode 100644 index 000000000..fdea31cc4 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1ef4a8272516a3adca7280055169382737ad70e3653201f92dfc892c91f92f5 +size 587823 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json new file mode 100644 index 000000000..e83480d06 --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0001.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bbd11d756040feaf746e7835569ea62665c4eba011dc4e3db81c1c125672666 +size 587822 diff --git a/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json new file mode 100644 index 000000000..dd2f2ac3a --- /dev/null +++ b/datasets/isb1/converted/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1/isb1_hb_depth_cache_xlc2_hot_cold_session_mix_01_0002.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4580b229e9622a0f50e1c4b9280d4bcfd9a1481fa57b8ffd154e9c35401d4ed0 +size 587823 diff --git a/datasets/isb1/exports/core/chat_8k1k.json b/datasets/isb1/exports/core/chat_8k1k.json new file mode 100644 index 000000000..c3c2e1124 --- /dev/null +++ b/datasets/isb1/exports/core/chat_8k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08070a63d22aa247e38475fdd7e206ea41bab731f2499f0d32210b317933b075 +size 3615534 diff --git a/datasets/isb1/exports/core/chat_8k1k_qwen3.5.json b/datasets/isb1/exports/core/chat_8k1k_qwen3.5.json new file mode 100644 index 000000000..243cea119 --- /dev/null +++ b/datasets/isb1/exports/core/chat_8k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04d60ff42c01d6bf117a6bddac7eae99cef2d052235101fa540fd3a7eb6466de +size 136407 diff --git a/datasets/isb1/exports/core/code_8k1k.json b/datasets/isb1/exports/core/code_8k1k.json new file mode 100644 index 000000000..1c1dd2461 --- /dev/null +++ b/datasets/isb1/exports/core/code_8k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c746a650eb624d9d40ee19aad4a9d126b4e60602f13793c09a6a8cfde81d6ee +size 2605444 diff --git a/datasets/isb1/exports/core/code_8k1k_qwen3.5.json b/datasets/isb1/exports/core/code_8k1k_qwen3.5.json new file mode 100644 index 000000000..52957e59e --- /dev/null +++ b/datasets/isb1/exports/core/code_8k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e4fc73e3ff51469ad736fda8e15df09a14bd2d430d8a9a1600ae2ca1cd13075 +size 138620 diff --git a/datasets/isb1/exports/extension_131k/chat_131k1k.json b/datasets/isb1/exports/extension_131k/chat_131k1k.json new file mode 100644 index 000000000..daefd2dad --- /dev/null +++ b/datasets/isb1/exports/extension_131k/chat_131k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eab224b3f15a3118204a912a3e53f3081c96ac2be1f4861b4dda5593580b2da1 +size 1231308 diff --git a/datasets/isb1/exports/extension_131k/chat_131k1k_dsr1.json b/datasets/isb1/exports/extension_131k/chat_131k1k_dsr1.json new file mode 100644 index 000000000..e1ce42508 --- /dev/null +++ b/datasets/isb1/exports/extension_131k/chat_131k1k_dsr1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea824f39557d4bc7cc5a3e09c61815ebd32b2a7c3e78046c62c4d9da340f92d2 +size 312933 diff --git a/datasets/isb1/exports/extension_131k/chat_131k1k_qwen3.5.json b/datasets/isb1/exports/extension_131k/chat_131k1k_qwen3.5.json new file mode 100644 index 000000000..c25a74094 --- /dev/null +++ b/datasets/isb1/exports/extension_131k/chat_131k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20550fdc8fbb1aeaa9cf2b4fdb7807f4e8abcac5b2f871de573ea061f88e8dc5 +size 312996 diff --git a/datasets/isb1/exports/extension_131k/code_131k1k.json b/datasets/isb1/exports/extension_131k/code_131k1k.json new file mode 100644 index 000000000..99915e4cd --- /dev/null +++ b/datasets/isb1/exports/extension_131k/code_131k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66df69260749a22f4af2d2d25a6dce23b3b466533f75338da599db87ace6e833 +size 5461532 diff --git a/datasets/isb1/exports/extension_131k/code_131k1k_qwen3.5.json b/datasets/isb1/exports/extension_131k/code_131k1k_qwen3.5.json new file mode 100644 index 000000000..0b041fb66 --- /dev/null +++ b/datasets/isb1/exports/extension_131k/code_131k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcd048663de0e325e601cdc44b0683a2dfbeecd53fe277937131250e1a86b3e4 +size 5027435 diff --git a/datasets/isb1/exports/extension_32k/chat_32k1k.json b/datasets/isb1/exports/extension_32k/chat_32k1k.json new file mode 100644 index 000000000..7378882af --- /dev/null +++ b/datasets/isb1/exports/extension_32k/chat_32k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606a6174834ddac7704bd199995d1b3f7c1d34b39ad4a904b80b09a22b1b04dc +size 1390574 diff --git a/datasets/isb1/exports/extension_32k/chat_32k1k_qwen3.5.json b/datasets/isb1/exports/extension_32k/chat_32k1k_qwen3.5.json new file mode 100644 index 000000000..8fd721f45 --- /dev/null +++ b/datasets/isb1/exports/extension_32k/chat_32k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a44061cd4fac9b02347afcd4cbbfc4e5152020f23d6eccfccf548e198b4b7c70 +size 351049 diff --git a/datasets/isb1/exports/extension_32k/code_32k1k.json b/datasets/isb1/exports/extension_32k/code_32k1k.json new file mode 100644 index 000000000..5a09c88f5 --- /dev/null +++ b/datasets/isb1/exports/extension_32k/code_32k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49442fa6a1ec7114c26da5aa61ec7b7dfc6662f5e636edd95e5a019ae47ca2be +size 1337748 diff --git a/datasets/isb1/exports/extension_32k/code_32k1k_qwen3.5.json b/datasets/isb1/exports/extension_32k/code_32k1k_qwen3.5.json new file mode 100644 index 000000000..a110e6c14 --- /dev/null +++ b/datasets/isb1/exports/extension_32k/code_32k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f74b077263ea89567e9a09cfcecc5ea90040891170d4d65636156f9349733aa +size 337547 diff --git a/datasets/isb1/exports/extension_64k/chat_64k1k.json b/datasets/isb1/exports/extension_64k/chat_64k1k.json new file mode 100644 index 000000000..709a833b2 --- /dev/null +++ b/datasets/isb1/exports/extension_64k/chat_64k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0e7fa8895d4774cf36d9d78d9f02a35282f420598e7b373c5378330ea663b05 +size 2473612 diff --git a/datasets/isb1/exports/extension_64k/chat_64k1k_qwen3.5.json b/datasets/isb1/exports/extension_64k/chat_64k1k_qwen3.5.json new file mode 100644 index 000000000..79ad2cb87 --- /dev/null +++ b/datasets/isb1/exports/extension_64k/chat_64k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0533834348310306dc9e56ad4d54671a7615c9d7852fa677320bad51ee2ceaa6 +size 621810 diff --git a/datasets/isb1/exports/extension_64k/code_64k1k.json b/datasets/isb1/exports/extension_64k/code_64k1k.json new file mode 100644 index 000000000..bb1ca8974 --- /dev/null +++ b/datasets/isb1/exports/extension_64k/code_64k1k.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1804919d069fb037802c0d97605fb8bc6b12050f242f9ca00fc7aa7f372db81b +size 788105 diff --git a/datasets/isb1/exports/extension_64k/code_64k1k_qwen3.5.json b/datasets/isb1/exports/extension_64k/code_64k1k_qwen3.5.json new file mode 100644 index 000000000..73beb4b57 --- /dev/null +++ b/datasets/isb1/exports/extension_64k/code_64k1k_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9513a2d11519546a701d6b2889cbf18b01f5ba36abc3b6f8fb34669566e6c311 +size 200074 diff --git a/datasets/isb1/exports/preview/long_context_1m/README.md b/datasets/isb1/exports/preview/long_context_1m/README.md new file mode 100644 index 000000000..952fa11d2 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_1m/README.md @@ -0,0 +1,33 @@ +# Gated 1M-class Qwen3.5 preview lane + +This directory carries the committed InferenceX-side Qwen3.5 artifacts for a +bounded `1M`-class ISB1 coding replay preview. + +## What these files are + +- dedicated replay bundles restricted to `qwen3_5_397b_a17b` +- producer cells currently materialized for `standalone:sglang` only; additional runtimes land here when the producer regenerates the bundle +- committed bundle coverage for `nvidia:b200_sxm_180gb`, `nvidia:h100_sxm_80gb`, and `nvidia:h200_sxm_141gb` +- restricted to `ulc2_1m_plus` +- restricted to `support_status=reviewed_preview` at the selected export-cell level +- restricted to `benchmark_certification_status=dataset_replay_verified` +- exposed downstream only through the separate manual config + `.github/configs/isb1-qwen-1m-preview.yaml` +- explicit `max-model-len: 1048576` when the manual config is used + +## Current claim boundary + +These files are committed preview artifacts plus a gated/manual validation path. +They do **not** imply ordinary runnable ISB1 support in `isb1-master.yaml`. + +Safe wording: +- InferenceX carries bounded 1M-class Qwen3.5 replay preview artifacts. +- InferenceX carries a separate gated/manual Qwen3.5 1M validation path. + +Unsafe wording: +- native 1M served-lane support +- ordinary/general runnable consumer support +- KV-offload certification + +See `manifest.json` for the exact preview boundary and +`.github/configs/isb1-qwen-1m-preview.yaml` for the manual validation surface. diff --git a/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1.json b/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1.json new file mode 100644 index 000000000..a37edd86a --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__chat_qwen3.5_ulc2_1m_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd16cc4de821cf4803d662e4c5091359b7a5b2b730d03c976eb331be0cd6b1cb +size 286074 diff --git a/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1.json b/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1.json new file mode 100644 index 000000000..5fd23f78c --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_1m/inferencex_trace_replay__coding_qwen3.5_ulc2_1m_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35572a38f071d240519f7fdbd60aa203eb4832d835df97a8a5ef874d5d402456 +size 122465512 diff --git a/datasets/isb1/exports/preview/long_context_1m/manifest.json b/datasets/isb1/exports/preview/long_context_1m/manifest.json new file mode 100644 index 000000000..f75682fa0 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_1m/manifest.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:420964735f3182aed1147969a21532ea2c7e2c1b8b89c725c0d39e1358dd7975 +size 1749 diff --git a/datasets/isb1/exports/preview/long_context_500k/README.md b/datasets/isb1/exports/preview/long_context_500k/README.md new file mode 100644 index 000000000..206708952 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/README.md @@ -0,0 +1,46 @@ +# Bounded 500k-class preview lanes + +This directory carries the smallest honest InferenceX consumer handoff for bounded +`500k`-class ISB1 coding replay paths. + +## What these files are + +- dedicated replay bundles derived from committed `131k1k` extension exports +- restricted to `gpt_oss_120b` or `qwen3_5_397b_a17b` +- restricted to `xlc2_384k_512k` +- producer cells currently materialized for `standalone:sglang` only; additional runtimes land here when the producer regenerates the bundle +- restricted to `nvidia:b200_sxm_180gb`, `nvidia:h100_sxm_80gb`, and `nvidia:h200_sxm_141gb` +- restricted to `support_status=reviewed_preview` +- restricted to `benchmark_certification_status=dataset_replay_verified` +- wired in the consumer with explicit `max-model-len: 524288` + +## What these files are not + +- not a native InferenceX `500k+` served lane +- not a native InferenceX `1M+` served lane +- not a supported-tier long-context expansion +- not a chat preview lane +- not an offload-depth lane +- not a KV-offload certification claim + +## Why the files exist + +The existing `extension_131k/*/code_131k1k.json` and model-scoped +`code_131k1k_qwen3.5.json` bundles already contain honest `xlc2_384k_512k` +replay cells, but they are mixed with lower-band cells. The InferenceX workflow +selects rows by runtime, hardware, model, and support tier — not by +`context_band`. + +These dedicated files isolate only the `xlc2_384k_512k` rows so InferenceX can +run bounded `500k`-class previews without over-selecting lower-band cells. + +## Consumer contract + +- consumed only through the coding `500k` preview stanzas in `isb1-master.yaml` +- `isb1-master.yaml` pins these rows as `reviewed_preview` +- `isb1-master.yaml` pins `max-model-len: 524288` +- current search space is intentionally bounded to single-concurrency preview execution +- result processing preserves `context_bands`, `profile_id`, and the producer handoff claim boundary + +See `manifest.json` for the GPT-OSS derivation record and `manifest_qwen3.5.json` +for the Qwen derivation record. diff --git a/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1.json b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1.json new file mode 100644 index 000000000..ed88496d8 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_gptoss_xlc2_500k_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e200fb08b06dffc83189c393c0711e090cf8f579c719e69512e2fcfb3933e33 +size 153848 diff --git a/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1.json b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1.json new file mode 100644 index 000000000..37f8e26a2 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__chat_qwen3.5_xlc2_500k_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aa883fbca2ea93ec4d3cb748265a1c66e98554c658d8a0e51ed877a95e7faf1 +size 150709 diff --git a/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1.json b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1.json new file mode 100644 index 000000000..f996cc838 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_gptoss_xlc2_500k_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5102d06da0cf4adfc640f1206cb26812369150d888165813012fe85183fec35 +size 157679 diff --git a/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1.json b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1.json new file mode 100644 index 000000000..00046987f --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/inferencex_trace_replay__coding_qwen3.5_xlc2_500k_preview_v1.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18faa3c3271f2f1acf3892379d3e1d13f1e0e6e1bbefdf00e5e7c5cb54bb3c72 +size 32685533 diff --git a/datasets/isb1/exports/preview/long_context_500k/manifest.json b/datasets/isb1/exports/preview/long_context_500k/manifest.json new file mode 100644 index 000000000..3748315e9 --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/manifest.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1edb16904b7501b726c10a21bccd363d245467e08c91843a841eaf8791082c67 +size 1636 diff --git a/datasets/isb1/exports/preview/long_context_500k/manifest_qwen3.5.json b/datasets/isb1/exports/preview/long_context_500k/manifest_qwen3.5.json new file mode 100644 index 000000000..b051057ef --- /dev/null +++ b/datasets/isb1/exports/preview/long_context_500k/manifest_qwen3.5.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34ae432fa1b8aa73c6109cddbf036b7ffb32d6528d296f65da70538bd9e00747 +size 1594 diff --git a/datasets/isb1/hf_dataset_card.md b/datasets/isb1/hf_dataset_card.md new file mode 100644 index 000000000..0815b03a9 --- /dev/null +++ b/datasets/isb1/hf_dataset_card.md @@ -0,0 +1,144 @@ +--- +pretty_name: ISB-1 KV-Cache-Tester Traces +tags: + - kv-cache + - inference-benchmarking + - vllm + - long-context + - multi-turn +license: apache-2.0 +task_categories: + - text-generation +size_categories: + - 1M--` with no harness changes. + +Current corpus summary: + +- 179 validated trace JSON files +- 1,226 total requests across the corpus +- ~9.26 MiB on disk including `manifest.json` +- Context bands spanning 8k, 32k, 64k, 131k, 500k preview, and 1m preview +- Model coverage including DeepSeek-R1-0528, GPT-OSS-120B, GLM-5, + MiniMax-M2.5, and Qwen3.5-397B-A17B variants present in the source corpus + +Preferred dataset name: + +- `semianalysisai/isb1-cc-traces` + +Fallback if SemiAnalysisAI org write access is unavailable: + +- `ocwc22/isb1-cc-traces` + +The intended consumer is Cam's existing kv-cache-tester replay flow, which +already accepts `hf_--` as a `TRACE_DIR` source and hydrates the +remote dataset locally before replay. + +## Schema + +Each JSON file is one replayable trace object with the following top-level +fields: + +| Field | Type | Notes | +| --- | --- | --- | +| `id` | `str` | Stable trace/session identifier | +| `models` | `list[str]` | Model family identifiers for the trace | +| `block_size` | `int` | Hash-block size used for `hash_ids`; current corpus uses `64` | +| `hash_id_scope` | `str` | `local` or `global`; validated by the stdlib checker | +| `requests` | `list[object]` | Ordered replay requests | +| `tool_tokens` | `int` | Optional token accounting | +| `system_tokens` | `int` | Optional token accounting | +| `totals` / `isb1` | `object` | Source metadata carried through from conversion | + +Each request entry includes the fields kv-cache-tester expects today: + +- `type` +- `t` +- `in` +- `out` +- `hash_ids` +- optional `model`, `stop`, `input_types`, `output_types`, `api_time`, + `think_time` + +Before publishing or consuming the corpus, validate it with the bundled +stdlib-only checker: + +```bash +python3 tools/validate_kvcache_tester_trace.py datasets/isb1/converted/ +``` + +Exit codes: + +- `0` = all trace files valid +- `1` = one or more trace files failed validation +- `2` = usage or path error + +## How to use + +For zero-friction consumption through the existing replay wrapper, point +`TRACE_DIR` at the HF dataset name in `hf_--` form: + +```bash +TRACE_DIR=hf_semianalysisai--isb1-cc-traces \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +That is the whole integration contract: the wrapper handles the HF download and +passes the hydrated local mirror into the replay runner. If the preferred org +is unavailable, the fallback form is identical: + +```bash +TRACE_DIR=hf_ocwc22--isb1-cc-traces \ +bash experimental/multiturn/benchmarks/single_node/multiturn_fp8_h200_trace_replay.sh +``` + +For local inspection after download, the dataset also includes: + +- `manifest.json` — corpus summary and per-trace metadata +- the original directory layout under `core/`, `extension_32k/`, + `extension_64k/`, `extension_131k/`, and `preview/` + +## License + +This corpus follows the repository license in `SemiAnalysisAI/InferenceX`, +which is Apache-2.0. + +## Citation + +If you use this corpus in a benchmark, report, or derivative evaluation, cite +both the InferenceX repository and the dataset name/revision that you consumed. +A lightweight citation template is below. + +```bibtex +@misc{isb1_kvcache_tester_traces_2026, + title = {ISB-1 KV-Cache-Tester Traces}, + author = {SemiAnalysisAI}, + year = {2026}, + howpublished = {Hugging Face dataset repository}, + note = {Preferred repo: semianalysisai/isb1-cc-traces; fallback: ocwc22/isb1-cc-traces} +} +``` diff --git a/tools/isb1_to_kvcache_tester.py b/tools/isb1_to_kvcache_tester.py new file mode 100644 index 000000000..b454e04b6 --- /dev/null +++ b/tools/isb1_to_kvcache_tester.py @@ -0,0 +1,771 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Convert ISB1 replay bundles into `kv-cache-tester` trace files. + +Produces per-conversation JSON files compatible with +`callanjfox/kv-cache-tester`'s `trace_replay_tester.py --trace-directory` +input format (see upstream ``TraceManager.load_traces`` / ``normalize_trace`` +in that repo). Works on both ISB1 bundle adapters shipped by this PR: + +- ``inferencex_multiturn`` (direct ``session.turns[].messages`` shape) +- ``inferencex_trace_replay`` (``events[].input_messages`` shape, with + optional schema ``0.2.0`` ``prefix_ref`` sidecar hydration) + +This shim is the ONLY glue between SemiAnalysis's trace-replay tester and our +ISB1 bundles. It emits one ``trace_.json`` per conversation/cell and +does not import or execute any benchmark harness. It has no third-party +dependencies: standard library only. + +Schema compatibility +-------------------- + +The ``kv-cache-tester`` input schema (verified against +``trace_replay_tester.py@main``): + + { + "id": "", # str, required + "models": [""], # list[str], optional + "block_size": 64, # int, optional (default 64) + "hash_id_scope": "local", # str, optional + "tool_tokens": 0, # int, optional + "system_tokens": 0, # int, optional + "requests": [ + { + "t": 0.0, # float, arrival offset (s) + "type": "n", # "n" non-streaming | "s" streaming + "model": "", + "in": , # input tokens + "out": , # output tokens + "hash_ids": [1, 2, ..., N], # prefix-reuse block sequence + "input_types": ["text"], + "output_types": ["text"], + "stop": "end_turn", + "think_time": # seconds before request + }, ... + ] + } + +The ``hash_ids`` field is the critical one. ``kv-cache-tester`` computes the +cache hit rate by walking each turn's ``hash_ids`` and counting hits against +the previous turn's set, stopping at the first miss. For multi-turn +conversations where every turn builds on the previous history, the correct +mapping is the monotonically extending prefix ``[1, 2, ..., ceil(in/block)]`` +— earlier blocks are reused across turns and the new user message + assistant +turn extend the prefix. + +Usage +----- + +Single bundle: + + python tools/isb1_to_kvcache_tester.py \ + --export-file datasets/isb1/exports/core/chat_8k1k_qwen3.5.json \ + --output-dir traces_isb1/ + +Whole directory tree (reproduces the ``traces_isb1///`` layout): + + python tools/isb1_to_kvcache_tester.py \ + --export-root datasets/isb1/exports/ \ + --output-dir traces_isb1/ + +Filters (subset by cell, matching the legacy replay-loader semantics): + + python tools/isb1_to_kvcache_tester.py \ + --export-file datasets/isb1/exports/core/chat_8k1k.json \ + --output-dir traces_isb1/core_chat_qwen_h200/ \ + --runtime-stack-id standalone:vllm \ + --hardware-profile-id nvidia:h200_sxm_141gb \ + --canonical-model-id qwen3_5_397b_a17b + +Smoke run against Cam's tester (after a vLLM OpenAI server is up on :8888): + + python /path/to/kv-cache-tester/trace_replay_tester.py \ + --api-endpoint http://127.0.0.1:8888 \ + --trace-directory traces_isb1/core_chat_qwen_h200/ \ + --output-dir /tmp/isb1_result/ \ + --start-users 2 --max-users 2 --test-duration 60 + +The shim is deterministic: same input bundle, same filters, same block_size +produces byte-identical output trace files. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import math +import sys +from pathlib import Path +from typing import Any, Iterable, Optional + +# ----------------------------------------------------------------------------- +# Constants +# ----------------------------------------------------------------------------- + +SUPPORTED_ADAPTERS = ("inferencex_multiturn", "inferencex_trace_replay") +DEFAULT_BLOCK_SIZE = 64 # matches kv-cache-tester default +DEFAULT_IMAGE_TOKENS = 512 # matches DEFAULT_IMAGE_TOKEN_ESTIMATE in our exporter +FALLBACK_OUTPUT_TOKENS = 256 # used only if the bundle has no expected_output_tokens + + +# ----------------------------------------------------------------------------- +# Token counting (stdlib-only, matches the legacy replay-harness fallback token count) +# ----------------------------------------------------------------------------- + +def _fallback_text_token_count(text: str) -> int: + """Approximate token count (≈ 4 chars / token). + + This matches the fallback path in the legacy replay harness + and mirrors Cam's tester, which does its own tokenization at replay time + from synthetic content. The only thing this shim must emit accurately is + the *block count* (``ceil(in_tokens / block_size)``); a ~10-20% error in + the absolute token count still produces the correct prefix-reuse pattern + because block IDs are assigned in order. + """ + stripped = (text or "").strip() + if not stripped: + return 0 + return max(1, math.ceil(len(stripped) / 4)) + + +# ----------------------------------------------------------------------------- +# Message flattening (mirrors the legacy replay-harness message extraction) +# ----------------------------------------------------------------------------- + +def _render_block_as_text(block: dict[str, Any]) -> str: + block_type = str(block.get("type", "text")) + text = (block.get("text") or "").strip() + if block_type == "text": + return text + if block_type == "code": + return f"[CODE]\n{text}" if text else "[CODE]" + if block_type == "log": + return f"[LOG]\n{text}" if text else "[LOG]" + if block_type == "document": + label = block.get("asset_path") or block.get("uri") or "" + if text and label: + return f"[DOCUMENT: {label}]\n{text}" + if text: + return f"[DOCUMENT]\n{text}" + return f"[DOCUMENT: {label}]" if label else "[DOCUMENT]" + if block_type == "table": + return f"[TABLE]\n{text}" if text else "[TABLE]" + if block_type == "image": + # images are approximated as fixed-cost tokens; no text to render + return "" + return text or "" + + +def _extract_message_text(message: dict[str, Any]) -> str: + if isinstance(message.get("content"), str): + return message["content"] + blocks = message.get("content_blocks") or [] + parts = [_render_block_as_text(b) for b in blocks if isinstance(b, dict)] + return "\n\n".join(p for p in parts if p) + + +def _count_image_tokens(message: dict[str, Any], image_token_estimate: int) -> int: + blocks = message.get("content_blocks") or [] + return sum( + image_token_estimate + for b in blocks + if isinstance(b, dict) and str(b.get("type")) == "image" + ) + + +def _count_message_tokens(message: dict[str, Any], image_token_estimate: int) -> int: + text_tokens = _fallback_text_token_count(_extract_message_text(message)) + return text_tokens + _count_image_tokens(message, image_token_estimate) + + +def _count_turn_input_tokens( + messages: list[dict[str, Any]], + image_token_estimate: int, +) -> int: + return sum(_count_message_tokens(m, image_token_estimate) for m in messages) + + +# ----------------------------------------------------------------------------- +# Prefix sidecar hydration (schema 0.2.0 inferencex_trace_replay bundles) +# ----------------------------------------------------------------------------- + +def _schema_version_at_least(observed: Any, required: str) -> bool: + if not isinstance(observed, str): + return False + try: + obs = tuple(int(x) for x in observed.split(".")) + req = tuple(int(x) for x in required.split(".")) + except ValueError: + return False + return obs >= req + + +def _load_prefix_artifact( + bundle_path: Path, + prefix_ref: str, + prefix_entry: dict[str, Any], +) -> dict[str, Any]: + rel_path = prefix_entry.get("path") + if not isinstance(rel_path, str) or not rel_path: + raise ValueError( + f"prefix_index[{prefix_ref!r}] missing 'path' in {bundle_path}" + ) + artifact_path = (bundle_path.parent / rel_path).resolve() + if not artifact_path.exists(): + raise FileNotFoundError( + f"prefix artifact not found: {artifact_path} (ref={prefix_ref!r})" + ) + raw = artifact_path.read_bytes() + + expected_sha = prefix_entry.get("sha256") + if isinstance(expected_sha, str) and expected_sha: + actual_sha = hashlib.sha256(raw).hexdigest() + if actual_sha.lower() != expected_sha.lower(): + raise ValueError( + "prefix artifact sha256 mismatch for " + f"{prefix_ref!r}: expected {expected_sha}, got {actual_sha}" + ) + + try: + return json.loads(raw.decode("utf-8")) + except Exception as exc: + raise ValueError( + f"prefix artifact {artifact_path} is not valid JSON: {exc}" + ) from exc + + +def _merge_prefix_into_cell(cell: dict[str, Any], prefix_payload: dict[str, Any]) -> None: + # Schema 0.2.0 bundles store events in the prefix artifact; merge back in-place. + # (Mirrors the legacy replay-harness prefix merge behavior.) + prefix_events = prefix_payload.get("events") or [] + cell.setdefault("events", []).extend(prefix_events) + # Also merge trace_metadata if the prefix carries extras; preserve cell priority. + p_meta = prefix_payload.get("trace_metadata") or {} + if isinstance(p_meta, dict) and p_meta: + merged = dict(p_meta) + merged.update(cell.get("trace_metadata") or {}) + cell["trace_metadata"] = merged + + +def _hydrate_trace_replay_payload(payload: dict[str, Any], bundle_path: Path) -> None: + if not _schema_version_at_least(payload.get("schema_version"), "0.2.0"): + return + export_cells = list(payload.get("exports", [])) + if not export_cells: + return + + has_prefix_ref = any(cell.get("prefix_ref") for cell in export_cells) + has_embedded_events = any("events" in cell for cell in export_cells) + if has_prefix_ref and has_embedded_events: + raise ValueError( + "mixed legacy/prefix-aware trace replay bundle unsupported in " + f"{bundle_path}; rows cannot mix embedded events with prefix_ref" + ) + if not has_prefix_ref: + return + + missing_prefix_ref = [c for c in export_cells if not c.get("prefix_ref")] + if missing_prefix_ref: + raise ValueError( + f"prefix-aware trace replay bundle missing prefix_ref in {bundle_path}" + ) + + raw_prefix_index = payload.get("prefix_index") + prefix_index = raw_prefix_index if isinstance(raw_prefix_index, dict) else {} + prefix_payloads: dict[str, dict[str, Any]] = {} + for prefix_ref in {str(cell["prefix_ref"]) for cell in export_cells}: + entry = prefix_index.get(prefix_ref) + if not isinstance(entry, dict): + raise ValueError(f"unknown prefix_ref {prefix_ref!r} in {bundle_path}") + prefix_payloads[prefix_ref] = _load_prefix_artifact( + bundle_path, prefix_ref, entry + ) + + for cell in export_cells: + _merge_prefix_into_cell(cell, prefix_payloads[str(cell["prefix_ref"])]) + + +# ----------------------------------------------------------------------------- +# ISB1 → kv-cache-tester per-turn mapping +# ----------------------------------------------------------------------------- + +def _hash_id_sequence(input_tokens: int, block_size: int) -> list[int]: + """Emit the canonical prefix-extending hash_id sequence. + + Each turn's ``hash_ids`` is ``[1, 2, ..., ceil(in/block_size)]``. Since + multi-turn conversations are strictly-extending prefixes (turn N+1 input + is turn N input + assistant response + new user message), the earlier + block IDs appear in every subsequent turn; ``kv-cache-tester``'s + hit-rate walker sees them as cache hits. + """ + if input_tokens <= 0: + return [] + n_blocks = max(1, math.ceil(input_tokens / block_size)) + return list(range(1, n_blocks + 1)) + + +def _build_request_from_turn( + *, + turn_idx: int, + messages: list[dict[str, Any]], + expected_output_tokens: Optional[int], + wait_before_ms: int, + prior_offset_ms: int, + canonical_model_id: str, + image_token_estimate: int, + block_size: int, + fallback_output_tokens: int, +) -> tuple[dict[str, Any], int]: + input_tokens = _count_turn_input_tokens(messages, image_token_estimate) + out_tokens = int(expected_output_tokens) if expected_output_tokens else fallback_output_tokens + out_tokens = max(1, out_tokens) + + arrival_ms = prior_offset_ms + max(0, int(wait_before_ms)) + think_time_s = max(0.0, arrival_ms / 1000.0 if turn_idx == 0 else (arrival_ms - prior_offset_ms) / 1000.0) + + request = { + "t": round(arrival_ms / 1000.0, 3), + "type": "n", + "model": canonical_model_id, + "in": input_tokens, + "out": out_tokens, + "hash_ids": _hash_id_sequence(input_tokens, block_size), + "input_types": ["text"], + "output_types": ["text"], + "stop": "end_turn", + "think_time": round(think_time_s, 3), + } + return request, arrival_ms + + +def _iter_cells_from_multiturn(payload: dict[str, Any]) -> Iterable[dict[str, Any]]: + for cell in payload.get("exports") or []: + if not isinstance(cell, dict): + continue + yield cell + + +def _iter_cells_from_trace_replay(payload: dict[str, Any]) -> Iterable[dict[str, Any]]: + for cell in payload.get("exports") or []: + if not isinstance(cell, dict): + continue + yield cell + + +def _conversation_id(cell: dict[str, Any], adapter_id: str, fallback_idx: int) -> str: + if adapter_id == "inferencex_multiturn": + session = cell.get("session") or {} + cid = session.get("session_id") or cell.get("trace_id") + else: + meta = cell.get("trace_metadata") or {} + cid = meta.get("session_id") or cell.get("trace_id") + if not cid: + cid = f"cell_{fallback_idx:04d}" + return str(cid) + + +def _cell_turns_multiturn(cell: dict[str, Any]) -> list[dict[str, Any]]: + session = cell.get("session") or {} + out = [] + for turn in session.get("turns") or []: + if not isinstance(turn, dict): + continue + out.append({ + "messages": list(turn.get("messages") or []), + "expected_output_tokens": turn.get("expected_output_tokens"), + "wait_before_ms": int(turn.get("wait_before_ms") or 0), + }) + return out + + +def _cell_turns_trace_replay(cell: dict[str, Any]) -> list[dict[str, Any]]: + out = [] + prior_ms = 0 + for event in cell.get("events") or []: + if not isinstance(event, dict): + continue + offset_ms = int(event.get("arrival_time_offset_ms") or 0) + wait_ms = 0 if not out else max(0, offset_ms - prior_ms) + prior_ms = offset_ms + out.append({ + "messages": list(event.get("input_messages") or []), + "expected_output_tokens": event.get("target_output_tokens"), + "wait_before_ms": wait_ms, + }) + return out + + +def _build_trace( + *, + cell: dict[str, Any], + adapter_id: str, + fallback_idx: int, + block_size: int, + fallback_output_tokens: int, + image_token_estimate: int, + max_turns_per_conversation: Optional[int], +) -> Optional[dict[str, Any]]: + conversation_id = _conversation_id(cell, adapter_id, fallback_idx) + canonical_model_id = str(cell.get("canonical_model_id") or "unknown") + + if adapter_id == "inferencex_multiturn": + turns = _cell_turns_multiturn(cell) + else: + turns = _cell_turns_trace_replay(cell) + + if not turns: + return None + + if max_turns_per_conversation is not None: + turns = turns[: max(1, int(max_turns_per_conversation))] + + requests = [] + cumulative_ms = 0 + for turn_idx, turn in enumerate(turns): + request, cumulative_ms = _build_request_from_turn( + turn_idx=turn_idx, + messages=turn["messages"], + expected_output_tokens=turn.get("expected_output_tokens"), + wait_before_ms=turn.get("wait_before_ms", 0), + prior_offset_ms=cumulative_ms, + canonical_model_id=canonical_model_id, + image_token_estimate=image_token_estimate, + block_size=block_size, + fallback_output_tokens=fallback_output_tokens, + ) + requests.append(request) + + total_in = sum(r["in"] for r in requests) + total_out = sum(r["out"] for r in requests) + + return { + "id": conversation_id, + "models": [canonical_model_id], + "block_size": int(block_size), + "hash_id_scope": "local", + "tool_tokens": 0, + "system_tokens": 0, + "requests": requests, + "totals": { + "parent_tokens": {"input": total_in, "output": total_out}, + "subagent_tokens": {"input": 0, "output": 0}, + "combined_tokens": {"input": total_in, "output": total_out}, + "subagent_count": 0, + }, + # ISB1 passthrough tags — kv-cache-tester ignores unknown keys. + "isb1": { + "trace_id": cell.get("trace_id"), + "runtime_stack_id": cell.get("runtime_stack_id"), + "hardware_profile_id": cell.get("hardware_profile_id"), + "canonical_model_id": canonical_model_id, + "support_status": cell.get("support_status"), + "benchmark_certification_status": cell.get( + "benchmark_certification_status" + ), + "context_band": cell.get("context_band"), + "adapter_id": adapter_id, + }, + } + + +# ----------------------------------------------------------------------------- +# Filter logic (subset of the legacy replay session-loader semantics) +# ----------------------------------------------------------------------------- + +def _matches(value: Any, allowed: set[str] | None) -> bool: + if allowed is None: + return True + return str(value or "") in allowed + + +def _csv_set(raw: Optional[str]) -> set[str] | None: + if raw is None: + return None + return {v.strip() for v in raw.split(",") if v.strip()} or None + + +# ----------------------------------------------------------------------------- +# Bundle processing +# ----------------------------------------------------------------------------- + +def _load_bundle(export_file: Path) -> dict[str, Any]: + try: + payload = json.loads(export_file.read_text()) + except Exception as exc: + raise ValueError(f"failed to read ISB1 bundle {export_file}: {exc}") from exc + adapter_id = str(payload.get("adapter_id") or "unknown") + if adapter_id not in SUPPORTED_ADAPTERS: + raise ValueError( + f"unsupported ISB1 adapter {adapter_id!r} in {export_file}. " + f"Expected one of {SUPPORTED_ADAPTERS}. " + "This shim converts ISB1 replay bundles only; " + "raw model traces from other pipelines are out of scope." + ) + if adapter_id == "inferencex_trace_replay": + _hydrate_trace_replay_payload(payload, export_file) + return payload + + +def _convert_bundle( + *, + export_file: Path, + output_dir: Path, + runtime_stack_ids: set[str] | None, + hardware_profile_ids: set[str] | None, + canonical_model_ids: set[str] | None, + trace_ids: set[str] | None, + support_statuses: set[str] | None, + block_size: int, + fallback_output_tokens: int, + image_token_estimate: int, + max_conversations: Optional[int], + max_turns_per_conversation: Optional[int], + trace_prefix: str, +) -> tuple[int, int]: + """Returns (written_count, skipped_count).""" + payload = _load_bundle(export_file) + adapter_id = str(payload["adapter_id"]) + + iterator = ( + _iter_cells_from_multiturn(payload) + if adapter_id == "inferencex_multiturn" + else _iter_cells_from_trace_replay(payload) + ) + + output_dir.mkdir(parents=True, exist_ok=True) + + written = 0 + skipped = 0 + emitted_ids: set[str] = set() + for idx, cell in enumerate(iterator): + if not _matches(cell.get("runtime_stack_id"), runtime_stack_ids): + skipped += 1 + continue + if not _matches(cell.get("hardware_profile_id"), hardware_profile_ids): + skipped += 1 + continue + if not _matches(cell.get("canonical_model_id"), canonical_model_ids): + skipped += 1 + continue + if not _matches(cell.get("trace_id"), trace_ids): + skipped += 1 + continue + if not _matches(cell.get("support_status"), support_statuses): + skipped += 1 + continue + + trace = _build_trace( + cell=cell, + adapter_id=adapter_id, + fallback_idx=idx, + block_size=block_size, + fallback_output_tokens=fallback_output_tokens, + image_token_estimate=image_token_estimate, + max_turns_per_conversation=max_turns_per_conversation, + ) + if trace is None: + skipped += 1 + continue + + # Make the filename unique per cell, stable across runs. + base_id = str(trace["id"]) + safe_id = "".join(c if c.isalnum() or c in "-_." else "_" for c in base_id) + if safe_id in emitted_ids: + safe_id = f"{safe_id}_{idx:04d}" + emitted_ids.add(safe_id) + + fname = f"{trace_prefix}{safe_id}.json" + out_path = output_dir / fname + out_path.write_text(json.dumps(trace, indent=2, sort_keys=False)) + written += 1 + + if max_conversations is not None and written >= int(max_conversations): + break + + return written, skipped + + +def _iter_export_files(root: Path) -> Iterable[Path]: + for path in sorted(root.rglob("*.json")): + # Skip manifests/READMEs (anything that isn't an adapter bundle). + if path.name in ("manifest.json", "manifest_qwen3.5.json"): + continue + if "/prefixes/" in path.as_posix(): + continue + try: + with path.open() as fh: + first_chunk = fh.read(4096) + except Exception: + continue + if '"adapter_id"' not in first_chunk: + continue + yield path + + +# ----------------------------------------------------------------------------- +# CLI +# ----------------------------------------------------------------------------- + +def _parse_args(argv: list[str]) -> argparse.Namespace: + parser = argparse.ArgumentParser( + prog="isb1_to_kvcache_tester", + description=( + "Convert ISB1 replay bundles into kv-cache-tester-compatible " + "per-conversation JSON files." + ), + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + src = parser.add_mutually_exclusive_group(required=True) + src.add_argument( + "--export-file", + type=Path, + help="Single ISB1 bundle JSON (e.g. datasets/isb1/exports/core/chat_8k1k.json).", + ) + src.add_argument( + "--export-root", + type=Path, + help=( + "Directory tree under which every adapter bundle is converted " + "(e.g. datasets/isb1/exports/). Mirrors subpaths under --output-dir." + ), + ) + + parser.add_argument( + "--output-dir", + type=Path, + required=True, + help="Destination directory for trace_*.json files.", + ) + parser.add_argument( + "--trace-prefix", + type=str, + default="isb1_", + help="Filename prefix for emitted trace files (default: 'isb1_').", + ) + parser.add_argument( + "--block-size", + type=int, + default=DEFAULT_BLOCK_SIZE, + help=( + f"Hash block size in tokens (default: {DEFAULT_BLOCK_SIZE}, " + "matches kv-cache-tester default)." + ), + ) + parser.add_argument( + "--image-token-estimate", + type=int, + default=DEFAULT_IMAGE_TOKENS, + help=f"Tokens per image block (default: {DEFAULT_IMAGE_TOKENS}).", + ) + parser.add_argument( + "--fallback-output-tokens", + type=int, + default=FALLBACK_OUTPUT_TOKENS, + help=( + f"Output tokens to emit when a turn has no expected_output_tokens " + f"(default: {FALLBACK_OUTPUT_TOKENS})." + ), + ) + + parser.add_argument("--runtime-stack-id", + help="CSV of runtime_stack_ids to include (e.g. standalone:vllm,standalone:sglang).") + parser.add_argument("--hardware-profile-id", + help="CSV of hardware_profile_ids to include.") + parser.add_argument("--canonical-model-id", + help="CSV of canonical_model_ids to include.") + parser.add_argument("--trace-id", + help="CSV of trace_ids to include.") + parser.add_argument("--support-status", + help="CSV of support_status values to include (e.g. supported,reviewed_preview).") + + parser.add_argument("--max-conversations", type=int, default=None, + help="Stop after writing N conversations per bundle.") + parser.add_argument("--max-turns-per-conversation", type=int, default=None, + help="Truncate each conversation after N turns.") + + parser.add_argument("--quiet", action="store_true", help="Suppress per-bundle progress.") + + return parser.parse_args(argv) + + +def main(argv: list[str] | None = None) -> int: + args = _parse_args(argv if argv is not None else sys.argv[1:]) + + if args.block_size <= 0: + print(f"ERROR: --block-size must be positive (got {args.block_size})", file=sys.stderr) + return 2 + + runtime_stack_ids = _csv_set(args.runtime_stack_id) + hardware_profile_ids = _csv_set(args.hardware_profile_id) + canonical_model_ids = _csv_set(args.canonical_model_id) + trace_ids = _csv_set(args.trace_id) + support_statuses = _csv_set(args.support_status) + + bundles: list[tuple[Path, Path]] = [] + if args.export_file: + bundles.append((args.export_file.resolve(), args.output_dir.resolve())) + else: + root = args.export_root.resolve() + if not root.is_dir(): + print(f"ERROR: --export-root not a directory: {root}", file=sys.stderr) + return 2 + for f in _iter_export_files(root): + rel = f.relative_to(root).parent + out = args.output_dir.resolve() / rel / f.stem + bundles.append((f, out)) + + if not bundles: + print("ERROR: no ISB1 bundles found", file=sys.stderr) + return 2 + + total_written = 0 + total_skipped = 0 + errors = 0 + for export_file, output_dir in bundles: + try: + written, skipped = _convert_bundle( + export_file=export_file, + output_dir=output_dir, + runtime_stack_ids=runtime_stack_ids, + hardware_profile_ids=hardware_profile_ids, + canonical_model_ids=canonical_model_ids, + trace_ids=trace_ids, + support_statuses=support_statuses, + block_size=args.block_size, + fallback_output_tokens=args.fallback_output_tokens, + image_token_estimate=args.image_token_estimate, + max_conversations=args.max_conversations, + max_turns_per_conversation=args.max_turns_per_conversation, + trace_prefix=args.trace_prefix, + ) + except (ValueError, FileNotFoundError) as exc: + print(f"ERROR: {export_file}: {exc}", file=sys.stderr) + errors += 1 + continue + + total_written += written + total_skipped += skipped + if not args.quiet: + print( + f"ok {export_file}: wrote {written} trace(s) to {output_dir} " + f"(skipped {skipped} cell(s) by filter)" + ) + + if not args.quiet: + print( + f"\ndone: {total_written} trace file(s) written across " + f"{len(bundles)} bundle(s); {total_skipped} cell(s) skipped; " + f"{errors} bundle(s) errored" + ) + + if total_written == 0: + print("ERROR: no traces written — check --runtime-stack-id / --hardware-profile-id filters", + file=sys.stderr) + return 1 + + return 0 if errors == 0 else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/publish_hf_dataset.py b/tools/publish_hf_dataset.py new file mode 100755 index 000000000..32c316d5f --- /dev/null +++ b/tools/publish_hf_dataset.py @@ -0,0 +1,276 @@ +#!/usr/bin/env python3 +"""Publish the ISB-1 kv-cache-tester corpus to a Hugging Face dataset repo. + +This script stages `datasets/isb1/converted/` together with the checked-in +Hugging Face dataset card (`datasets/isb1/hf_dataset_card.md`) and either: + +- prints a dry-run plan without making network changes, or +- creates/uploads a dataset repository via `huggingface_hub`. + +Examples: + python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo semianalysisai/isb1-cc-traces \ + --private \ + --dry-run + + python3 tools/publish_hf_dataset.py \ + --source datasets/isb1/converted/ \ + --repo semianalysisai/isb1-cc-traces \ + --public \ + --commit-message "Publish ISB-1 kv-cache-tester traces" +""" + +from __future__ import annotations + +import argparse +import json +import shutil +import sys +import tempfile +from collections import Counter +from pathlib import Path +from typing import Iterable + +DEFAULT_SOURCE = Path("datasets/isb1/converted") +DEFAULT_CARD = Path("datasets/isb1/hf_dataset_card.md") +DEFAULT_COMMIT_MESSAGE = "Publish ISB-1 kv-cache-tester traces" + + +def parse_args(argv: list[str] | None = None) -> argparse.Namespace: + parser = argparse.ArgumentParser( + prog="publish_hf_dataset.py", + description=( + "Stage and publish the ISB-1 converted kv-cache-tester corpus to a " + "Hugging Face dataset repository." + ), + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=( + "Example:\n" + " python3 tools/publish_hf_dataset.py --source datasets/isb1/converted/ " + "--repo semianalysisai/isb1-cc-traces --private --dry-run" + ), + ) + parser.add_argument( + "--source", + type=Path, + default=DEFAULT_SOURCE, + help="directory containing converted trace JSON files and manifest.json", + ) + parser.add_argument( + "--repo", + required=True, + help="destination dataset repo in / form", + ) + visibility = parser.add_mutually_exclusive_group() + visibility.add_argument( + "--private", + action="store_true", + help="create/publish as a private dataset repo (default)", + ) + visibility.add_argument( + "--public", + action="store_true", + help="create/publish as a public dataset repo", + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="print the staged upload plan without calling the Hugging Face Hub", + ) + parser.add_argument( + "--commit-message", + default=DEFAULT_COMMIT_MESSAGE, + help=f"commit message for the upload commit (default: {DEFAULT_COMMIT_MESSAGE!r})", + ) + return parser.parse_args(argv) + + +def fail(message: str, exit_code: int = 2) -> int: + print(message, file=sys.stderr) + return exit_code + + +def require_existing_dir(path: Path, label: str) -> Path: + resolved = path.resolve() + if not resolved.exists(): + raise FileNotFoundError(f"{label} not found: {resolved}") + if not resolved.is_dir(): + raise NotADirectoryError(f"{label} must be a directory: {resolved}") + return resolved + + +def require_existing_file(path: Path, label: str) -> Path: + resolved = path.resolve() + if not resolved.exists(): + raise FileNotFoundError(f"{label} not found: {resolved}") + if not resolved.is_file(): + raise FileNotFoundError(f"{label} must be a file: {resolved}") + return resolved + + +def load_manifest(source_dir: Path) -> dict: + manifest_path = source_dir / "manifest.json" + require_existing_file(manifest_path, "manifest") + try: + return json.loads(manifest_path.read_text()) + except json.JSONDecodeError as exc: + raise ValueError(f"invalid manifest JSON: {manifest_path}: {exc}") from exc + + +def infer_dataset_card(source_dir: Path) -> Path: + candidate = source_dir.parent / "hf_dataset_card.md" + return require_existing_file(candidate, "dataset card") + + +def iter_upload_files(stage_dir: Path) -> list[Path]: + return sorted(path for path in stage_dir.rglob("*") if path.is_file()) + + +def human_bytes(num_bytes: int) -> str: + units = ["B", "KiB", "MiB", "GiB", "TiB"] + value = float(num_bytes) + for unit in units: + if value < 1024 or unit == units[-1]: + return f"{value:.2f} {unit}" if unit != "B" else f"{int(value)} B" + value /= 1024 + return f"{num_bytes} B" + + +def summarize_manifest(manifest: dict) -> dict[str, object]: + traces = manifest.get("traces", []) + by_scale = Counter() + for trace in traces: + by_scale[str(trace.get("scale_band", "unknown"))] += 1 + return { + "schema_version": manifest.get("schema_version", "unknown"), + "generated_at": manifest.get("generated_at", "unknown"), + "total_traces": manifest.get("total_traces", len(traces)), + "total_requests": manifest.get("total_requests", "unknown"), + "by_scale_band": dict(sorted(by_scale.items())), + } + + +def print_summary(*, repo: str, private: bool, manifest_summary: dict[str, object], files: Iterable[Path], stage_dir: Path) -> None: + files = list(files) + total_bytes = sum(path.stat().st_size for path in files) + print(f"repo: {repo}") + print(f"visibility: {'private' if private else 'public'}") + print(f"dataset_uri: https://huggingface.co/datasets/{repo}") + print(f"trace_dir_alias: hf_{repo.replace('/', '--')}") + print(f"staged_dir: {stage_dir}") + print("manifest:") + for key, value in manifest_summary.items(): + print(f" {key}: {value}") + print(f"files_to_upload: {len(files)} files | {human_bytes(total_bytes)}") + for file_path in files: + rel = file_path.relative_to(stage_dir) + print(f" - {rel} ({human_bytes(file_path.stat().st_size)})") + + +def stage_upload_tree(source_dir: Path, dataset_card_path: Path, work_dir: Path) -> Path: + stage_dir = work_dir / "hf_dataset_upload" + shutil.copytree(source_dir, stage_dir) + shutil.copy2(dataset_card_path, stage_dir / "README.md") + return stage_dir + + +def load_hf_api() -> tuple[object, object]: + try: + from huggingface_hub import HfApi, snapshot_download + except ImportError as exc: + raise RuntimeError( + "huggingface_hub is required for live publish operations. " + "Install it with `python3 -m pip install huggingface_hub`." + ) from exc + return HfApi, snapshot_download + + +def verify_remote_snapshot(snapshot_download: object, repo: str) -> Path: + verify_root = Path(tempfile.mkdtemp(prefix="isb1-hf-verify-")) + snapshot_path = snapshot_download( + repo_id=repo, + repo_type="dataset", + local_dir=str(verify_root), + local_dir_use_symlinks=False, + ) + return Path(snapshot_path) + + +def main(argv: list[str] | None = None) -> int: + args = parse_args(argv) + + if "/" not in args.repo or args.repo.count("/") != 1: + return fail("--repo must be in / form") + + private = not args.public + + try: + source_dir = require_existing_dir(args.source, "source directory") + manifest = load_manifest(source_dir) + dataset_card_path = infer_dataset_card(source_dir) + except (FileNotFoundError, NotADirectoryError, ValueError) as exc: + return fail(str(exc)) + + with tempfile.TemporaryDirectory(prefix="isb1-hf-stage-") as temp_root: + stage_dir = stage_upload_tree(source_dir, dataset_card_path, Path(temp_root)) + manifest_summary = summarize_manifest(manifest) + upload_files = iter_upload_files(stage_dir) + print_summary( + repo=args.repo, + private=private, + manifest_summary=manifest_summary, + files=upload_files, + stage_dir=stage_dir, + ) + + if args.dry_run: + print("dry_run: true") + print("remote_actions: skipped") + print( + "note: dry-run stages README.md + manifest + trace files without calling " + "create_repo/upload_folder/snapshot_download" + ) + return 0 + + try: + HfApi, snapshot_download = load_hf_api() + from huggingface_hub.errors import RepositoryNotFoundError + except RuntimeError as exc: + return fail(str(exc)) + except ImportError as exc: + return fail(f"huggingface_hub import failed: {exc}") + + api = HfApi() + repo_exists = True + try: + api.repo_info(repo_id=args.repo, repo_type="dataset") + except RepositoryNotFoundError: + repo_exists = False + + if not repo_exists: + api.create_repo( + repo_id=args.repo, + repo_type="dataset", + private=private, + exist_ok=True, + ) + print(f"created_repo: {args.repo}") + else: + print(f"created_repo: skipped (already exists: {args.repo})") + + api.upload_folder( + repo_id=args.repo, + repo_type="dataset", + folder_path=str(stage_dir), + commit_message=args.commit_message, + ) + print(f"uploaded_repo: {args.repo}") + snapshot_path = verify_remote_snapshot(snapshot_download, args.repo) + print(f"verified_snapshot: {snapshot_path}") + print(f"publish_complete: https://huggingface.co/datasets/{args.repo}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/test_isb1_to_kvcache_tester.py b/tools/test_isb1_to_kvcache_tester.py new file mode 100644 index 000000000..35aba515d --- /dev/null +++ b/tools/test_isb1_to_kvcache_tester.py @@ -0,0 +1,412 @@ +# SPDX-License-Identifier: Apache-2.0 +"""Contract tests for ``tools/isb1_to_kvcache_tester.py``. + +These tests lock the bytes-level output schema so ISB1→kv-cache-tester +conversion can't silently drift from what +``callanjfox/kv-cache-tester``'s ``normalize_trace()`` expects. + +We re-implement the minimal ``normalize_trace`` logic inline so tests do not +pull in ``transformers`` / ``numpy`` / ``openai`` just to exercise the +conversion shim. The actual upstream function is +`trace_replay_tester.py::normalize_trace` (see kv-cache-tester repo). +""" + +from __future__ import annotations + +import json +import math +import subprocess +import sys +from pathlib import Path + +import pytest + +REPO_ROOT = Path(__file__).resolve().parents[1] +SHIM = REPO_ROOT / "tools" / "isb1_to_kvcache_tester.py" + + +# --------------------------------------------------------------------------- +# Local mirror of kv-cache-tester::normalize_trace (sans tokenizer deps). +# Keep in sync with upstream manually — these tests flag drift. +# --------------------------------------------------------------------------- + + +def _normalize_request(req: dict, base_time: float = 0.0) -> dict: + return { + "timestamp": base_time + req.get("t", 0.0), + "type": {"s": "streaming", "n": "non_streaming"}.get( + req.get("type", ""), req.get("type", "streaming") + ), + "input_tokens": req.get("in", 0), + "output_tokens": req.get("out", 0), + "hash_ids": req.get("hash_ids", []), + "stop_reason": req.get("stop", ""), + "model": req.get("model", ""), + } + + +def _normalize_trace(trace: dict) -> dict: + raw = trace.get("requests", []) + parent = [r for r in raw if r.get("type") != "subagent"] + requests = [_normalize_request(r) for r in parent] + + total_input = sum(r["input_tokens"] for r in requests) + + cache_hits = 0 + total_blocks = 0 + for i, req in enumerate(requests): + hash_ids = req["hash_ids"] + if i > 0 and hash_ids: + prev = set(requests[i - 1]["hash_ids"]) + for h in hash_ids: + total_blocks += 1 + if h in prev: + cache_hits += 1 + else: + break + elif hash_ids: + total_blocks += len(hash_ids) + + return { + "metadata": { + "conversation_id": trace.get("id", "unknown"), + "models": trace.get("models", []), + "block_size": trace.get("block_size", 64), + "hash_id_scope": trace.get("hash_id_scope", "per_context"), + "tool_tokens": trace.get("tool_tokens", 0), + "system_tokens": trace.get("system_tokens", 0), + "request_count": len(requests), + "total_input_tokens": total_input, + "cache_hit_rate": cache_hits / total_blocks if total_blocks else 0.0, + }, + "requests": requests, + } + + +# --------------------------------------------------------------------------- +# Fixtures +# --------------------------------------------------------------------------- + + +def _multiturn_bundle() -> dict: + """Minimal ``inferencex_multiturn`` fixture — 1 cell, 2 turns.""" + return { + "adapter_id": "inferencex_multiturn", + "schema_version": "0.1.0", + "exports": [ + { + "trace_id": "core_chat_8k1k_001", + "runtime_stack_id": "standalone:vllm", + "hardware_profile_id": "nvidia:h200_sxm_141gb", + "canonical_model_id": "qwen3_5_397b_a17b", + "support_status": "supported", + "benchmark_certification_status": "dataset_replay_verified", + "context_band": "core_8k", + "session": { + "session_id": "sess_001", + "turns": [ + { + "turn_idx": 0, + "messages": [ + {"role": "system", "content": "sys" * 16}, + {"role": "user", "content": "u" * 3200}, + ], + "expected_output_tokens": 128, + "wait_before_ms": 0, + }, + { + "turn_idx": 1, + "messages": [ + {"role": "system", "content": "sys" * 16}, + {"role": "user", "content": "u" * 3200}, + {"role": "assistant", "content": "a" * 400}, + {"role": "user", "content": "f" * 400}, + ], + "expected_output_tokens": 96, + "wait_before_ms": 1500, + }, + ], + }, + } + ], + } + + +def _trace_replay_bundle() -> dict: + """Minimal ``inferencex_trace_replay`` fixture (schema 0.1, no prefix_ref).""" + return { + "adapter_id": "inferencex_trace_replay", + "schema_version": "0.1.0", + "exports": [ + { + "trace_id": "ext_64k_001", + "runtime_stack_id": "standalone:sglang", + "hardware_profile_id": "nvidia:h200_sxm_141gb", + "canonical_model_id": "qwen3_5_397b_a17b", + "support_status": "supported", + "benchmark_certification_status": "dataset_replay_verified", + "context_band": "extension_64k", + "trace_metadata": {"session_id": "sess_tr_001"}, + "events": [ + { + "arrival_time_offset_ms": 0, + "input_messages": [ + {"role": "system", "content": "s" * 64}, + {"role": "user", "content": "x" * 12000}, + ], + "target_output_tokens": 100, + }, + { + "arrival_time_offset_ms": 4000, + "input_messages": [ + {"role": "system", "content": "s" * 64}, + {"role": "user", "content": "x" * 12000}, + {"role": "assistant", "content": "r" * 400}, + {"role": "user", "content": "follow" * 10}, + ], + "target_output_tokens": 150, + }, + ], + } + ], + } + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + + +def _run_shim( + tmp_path: Path, + bundle: dict, + *, + extra_args: list[str] | None = None, +) -> Path: + bundle_path = tmp_path / "bundle.json" + bundle_path.write_text(json.dumps(bundle)) + out_dir = tmp_path / "out" + cmd = [ + sys.executable, + str(SHIM), + "--export-file", + str(bundle_path), + "--output-dir", + str(out_dir), + "--quiet", + ] + if extra_args: + cmd.extend(extra_args) + result = subprocess.run(cmd, capture_output=True, text=True) + assert result.returncode == 0, ( + f"shim failed: stdout={result.stdout!r} stderr={result.stderr!r}" + ) + return out_dir + + +def _load_single_trace(out_dir: Path) -> dict: + files = sorted(out_dir.glob("*.json")) + assert len(files) == 1, f"expected 1 trace file, got {len(files)}: {files}" + return json.loads(files[0].read_text()) + + +# --------------------------------------------------------------------------- +# Contract tests +# --------------------------------------------------------------------------- + + +class TestMultiturnBundle: + def test_top_level_schema(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + + # Cam's tester reads these exact fields (see trace_replay_tester.py::normalize_trace). + assert trace["id"] == "sess_001" + assert trace["models"] == ["qwen3_5_397b_a17b"] + assert trace["block_size"] == 64 + assert trace["hash_id_scope"] == "local" + assert trace["tool_tokens"] == 0 + assert trace["system_tokens"] == 0 + assert isinstance(trace["requests"], list) + assert len(trace["requests"]) == 2 + + def test_per_request_schema(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + + required_keys = {"t", "type", "model", "in", "out", "hash_ids"} + for req in trace["requests"]: + missing = required_keys - req.keys() + assert not missing, f"missing required request keys: {missing}" + assert req["type"] in ("n", "s") + assert isinstance(req["in"], int) and req["in"] > 0 + assert isinstance(req["out"], int) and req["out"] > 0 + assert isinstance(req["hash_ids"], list) and req["hash_ids"] + + def test_hash_ids_are_prefix_extending(self, tmp_path: Path) -> None: + """hash_ids[i+1] must start with hash_ids[i] for cache hit rate > 0.""" + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + reqs = trace["requests"] + + for i in range(1, len(reqs)): + prev_hash_ids = reqs[i - 1]["hash_ids"] + curr_hash_ids = reqs[i]["hash_ids"] + assert len(curr_hash_ids) >= len(prev_hash_ids), ( + f"turn {i} has fewer hash_ids than turn {i-1}" + ) + assert curr_hash_ids[: len(prev_hash_ids)] == prev_hash_ids, ( + f"turn {i} hash_ids do not start with turn {i-1} prefix — " + "this breaks kv-cache-tester's cache-hit walker" + ) + + def test_block_size_mapping(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _multiturn_bundle(), extra_args=["--block-size", "32"]) + trace = _load_single_trace(out) + assert trace["block_size"] == 32 + for req in trace["requests"]: + expected_blocks = max(1, math.ceil(req["in"] / 32)) + assert req["hash_ids"] == list(range(1, expected_blocks + 1)) + + def test_arrival_timing_monotonic(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + times = [r["t"] for r in trace["requests"]] + assert times == sorted(times), "request arrival times must be monotonic" + # second turn wait_before_ms=1500 → t>=1.5 + assert trace["requests"][1]["t"] >= 1.5 + + def test_isb1_passthrough_tags(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + assert "isb1" in trace + tags = trace["isb1"] + assert tags["adapter_id"] == "inferencex_multiturn" + assert tags["runtime_stack_id"] == "standalone:vllm" + assert tags["hardware_profile_id"] == "nvidia:h200_sxm_141gb" + assert tags["canonical_model_id"] == "qwen3_5_397b_a17b" + assert tags["support_status"] == "supported" + assert tags["benchmark_certification_status"] == "dataset_replay_verified" + assert tags["context_band"] == "core_8k" + + def test_normalize_trace_compatibility(self, tmp_path: Path) -> None: + """The emitted trace must round-trip through normalize_trace cleanly.""" + out = _run_shim(tmp_path, _multiturn_bundle()) + trace = _load_single_trace(out) + normalized = _normalize_trace(trace) + + md = normalized["metadata"] + assert md["conversation_id"] == "sess_001" + assert md["request_count"] == 2 + assert md["total_input_tokens"] > 0 + # Two turns, second extends first's prefix → cache hit rate > 0. + assert md["cache_hit_rate"] > 0.0 + + +class TestTraceReplayBundle: + def test_reads_events(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _trace_replay_bundle()) + trace = _load_single_trace(out) + assert trace["id"] == "sess_tr_001" + assert len(trace["requests"]) == 2 + + def test_arrival_offsets(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _trace_replay_bundle()) + trace = _load_single_trace(out) + # second event arrival_time_offset_ms=4000 → t=4.0 + assert trace["requests"][0]["t"] == 0.0 + assert trace["requests"][1]["t"] == 4.0 + + def test_prefix_reuse_dominates(self, tmp_path: Path) -> None: + out = _run_shim(tmp_path, _trace_replay_bundle()) + trace = _load_single_trace(out) + normalized = _normalize_trace(trace) + # 12k-token prefix shared across both events → cache hit rate ≈ 49-50%. + assert 0.4 < normalized["metadata"]["cache_hit_rate"] < 0.6 + + +class TestFilters: + def test_runtime_stack_filter_excludes_non_match(self, tmp_path: Path) -> None: + bundle_path = tmp_path / "bundle.json" + bundle_path.write_text(json.dumps(_multiturn_bundle())) + out_dir = tmp_path / "out" + + # Non-matching runtime filter should exit non-zero with "no traces". + result = subprocess.run( + [ + sys.executable, + str(SHIM), + "--export-file", + str(bundle_path), + "--output-dir", + str(out_dir), + "--runtime-stack-id", + "standalone:trtllm", + "--quiet", + ], + capture_output=True, + text=True, + ) + assert result.returncode != 0 + assert "no traces written" in result.stderr.lower() + + def test_support_status_filter_allows_match(self, tmp_path: Path) -> None: + out = _run_shim( + tmp_path, + _multiturn_bundle(), + extra_args=["--support-status", "supported,reviewed_preview"], + ) + assert sorted(out.glob("*.json")) + + def test_max_turns_truncates(self, tmp_path: Path) -> None: + out = _run_shim( + tmp_path, + _multiturn_bundle(), + extra_args=["--max-turns-per-conversation", "1"], + ) + trace = _load_single_trace(out) + assert len(trace["requests"]) == 1 + + +class TestErrorHandling: + def test_rejects_unknown_adapter(self, tmp_path: Path) -> None: + bundle = {"adapter_id": "something_else", "exports": []} + bundle_path = tmp_path / "bundle.json" + bundle_path.write_text(json.dumps(bundle)) + out_dir = tmp_path / "out" + result = subprocess.run( + [ + sys.executable, + str(SHIM), + "--export-file", + str(bundle_path), + "--output-dir", + str(out_dir), + "--quiet", + ], + capture_output=True, + text=True, + ) + assert result.returncode != 0 + assert "unsupported isb1 adapter" in result.stderr.lower() + + def test_rejects_nonpositive_block_size(self, tmp_path: Path) -> None: + bundle_path = tmp_path / "bundle.json" + bundle_path.write_text(json.dumps(_multiturn_bundle())) + result = subprocess.run( + [ + sys.executable, + str(SHIM), + "--export-file", + str(bundle_path), + "--output-dir", + str(tmp_path / "out"), + "--block-size", + "0", + "--quiet", + ], + capture_output=True, + text=True, + ) + assert result.returncode == 2 + assert "--block-size must be positive" in result.stderr diff --git a/tools/validate_kvcache_tester_trace.py b/tools/validate_kvcache_tester_trace.py new file mode 100644 index 000000000..850da4991 --- /dev/null +++ b/tools/validate_kvcache_tester_trace.py @@ -0,0 +1,369 @@ +#!/usr/bin/env python3 +"""Validate kv-cache-tester trace JSON files. + +Stdlib-only validator for the compact trace schema consumed by +`trace_replay_tester.py` / `normalize_trace()` in Cam's kv-cache-tester. +Supports validating a single JSON file or recursively walking a directory of +trace files. +""" + +from __future__ import annotations + +import argparse +import json +import math +import sys +from pathlib import Path +from typing import Any + +VALID_HASH_ID_SCOPES = {"local", "global"} +MANIFEST_FILENAMES = {"manifest.json"} +CHECK = "✓" +CROSS = "✗" +WARN = "!" + + +def _is_int(value: Any) -> bool: + return isinstance(value, int) and not isinstance(value, bool) + + +def _is_number(value: Any) -> bool: + return (isinstance(value, int) or isinstance(value, float)) and not isinstance(value, bool) + + +def _add_issue(bucket: list[str], message: str, max_issues: int) -> None: + if len(bucket) < max_issues: + bucket.append(message) + + +def _validate_string_list(value: Any, field_name: str, errors: list[str], max_issues: int) -> list[str] | None: + if not isinstance(value, list) or not value: + _add_issue(errors, f"{field_name} must be a non-empty list[str]", max_issues) + return None + for idx, item in enumerate(value): + if not isinstance(item, str): + _add_issue(errors, f"{field_name}[{idx}] must be str, got {type(item).__name__}", max_issues) + return value if len(errors) < max_issues else None + + +def _validate_flat_hash_ids( + hash_ids: list[Any], + *, + input_tokens: int, + block_size: int, + scope: str | None, + errors: list[str], + warnings: list[str], + max_issues: int, +) -> None: + expected_len = math.ceil(input_tokens / block_size) if input_tokens > 0 else 0 + if len(hash_ids) != expected_len: + _add_issue( + errors, + f"hash_ids length = {len(hash_ids)}, expected ceil(in={input_tokens} / block_size={block_size}) = {expected_len}", + max_issues, + ) + + if scope is None: + _add_issue( + warnings, + "hash_id_scope missing; cannot strictly validate flat hash_ids semantics", + max_issues, + ) + + for idx, value in enumerate(hash_ids): + if not _is_int(value): + _add_issue(errors, f"hash_ids[{idx}] must be int, got {type(value).__name__}", max_issues) + continue + if value <= 0: + _add_issue(errors, f"hash_ids[{idx}] = {value}, expected positive int", max_issues) + if scope == "local": + expected = idx + 1 + if value != expected: + _add_issue( + errors, + f"hash_ids[{idx}] = {value}, expected {expected} (prefix must extend by 1)", + max_issues, + ) + + +def _validate_nested_hash_ids( + hash_ids: list[Any], + *, + scope: str | None, + errors: list[str], + warnings: list[str], + max_issues: int, +) -> None: + if scope is None: + _add_issue( + warnings, + "hash_id_scope missing; cannot strictly validate nested hash_ids semantics", + max_issues, + ) + for outer_idx, group in enumerate(hash_ids): + if not isinstance(group, list): + _add_issue(errors, f"hash_ids[{outer_idx}] must be list[int], got {type(group).__name__}", max_issues) + continue + for inner_idx, value in enumerate(group): + if not _is_int(value): + _add_issue( + errors, + f"hash_ids[{outer_idx}][{inner_idx}] must be int, got {type(value).__name__}", + max_issues, + ) + continue + if value <= 0: + _add_issue(errors, f"hash_ids[{outer_idx}][{inner_idx}] = {value}, expected positive int", max_issues) + if scope == "local": + expected = inner_idx + 1 + if value != expected: + _add_issue( + errors, + f"hash_ids[{outer_idx}][{inner_idx}] = {value}, expected {expected} (prefix must extend by 1)", + max_issues, + ) + + +def _validate_request( + req: Any, + *, + request_idx: int, + block_size: int, + scope: str | None, + errors: list[str], + warnings: list[str], + max_issues: int, +) -> None: + prefix = f"requests[{request_idx}]" + if not isinstance(req, dict): + _add_issue(errors, f"{prefix} must be object, got {type(req).__name__}", max_issues) + return + + req_type = req.get("type") + if not isinstance(req_type, str): + _add_issue(errors, f"{prefix}.type must be str", max_issues) + + if req_type == "subagent": + return + + t_value = req.get("t") + if not _is_number(t_value): + _add_issue(errors, f"{prefix}.t must be float >= 0", max_issues) + elif float(t_value) < 0: + _add_issue(errors, f"{prefix}.t = {t_value}, expected >= 0", max_issues) + + input_tokens = req.get("in") + if not _is_int(input_tokens): + _add_issue(errors, f"{prefix}.in must be int >= 0", max_issues) + input_tokens = 0 + elif input_tokens < 0: + _add_issue(errors, f"{prefix}.in = {input_tokens}, expected >= 0", max_issues) + + output_tokens = req.get("out") + if not _is_int(output_tokens): + _add_issue(errors, f"{prefix}.out must be int >= 0", max_issues) + elif output_tokens < 0: + _add_issue(errors, f"{prefix}.out = {output_tokens}, expected >= 0", max_issues) + + hash_ids = req.get("hash_ids") + if not isinstance(hash_ids, list): + _add_issue(errors, f"{prefix}.hash_ids must be list[int] or list[list[int]]", max_issues) + else: + is_nested = bool(hash_ids) and all(isinstance(item, list) for item in hash_ids) + is_flat = not hash_ids or all(not isinstance(item, list) for item in hash_ids) + if is_nested: + _validate_nested_hash_ids( + hash_ids, + scope=scope, + errors=errors, + warnings=warnings, + max_issues=max_issues, + ) + elif is_flat: + _validate_flat_hash_ids( + hash_ids, + input_tokens=input_tokens, + block_size=block_size, + scope=scope, + errors=errors, + warnings=warnings, + max_issues=max_issues, + ) + else: + _add_issue(errors, f"{prefix}.hash_ids must not mix flat and nested entries", max_issues) + + optional_string_fields = ("model", "stop") + for field_name in optional_string_fields: + if field_name in req and not isinstance(req[field_name], str): + _add_issue(errors, f"{prefix}.{field_name} must be str", max_issues) + + optional_list_fields = ("input_types", "output_types") + for field_name in optional_list_fields: + if field_name in req: + value = req[field_name] + if not isinstance(value, list): + _add_issue(errors, f"{prefix}.{field_name} must be list[str]", max_issues) + continue + for idx, item in enumerate(value): + if not isinstance(item, str): + _add_issue(errors, f"{prefix}.{field_name}[{idx}] must be str", max_issues) + + optional_number_fields = ("api_time", "think_time") + for field_name in optional_number_fields: + if field_name in req: + value = req[field_name] + if not _is_number(value): + _add_issue(errors, f"{prefix}.{field_name} must be float", max_issues) + + +def validate_trace(trace: Any, *, max_issues: int) -> tuple[list[str], list[str]]: + errors: list[str] = [] + warnings: list[str] = [] + + if not isinstance(trace, dict): + return [f"top-level JSON must be object, got {type(trace).__name__}"], warnings + + trace_id = trace.get("id") + if not isinstance(trace_id, str): + _add_issue(errors, "id must be str", max_issues) + + _validate_string_list(trace.get("models"), "models", errors, max_issues) + + block_size = trace.get("block_size") + if not _is_int(block_size): + _add_issue(errors, "block_size must be int > 0", max_issues) + block_size = 1 + elif block_size <= 0: + _add_issue(errors, f"block_size = {block_size}, expected > 0", max_issues) + + requests = trace.get("requests") + if not isinstance(requests, list) or not requests: + _add_issue(errors, "requests must be a non-empty list", max_issues) + requests = [] + + scope = trace.get("hash_id_scope") + if scope is not None and scope not in VALID_HASH_ID_SCOPES: + _add_issue( + errors, + f"hash_id_scope = {scope!r}, expected one of {sorted(VALID_HASH_ID_SCOPES)}", + max_issues, + ) + scope = None + + for field_name in ("tool_tokens", "system_tokens"): + if field_name in trace: + value = trace[field_name] + if not _is_int(value): + _add_issue(errors, f"{field_name} must be int >= 0", max_issues) + elif value < 0: + _add_issue(errors, f"{field_name} = {value}, expected >= 0", max_issues) + + for idx, req in enumerate(requests): + if len(errors) >= max_issues and len(warnings) >= max_issues: + break + _validate_request( + req, + request_idx=idx, + block_size=block_size, + scope=scope, + errors=errors, + warnings=warnings, + max_issues=max_issues, + ) + + return errors, warnings + + +def iter_trace_files(path: Path) -> list[Path]: + if path.is_file(): + return [path] + if path.is_dir(): + files = [] + for candidate in sorted(path.rglob("*.json")): + if candidate.name in MANIFEST_FILENAMES: + continue + if candidate.is_file(): + files.append(candidate) + return files + raise FileNotFoundError(f"Path not found: {path}") + + +def parse_args(argv: list[str]) -> argparse.Namespace: + parser = argparse.ArgumentParser( + prog="validate_kvcache_tester_trace.py", + description="Validate kv-cache-tester trace files or directories.", + ) + parser.add_argument("path", metavar="PATH", help="file or directory (recursive glob *.json when directory)") + parser.add_argument("--quiet", action="store_true", help="only print final summary") + parser.add_argument( + "--strict", + action="store_true", + help="treat warnings as errors (e.g. hash_ids scope missing)", + ) + parser.add_argument( + "--max-errors-per-file", + type=int, + default=5, + help="maximum errors reported per file (default: 5)", + ) + return parser.parse_args(argv) + + +def main(argv: list[str] | None = None) -> int: + args = parse_args(argv or sys.argv[1:]) + if args.max_errors_per_file <= 0: + print("--max-errors-per-file must be > 0", file=sys.stderr) + return 2 + + path = Path(args.path) + try: + files = iter_trace_files(path) + except FileNotFoundError as exc: + print(str(exc), file=sys.stderr) + return 2 + + if not files: + print("No trace JSON files found", file=sys.stderr) + return 2 + + valid_count = 0 + failed_count = 0 + + for file_path in files: + try: + trace = json.loads(file_path.read_text()) + except Exception as exc: + errors = [f"invalid JSON: {exc}"] + warnings: list[str] = [] + else: + errors, warnings = validate_trace(trace, max_issues=args.max_errors_per_file) + + effective_errors = list(errors) + if args.strict: + effective_errors.extend(warnings) + + if effective_errors: + failed_count += 1 + if not args.quiet: + print(f"{CROSS} {file_path}") + for issue in effective_errors[: args.max_errors_per_file]: + print(f" {issue}") + else: + valid_count += 1 + if warnings and not args.quiet: + print(f"{WARN} {file_path}") + for warning in warnings[: args.max_errors_per_file]: + print(f" {warning}") + + if failed_count == 0: + print(f"{CHECK} {valid_count} files valid | 0 failed") + return 0 + + plural = "files" if failed_count != 1 else "file" + print(f"{failed_count} {plural} failed validation") + return 1 + + +if __name__ == "__main__": + raise SystemExit(main())