[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-sop-e2e-inference":3,"mdc-4f167t-key":34,"related-repo-nvidia-sop-e2e-inference":2763,"related-org-nvidia-sop-e2e-inference":2857},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"sop-e2e-inference","run end-to-end inference evaluations","Use when running the e2e evaluation pipeline (temporal segmentation + action recognition + accuracy) against the BP evaluation-ms HTTP API. Invoked as \u002Fsop-e2e-inference \u003Cinputs.yaml> [natural language parameter overrides]",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Monitoring","monitoring","tag",{"name":17,"slug":18,"type":15},"Machine Learning","machine-learning",{"name":20,"slug":21,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},39,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsop-monitoring-blueprints","2026-07-14T05:36:15.23958","CC-BY-4.0 AND Apache-2.0",12,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Industrial SOP Monitoring Blueprints for Training & Inference","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsop-monitoring-blueprints\u002Ftree\u002FHEAD\u002Fagentic\u002Fsop-agentic-ft\u002Fplugins\u002Fsop-evaluation-plugin\u002Fskills\u002Fsop-e2e-inference","---\nname: sop-e2e-inference\ndescription: Use when running the e2e evaluation pipeline (temporal segmentation + action recognition + accuracy) against the BP evaluation-ms HTTP API. Invoked as \u002Fsop-e2e-inference \u003Cinputs.yaml> [natural language parameter overrides]\nlicense: \"CC-BY-4.0 AND Apache-2.0\"\n---\n\n# E2E Inference Pipeline (API-driven)\n\nRun the end-to-end DDM + VLM pipeline by POSTing to the BP `evaluation-ms` HTTP service. Eval-ms runs DDM temporal segmentation, then VLM action recognition, then scores accuracy — and writes everything to a uuid-named directory under `\u003CRESULTS_ROOT>\u002F\u003Ceval_job_id>\u002F`. This skill submits the request, polls until terminal, resolves the host-side output directory, and emits a structured JSON envelope on stdout.\n\nWhen this skill is invoked, follow the steps below in order. Stop immediately if any step fails — show the full error output to the user, explain what likely went wrong and how to fix it, but do NOT attempt to fix it automatically.\n\n**Bundled resources** (paths relative to this skill's directory):\n- `scripts\u002Feval_api_client.py` — single Python helper that POSTs, polls, resolves paths, prints the envelope.\n- `references\u002Finputs-template.yaml` — configuration template with all parameters documented.\n\n**Path conventions**:\n- `SKILL_DIR` = this skill's `scripts` directory (absolute path resolved at invocation time).\n\n## Step 0: Parse Overrides (if any)\n\nIf the user provided natural language parameter overrides alongside the inputs.yaml:\n\n1. Parse the overrides. If any part of the input cannot be clearly mapped to a yaml field, list the ambiguous parts and ask the user to clarify before proceeding. Map to the yaml structure (see `references\u002Finputs-template.yaml`):\n   - Required: `training_job_id`, `val_dataset_id`, and (when `chunking_algorithm=ddm`) `ddm_training_job_id`\n   - Required (uniform chunking): `chunk_length_sec` when `chunking_algorithm=uniform`\n   - Optional: `eval_host`, `eval_port`, `host_results_root`, `backend`, `fps`, `temperature`, `top_p`, `checkpoint_step`, `ddm_checkpoint`, `resolution_config`, `gpu_id`, `score_threshold`, `nms_sec`, `ddm_batch_size`, `frames_per_segment_hint`, `chunking_algorithm`, `poll_interval_sec`, `timeout_sec`\n\n2. Write the overrides to `\u002Ftmp\u002Fe2e_overrides.yaml`. The api client merges them on top of inputs.yaml at invocation time.\n\n3. Show the user what was overridden.\n\nIf no overrides, skip the overrides file.\n\n## Step 1: Preflight — eval-ms reachability\n\nProbe the health endpoint before submitting:\n\n```bash\ncurl -fsS http:\u002F\u002F${EVAL_HOST:-localhost}:${EVAL_PORT:-32090}\u002Fhealth\n```\n\n- **Non-2xx** → stop and tell the user to bring eval-ms up (`docker compose up evaluation-ms`).\n- **2xx** → continue.\n\n## Step 2: Submit + Poll\n\n`eval_api_client.py` is a **blocking** call. It POSTs the request, polls `\u002Fapi\u002Fv1\u002Fe2e-evaluation\u002Fstatus\u002F{eval_job_id}` every `poll_interval_sec` (default 20s) until terminal status (`completed` \u002F `failed` \u002F `cancelled`) or `timeout_sec` (default 3600), prints progress to stderr, and emits a single JSON envelope on the last stdout line. It also validates two cross-field rules client-side before sending: `ddm_training_job_id` is required when `chunking_algorithm=ddm`; `chunk_length_sec` is required when `chunking_algorithm=uniform`.\n\n```bash\npython3 SKILL_DIR\u002Feval_api_client.py e2e \u003Cinputs.yaml> [--overrides \u002Ftmp\u002Fe2e_overrides.yaml]\n```\n\n### Choosing run_in_background vs synchronous\n\nThe client is blocking either way — `run_in_background` only governs how *you* (the caller) wait for it.\n\n- **Interactive Claude Code (main agent)** — use `run_in_background: true`; you receive a completion notification carrying the script's stdout (the envelope).\n- **Subagent or any non-interactive context** — call **synchronously** (do NOT pass `run_in_background: true`). A subagent has no completion-notification channel; a backgrounded process is killed when the subagent's bash session ends and the envelope is lost. Block until the script returns. Set the Bash `timeout` parameter generously (e.g. `1800000` ms = 30 min) for an e2e run with DDM + VLM stages.\n\nIn both cases the envelope appears on stdout once the script exits; that is the only thing the next step needs.\n\nTell the user the pipeline is running and you will report when it finishes.\n\n**IMPORTANT: Do NOT poll or read intermediate logs while waiting.** The script's own poll loop is the only one needed.\n\n## Step 3: Report Summary\n\nWhen the background command completes:\n\n- **Failure** (non-zero exit or envelope `\"status\": \"failed\"`):\n  - Parse the envelope JSON. If `artifacts.sop_e2e_eval_log` is reachable, read its last 30 lines and show the error.\n  - Surface the envelope's `error` field.\n\n- **Success** (`\"status\": \"completed\"`):\n  - Parse the envelope from stdout. The envelope's `headline_metrics` carries `overall_accuracy` (= chunk-level action accuracy) and `avg_f1` (= DDM temporal-segmentation F1) directly — no extra reads needed for the top-line numbers.\n  - For the richer per-video \u002F per-action breakdown, read `artifacts.e2e_results_json` (small — top-level keys: `temporal_segmentation.{avg_f1, avg_precision, avg_recall, per_video}` + `action_recognition.{sequence_accuracy, action_accuracy, total_videos, wrong, duplicate, missing, per_video, per_action}`).\n  - Optionally tail `artifacts.sop_e2e_eval_log` (~20 lines) for the final stage summary.\n  - Cite `host_output_dir`, `artifacts.accuracy_json`, `artifacts.temporal_segmentation_dir` so the user (or RCA) can navigate to deeper artifacts.\n\nDo NOT load `video_name_to_output_text.json` into context — it can be large.\n\n## Reference\n\n### inputs.yaml Format\n\nSee `references\u002Finputs-template.yaml`. Minimum:\n\n```yaml\ntraining_job_id: \u003Ctraining_job_uuid>\nval_dataset_id: \u003Cval_dataset_uuid>\nddm_training_job_id: \u003Cddm_training_job_uuid>   # required for chunking_algorithm=ddm\nhost_results_root: \u002Fabs\u002Fpath\u002Fto\u002Fresults\n```\n\nSet `chunking_algorithm: uniform` + `chunk_length_sec: \u003Cfloat>` to skip DDM entirely and use fixed-length time slices.\n\n### Eval-ms request body\n\n| inputs.yaml field | Mapped to request body | Default |\n|---|---|---|\n| `training_job_id` | `training_job_id` | required |\n| `val_dataset_id` | `val_dataset_id` | required |\n| `ddm_training_job_id` | `ddm_training_job_id` | required when `chunking_algorithm=ddm` |\n| `ddm_checkpoint` | `ddm_checkpoint` | latest under `ddm_training_job_id` |\n| `chunking_algorithm` | `chunking_algorithm` | `ddm` |\n| `chunk_length_sec` | `chunk_length_sec` | required when `chunking_algorithm=uniform` |\n| `score_threshold` | `score_threshold` | 0.5 |\n| `nms_sec` | `nms_sec` | 0.0 |\n| `ddm_batch_size` | `ddm_batch_size` | 8 |\n| `frames_per_segment_hint` | `frames_per_segment_hint` | 256 |\n| `fps` | `fps` | 8 |\n| `temperature` | `temperature` | 0.0 |\n| `top_p` | `top_p` | 1.0 |\n| `backend` | `backend` | `vllm` |\n| `checkpoint_step` | `checkpoint_step` | latest |\n| `resolution_config` | `resolution_config` | training-mirror defaults |\n| `gpu_id` | `gpu_id` | all visible GPUs |\n\n### Outputs\n\nThe eval-ms service writes everything to `\u003Chost_results_root>\u002F\u003Ceval_job_id>\u002F`:\n\n| File | Description |\n|------|-------------|\n| `e2e_results.json` | Combined summary (frontend-facing); `temporal_segmentation.*` + `action_recognition.*` blocks |\n| `outputs_temporal_segmentation\u002Ff1_\u003Cthr>.json` | DDM predicted boundaries with F1\u002Fprecision\u002Frecall per video. `\u003Cthr>` is a fixed evaluation-side tolerance (typically `0.95`); glob with `f1_*.json` for a stable filename. |\n| `outputs_temporal_segmentation\u002Fvideo_to_boundaries_debug.json` | Golden boundaries |\n| `outputs_temporal_segmentation\u002Fvideo_to_ddm_info_debug.json` | DDM per-frame scores, video fps, duration |\n| `outputs_temporal_segmentation\u002F\u003Cvideo>.png` | DDM boundary visualization plots |\n| `outputs_temporal_segmentation\u002Ftemporal_segmentation.log` | DDM stage log with `Args: Namespace(...)` |\n| `outputs_action_recognition\u002Faccuracy.json` | Per-video errors, sequence\u002Faction accuracy, wrong\u002Fduplicate\u002Fmissing breakdown |\n| `outputs_action_recognition\u002Fvideo_name_to_output_text.json` | VLM output text per DDM-segmented chunk |\n| `outputs_action_recognition\u002Faction_recognition_multi_gpu.log` | VLM stage log with `Args: Namespace(...)` |\n| `sop_e2e_eval_log.txt` | Driver log spanning both stages |\n| `log.txt` | Combined log (DDM + VLM) |\n\n### Structured JSON envelope (stdout)\n\n```json\n{\n  \"mode\": \"e2e\",\n  \"eval_job_id\": \"...\",\n  \"status\": \"completed\",\n  \"host_output_dir\": \"\u002Fabs\u002Fhost\u002Fpath\u002Fto\u002F\u003Ceval_job_id>\",\n  \"container_output_dir\": \"\u002Fworkspace\u002Fsop-eval-ms\u002Fassets\u002Fresults\u002F\u003Ceval_job_id>\",\n  \"artifacts\": {\n    \"e2e_results_json\": \"\u003Chost_output_dir>\u002Fe2e_results.json\",\n    \"accuracy_json\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faccuracy.json\",\n    \"video_name_to_output_text_json\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Fvideo_name_to_output_text.json\",\n    \"action_recognition_log\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faction_recognition_multi_gpu.log\",\n    \"temporal_segmentation_dir\": \"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation\",\n    \"temporal_segmentation_log\": \"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation\u002Ftemporal_segmentation.log\",\n    \"sop_e2e_eval_log\": \"\u003Chost_output_dir>\u002Fsop_e2e_eval_log.txt\",\n    \"log\": \"\u003Chost_output_dir>\u002Flog.txt\"\n  },\n  \"headline_metrics\": {\n    \"overall_accuracy\": 0.93,\n    \"avg_f1\": 0.95\n  },\n  \"error\": null\n}\n```\n\n`headline_metrics`:\n- `overall_accuracy` — chunk-level VLM match rate over DDM-segmented chunks (informational; inflates the denominator when DDM over-segments, so not the same as action-level accuracy).\n- `avg_f1` — DDM temporal-segmentation F1 averaged across videos.\n\nFor the action-level \u002F sequence-level numbers the orchestrator and RCA care about (`action_accuracy`, `sequence_accuracy`, `wrong\u002Fduplicate\u002Fmissing`), read `e2e_results.json.action_recognition.*` — it's a small file.\n\n### Troubleshooting\n\n- **HTTP 400 \"ddm_training_job_id is required\"**: provide a DDM training job UUID, or switch to `chunking_algorithm: uniform`.\n- **HTTP 400 \"chunk_length_sec is required\"**: set `chunk_length_sec` (e.g. 12.0) when using `chunking_algorithm: uniform`.\n- **HTTP 400 \"Training\u002FDDM job not found \u002F not completed\"**: confirm both training and DDM training jobs are in `completed` status before submitting.\n- **HTTP 400 \"An e2e evaluation is already running\"**: eval-ms allows one e2e job at a time. Cancel the running one (`POST \u002Fapi\u002Fv1\u002Fe2e-evaluation\u002Fcancel\u002F{eval_job_id}`) or wait.\n- **DDM under-segmentation** (low `temporal_segmentation.avg_f1`): try lowering `score_threshold` (e.g. 0.5 → 0.4). Re-evaluate before recommending DDM retraining.\n- **Sequence accuracy collapse but per-action OK**: VLM-side issue (look in `outputs_action_recognition\u002Fvideo_name_to_output_text.json`); rerun by-action on the same checkpoint for confirmation.\n- **CUDA OOM** during VLM stage: lower `resolution_config.total_pixels` or `resolution_config.max_frames`, or reduce `fps`.\n- **Timeout** (envelope `\"status\": \"timeout\"`): the job may still be running on eval-ms. Check `\u002Fstatus` manually before retrying.\n",{"data":35,"body":36},{"name":4,"description":6,"license":26},{"type":37,"children":38},"root",[39,48,71,76,87,114,124,146,153,158,379,384,390,395,487,518,524,614,669,676,697,758,763,768,778,784,789,954,967,973,979,991,1074,1094,1100,1560,1566,1578,1837,1843,2507,2516,2539,2574,2580,2757],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"e2e-inference-pipeline-api-driven",[45],{"type":46,"value":47},"text","E2E Inference Pipeline (API-driven)",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,61,63,69],{"type":46,"value":53},"Run the end-to-end DDM + VLM pipeline by POSTing to the BP ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":60},"evaluation-ms",{"type":46,"value":62}," HTTP service. Eval-ms runs DDM temporal segmentation, then VLM action recognition, then scores accuracy — and writes everything to a uuid-named directory under ",{"type":40,"tag":55,"props":64,"children":66},{"className":65},[],[67],{"type":46,"value":68},"\u003CRESULTS_ROOT>\u002F\u003Ceval_job_id>\u002F",{"type":46,"value":70},". This skill submits the request, polls until terminal, resolves the host-side output directory, and emits a structured JSON envelope on stdout.",{"type":40,"tag":49,"props":72,"children":73},{},[74],{"type":46,"value":75},"When this skill is invoked, follow the steps below in order. Stop immediately if any step fails — show the full error output to the user, explain what likely went wrong and how to fix it, but do NOT attempt to fix it automatically.",{"type":40,"tag":49,"props":77,"children":78},{},[79,85],{"type":40,"tag":80,"props":81,"children":82},"strong",{},[83],{"type":46,"value":84},"Bundled resources",{"type":46,"value":86}," (paths relative to this skill's directory):",{"type":40,"tag":88,"props":89,"children":90},"ul",{},[91,103],{"type":40,"tag":92,"props":93,"children":94},"li",{},[95,101],{"type":40,"tag":55,"props":96,"children":98},{"className":97},[],[99],{"type":46,"value":100},"scripts\u002Feval_api_client.py",{"type":46,"value":102}," — single Python helper that POSTs, polls, resolves paths, prints the envelope.",{"type":40,"tag":92,"props":104,"children":105},{},[106,112],{"type":40,"tag":55,"props":107,"children":109},{"className":108},[],[110],{"type":46,"value":111},"references\u002Finputs-template.yaml",{"type":46,"value":113}," — configuration template with all parameters documented.",{"type":40,"tag":49,"props":115,"children":116},{},[117,122],{"type":40,"tag":80,"props":118,"children":119},{},[120],{"type":46,"value":121},"Path conventions",{"type":46,"value":123},":",{"type":40,"tag":88,"props":125,"children":126},{},[127],{"type":40,"tag":92,"props":128,"children":129},{},[130,136,138,144],{"type":40,"tag":55,"props":131,"children":133},{"className":132},[],[134],{"type":46,"value":135},"SKILL_DIR",{"type":46,"value":137}," = this skill's ",{"type":40,"tag":55,"props":139,"children":141},{"className":140},[],[142],{"type":46,"value":143},"scripts",{"type":46,"value":145}," directory (absolute path resolved at invocation time).",{"type":40,"tag":147,"props":148,"children":150},"h2",{"id":149},"step-0-parse-overrides-if-any",[151],{"type":46,"value":152},"Step 0: Parse Overrides (if any)",{"type":40,"tag":49,"props":154,"children":155},{},[156],{"type":46,"value":157},"If the user provided natural language parameter overrides alongside the inputs.yaml:",{"type":40,"tag":159,"props":160,"children":161},"ol",{},[162,361,374],{"type":40,"tag":92,"props":163,"children":164},{},[165,167,172,174],{"type":46,"value":166},"Parse the overrides. If any part of the input cannot be clearly mapped to a yaml field, list the ambiguous parts and ask the user to clarify before proceeding. Map to the yaml structure (see ",{"type":40,"tag":55,"props":168,"children":170},{"className":169},[],[171],{"type":46,"value":111},{"type":46,"value":173},"):",{"type":40,"tag":88,"props":175,"children":176},{},[177,212,231],{"type":40,"tag":92,"props":178,"children":179},{},[180,182,188,190,196,198,204,206],{"type":46,"value":181},"Required: ",{"type":40,"tag":55,"props":183,"children":185},{"className":184},[],[186],{"type":46,"value":187},"training_job_id",{"type":46,"value":189},", ",{"type":40,"tag":55,"props":191,"children":193},{"className":192},[],[194],{"type":46,"value":195},"val_dataset_id",{"type":46,"value":197},", and (when ",{"type":40,"tag":55,"props":199,"children":201},{"className":200},[],[202],{"type":46,"value":203},"chunking_algorithm=ddm",{"type":46,"value":205},") ",{"type":40,"tag":55,"props":207,"children":209},{"className":208},[],[210],{"type":46,"value":211},"ddm_training_job_id",{"type":40,"tag":92,"props":213,"children":214},{},[215,217,223,225],{"type":46,"value":216},"Required (uniform chunking): ",{"type":40,"tag":55,"props":218,"children":220},{"className":219},[],[221],{"type":46,"value":222},"chunk_length_sec",{"type":46,"value":224}," when ",{"type":40,"tag":55,"props":226,"children":228},{"className":227},[],[229],{"type":46,"value":230},"chunking_algorithm=uniform",{"type":40,"tag":92,"props":232,"children":233},{},[234,236,242,243,249,250,256,257,263,264,270,271,277,278,284,285,291,292,298,299,305,306,312,313,319,320,326,327,333,334,340,341,347,348,354,355],{"type":46,"value":235},"Optional: ",{"type":40,"tag":55,"props":237,"children":239},{"className":238},[],[240],{"type":46,"value":241},"eval_host",{"type":46,"value":189},{"type":40,"tag":55,"props":244,"children":246},{"className":245},[],[247],{"type":46,"value":248},"eval_port",{"type":46,"value":189},{"type":40,"tag":55,"props":251,"children":253},{"className":252},[],[254],{"type":46,"value":255},"host_results_root",{"type":46,"value":189},{"type":40,"tag":55,"props":258,"children":260},{"className":259},[],[261],{"type":46,"value":262},"backend",{"type":46,"value":189},{"type":40,"tag":55,"props":265,"children":267},{"className":266},[],[268],{"type":46,"value":269},"fps",{"type":46,"value":189},{"type":40,"tag":55,"props":272,"children":274},{"className":273},[],[275],{"type":46,"value":276},"temperature",{"type":46,"value":189},{"type":40,"tag":55,"props":279,"children":281},{"className":280},[],[282],{"type":46,"value":283},"top_p",{"type":46,"value":189},{"type":40,"tag":55,"props":286,"children":288},{"className":287},[],[289],{"type":46,"value":290},"checkpoint_step",{"type":46,"value":189},{"type":40,"tag":55,"props":293,"children":295},{"className":294},[],[296],{"type":46,"value":297},"ddm_checkpoint",{"type":46,"value":189},{"type":40,"tag":55,"props":300,"children":302},{"className":301},[],[303],{"type":46,"value":304},"resolution_config",{"type":46,"value":189},{"type":40,"tag":55,"props":307,"children":309},{"className":308},[],[310],{"type":46,"value":311},"gpu_id",{"type":46,"value":189},{"type":40,"tag":55,"props":314,"children":316},{"className":315},[],[317],{"type":46,"value":318},"score_threshold",{"type":46,"value":189},{"type":40,"tag":55,"props":321,"children":323},{"className":322},[],[324],{"type":46,"value":325},"nms_sec",{"type":46,"value":189},{"type":40,"tag":55,"props":328,"children":330},{"className":329},[],[331],{"type":46,"value":332},"ddm_batch_size",{"type":46,"value":189},{"type":40,"tag":55,"props":335,"children":337},{"className":336},[],[338],{"type":46,"value":339},"frames_per_segment_hint",{"type":46,"value":189},{"type":40,"tag":55,"props":342,"children":344},{"className":343},[],[345],{"type":46,"value":346},"chunking_algorithm",{"type":46,"value":189},{"type":40,"tag":55,"props":349,"children":351},{"className":350},[],[352],{"type":46,"value":353},"poll_interval_sec",{"type":46,"value":189},{"type":40,"tag":55,"props":356,"children":358},{"className":357},[],[359],{"type":46,"value":360},"timeout_sec",{"type":40,"tag":92,"props":362,"children":363},{},[364,366,372],{"type":46,"value":365},"Write the overrides to ",{"type":40,"tag":55,"props":367,"children":369},{"className":368},[],[370],{"type":46,"value":371},"\u002Ftmp\u002Fe2e_overrides.yaml",{"type":46,"value":373},". The api client merges them on top of inputs.yaml at invocation time.",{"type":40,"tag":92,"props":375,"children":376},{},[377],{"type":46,"value":378},"Show the user what was overridden.",{"type":40,"tag":49,"props":380,"children":381},{},[382],{"type":46,"value":383},"If no overrides, skip the overrides file.",{"type":40,"tag":147,"props":385,"children":387},{"id":386},"step-1-preflight-eval-ms-reachability",[388],{"type":46,"value":389},"Step 1: Preflight — eval-ms reachability",{"type":40,"tag":49,"props":391,"children":392},{},[393],{"type":46,"value":394},"Probe the health endpoint before submitting:",{"type":40,"tag":396,"props":397,"children":402},"pre",{"className":398,"code":399,"language":400,"meta":401,"style":401},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsS http:\u002F\u002F${EVAL_HOST:-localhost}:${EVAL_PORT:-32090}\u002Fhealth\n","bash","",[403],{"type":40,"tag":55,"props":404,"children":405},{"__ignoreMap":401},[406],{"type":40,"tag":407,"props":408,"children":411},"span",{"class":409,"line":410},"line",1,[412,418,424,429,435,441,446,451,456,460,464,469,473,478,482],{"type":40,"tag":407,"props":413,"children":415},{"style":414},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[416],{"type":46,"value":417},"curl",{"type":40,"tag":407,"props":419,"children":421},{"style":420},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[422],{"type":46,"value":423}," -fsS",{"type":40,"tag":407,"props":425,"children":426},{"style":420},[427],{"type":46,"value":428}," http:\u002F\u002F",{"type":40,"tag":407,"props":430,"children":432},{"style":431},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[433],{"type":46,"value":434},"${",{"type":40,"tag":407,"props":436,"children":438},{"style":437},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[439],{"type":46,"value":440},"EVAL_HOST",{"type":40,"tag":407,"props":442,"children":443},{"style":431},[444],{"type":46,"value":445},":-",{"type":40,"tag":407,"props":447,"children":448},{"style":437},[449],{"type":46,"value":450},"localhost",{"type":40,"tag":407,"props":452,"children":453},{"style":431},[454],{"type":46,"value":455},"}",{"type":40,"tag":407,"props":457,"children":458},{"style":420},[459],{"type":46,"value":123},{"type":40,"tag":407,"props":461,"children":462},{"style":431},[463],{"type":46,"value":434},{"type":40,"tag":407,"props":465,"children":466},{"style":437},[467],{"type":46,"value":468},"EVAL_PORT",{"type":40,"tag":407,"props":470,"children":471},{"style":431},[472],{"type":46,"value":445},{"type":40,"tag":407,"props":474,"children":475},{"style":437},[476],{"type":46,"value":477},"32090",{"type":40,"tag":407,"props":479,"children":480},{"style":431},[481],{"type":46,"value":455},{"type":40,"tag":407,"props":483,"children":484},{"style":420},[485],{"type":46,"value":486},"\u002Fhealth\n",{"type":40,"tag":88,"props":488,"children":489},{},[490,508],{"type":40,"tag":92,"props":491,"children":492},{},[493,498,500,506],{"type":40,"tag":80,"props":494,"children":495},{},[496],{"type":46,"value":497},"Non-2xx",{"type":46,"value":499}," → stop and tell the user to bring eval-ms up (",{"type":40,"tag":55,"props":501,"children":503},{"className":502},[],[504],{"type":46,"value":505},"docker compose up evaluation-ms",{"type":46,"value":507},").",{"type":40,"tag":92,"props":509,"children":510},{},[511,516],{"type":40,"tag":80,"props":512,"children":513},{},[514],{"type":46,"value":515},"2xx",{"type":46,"value":517}," → continue.",{"type":40,"tag":147,"props":519,"children":521},{"id":520},"step-2-submit-poll",[522],{"type":46,"value":523},"Step 2: Submit + Poll",{"type":40,"tag":49,"props":525,"children":526},{},[527,533,535,540,542,548,550,555,557,563,565,571,572,578,580,585,587,592,594,599,601,606,607,612],{"type":40,"tag":55,"props":528,"children":530},{"className":529},[],[531],{"type":46,"value":532},"eval_api_client.py",{"type":46,"value":534}," is a ",{"type":40,"tag":80,"props":536,"children":537},{},[538],{"type":46,"value":539},"blocking",{"type":46,"value":541}," call. It POSTs the request, polls ",{"type":40,"tag":55,"props":543,"children":545},{"className":544},[],[546],{"type":46,"value":547},"\u002Fapi\u002Fv1\u002Fe2e-evaluation\u002Fstatus\u002F{eval_job_id}",{"type":46,"value":549}," every ",{"type":40,"tag":55,"props":551,"children":553},{"className":552},[],[554],{"type":46,"value":353},{"type":46,"value":556}," (default 20s) until terminal status (",{"type":40,"tag":55,"props":558,"children":560},{"className":559},[],[561],{"type":46,"value":562},"completed",{"type":46,"value":564}," \u002F ",{"type":40,"tag":55,"props":566,"children":568},{"className":567},[],[569],{"type":46,"value":570},"failed",{"type":46,"value":564},{"type":40,"tag":55,"props":573,"children":575},{"className":574},[],[576],{"type":46,"value":577},"cancelled",{"type":46,"value":579},") or ",{"type":40,"tag":55,"props":581,"children":583},{"className":582},[],[584],{"type":46,"value":360},{"type":46,"value":586}," (default 3600), prints progress to stderr, and emits a single JSON envelope on the last stdout line. It also validates two cross-field rules client-side before sending: ",{"type":40,"tag":55,"props":588,"children":590},{"className":589},[],[591],{"type":46,"value":211},{"type":46,"value":593}," is required when ",{"type":40,"tag":55,"props":595,"children":597},{"className":596},[],[598],{"type":46,"value":203},{"type":46,"value":600},"; ",{"type":40,"tag":55,"props":602,"children":604},{"className":603},[],[605],{"type":46,"value":222},{"type":46,"value":593},{"type":40,"tag":55,"props":608,"children":610},{"className":609},[],[611],{"type":46,"value":230},{"type":46,"value":613},".",{"type":40,"tag":396,"props":615,"children":617},{"className":398,"code":616,"language":400,"meta":401,"style":401},"python3 SKILL_DIR\u002Feval_api_client.py e2e \u003Cinputs.yaml> [--overrides \u002Ftmp\u002Fe2e_overrides.yaml]\n",[618],{"type":40,"tag":55,"props":619,"children":620},{"__ignoreMap":401},[621],{"type":40,"tag":407,"props":622,"children":623},{"class":409,"line":410},[624,629,634,639,644,649,654,659,664],{"type":40,"tag":407,"props":625,"children":626},{"style":414},[627],{"type":46,"value":628},"python3",{"type":40,"tag":407,"props":630,"children":631},{"style":420},[632],{"type":46,"value":633}," SKILL_DIR\u002Feval_api_client.py",{"type":40,"tag":407,"props":635,"children":636},{"style":420},[637],{"type":46,"value":638}," e2e",{"type":40,"tag":407,"props":640,"children":641},{"style":431},[642],{"type":46,"value":643}," \u003C",{"type":40,"tag":407,"props":645,"children":646},{"style":420},[647],{"type":46,"value":648},"inputs.yam",{"type":40,"tag":407,"props":650,"children":651},{"style":437},[652],{"type":46,"value":653},"l",{"type":40,"tag":407,"props":655,"children":656},{"style":431},[657],{"type":46,"value":658},">",{"type":40,"tag":407,"props":660,"children":661},{"style":437},[662],{"type":46,"value":663}," [--overrides ",{"type":40,"tag":407,"props":665,"children":666},{"style":420},[667],{"type":46,"value":668},"\u002Ftmp\u002Fe2e_overrides.yaml]\n",{"type":40,"tag":670,"props":671,"children":673},"h3",{"id":672},"choosing-run_in_background-vs-synchronous",[674],{"type":46,"value":675},"Choosing run_in_background vs synchronous",{"type":40,"tag":49,"props":677,"children":678},{},[679,681,687,689,695],{"type":46,"value":680},"The client is blocking either way — ",{"type":40,"tag":55,"props":682,"children":684},{"className":683},[],[685],{"type":46,"value":686},"run_in_background",{"type":46,"value":688}," only governs how ",{"type":40,"tag":690,"props":691,"children":692},"em",{},[693],{"type":46,"value":694},"you",{"type":46,"value":696}," (the caller) wait for it.",{"type":40,"tag":88,"props":698,"children":699},{},[700,718],{"type":40,"tag":92,"props":701,"children":702},{},[703,708,710,716],{"type":40,"tag":80,"props":704,"children":705},{},[706],{"type":46,"value":707},"Interactive Claude Code (main agent)",{"type":46,"value":709}," — use ",{"type":40,"tag":55,"props":711,"children":713},{"className":712},[],[714],{"type":46,"value":715},"run_in_background: true",{"type":46,"value":717},"; you receive a completion notification carrying the script's stdout (the envelope).",{"type":40,"tag":92,"props":719,"children":720},{},[721,726,728,733,735,740,742,748,750,756],{"type":40,"tag":80,"props":722,"children":723},{},[724],{"type":46,"value":725},"Subagent or any non-interactive context",{"type":46,"value":727}," — call ",{"type":40,"tag":80,"props":729,"children":730},{},[731],{"type":46,"value":732},"synchronously",{"type":46,"value":734}," (do NOT pass ",{"type":40,"tag":55,"props":736,"children":738},{"className":737},[],[739],{"type":46,"value":715},{"type":46,"value":741},"). A subagent has no completion-notification channel; a backgrounded process is killed when the subagent's bash session ends and the envelope is lost. Block until the script returns. Set the Bash ",{"type":40,"tag":55,"props":743,"children":745},{"className":744},[],[746],{"type":46,"value":747},"timeout",{"type":46,"value":749}," parameter generously (e.g. ",{"type":40,"tag":55,"props":751,"children":753},{"className":752},[],[754],{"type":46,"value":755},"1800000",{"type":46,"value":757}," ms = 30 min) for an e2e run with DDM + VLM stages.",{"type":40,"tag":49,"props":759,"children":760},{},[761],{"type":46,"value":762},"In both cases the envelope appears on stdout once the script exits; that is the only thing the next step needs.",{"type":40,"tag":49,"props":764,"children":765},{},[766],{"type":46,"value":767},"Tell the user the pipeline is running and you will report when it finishes.",{"type":40,"tag":49,"props":769,"children":770},{},[771,776],{"type":40,"tag":80,"props":772,"children":773},{},[774],{"type":46,"value":775},"IMPORTANT: Do NOT poll or read intermediate logs while waiting.",{"type":46,"value":777}," The script's own poll loop is the only one needed.",{"type":40,"tag":147,"props":779,"children":781},{"id":780},"step-3-report-summary",[782],{"type":46,"value":783},"Step 3: Report Summary",{"type":40,"tag":49,"props":785,"children":786},{},[787],{"type":46,"value":788},"When the background command completes:",{"type":40,"tag":88,"props":790,"children":791},{},[792,838],{"type":40,"tag":92,"props":793,"children":794},{},[795,800,802,808,809],{"type":40,"tag":80,"props":796,"children":797},{},[798],{"type":46,"value":799},"Failure",{"type":46,"value":801}," (non-zero exit or envelope ",{"type":40,"tag":55,"props":803,"children":805},{"className":804},[],[806],{"type":46,"value":807},"\"status\": \"failed\"",{"type":46,"value":173},{"type":40,"tag":88,"props":810,"children":811},{},[812,825],{"type":40,"tag":92,"props":813,"children":814},{},[815,817,823],{"type":46,"value":816},"Parse the envelope JSON. If ",{"type":40,"tag":55,"props":818,"children":820},{"className":819},[],[821],{"type":46,"value":822},"artifacts.sop_e2e_eval_log",{"type":46,"value":824}," is reachable, read its last 30 lines and show the error.",{"type":40,"tag":92,"props":826,"children":827},{},[828,830,836],{"type":46,"value":829},"Surface the envelope's ",{"type":40,"tag":55,"props":831,"children":833},{"className":832},[],[834],{"type":46,"value":835},"error",{"type":46,"value":837}," field.",{"type":40,"tag":92,"props":839,"children":840},{},[841,846,848,854,855],{"type":40,"tag":80,"props":842,"children":843},{},[844],{"type":46,"value":845},"Success",{"type":46,"value":847}," (",{"type":40,"tag":55,"props":849,"children":851},{"className":850},[],[852],{"type":46,"value":853},"\"status\": \"completed\"",{"type":46,"value":173},{"type":40,"tag":88,"props":856,"children":857},{},[858,887,915,927],{"type":40,"tag":92,"props":859,"children":860},{},[861,863,869,871,877,879,885],{"type":46,"value":862},"Parse the envelope from stdout. The envelope's ",{"type":40,"tag":55,"props":864,"children":866},{"className":865},[],[867],{"type":46,"value":868},"headline_metrics",{"type":46,"value":870}," carries ",{"type":40,"tag":55,"props":872,"children":874},{"className":873},[],[875],{"type":46,"value":876},"overall_accuracy",{"type":46,"value":878}," (= chunk-level action accuracy) and ",{"type":40,"tag":55,"props":880,"children":882},{"className":881},[],[883],{"type":46,"value":884},"avg_f1",{"type":46,"value":886}," (= DDM temporal-segmentation F1) directly — no extra reads needed for the top-line numbers.",{"type":40,"tag":92,"props":888,"children":889},{},[890,892,898,900,906,908,914],{"type":46,"value":891},"For the richer per-video \u002F per-action breakdown, read ",{"type":40,"tag":55,"props":893,"children":895},{"className":894},[],[896],{"type":46,"value":897},"artifacts.e2e_results_json",{"type":46,"value":899}," (small — top-level keys: ",{"type":40,"tag":55,"props":901,"children":903},{"className":902},[],[904],{"type":46,"value":905},"temporal_segmentation.{avg_f1, avg_precision, avg_recall, per_video}",{"type":46,"value":907}," + ",{"type":40,"tag":55,"props":909,"children":911},{"className":910},[],[912],{"type":46,"value":913},"action_recognition.{sequence_accuracy, action_accuracy, total_videos, wrong, duplicate, missing, per_video, per_action}",{"type":46,"value":507},{"type":40,"tag":92,"props":916,"children":917},{},[918,920,925],{"type":46,"value":919},"Optionally tail ",{"type":40,"tag":55,"props":921,"children":923},{"className":922},[],[924],{"type":46,"value":822},{"type":46,"value":926}," (~20 lines) for the final stage summary.",{"type":40,"tag":92,"props":928,"children":929},{},[930,932,938,939,945,946,952],{"type":46,"value":931},"Cite ",{"type":40,"tag":55,"props":933,"children":935},{"className":934},[],[936],{"type":46,"value":937},"host_output_dir",{"type":46,"value":189},{"type":40,"tag":55,"props":940,"children":942},{"className":941},[],[943],{"type":46,"value":944},"artifacts.accuracy_json",{"type":46,"value":189},{"type":40,"tag":55,"props":947,"children":949},{"className":948},[],[950],{"type":46,"value":951},"artifacts.temporal_segmentation_dir",{"type":46,"value":953}," so the user (or RCA) can navigate to deeper artifacts.",{"type":40,"tag":49,"props":955,"children":956},{},[957,959,965],{"type":46,"value":958},"Do NOT load ",{"type":40,"tag":55,"props":960,"children":962},{"className":961},[],[963],{"type":46,"value":964},"video_name_to_output_text.json",{"type":46,"value":966}," into context — it can be large.",{"type":40,"tag":147,"props":968,"children":970},{"id":969},"reference",[971],{"type":46,"value":972},"Reference",{"type":40,"tag":670,"props":974,"children":976},{"id":975},"inputsyaml-format",[977],{"type":46,"value":978},"inputs.yaml Format",{"type":40,"tag":49,"props":980,"children":981},{},[982,984,989],{"type":46,"value":983},"See ",{"type":40,"tag":55,"props":985,"children":987},{"className":986},[],[988],{"type":46,"value":111},{"type":46,"value":990},". Minimum:",{"type":40,"tag":396,"props":992,"children":996},{"className":993,"code":994,"language":995,"meta":401,"style":401},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","training_job_id: \u003Ctraining_job_uuid>\nval_dataset_id: \u003Cval_dataset_uuid>\nddm_training_job_id: \u003Cddm_training_job_uuid>   # required for chunking_algorithm=ddm\nhost_results_root: \u002Fabs\u002Fpath\u002Fto\u002Fresults\n","yaml",[997],{"type":40,"tag":55,"props":998,"children":999},{"__ignoreMap":401},[1000,1017,1034,1057],{"type":40,"tag":407,"props":1001,"children":1002},{"class":409,"line":410},[1003,1008,1012],{"type":40,"tag":407,"props":1004,"children":1006},{"style":1005},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1007],{"type":46,"value":187},{"type":40,"tag":407,"props":1009,"children":1010},{"style":431},[1011],{"type":46,"value":123},{"type":40,"tag":407,"props":1013,"children":1014},{"style":420},[1015],{"type":46,"value":1016}," \u003Ctraining_job_uuid>\n",{"type":40,"tag":407,"props":1018,"children":1020},{"class":409,"line":1019},2,[1021,1025,1029],{"type":40,"tag":407,"props":1022,"children":1023},{"style":1005},[1024],{"type":46,"value":195},{"type":40,"tag":407,"props":1026,"children":1027},{"style":431},[1028],{"type":46,"value":123},{"type":40,"tag":407,"props":1030,"children":1031},{"style":420},[1032],{"type":46,"value":1033}," \u003Cval_dataset_uuid>\n",{"type":40,"tag":407,"props":1035,"children":1037},{"class":409,"line":1036},3,[1038,1042,1046,1051],{"type":40,"tag":407,"props":1039,"children":1040},{"style":1005},[1041],{"type":46,"value":211},{"type":40,"tag":407,"props":1043,"children":1044},{"style":431},[1045],{"type":46,"value":123},{"type":40,"tag":407,"props":1047,"children":1048},{"style":420},[1049],{"type":46,"value":1050}," \u003Cddm_training_job_uuid>",{"type":40,"tag":407,"props":1052,"children":1054},{"style":1053},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1055],{"type":46,"value":1056},"   # required for chunking_algorithm=ddm\n",{"type":40,"tag":407,"props":1058,"children":1060},{"class":409,"line":1059},4,[1061,1065,1069],{"type":40,"tag":407,"props":1062,"children":1063},{"style":1005},[1064],{"type":46,"value":255},{"type":40,"tag":407,"props":1066,"children":1067},{"style":431},[1068],{"type":46,"value":123},{"type":40,"tag":407,"props":1070,"children":1071},{"style":420},[1072],{"type":46,"value":1073}," \u002Fabs\u002Fpath\u002Fto\u002Fresults\n",{"type":40,"tag":49,"props":1075,"children":1076},{},[1077,1079,1085,1086,1092],{"type":46,"value":1078},"Set ",{"type":40,"tag":55,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":46,"value":1084},"chunking_algorithm: uniform",{"type":46,"value":907},{"type":40,"tag":55,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":46,"value":1091},"chunk_length_sec: \u003Cfloat>",{"type":46,"value":1093}," to skip DDM entirely and use fixed-length time slices.",{"type":40,"tag":670,"props":1095,"children":1097},{"id":1096},"eval-ms-request-body",[1098],{"type":46,"value":1099},"Eval-ms request body",{"type":40,"tag":1101,"props":1102,"children":1103},"table",{},[1104,1128],{"type":40,"tag":1105,"props":1106,"children":1107},"thead",{},[1108],{"type":40,"tag":1109,"props":1110,"children":1111},"tr",{},[1112,1118,1123],{"type":40,"tag":1113,"props":1114,"children":1115},"th",{},[1116],{"type":46,"value":1117},"inputs.yaml field",{"type":40,"tag":1113,"props":1119,"children":1120},{},[1121],{"type":46,"value":1122},"Mapped to request body",{"type":40,"tag":1113,"props":1124,"children":1125},{},[1126],{"type":46,"value":1127},"Default",{"type":40,"tag":1129,"props":1130,"children":1131},"tbody",{},[1132,1157,1180,1209,1238,1266,1294,1318,1342,1366,1390,1413,1436,1460,1488,1512,1536],{"type":40,"tag":1109,"props":1133,"children":1134},{},[1135,1144,1152],{"type":40,"tag":1136,"props":1137,"children":1138},"td",{},[1139],{"type":40,"tag":55,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":46,"value":187},{"type":40,"tag":1136,"props":1145,"children":1146},{},[1147],{"type":40,"tag":55,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":46,"value":187},{"type":40,"tag":1136,"props":1153,"children":1154},{},[1155],{"type":46,"value":1156},"required",{"type":40,"tag":1109,"props":1158,"children":1159},{},[1160,1168,1176],{"type":40,"tag":1136,"props":1161,"children":1162},{},[1163],{"type":40,"tag":55,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":46,"value":195},{"type":40,"tag":1136,"props":1169,"children":1170},{},[1171],{"type":40,"tag":55,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":46,"value":195},{"type":40,"tag":1136,"props":1177,"children":1178},{},[1179],{"type":46,"value":1156},{"type":40,"tag":1109,"props":1181,"children":1182},{},[1183,1191,1199],{"type":40,"tag":1136,"props":1184,"children":1185},{},[1186],{"type":40,"tag":55,"props":1187,"children":1189},{"className":1188},[],[1190],{"type":46,"value":211},{"type":40,"tag":1136,"props":1192,"children":1193},{},[1194],{"type":40,"tag":55,"props":1195,"children":1197},{"className":1196},[],[1198],{"type":46,"value":211},{"type":40,"tag":1136,"props":1200,"children":1201},{},[1202,1204],{"type":46,"value":1203},"required when ",{"type":40,"tag":55,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":46,"value":203},{"type":40,"tag":1109,"props":1210,"children":1211},{},[1212,1220,1228],{"type":40,"tag":1136,"props":1213,"children":1214},{},[1215],{"type":40,"tag":55,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":46,"value":297},{"type":40,"tag":1136,"props":1221,"children":1222},{},[1223],{"type":40,"tag":55,"props":1224,"children":1226},{"className":1225},[],[1227],{"type":46,"value":297},{"type":40,"tag":1136,"props":1229,"children":1230},{},[1231,1233],{"type":46,"value":1232},"latest under ",{"type":40,"tag":55,"props":1234,"children":1236},{"className":1235},[],[1237],{"type":46,"value":211},{"type":40,"tag":1109,"props":1239,"children":1240},{},[1241,1249,1257],{"type":40,"tag":1136,"props":1242,"children":1243},{},[1244],{"type":40,"tag":55,"props":1245,"children":1247},{"className":1246},[],[1248],{"type":46,"value":346},{"type":40,"tag":1136,"props":1250,"children":1251},{},[1252],{"type":40,"tag":55,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":46,"value":346},{"type":40,"tag":1136,"props":1258,"children":1259},{},[1260],{"type":40,"tag":55,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":46,"value":1265},"ddm",{"type":40,"tag":1109,"props":1267,"children":1268},{},[1269,1277,1285],{"type":40,"tag":1136,"props":1270,"children":1271},{},[1272],{"type":40,"tag":55,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":46,"value":222},{"type":40,"tag":1136,"props":1278,"children":1279},{},[1280],{"type":40,"tag":55,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":46,"value":222},{"type":40,"tag":1136,"props":1286,"children":1287},{},[1288,1289],{"type":46,"value":1203},{"type":40,"tag":55,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":46,"value":230},{"type":40,"tag":1109,"props":1295,"children":1296},{},[1297,1305,1313],{"type":40,"tag":1136,"props":1298,"children":1299},{},[1300],{"type":40,"tag":55,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":46,"value":318},{"type":40,"tag":1136,"props":1306,"children":1307},{},[1308],{"type":40,"tag":55,"props":1309,"children":1311},{"className":1310},[],[1312],{"type":46,"value":318},{"type":40,"tag":1136,"props":1314,"children":1315},{},[1316],{"type":46,"value":1317},"0.5",{"type":40,"tag":1109,"props":1319,"children":1320},{},[1321,1329,1337],{"type":40,"tag":1136,"props":1322,"children":1323},{},[1324],{"type":40,"tag":55,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":46,"value":325},{"type":40,"tag":1136,"props":1330,"children":1331},{},[1332],{"type":40,"tag":55,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":46,"value":325},{"type":40,"tag":1136,"props":1338,"children":1339},{},[1340],{"type":46,"value":1341},"0.0",{"type":40,"tag":1109,"props":1343,"children":1344},{},[1345,1353,1361],{"type":40,"tag":1136,"props":1346,"children":1347},{},[1348],{"type":40,"tag":55,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":46,"value":332},{"type":40,"tag":1136,"props":1354,"children":1355},{},[1356],{"type":40,"tag":55,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":46,"value":332},{"type":40,"tag":1136,"props":1362,"children":1363},{},[1364],{"type":46,"value":1365},"8",{"type":40,"tag":1109,"props":1367,"children":1368},{},[1369,1377,1385],{"type":40,"tag":1136,"props":1370,"children":1371},{},[1372],{"type":40,"tag":55,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":46,"value":339},{"type":40,"tag":1136,"props":1378,"children":1379},{},[1380],{"type":40,"tag":55,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":46,"value":339},{"type":40,"tag":1136,"props":1386,"children":1387},{},[1388],{"type":46,"value":1389},"256",{"type":40,"tag":1109,"props":1391,"children":1392},{},[1393,1401,1409],{"type":40,"tag":1136,"props":1394,"children":1395},{},[1396],{"type":40,"tag":55,"props":1397,"children":1399},{"className":1398},[],[1400],{"type":46,"value":269},{"type":40,"tag":1136,"props":1402,"children":1403},{},[1404],{"type":40,"tag":55,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":46,"value":269},{"type":40,"tag":1136,"props":1410,"children":1411},{},[1412],{"type":46,"value":1365},{"type":40,"tag":1109,"props":1414,"children":1415},{},[1416,1424,1432],{"type":40,"tag":1136,"props":1417,"children":1418},{},[1419],{"type":40,"tag":55,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":46,"value":276},{"type":40,"tag":1136,"props":1425,"children":1426},{},[1427],{"type":40,"tag":55,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":46,"value":276},{"type":40,"tag":1136,"props":1433,"children":1434},{},[1435],{"type":46,"value":1341},{"type":40,"tag":1109,"props":1437,"children":1438},{},[1439,1447,1455],{"type":40,"tag":1136,"props":1440,"children":1441},{},[1442],{"type":40,"tag":55,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":46,"value":283},{"type":40,"tag":1136,"props":1448,"children":1449},{},[1450],{"type":40,"tag":55,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":46,"value":283},{"type":40,"tag":1136,"props":1456,"children":1457},{},[1458],{"type":46,"value":1459},"1.0",{"type":40,"tag":1109,"props":1461,"children":1462},{},[1463,1471,1479],{"type":40,"tag":1136,"props":1464,"children":1465},{},[1466],{"type":40,"tag":55,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":46,"value":262},{"type":40,"tag":1136,"props":1472,"children":1473},{},[1474],{"type":40,"tag":55,"props":1475,"children":1477},{"className":1476},[],[1478],{"type":46,"value":262},{"type":40,"tag":1136,"props":1480,"children":1481},{},[1482],{"type":40,"tag":55,"props":1483,"children":1485},{"className":1484},[],[1486],{"type":46,"value":1487},"vllm",{"type":40,"tag":1109,"props":1489,"children":1490},{},[1491,1499,1507],{"type":40,"tag":1136,"props":1492,"children":1493},{},[1494],{"type":40,"tag":55,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":46,"value":290},{"type":40,"tag":1136,"props":1500,"children":1501},{},[1502],{"type":40,"tag":55,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":46,"value":290},{"type":40,"tag":1136,"props":1508,"children":1509},{},[1510],{"type":46,"value":1511},"latest",{"type":40,"tag":1109,"props":1513,"children":1514},{},[1515,1523,1531],{"type":40,"tag":1136,"props":1516,"children":1517},{},[1518],{"type":40,"tag":55,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":46,"value":304},{"type":40,"tag":1136,"props":1524,"children":1525},{},[1526],{"type":40,"tag":55,"props":1527,"children":1529},{"className":1528},[],[1530],{"type":46,"value":304},{"type":40,"tag":1136,"props":1532,"children":1533},{},[1534],{"type":46,"value":1535},"training-mirror defaults",{"type":40,"tag":1109,"props":1537,"children":1538},{},[1539,1547,1555],{"type":40,"tag":1136,"props":1540,"children":1541},{},[1542],{"type":40,"tag":55,"props":1543,"children":1545},{"className":1544},[],[1546],{"type":46,"value":311},{"type":40,"tag":1136,"props":1548,"children":1549},{},[1550],{"type":40,"tag":55,"props":1551,"children":1553},{"className":1552},[],[1554],{"type":46,"value":311},{"type":40,"tag":1136,"props":1556,"children":1557},{},[1558],{"type":46,"value":1559},"all visible GPUs",{"type":40,"tag":670,"props":1561,"children":1563},{"id":1562},"outputs",[1564],{"type":46,"value":1565},"Outputs",{"type":40,"tag":49,"props":1567,"children":1568},{},[1569,1571,1577],{"type":46,"value":1570},"The eval-ms service writes everything to ",{"type":40,"tag":55,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":46,"value":1576},"\u003Chost_results_root>\u002F\u003Ceval_job_id>\u002F",{"type":46,"value":123},{"type":40,"tag":1101,"props":1579,"children":1580},{},[1581,1597],{"type":40,"tag":1105,"props":1582,"children":1583},{},[1584],{"type":40,"tag":1109,"props":1585,"children":1586},{},[1587,1592],{"type":40,"tag":1113,"props":1588,"children":1589},{},[1590],{"type":46,"value":1591},"File",{"type":40,"tag":1113,"props":1593,"children":1594},{},[1595],{"type":46,"value":1596},"Description",{"type":40,"tag":1129,"props":1598,"children":1599},{},[1600,1632,1673,1690,1707,1724,1747,1764,1781,1803,1820],{"type":40,"tag":1109,"props":1601,"children":1602},{},[1603,1612],{"type":40,"tag":1136,"props":1604,"children":1605},{},[1606],{"type":40,"tag":55,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":46,"value":1611},"e2e_results.json",{"type":40,"tag":1136,"props":1613,"children":1614},{},[1615,1617,1623,1624,1630],{"type":46,"value":1616},"Combined summary (frontend-facing); ",{"type":40,"tag":55,"props":1618,"children":1620},{"className":1619},[],[1621],{"type":46,"value":1622},"temporal_segmentation.*",{"type":46,"value":907},{"type":40,"tag":55,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":46,"value":1629},"action_recognition.*",{"type":46,"value":1631}," blocks",{"type":40,"tag":1109,"props":1633,"children":1634},{},[1635,1644],{"type":40,"tag":1136,"props":1636,"children":1637},{},[1638],{"type":40,"tag":55,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":46,"value":1643},"outputs_temporal_segmentation\u002Ff1_\u003Cthr>.json",{"type":40,"tag":1136,"props":1645,"children":1646},{},[1647,1649,1655,1657,1663,1665,1671],{"type":46,"value":1648},"DDM predicted boundaries with F1\u002Fprecision\u002Frecall per video. ",{"type":40,"tag":55,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":46,"value":1654},"\u003Cthr>",{"type":46,"value":1656}," is a fixed evaluation-side tolerance (typically ",{"type":40,"tag":55,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":46,"value":1662},"0.95",{"type":46,"value":1664},"); glob with ",{"type":40,"tag":55,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":46,"value":1670},"f1_*.json",{"type":46,"value":1672}," for a stable filename.",{"type":40,"tag":1109,"props":1674,"children":1675},{},[1676,1685],{"type":40,"tag":1136,"props":1677,"children":1678},{},[1679],{"type":40,"tag":55,"props":1680,"children":1682},{"className":1681},[],[1683],{"type":46,"value":1684},"outputs_temporal_segmentation\u002Fvideo_to_boundaries_debug.json",{"type":40,"tag":1136,"props":1686,"children":1687},{},[1688],{"type":46,"value":1689},"Golden boundaries",{"type":40,"tag":1109,"props":1691,"children":1692},{},[1693,1702],{"type":40,"tag":1136,"props":1694,"children":1695},{},[1696],{"type":40,"tag":55,"props":1697,"children":1699},{"className":1698},[],[1700],{"type":46,"value":1701},"outputs_temporal_segmentation\u002Fvideo_to_ddm_info_debug.json",{"type":40,"tag":1136,"props":1703,"children":1704},{},[1705],{"type":46,"value":1706},"DDM per-frame scores, video fps, duration",{"type":40,"tag":1109,"props":1708,"children":1709},{},[1710,1719],{"type":40,"tag":1136,"props":1711,"children":1712},{},[1713],{"type":40,"tag":55,"props":1714,"children":1716},{"className":1715},[],[1717],{"type":46,"value":1718},"outputs_temporal_segmentation\u002F\u003Cvideo>.png",{"type":40,"tag":1136,"props":1720,"children":1721},{},[1722],{"type":46,"value":1723},"DDM boundary visualization plots",{"type":40,"tag":1109,"props":1725,"children":1726},{},[1727,1736],{"type":40,"tag":1136,"props":1728,"children":1729},{},[1730],{"type":40,"tag":55,"props":1731,"children":1733},{"className":1732},[],[1734],{"type":46,"value":1735},"outputs_temporal_segmentation\u002Ftemporal_segmentation.log",{"type":40,"tag":1136,"props":1737,"children":1738},{},[1739,1741],{"type":46,"value":1740},"DDM stage log with ",{"type":40,"tag":55,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":46,"value":1746},"Args: Namespace(...)",{"type":40,"tag":1109,"props":1748,"children":1749},{},[1750,1759],{"type":40,"tag":1136,"props":1751,"children":1752},{},[1753],{"type":40,"tag":55,"props":1754,"children":1756},{"className":1755},[],[1757],{"type":46,"value":1758},"outputs_action_recognition\u002Faccuracy.json",{"type":40,"tag":1136,"props":1760,"children":1761},{},[1762],{"type":46,"value":1763},"Per-video errors, sequence\u002Faction accuracy, wrong\u002Fduplicate\u002Fmissing breakdown",{"type":40,"tag":1109,"props":1765,"children":1766},{},[1767,1776],{"type":40,"tag":1136,"props":1768,"children":1769},{},[1770],{"type":40,"tag":55,"props":1771,"children":1773},{"className":1772},[],[1774],{"type":46,"value":1775},"outputs_action_recognition\u002Fvideo_name_to_output_text.json",{"type":40,"tag":1136,"props":1777,"children":1778},{},[1779],{"type":46,"value":1780},"VLM output text per DDM-segmented chunk",{"type":40,"tag":1109,"props":1782,"children":1783},{},[1784,1793],{"type":40,"tag":1136,"props":1785,"children":1786},{},[1787],{"type":40,"tag":55,"props":1788,"children":1790},{"className":1789},[],[1791],{"type":46,"value":1792},"outputs_action_recognition\u002Faction_recognition_multi_gpu.log",{"type":40,"tag":1136,"props":1794,"children":1795},{},[1796,1798],{"type":46,"value":1797},"VLM stage log with ",{"type":40,"tag":55,"props":1799,"children":1801},{"className":1800},[],[1802],{"type":46,"value":1746},{"type":40,"tag":1109,"props":1804,"children":1805},{},[1806,1815],{"type":40,"tag":1136,"props":1807,"children":1808},{},[1809],{"type":40,"tag":55,"props":1810,"children":1812},{"className":1811},[],[1813],{"type":46,"value":1814},"sop_e2e_eval_log.txt",{"type":40,"tag":1136,"props":1816,"children":1817},{},[1818],{"type":46,"value":1819},"Driver log spanning both stages",{"type":40,"tag":1109,"props":1821,"children":1822},{},[1823,1832],{"type":40,"tag":1136,"props":1824,"children":1825},{},[1826],{"type":40,"tag":55,"props":1827,"children":1829},{"className":1828},[],[1830],{"type":46,"value":1831},"log.txt",{"type":40,"tag":1136,"props":1833,"children":1834},{},[1835],{"type":46,"value":1836},"Combined log (DDM + VLM)",{"type":40,"tag":670,"props":1838,"children":1840},{"id":1839},"structured-json-envelope-stdout",[1841],{"type":46,"value":1842},"Structured JSON envelope (stdout)",{"type":40,"tag":396,"props":1844,"children":1848},{"className":1845,"code":1846,"language":1847,"meta":401,"style":401},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mode\": \"e2e\",\n  \"eval_job_id\": \"...\",\n  \"status\": \"completed\",\n  \"host_output_dir\": \"\u002Fabs\u002Fhost\u002Fpath\u002Fto\u002F\u003Ceval_job_id>\",\n  \"container_output_dir\": \"\u002Fworkspace\u002Fsop-eval-ms\u002Fassets\u002Fresults\u002F\u003Ceval_job_id>\",\n  \"artifacts\": {\n    \"e2e_results_json\": \"\u003Chost_output_dir>\u002Fe2e_results.json\",\n    \"accuracy_json\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faccuracy.json\",\n    \"video_name_to_output_text_json\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Fvideo_name_to_output_text.json\",\n    \"action_recognition_log\": \"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faction_recognition_multi_gpu.log\",\n    \"temporal_segmentation_dir\": \"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation\",\n    \"temporal_segmentation_log\": \"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation\u002Ftemporal_segmentation.log\",\n    \"sop_e2e_eval_log\": \"\u003Chost_output_dir>\u002Fsop_e2e_eval_log.txt\",\n    \"log\": \"\u003Chost_output_dir>\u002Flog.txt\"\n  },\n  \"headline_metrics\": {\n    \"overall_accuracy\": 0.93,\n    \"avg_f1\": 0.95\n  },\n  \"error\": null\n}\n","json",[1849],{"type":40,"tag":55,"props":1850,"children":1851},{"__ignoreMap":401},[1852,1860,1902,1939,1975,2012,2050,2076,2115,2153,2191,2229,2266,2304,2342,2377,2386,2410,2440,2465,2473,2498],{"type":40,"tag":407,"props":1853,"children":1854},{"class":409,"line":410},[1855],{"type":40,"tag":407,"props":1856,"children":1857},{"style":431},[1858],{"type":46,"value":1859},"{\n",{"type":40,"tag":407,"props":1861,"children":1862},{"class":409,"line":1019},[1863,1868,1874,1879,1883,1888,1893,1897],{"type":40,"tag":407,"props":1864,"children":1865},{"style":431},[1866],{"type":46,"value":1867},"  \"",{"type":40,"tag":407,"props":1869,"children":1871},{"style":1870},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1872],{"type":46,"value":1873},"mode",{"type":40,"tag":407,"props":1875,"children":1876},{"style":431},[1877],{"type":46,"value":1878},"\"",{"type":40,"tag":407,"props":1880,"children":1881},{"style":431},[1882],{"type":46,"value":123},{"type":40,"tag":407,"props":1884,"children":1885},{"style":431},[1886],{"type":46,"value":1887}," \"",{"type":40,"tag":407,"props":1889,"children":1890},{"style":420},[1891],{"type":46,"value":1892},"e2e",{"type":40,"tag":407,"props":1894,"children":1895},{"style":431},[1896],{"type":46,"value":1878},{"type":40,"tag":407,"props":1898,"children":1899},{"style":431},[1900],{"type":46,"value":1901},",\n",{"type":40,"tag":407,"props":1903,"children":1904},{"class":409,"line":1036},[1905,1909,1914,1918,1922,1926,1931,1935],{"type":40,"tag":407,"props":1906,"children":1907},{"style":431},[1908],{"type":46,"value":1867},{"type":40,"tag":407,"props":1910,"children":1911},{"style":1870},[1912],{"type":46,"value":1913},"eval_job_id",{"type":40,"tag":407,"props":1915,"children":1916},{"style":431},[1917],{"type":46,"value":1878},{"type":40,"tag":407,"props":1919,"children":1920},{"style":431},[1921],{"type":46,"value":123},{"type":40,"tag":407,"props":1923,"children":1924},{"style":431},[1925],{"type":46,"value":1887},{"type":40,"tag":407,"props":1927,"children":1928},{"style":420},[1929],{"type":46,"value":1930},"...",{"type":40,"tag":407,"props":1932,"children":1933},{"style":431},[1934],{"type":46,"value":1878},{"type":40,"tag":407,"props":1936,"children":1937},{"style":431},[1938],{"type":46,"value":1901},{"type":40,"tag":407,"props":1940,"children":1941},{"class":409,"line":1059},[1942,1946,1951,1955,1959,1963,1967,1971],{"type":40,"tag":407,"props":1943,"children":1944},{"style":431},[1945],{"type":46,"value":1867},{"type":40,"tag":407,"props":1947,"children":1948},{"style":1870},[1949],{"type":46,"value":1950},"status",{"type":40,"tag":407,"props":1952,"children":1953},{"style":431},[1954],{"type":46,"value":1878},{"type":40,"tag":407,"props":1956,"children":1957},{"style":431},[1958],{"type":46,"value":123},{"type":40,"tag":407,"props":1960,"children":1961},{"style":431},[1962],{"type":46,"value":1887},{"type":40,"tag":407,"props":1964,"children":1965},{"style":420},[1966],{"type":46,"value":562},{"type":40,"tag":407,"props":1968,"children":1969},{"style":431},[1970],{"type":46,"value":1878},{"type":40,"tag":407,"props":1972,"children":1973},{"style":431},[1974],{"type":46,"value":1901},{"type":40,"tag":407,"props":1976,"children":1978},{"class":409,"line":1977},5,[1979,1983,1987,1991,1995,1999,2004,2008],{"type":40,"tag":407,"props":1980,"children":1981},{"style":431},[1982],{"type":46,"value":1867},{"type":40,"tag":407,"props":1984,"children":1985},{"style":1870},[1986],{"type":46,"value":937},{"type":40,"tag":407,"props":1988,"children":1989},{"style":431},[1990],{"type":46,"value":1878},{"type":40,"tag":407,"props":1992,"children":1993},{"style":431},[1994],{"type":46,"value":123},{"type":40,"tag":407,"props":1996,"children":1997},{"style":431},[1998],{"type":46,"value":1887},{"type":40,"tag":407,"props":2000,"children":2001},{"style":420},[2002],{"type":46,"value":2003},"\u002Fabs\u002Fhost\u002Fpath\u002Fto\u002F\u003Ceval_job_id>",{"type":40,"tag":407,"props":2005,"children":2006},{"style":431},[2007],{"type":46,"value":1878},{"type":40,"tag":407,"props":2009,"children":2010},{"style":431},[2011],{"type":46,"value":1901},{"type":40,"tag":407,"props":2013,"children":2015},{"class":409,"line":2014},6,[2016,2020,2025,2029,2033,2037,2042,2046],{"type":40,"tag":407,"props":2017,"children":2018},{"style":431},[2019],{"type":46,"value":1867},{"type":40,"tag":407,"props":2021,"children":2022},{"style":1870},[2023],{"type":46,"value":2024},"container_output_dir",{"type":40,"tag":407,"props":2026,"children":2027},{"style":431},[2028],{"type":46,"value":1878},{"type":40,"tag":407,"props":2030,"children":2031},{"style":431},[2032],{"type":46,"value":123},{"type":40,"tag":407,"props":2034,"children":2035},{"style":431},[2036],{"type":46,"value":1887},{"type":40,"tag":407,"props":2038,"children":2039},{"style":420},[2040],{"type":46,"value":2041},"\u002Fworkspace\u002Fsop-eval-ms\u002Fassets\u002Fresults\u002F\u003Ceval_job_id>",{"type":40,"tag":407,"props":2043,"children":2044},{"style":431},[2045],{"type":46,"value":1878},{"type":40,"tag":407,"props":2047,"children":2048},{"style":431},[2049],{"type":46,"value":1901},{"type":40,"tag":407,"props":2051,"children":2053},{"class":409,"line":2052},7,[2054,2058,2063,2067,2071],{"type":40,"tag":407,"props":2055,"children":2056},{"style":431},[2057],{"type":46,"value":1867},{"type":40,"tag":407,"props":2059,"children":2060},{"style":1870},[2061],{"type":46,"value":2062},"artifacts",{"type":40,"tag":407,"props":2064,"children":2065},{"style":431},[2066],{"type":46,"value":1878},{"type":40,"tag":407,"props":2068,"children":2069},{"style":431},[2070],{"type":46,"value":123},{"type":40,"tag":407,"props":2072,"children":2073},{"style":431},[2074],{"type":46,"value":2075}," {\n",{"type":40,"tag":407,"props":2077,"children":2079},{"class":409,"line":2078},8,[2080,2085,2090,2094,2098,2102,2107,2111],{"type":40,"tag":407,"props":2081,"children":2082},{"style":431},[2083],{"type":46,"value":2084},"    \"",{"type":40,"tag":407,"props":2086,"children":2087},{"style":414},[2088],{"type":46,"value":2089},"e2e_results_json",{"type":40,"tag":407,"props":2091,"children":2092},{"style":431},[2093],{"type":46,"value":1878},{"type":40,"tag":407,"props":2095,"children":2096},{"style":431},[2097],{"type":46,"value":123},{"type":40,"tag":407,"props":2099,"children":2100},{"style":431},[2101],{"type":46,"value":1887},{"type":40,"tag":407,"props":2103,"children":2104},{"style":420},[2105],{"type":46,"value":2106},"\u003Chost_output_dir>\u002Fe2e_results.json",{"type":40,"tag":407,"props":2108,"children":2109},{"style":431},[2110],{"type":46,"value":1878},{"type":40,"tag":407,"props":2112,"children":2113},{"style":431},[2114],{"type":46,"value":1901},{"type":40,"tag":407,"props":2116,"children":2118},{"class":409,"line":2117},9,[2119,2123,2128,2132,2136,2140,2145,2149],{"type":40,"tag":407,"props":2120,"children":2121},{"style":431},[2122],{"type":46,"value":2084},{"type":40,"tag":407,"props":2124,"children":2125},{"style":414},[2126],{"type":46,"value":2127},"accuracy_json",{"type":40,"tag":407,"props":2129,"children":2130},{"style":431},[2131],{"type":46,"value":1878},{"type":40,"tag":407,"props":2133,"children":2134},{"style":431},[2135],{"type":46,"value":123},{"type":40,"tag":407,"props":2137,"children":2138},{"style":431},[2139],{"type":46,"value":1887},{"type":40,"tag":407,"props":2141,"children":2142},{"style":420},[2143],{"type":46,"value":2144},"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faccuracy.json",{"type":40,"tag":407,"props":2146,"children":2147},{"style":431},[2148],{"type":46,"value":1878},{"type":40,"tag":407,"props":2150,"children":2151},{"style":431},[2152],{"type":46,"value":1901},{"type":40,"tag":407,"props":2154,"children":2156},{"class":409,"line":2155},10,[2157,2161,2166,2170,2174,2178,2183,2187],{"type":40,"tag":407,"props":2158,"children":2159},{"style":431},[2160],{"type":46,"value":2084},{"type":40,"tag":407,"props":2162,"children":2163},{"style":414},[2164],{"type":46,"value":2165},"video_name_to_output_text_json",{"type":40,"tag":407,"props":2167,"children":2168},{"style":431},[2169],{"type":46,"value":1878},{"type":40,"tag":407,"props":2171,"children":2172},{"style":431},[2173],{"type":46,"value":123},{"type":40,"tag":407,"props":2175,"children":2176},{"style":431},[2177],{"type":46,"value":1887},{"type":40,"tag":407,"props":2179,"children":2180},{"style":420},[2181],{"type":46,"value":2182},"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Fvideo_name_to_output_text.json",{"type":40,"tag":407,"props":2184,"children":2185},{"style":431},[2186],{"type":46,"value":1878},{"type":40,"tag":407,"props":2188,"children":2189},{"style":431},[2190],{"type":46,"value":1901},{"type":40,"tag":407,"props":2192,"children":2194},{"class":409,"line":2193},11,[2195,2199,2204,2208,2212,2216,2221,2225],{"type":40,"tag":407,"props":2196,"children":2197},{"style":431},[2198],{"type":46,"value":2084},{"type":40,"tag":407,"props":2200,"children":2201},{"style":414},[2202],{"type":46,"value":2203},"action_recognition_log",{"type":40,"tag":407,"props":2205,"children":2206},{"style":431},[2207],{"type":46,"value":1878},{"type":40,"tag":407,"props":2209,"children":2210},{"style":431},[2211],{"type":46,"value":123},{"type":40,"tag":407,"props":2213,"children":2214},{"style":431},[2215],{"type":46,"value":1887},{"type":40,"tag":407,"props":2217,"children":2218},{"style":420},[2219],{"type":46,"value":2220},"\u003Chost_output_dir>\u002Foutputs_action_recognition\u002Faction_recognition_multi_gpu.log",{"type":40,"tag":407,"props":2222,"children":2223},{"style":431},[2224],{"type":46,"value":1878},{"type":40,"tag":407,"props":2226,"children":2227},{"style":431},[2228],{"type":46,"value":1901},{"type":40,"tag":407,"props":2230,"children":2231},{"class":409,"line":27},[2232,2236,2241,2245,2249,2253,2258,2262],{"type":40,"tag":407,"props":2233,"children":2234},{"style":431},[2235],{"type":46,"value":2084},{"type":40,"tag":407,"props":2237,"children":2238},{"style":414},[2239],{"type":46,"value":2240},"temporal_segmentation_dir",{"type":40,"tag":407,"props":2242,"children":2243},{"style":431},[2244],{"type":46,"value":1878},{"type":40,"tag":407,"props":2246,"children":2247},{"style":431},[2248],{"type":46,"value":123},{"type":40,"tag":407,"props":2250,"children":2251},{"style":431},[2252],{"type":46,"value":1887},{"type":40,"tag":407,"props":2254,"children":2255},{"style":420},[2256],{"type":46,"value":2257},"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation",{"type":40,"tag":407,"props":2259,"children":2260},{"style":431},[2261],{"type":46,"value":1878},{"type":40,"tag":407,"props":2263,"children":2264},{"style":431},[2265],{"type":46,"value":1901},{"type":40,"tag":407,"props":2267,"children":2269},{"class":409,"line":2268},13,[2270,2274,2279,2283,2287,2291,2296,2300],{"type":40,"tag":407,"props":2271,"children":2272},{"style":431},[2273],{"type":46,"value":2084},{"type":40,"tag":407,"props":2275,"children":2276},{"style":414},[2277],{"type":46,"value":2278},"temporal_segmentation_log",{"type":40,"tag":407,"props":2280,"children":2281},{"style":431},[2282],{"type":46,"value":1878},{"type":40,"tag":407,"props":2284,"children":2285},{"style":431},[2286],{"type":46,"value":123},{"type":40,"tag":407,"props":2288,"children":2289},{"style":431},[2290],{"type":46,"value":1887},{"type":40,"tag":407,"props":2292,"children":2293},{"style":420},[2294],{"type":46,"value":2295},"\u003Chost_output_dir>\u002Foutputs_temporal_segmentation\u002Ftemporal_segmentation.log",{"type":40,"tag":407,"props":2297,"children":2298},{"style":431},[2299],{"type":46,"value":1878},{"type":40,"tag":407,"props":2301,"children":2302},{"style":431},[2303],{"type":46,"value":1901},{"type":40,"tag":407,"props":2305,"children":2307},{"class":409,"line":2306},14,[2308,2312,2317,2321,2325,2329,2334,2338],{"type":40,"tag":407,"props":2309,"children":2310},{"style":431},[2311],{"type":46,"value":2084},{"type":40,"tag":407,"props":2313,"children":2314},{"style":414},[2315],{"type":46,"value":2316},"sop_e2e_eval_log",{"type":40,"tag":407,"props":2318,"children":2319},{"style":431},[2320],{"type":46,"value":1878},{"type":40,"tag":407,"props":2322,"children":2323},{"style":431},[2324],{"type":46,"value":123},{"type":40,"tag":407,"props":2326,"children":2327},{"style":431},[2328],{"type":46,"value":1887},{"type":40,"tag":407,"props":2330,"children":2331},{"style":420},[2332],{"type":46,"value":2333},"\u003Chost_output_dir>\u002Fsop_e2e_eval_log.txt",{"type":40,"tag":407,"props":2335,"children":2336},{"style":431},[2337],{"type":46,"value":1878},{"type":40,"tag":407,"props":2339,"children":2340},{"style":431},[2341],{"type":46,"value":1901},{"type":40,"tag":407,"props":2343,"children":2345},{"class":409,"line":2344},15,[2346,2350,2355,2359,2363,2367,2372],{"type":40,"tag":407,"props":2347,"children":2348},{"style":431},[2349],{"type":46,"value":2084},{"type":40,"tag":407,"props":2351,"children":2352},{"style":414},[2353],{"type":46,"value":2354},"log",{"type":40,"tag":407,"props":2356,"children":2357},{"style":431},[2358],{"type":46,"value":1878},{"type":40,"tag":407,"props":2360,"children":2361},{"style":431},[2362],{"type":46,"value":123},{"type":40,"tag":407,"props":2364,"children":2365},{"style":431},[2366],{"type":46,"value":1887},{"type":40,"tag":407,"props":2368,"children":2369},{"style":420},[2370],{"type":46,"value":2371},"\u003Chost_output_dir>\u002Flog.txt",{"type":40,"tag":407,"props":2373,"children":2374},{"style":431},[2375],{"type":46,"value":2376},"\"\n",{"type":40,"tag":407,"props":2378,"children":2380},{"class":409,"line":2379},16,[2381],{"type":40,"tag":407,"props":2382,"children":2383},{"style":431},[2384],{"type":46,"value":2385},"  },\n",{"type":40,"tag":407,"props":2387,"children":2389},{"class":409,"line":2388},17,[2390,2394,2398,2402,2406],{"type":40,"tag":407,"props":2391,"children":2392},{"style":431},[2393],{"type":46,"value":1867},{"type":40,"tag":407,"props":2395,"children":2396},{"style":1870},[2397],{"type":46,"value":868},{"type":40,"tag":407,"props":2399,"children":2400},{"style":431},[2401],{"type":46,"value":1878},{"type":40,"tag":407,"props":2403,"children":2404},{"style":431},[2405],{"type":46,"value":123},{"type":40,"tag":407,"props":2407,"children":2408},{"style":431},[2409],{"type":46,"value":2075},{"type":40,"tag":407,"props":2411,"children":2413},{"class":409,"line":2412},18,[2414,2418,2422,2426,2430,2436],{"type":40,"tag":407,"props":2415,"children":2416},{"style":431},[2417],{"type":46,"value":2084},{"type":40,"tag":407,"props":2419,"children":2420},{"style":414},[2421],{"type":46,"value":876},{"type":40,"tag":407,"props":2423,"children":2424},{"style":431},[2425],{"type":46,"value":1878},{"type":40,"tag":407,"props":2427,"children":2428},{"style":431},[2429],{"type":46,"value":123},{"type":40,"tag":407,"props":2431,"children":2433},{"style":2432},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[2434],{"type":46,"value":2435}," 0.93",{"type":40,"tag":407,"props":2437,"children":2438},{"style":431},[2439],{"type":46,"value":1901},{"type":40,"tag":407,"props":2441,"children":2443},{"class":409,"line":2442},19,[2444,2448,2452,2456,2460],{"type":40,"tag":407,"props":2445,"children":2446},{"style":431},[2447],{"type":46,"value":2084},{"type":40,"tag":407,"props":2449,"children":2450},{"style":414},[2451],{"type":46,"value":884},{"type":40,"tag":407,"props":2453,"children":2454},{"style":431},[2455],{"type":46,"value":1878},{"type":40,"tag":407,"props":2457,"children":2458},{"style":431},[2459],{"type":46,"value":123},{"type":40,"tag":407,"props":2461,"children":2462},{"style":2432},[2463],{"type":46,"value":2464}," 0.95\n",{"type":40,"tag":407,"props":2466,"children":2468},{"class":409,"line":2467},20,[2469],{"type":40,"tag":407,"props":2470,"children":2471},{"style":431},[2472],{"type":46,"value":2385},{"type":40,"tag":407,"props":2474,"children":2476},{"class":409,"line":2475},21,[2477,2481,2485,2489,2493],{"type":40,"tag":407,"props":2478,"children":2479},{"style":431},[2480],{"type":46,"value":1867},{"type":40,"tag":407,"props":2482,"children":2483},{"style":1870},[2484],{"type":46,"value":835},{"type":40,"tag":407,"props":2486,"children":2487},{"style":431},[2488],{"type":46,"value":1878},{"type":40,"tag":407,"props":2490,"children":2491},{"style":431},[2492],{"type":46,"value":123},{"type":40,"tag":407,"props":2494,"children":2495},{"style":431},[2496],{"type":46,"value":2497}," null\n",{"type":40,"tag":407,"props":2499,"children":2501},{"class":409,"line":2500},22,[2502],{"type":40,"tag":407,"props":2503,"children":2504},{"style":431},[2505],{"type":46,"value":2506},"}\n",{"type":40,"tag":49,"props":2508,"children":2509},{},[2510,2515],{"type":40,"tag":55,"props":2511,"children":2513},{"className":2512},[],[2514],{"type":46,"value":868},{"type":46,"value":123},{"type":40,"tag":88,"props":2517,"children":2518},{},[2519,2529],{"type":40,"tag":92,"props":2520,"children":2521},{},[2522,2527],{"type":40,"tag":55,"props":2523,"children":2525},{"className":2524},[],[2526],{"type":46,"value":876},{"type":46,"value":2528}," — chunk-level VLM match rate over DDM-segmented chunks (informational; inflates the denominator when DDM over-segments, so not the same as action-level accuracy).",{"type":40,"tag":92,"props":2530,"children":2531},{},[2532,2537],{"type":40,"tag":55,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":46,"value":884},{"type":46,"value":2538}," — DDM temporal-segmentation F1 averaged across videos.",{"type":40,"tag":49,"props":2540,"children":2541},{},[2542,2544,2550,2551,2557,2558,2564,2566,2572],{"type":46,"value":2543},"For the action-level \u002F sequence-level numbers the orchestrator and RCA care about (",{"type":40,"tag":55,"props":2545,"children":2547},{"className":2546},[],[2548],{"type":46,"value":2549},"action_accuracy",{"type":46,"value":189},{"type":40,"tag":55,"props":2552,"children":2554},{"className":2553},[],[2555],{"type":46,"value":2556},"sequence_accuracy",{"type":46,"value":189},{"type":40,"tag":55,"props":2559,"children":2561},{"className":2560},[],[2562],{"type":46,"value":2563},"wrong\u002Fduplicate\u002Fmissing",{"type":46,"value":2565},"), read ",{"type":40,"tag":55,"props":2567,"children":2569},{"className":2568},[],[2570],{"type":46,"value":2571},"e2e_results.json.action_recognition.*",{"type":46,"value":2573}," — it's a small file.",{"type":40,"tag":670,"props":2575,"children":2577},{"id":2576},"troubleshooting",[2578],{"type":46,"value":2579},"Troubleshooting",{"type":40,"tag":88,"props":2581,"children":2582},{},[2583,2599,2622,2639,2657,2682,2699,2731],{"type":40,"tag":92,"props":2584,"children":2585},{},[2586,2591,2593,2598],{"type":40,"tag":80,"props":2587,"children":2588},{},[2589],{"type":46,"value":2590},"HTTP 400 \"ddm_training_job_id is required\"",{"type":46,"value":2592},": provide a DDM training job UUID, or switch to ",{"type":40,"tag":55,"props":2594,"children":2596},{"className":2595},[],[2597],{"type":46,"value":1084},{"type":46,"value":613},{"type":40,"tag":92,"props":2600,"children":2601},{},[2602,2607,2609,2614,2616,2621],{"type":40,"tag":80,"props":2603,"children":2604},{},[2605],{"type":46,"value":2606},"HTTP 400 \"chunk_length_sec is required\"",{"type":46,"value":2608},": set ",{"type":40,"tag":55,"props":2610,"children":2612},{"className":2611},[],[2613],{"type":46,"value":222},{"type":46,"value":2615}," (e.g. 12.0) when using ",{"type":40,"tag":55,"props":2617,"children":2619},{"className":2618},[],[2620],{"type":46,"value":1084},{"type":46,"value":613},{"type":40,"tag":92,"props":2623,"children":2624},{},[2625,2630,2632,2637],{"type":40,"tag":80,"props":2626,"children":2627},{},[2628],{"type":46,"value":2629},"HTTP 400 \"Training\u002FDDM job not found \u002F not completed\"",{"type":46,"value":2631},": confirm both training and DDM training jobs are in ",{"type":40,"tag":55,"props":2633,"children":2635},{"className":2634},[],[2636],{"type":46,"value":562},{"type":46,"value":2638}," status before submitting.",{"type":40,"tag":92,"props":2640,"children":2641},{},[2642,2647,2649,2655],{"type":40,"tag":80,"props":2643,"children":2644},{},[2645],{"type":46,"value":2646},"HTTP 400 \"An e2e evaluation is already running\"",{"type":46,"value":2648},": eval-ms allows one e2e job at a time. Cancel the running one (",{"type":40,"tag":55,"props":2650,"children":2652},{"className":2651},[],[2653],{"type":46,"value":2654},"POST \u002Fapi\u002Fv1\u002Fe2e-evaluation\u002Fcancel\u002F{eval_job_id}",{"type":46,"value":2656},") or wait.",{"type":40,"tag":92,"props":2658,"children":2659},{},[2660,2665,2667,2673,2675,2680],{"type":40,"tag":80,"props":2661,"children":2662},{},[2663],{"type":46,"value":2664},"DDM under-segmentation",{"type":46,"value":2666}," (low ",{"type":40,"tag":55,"props":2668,"children":2670},{"className":2669},[],[2671],{"type":46,"value":2672},"temporal_segmentation.avg_f1",{"type":46,"value":2674},"): try lowering ",{"type":40,"tag":55,"props":2676,"children":2678},{"className":2677},[],[2679],{"type":46,"value":318},{"type":46,"value":2681}," (e.g. 0.5 → 0.4). Re-evaluate before recommending DDM retraining.",{"type":40,"tag":92,"props":2683,"children":2684},{},[2685,2690,2692,2697],{"type":40,"tag":80,"props":2686,"children":2687},{},[2688],{"type":46,"value":2689},"Sequence accuracy collapse but per-action OK",{"type":46,"value":2691},": VLM-side issue (look in ",{"type":40,"tag":55,"props":2693,"children":2695},{"className":2694},[],[2696],{"type":46,"value":1775},{"type":46,"value":2698},"); rerun by-action on the same checkpoint for confirmation.",{"type":40,"tag":92,"props":2700,"children":2701},{},[2702,2707,2709,2715,2717,2723,2725,2730],{"type":40,"tag":80,"props":2703,"children":2704},{},[2705],{"type":46,"value":2706},"CUDA OOM",{"type":46,"value":2708}," during VLM stage: lower ",{"type":40,"tag":55,"props":2710,"children":2712},{"className":2711},[],[2713],{"type":46,"value":2714},"resolution_config.total_pixels",{"type":46,"value":2716}," or ",{"type":40,"tag":55,"props":2718,"children":2720},{"className":2719},[],[2721],{"type":46,"value":2722},"resolution_config.max_frames",{"type":46,"value":2724},", or reduce ",{"type":40,"tag":55,"props":2726,"children":2728},{"className":2727},[],[2729],{"type":46,"value":269},{"type":46,"value":613},{"type":40,"tag":92,"props":2732,"children":2733},{},[2734,2739,2741,2747,2749,2755],{"type":40,"tag":80,"props":2735,"children":2736},{},[2737],{"type":46,"value":2738},"Timeout",{"type":46,"value":2740}," (envelope ",{"type":40,"tag":55,"props":2742,"children":2744},{"className":2743},[],[2745],{"type":46,"value":2746},"\"status\": \"timeout\"",{"type":46,"value":2748},"): the job may still be running on eval-ms. Check ",{"type":40,"tag":55,"props":2750,"children":2752},{"className":2751},[],[2753],{"type":46,"value":2754},"\u002Fstatus",{"type":46,"value":2756}," manually before retrying.",{"type":40,"tag":2758,"props":2759,"children":2760},"style",{},[2761],{"type":46,"value":2762},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2764,"total":2193},[2765,2783,2794,2807,2825,2837,2844],{"slug":2766,"name":2766,"fn":2767,"description":2768,"org":2769,"tags":2770,"stars":23,"repoUrl":24,"updatedAt":2782},"sop-build","orchestrate end-to-end SOP monitoring pipelines","Orchestrate the end-to-end SOP pipeline, including preflight prerequisite checks, verifying models and downloading assets, generating the DeepStream SOP microservice with RTSP output, evaluating the microservice, and building, deploying, and testing the VSS SOP blueprint. Use when asked to run the full SOP pipeline, set up the SOP pipeline from scratch, execute preflight checks, verify models, download assets, generate the SOP microservice, evaluate the microservice, build the VSS blueprint, deploy the VSS blueprint, test the VSS blueprint, or manage the complete build-evaluate-deploy-test cycle.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2771,2774,2777,2778,2779],{"name":2772,"slug":2773,"type":15},"Automation","automation",{"name":2775,"slug":2776,"type":15},"Engineering","engineering",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2780,"slug":2781,"type":15},"Video","video","2026-07-14T05:32:48.503678",{"slug":2784,"name":2784,"fn":2785,"description":2786,"org":2787,"tags":2788,"stars":23,"repoUrl":24,"updatedAt":2793},"sop-by-action-eval","run by-action VLM evaluations","Use when running by-action VLM evaluation (per-action-clip inference + accuracy metrics) against the BP evaluation-ms HTTP API. Invoked as \u002Fsop-by-action-eval \u003Cinputs.yaml> [natural language parameter overrides]",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2789,2790,2791,2792],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:13.260585",{"slug":2795,"name":2795,"fn":2796,"description":2797,"org":2798,"tags":2799,"stars":23,"repoUrl":24,"updatedAt":2806},"sop-cr-finetuning","fine-tune VLM models for SOP monitoring","Fine-tune Cosmos-Reason2 (CR2) VLM for SOP monitoring. Use when you need to launch and monitor a VLM training run with a given dataset ID.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2800,2803,2804,2805],{"name":2801,"slug":2802,"type":15},"AI Infrastructure","ai-infrastructure",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:22.874218",{"slug":2808,"name":2808,"fn":2809,"description":2810,"org":2811,"tags":2812,"stars":23,"repoUrl":24,"updatedAt":2824},"sop-data-augmentation","augment annotated datasets","Use when the user wants to run data augmentation on an annotated dataset, configure augmentation parameters, check augmentation status, or understand what each QA augmentation type does (BCQ, MCQ, GQA, DMCQ, DSQA, ENQA)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2813,2816,2819,2820,2821],{"name":2814,"slug":2815,"type":15},"Data Engineering","data-engineering",{"name":2817,"slug":2818,"type":15},"Datasets","datasets",{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":2822,"slug":2823,"type":15},"QA","qa","2026-07-14T05:36:20.305657",{"slug":2826,"name":2826,"fn":2827,"description":2828,"org":2829,"tags":2830,"stars":23,"repoUrl":24,"updatedAt":2836},"sop-ddm-finetuning","fine-tune DDM-Net models for SOP monitoring","Fine-tune DDM-Net temporal boundary detector for SOP monitoring. Use when you need to launch and monitor a DDM-Net training run with a given dataset ID.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2831,2834,2835],{"name":2832,"slug":2833,"type":15},"Deep Learning","deep-learning",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:35:16.203684",{"slug":4,"name":4,"fn":5,"description":6,"org":2838,"tags":2839,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2840,2841,2842,2843],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":2845,"name":2845,"fn":2846,"description":2847,"org":2848,"tags":2849,"stars":23,"repoUrl":24,"updatedAt":2856},"sop-ft-orchestrate","orchestrate SOP fine-tuning pipelines","Autonomous end-to-end orchestrator for SOP fine-tuning. Runs the full Import → Augment → DDM Train → VLM Train → Evaluate → RCA loop. Interprets RCA findings across DDM, VLM and augment axes, applies config fixes autonomously, and iterates until success criteria are met or max_pipeline_iterations reached. Call with a path to an inputs.yaml or with natural language.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2850,2851,2852,2853],{"name":2772,"slug":2773,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":2854,"slug":2855,"type":15},"Orchestration","orchestration","2026-07-14T05:36:28.162686",{"items":2858,"total":3011},[2859,2877,2895,2906,2918,2932,2945,2957,2968,2979,2993,3002],{"slug":2860,"name":2860,"fn":2861,"description":2862,"org":2863,"tags":2864,"stars":2874,"repoUrl":2875,"updatedAt":2876},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2865,2868,2871],{"name":2866,"slug":2867,"type":15},"Documentation","documentation",{"name":2869,"slug":2870,"type":15},"MCP","mcp",{"name":2872,"slug":2873,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2878,"name":2878,"fn":2879,"description":2880,"org":2881,"tags":2882,"stars":2892,"repoUrl":2893,"updatedAt":2894},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2883,2886,2889],{"name":2884,"slug":2885,"type":15},"Containers","containers",{"name":2887,"slug":2888,"type":15},"Deployment","deployment",{"name":2890,"slug":2891,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2896,"name":2896,"fn":2897,"description":2898,"org":2899,"tags":2900,"stars":2892,"repoUrl":2893,"updatedAt":2905},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2901,2904],{"name":2902,"slug":2903,"type":15},"CI\u002FCD","ci-cd",{"name":2887,"slug":2888,"type":15},"2026-07-14T05:25:59.97109",{"slug":2907,"name":2907,"fn":2908,"description":2909,"org":2910,"tags":2911,"stars":2892,"repoUrl":2893,"updatedAt":2917},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2912,2913,2914],{"name":2902,"slug":2903,"type":15},{"name":2887,"slug":2888,"type":15},{"name":2915,"slug":2916,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2919,"name":2919,"fn":2920,"description":2921,"org":2922,"tags":2923,"stars":2892,"repoUrl":2893,"updatedAt":2931},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2924,2927,2928],{"name":2925,"slug":2926,"type":15},"Debugging","debugging",{"name":2915,"slug":2916,"type":15},{"name":2929,"slug":2930,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2933,"name":2933,"fn":2934,"description":2935,"org":2936,"tags":2937,"stars":2892,"repoUrl":2893,"updatedAt":2944},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2938,2941],{"name":2939,"slug":2940,"type":15},"Best Practices","best-practices",{"name":2942,"slug":2943,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2946,"name":2946,"fn":2947,"description":2948,"org":2949,"tags":2950,"stars":2892,"repoUrl":2893,"updatedAt":2956},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2951,2952,2955],{"name":17,"slug":18,"type":15},{"name":2953,"slug":2954,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2958,"name":2958,"fn":2959,"description":2960,"org":2961,"tags":2962,"stars":2892,"repoUrl":2893,"updatedAt":2967},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2963,2964],{"name":2822,"slug":2823,"type":15},{"name":2965,"slug":2966,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2969,"name":2969,"fn":2970,"description":2971,"org":2972,"tags":2973,"stars":2892,"repoUrl":2893,"updatedAt":2978},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2974,2975],{"name":2887,"slug":2888,"type":15},{"name":2976,"slug":2977,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2980,"name":2980,"fn":2981,"description":2982,"org":2983,"tags":2984,"stars":2892,"repoUrl":2893,"updatedAt":2992},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2985,2988,2989],{"name":2986,"slug":2987,"type":15},"Code Review","code-review",{"name":2915,"slug":2916,"type":15},{"name":2990,"slug":2991,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2994,"name":2994,"fn":2995,"description":2996,"org":2997,"tags":2998,"stars":2892,"repoUrl":2893,"updatedAt":3001},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2999,3000],{"name":2822,"slug":2823,"type":15},{"name":2965,"slug":2966,"type":15},"2026-07-14T05:25:54.928983",{"slug":3003,"name":3003,"fn":3004,"description":3005,"org":3006,"tags":3007,"stars":2892,"repoUrl":2893,"updatedAt":3010},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[3008,3009],{"name":2772,"slug":2773,"type":15},{"name":2902,"slug":2903,"type":15},"2026-07-30T05:29:03.275638",496]