Required external assets
This public copy includes the APE-L(_D) checkpoint required by the main detector. It intentionally excludes generated artifacts, credential-bearing files, private data, historical experiment outputs, and full dataset image payloads.
Minimum smoke test
To validate one Orienter inference example, provide:
| Asset | Expected location or interface | Required metadata |
|---|---|---|
| One representative XR screenshot | a test-only folder matching the question manifest | image license/permission and expected image ID |
| Matching question/context fixture | JSONL consumed by approach/run_vlm.py, generated by scripts/generate_questions.py when screenshots are available |
selected prompt, provider, model ID, filename convention, and expected schema |
| App metadata cache | an external path supplied through --app-metadata-cache |
app_id, app name, app description, source URL, version/date, license/permission |
| APE-L(_D) checkpoint | bundled at approach/ovod/APE/ape_d_model_final.pth |
official source, Apache-2.0 license, SHA-256, and size recorded in docs/MODEL_MANIFEST.md |
| Built APE extension | local build/install under the target CUDA environment | generated from source after cloning; compiled artifacts are intentionally not redistributed |
| One supported provider credential | openrouter-run or an equivalent process-scoped secret manager |
access to the selected OpenRouter model and an explicit spending limit |
| Expected prediction | private comparison fixture | expected candidate labels and approximate boxes |
Run python -B scripts/verify_assets.py --repo-root . to validate the bundled checkpoint size. Add --hash-checkpoint for SHA-256 verification. When screenshots and metadata are mounted, pass --questions, --images-dir, and --app-metadata-cache to check image naming, image ID consistency, and metadata coverage. Pass --embedding-cache /path/to/embedding_dict.json to hash the external semantic cache against evaluation/cache_manifest.json before an offline evaluation.
The default Stage 2 runner also verifies the released checkpoint hash before loading it. Loading any different PyTorch checkpoint requires the explicit --trust-custom-checkpoint flag and should be done only after independent provenance and checksum verification.
Full paper reproduction
Provide or publish all of the following as versioned assets:
- The 1,552-image XR UI screenshot payload and a canonical versioned annotation release. Selected COCO-format evaluation ground-truth splits are included in this repository, but must be tied to the public dataset version and license.
- App, genre, and context-sensitive split manifests, including the extra non-interactable context annotations.
- Steam/application metadata used for global context, preferably as a pinned JSON/JSONL cache that avoids live-page drift. The public runner fails closed on missing cache entries when
--app-metadata-cacheis supplied. - The complete prompt templates, demonstration examples, and the random-selection/seed policy.
- Exact model identifiers and access paths for every Orienter variant evaluated in the paper. The code defaults to OpenRouter
openai/gpt-5.6-sol; exact paper profiles are included for GPT-4o-2024-08-06, Claude 3.5 Sonnet, and Gemini 1.5 Pro. If a provider retires a historical route, supply equivalent access through a custom profile or direct vendor credentials and document the substitution. - The bundled APE-L(_D) checkpoint identity, official source, revision, license, and checksum in
docs/MODEL_MANIFEST.md. - A working CUDA/PyTorch/Detectron2 APE environment with the APE native extension built locally from the released source tree.
- The reviewed
embedding-3semantic cache identified byevaluation/cache_manifest.json. Mount it read-only and use offline mode for historical reproduction. Zhipu access is optional and should be enabled only to extend a separate cache copy when a new model produces an uncached category. - Expected per-split metrics or prediction checksums for a deterministic regression check.
- Hardware, CUDA, PyTorch, Python, and package versions from the successful experiment environment. See
docs/ENVIRONMENT.mdfor the current public build boundary.
Credential names found in code
The following names are referenced by the main or optional baseline paths:
OPENAI_API_KEYOPENROUTER_API_KEYGOOGLE_API_KEYANTHROPIC_API_KEYZHIPU_API_KEYARK_API_KEYDASHSCOPE_API_KEYDEEPSEEK_API_KEYTHEB_API_KEYINTERNVL_API_KEY
Only OPENROUTER_API_KEY is needed for the recommended Orienter inference path; the other variables belong to optional evaluation or baseline code. Never send credentials through Git, issue trackers, logs, or README examples. Rotate any credential that has previously appeared in a file or experiment log.
Stage 1 sends full screenshots to the configured remote provider; reflection additionally sends crops and annotated scenes. Do not submit private or unauthorized screenshots. Review the provider's data-handling terms and keep generated candidates, predictions, traces, metadata caches, and error files outside the public repository because they can reveal source-image content or filenames.
Publication format
For each data/model asset, publish: human-readable name, stable URL, version/revision, SHA-256, license, expected local path, compressed/uncompressed size, and a minimal schema example. The bundled APE checkpoint should be published through Hugging Face/LFS-style large-file storage; keep private raw data and generated experiment outputs outside the public repository.