dsh-standards 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/40-checker/README.md +2 -2
- package/40-checker/scripts/runtime-child.mjs +13 -0
- package/40-checker/src/cli.mjs +64 -5
- package/40-checker/src/manifest.mjs +20 -1
- package/40-checker/src/report.mjs +6 -1
- package/40-checker/src/semver.mjs +77 -11
- package/CHANGELOG.md +32 -0
- package/NOTICE +14 -0
- package/README.md +6 -6
- package/bin/dsh-standards.mjs +1 -0
- package/package.json +14 -5
- package/40-checker/.github/workflows/plugin-verify.yml +0 -70
- package/40-checker/results/boost/REPORT.md +0 -304
- package/40-checker/results/boost/lev12458.json +0 -1747
- package/40-checker/results/client/README.md +0 -16
- package/40-checker/results/entry/18/DDDMUC__dsh-free-search.json +0 -381
- package/40-checker/results/entry/18/DDDMUC__dsh-free-search.runtime.json +0 -34
- package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.json +0 -361
- package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.runtime.json +0 -34
- package/40-checker/results/entry/18/README.md +0 -24
- package/40-checker/results/entry/18/RUNTIME.md +0 -18
- package/40-checker/results/entry/18/SeaOf0__dsh-redteam-model.json +0 -391
- package/40-checker/results/entry/18/YuJunZhiXue__dsh-purge.json +0 -432
- package/40-checker/results/entry/18/ci-diet.json +0 -365
- package/40-checker/results/entry/18/ci-diet.runtime-attempt.json +0 -38
- package/40-checker/results/entry/18/daily-log.json +0 -357
- package/40-checker/results/entry/18/daily-log.runtime.json +0 -519
- package/40-checker/results/entry/18/fullbase/ATTRIBUTION.md +0 -29
- package/40-checker/results/entry/18/fullbase/DDDMUC__dsh-free-search.json +0 -99
- package/40-checker/results/entry/18/fullbase/Ebony-Vinyl__dsh-our-free-model.json +0 -95
- package/40-checker/results/entry/18/fullbase/REPORT.md +0 -261
- package/40-checker/results/entry/18/fullbase/SeaOf0__dsh-redteam-model.json +0 -144
- package/40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json +0 -106
- package/40-checker/results/entry/18/fullbase/ci-diet.json +0 -99
- package/40-checker/results/entry/18/fullbase/daily-log.json +0 -94
- package/40-checker/results/entry/18/fullbase/howmp__dsh-pentest.json +0 -104
- package/40-checker/results/entry/18/fullbase/kingcharleslzy-ai__dsh-purge.json +0 -143
- package/40-checker/results/entry/18/fullbase/liguobao__ds-harness-remote.json +0 -134
- package/40-checker/results/entry/18/fullbase/mmparko__dsh-purge.json +0 -138
- package/40-checker/results/entry/18/fullbase/project-memory.json +0 -108
- package/40-checker/results/entry/18/fullbase/qiushi.json +0 -94
- package/40-checker/results/entry/18/fullbase/shaobeichen__dsh-pocket.json +0 -94
- package/40-checker/results/entry/18/fullbase/status-rotator.json +0 -94
- package/40-checker/results/entry/18/fullbase/summary.json +0 -297
- package/40-checker/results/entry/18/fullbase/telemetry.json +0 -94
- package/40-checker/results/entry/18/fullbase/ui-auth.json +0 -94
- package/40-checker/results/entry/18/fullbase/verification.json +0 -94
- package/40-checker/results/entry/18/fullbase/ysr666__dsh-vision-router.json +0 -106
- package/40-checker/results/entry/18/howmp__dsh-pentest.json +0 -361
- package/40-checker/results/entry/18/kingcharleslzy-ai__dsh-purge.json +0 -411
- package/40-checker/results/entry/18/liguobao__ds-harness-remote.json +0 -379
- package/40-checker/results/entry/18/mmparko__dsh-purge.json +0 -441
- package/40-checker/results/entry/18/project-memory.json +0 -361
- package/40-checker/results/entry/18/project-memory.runtime.json +0 -519
- package/40-checker/results/entry/18/qiushi.json +0 -353
- package/40-checker/results/entry/18/qiushi.runtime.json +0 -519
- package/40-checker/results/entry/18/realweb/REPORT.md +0 -73
- package/40-checker/results/entry/18/realweb/SeaOf0__dsh-redteam-model.json +0 -104
- package/40-checker/results/entry/18/realweb/YuJunZhiXue__dsh-purge.json +0 -64
- package/40-checker/results/entry/18/realweb/howmp__dsh-pentest.json +0 -65
- package/40-checker/results/entry/18/realweb/kingcharleslzy-ai__dsh-purge.json +0 -75
- package/40-checker/results/entry/18/realweb/mmparko__dsh-purge.json +0 -70
- package/40-checker/results/entry/18/realweb/shaobeichen__dsh-pocket.json +0 -56
- package/40-checker/results/entry/18/realweb/summary.json +0 -196
- package/40-checker/results/entry/18/realweb/ui-auth.json +0 -56
- package/40-checker/results/entry/18/realweb/ysr666__dsh-vision-router.json +0 -61
- package/40-checker/results/entry/18/richbase/REPORT.md +0 -70
- package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.json +0 -61
- package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.log +0 -38
- package/40-checker/results/entry/18/shaobeichen__dsh-pocket.json +0 -363
- package/40-checker/results/entry/18/status-rotator.json +0 -362
- package/40-checker/results/entry/18/status-rotator.runtime.json +0 -519
- package/40-checker/results/entry/18/summary.json +0 -266
- package/40-checker/results/entry/18/targetonly/DDDMUC__dsh-free-search.json +0 -34
- package/40-checker/results/entry/18/targetonly/Ebony-Vinyl__dsh-our-free-model.json +0 -34
- package/40-checker/results/entry/18/targetonly/SeaOf0__dsh-redteam-model.json +0 -84
- package/40-checker/results/entry/18/targetonly/YuJunZhiXue__dsh-purge.json +0 -52
- package/40-checker/results/entry/18/targetonly/ci-diet.json +0 -34
- package/40-checker/results/entry/18/targetonly/daily-log.json +0 -34
- package/40-checker/results/entry/18/targetonly/howmp__dsh-pentest.json +0 -46
- package/40-checker/results/entry/18/targetonly/kingcharleslzy-ai__dsh-purge.json +0 -61
- package/40-checker/results/entry/18/targetonly/liguobao__ds-harness-remote.json +0 -39
- package/40-checker/results/entry/18/targetonly/mmparko__dsh-purge.json +0 -57
- package/40-checker/results/entry/18/targetonly/project-memory.json +0 -34
- package/40-checker/results/entry/18/targetonly/qiushi.json +0 -34
- package/40-checker/results/entry/18/targetonly/shaobeichen__dsh-pocket.json +0 -34
- package/40-checker/results/entry/18/targetonly/status-rotator.json +0 -34
- package/40-checker/results/entry/18/targetonly/summary.json +0 -133
- package/40-checker/results/entry/18/targetonly/telemetry.json +0 -34
- package/40-checker/results/entry/18/targetonly/ui-auth.json +0 -34
- package/40-checker/results/entry/18/targetonly/verification.json +0 -34
- package/40-checker/results/entry/18/targetonly/ysr666__dsh-vision-router.json +0 -43
- package/40-checker/results/entry/18/telemetry.json +0 -349
- package/40-checker/results/entry/18/ui-auth.json +0 -369
- package/40-checker/results/entry/18/verification.json +0 -358
- package/40-checker/results/entry/18/ysr666__dsh-vision-router.json +0 -409
- package/40-checker/results/fixtures/bad.json +0 -347
- package/40-checker/results/fixtures/bundle.json +0 -378
- package/40-checker/results/fixtures/good-listing.json +0 -382
- package/40-checker/results/fixtures/good-static.json +0 -322
- package/40-checker/results/fixtures/good.json +0 -375
- package/40-checker/results/fixtures/good.sarif +0 -274
- package/40-checker/results/flow/README.md +0 -19
- package/40-checker/results/flow/j3-j7-fixture.json +0 -51
- package/40-checker/results/flow/j5-j8-client-missing.json +0 -45
- package/40-checker/results/flow/j5-j8-good.json +0 -45
- package/40-checker/results/flow/journey-fixture-bundle.json +0 -90
- package/40-checker/results/flow/journey-fixture-j1-j2-j4-j6.json +0 -107
- package/40-checker/results/flow/real/DDDMUC__dsh-free-search.json +0 -297
- package/40-checker/results/flow/real/REPORT.md +0 -335
- package/40-checker/results/flow/real/YuJunZhiXue__dsh-purge.json +0 -317
- package/40-checker/results/flow/real/ci-diet.json +0 -351
- package/40-checker/results/flow/real/daily-log.json +0 -286
- package/40-checker/results/flow/real/index.json +0 -325
- package/40-checker/results/flow/real/project-memory.json +0 -290
- package/40-checker/results/flow/real/qiushi.json +0 -277
- package/40-checker/results/flow/real/status-rotator.json +0 -275
- package/40-checker/results/flow/real/telemetry.json +0 -178
- package/40-checker/results/flow/real/ui-auth.json +0 -288
- package/40-checker/results/flow/real/verification.json +0 -265
- package/40-checker/results/governance/co-maintainer-packet.md +0 -85
- package/40-checker/results/l1/ci-diet.json +0 -406
- package/40-checker/results/l1/npm-dsh-telemetry-redactor-0.1.0.json +0 -390
- package/40-checker/results/l1/npm-dsh-verification-receipt-0.1.0.json +0 -406
- package/40-checker/results/l1/npm-qiushi-dsh-evidence-audit-0.1.0.json +0 -394
- package/40-checker/results/l1/npm-zzerx-dsh-plugin-daily-log-0.4.3.json +0 -405
- package/40-checker/results/l1/project-memory.json +0 -402
- package/40-checker/results/l1/source-DDDMUC__dsh-free-search.json +0 -422
- package/40-checker/results/l1/source-Ebony-Vinyl__dsh-our-free-model.json +0 -421
- package/40-checker/results/l1/source-SeaOf0__dsh-redteam-model.json +0 -432
- package/40-checker/results/l1/source-YuJunZhiXue__dsh-purge.json +0 -473
- package/40-checker/results/l1/source-howmp__dsh-pentest.json +0 -402
- package/40-checker/results/l1/source-kingcharleslzy-ai__dsh-purge.json +0 -452
- package/40-checker/results/l1/source-liguobao__ds-harness-remote.json +0 -420
- package/40-checker/results/l1/source-mmparko__dsh-purge.json +0 -482
- package/40-checker/results/l1/source-shaobeichen__dsh-pocket.json +0 -404
- package/40-checker/results/l1/source-ysr666__dsh-vision-router.json +0 -384
- package/40-checker/results/l1/status-rotator.json +0 -403
- package/40-checker/results/l1/ui-auth.json +0 -429
- package/40-checker/results/l1/ysr666__dsh-vision-router.published.json +0 -384
- package/40-checker/results/lev3/REPORT.md +0 -342
- package/40-checker/results/lev3/lev3.json +0 -4835
- package/40-checker/results/lev6/REPORT.md +0 -460
- package/40-checker/results/lev6/capture-sample.json +0 -241
- package/40-checker/results/lev6/capture.jsonl +0 -4
- package/40-checker/results/lev6/lev6.json +0 -245
- package/40-checker/results/lev6/replication-r1.json +0 -245
- package/40-checker/results/levels/README.md +0 -16
- package/40-checker/results/levels/dsh-plugin-doctor.json +0 -141
- package/40-checker/results/levels/dsh-plugin-guide.json +0 -136
- package/40-checker/results/m1/dsh-ci-diet-0.5.2.json +0 -352
- package/40-checker/results/m1/dsh-status-rotator-0.38.0.json +0 -349
- package/40-checker/results/m1/dsh-telemetry-redactor-0.1.0.json +0 -336
- package/40-checker/results/m1/dsh-ui-auth-0.7.1.json +0 -356
- package/40-checker/results/m1/dsh-verification-receipt-0.1.0.json +0 -344
- package/40-checker/results/m1/index-level.json +0 -13
- package/40-checker/results/m1/levels.json +0 -72100
- package/40-checker/results/m1/qiushi-dsh-evidence-audit-0.1.0.json +0 -339
- package/40-checker/results/m1/yolk_vat-y-dsh-project-memory-0.6.7.json +0 -348
- package/40-checker/results/m1/zzerx-dsh-plugin-daily-log-0.4.3.json +0 -344
- package/40-checker/results/m2/dsh-ci-diet.json +0 -421
- package/40-checker/results/m2/dsh-ci-diet.unshare-landlock.json +0 -424
- package/40-checker/results/m2/dsh-ci-diet.unshare.json +0 -423
- package/40-checker/results/m2/fixture-bundle.image.json +0 -404
- package/40-checker/results/m2/fixture-bundle.json +0 -392
- package/40-checker/results/m2/fixture-bundle.landlock.json +0 -396
- package/40-checker/results/m2/fixture-bundle.unshare.json +0 -395
- package/40-checker/results/m2/fs-write.json +0 -338
- package/40-checker/results/m2/hang.json +0 -31
- package/40-checker/results/m2/hang.unshare-landlock.json +0 -34
- package/40-checker/results/m2/hang.unshare.json +0 -33
- package/40-checker/results/m2/project-memory.json +0 -417
- package/40-checker/results/m2/status-rotator.json +0 -418
- package/40-checker/results/m2/ui-auth.json +0 -444
- package/40-checker/results/negative/bad-entry.json +0 -345
- package/40-checker/results/negative/no-entry.json +0 -345
- package/40-checker/results/negative/no-patch.json +0 -344
- package/40-checker/results/negative/root-missing.json +0 -344
- package/40-checker/results/negative/root-missing.runtime.json +0 -30
- package/40-checker/results/negative/summary.json +0 -51
- package/40-checker/results/negative/workspace.json +0 -344
- package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.json +0 -334
- package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.overlay.json +0 -335
- package/40-checker/results/patched/SeaOf0__dsh-redteam-model.json +0 -315
- package/40-checker/results/patched/SeaOf0__dsh-redteam-model.overlay.json +0 -316
- package/40-checker/results/patched/mmparko__dsh-purge.json +0 -357
- package/40-checker/results/patched/mmparko__dsh-purge.overlay.json +0 -358
- package/40-checker/results/patched/shaobeichen__dsh-pocket.json +0 -315
- package/40-checker/results/patched/shaobeichen__dsh-pocket.overlay.json +0 -316
- package/40-checker/results/real/DDDMUC__dsh-free-search.json +0 -344
- package/40-checker/results/real/Ebony-Vinyl__dsh-our-free-model.json +0 -343
- package/40-checker/results/real/SeaOf0__dsh-redteam-model.json +0 -354
- package/40-checker/results/real/YuJunZhiXue__dsh-purge.json +0 -395
- package/40-checker/results/real/howmp__dsh-pentest.json +0 -324
- package/40-checker/results/real/kingcharleslzy-ai__dsh-purge.json +0 -374
- package/40-checker/results/real/liguobao__ds-harness-remote.json +0 -342
- package/40-checker/results/real/mmparko__dsh-purge.json +0 -404
- package/40-checker/results/real/shaobeichen__dsh-pocket.json +0 -326
- package/40-checker/results/real/ysr666__dsh-vision-router.json +0 -372
- package/40-checker/results/real/ysr666__dsh-vision-router.listing.json +0 -378
- package/40-checker/results/round-robin/compare.json +0 -52
- package/40-checker/results/round-robin/runner-a.json +0 -9
- package/40-checker/results/round-robin/runner-b.json +0 -9
- package/40-checker/results/sample20/123dbl__dsh-side-session.json +0 -344
- package/40-checker/results/sample20/173787247__dsh-wsl-dns.json +0 -360
- package/40-checker/results/sample20/863683348__dsh-insight.json +0 -375
- package/40-checker/results/sample20/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
- package/40-checker/results/sample20/Jamailar__beav-deepseek-harness.json +0 -341
- package/40-checker/results/sample20/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
- package/40-checker/results/sample20/NEAZ71eve__dsh-tool-github.json +0 -384
- package/40-checker/results/sample20/README.md +0 -3
- package/40-checker/results/sample20/RINGOLINK__dsh-desktop-shell.json +0 -352
- package/40-checker/results/sample20/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
- package/40-checker/results/sample20/agent-mobile__dsh-mobile-gateway.json +0 -353
- package/40-checker/results/sample20/fangqiing__dsh-knowledge-lite.json +0 -359
- package/40-checker/results/sample20/fzy0517__deepseek-harness-session-cleaner.json +0 -344
- package/40-checker/results/sample20/gjy1992__dsh-diagram.json +0 -350
- package/40-checker/results/sample20/mrme000m__dsh-prime-orchestrator.json +0 -414
- package/40-checker/results/sample20/redstonedust__dsh-solidworks-copilot.json +0 -362
- package/40-checker/results/sample20/summary.json +0 -234
- package/40-checker/results/sample20/w2112515__dsh-remote-host.json +0 -344
- package/40-checker/results/sample20/wkfedor__deepseek-harness-voice-input.json +0 -350
- package/40-checker/results/sample20/xfgil__dsh-hot-reloader.json +0 -344
- package/40-checker/results/sample20/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
- package/40-checker/results/sample20-ci/123dbl__dsh-side-session.json +0 -344
- package/40-checker/results/sample20-ci/173787247__dsh-wsl-dns.json +0 -360
- package/40-checker/results/sample20-ci/863683348__dsh-insight.json +0 -375
- package/40-checker/results/sample20-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
- package/40-checker/results/sample20-ci/Jamailar__beav-deepseek-harness.json +0 -367
- package/40-checker/results/sample20-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
- package/40-checker/results/sample20-ci/NEAZ71eve__dsh-tool-github.json +0 -392
- package/40-checker/results/sample20-ci/README.md +0 -5
- package/40-checker/results/sample20-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
- package/40-checker/results/sample20-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
- package/40-checker/results/sample20-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
- package/40-checker/results/sample20-ci/fangqiing__dsh-knowledge-lite.json +0 -360
- package/40-checker/results/sample20-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
- package/40-checker/results/sample20-ci/gjy1992__dsh-diagram.json +0 -381
- package/40-checker/results/sample20-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
- package/40-checker/results/sample20-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
- package/40-checker/results/sample20-ci/summary.json +0 -195
- package/40-checker/results/sample20-ci/w2112515__dsh-remote-host.json +0 -399
- package/40-checker/results/sample20-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
- package/40-checker/results/sample20-ci/xfgil__dsh-hot-reloader.json +0 -344
- package/40-checker/results/sample20-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
- package/40-checker/results/sample20-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
- package/40-checker/results/sample60/123dbl__dsh-side-session.json +0 -344
- package/40-checker/results/sample60/173787247__dsh-wsl-dns.json +0 -360
- package/40-checker/results/sample60/863683348__dsh-insight.json +0 -375
- package/40-checker/results/sample60/Anionex__dsh-turn-rewind.json +0 -349
- package/40-checker/results/sample60/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
- package/40-checker/results/sample60/Ebony-Vinyl__EAC-Pack.json +0 -352
- package/40-checker/results/sample60/EricWang1358__dsh-web-studyhub.json +0 -376
- package/40-checker/results/sample60/GanyuanRan__Aegis.json +0 -349
- package/40-checker/results/sample60/HiSeax__dsh-codely.json +0 -358
- package/40-checker/results/sample60/Jamailar__beav-deepseek-harness.json +0 -341
- package/40-checker/results/sample60/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
- package/40-checker/results/sample60/MichengAI__dsh-archive-manager.json +0 -357
- package/40-checker/results/sample60/MichengAI__dsh-im-connect.json +0 -347
- package/40-checker/results/sample60/MindLab-Research__dsh-generative-ui.json +0 -350
- package/40-checker/results/sample60/NEAZ71eve__dsh-tool-github.json +0 -384
- package/40-checker/results/sample60/README.md +0 -7
- package/40-checker/results/sample60/RINGOLINK__dsh-desktop-shell.json +0 -352
- package/40-checker/results/sample60/SeanTolstoyevski__dsh-code-review.json +0 -352
- package/40-checker/results/sample60/Tasihi89__dsh-talk-map.json +0 -344
- package/40-checker/results/sample60/Tyan66666__billion-context-dsh.json +0 -469
- package/40-checker/results/sample60/V1ki__dsh-plugin-subscriptions.json +0 -350
- package/40-checker/results/sample60/Yu-tao-Li__dsh-computer-use-win.json +0 -341
- package/40-checker/results/sample60/ZSeven-W__dsh-ios.json +0 -344
- package/40-checker/results/sample60/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
- package/40-checker/results/sample60/agent-mobile__dsh-mobile-gateway.json +0 -353
- package/40-checker/results/sample60/c3cvld7aag__fujiang-dsh.json +0 -361
- package/40-checker/results/sample60/cxzrdxy__dsh-file-explorer.json +0 -389
- package/40-checker/results/sample60/dhicoc__dsh-reverse-skill.json +0 -341
- package/40-checker/results/sample60/fangqiing__dsh-knowledge-lite.json +0 -359
- package/40-checker/results/sample60/fwerkor__local-shell-mcp.json +0 -369
- package/40-checker/results/sample60/fzy0517__deepseek-harness-session-cleaner.json +0 -344
- package/40-checker/results/sample60/gjy1992__dsh-diagram.json +0 -350
- package/40-checker/results/sample60/howmp__dsh-pentest.json +0 -341
- package/40-checker/results/sample60/linhay__harmony-next.skills.json +0 -344
- package/40-checker/results/sample60/liustack__modsearch.json +0 -371
- package/40-checker/results/sample60/mmparko__dsh-purge.json +0 -372
- package/40-checker/results/sample60/mrme000m__dsh-prime-orchestrator.json +0 -414
- package/40-checker/results/sample60/omdsh-dev__dsh_workflow.json +0 -439
- package/40-checker/results/sample60/redstonedust__dsh-solidworks-copilot.json +0 -362
- package/40-checker/results/sample60/seriousz158__dsh-memory.json +0 -350
- package/40-checker/results/sample60/shanliuling__dsh-image-gen.json +0 -353
- package/40-checker/results/sample60/shanliuling__skills-link.json +0 -344
- package/40-checker/results/sample60/shengsheng90__DSH-taskboard.json +0 -341
- package/40-checker/results/sample60/sjh9714__dsh-win32.json +0 -374
- package/40-checker/results/sample60/skymecode__deepseek-harness-for-vscode.json +0 -351
- package/40-checker/results/sample60/sopaco__terrain.json +0 -352
- package/40-checker/results/sample60/summary.json +0 -658
- package/40-checker/results/sample60/tinqiao-oss__engramory.json +0 -352
- package/40-checker/results/sample60/tong-io__tongflow.json +0 -359
- package/40-checker/results/sample60/vibeinging__dsh-desktop.json +0 -382
- package/40-checker/results/sample60/w2112515__dsh-remote-host.json +0 -344
- package/40-checker/results/sample60/wkfedor__deepseek-harness-voice-input.json +0 -350
- package/40-checker/results/sample60/wz20__dsh-dafeiyu-dot.json +0 -349
- package/40-checker/results/sample60/xfgil__dsh-hot-reloader.json +0 -344
- package/40-checker/results/sample60/yi-yezhiqiu__dsh-prompt-market.json +0 -360
- package/40-checker/results/sample60/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
- package/40-checker/results/sample60/yjh051108__dsh-routing-suite.json +0 -366
- package/40-checker/results/sample60-ci/123dbl__dsh-side-session.json +0 -344
- package/40-checker/results/sample60-ci/173787247__dsh-wsl-dns.json +0 -360
- package/40-checker/results/sample60-ci/863683348__dsh-insight.json +0 -375
- package/40-checker/results/sample60-ci/Anionex__dsh-turn-rewind.json +0 -379
- package/40-checker/results/sample60-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
- package/40-checker/results/sample60-ci/Ebony-Vinyl__EAC-Pack.json +0 -362
- package/40-checker/results/sample60-ci/EricWang1358__dsh-web-studyhub.json +0 -378
- package/40-checker/results/sample60-ci/GanyuanRan__Aegis.json +0 -349
- package/40-checker/results/sample60-ci/HiSeax__dsh-codely.json +0 -368
- package/40-checker/results/sample60-ci/Jamailar__beav-deepseek-harness.json +0 -367
- package/40-checker/results/sample60-ci/LiarMTTT__TavernWeave.json +0 -231
- package/40-checker/results/sample60-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
- package/40-checker/results/sample60-ci/MichengAI__dsh-archive-manager.json +0 -395
- package/40-checker/results/sample60-ci/MichengAI__dsh-im-connect.json +0 -404
- package/40-checker/results/sample60-ci/MindLab-Research__dsh-generative-ui.json +0 -410
- package/40-checker/results/sample60-ci/NEAZ71eve__dsh-tool-github.json +0 -392
- package/40-checker/results/sample60-ci/README.md +0 -7
- package/40-checker/results/sample60-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
- package/40-checker/results/sample60-ci/Ruler4396__dsh-launcher.json +0 -231
- package/40-checker/results/sample60-ci/SeanTolstoyevski__dsh-code-review.json +0 -363
- package/40-checker/results/sample60-ci/Tasihi89__dsh-talk-map.json +0 -372
- package/40-checker/results/sample60-ci/Tyan66666__billion-context-dsh.json +0 -469
- package/40-checker/results/sample60-ci/V1ki__dsh-plugin-subscriptions.json +0 -368
- package/40-checker/results/sample60-ci/Yu-tao-Li__dsh-computer-use-win.json +0 -349
- package/40-checker/results/sample60-ci/ZSeven-W__dsh-ios.json +0 -344
- package/40-checker/results/sample60-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
- package/40-checker/results/sample60-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
- package/40-checker/results/sample60-ci/c3cvld7aag__fujiang-dsh.json +0 -361
- package/40-checker/results/sample60-ci/cxzrdxy__dsh-file-explorer.json +0 -399
- package/40-checker/results/sample60-ci/dhicoc__dsh-reverse-skill.json +0 -352
- package/40-checker/results/sample60-ci/fangqiing__dsh-knowledge-lite.json +0 -360
- package/40-checker/results/sample60-ci/fwerkor__local-shell-mcp.json +0 -387
- package/40-checker/results/sample60-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
- package/40-checker/results/sample60-ci/gjy1992__dsh-diagram.json +0 -381
- package/40-checker/results/sample60-ci/howmp__dsh-pentest.json +0 -361
- package/40-checker/results/sample60-ci/linhay__harmony-next.skills.json +0 -344
- package/40-checker/results/sample60-ci/liustack__modsearch.json +0 -382
- package/40-checker/results/sample60-ci/mmparko__dsh-purge.json +0 -441
- package/40-checker/results/sample60-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
- package/40-checker/results/sample60-ci/omdsh-dev__dsh_workflow.json +0 -439
- package/40-checker/results/sample60-ci/plastic-labs__honcho.json +0 -231
- package/40-checker/results/sample60-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
- package/40-checker/results/sample60-ci/seriousz158__dsh-memory.json +0 -351
- package/40-checker/results/sample60-ci/shanliuling__dsh-image-gen.json +0 -382
- package/40-checker/results/sample60-ci/shanliuling__skills-link.json +0 -344
- package/40-checker/results/sample60-ci/shengsheng90__DSH-taskboard.json +0 -370
- package/40-checker/results/sample60-ci/sjh9714__dsh-win32.json +0 -410
- package/40-checker/results/sample60-ci/skymecode__deepseek-harness-for-vscode.json +0 -391
- package/40-checker/results/sample60-ci/sopaco__deepwiki-rs.json +0 -231
- package/40-checker/results/sample60-ci/sopaco__terrain.json +0 -352
- package/40-checker/results/sample60-ci/summary.json +0 -555
- package/40-checker/results/sample60-ci/tinqiao-oss__engramory.json +0 -362
- package/40-checker/results/sample60-ci/tong-io__tongflow.json +0 -393
- package/40-checker/results/sample60-ci/vibeinging__dsh-desktop.json +0 -555
- package/40-checker/results/sample60-ci/w2112515__dsh-remote-host.json +0 -399
- package/40-checker/results/sample60-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
- package/40-checker/results/sample60-ci/wz20__dsh-dafeiyu-dot.json +0 -390
- package/40-checker/results/sample60-ci/xfgil__dsh-hot-reloader.json +0 -344
- package/40-checker/results/sample60-ci/yi-yezhiqiu__dsh-prompt-market.json +0 -373
- package/40-checker/results/sample60-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
- package/40-checker/results/sample60-ci/yjh051108__dsh-routing-suite.json +0 -437
- package/40-checker/results/sample60-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
- package/40-checker/results/triage/REPORT.md +0 -317
- package/40-checker/results/triage/evidence/g2-rejections.txt +0 -63
- package/40-checker/results/triage/evidence/purge-baseline-0.2.1-rc.5.json +0 -51
- package/40-checker/results/triage/evidence/purge-baseline-0.2.2-alpha.2.json +0 -51
- package/40-checker/results/triage/evidence/purge-postinstall.txt +0 -62
- package/40-checker/results/triage/evidence/purge-with-profile-0.2.1-rc.5.json +0 -71
- package/40-checker/results/triage/evidence/purge-with-profile-0.2.2-alpha.2.json +0 -71
- package/40-checker/results/triage/evidence/semver-matrix.json +0 -32
- package/40-checker/results/triage/triage.json +0 -295
- package/40-checker/results/webapp/README.md +0 -10
- package/40-checker/results/webapp/summary.json +0 -46
- package/40-checker/results/webapp/web-auth.json +0 -19
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/client-export.json +0 -7
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/installed-package.json +0 -123
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/probe.json +0 -129
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/shot.png +0 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/summary.md +0 -16
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/client-export.json +0 -7
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/installed-package.json +0 -76
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/probe.json +0 -129
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/shot.png +0 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/summary.md +0 -16
- package/40-checker/results/webruntime/REPORT.md +0 -253
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/client-export.json +0 -7
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/installed-package.json +0 -97
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/probe.json +0 -129
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/shot.png +0 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/summary.md +0 -16
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/client-export.json +0 -7
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/installed-package.json +0 -98
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/probe.json +0 -136
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/summary.md +0 -16
- package/40-checker/results/webruntime/ci-diet/client-export.json +0 -10
- package/40-checker/results/webruntime/ci-diet/installed-package.json +0 -100
- package/40-checker/results/webruntime/ci-diet/probe.json +0 -129
- package/40-checker/results/webruntime/ci-diet/shot.png +0 -0
- package/40-checker/results/webruntime/ci-diet/summary.md +0 -16
- package/40-checker/results/webruntime/daily-log/client-export.json +0 -10
- package/40-checker/results/webruntime/daily-log/installed-package.json +0 -113
- package/40-checker/results/webruntime/daily-log/probe.json +0 -129
- package/40-checker/results/webruntime/daily-log/shot.png +0 -0
- package/40-checker/results/webruntime/daily-log/summary.md +0 -16
- package/40-checker/results/webruntime/howmp__dsh-pentest/client-export.json +0 -7
- package/40-checker/results/webruntime/howmp__dsh-pentest/installed-package.json +0 -90
- package/40-checker/results/webruntime/howmp__dsh-pentest/probe.json +0 -129
- package/40-checker/results/webruntime/howmp__dsh-pentest/shot.png +0 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/summary.md +0 -16
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/client-export.json +0 -7
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/installed-package.json +0 -164
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/probe.json +0 -129
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/summary.md +0 -16
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/client-export.json +0 -7
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/installed-package.json +0 -166
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/probe.json +0 -129
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/shot.png +0 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/summary.md +0 -16
- package/40-checker/results/webruntime/local-pre-ci/README.md +0 -67
- package/40-checker/results/webruntime/local-pre-ci/client-exports.json +0 -158
- package/40-checker/results/webruntime/local-pre-ci/dsh-free-search.probe.json +0 -119
- package/40-checker/results/webruntime/local-pre-ci/dsh-pocket.probe.json +0 -119
- package/40-checker/results/webruntime/local-pre-ci/dsh-redteam-model.probe.json +0 -119
- package/40-checker/results/webruntime/local-pre-ci/qiushi-shell-only.probe.json +0 -104
- package/40-checker/results/webruntime/local-pre-ci/ui-auth-no-login.fail.json +0 -52
- package/40-checker/results/webruntime/local-pre-ci/ui-auth.probe.json +0 -123
- package/40-checker/results/webruntime/mmparko__dsh-purge/client-export.json +0 -7
- package/40-checker/results/webruntime/mmparko__dsh-purge/installed-package.json +0 -95
- package/40-checker/results/webruntime/mmparko__dsh-purge/probe.json +0 -136
- package/40-checker/results/webruntime/mmparko__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/summary.md +0 -16
- package/40-checker/results/webruntime/project-memory/client-export.json +0 -7
- package/40-checker/results/webruntime/project-memory/installed-package.json +0 -118
- package/40-checker/results/webruntime/project-memory/probe.json +0 -129
- package/40-checker/results/webruntime/project-memory/shot.png +0 -0
- package/40-checker/results/webruntime/project-memory/summary.md +0 -16
- package/40-checker/results/webruntime/qiushi/client-export.json +0 -7
- package/40-checker/results/webruntime/qiushi/installed-package.json +0 -84
- package/40-checker/results/webruntime/qiushi/probe.json +0 -114
- package/40-checker/results/webruntime/qiushi/shot.png +0 -0
- package/40-checker/results/webruntime/qiushi/summary.md +0 -16
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/client-export.json +0 -7
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/installed-package.json +0 -85
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/probe.json +0 -129
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/shot.png +0 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/summary.md +0 -16
- package/40-checker/results/webruntime/status-rotator/client-export.json +0 -7
- package/40-checker/results/webruntime/status-rotator/installed-package.json +0 -107
- package/40-checker/results/webruntime/status-rotator/probe.json +0 -129
- package/40-checker/results/webruntime/status-rotator/shot.png +0 -0
- package/40-checker/results/webruntime/status-rotator/summary.md +0 -16
- package/40-checker/results/webruntime/summary.json +0 -323
- package/40-checker/results/webruntime/telemetry/probe.json +0 -20
- package/40-checker/results/webruntime/telemetry/summary.md +0 -4
- package/40-checker/results/webruntime/ui-auth/client-export.json +0 -7
- package/40-checker/results/webruntime/ui-auth/installed-package.json +0 -94
- package/40-checker/results/webruntime/ui-auth/probe.json +0 -129
- package/40-checker/results/webruntime/ui-auth/shot.png +0 -0
- package/40-checker/results/webruntime/ui-auth/summary.md +0 -16
- package/40-checker/results/webruntime/verification/probe.json +0 -20
- package/40-checker/results/webruntime/verification/summary.md +0 -4
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/client-export.json +0 -7
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/installed-package.json +0 -142
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/probe.json +0 -129
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/shot.png +0 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/summary.md +0 -16
|
@@ -1,460 +0,0 @@
|
|
|
1
|
-
# LEV-6 — stable prefix / assembly reuse (provider-capture, synthetic model)
|
|
2
|
-
|
|
3
|
-
- **Status:** `measured` — **provider-capture (synthetic model, not billing)**
|
|
4
|
-
- **Practice:** LEV-6 / stable prefix · assembly reuse (BOOST)
|
|
5
|
-
- **DSH:** `@deepseek-ai/dsh@0.2.2-alpha.2`, Node `v24.22.1` (CI: `ubuntu-latest`, Node 24)
|
|
6
|
-
- **Wire protocol:** Anthropic Messages `POST {baseURL}/v1/messages`, SSE stream
|
|
7
|
-
(`anthropic-version: 2023-06-01`) — **not** OpenAI chat-completions; see §2
|
|
8
|
-
- **Evidence:**
|
|
9
|
-
[lev6.json](lev6.json) · [capture.jsonl](capture.jsonl) (275 KB, 4 raw requests) ·
|
|
10
|
-
[capture-sample.json](capture-sample.json) (anatomy of one request) ·
|
|
11
|
-
[replication-r1.json](replication-r1.json) (summary of the second, standalone replication)
|
|
12
|
-
- **Harness:**
|
|
13
|
-
[lev6-capture-server.mjs](../../../examples/boost/lev6-capture-server.mjs) ·
|
|
14
|
-
[lev6-analyze.mjs](../../../examples/boost/lev6-analyze.mjs) ·
|
|
15
|
-
[lev6-arm.patch.yml](../../../examples/boost/lev6-arm.patch.yml) ·
|
|
16
|
-
[lev6-capture.yml](../../../.github/workflows/lev6-capture.yml)
|
|
17
|
-
- **Generated at:** `2026-10-31T16:07:22.027Z` (JSON `generatedAt`); capture sha256
|
|
18
|
-
`0b5a2e644548d63b67e37aae0f47aa2a1e7586c03b159c48ef653ba4aa74f19b`
|
|
19
|
-
- **Claim scope:** assembled request prefix bytes/tokens and byte-reuse ratios
|
|
20
|
-
only. **No billing, cost, or cache-hit claim is made anywhere in this
|
|
21
|
-
report**, and the two replications below are two runs of the same two arms,
|
|
22
|
-
not additional arms.
|
|
23
|
-
|
|
24
|
-
## 0. One-line result
|
|
25
|
-
|
|
26
|
-
Two fresh headless sessions per arm, same short task, both pointed at a local
|
|
27
|
-
synthetic endpoint: **arm A reused 100.00 % of the cacheable prompt prefix
|
|
28
|
-
(25,785 / 25,785 bytes ≈ 6,447 estimated tokens) and 100 % of the 25,966-byte
|
|
29
|
-
base request body**, while **arm B, whose persona prefix starts with a per-run
|
|
30
|
-
nonce, reused 0 bytes and diverged at prompt byte 0**. Raw HTTP-body reuse was
|
|
31
|
-
lower for both arms (A 40.99 %, B 6.44 %) because DSH appends a per-session
|
|
32
|
-
`dsh_session_log` extension after the base request; that field, not the prompt,
|
|
33
|
-
sets the wire-prefix boundary.
|
|
34
|
-
|
|
35
|
-
## 1. What is measured, and what is not
|
|
36
|
-
|
|
37
|
-
| Measured | Not measured |
|
|
38
|
-
|---|---|
|
|
39
|
-
| The exact request bytes DSH assembled (captured verbatim over loopback) | Any real provider's cache behaviour or cache hit rate |
|
|
40
|
-
| Longest common prefix with the previous request of the same arm, in raw wire bytes and in prompt order | Billing, price, or money saved |
|
|
41
|
-
| Token counts under DSH's own fixed density, `ceil(bytes / 4)` | Real tokenizer output (DSH itself uses this heuristic, not a tokenizer) |
|
|
42
|
-
| Session identity, headers, and request-extension contents | Whether `api.deepseek.com` accepts the extension fields (never contacted) |
|
|
43
|
-
|
|
44
|
-
The token rule is DSH's, not an invention here: `CHARS_PER_TOKEN = 4` in
|
|
45
|
-
`packages/llm/token-meter/src/estimate.ts`. The analyzer adds no per-block
|
|
46
|
-
structural overhead because the metric is a byte-span prefix, not a rendered
|
|
47
|
-
message price.
|
|
48
|
-
|
|
49
|
-
## 2. Correction to the experiment brief: the provider is Anthropic Messages
|
|
50
|
-
|
|
51
|
-
The brief said `llm-deepseek` speaks an OpenAI-compatible chat-completions API.
|
|
52
|
-
At `0.2.2-alpha.2` it does not, and a `/chat/completions` stub would have been
|
|
53
|
-
rejected before any capture happened:
|
|
54
|
-
|
|
55
|
-
| Evidence in the checkout | Value |
|
|
56
|
-
|---|---|
|
|
57
|
-
| `packages/llm/llm-deepseek/src/config.ts` `PUBLIC_BASE_URL` | `https://api.deepseek.com/anthropic` |
|
|
58
|
-
| `packages/llm/llm-deepseek/src/messages-api.ts` `messagesApiRoot()` | appends `/v1` unless the base path already ends in `/v1` |
|
|
59
|
-
| `packages/llm/llm-deepseek/src/adapter.ts` fetch | `POST ${messagesApiRoot(baseURL)}/messages`, `accept: text/event-stream`, `anthropic-version: 2023-06-01`, optional `anthropic-beta` |
|
|
60
|
-
| `packages/llm/llm-deepseek/src/wire-types.ts` | `WireRequest` = `{model, stream, max_tokens, messages, system, thinking, output_config?, tools?}` |
|
|
61
|
-
| `packages/llm/llm-deepseek/src/translate.ts` | requires `message_start` → block events → `message_delta.stop_reason` → `message_stop` |
|
|
62
|
-
|
|
63
|
-
The capture server therefore implements `POST /v1/messages` and the six SSE
|
|
64
|
-
events the translator accepts. **The DSH client accepted it on the first run**
|
|
65
|
-
(exit 0, synthetic answer printed); no fallback to a lower-level capture was
|
|
66
|
-
needed.
|
|
67
|
-
|
|
68
|
-
## 3. Method
|
|
69
|
-
|
|
70
|
-
### 3.1 Capture server
|
|
71
|
-
|
|
72
|
-
`examples/boost/lev6-capture-server.mjs` — zero dependencies, never calls the
|
|
73
|
-
network, writes one JSONL record per request and answers with a scripted
|
|
74
|
-
Messages stream.
|
|
75
|
-
|
|
76
|
-
| Route | Meaning |
|
|
77
|
-
|---|---|
|
|
78
|
-
| `GET /health` | readiness probe; also reports counters and the output path |
|
|
79
|
-
| `POST /v1/messages` | arm `unspecified` |
|
|
80
|
-
| `POST /<arm>/v1/messages` | arm `<arm>` — the URL path is the arm label |
|
|
81
|
-
|
|
82
|
-
Each JSONL record carries `seq`, `arm`, `receivedAt`, `method`, `path`,
|
|
83
|
-
`headers` (auth values replaced by `<redacted>`), `bodyBytes`, `bodySha256`,
|
|
84
|
-
`model`, `sessionId`, `syntheticUsage`, and the exact `rawBody`. Non-Messages
|
|
85
|
-
traffic is recorded with `kind: "other"` (0 such requests in this capture), so a
|
|
86
|
-
rejected fake provider would be visible rather than silently dropped.
|
|
87
|
-
|
|
88
|
-
`syntheticUsage` is derived from the request length (`ceil(bodyBytes / 4)`,
|
|
89
|
-
output from the reply length) and is labelled as such. It exists to drive DSH's
|
|
90
|
-
usage plumbing; the cache counters are explicitly `0` because the server models
|
|
91
|
-
no caching.
|
|
92
|
-
|
|
93
|
-
### 3.2 Pointing DSH at the endpoint
|
|
94
|
-
|
|
95
|
-
No source change and no credential file: two environment variables the provider
|
|
96
|
-
already reads, plus a profile overlay.
|
|
97
|
-
|
|
98
|
-
| Mechanism | Where it comes from |
|
|
99
|
-
|---|---|
|
|
100
|
-
| `DEEPSEEK_BASE_URL=http://127.0.0.1:<port>/<arm>` | `BASE_URL_ENV` in `llm-deepseek/src/config.ts`, resolved from the launch environment (`resolveAdapterOptions(config, environment)`) |
|
|
101
|
-
| `DEEPSEEK_API_KEY=sk-lev6-fixture-no-real-key` | headless reads credentials from the launch environment (`packages/bundle/headless/README.md`); a blank or header-unsafe key fails `assertUsableApiKey`, any other value passes |
|
|
102
|
-
| `DSH_HOME=<temp>/home-a` | isolated profile, sessions, storages — no user state is read |
|
|
103
|
-
| `DSH_TELEMETRY_DISABLED=1` | opt out of the OTel exporter |
|
|
104
|
-
| `LEV6_PERSONA_PREFIX` | read by the overlay below |
|
|
105
|
-
|
|
106
|
-
Profile overlay `examples/boost/lev6-arm.patch.yml` (applied with `--patch`,
|
|
107
|
-
after the bundle and profile layers):
|
|
108
|
-
|
|
109
|
-
```yaml
|
|
110
|
-
- id: system-prompt
|
|
111
|
-
config:
|
|
112
|
-
includeHarnessIdentity: false # the persona prefix becomes prompt byte 0
|
|
113
|
-
personaPrefix: !!js process.env.LEV6_PERSONA_PREFIX
|
|
114
|
-
- id: session-title-llm
|
|
115
|
-
disabled: true # otherwise a second, unrelated request per session
|
|
116
|
-
- id: agent-default-model
|
|
117
|
-
config:
|
|
118
|
-
provider: deepseek-official
|
|
119
|
-
model: deepseek-flash
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Both arms use the same overlay and the same task text
|
|
123
|
-
(`Reply with one short sentence.`); they differ only in the persona prefix.
|
|
124
|
-
|
|
125
|
-
### 3.3 Arms and sessions
|
|
126
|
-
|
|
127
|
-
| Arm | Persona prefix (first bytes of the system prompt) | Sessions |
|
|
128
|
-
|---|---|---|
|
|
129
|
-
| `arm-a` | `LEV6 persona prefix: stable benchmark persona.` | 2 fresh sessions, same bytes |
|
|
130
|
-
| `arm-b` | `<fresh UUID v4> LEV6 persona prefix: stable benchmark persona.` | 2 fresh sessions, new UUID per run |
|
|
131
|
-
|
|
132
|
-
Fresh sessions are real: headless creates a new `session-<uuid>` per invocation,
|
|
133
|
-
each with its own session log in its `DSH_HOME`; the capture confirms 4 distinct
|
|
134
|
-
`x-deepseek-harness-session-id` values for 4 requests.
|
|
135
|
-
|
|
136
|
-
### 3.4 Analyzer: two prefix views
|
|
137
|
-
|
|
138
|
-
`examples/boost/lev6-analyze.mjs` is pure (file in, JSON/markdown out):
|
|
139
|
-
|
|
140
|
-
1. **wire** — the raw HTTP body bytes. This is the literal capture. Note that
|
|
141
|
-
DSH serializes `messages` **before** `system` and `tools`, so this view
|
|
142
|
-
understates a stable system prompt.
|
|
143
|
-
2. **promptOrder** — the cacheable prompt in provider order:
|
|
144
|
-
`system` text ‖ tool-schema JSON ‖ messages JSON, no separators. This is a
|
|
145
|
-
documented, deterministic canonicalization of the captured request (not a
|
|
146
|
-
second capture) that mirrors the order a prefix-caching provider hashes.
|
|
147
|
-
|
|
148
|
-
Both views report: request count, total input bytes/tokens, prefix-reused
|
|
149
|
-
bytes/tokens, reuse ratio (reused ÷ the bytes that have a predecessor), and the
|
|
150
|
-
first divergence offset. The wire view additionally names the top-level field
|
|
151
|
-
that contains the divergence and reports whether the **base request** — every
|
|
152
|
-
field before the plugin request extensions — was fully reused.
|
|
153
|
-
|
|
154
|
-
### 3.5 Local validation
|
|
155
|
-
|
|
156
|
-
Endpoint smoke test with `curl` (see §7), then two independent replications of
|
|
157
|
-
the full experiment on WSL2 Ubuntu 24.04:
|
|
158
|
-
|
|
159
|
-
| Replication | How | Body sizes (A1/A2/B1/B2) |
|
|
160
|
-
|---|---|---|
|
|
161
|
-
| R1 | direct `node <dsh>/lib/bin.js --profile headless …` runs, 4 sessions | 63,582 / 63,582 / 63,656 / 63,656 bytes |
|
|
162
|
-
| R2 | the CI workflow's `run:` steps executed verbatim by a local harness with a `dsh` shim | 63,568 / 63,568 / 63,642 / 63,642 bytes |
|
|
163
|
-
|
|
164
|
-
R1 and R2 are **two independent replications of the same experiment — the same
|
|
165
|
-
two arms (`arm-a`, `arm-b`) re-executed — not a third and fourth arm.** The
|
|
166
|
-
experiment proper has exactly two arms and four sessions; R1/R2 exist only to
|
|
167
|
-
show the result repeats across two independent runs of the same code path.
|
|
168
|
-
|
|
169
|
-
R2 is the committed capture (`capture.jsonl`, `lev6.json`); R1's summary is
|
|
170
|
-
[replication-r1.json](replication-r1.json) (its raw capture lived in a scratch
|
|
171
|
-
directory and is not committed). The ±14-byte offset between replications is the
|
|
172
|
-
length of the workspace path echoed into the runtime context message. Every
|
|
173
|
-
conclusion below holds identically in both.
|
|
174
|
-
|
|
175
|
-
## 4. Results
|
|
176
|
-
|
|
177
|
-
`40-checker/results/lev6/lev6.json`, capture sha256 `0b5a2e64…`:
|
|
178
|
-
|
|
179
|
-
| arm | requests | sessions | input bytes | input tokens | wire reused | wire reuse | wire 1st divergence | base request | base fully reused | prompt reused | prompt reuse | prompt 1st divergence |
|
|
180
|
-
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
181
|
-
| `arm-a` | 2 | 2 | 127,136 | 31,784 | 26,059 B / 6,515 tok | **40.99 %** | 26,059 (`dsh_session_log`) | 25,966 B | **yes (25,966/25,966)** | 25,785 B / 6,447 tok | **100.00 %** | none |
|
|
182
|
-
| `arm-b` | 2 | 2 | 127,284 | 31,821 | 4,098 B / 1,025 tok | **6.44 %** | 4,098 (`system`, +0 into the system value) | 26,003 B | no (4,098/26,003) | 0 B / 0 tok | **0.00 %** | **0 (`system`)** |
|
|
183
|
-
|
|
184
|
-
Per-request facts:
|
|
185
|
-
|
|
186
|
-
| arm | seq | session | bytes | tokens | base request bytes |
|
|
187
|
-
|---|---|---|---|---|---|
|
|
188
|
-
| `arm-a` | 1 | `session-83128dee-a158-411f-8ed1-9e60b07ffea7` | 63,568 | 15,892 | 25,966 |
|
|
189
|
-
| `arm-a` | 2 | `session-032ee526-b3fb-49ee-a9f0-5f44ba918c71` | 63,568 | 15,892 | 25,966 |
|
|
190
|
-
| `arm-b` | 3 | `session-ec7578bc-d8e6-4e94-8384-8a308f6f0172` | 63,642 | 15,911 | 26,003 |
|
|
191
|
-
| `arm-b` | 4 | `session-e560bada-6790-4759-9f46-d2302449670d` | 63,642 | 15,911 | 26,003 |
|
|
192
|
-
|
|
193
|
-
R1 (standalone) gives the same picture: arm A wire reuse 40.99 % (26,063 B),
|
|
194
|
-
base 100 % (25,970/25,970), prompt 100 % (25,789/25,789); arm B wire 6.44 %
|
|
195
|
-
(4,102 B), prompt 0.00 % with divergence at prompt byte 0.
|
|
196
|
-
|
|
197
|
-
Assertions (all 11 pass in R1 and R2; the analyzer exits non-zero on failure):
|
|
198
|
-
|
|
199
|
-
| id | R2 result | detail |
|
|
200
|
-
|---|---|---|
|
|
201
|
-
| `captures-two-arms` | PASS | `arm-a(2), arm-b(2)` |
|
|
202
|
-
| `two-requests-per-arm` | PASS | 2 per arm |
|
|
203
|
-
| `fresh-session-per-request` | PASS | 2/2 distinct sessions per arm |
|
|
204
|
-
| `same-task-text-per-arm` | PASS | canonical messages identical within each arm |
|
|
205
|
-
| `stable-prompt-prefix-reuse` | PASS | arm A prompt reuse 100.00 % (≥ 95 %) |
|
|
206
|
-
| `stable-base-request-reused` | PASS | arm A base request 25,966/25,966 B; the wire prefix stops only at `dsh_session_log` |
|
|
207
|
-
| `volatile-diverges-at-prompt-byte-zero` | PASS | arm B prompt divergence 0 in `system` (≤ 16) |
|
|
208
|
-
| `volatile-prompt-reuse-is-small` | PASS | arm B prompt reuse 0.00 % (≤ 5 %) |
|
|
209
|
-
| `volatile-wire-diverges-at-system-prefix-start` | PASS | arm B wire divergence 4,098, i.e. 0 bytes into the system value |
|
|
210
|
-
| `volatile-wire-diverges-at-system-field` | PASS | arm B wire divergence field = `system` |
|
|
211
|
-
| `arms-are-distinguishable` | PASS | prompt reuse gap 100.00 pp (≥ 50 pp) |
|
|
212
|
-
|
|
213
|
-
## 5. Where the 63.5 KB goes — request anatomy
|
|
214
|
-
|
|
215
|
-
From `capture-sample.json` (arm A, seq 1). Top-level fields, in wire order and
|
|
216
|
-
byte size:
|
|
217
|
-
|
|
218
|
-
| # | field | offset | bytes | kind |
|
|
219
|
-
|---|---|---|---|---|
|
|
220
|
-
| 1 | `model` | 1 | 16 | base |
|
|
221
|
-
| 2 | `stream` | 26 | 4 | base |
|
|
222
|
-
| 3 | `messages` | 40 | 3,952 | base |
|
|
223
|
-
| 4 | `max_tokens` | 4,004 | 6 | base |
|
|
224
|
-
| 5 | `thinking` | 4,024 | 18 | base |
|
|
225
|
-
| 6 | `output_config` | 4,054 | 17 | base |
|
|
226
|
-
| 7 | `system` | 4,088 | 2,665 (text 2,639) | base |
|
|
227
|
-
| 8 | `tools` | 6,763 | 19,194 (24 tools) | base |
|
|
228
|
-
| 9 | `dsh_session_log` | 25,966 | 31,509 | extension |
|
|
229
|
-
| 10 | `dsh_plugin_packages` | 57,494 | 6,051 (87 packages) | extension |
|
|
230
|
-
|
|
231
|
-
Two facts follow directly, and they matter for LEV-6:
|
|
232
|
-
|
|
233
|
-
1. **The base request is the stable unit, and it is only 41 % of the bytes.**
|
|
234
|
-
The remaining 59 % (37,602 B) are plugin request extensions appended by
|
|
235
|
-
`prepareRequestExtensions` (`JSON.stringify({ ...body, ...fields })`). The
|
|
236
|
-
`dsh_session_log` field carries the session envelope (`session.id`,
|
|
237
|
-
`createdAt`, `cwd`) and therefore differs between every fresh session; the
|
|
238
|
-
`dsh_plugin_packages` inventory is constant for one installation.
|
|
239
|
-
2. **`dsh_session_log` re-sends much of the request.** Its 14 wire events
|
|
240
|
-
include a 2,826-byte `system/message` copy of the system prompt, a
|
|
241
|
-
19,357-byte `request/header` copy of the tool schemas, and 152 + 1,526 +
|
|
242
|
-
5,845-byte `user/message` copies — i.e. the payload is duplicated behind a
|
|
243
|
-
per-session identifier. Whether a provider charges for these bytes is a
|
|
244
|
-
provider-side billing question this experiment does not answer; what is
|
|
245
|
-
measured is that DSH assembles and sends them.
|
|
246
|
-
|
|
247
|
-
Event breakdown of `dsh_session_log` in this request:
|
|
248
|
-
`permission/preset` 28 · `sandbox/mode` 26 · `approval/policy` 16 ·
|
|
249
|
-
`agent/inbox/spliced` 198 + 63 · `turn/start` 10 · `step/start` 19 ·
|
|
250
|
-
`system/message` 2,826 · `user/message` 152 + 1,526 + 5,845 ·
|
|
251
|
-
`request/header` 19,357 · `request/context` 115 · `session/title` 89.
|
|
252
|
-
|
|
253
|
-
Headers of the same request:
|
|
254
|
-
|
|
255
|
-
```http
|
|
256
|
-
POST /arm-a/v1/messages HTTP/1.1
|
|
257
|
-
host: 127.0.0.1:8787
|
|
258
|
-
connection: keep-alive
|
|
259
|
-
user-agent: deepseek-harness/0.2.2-alpha.2 (+https://github.com/deepseek-ai/deepseek-harness)
|
|
260
|
-
content-type: application/json
|
|
261
|
-
accept: text/event-stream
|
|
262
|
-
x-api-key: <redacted>
|
|
263
|
-
anthropic-version: 2023-06-01
|
|
264
|
-
x-deepseek-harness-user-id: ff34d592-c014-43a0-aacd-fae009d599c7
|
|
265
|
-
x-deepseek-harness-session-id: session-83128dee-a158-411f-8ed1-9e60b07ffea7
|
|
266
|
-
accept-language: *
|
|
267
|
-
sec-fetch-mode: cors
|
|
268
|
-
accept-encoding: gzip, deflate
|
|
269
|
-
content-length: 63568
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
No `anthropic-beta` header was needed: no file API, no in-history tool changes.
|
|
273
|
-
|
|
274
|
-
## 6. What this means for the LEV-6 practice
|
|
275
|
-
|
|
276
|
-
- **A stable system prefix is achievable and byte-exact.** With the same
|
|
277
|
-
persona and the same task, two fresh sessions assemble a base request that is
|
|
278
|
-
byte-identical (25,966/25,966 B), including the 24 tool schemas and the
|
|
279
|
-
system prompt. Nothing volatile leaks into `system`, `tools`, or `messages`
|
|
280
|
-
in this composition — no clock, no session id, no port, no cwd inside the
|
|
281
|
-
prompt (the cwd appears in the runtime-context *context* message, which is
|
|
282
|
-
stable for a fixed workspace).
|
|
283
|
-
- **One nonce at the first prompt byte erases the whole prompt prefix.** Arm B
|
|
284
|
-
diverges at prompt byte 0 and reuses nothing, even though the rest of the
|
|
285
|
-
system prompt, all 24 tool schemas, and the entire message list are
|
|
286
|
-
unchanged. The lesson for plugin authors is the one LEV-6 states: put
|
|
287
|
-
per-run values in runtime context (a separate user-role snapshot), never in
|
|
288
|
-
the persona/system prefix.
|
|
289
|
-
- **Raw request bytes are the wrong prefix model for this harness.** DSH
|
|
290
|
-
appends `dsh_session_log` *after* the base request, and that field carries
|
|
291
|
-
the session id. A provider that cached raw HTTP bytes would stop at byte
|
|
292
|
-
25,966 regardless of how stable the prompt is (hence A's 40.99 %); a
|
|
293
|
-
provider that caches the semantic prompt (system → tools → messages) would
|
|
294
|
-
see the full 25,785 bytes (100 %). The `promptOrder` view exists so the two
|
|
295
|
-
effects are not confused. Neither view is a measured cache hit.
|
|
296
|
-
- **The JSON key order is a trap when auditing this by hand.** `system` is
|
|
297
|
-
serialized after `messages` (offset 4,088 of 63,568), so a naive "first
|
|
298
|
-
differing byte" reading of a volatile *system* prefix reports ~4 KB instead
|
|
299
|
-
of the 2.6 KB prompt. The analyzer therefore reports both the wire offset and
|
|
300
|
-
the offset inside the system value (`+0` for arm B).
|
|
301
|
-
|
|
302
|
-
## 7. Recorded sample request
|
|
303
|
-
|
|
304
|
-
Endpoint validation with `curl` (arm route, hand-written 194-byte body). Nothing
|
|
305
|
-
is redacted for sensitivity: the only key involved is the fixture value
|
|
306
|
-
`sk-lev6-curl-sample-not-a-real-key`, redacted by the server's header policy.
|
|
307
|
-
|
|
308
|
-
```console
|
|
309
|
-
$ curl -sS -D - -X POST http://127.0.0.1:8798/arm-a/v1/messages \
|
|
310
|
-
-H 'content-type: application/json' \
|
|
311
|
-
-H 'x-api-key: sk-lev6-curl-sample-not-a-real-key' \
|
|
312
|
-
-H 'anthropic-version: 2023-06-01' \
|
|
313
|
-
--data '{"model":"deepseek-flash","stream":true,"max_tokens":64,
|
|
314
|
-
"messages":[{"role":"user","content":[{"type":"text","text":"Say hi."}]}],
|
|
315
|
-
"system":"You are a test agent.","thinking":{"type":"disabled"}}'
|
|
316
|
-
HTTP/1.1 200 OK
|
|
317
|
-
content-type: text/event-stream; charset=utf-8
|
|
318
|
-
cache-control: no-cache, no-transform
|
|
319
|
-
connection: keep-alive
|
|
320
|
-
x-lev6-capture: synthetic
|
|
321
|
-
|
|
322
|
-
event: message_start
|
|
323
|
-
data: {"type":"message_start","message":{"id":"msg_lev6_synthetic","type":"message","role":"assistant","model":"deepseek-flash","content":[],"usage":{"input_tokens":49,"output_tokens":0,"cache_read_input_tokens":0,"cache_creation_input_tokens":0}}}
|
|
324
|
-
|
|
325
|
-
event: content_block_start
|
|
326
|
-
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
|
|
327
|
-
|
|
328
|
-
event: content_block_delta
|
|
329
|
-
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"LEV6 synthetic reply (no model was called)."}}
|
|
330
|
-
|
|
331
|
-
event: content_block_stop
|
|
332
|
-
event: message_delta … {"stop_reason":"end_turn","usage":{"output_tokens":11}}
|
|
333
|
-
event: message_stop
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
The record written for it (`rawBody`, byte-exact):
|
|
337
|
-
|
|
338
|
-
```json
|
|
339
|
-
{"model":"deepseek-flash","stream":true,"max_tokens":64,"messages":[{"role":"user","content":[{"type":"text","text":"Say hi."}]}],"system":"You are a test agent.","thinking":{"type":"disabled"}}
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
`bodyBytes: 194`, `bodySha256: 56f65947…`, `syntheticUsage.input_tokens: 49`.
|
|
343
|
-
The real DSH request from the experiment is in
|
|
344
|
-
[capture-sample.json](capture-sample.json) (field table, headers, event
|
|
345
|
-
breakdown, first 1,600 bytes) and verbatim in [capture.jsonl](capture.jsonl).
|
|
346
|
-
|
|
347
|
-
## 8. CI: exact command and artifacts
|
|
348
|
-
|
|
349
|
-
Workflow: [.github/workflows/lev6-capture.yml](../../../.github/workflows/lev6-capture.yml),
|
|
350
|
-
manual trigger only.
|
|
351
|
-
|
|
352
|
-
```console
|
|
353
|
-
gh workflow run lev6-capture.yml # or: Actions → lev6-capture → Run workflow
|
|
354
|
-
gh run watch
|
|
355
|
-
gh run download <run-id> -n lev6-capture
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
What the job does, in order: Node 24 + `npm install --global
|
|
359
|
-
@deepseek-ai/dsh@0.2.2-alpha.2` → start the capture server on
|
|
360
|
-
`127.0.0.1:8787` (`--reset`, so each run starts empty) and wait for `/health` →
|
|
361
|
-
in an **empty workspace** under the runner temp dir, run `dsh --profile headless
|
|
362
|
-
--patch examples/boost/lev6-arm.patch.yml "Reply with one short sentence."`
|
|
363
|
-
twice for `arm-a` (constant persona) and twice for `arm-b` (fresh
|
|
364
|
-
`crypto.randomUUID()` per run), each arm with its own `DSH_HOME` → stop the
|
|
365
|
-
server → run the analyzer with `--assert` → publish the markdown table to the
|
|
366
|
-
job page → upload the artifact even if assertions fail → fail the job if the
|
|
367
|
-
analyzer exited non-zero.
|
|
368
|
-
|
|
369
|
-
The artifact `lev6-capture` contains `capture.jsonl`, `lev6.json` (written by CI
|
|
370
|
-
as `summary.json`; same object), `summary.md`, `server.out`, `server.err`, the
|
|
371
|
-
four `stdout-*.txt` / `stderr-*.txt` pairs, `nonces.txt`, and the recorded
|
|
372
|
-
toolchain versions.
|
|
373
|
-
|
|
374
|
-
## 9. Limitations and non-claims
|
|
375
|
-
|
|
376
|
-
- **Synthetic model.** The server returns a fixed text block; no model ran.
|
|
377
|
-
Tool-call streaming, thinking blocks, and multi-turn tool loops are not
|
|
378
|
-
exercised, so this says nothing about those paths' assembly.
|
|
379
|
-
- **No provider, no cache, no billing.** No provider cache was hit or
|
|
380
|
-
emulated; the `usage` counters are derived from request bytes and the cache
|
|
381
|
-
counters are zero. "Reuse ratio" here is a byte-prefix property of two
|
|
382
|
-
assembled requests, not a cache hit rate and not money.
|
|
383
|
-
- **`promptOrder` is a model.** It is a deterministic canonicalization
|
|
384
|
-
(`system` ‖ tools ‖ messages) of the captured bytes. A real provider may
|
|
385
|
-
serialize tool schemas differently; the view is labelled and never mixed with
|
|
386
|
-
the raw capture.
|
|
387
|
-
- **Framework fields are unverified against the official gateway.** The
|
|
388
|
-
`dsh_session_log` and `dsh_plugin_packages` extensions are what DSH assembles
|
|
389
|
-
for the official route in this composition; whether `api.deepseek.com`
|
|
390
|
-
accepts or bills them was not tested (no request left the machine).
|
|
391
|
-
- **Composition deviations, both arms equally:** `session-title-llm` is
|
|
392
|
-
disabled (it would add a second, differently-shaped request per session, and
|
|
393
|
-
the capture would mix two request kinds), and `includeHarnessIdentity` is off
|
|
394
|
-
so the configurable persona is prompt byte 0 (the shipped headless profile
|
|
395
|
-
starts with a fixed identity section). Restoring the default would move arm
|
|
396
|
-
B's divergence to the persona section offset, not to 0, without changing the
|
|
397
|
-
conclusion.
|
|
398
|
-
- **Two sessions per arm, one task, one host.** Linux/WSL2 locally and
|
|
399
|
-
`ubuntu-latest` in CI; no Windows/macOS run. Byte counts shift with the
|
|
400
|
-
workspace path length (observed ±14 bytes), which is why the assertions are
|
|
401
|
-
relative, not absolute.
|
|
402
|
-
- **Session identity drives the wire boundary.** The `dsh_session_log`
|
|
403
|
-
envelope means the wire prefix can never reach 100 % across fresh sessions,
|
|
404
|
-
even for a perfect prefix. That is a property of this DSH composition, and
|
|
405
|
-
the report states it rather than hiding it behind the prompt-order number.
|
|
406
|
-
|
|
407
|
-
## 10. Reproduction (local)
|
|
408
|
-
|
|
409
|
-
```sh
|
|
410
|
-
# 1. install the anchor (CI installs globally; locally a project install is fine)
|
|
411
|
-
npm install @deepseek-ai/dsh@0.2.2-alpha.2
|
|
412
|
-
|
|
413
|
-
# 2. capture server
|
|
414
|
-
node examples/boost/lev6-capture-server.mjs \
|
|
415
|
-
--port 8787 --out capture.jsonl --reset &
|
|
416
|
-
|
|
417
|
-
# 3. two fresh sessions per arm, empty workspace, isolated homes
|
|
418
|
-
mkdir -p /tmp/lev6/workspace
|
|
419
|
-
for run in 1 2; do
|
|
420
|
-
( cd /tmp/lev6/workspace && \
|
|
421
|
-
DSH_HOME=/tmp/lev6/home-a \
|
|
422
|
-
DEEPSEEK_API_KEY=sk-lev6-fixture-no-real-key \
|
|
423
|
-
DEEPSEEK_BASE_URL=http://127.0.0.1:8787/arm-a \
|
|
424
|
-
DSH_TELEMETRY_DISABLED=1 \
|
|
425
|
-
LEV6_PERSONA_PREFIX='LEV6 persona prefix: stable benchmark persona.' \
|
|
426
|
-
dsh --profile headless --patch "$PWD/examples/boost/lev6-arm.patch.yml" \
|
|
427
|
-
'Reply with one short sentence.' )
|
|
428
|
-
done
|
|
429
|
-
for run in 1 2; do
|
|
430
|
-
nonce="$(node -p 'crypto.randomUUID()')"
|
|
431
|
-
( cd /tmp/lev6/workspace && \
|
|
432
|
-
DSH_HOME=/tmp/lev6/home-b \
|
|
433
|
-
DEEPSEEK_API_KEY=sk-lev6-fixture-no-real-key \
|
|
434
|
-
DEEPSEEK_BASE_URL=http://127.0.0.1:8787/arm-b \
|
|
435
|
-
DSH_TELEMETRY_DISABLED=1 \
|
|
436
|
-
LEV6_PERSONA_PREFIX="$nonce LEV6 persona prefix: stable benchmark persona." \
|
|
437
|
-
dsh --profile headless --patch "$PWD/examples/boost/lev6-arm.patch.yml" \
|
|
438
|
-
'Reply with one short sentence.' )
|
|
439
|
-
done
|
|
440
|
-
|
|
441
|
-
# 4. pure analysis (exit 1 if an expectation fails)
|
|
442
|
-
node examples/boost/lev6-analyze.mjs \
|
|
443
|
-
--capture capture.jsonl --out lev6.json --markdown summary.md --assert
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
---
|
|
447
|
-
|
|
448
|
-
## CI replication (2026-11-01)
|
|
449
|
-
|
|
450
|
-
`lev6-capture` run [41218936165](https://github.com/PerryLink/dsh-standards/actions/runs/41218936165)
|
|
451
|
-
completed with the analyzer's 11/11 assertions:
|
|
452
|
-
|
|
453
|
-
| arm | wire reuse | base request fully reused | prompt-order reuse | prompt first divergence |
|
|
454
|
-
|---|---|---|---|---|
|
|
455
|
-
| arm-a (stable) | 42.05% (22,855 B) | yes, 22,762/22,762 B | **100.00%** (22,581 B) | none |
|
|
456
|
-
| arm-b (per-run nonce) | 1.64% (894 B) | no | **0.00%** (0 B) | **0 (`system`)** |
|
|
457
|
-
|
|
458
|
-
Absolute byte counts differ from the committed capture because the CI workspace
|
|
459
|
-
path and profile layers change the serialized prefix; the relative result and the
|
|
460
|
-
falsification are identical. Artifact: `lev6-capture` (run 41218936165).
|