@dailephd/my-dev-kit-lab 0.6.2 → 0.7.0
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/CHANGELOG.md +26 -0
- package/README.md +11 -8
- package/benchmarks/contracts/context-window-scaling-cases.json +220 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/README.md +14 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/carrier-depot-catalog-01.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/course-module-catalog-06.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/library-shelf-catalog-07.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/sensor-station-catalog-05.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/staff-rota-catalog-03.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/supplier-contract-catalog-02.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-1/vehicle-route-catalog-04.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/archive-box-catalog-12.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/clinic-ward-catalog-08.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/greenhouse-bay-catalog-13.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/harbor-berth-catalog-10.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/kitchen-section-catalog-15.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/market-stall-catalog-09.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/station-platform-catalog-14.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-2/workshop-bench-catalog-11.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/archive-box-catalog-28.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/carrier-depot-catalog-17.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/clinic-ward-catalog-24.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/course-module-catalog-22.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/greenhouse-bay-catalog-29.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/harbor-berth-catalog-26.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/kitchen-section-catalog-31.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/library-shelf-catalog-23.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/market-stall-catalog-25.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/sensor-station-catalog-21.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/staff-rota-catalog-19.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/station-platform-catalog-30.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/supplier-contract-catalog-18.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/vehicle-route-catalog-20.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/warehouse-zone-catalog-16.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-3/workshop-bench-catalog-27.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/archive-box-catalog-44.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/carrier-depot-catalog-33.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/carrier-depot-catalog-49.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/clinic-ward-catalog-40.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/clinic-ward-catalog-56.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/course-module-catalog-38.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/course-module-catalog-54.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/greenhouse-bay-catalog-45.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/harbor-berth-catalog-42.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/harbor-berth-catalog-58.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/kitchen-section-catalog-47.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/library-shelf-catalog-39.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/library-shelf-catalog-55.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/market-stall-catalog-41.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/market-stall-catalog-57.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/sensor-station-catalog-37.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/sensor-station-catalog-53.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/staff-rota-catalog-35.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/staff-rota-catalog-51.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/station-platform-catalog-46.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/supplier-contract-catalog-34.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/supplier-contract-catalog-50.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/vehicle-route-catalog-36.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/vehicle-route-catalog-52.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/warehouse-zone-catalog-32.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/warehouse-zone-catalog-48.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/filler/tier-4/workshop-bench-catalog-43.ts +302 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/tasks/auditRedaction.ts +25 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/tasks/inventoryReservation.ts +26 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/tasks/invoiceTotals.ts +25 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/src/tasks/shippingQuote.ts +32 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/tests/tasks/auditRedaction.test.ts +17 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/tests/tasks/inventoryReservation.test.ts +19 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/tests/tasks/invoiceTotals.test.ts +14 -0
- package/benchmarks/projects/context-window-scaling-fixed-ts/tests/tasks/shippingQuote.test.ts +19 -0
- package/dist/src/cli/help.js +27 -10
- package/dist/src/commands/runExperimentDescribeCommand.js +5 -2
- package/dist/src/commands/runExperimentRunCommand.js +64 -8
- package/dist/src/evaluation/benchmarkMetadata.js +5 -1
- package/dist/src/evaluation/parseAgentAnswer.js +172 -24
- package/dist/src/evaluation/runMyDevKitRetrieval.js +120 -7
- package/dist/src/experiments/defaultRegistry.js +2 -0
- package/dist/src/experiments/plugins/contextWindowScaling/cliBudgets.js +31 -0
- package/dist/src/experiments/plugins/contextWindowScaling/config.js +84 -0
- package/dist/src/experiments/plugins/contextWindowScaling/contextBudget.js +43 -0
- package/dist/src/experiments/plugins/contextWindowScaling/evaluation.js +36 -0
- package/dist/src/experiments/plugins/contextWindowScaling/execution.js +187 -0
- package/dist/src/experiments/plugins/contextWindowScaling/executionArtifact.js +15 -0
- package/dist/src/experiments/plugins/contextWindowScaling/executionArtifactReader.js +186 -0
- package/dist/src/experiments/plugins/contextWindowScaling/index.js +14 -0
- package/dist/src/experiments/plugins/contextWindowScaling/metadata.js +12 -0
- package/dist/src/experiments/plugins/contextWindowScaling/metrics.js +149 -0
- package/dist/src/experiments/plugins/contextWindowScaling/plugin.js +185 -0
- package/dist/src/experiments/plugins/contextWindowScaling/projectProfile.js +51 -0
- package/dist/src/experiments/plugins/contextWindowScaling/relevantFiles.js +76 -0
- package/dist/src/experiments/plugins/contextWindowScaling/successEvidence.js +60 -0
- package/dist/src/experiments/plugins/contextWindowScaling/types.js +1 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/comparisonV2.js +49 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/config.js +5 -4
- package/dist/src/experiments/plugins/incrementalChangeStaleness/disposableTarget.js +20 -2
- package/dist/src/experiments/plugins/incrementalChangeStaleness/execution.js +42 -16
- package/dist/src/experiments/plugins/incrementalChangeStaleness/executionArtifact.js +4 -4
- package/dist/src/experiments/plugins/incrementalChangeStaleness/executionArtifactV2.js +289 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/executionV2.js +195 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/indexClone.js +76 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/lifecycle.js +64 -32
- package/dist/src/experiments/plugins/incrementalChangeStaleness/lifecyclePolicy.js +6 -4
- package/dist/src/experiments/plugins/incrementalChangeStaleness/lifecyclePolicyV2.js +78 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/lifecycleV2.js +298 -0
- package/dist/src/experiments/plugins/incrementalChangeStaleness/plugin.js +213 -12
- package/dist/src/experiments/plugins/incrementalChangeStaleness/treatmentSessionV2.js +5 -0
- package/dist/src/experiments/plugins/index.js +1 -0
- package/dist/src/experiments/plugins/warmIndexReuse/agentEvaluation.js +1 -1
- package/dist/src/experiments/plugins/warmIndexReuse/warmIndexSession.js +3 -1
- package/dist/src/mobile/android/advancedSecurity/candidateEvidence.js +9 -2
- package/dist/src/mobile/android/advancedSecurity/redaction.js +19 -10
- package/dist/src/mobile/android/advancedSecurity/secretCandidates/analyzeSecretCandidates.js +12 -2
- package/dist/src/mobile/android/advancedSecurity/signingConfiguration/analyzeSigningConfiguration.js +1 -1
- package/dist/src/mobile/android/advancedSecurity/signingConfiguration/extractSigningConfigurations.js +7 -7
- package/dist/src/plots/buildContextWindowScalingPlotData.js +96 -0
- package/dist/src/plots/index.js +1 -0
- package/dist/src/plots/writePlotArtifacts.js +12 -3
- package/dist/src/report/experiments/buildContextWindowScalingReport.js +84 -0
- package/dist/src/report/experiments/buildIncrementalChangeStalenessPluginReport.js +33 -0
- package/dist/src/report/experiments/buildIncrementalChangeStalenessReport.js +1 -1
- package/dist/src/report/experiments/buildIncrementalChangeStalenessReportV2.js +80 -0
- package/dist/src/report/experiments/buildPluginExperimentReport.js +24 -4
- package/dist/src/report/experiments/contextWindowScalingReportModel.js +3 -0
- package/dist/src/report/experiments/incrementalChangeStalenessReportModelV2.js +3 -0
- package/dist/src/report/experiments/incrementalChangeStalenessReportRowsV2.js +146 -0
- package/dist/src/report/experiments/index.js +7 -0
- package/dist/src/report/experiments/renderContextWindowScalingHtml.js +99 -0
- package/dist/src/report/experiments/renderContextWindowScalingText.js +108 -0
- package/dist/src/report/experiments/renderIncrementalChangeStalenessHtml.js +4 -0
- package/dist/src/report/experiments/renderIncrementalChangeStalenessHtmlV2.js +111 -0
- package/dist/src/report/experiments/renderIncrementalChangeStalenessTextV2.js +96 -0
- package/dist/src/report/experiments/renderPluginExperimentReportHtml.js +3 -0
- package/dist/src/report/experiments/renderPluginExperimentReportText.js +14 -0
- package/dist/src/securityValidation/staticScans/codeql.js +8 -8
- package/docs/METRICS.md +58 -0
- package/examples/tutorial-browser/prepare.mjs +13 -13
- package/examples/tutorial-browser/server.mjs +13 -13
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,32 @@ All notable changes to my-dev-kit-lab are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.7.0] - 2026-10-01
|
|
8
|
+
|
|
9
|
+
### Context-window scaling
|
|
10
|
+
|
|
11
|
+
- Added the self-only `context-window-scaling` experiment plugin with standard and custom estimated-token budgets, raw-full-file and my-dev-kit-guided context evidence, fit/utilization/correctness/success measurements, and bounded omitted-relevant-file reporting.
|
|
12
|
+
- Added the versioned `context-window-scaling-execution.json` artifact, JSON/text/HTML report section, and three context-window plot families through the existing `plots generate` command.
|
|
13
|
+
- Extended exact packed-package acceptance to cover installed discovery, execution, reports, plots, custom budgets, and immutability of the bundled context-window case contract and fixed project.
|
|
14
|
+
|
|
15
|
+
## [0.6.3] - 2026-09-30
|
|
16
|
+
|
|
17
|
+
### Four-treatment partial-refresh experiments
|
|
18
|
+
|
|
19
|
+
- Replaced CodeQL-flagged polynomial regular-expression parsing paths with linear scanning and strengthened credential evidence fingerprints with context-salted scrypt derivation.
|
|
20
|
+
|
|
21
|
+
- Extended the `incremental-change-staleness` plugin from two treatments to four, in fixed order: `stale-index` (`my-dev-kit-no-refresh`), `changed-files-refresh` (`my-dev-kit-changed-files-refresh`), `affected-neighborhood-refresh` (`my-dev-kit-affected-neighborhood-refresh`), and `full-refresh` (`my-dev-kit-full-refresh`). No new experiment plugin was added.
|
|
22
|
+
- Changed the default kit command of `incremental-change-staleness` from `npx @dailephd/my-dev-kit@1.12.4` to `npx @dailephd/my-dev-kit@1.12.5`, the first published version with `index --incremental --refresh-scope changed-files|affected-neighborhood`. Lab requests the scope internally; no Lab-level `--refresh-scope` flag exists.
|
|
23
|
+
- Added a four-treatment lifecycle: four isolated disposable targets, equivalent trusted baselines, containment-checked whole-directory index clones for the two partial treatments, a mutation barrier, and per-treatment freshness validation. `stale-index` performs no post-mutation index invocation.
|
|
24
|
+
- Added truthful refresh evidence: upstream `requestedScope`, `appliedScope`, `selectionStatus`, `fallbackReason`, fresh-extraction, reused-file, forced-neighbor, and seed/affected counts, and a Lab `refreshRealization` of `NO_REFRESH`, `APPLIED_PARTIAL`, `FALLBACK_FULL`, or `FULL_REFRESH`. A partial treatment that falls back is `not-comparable-as-partial-refresh`.
|
|
25
|
+
- Added exactly three reference comparisons against `full-refresh`: `stale-index` (unchanged v0.6.2 stale-risk vocabulary) and the two partial treatments (`observed-regression-relative-to-full`, `no-observed-regression-relative-to-full`, `inconclusive`, `not-comparable-as-partial-refresh`). There is no winner, ranking, safety score, or automatic refresh policy.
|
|
26
|
+
- New runs write execution schema `my-dev-kit-lab-incremental-change-staleness-execution-v2` and report schema `my-dev-kit-lab-incremental-change-staleness-report-v2` (JSON, text, HTML); historical V1 artifacts and reports remain readable. Added additive numeric `upstream-refresh-*` metrics for the partial treatments, kept separate from the Lab affected-neighborhood metrics.
|
|
27
|
+
- `experiment run --help` now states that `--target` applies only to plugins that support external targets and that self-only plugins reject an explicit external `--target`.
|
|
28
|
+
- Automatic warm-index campaign report screenshots are best-effort presentation evidence: failed capture stays explicitly failed with its warning and no fabricated PNG, but does not fail an otherwise successful campaign. Required campaign, report, plot, and gallery failures remain fatal.
|
|
29
|
+
- Updated the packed-package acceptance gate (`npm run verify:packed-package`) to pin the real registry package `@dailephd/my-dev-kit@1.12.5` and to verify all six scenarios with four treatments, applied partial refresh, operational discrimination, and installed-package, upstream-package, and canonical-benchmark immutability.
|
|
30
|
+
- Added repository-controlled GitHub CodeQL advanced-setup analysis for JavaScript/TypeScript and Actions; the release candidate passed exact-SHA analysis with no open applicable alerts.
|
|
31
|
+
- No new plugin, `graph-diff` dependency, true-symbol-diff metric, multi-hop traversal, automatic refresh policy, external-target support, or new plot, screenshot, or gallery item was added.
|
|
32
|
+
|
|
7
33
|
## [0.6.2] - 2026-09-27
|
|
8
34
|
|
|
9
35
|
### Incremental-change and staleness plugin
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ my-dev-kit provides local repository indexing and graph-guided retrieval. my-dev
|
|
|
6
6
|
|
|
7
7
|
Whole-ecosystem workflows are centralized in [my-dev-kit/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md](https://github.com/dailephd/my-dev-kit/blob/main/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md). Its [command-surface compatibility map](https://github.com/dailephd/my-dev-kit/blob/main/docs/ECOSYSTEM_DEVELOPMENT_WORKFLOWS.md#915-command-surface-compatibility-map) documents which Lab outputs can safely seed my-dev-kit investigation, Observer reference work, or Orchestrator evidence, and which look-alike artifacts are not direct inputs.
|
|
8
8
|
|
|
9
|
-
The latest release is v0.
|
|
9
|
+
The latest release is v0.7.0 (context-window scaling), and the published package and installed CLI are version 0.7.0. The previous release is v0.6.3 (four-treatment partial-refresh experiments). The v0.4.5 context-integrity evaluation remains intentionally frozen against the published `@dailephd/my-dev-kit@1.10.4` and `@dailephd/my-dev-kit-orchestrator@1.2.3` contracts; those versions are historical validation baselines, not a statement that they are the ecosystem's current releases. See [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md) for current state.
|
|
10
10
|
|
|
11
11
|
v0.4.6 adds a supported `my-dev-kit-lab` installed CLI router (`--help`, `--version`, `security validate`, `audit`, the `experiment` family, `report render`, `plots generate`, `gallery build`, `demo final`, and the historical direct final-demo invocation form), a writable lab workspace model kept separate from the installed package and the inspected target, and a permanent packed-tarball installation/execution acceptance gate (`npm run verify:packed-package`). See [docs/ROADMAP.md](docs/ROADMAP.md) and [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md) for status detail and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the runtime path model. The "Installed CLI" section below documents the shipped command surface; the source-checkout `npm run` workflow in Quickstart remains available for contributors.
|
|
12
12
|
|
|
@@ -14,10 +14,11 @@ v0.4.6 adds a supported `my-dev-kit-lab` installed CLI router (`--help`, `--vers
|
|
|
14
14
|
|
|
15
15
|
- **Run context-strategy experiments:** compare `raw-full-file` with `my-dev-kit-guided` using deterministic fixtures or locally configured Codex and Claude CLIs.
|
|
16
16
|
- **Measure warm-index reuse (v0.5.0–v0.5.1, released):** the `warm-index-reuse` experiment plugin builds one my-dev-kit index per benchmark project, reuses it across that project's tasks, and compares every task with a matched `raw-full-file` baseline. Reports separate one-time index-build cost from per-task retrieval cost, show amortized index cost and cumulative measurements, and include deterministic fake-agent correctness and token evidence; `plots generate` renders four warm-index SVG charts. The v0.5.1 release adds a dedicated 12-task benchmark corpus (`benchmarks/contracts/warm-index-benchmark-cases.json`: six medium and six large/mixed tasks tagged `localized`, `cross-module`, or `broad-change`) for comparing warm-index behavior as task count grows. Estimated context tokens (a character-based context-size estimate) and fake-agent total tokens (simulated harness telemetry) are reported separately, and neither is provider billing telemetry.
|
|
17
|
-
- **Run selectable real-agent warm-index campaigns (v0.5.2, released):** `--campaign codex-full`, `claude-full`, or `codex-timeout-isolation` (with `--include-real-agents`) runs exactly one provider — Codex or Claude — against the exact raw and warm contexts the experiment already measured, over the frozen production corpus each preset owns. Provider outcomes (`completed`, `failed`, `timeout`, `invalid-output`, `agent-unavailable`, `agent-limit-reached`, `skipped`) are classified and reported separately from warm-index infrastructure status, so a campaign can complete its indexing/retrieval work even when provider evidence is partial or unavailable. A campaign run automatically produces the report, the same four warm-index SVG charts, a
|
|
17
|
+
- **Run selectable real-agent warm-index campaigns (v0.5.2, released):** `--campaign codex-full`, `claude-full`, or `codex-timeout-isolation` (with `--include-real-agents`) runs exactly one provider — Codex or Claude — against the exact raw and warm contexts the experiment already measured, over the frozen production corpus each preset owns. Provider outcomes (`completed`, `failed`, `timeout`, `invalid-output`, `agent-unavailable`, `agent-limit-reached`, `skipped`) are classified and reported separately from warm-index infrastructure status, so a campaign can complete its indexing/retrieval work even when provider evidence is partial or unavailable. A campaign run automatically produces the report, the same four warm-index SVG charts, and a three-item gallery (report, plots, bounded execution evidence). Its report screenshot is best-effort presentation evidence: unavailable browser runtime or failed capture is reported explicitly, no PNG is fabricated, and neither outcome fails an otherwise successful campaign. Legacy runs without `--campaign` keep the existing deterministic fake-agent, report-only behavior unchanged. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md#warm-index-reuse-experiment) and [docs/METRICS.md](docs/METRICS.md#warm-index-reuse-metrics).
|
|
18
18
|
- **Record index freshness evidence (v0.6.0):** a warm-index run captures an index snapshot after its one index build — the exact indexed file set from the my-dev-kit index contract, each with SHA-256 content identity, size, and modified-time metadata, plus the my-dev-kit version and index-command evidence — and assesses freshness immediately before each task's warm retrieval as `fresh`, `stale`, `partially-stale`, or `unknown`. The evidence appears in `warm-index-execution.json` and in the existing `report.json`/`report.txt`/`report.html` warm-index reports. It is observational only: it covers only files the snapshot lists (not the whole repository), never changes retrieval, execution or provider status, and adds no CLI flag, metric, plot, gallery item, or reindex recommendation in v0.6.0. See [docs/METRICS.md](docs/METRICS.md#index-freshness-evidence-v060) and [docs/WORKFLOWS.md](docs/WORKFLOWS.md#warm-index-reuse-experiment).
|
|
19
|
-
- **Compare
|
|
20
|
-
- **
|
|
19
|
+
- **Compare no-refresh, partial-refresh, and full-refresh retrieval after a controlled change (v0.6.3, previous release):** the `incremental-change-staleness` experiment plugin runs six frozen controlled-change scenario families (unrelated-file, local-implementation, exported-symbol, public-API, import-graph, and test-only changes) against four disposable target copies — `stale-index` (no refresh), `changed-files-refresh` and `affected-neighborhood-refresh` (real partial refreshes performed by my-dev-kit 1.12.5 through `index --incremental --refresh-scope`, selected internally with no Lab-level flag), and `full-refresh` (a complete new post-change index, used as a comparison reference rather than a preferred treatment). Each partial treatment truthfully records whether upstream applied the requested partial scope or fell back to a full rebuild (`APPLIED_PARTIAL` or `FALLBACK_FULL`); a fallback is not counted as partial-refresh evidence. Three comparisons against `full-refresh` are persisted with retrieval, deterministic fake-agent correctness, and required-file evidence in `incremental-change-staleness-execution.json` (schema `my-dev-kit-lab-incremental-change-staleness-execution-v2`) and the existing `report.json`/`report.txt`/`report.html`; historical v0.6.2 (V1) artifacts stay readable. There is no winner, ranking, or safety claim, and the plugin is self-only (`--target` is not accepted). `--kit-command` also accepts `incremental-change-staleness` and now defaults to my-dev-kit 1.12.5. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md) and [docs/METRICS.md](docs/METRICS.md).
|
|
20
|
+
- **Measure context-window scaling (v0.7.0, released):** the self-only `context-window-scaling` plugin compares `raw-full-file` and `my-dev-kit-guided` over 8k, 16k, 32k, 64k, or custom positive-integer estimated-token budgets. It records fit, utilization, deterministic fake-agent correctness/success, and omitted expected relevant files, with JSON/text/HTML reports and three SVG plots. `plots generate` reads `context-window-scaling-execution.json`. Token counts are a character-based estimate, not provider-tokenizer or billing data; fake-agent correctness is context-independent in the current harness. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md), [docs/METRICS.md](docs/METRICS.md), and [docs/COMMANDS.md](docs/COMMANDS.md).
|
|
21
|
+
- **Assess affected-neighborhood evidence (v0.6.1, released; retained in the current package):** using the baseline my-dev-kit graph of the same prepared warm index (loaded once per session), each task's confirmed modified or missing indexed files, and the baseline symbols those files contain, are mapped to graph nodes. The affected neighborhood is those seed nodes plus their direct one-hop neighbors (edges of any kind, either direction). The task's `expectedFiles` and file-scoped `expectedSymbols` are mapped to graph nodes and compared with that neighborhood, which yields six numeric warm-side metrics (`changedFileCount`, `changedSymbolCount`, `affectedNodeCount`, `affectedEdgeCount`, `taskOverlapCount`, `taskOverlapPercent`) plus categorical evidence: a `related`, `unrelated`, or `unknown` relationship and a `recommended`, `not-indicated`, or `unknown` `reindexRecommendation`. Incomplete evidence is reported as `unknown`, never as unrelated. The assessment is recorded additively in `warm-index-execution.json` and shown in the existing `report.json`/`report.txt`/`report.html` warm-index reports. It is observational only: retrieval, execution status, and provider status are unchanged, nothing is reindexed automatically, and no CLI flag, experiment plugin, plot, or gallery item was added. See [docs/METRICS.md](docs/METRICS.md#affected-neighborhood-metrics-v061) and [docs/WORKFLOWS.md](docs/WORKFLOWS.md#warm-index-reuse-experiment).
|
|
21
22
|
- **Audit repository health:** run conservative code-rot detectors for TypeScript/JavaScript, Python, Java, and Kotlin, or adapt security findings into the common audit report.
|
|
22
23
|
- **Validate CLI/package security:** inspect dependencies, package contents, path and subprocess boundaries, malformed inputs, optional static scanners, and bounded fuzz targets.
|
|
23
24
|
- **Validate Android projects:** run nineteen static checks by default, with Gradle operations, external tools, and network access available only through explicit opt-in flags.
|
|
@@ -182,9 +183,9 @@ npm run experiment:run -- \
|
|
|
182
183
|
--out lab-output/warm-index-campaign
|
|
183
184
|
```
|
|
184
185
|
|
|
185
|
-
This automatically writes `report.json`/`.txt`/`.html`, the four warm-index charts under `plots/`,
|
|
186
|
+
This automatically writes `report.json`/`.txt`/`.html`, the four warm-index charts under `plots/`, an optional best-effort `report.png`, and a three-item `gallery/` (report, plots, bounded execution evidence) beneath `--out`. Screenshot capture failure remains `failed`, is reported in the command output and gallery warning, and does not fail an otherwise successful campaign or fabricate a PNG. Required experiment, report, plot, and gallery failures remain fatal. `--timeout-ms` overrides the preset's default per-agent timeout (240000 ms). `codex-timeout-isolation` narrows the corpus to three larger cases for exercising provider timeout/partial-outcome handling without running the full 12-case corpus.
|
|
186
187
|
|
|
187
|
-
|
|
188
|
+
For experiment plugins that support explicit targets — `context-strategy-comparison` and ordinary (non-campaign) `warm-index-reuse` runs — omitting `--target` uses self mode against my-dev-kit-lab. When those plugins receive `--target <path>`, the lab remains the tool root and the target project is inspected separately. `incremental-change-staleness` does not accept `--target`; it always runs against the lab's bundled benchmark projects. Generated experiment outputs stay under lab-controlled output directories by default, not inside an inspected target project.
|
|
188
189
|
|
|
189
190
|
---
|
|
190
191
|
|
|
@@ -236,10 +237,12 @@ See [docs/METRICS.md](docs/METRICS.md) for full metric definitions.
|
|
|
236
237
|
- Claude and Codex token totals are used only when the CLI/run exposes them; missing provider token evidence stays explicitly unavailable (never zero, and never substituted with an estimated context-token count)
|
|
237
238
|
- Codex and Claude campaign runs can produce timeouts, invalid-output, agent-unavailable, or agent-limit-reached outcomes; these are structured provider states, not warm-index infrastructure failures
|
|
238
239
|
- Small projects may make raw-full-file cheaper than my-dev-kit-guided; larger localized tasks are where my-dev-kit is expected to become more useful
|
|
239
|
-
- The generic experiment-plugin framework has
|
|
240
|
+
- The generic experiment-plugin framework has four registered plugins: `context-strategy-comparison`, `warm-index-reuse`, `incremental-change-staleness`, and `context-window-scaling`. The v0.7.0 context-window-scaling plugin is released; retrieval precision/recall and agent-success plugins remain planned.
|
|
240
241
|
- `warm-index-reuse` without `--campaign` still uses the deterministic fake agent only. With `--campaign`, exactly one real provider (Codex or Claude) runs per campaign preset — there is no multi-agent matrix, retry, provider switching, or scheduler. The v0.5.1 expanded corpus is deterministic fake-agent benchmark evidence when run without `--campaign`. No warm-index mode calculates a token-savings percentage, break-even task, winner, or ranking, and component-duration sums are not wall-clock latency
|
|
241
242
|
- The current release does not guarantee token savings; it produces auditable evidence for specific cases, targets, agents, and strategies
|
|
243
|
+
- Context-window scaling uses estimated tokens (`ceil(characters / 4)`) and experiment budgets, not actual provider tokenizer or model-window limits. Its deterministic fake-agent correctness check does not measure semantic sensitivity to the supplied context.
|
|
242
244
|
- Released v0.6.1 affected-neighborhood evidence is bounded to the baseline graph of the prepared index and to the snapshot-represented files: a changed symbol means the symbol was present in a confirmed changed indexed file, not that its own text was proven to change; `not-indicated` means only that this bounded analysis found no supporting evidence for reindexing, not that skipping a reindex is safe; unresolved or ambiguous expected symbols keep a task at `unknown` rather than unrelated
|
|
245
|
+
- v0.6.3 (previous release) partial-refresh evidence is scoped to the executed deterministic scenarios and the configured my-dev-kit 1.12.5-or-later tool. A partial treatment can fall back to a full rebuild and is then reported as not comparable as partial refresh, so an applied partial refresh in one run does not guarantee the next; `no-observed-regression-relative-to-full` is not a safety claim, and full refresh is a reference rather than a winner. Correctness remains deterministic fake-agent evidence, and `incremental-change-staleness` accepts no external `--target`.
|
|
243
246
|
- Provider telemetry dashboards, semantic LLM judging, and cloud API billing integration are not yet implemented
|
|
244
247
|
- The six new stage-context strategies have no CLI flags yet, are configured programmatically, and do not yet include plots, screenshots, or gallery integration
|
|
245
248
|
- The published upstream artifacts the stage-context strategies read do not expose considered-but-unselected reads or unnecessary-read evidence; those metrics report `unavailable` rather than zero
|
|
@@ -258,7 +261,7 @@ See [docs/METRICS.md](docs/METRICS.md) for full metric definitions.
|
|
|
258
261
|
|
|
259
262
|
Android validation uses `--profile android`. Its default path is static and non-destructive: it starts zero Gradle processes, zero external tools, and zero network operations. Only confirmed `SecurityFinding` records can become audit issues; Android `CandidateEvidence` remains review-only evidence.
|
|
260
263
|
|
|
261
|
-
Optional scanners are reported as `skipped` when unavailable, never as passed. The framework does not provide runtime isolation proof, device or APK/AAB analysis, signing verification, Play Console validation, automatic fixes, or manual pentesting. Manual pentest remains deferred until post-v1/version TBD.
|
|
264
|
+
Optional local scanners are reported as `skipped` when unavailable, never as passed. This local availability rule does not make CodeQL coverage optional for release readiness: the exact candidate must pass the repository-controlled GitHub CodeQL workflow and have its Code Scanning alerts reviewed. The framework does not provide runtime isolation proof, device or APK/AAB analysis, signing verification, Play Console validation, automatic fixes, or manual pentesting. Manual pentest remains deferred until post-v1/version TBD.
|
|
262
265
|
|
|
263
266
|
See [COMMANDS.md](docs/COMMANDS.md) for exact syntax and [Security Validation Framework](docs/security-validation-framework.md) for checks, evidence semantics, verdicts, and limitations.
|
|
264
267
|
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ctx-scale-a-8k-16k",
|
|
4
|
+
"title": "Context scaling A: Shipping quote by weight band",
|
|
5
|
+
"benchmarkProject": "context-window-scaling-fixed-ts",
|
|
6
|
+
"taskLocality": "localized",
|
|
7
|
+
"targetRoot": "benchmarks/projects/context-window-scaling-fixed-ts",
|
|
8
|
+
"sourceRoots": [
|
|
9
|
+
"src",
|
|
10
|
+
"tests"
|
|
11
|
+
],
|
|
12
|
+
"query": "shipping quote weight band zone surcharge parcel",
|
|
13
|
+
"expectedFiles": [
|
|
14
|
+
"src/tasks/shippingQuote.ts",
|
|
15
|
+
"tests/tasks/shippingQuote.test.ts"
|
|
16
|
+
],
|
|
17
|
+
"expectedSymbols": [
|
|
18
|
+
"selectWeightBand",
|
|
19
|
+
"calculateShippingQuote"
|
|
20
|
+
],
|
|
21
|
+
"answerKey": {
|
|
22
|
+
"expectedFiles": [
|
|
23
|
+
"src/tasks/shippingQuote.ts",
|
|
24
|
+
"tests/tasks/shippingQuote.test.ts"
|
|
25
|
+
],
|
|
26
|
+
"expectedSymbols": [
|
|
27
|
+
"selectWeightBand",
|
|
28
|
+
"calculateShippingQuote"
|
|
29
|
+
],
|
|
30
|
+
"expectedFacts": [
|
|
31
|
+
{
|
|
32
|
+
"id": "ctx-scale-a-band-selection",
|
|
33
|
+
"text": "selectWeightBand returns the smallest weight band whose maxGrams holds the parcel weight and rejects non-positive or oversize weights.",
|
|
34
|
+
"weight": 1,
|
|
35
|
+
"required": true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "ctx-scale-a-zone-surcharge",
|
|
39
|
+
"text": "calculateShippingQuote adds a zone surcharge (domestic 0, regional 250, international 1200 cents) to the selected band base price.",
|
|
40
|
+
"weight": 1,
|
|
41
|
+
"required": true
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"minimumCorrectFacts": 2,
|
|
45
|
+
"notes": "Small task-relevant surface inside a fixed static repository whose filler tiers scale raw context."
|
|
46
|
+
},
|
|
47
|
+
"rawIncludeGlobs": [
|
|
48
|
+
"src/tasks/**/*",
|
|
49
|
+
"tests/**/*",
|
|
50
|
+
"src/filler/tier-1/**/*"
|
|
51
|
+
],
|
|
52
|
+
"notes": "Raw context scale band A (filler tiers 1..1); band bounds are enforced by the corpus test."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "ctx-scale-b-16k-32k",
|
|
56
|
+
"title": "Context scaling B: Invoice total with bulk discount and tax",
|
|
57
|
+
"benchmarkProject": "context-window-scaling-fixed-ts",
|
|
58
|
+
"taskLocality": "localized",
|
|
59
|
+
"targetRoot": "benchmarks/projects/context-window-scaling-fixed-ts",
|
|
60
|
+
"sourceRoots": [
|
|
61
|
+
"src",
|
|
62
|
+
"tests"
|
|
63
|
+
],
|
|
64
|
+
"query": "invoice total bulk discount quantity tax rounding cents",
|
|
65
|
+
"expectedFiles": [
|
|
66
|
+
"src/tasks/invoiceTotals.ts",
|
|
67
|
+
"tests/tasks/invoiceTotals.test.ts"
|
|
68
|
+
],
|
|
69
|
+
"expectedSymbols": [
|
|
70
|
+
"calculateInvoiceTotal",
|
|
71
|
+
"applyBulkDiscount",
|
|
72
|
+
"roundToCents"
|
|
73
|
+
],
|
|
74
|
+
"answerKey": {
|
|
75
|
+
"expectedFiles": [
|
|
76
|
+
"src/tasks/invoiceTotals.ts",
|
|
77
|
+
"tests/tasks/invoiceTotals.test.ts"
|
|
78
|
+
],
|
|
79
|
+
"expectedSymbols": [
|
|
80
|
+
"calculateInvoiceTotal",
|
|
81
|
+
"applyBulkDiscount",
|
|
82
|
+
"roundToCents"
|
|
83
|
+
],
|
|
84
|
+
"expectedFacts": [
|
|
85
|
+
{
|
|
86
|
+
"id": "ctx-scale-b-bulk-discount",
|
|
87
|
+
"text": "applyBulkDiscount gives 5 percent off at quantity 20 and 10 percent off at quantity 100 or more.",
|
|
88
|
+
"weight": 1,
|
|
89
|
+
"required": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "ctx-scale-b-tax-after-discount",
|
|
93
|
+
"text": "calculateInvoiceTotal adds rounded tax computed on the discounted subtotal.",
|
|
94
|
+
"weight": 1,
|
|
95
|
+
"required": true
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"minimumCorrectFacts": 2,
|
|
99
|
+
"notes": "Small task-relevant surface inside a fixed static repository whose filler tiers scale raw context."
|
|
100
|
+
},
|
|
101
|
+
"rawIncludeGlobs": [
|
|
102
|
+
"src/tasks/**/*",
|
|
103
|
+
"tests/**/*",
|
|
104
|
+
"src/filler/tier-1/**/*",
|
|
105
|
+
"src/filler/tier-2/**/*"
|
|
106
|
+
],
|
|
107
|
+
"notes": "Raw context scale band B (filler tiers 1..2); band bounds are enforced by the corpus test."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "ctx-scale-c-32k-64k",
|
|
111
|
+
"title": "Context scaling C: Inventory stock reservation",
|
|
112
|
+
"benchmarkProject": "context-window-scaling-fixed-ts",
|
|
113
|
+
"taskLocality": "localized",
|
|
114
|
+
"targetRoot": "benchmarks/projects/context-window-scaling-fixed-ts",
|
|
115
|
+
"sourceRoots": [
|
|
116
|
+
"src",
|
|
117
|
+
"tests"
|
|
118
|
+
],
|
|
119
|
+
"query": "reserve stock release reservation available quantity insufficient",
|
|
120
|
+
"expectedFiles": [
|
|
121
|
+
"src/tasks/inventoryReservation.ts",
|
|
122
|
+
"tests/tasks/inventoryReservation.test.ts"
|
|
123
|
+
],
|
|
124
|
+
"expectedSymbols": [
|
|
125
|
+
"reserveStock",
|
|
126
|
+
"releaseReservation",
|
|
127
|
+
"availableStock"
|
|
128
|
+
],
|
|
129
|
+
"answerKey": {
|
|
130
|
+
"expectedFiles": [
|
|
131
|
+
"src/tasks/inventoryReservation.ts",
|
|
132
|
+
"tests/tasks/inventoryReservation.test.ts"
|
|
133
|
+
],
|
|
134
|
+
"expectedSymbols": [
|
|
135
|
+
"reserveStock",
|
|
136
|
+
"releaseReservation",
|
|
137
|
+
"availableStock"
|
|
138
|
+
],
|
|
139
|
+
"expectedFacts": [
|
|
140
|
+
{
|
|
141
|
+
"id": "ctx-scale-c-reserve-limits",
|
|
142
|
+
"text": "reserveStock rejects non-positive quantities and quantities above available stock, returning a new level without mutating the input.",
|
|
143
|
+
"weight": 1,
|
|
144
|
+
"required": true
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "ctx-scale-c-release-limits",
|
|
148
|
+
"text": "releaseReservation rejects quantities that are non-positive or larger than the reserved amount.",
|
|
149
|
+
"weight": 1,
|
|
150
|
+
"required": true
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"minimumCorrectFacts": 2,
|
|
154
|
+
"notes": "Small task-relevant surface inside a fixed static repository whose filler tiers scale raw context."
|
|
155
|
+
},
|
|
156
|
+
"rawIncludeGlobs": [
|
|
157
|
+
"src/tasks/**/*",
|
|
158
|
+
"tests/**/*",
|
|
159
|
+
"src/filler/tier-1/**/*",
|
|
160
|
+
"src/filler/tier-2/**/*",
|
|
161
|
+
"src/filler/tier-3/**/*"
|
|
162
|
+
],
|
|
163
|
+
"notes": "Raw context scale band C (filler tiers 1..3); band bounds are enforced by the corpus test."
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "ctx-scale-d-64k-plus",
|
|
167
|
+
"title": "Context scaling D: Audit entry redaction",
|
|
168
|
+
"benchmarkProject": "context-window-scaling-fixed-ts",
|
|
169
|
+
"taskLocality": "localized",
|
|
170
|
+
"targetRoot": "benchmarks/projects/context-window-scaling-fixed-ts",
|
|
171
|
+
"sourceRoots": [
|
|
172
|
+
"src",
|
|
173
|
+
"tests"
|
|
174
|
+
],
|
|
175
|
+
"query": "audit entry redact mask email token",
|
|
176
|
+
"expectedFiles": [
|
|
177
|
+
"src/tasks/auditRedaction.ts",
|
|
178
|
+
"tests/tasks/auditRedaction.test.ts"
|
|
179
|
+
],
|
|
180
|
+
"expectedSymbols": [
|
|
181
|
+
"redactAuditEntry",
|
|
182
|
+
"maskEmail"
|
|
183
|
+
],
|
|
184
|
+
"answerKey": {
|
|
185
|
+
"expectedFiles": [
|
|
186
|
+
"src/tasks/auditRedaction.ts",
|
|
187
|
+
"tests/tasks/auditRedaction.test.ts"
|
|
188
|
+
],
|
|
189
|
+
"expectedSymbols": [
|
|
190
|
+
"redactAuditEntry",
|
|
191
|
+
"maskEmail"
|
|
192
|
+
],
|
|
193
|
+
"expectedFacts": [
|
|
194
|
+
{
|
|
195
|
+
"id": "ctx-scale-d-email-mask",
|
|
196
|
+
"text": "maskEmail keeps the first local-part character, masks the rest, and returns [invalid-email] for malformed addresses.",
|
|
197
|
+
"weight": 1,
|
|
198
|
+
"required": true
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"id": "ctx-scale-d-token-redaction",
|
|
202
|
+
"text": "redactAuditEntry replaces any token with [redacted] and drops fields other than actor, action, email, and token.",
|
|
203
|
+
"weight": 1,
|
|
204
|
+
"required": true
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"minimumCorrectFacts": 2,
|
|
208
|
+
"notes": "Small task-relevant surface inside a fixed static repository whose filler tiers scale raw context."
|
|
209
|
+
},
|
|
210
|
+
"rawIncludeGlobs": [
|
|
211
|
+
"src/tasks/**/*",
|
|
212
|
+
"tests/**/*",
|
|
213
|
+
"src/filler/tier-1/**/*",
|
|
214
|
+
"src/filler/tier-2/**/*",
|
|
215
|
+
"src/filler/tier-3/**/*",
|
|
216
|
+
"src/filler/tier-4/**/*"
|
|
217
|
+
],
|
|
218
|
+
"notes": "Raw context scale band D (filler tiers 1..4); band bounds are enforced by the corpus test."
|
|
219
|
+
}
|
|
220
|
+
]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# context-window-scaling-fixed-ts
|
|
2
|
+
|
|
3
|
+
Static, committed benchmark project for the v0.7.0 context-window-scaling plugin. It is an ordinary
|
|
4
|
+
TypeScript tree, not a generator.
|
|
5
|
+
|
|
6
|
+
- `src/tasks/` and `tests/tasks/` hold the four small task-relevant implementation surfaces
|
|
7
|
+
(shipping quote, invoice totals, inventory reservation, audit redaction).
|
|
8
|
+
- `src/filler/tier-1` ... `tier-4` hold scale-only catalog modules that are semantically unrelated to
|
|
9
|
+
every task. Cases include filler tiers cumulatively through `rawIncludeGlobs`, so raw full-file
|
|
10
|
+
context grows from scale A (tier-1) to scale D (tier-1..4).
|
|
11
|
+
|
|
12
|
+
Cases live in `benchmarks/contracts/context-window-scaling-cases.json`. Measured raw estimated-token
|
|
13
|
+
bands are enforced by `tests/benchmarks/contextWindowScalingCorpus.test.ts` using the production
|
|
14
|
+
raw-full-file baseline and `countEstimatedTokens`.
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// Scale-only filler (tier-1). Ordinary catalog data for a carrier depot listing.
|
|
2
|
+
// It is unrelated to every task under src/tasks and exists only to add repository context.
|
|
3
|
+
|
|
4
|
+
export interface CarrierDepotRecord01 {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
capacity: number;
|
|
8
|
+
priority: number;
|
|
9
|
+
active: boolean;
|
|
10
|
+
notes: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const carrierDepotRecords01: readonly CarrierDepotRecord01[] = [
|
|
14
|
+
{
|
|
15
|
+
id: "car-01-001",
|
|
16
|
+
label: "central annex 1",
|
|
17
|
+
capacity: 84,
|
|
18
|
+
priority: 3,
|
|
19
|
+
active: false,
|
|
20
|
+
notes: "granite carrier depot entry reviewed in cycle 5"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "car-01-002",
|
|
24
|
+
label: "granite annex 2",
|
|
25
|
+
capacity: 62,
|
|
26
|
+
priority: 3,
|
|
27
|
+
active: false,
|
|
28
|
+
notes: "central carrier depot entry reviewed in cycle 1"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "car-01-003",
|
|
32
|
+
label: "northern annex 3",
|
|
33
|
+
capacity: 64,
|
|
34
|
+
priority: 2,
|
|
35
|
+
active: false,
|
|
36
|
+
notes: "eastern carrier depot entry reviewed in cycle 5"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "car-01-004",
|
|
40
|
+
label: "northern hall 4",
|
|
41
|
+
capacity: 12,
|
|
42
|
+
priority: 5,
|
|
43
|
+
active: false,
|
|
44
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "car-01-005",
|
|
48
|
+
label: "granite hall 5",
|
|
49
|
+
capacity: 64,
|
|
50
|
+
priority: 1,
|
|
51
|
+
active: false,
|
|
52
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "car-01-006",
|
|
56
|
+
label: "central hall 6",
|
|
57
|
+
capacity: 16,
|
|
58
|
+
priority: 2,
|
|
59
|
+
active: false,
|
|
60
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "car-01-007",
|
|
64
|
+
label: "central annex 7",
|
|
65
|
+
capacity: 58,
|
|
66
|
+
priority: 5,
|
|
67
|
+
active: false,
|
|
68
|
+
notes: "granite carrier depot entry reviewed in cycle 5"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "car-01-008",
|
|
72
|
+
label: "northern row 8",
|
|
73
|
+
capacity: 50,
|
|
74
|
+
priority: 4,
|
|
75
|
+
active: false,
|
|
76
|
+
notes: "granite carrier depot entry reviewed in cycle 1"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "car-01-009",
|
|
80
|
+
label: "northern hall 9",
|
|
81
|
+
capacity: 14,
|
|
82
|
+
priority: 3,
|
|
83
|
+
active: false,
|
|
84
|
+
notes: "granite carrier depot entry reviewed in cycle 5"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "car-01-010",
|
|
88
|
+
label: "northern hall 10",
|
|
89
|
+
capacity: 48,
|
|
90
|
+
priority: 3,
|
|
91
|
+
active: false,
|
|
92
|
+
notes: "central carrier depot entry reviewed in cycle 1"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "car-01-011",
|
|
96
|
+
label: "central hall 11",
|
|
97
|
+
capacity: 26,
|
|
98
|
+
priority: 3,
|
|
99
|
+
active: false,
|
|
100
|
+
notes: "northern carrier depot entry reviewed in cycle 1"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "car-01-012",
|
|
104
|
+
label: "granite row 12",
|
|
105
|
+
capacity: 66,
|
|
106
|
+
priority: 4,
|
|
107
|
+
active: false,
|
|
108
|
+
notes: "northern carrier depot entry reviewed in cycle 5"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: "car-01-013",
|
|
112
|
+
label: "riverside row 13",
|
|
113
|
+
capacity: 24,
|
|
114
|
+
priority: 5,
|
|
115
|
+
active: false,
|
|
116
|
+
notes: "central carrier depot entry reviewed in cycle 9"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "car-01-014",
|
|
120
|
+
label: "granite hall 14",
|
|
121
|
+
capacity: 88,
|
|
122
|
+
priority: 2,
|
|
123
|
+
active: false,
|
|
124
|
+
notes: "northern carrier depot entry reviewed in cycle 5"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: "car-01-015",
|
|
128
|
+
label: "northern hall 15",
|
|
129
|
+
capacity: 28,
|
|
130
|
+
priority: 3,
|
|
131
|
+
active: false,
|
|
132
|
+
notes: "northern carrier depot entry reviewed in cycle 1"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: "car-01-016",
|
|
136
|
+
label: "granite row 16",
|
|
137
|
+
capacity: 96,
|
|
138
|
+
priority: 1,
|
|
139
|
+
active: false,
|
|
140
|
+
notes: "northern carrier depot entry reviewed in cycle 1"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
id: "car-01-017",
|
|
144
|
+
label: "northern row 17",
|
|
145
|
+
capacity: 68,
|
|
146
|
+
priority: 1,
|
|
147
|
+
active: false,
|
|
148
|
+
notes: "central carrier depot entry reviewed in cycle 1"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
id: "car-01-018",
|
|
152
|
+
label: "northern annex 18",
|
|
153
|
+
capacity: 98,
|
|
154
|
+
priority: 3,
|
|
155
|
+
active: false,
|
|
156
|
+
notes: "northern carrier depot entry reviewed in cycle 5"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: "car-01-019",
|
|
160
|
+
label: "granite hall 19",
|
|
161
|
+
capacity: 52,
|
|
162
|
+
priority: 1,
|
|
163
|
+
active: false,
|
|
164
|
+
notes: "granite carrier depot entry reviewed in cycle 1"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: "car-01-020",
|
|
168
|
+
label: "northern hall 20",
|
|
169
|
+
capacity: 70,
|
|
170
|
+
priority: 5,
|
|
171
|
+
active: false,
|
|
172
|
+
notes: "central carrier depot entry reviewed in cycle 5"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: "car-01-021",
|
|
176
|
+
label: "northern row 21",
|
|
177
|
+
capacity: 30,
|
|
178
|
+
priority: 5,
|
|
179
|
+
active: false,
|
|
180
|
+
notes: "central carrier depot entry reviewed in cycle 5"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
id: "car-01-022",
|
|
184
|
+
label: "central hall 22",
|
|
185
|
+
capacity: 34,
|
|
186
|
+
priority: 1,
|
|
187
|
+
active: false,
|
|
188
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: "car-01-023",
|
|
192
|
+
label: "central annex 23",
|
|
193
|
+
capacity: 68,
|
|
194
|
+
priority: 1,
|
|
195
|
+
active: false,
|
|
196
|
+
notes: "central carrier depot entry reviewed in cycle 5"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: "car-01-024",
|
|
200
|
+
label: "northern hall 24",
|
|
201
|
+
capacity: 46,
|
|
202
|
+
priority: 4,
|
|
203
|
+
active: false,
|
|
204
|
+
notes: "central carrier depot entry reviewed in cycle 9"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: "car-01-025",
|
|
208
|
+
label: "northern row 25",
|
|
209
|
+
capacity: 90,
|
|
210
|
+
priority: 1,
|
|
211
|
+
active: false,
|
|
212
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: "car-01-026",
|
|
216
|
+
label: "northern row 26",
|
|
217
|
+
capacity: 66,
|
|
218
|
+
priority: 5,
|
|
219
|
+
active: false,
|
|
220
|
+
notes: "northern carrier depot entry reviewed in cycle 5"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: "car-01-027",
|
|
224
|
+
label: "central annex 27",
|
|
225
|
+
capacity: 98,
|
|
226
|
+
priority: 4,
|
|
227
|
+
active: false,
|
|
228
|
+
notes: "granite carrier depot entry reviewed in cycle 1"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: "car-01-028",
|
|
232
|
+
label: "granite hall 28",
|
|
233
|
+
capacity: 14,
|
|
234
|
+
priority: 5,
|
|
235
|
+
active: false,
|
|
236
|
+
notes: "northern carrier depot entry reviewed in cycle 5"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: "car-01-029",
|
|
240
|
+
label: "central row 29",
|
|
241
|
+
capacity: 92,
|
|
242
|
+
priority: 4,
|
|
243
|
+
active: false,
|
|
244
|
+
notes: "central carrier depot entry reviewed in cycle 9"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
id: "car-01-030",
|
|
248
|
+
label: "northern row 30",
|
|
249
|
+
capacity: 30,
|
|
250
|
+
priority: 1,
|
|
251
|
+
active: false,
|
|
252
|
+
notes: "northern carrier depot entry reviewed in cycle 9"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
id: "car-01-031",
|
|
256
|
+
label: "central row 31",
|
|
257
|
+
capacity: 18,
|
|
258
|
+
priority: 4,
|
|
259
|
+
active: false,
|
|
260
|
+
notes: "central carrier depot entry reviewed in cycle 5"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
id: "car-01-032",
|
|
264
|
+
label: "granite hall 32",
|
|
265
|
+
capacity: 80,
|
|
266
|
+
priority: 5,
|
|
267
|
+
active: false,
|
|
268
|
+
notes: "granite carrier depot entry reviewed in cycle 9"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
id: "car-01-033",
|
|
272
|
+
label: "northern annex 33",
|
|
273
|
+
capacity: 36,
|
|
274
|
+
priority: 2,
|
|
275
|
+
active: false,
|
|
276
|
+
notes: "granite carrier depot entry reviewed in cycle 1"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
id: "car-01-034",
|
|
280
|
+
label: "granite row 34",
|
|
281
|
+
capacity: 68,
|
|
282
|
+
priority: 3,
|
|
283
|
+
active: false,
|
|
284
|
+
notes: "northern carrier depot entry reviewed in cycle 1"
|
|
285
|
+
}
|
|
286
|
+
];
|
|
287
|
+
|
|
288
|
+
export function findCarrierDepotRecord01(id: string): CarrierDepotRecord01 | undefined {
|
|
289
|
+
return carrierDepotRecords01.find((record) => record.id === id);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export function listCarrierDepotActiveRecords01(): CarrierDepotRecord01[] {
|
|
293
|
+
return carrierDepotRecords01.filter((record) => record.active);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export function totalCarrierDepotCapacity01(): number {
|
|
297
|
+
return carrierDepotRecords01.reduce((sum, record) => sum + record.capacity, 0);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
export function countCarrierDepotByPriority01(priority: number): number {
|
|
301
|
+
return carrierDepotRecords01.filter((record) => record.priority === priority).length;
|
|
302
|
+
}
|