[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-vss-sop-build":3,"mdc-3tgr9f-key":34,"related-repo-nvidia-vss-sop-build":4485,"related-org-nvidia-vss-sop-build":4585},{"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},"vss-sop-build","build and customize VSS SOP blueprints","Build a custom VSS SOP blueprint from the VSS 3.1 base, then deploy and test in a loop until fully operational. Use when asked to create the SOP blueprint structure, customize VSS compose for SOP, configure SOP services, set up the VSS agent for SOP, or scaffold the SOP app layer on top of met-blueprints 3.1.",{"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,20],{"name":13,"slug":14,"type":15},"Monitoring","monitoring","tag",{"name":17,"slug":18,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Engineering","engineering",39,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsop-monitoring-blueprints","2026-07-14T05:32:47.246466","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\u002Fvss-sop-skills\u002Fvss-sop-build","---\nname: vss-sop-build\ndescription: >-\n  Build a custom VSS SOP blueprint from the VSS 3.1 base, then deploy and test\n  in a loop until fully operational. Use when asked to create the SOP blueprint\n  structure, customize VSS compose for SOP, configure SOP services, set up the\n  VSS agent for SOP, or scaffold the SOP app layer on top of met-blueprints 3.1.\nowner: NVIDIA\nservice: vss-sop\nversion: 1.0.0\nlicense: CC-BY-4.0 AND Apache-2.0\nreviewed: 2026-06-23\nmetadata:\n  openclaw: { \"emoji\": \"🔧\", \"os\": [\"linux\"] }\n  author: \"Quan Vu \u003Cqvu@nvidia.com>\"\n  tags: [\"vss\", \"sop\", \"build\", \"blueprint\"]\n---\n\n# VSS SOP — Build a Custom Blueprint from VSS 3.1\n\nScaffold the SOP blueprint layer on top of `met-blueprints` 3.1. **This SKILL.md is a roadmap** — it points to detailed references for each stage. Read references only when working on that stage.\n\n## Overview\n\nUse this skill when asked to create, customize, or scaffold the VSS SOP blueprint on top of standard VSS 3.1 base components.\n\nKey scenarios:\n- Creating a new SOP blueprint from scratch.\n- Merging upstream VSS changes with custom SOP layers.\n- Integrating custom DS-SOP deepstream microservices.\n\n## Prerequisites\n\n- **Host Base System:** standard Linux OS, Docker with buildkit, Nvidia GPU drivers 580+.\n- **Upstream Codebase:** Access to VSS 3.1 repository.\n\n## Instructions\n\nRun these scripts from the blueprint repo root, in order:\n\n0. **Prerequisites Check & Auto-Install (run first)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix` (see [Stage 0 — Prerequisites Check & Auto-Install](#stage-0--prerequisites-check--auto-install))\n1. **Clone upstream repository (Stage 0.1)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh`\n2. **Copy all reference files verbatim (Stage 1)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh`\n3. **Copy foundational from upstream (Stage 3.1a)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_foundational_from_upstream.sh`\n4. **Modify foundational for SOP profile (Stage 3.1b)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_foundational_for_sop.sh`\n5. **Copy VIOS from upstream (Stage 3.4a)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_vios_from_upstream.sh`\n6. **Modify VIOS for SOP profile (Stage 3.4b)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_vios_for_sop.sh`\n7. **Copy agents from upstream + apply SOP profile (Stage 2)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_agents_from_upstream.sh`\n8. **Copy NIM from upstream + apply SOP conventions (Stage 3.3)** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_nim_from_upstream.sh`\n9. **Generate DS-SOP source via ds-sop-skills (RTSP output is native), then build the image** (when needed) — first generate `..\u002Fds_sop_microservice` with the ds-sop-skills skill (`..\u002Fds-sop-skills\u002Fexample_sop_prompt.md`), then run `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fbuild_ds_sop.sh \u003Cds_sop_microservice_dir> \u003Cbp_repo_path>`\n10. **Verify the build** — `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh`\n\n## Cross-Reference with Other Skills\n\n| Need | Skill |\n|---|---|\n| Prerequisites, build DS-SOP image, models, deploy, RTSP test | **vss-sop-deploy** (Phase 0–5) |\n| Post-deployment validation: health, ELK, VIOS, Agent | **vss-sop-test** (Phase 1–4) |\n| Manage cameras\u002Fsensors\u002Fstreams via VIOS | [`vss-call-vios-api`](references\u002Fvss\u002Fvss-call-vios-api\u002FSKILL.md) |\n| Query SOP data from Elasticsearch via VA-MCP | [`vss-query-analytics`](references\u002Fvss\u002Fvss-query-analytics\u002FSKILL.md) |\n| Generate SOP compliance reports | [`vss-generate-video-report`](references\u002Fvss\u002Fvss-generate-video-report\u002FSKILL.md) |\n| Search video archives with natural language | [`vss-search-archive`](references\u002Fvss\u002Fvss-search-archive\u002FSKILL.md) |\n| Summarize long videos \u002F generate shift reports | [`vss-summarize-video`](references\u002Fvss\u002Fvss-summarize-video\u002FSKILL.md) |\n\n---\n\n## Examples\n\n### Run the Scaffolding Process (End-to-End)\n\n```bash\n# Prerequisites check & auto-install (run first)\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix\n\n# Clone and prepare directories\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh\n\n# Copy references and foundations\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_foundational_from_upstream.sh\n\n# Modify foundational components for the SOP profile\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_foundational_for_sop.sh\n```\n\n### Verify Scaffolding Integrity\n\n```bash\n# Execute local linter and integrity verification script\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh\n```\n\n## What Changes from Upstream 3.1.0\n\nThe upstream `3.1.0` branch (`video-search-and-summarization\u002Fdeployments\u002F`) ships services for many blueprint variants. SOP keeps a slimmer subset and adds the `sop\u002F` app layer.\n\n| Category | What to do | Reference |\n|---|---|---|\n| Top-level compose | Strip `vlm-as-verifier`, `lvs`, `developer-workflow`, `proxy`; switch VST to `.\u002Fvst\u002Fcompose.yml`; add `.\u002Fsop\u002Fcompose.yml` | Stage 1 |\n| Foundational | Add `bp_sop_2d` profiles, stock ES image, SOP Kafka topics + ES templates | [`foundational-building.md`](references\u002Ffoundational-building.md) |\n| VST | Replace `vst\u002Fdeveloper\u002F` with `vst\u002Fcompose.yml` + `vst\u002Fsop\u002F`; split monolith into 5 microservices; add MinIO | [`vios-building.md`](references\u002Fvios-building.md) |\n| Agent | Add `bp_sop_2d` profile to `vss-va-mcp`, `vss-agent`, `vss-ui`; add SOP patch volume mounts | [`vss-agent-building.md`](references\u002Fvss-agent-building.md) |\n| DS | Add `ds-sop\u002F` subdirectory under `deployments\u002Fds\u002F` with compose + `.env` | [`ds-sop-building.md`](references\u002Fds-sop-building.md) |\n| New `sop\u002F` directory | Entire SOP app layer: compose, .env, vss-agent configs\u002Fpatches\u002Ftemplates, sop-app services | [`sop-app-building.md`](references\u002Fsop-app-building.md) |\n| NIM | Per-GPU profiles, rename env files, tune NIM params | [`nim-building.md`](references\u002Fnim-building.md) |\n| Remove | Delete `developer-workflow\u002F`, `vlm-as-verifier\u002F`, `lvs\u002F`, `proxy\u002F` from `deployments\u002F` | — |\n\n---\n\n## Architecture Overview\n\n### System Data Flow\n\n```\nInput Sources    Perception                      Messaging           Storage & Analytics\n─────────────    ──────────                      ─────────           ───────────────────\n Video file  ─┐\n Basler cam  ─┼──► DS SOP ──► Metadata ──► Message Broker (Kafka) ──► Video Analytics DB\n RTSP stream ─┘        │                                                 (Elasticsearch)\n                       │                                                        │\n              RTSP output ──► VMS (VIOS\u002FVST) ──► Video IO & Storage             │\n                                                   │                            │\n                                                   ▼                            ▼\n                                          ┌─────────────────────────────────────────┐\n                                          │              VSS Agent                  │\n                                          │  Video IO │ Report Gen │ Search         │\n                                          │       LLM (Nemotron Nano v2)            │\n                                          │       VLM (Cosmos Reason 2)             │\n                                          └─────────────┬───────────────────────────┘\n                                                        ▼\n                                                      User\n```\n\n### DS SOP Internal Pipeline\n\n```\nstreaming ──► Decode ──► Create Video Chunks ──fix chunks──► DDM-Net (CV) ──action chunks──► Cosmos Reason (VLM) ──► Metadata\n```\n\nMetadata is published to Kafka (`mdx-vlm-captions`), ingested by Elasticsearch, and queried by the VSS Agent.\n\n### Component → Service Mapping (key bindings)\n\n| Component | Service \u002F Image | Where configured |\n|---|---|---|\n| Agent | `vss-agent` + `vss-va-mcp` | `agents\u002Fvss-agent\u002F`, `sop\u002Fvss-agent\u002F` (Stage 2) |\n| Video IO & Storage \u002F VMS | VST 3.1.0 services | `vst\u002Fcompose.yml` (Stage 3.4) |\n| Search \u002F Report Gen | Elasticsearch + `template_report_gen` | `sop\u002Fvss-agent\u002Fconfigs\u002Fconfig.yml` (Stage 2) |\n| Nemotron Super (LLM) | Remote NIM endpoint (or local NIM) | `LLM_BASE_URL`, `LLM_NAME` in `sop\u002F.env` (default remote Llama 3.3 Nemotron Super, customizable) |\n| DS SOP Model (VLM) | Local — inside DS-SOP (or remote VLM) | `VLM_BASE_URL`, `VLM_NAME` in `sop\u002F.env` (default local DS-SOP model, customizable) |\n| DS SOP | `ds-sop:1.0.0` (local build) | `ds\u002Fds-sop\u002F` (Stage 3.6) |\n| Message Broker | Kafka | `foundational\u002F`, topic `mdx-vlm-captions` |\n| Analytics DB | Elasticsearch | `foundational\u002F`, index `mdx-vlm-captions-*` |\n\n### Pinned Container Versions\n\n| Component | Version |\n|---|---|\n| Elasticsearch \u002F Kibana \u002F Logstash | 9.3.0 (stock) |\n| VSS Agent \u002F VST \u002F Video Analytics API \u002F Agent UI | 3.1.0 |\n| DS-SOP | 1.0.0 (local build) |\n\n### Directory Structure\n\nDuring build, all directories coexist under the current working directory (CWD). The upstream `video-search-and-summarization\u002F` is removed after success.\n\n```\n\u003Ccurrent working directory>\u002F\n├── deployments\u002F                    ← starts empty; populated by Stages 0–4\n│   ├── compose.yml                 ← top-level (Stage 1)\n│   ├── cleanup_all_datalog.sh      ← cleanup data script\n│   ├── foundational\u002F               ← ELK 9.3.0, Kafka, Redis, Phoenix (Stage 3.1)\n│   ├── vst\u002F                        ← VST 3.1.0 microservices (Stage 3.4)\n│   ├── agents\u002F                     ← +bp_sop_2d profiles (Stage 2.1)\n│   ├── nim\u002F                        ← per-GPU profiles (Stage 3.3)\n│   ├── monitoring\u002F                 ← NEW: Prometheus\u002FGrafana (Stage 3.2)\n│   ├── ds\u002Fds-sop\u002F                  ← NEW: DS-SOP microservice (Stage 3.6)\n│   └── sop\u002F                        ← NEW: full SOP app layer (Stage 4)\n├── sop-resources\u002F                  ← NEW: resources downloaded in CWD (sample video, configs)\n├── sop-data\u002F                       ← NEW: datalog folders created in CWD (ES data, logs, Kafka, etc.)\n└── video-search-and-summarization\u002F ← upstream (cloned to CWD, read-only, removed after build)\n```\n\n---\n\n# Stage 0 — Prerequisites Check & Auto-Install\n\nRun this **first**, before cloning or any build stage. It checks secret key files, GPU drivers, Docker, NVIDIA Container Toolkit, and NGC configuration, and can automatically install or configure missing prerequisites (NVIDIA Driver 580, CUDA Toolkit 13, Docker, Docker Compose, NVIDIA Container Toolkit, NGC CLI, and NGC CLI configuration).\n\nTo run the checks and automatically fix\u002Finstall any missing components:\n\n```bash\ncd \u003Cbp-repo>\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix\n```\n\nTo run the checks only, without modifying your system:\n\n```bash\ncd \u003Cbp-repo>\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo .\n```\n\nIf any manual check fails, refer to the printed advice or the **vss-sop-deploy** Phase 0 references (secret keys, NVIDIA driver, Docker & Toolkit).\n\n---\n\n# Stage 0.1 — Clone and Prepare\n\nAll output goes into `deployments\u002F`. Upstream `video-search-and-summarization\u002F` is read-only and is cloned directly into the CWD. All paths are relative to CWD.\n\n## Step 0.1.1 — Clone Upstream Repository\nRun `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh` to clone the upstream 3.1.0 branch of `video-search-and-summarization` (which serves as a read-only source for the build process).\n\n---\n\n# Stage 1 — Reference → Target File Mapping\n\nCopy these files **verbatim** from `references\u002F` (do NOT regenerate — they contain tuned defaults):\n\n| Reference file | Copy to |\n|---|---|\n| `references\u002Fdeployments\u002Fcompose.yml` | `deployments\u002Fcompose.yml` |\n| `references\u002Fdeployments\u002Fcleanup_all_datalog.sh` | `deployments\u002Fcleanup_all_datalog.sh` |\n| `references\u002Fdeployments\u002Fds\u002Fcompose.yml` | `deployments\u002Fds\u002Fcompose.yml` |\n| `references\u002Fdeployments\u002Fds\u002Fds-sop\u002F.env` | `deployments\u002Fds\u002Fds-sop\u002F.env` |\n| `references\u002Fdeployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml` | `deployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml` |\n| `references\u002Fdeployments\u002Fsop\u002F.env` | `deployments\u002Fsop\u002F.env` |\n\nThese references are all copied to their correct locations by running the unified copy script:\n`.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh`\n\n---\n\n# Stage 2 — Convert VSS Agent → VSS SOP Agent\n\n> Full details (YAML diffs, profiles, depends_on, agent-eval volume removal): [`references\u002Fvss-agent-building.md`](references\u002Fvss-agent-building.md)\n> Full details (config.yml, va_mcp_server_config.yml, patches, templates): [`references\u002Fsop-app-building.md`](references\u002Fsop-app-building.md)\n\nTransforms the upstream VSS Agent into the VSS SOP Agent (SOP compliance monitoring). **No image rebuilds** — done via configs, bind-mounts, env vars.\n\n| # | Step | Action |\n|---|---|---|\n| 2.1 | Add `bp_sop_2d` profile + patch volumes | Add profile to `vss-ui`, `vss-va-mcp`, `vss-agent`, all foundational services. Bind-mount SOP patches into `vss-va-mcp`. Comment out `ai-agents` in `agents\u002Fcompose.yml` |\n| 2.2 | Configure VSS Agent for SOP | Create `sop\u002Fvss-agent\u002Fconfigs\u002Fconfig.yml` (workflow, SOP tools, prompt) and `va_mcp_server_config.yml` (SOP tools list) |\n| 2.3 | Create Python patches | `sop\u002Fvss-agent\u002Fpatches\u002F{es_client.py, tools.py, utils.py}` — overlay video-analytics module |\n| 2.4 | Create report templates | `sop\u002Fvss-agent\u002Ftemplates\u002F{sop_compliance_report_template.md}` |\n| 2.5 | Set agent `.env` vars | `VSS_AGENT_CONFIG_FILE`, `VSS_VA_MCP_CONFIG_FILE`, `VSS_AGENT_TEMPLATE_*`, `VLM_MODE=local`, `VLM_BASE_URL=http:\u002F\u002Flocalhost:8300`, `VLM_NAME=ds_sop_model` |\n\n### Key SOP-specific tools (configured via `va_mcp_server_config.yml`)\n\n- `get_sop_status` — current compliance status, latest actions, cycle info\n- `get_sop_report` — full compliance report with violations, cycles, statistics\n- `get_sop_as_incidents` \u002F `get_sop_as_incident` — SOP events as incidents\n\n### Patch mount target (verify Python version matches the VSS Agent image)\n\n```\n\u002Fvss-agent\u002F.venv\u002Flib\u002Fpython3.13\u002Fsite-packages\u002Fvss_agents\u002Fvideo_analytics\u002F{tools,utils,es_client}.py\n```\n\n---\n\n# Stage 3 — Build Foundational, Monitoring, NIM, VIOS & DS-SOP Layer\n\n| # | Step | Reference |\n|---|---|---|\n| 3.1a | Copy foundational from upstream to deployments | `scripts\u002Fcopy_foundational_from_upstream.sh` |\n| 3.1b | Modify foundational for SOP: stock ES, Kafka topics, vlm-captions, init scripts | `scripts\u002Fmodify_foundational_for_sop.sh` + [`foundational-building.md`](references\u002Ffoundational-building.md) |\n| 3.2 | Create monitoring stack (Prometheus, Grafana, DCGM, node-exporter, cAdvisor) | *(not yet documented)* |\n| 3.3 | Convert NIM model services (per-GPU profiles, rename envs, tune params) | [`nim-building.md`](references\u002Fnim-building.md) |\n| 3.4a | Copy VIOS from upstream to deployments (restructure `developer\u002Fvst\u002F` → `sop\u002Fvst\u002F`) | `scripts\u002Fcopy_vios_from_upstream.sh` |\n| 3.4b | Modify VIOS for SOP: split monolith → 5 microservices + MinIO | `scripts\u002Fmodify_vios_for_sop.sh` + [`vios-building.md`](references\u002Fvios-building.md) |\n| 3.5 | Wire SOP compose | See below |\n| 3.6 | Configure DS-SOP | Copy reference files verbatim (see below) |\n\n> DS-SOP source generation (ds-sop-skills, RTSP output native per § 18) + image build (via `build_ds_sop.sh`, no patch): see the Generate + Build section below + [`ds-sop-building.md`](references\u002Fds-sop-building.md).\n\n## Step 3.5 — Wire the SOP Compose\n\nThe compose files are wired here; both are kept in `configs\u002F`:\n\n- **`deployments\u002Fds\u002Fcompose.yml` (REPLACES upstream content)** — see `references\u002Fdeployments\u002Fds\u002Fcompose.yml`. Single include: `ds-sop\u002Fds-sop-docker-compose.yml`.\n\n## Step 3.6 — Configure the DS-SOP Microservice\n\nCopy both files verbatim from references — they encode tuned defaults, exact volume mounts, and env-var pass-through. This is done by the copy references script (`.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh`), which copies:\n\n- `agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments\u002Fds\u002Fds-sop\u002F.env` → `deployments\u002Fds\u002Fds-sop\u002F.env`\n- `agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml` → `deployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml`\n\nCritical defaults to be aware of:\n\n| Variable | Default | Note |\n|---|---|---|\n| `API_SERVER_PORT` | 8300 | DS-SOP API server (also `VLM_BASE_URL` target) |\n| `DS_SOP_KAFKA_TOPIC` | `mdx-vlm-captions` | Must match foundational Kafka topic |\n| `SOP_MESSAGING_SCHEMA` | `JSON` | **Required for ELK pipeline** (not `NvProtoSchema`) |\n| `ENABLE_MESSAGING` | `1` | Enable chunk → Kafka publication |\n| `MODEL_ROOT_DIR` | `\u002Fopt\u002Fmodels` | Mounts `${MODEL_ROOT_DIR}:${MODEL_ROOT_DIR}` |\n| `VLLM_MODEL_PATH` \u002F `DDM_MODEL_PATH` | per `.env` | Models verified under `\u002Fopt\u002Fmodels` (vss-sop-deploy Phase 1) |\n| `SW_ENCODER` | `true` | CPU `x264enc`; set `false` for GPU `nvv4l2h264enc` |\n\nContainer properties: image `ds-sop:1.0.0`, profile `bp_sop_2d`, runtime `nvidia`, `shm_size: 16gb`, `network_mode: host`, depends on `kafka`.\n\n\n---\n\n## Generate + Build: ds-sop-skills source → DS-SOP\n\n> Full breakdown (build flow, 8 post-build checks, auto-fix recipes; RTSP is an opt-in ds-sop-skills feature, requested at generation — § 18): [`references\u002Fds-sop-building.md`](references\u002Fds-sop-building.md)\n> Build script: [`scripts\u002Fbuild_ds_sop.sh`](scripts\u002Fbuild_ds_sop.sh)\n\nThe DS-SOP source is **not cloned** from the public NVIDIA SOP Inference Blueprint. It is **generated by the ds-sop-skills skill** into `ds_sop_microservice` and built as-is into the VSS blueprint's `ds-sop:1.0.0` image. RTSP streaming output is an **optional, opt-in** ds-sop-skills feature (§ 18) that the VSS-SOP blueprint requires, so the generation prompt must request it explicitly.\n\n**Step A — Generate the source** (if `ds_sop_microservice` does not already exist) by following the ds-sop-skills prompt — note the **required** *\"with rtsp streaming output feature\"* phrase:\n\n```\nPlease follow instructions in ..\u002Fds-sop-skills\u002Fexample_sop_prompt.md to generate a SOP microservice with rtsp streaming output feature in folder ..\u002Fds_sop_microservice\n```\n\nThis emits the standard DeepStream SOP microservice (DeepStream GEBD pipeline, VLM classification, SOP checker, Kafka\u002FJSON messaging, Basler camera support) **with RTSP streaming output built in** (ds-sop-skills § 18). Omitting the RTSP phrase produces a source without RTSP and the RTSP post-build checks will fail.\n\n**Step B — Build:** Run `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fbuild_ds_sop.sh \u003Cds_sop_microservice_dir> \u003Cbp_repo_path>` (`\u003Cds_sop_microservice_dir>` defaults to `..\u002Fds_sop_microservice`). It validates the generated layout, ensures the `binaries\u002F` bind-mount target exists, then builds `ds-sop:1.0.0`. **No source modification.**\n\nNotes:\n\n- **RTSP is owned by ds-sop-skills (§ 18)** — it is an **opt-in** ds-sop-skills feature, so the generation prompt must request it (*\"with rtsp streaming output feature\"*). When requested, the generated source contains the GStreamer RTSP libs + codec plugins, `RTSPStreamingServer` + `tee1`-tapped encode branch, `SW_ENCODER`\u002F`ENABLE_RTSP_OUTPUT`\u002F`RTSP_PORT`, `--rtsp-port` CLI, api-server auto-injection, `\u002Fds-out\u002F{sensor_id}` paths, and `key-int-max=30`. vss-sop-build does not add or patch any of it.\n- **Image vs. workdir** — the image is tagged `ds-sop:1.0.0` at build time, but the container workdir stays `\u002Fopt\u002Fnvidia\u002Fnvds_sop` (as generated). The VSS `ds-sop-docker-compose.yml` points `PYTHONPATH`, `working_dir`, and the cache\u002Fchunks\u002Falert mounts at `\u002Fopt\u002Fnvidia\u002Fnvds_sop` accordingly.\n- If a post-build check (§ checks in `ds-sop-building.md`) fails, fix it in the **ds-sop-skills generation** and regenerate — not by patching here.\n\n---\n\n# Stage 4 — Add SOP Infrastructure & App Layer\n\n> Full details: [`references\u002Fsop-app-building.md`](references\u002Fsop-app-building.md)\n\nThe entire `sop\u002F` directory is **new** — not in the upstream repo. This is copied as part of the copy references script (`.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh`) from the skill's reference directory `agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments` (including the top-level `compose.yml`, `cleanup_all_datalog.sh`, and the full `sop\u002F` directory with its `.env` file) into the target `deployments\u002F` folder.\n\nThen customize `deployments\u002Fsop\u002F.env`:\n1. Set `MDX_SAMPLE_APPS_DIR`, `MDX_DATA_DIR`, `HOST_IP`, API keys (`NGC_CLI_API_KEY`, `NVIDIA_API_KEY`), `HARDWARE_PROFILE`.\n2. Customize the LLM and VLM settings if needed (defaults to Llama 3.3 Nemotron Super for remote LLM and `ds_sop_model` for local DS-SOP VLM):\n   - **LLM Configuration (remote or local NIM)**: `LLM_MODE`, `LLM_BASE_URL`, `LLM_NAME` \u002F `LLM_NAME_SLUG`.\n   - **VLM Configuration (local or remote)**: `VLM_MODE`, `VLM_BASE_URL`, `VLM_NAME` \u002F `VLM_NAME_SLUG`.\n\nAll other files are used as-is.\n\n---\n\n# Stage 5 — Build Verification + Deploy → Test Loop\n\n## Step 5.0 — Verify the build\n\nRun `.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh` — it invokes `verify_build.py` to check directory structure, top-level compose include, `bp_sop_2d` profile coverage, container image versions, Kibana dashboard flat-field mapping, SDR recorder API URLs, and SDR container cluster name syntax (checks for invalid double-double-quotes), then runs the post-verification cleanup of the upstream repo.\n\n## Step 5.1 — Deploy (invoke `vss-sop-deploy`)\n\nPhase 0: prerequisites & API keys → Phase 1: verify models & download assets → Phase 2: start RTSP simulator → Phase 3: build DS-SOP image & verify components → Phase 4: configure & deploy (`docker compose … --profile bp_sop_2d up -d`) → Phase 5: test RTSP stream & register to VIOS.\n\n## Step 5.2 — Test (invoke `vss-sop-test`)\n\nPhase 1: service health → Phase 2: ELK pipeline (ES reachable, data ingested, Kibana fields) → Phase 3: VIOS recording + livestream → Phase 4: VSS Agent (MCP, LLM, VLM, snapshot, video, report).\n\n## Step 5.3 — Fix and Re-deploy (loop)\n\nIf a phase fails: read auto-debug output → apply fix (env, compose, patches, image rebuild) → re-deploy → re-test. Repeat until ALL phases pass with 100% check pass rate.\n\n**MANDATORY: ALL tests must pass. Do NOT classify any failure as \"environmental\", \"intermittent\", or \"acceptable\". Do NOT proceed with any failing test. If stuck after 3 attempts on the same failure, STOP and ask the user for help.**\n\nThe pipeline is complete ONLY when the output matches:\n\n```\n✅ Phase 1 — Service Health: PASS (all checks)\n✅ Phase 2 — ELK Data Pipeline: PASS (all checks)\n✅ Phase 3 — VIOS Recording & Livestream: PASS (all checks, including recording)\n✅ Phase 4 — VSS Agent: PASS (all checks, including report generation)\n```\n\nAny partial result (e.g., 36\u002F38) means the pipeline is NOT complete — keep debugging.\n\n---\n\n## Error Handling\n\nBuild \u002F structure issues (resolved during the build stages above):\n\n- **Missing `bp_sop_2d` profile** — must be added manually to ALL shared services in `foundational\u002F`, `agents\u002F`, `vst\u002F`. Upstream 3.1.0 doesn't include it.\n- **Patch mount failures** — verify the Python version (`python3.13`) matches the VSS Agent image; mount target is `\u002Fvss-agent\u002F.venv\u002Flib\u002Fpython3.13\u002Fsite-packages\u002Fvss_agents\u002Fvideo_analytics\u002F`.\n- **`vss-agent` and `vss-va-mcp` containers never start with `bp_sop_2d` profile** — both services in `agents\u002Fvss-agent\u002Fvss-agent-docker-compose.yml` must have `bp_sop_2d` in their `profiles:` list. The `patch_profiles.py` script handles this automatically. Manual fallback: add `- bp_sop_2d` as the first entry in the `profiles:` list for both `vss-va-mcp` and `vss-agent`. Also add the SOP patch volume mounts (`tools.py`, `utils.py`, `es_client.py`) to both services so they both use the SOP-specific video analytics module.\n- **Video analytics API empty** — `vss-video-analytics-api-config.json` must point to `mdx-vlm-captions-*` (not `mdx-incidents-*`).\n- **Upstream includes fail** — clean up top-level `compose.yml` per Stage 1 (drop `developer-workflow`, etc.).\n- **`sop\u002F.env` not found** — must be at `deployments\u002Fsop\u002F.env` (Docker Compose reads it from beside `sop\u002Fcompose.yml`). Copied during Stage 4.\n- **DS-SOP container won't start** — confirm `ds-sop:1.0.0` image exists; verify `VLLM_MODEL_PATH` \u002F `DDM_MODEL_PATH` point to verified models.\n- **Agent can't reach VLM** — SOP uses `VLM_BASE_URL=http:\u002F\u002Flocalhost:8300` (DS-SOP API), not a remote NIM endpoint.\n- **Report generation fails with \"error generating\" \u002F VST clip HTTP 500 (\"Could not multiplex stream\")** — the report agent extracts a short (~2s) incident video clip via `vst_video_url`. With `overlay_config: true`, VST's OSD\u002Fbbox transcode pipeline fails to multiplex such short clips (`VMSInternalError: Synchronous video generation failed`). SOP incidents carry no object bounding boxes (`objectId` is always empty), so set `overlay_config: false` for the `vst_video_url` tool in `sop\u002Fvss-agent\u002Fconfigs\u002Fconfig.yml` (leave the `vst_picture_url` snapshot tool as-is). The plain no-overlay clip path muxes reliably.\n- **VSS agent [401] Unauthorized calling remote LLM** — `NVIDIA_API_KEY=''` in `deployments\u002Fsop\u002F.env` is empty. `deploy.sh` now auto-writes the key from `.secret\u002Fnvidia_build_api_key.txt` into `sop\u002F.env` on each run. If starting agent containers independently (not via `deploy.sh`), ensure `NVIDIA_API_KEY` is set in the shell or in `sop\u002F.env` before running `docker compose up`.\n\nComponent-specific issues — the detailed symptoms and fixes live in the reference docs (single source of truth), so they don't drift out of sync with this skill:\n\n- **Foundational \u002F ELK pipeline** — Logstash `ConfigurationError` at `date` blocks, `mdx-vlm-captions` index never appears, `mdx-vlm-captions` doc count stuck at 1 (`document_id` branch), Kibana \"No field found for [...]\" \u002F flat-JSON data view, `SOP_MESSAGING_SCHEMA`\u002F`ENABLE_MESSAGING`\u002FKafka topic issues → see [`foundational-building.md`](references\u002Ffoundational-building.md) Troubleshooting (validated by `verify_build.py --component foundational`).\n- **VIOS \u002F VST recording & streaming** — double-scheme clip URLs (`http:\u002F\u002Fhttp:\u002F\u002F...`), recorder on wrong RTSP port (30556 vs 30554), \"Stream not present in recorder\", `camera_streaming` not published, SDR `KeyError: 'process_type'`, SDR `provisioning_address` scheme error, SDR consumer-group round-robin, nginx `host not found in upstream`, `vst-mcp-sop` `server_port` `ValidationError`, recorder \"insufficient disk capacity\" → see [`vios-building.md`](references\u002Fvios-building.md) Troubleshooting (validated by `verify_build.py --component vios`).\n- **DS-SOP image** — empty (623-byte) MP4 report clips \u002F `key-int-max` keyframe interval, RTSP streaming output (ds-sop-skills § 18; opt-in at generation, built, not patched) → see [`ds-sop-building.md`](references\u002Fds-sop-building.md).\n- **VSS Agent compose** — `vss-agent` refuses to start with `depends on undefined service \"nvidia-nemotron-nano-9b-v2-fp8\"` (or `-fp8-shared-gpu`) → see [`vss-agent-building.md`](references\u002Fvss-agent-building.md) Step 2d.\n- **Prerequisites & runtime issues** → see **vss-sop-deploy** Phase 0 and Troubleshooting.\n\n---\n\n## License\n\nUse of this skill is governed by the [Creative Commons Attribution 4.0 International License (CC BY 4.0)](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F4.0\u002Flegalcode.en) and the [Apache License, Version 2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0).\n",{"data":35,"body":50},{"name":4,"description":6,"owner":9,"service":36,"version":37,"license":26,"reviewed":38,"metadata":39},"vss-sop","1.0.0","2026-06-23",{"openclaw":40,"author":44,"tags":45},{"emoji":41,"os":42},"🔧",[43],"linux","Quan Vu \u003Cqvu@nvidia.com>",[46,47,48,49],"vss","sop","build","blueprint",{"type":51,"children":52},"root",[53,62,85,92,97,102,122,128,151,157,162,361,367,536,540,546,553,690,696,719,725,754,1140,1143,1149,1155,1165,1171,1180,1193,1199,1481,1487,1546,1552,1565,1574,1577,1582,1594,1599,1656,1661,1707,1718,1721,1727,1746,1752,1772,1775,1781,1800,1948,1958,1961,1967,1994,2006,2239,2251,2295,2301,2310,2313,2319,2546,2572,2578,2591,2623,2629,2641,2674,2679,2945,2992,2995,3001,3028,3069,3100,3109,3121,3173,3178,3338,3341,3347,3363,3433,3444,3583,3588,3591,3597,3603,3629,3641,3654,3666,3671,3677,3682,3690,3695,3704,3709,3712,3718,3723,4182,4187,4447,4450,4456,4479],{"type":54,"tag":55,"props":56,"children":58},"element","h1",{"id":57},"vss-sop-build-a-custom-blueprint-from-vss-31",[59],{"type":60,"value":61},"text","VSS SOP — Build a Custom Blueprint from VSS 3.1",{"type":54,"tag":63,"props":64,"children":65},"p",{},[66,68,75,77,83],{"type":60,"value":67},"Scaffold the SOP blueprint layer on top of ",{"type":54,"tag":69,"props":70,"children":72},"code",{"className":71},[],[73],{"type":60,"value":74},"met-blueprints",{"type":60,"value":76}," 3.1. ",{"type":54,"tag":78,"props":79,"children":80},"strong",{},[81],{"type":60,"value":82},"This SKILL.md is a roadmap",{"type":60,"value":84}," — it points to detailed references for each stage. Read references only when working on that stage.",{"type":54,"tag":86,"props":87,"children":89},"h2",{"id":88},"overview",[90],{"type":60,"value":91},"Overview",{"type":54,"tag":63,"props":93,"children":94},{},[95],{"type":60,"value":96},"Use this skill when asked to create, customize, or scaffold the VSS SOP blueprint on top of standard VSS 3.1 base components.",{"type":54,"tag":63,"props":98,"children":99},{},[100],{"type":60,"value":101},"Key scenarios:",{"type":54,"tag":103,"props":104,"children":105},"ul",{},[106,112,117],{"type":54,"tag":107,"props":108,"children":109},"li",{},[110],{"type":60,"value":111},"Creating a new SOP blueprint from scratch.",{"type":54,"tag":107,"props":113,"children":114},{},[115],{"type":60,"value":116},"Merging upstream VSS changes with custom SOP layers.",{"type":54,"tag":107,"props":118,"children":119},{},[120],{"type":60,"value":121},"Integrating custom DS-SOP deepstream microservices.",{"type":54,"tag":86,"props":123,"children":125},{"id":124},"prerequisites",[126],{"type":60,"value":127},"Prerequisites",{"type":54,"tag":103,"props":129,"children":130},{},[131,141],{"type":54,"tag":107,"props":132,"children":133},{},[134,139],{"type":54,"tag":78,"props":135,"children":136},{},[137],{"type":60,"value":138},"Host Base System:",{"type":60,"value":140}," standard Linux OS, Docker with buildkit, Nvidia GPU drivers 580+.",{"type":54,"tag":107,"props":142,"children":143},{},[144,149],{"type":54,"tag":78,"props":145,"children":146},{},[147],{"type":60,"value":148},"Upstream Codebase:",{"type":60,"value":150}," Access to VSS 3.1 repository.",{"type":54,"tag":86,"props":152,"children":154},{"id":153},"instructions",[155],{"type":60,"value":156},"Instructions",{"type":54,"tag":63,"props":158,"children":159},{},[160],{"type":60,"value":161},"Run these scripts from the blueprint repo root, in order:",{"type":54,"tag":163,"props":164,"children":166},"ol",{"start":165},0,[167,194,209,224,239,254,269,284,299,314,346],{"type":54,"tag":107,"props":168,"children":169},{},[170,175,177,183,185,192],{"type":54,"tag":78,"props":171,"children":172},{},[173],{"type":60,"value":174},"Prerequisites Check & Auto-Install (run first)",{"type":60,"value":176}," — ",{"type":54,"tag":69,"props":178,"children":180},{"className":179},[],[181],{"type":60,"value":182},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix",{"type":60,"value":184}," (see ",{"type":54,"tag":186,"props":187,"children":189},"a",{"href":188},"#stage-0--prerequisites-check--auto-install",[190],{"type":60,"value":191},"Stage 0 — Prerequisites Check & Auto-Install",{"type":60,"value":193},")",{"type":54,"tag":107,"props":195,"children":196},{},[197,202,203],{"type":54,"tag":78,"props":198,"children":199},{},[200],{"type":60,"value":201},"Clone upstream repository (Stage 0.1)",{"type":60,"value":176},{"type":54,"tag":69,"props":204,"children":206},{"className":205},[],[207],{"type":60,"value":208},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh",{"type":54,"tag":107,"props":210,"children":211},{},[212,217,218],{"type":54,"tag":78,"props":213,"children":214},{},[215],{"type":60,"value":216},"Copy all reference files verbatim (Stage 1)",{"type":60,"value":176},{"type":54,"tag":69,"props":219,"children":221},{"className":220},[],[222],{"type":60,"value":223},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh",{"type":54,"tag":107,"props":225,"children":226},{},[227,232,233],{"type":54,"tag":78,"props":228,"children":229},{},[230],{"type":60,"value":231},"Copy foundational from upstream (Stage 3.1a)",{"type":60,"value":176},{"type":54,"tag":69,"props":234,"children":236},{"className":235},[],[237],{"type":60,"value":238},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_foundational_from_upstream.sh",{"type":54,"tag":107,"props":240,"children":241},{},[242,247,248],{"type":54,"tag":78,"props":243,"children":244},{},[245],{"type":60,"value":246},"Modify foundational for SOP profile (Stage 3.1b)",{"type":60,"value":176},{"type":54,"tag":69,"props":249,"children":251},{"className":250},[],[252],{"type":60,"value":253},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_foundational_for_sop.sh",{"type":54,"tag":107,"props":255,"children":256},{},[257,262,263],{"type":54,"tag":78,"props":258,"children":259},{},[260],{"type":60,"value":261},"Copy VIOS from upstream (Stage 3.4a)",{"type":60,"value":176},{"type":54,"tag":69,"props":264,"children":266},{"className":265},[],[267],{"type":60,"value":268},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_vios_from_upstream.sh",{"type":54,"tag":107,"props":270,"children":271},{},[272,277,278],{"type":54,"tag":78,"props":273,"children":274},{},[275],{"type":60,"value":276},"Modify VIOS for SOP profile (Stage 3.4b)",{"type":60,"value":176},{"type":54,"tag":69,"props":279,"children":281},{"className":280},[],[282],{"type":60,"value":283},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_vios_for_sop.sh",{"type":54,"tag":107,"props":285,"children":286},{},[287,292,293],{"type":54,"tag":78,"props":288,"children":289},{},[290],{"type":60,"value":291},"Copy agents from upstream + apply SOP profile (Stage 2)",{"type":60,"value":176},{"type":54,"tag":69,"props":294,"children":296},{"className":295},[],[297],{"type":60,"value":298},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_agents_from_upstream.sh",{"type":54,"tag":107,"props":300,"children":301},{},[302,307,308],{"type":54,"tag":78,"props":303,"children":304},{},[305],{"type":60,"value":306},"Copy NIM from upstream + apply SOP conventions (Stage 3.3)",{"type":60,"value":176},{"type":54,"tag":69,"props":309,"children":311},{"className":310},[],[312],{"type":60,"value":313},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_nim_from_upstream.sh",{"type":54,"tag":107,"props":315,"children":316},{},[317,322,324,330,332,338,340],{"type":54,"tag":78,"props":318,"children":319},{},[320],{"type":60,"value":321},"Generate DS-SOP source via ds-sop-skills (RTSP output is native), then build the image",{"type":60,"value":323}," (when needed) — first generate ",{"type":54,"tag":69,"props":325,"children":327},{"className":326},[],[328],{"type":60,"value":329},"..\u002Fds_sop_microservice",{"type":60,"value":331}," with the ds-sop-skills skill (",{"type":54,"tag":69,"props":333,"children":335},{"className":334},[],[336],{"type":60,"value":337},"..\u002Fds-sop-skills\u002Fexample_sop_prompt.md",{"type":60,"value":339},"), then run ",{"type":54,"tag":69,"props":341,"children":343},{"className":342},[],[344],{"type":60,"value":345},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fbuild_ds_sop.sh \u003Cds_sop_microservice_dir> \u003Cbp_repo_path>",{"type":54,"tag":107,"props":347,"children":348},{},[349,354,355],{"type":54,"tag":78,"props":350,"children":351},{},[352],{"type":60,"value":353},"Verify the build",{"type":60,"value":176},{"type":54,"tag":69,"props":356,"children":358},{"className":357},[],[359],{"type":60,"value":360},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh",{"type":54,"tag":86,"props":362,"children":364},{"id":363},"cross-reference-with-other-skills",[365],{"type":60,"value":366},"Cross-Reference with Other Skills",{"type":54,"tag":368,"props":369,"children":370},"table",{},[371,390],{"type":54,"tag":372,"props":373,"children":374},"thead",{},[375],{"type":54,"tag":376,"props":377,"children":378},"tr",{},[379,385],{"type":54,"tag":380,"props":381,"children":382},"th",{},[383],{"type":60,"value":384},"Need",{"type":54,"tag":380,"props":386,"children":387},{},[388],{"type":60,"value":389},"Skill",{"type":54,"tag":391,"props":392,"children":393},"tbody",{},[394,413,431,452,473,494,515],{"type":54,"tag":376,"props":395,"children":396},{},[397,403],{"type":54,"tag":398,"props":399,"children":400},"td",{},[401],{"type":60,"value":402},"Prerequisites, build DS-SOP image, models, deploy, RTSP test",{"type":54,"tag":398,"props":404,"children":405},{},[406,411],{"type":54,"tag":78,"props":407,"children":408},{},[409],{"type":60,"value":410},"vss-sop-deploy",{"type":60,"value":412}," (Phase 0–5)",{"type":54,"tag":376,"props":414,"children":415},{},[416,421],{"type":54,"tag":398,"props":417,"children":418},{},[419],{"type":60,"value":420},"Post-deployment validation: health, ELK, VIOS, Agent",{"type":54,"tag":398,"props":422,"children":423},{},[424,429],{"type":54,"tag":78,"props":425,"children":426},{},[427],{"type":60,"value":428},"vss-sop-test",{"type":60,"value":430}," (Phase 1–4)",{"type":54,"tag":376,"props":432,"children":433},{},[434,439],{"type":54,"tag":398,"props":435,"children":436},{},[437],{"type":60,"value":438},"Manage cameras\u002Fsensors\u002Fstreams via VIOS",{"type":54,"tag":398,"props":440,"children":441},{},[442],{"type":54,"tag":186,"props":443,"children":445},{"href":444},"references\u002Fvss\u002Fvss-call-vios-api\u002FSKILL.md",[446],{"type":54,"tag":69,"props":447,"children":449},{"className":448},[],[450],{"type":60,"value":451},"vss-call-vios-api",{"type":54,"tag":376,"props":453,"children":454},{},[455,460],{"type":54,"tag":398,"props":456,"children":457},{},[458],{"type":60,"value":459},"Query SOP data from Elasticsearch via VA-MCP",{"type":54,"tag":398,"props":461,"children":462},{},[463],{"type":54,"tag":186,"props":464,"children":466},{"href":465},"references\u002Fvss\u002Fvss-query-analytics\u002FSKILL.md",[467],{"type":54,"tag":69,"props":468,"children":470},{"className":469},[],[471],{"type":60,"value":472},"vss-query-analytics",{"type":54,"tag":376,"props":474,"children":475},{},[476,481],{"type":54,"tag":398,"props":477,"children":478},{},[479],{"type":60,"value":480},"Generate SOP compliance reports",{"type":54,"tag":398,"props":482,"children":483},{},[484],{"type":54,"tag":186,"props":485,"children":487},{"href":486},"references\u002Fvss\u002Fvss-generate-video-report\u002FSKILL.md",[488],{"type":54,"tag":69,"props":489,"children":491},{"className":490},[],[492],{"type":60,"value":493},"vss-generate-video-report",{"type":54,"tag":376,"props":495,"children":496},{},[497,502],{"type":54,"tag":398,"props":498,"children":499},{},[500],{"type":60,"value":501},"Search video archives with natural language",{"type":54,"tag":398,"props":503,"children":504},{},[505],{"type":54,"tag":186,"props":506,"children":508},{"href":507},"references\u002Fvss\u002Fvss-search-archive\u002FSKILL.md",[509],{"type":54,"tag":69,"props":510,"children":512},{"className":511},[],[513],{"type":60,"value":514},"vss-search-archive",{"type":54,"tag":376,"props":516,"children":517},{},[518,523],{"type":54,"tag":398,"props":519,"children":520},{},[521],{"type":60,"value":522},"Summarize long videos \u002F generate shift reports",{"type":54,"tag":398,"props":524,"children":525},{},[526],{"type":54,"tag":186,"props":527,"children":529},{"href":528},"references\u002Fvss\u002Fvss-summarize-video\u002FSKILL.md",[530],{"type":54,"tag":69,"props":531,"children":533},{"className":532},[],[534],{"type":60,"value":535},"vss-summarize-video",{"type":54,"tag":537,"props":538,"children":539},"hr",{},[],{"type":54,"tag":86,"props":541,"children":543},{"id":542},"examples",[544],{"type":60,"value":545},"Examples",{"type":54,"tag":547,"props":548,"children":550},"h3",{"id":549},"run-the-scaffolding-process-end-to-end",[551],{"type":60,"value":552},"Run the Scaffolding Process (End-to-End)",{"type":54,"tag":554,"props":555,"children":560},"pre",{"className":556,"code":557,"language":558,"meta":559,"style":559},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Prerequisites check & auto-install (run first)\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix\n\n# Clone and prepare directories\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh\n\n# Copy references and foundations\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_foundational_from_upstream.sh\n\n# Modify foundational components for the SOP profile\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_foundational_for_sop.sh\n","bash","",[561],{"type":54,"tag":69,"props":562,"children":563},{"__ignoreMap":559},[564,576,602,612,621,630,638,647,656,665,673,682],{"type":54,"tag":565,"props":566,"children":569},"span",{"class":567,"line":568},"line",1,[570],{"type":54,"tag":565,"props":571,"children":573},{"style":572},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[574],{"type":60,"value":575},"# Prerequisites check & auto-install (run first)\n",{"type":54,"tag":565,"props":577,"children":579},{"class":567,"line":578},2,[580,586,592,597],{"type":54,"tag":565,"props":581,"children":583},{"style":582},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[584],{"type":60,"value":585},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh",{"type":54,"tag":565,"props":587,"children":589},{"style":588},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[590],{"type":60,"value":591}," --bp-repo",{"type":54,"tag":565,"props":593,"children":594},{"style":588},[595],{"type":60,"value":596}," .",{"type":54,"tag":565,"props":598,"children":599},{"style":588},[600],{"type":60,"value":601}," --fix\n",{"type":54,"tag":565,"props":603,"children":605},{"class":567,"line":604},3,[606],{"type":54,"tag":565,"props":607,"children":609},{"emptyLinePlaceholder":608},true,[610],{"type":60,"value":611},"\n",{"type":54,"tag":565,"props":613,"children":615},{"class":567,"line":614},4,[616],{"type":54,"tag":565,"props":617,"children":618},{"style":572},[619],{"type":60,"value":620},"# Clone and prepare directories\n",{"type":54,"tag":565,"props":622,"children":624},{"class":567,"line":623},5,[625],{"type":54,"tag":565,"props":626,"children":627},{"style":582},[628],{"type":60,"value":629},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fclone_and_prepare.sh\n",{"type":54,"tag":565,"props":631,"children":633},{"class":567,"line":632},6,[634],{"type":54,"tag":565,"props":635,"children":636},{"emptyLinePlaceholder":608},[637],{"type":60,"value":611},{"type":54,"tag":565,"props":639,"children":641},{"class":567,"line":640},7,[642],{"type":54,"tag":565,"props":643,"children":644},{"style":572},[645],{"type":60,"value":646},"# Copy references and foundations\n",{"type":54,"tag":565,"props":648,"children":650},{"class":567,"line":649},8,[651],{"type":54,"tag":565,"props":652,"children":653},{"style":582},[654],{"type":60,"value":655},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_references.sh\n",{"type":54,"tag":565,"props":657,"children":659},{"class":567,"line":658},9,[660],{"type":54,"tag":565,"props":661,"children":662},{"style":582},[663],{"type":60,"value":664},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fcopy_foundational_from_upstream.sh\n",{"type":54,"tag":565,"props":666,"children":668},{"class":567,"line":667},10,[669],{"type":54,"tag":565,"props":670,"children":671},{"emptyLinePlaceholder":608},[672],{"type":60,"value":611},{"type":54,"tag":565,"props":674,"children":676},{"class":567,"line":675},11,[677],{"type":54,"tag":565,"props":678,"children":679},{"style":572},[680],{"type":60,"value":681},"# Modify foundational components for the SOP profile\n",{"type":54,"tag":565,"props":683,"children":684},{"class":567,"line":27},[685],{"type":54,"tag":565,"props":686,"children":687},{"style":582},[688],{"type":60,"value":689},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fmodify_foundational_for_sop.sh\n",{"type":54,"tag":547,"props":691,"children":693},{"id":692},"verify-scaffolding-integrity",[694],{"type":60,"value":695},"Verify Scaffolding Integrity",{"type":54,"tag":554,"props":697,"children":699},{"className":556,"code":698,"language":558,"meta":559,"style":559},"# Execute local linter and integrity verification script\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh\n",[700],{"type":54,"tag":69,"props":701,"children":702},{"__ignoreMap":559},[703,711],{"type":54,"tag":565,"props":704,"children":705},{"class":567,"line":568},[706],{"type":54,"tag":565,"props":707,"children":708},{"style":572},[709],{"type":60,"value":710},"# Execute local linter and integrity verification script\n",{"type":54,"tag":565,"props":712,"children":713},{"class":567,"line":578},[714],{"type":54,"tag":565,"props":715,"children":716},{"style":582},[717],{"type":60,"value":718},".\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Fscripts\u002Fverify_build.sh\n",{"type":54,"tag":86,"props":720,"children":722},{"id":721},"what-changes-from-upstream-310",[723],{"type":60,"value":724},"What Changes from Upstream 3.1.0",{"type":54,"tag":63,"props":726,"children":727},{},[728,730,736,738,744,746,752],{"type":60,"value":729},"The upstream ",{"type":54,"tag":69,"props":731,"children":733},{"className":732},[],[734],{"type":60,"value":735},"3.1.0",{"type":60,"value":737}," branch (",{"type":54,"tag":69,"props":739,"children":741},{"className":740},[],[742],{"type":60,"value":743},"video-search-and-summarization\u002Fdeployments\u002F",{"type":60,"value":745},") ships services for many blueprint variants. SOP keeps a slimmer subset and adds the ",{"type":54,"tag":69,"props":747,"children":749},{"className":748},[],[750],{"type":60,"value":751},"sop\u002F",{"type":60,"value":753}," app layer.",{"type":54,"tag":368,"props":755,"children":756},{},[757,778],{"type":54,"tag":372,"props":758,"children":759},{},[760],{"type":54,"tag":376,"props":761,"children":762},{},[763,768,773],{"type":54,"tag":380,"props":764,"children":765},{},[766],{"type":60,"value":767},"Category",{"type":54,"tag":380,"props":769,"children":770},{},[771],{"type":60,"value":772},"What to do",{"type":54,"tag":380,"props":774,"children":775},{},[776],{"type":60,"value":777},"Reference",{"type":54,"tag":391,"props":779,"children":780},{},[781,843,877,927,981,1028,1061,1087],{"type":54,"tag":376,"props":782,"children":783},{},[784,789,838],{"type":54,"tag":398,"props":785,"children":786},{},[787],{"type":60,"value":788},"Top-level compose",{"type":54,"tag":398,"props":790,"children":791},{},[792,794,800,802,808,809,815,816,822,824,830,832],{"type":60,"value":793},"Strip ",{"type":54,"tag":69,"props":795,"children":797},{"className":796},[],[798],{"type":60,"value":799},"vlm-as-verifier",{"type":60,"value":801},", ",{"type":54,"tag":69,"props":803,"children":805},{"className":804},[],[806],{"type":60,"value":807},"lvs",{"type":60,"value":801},{"type":54,"tag":69,"props":810,"children":812},{"className":811},[],[813],{"type":60,"value":814},"developer-workflow",{"type":60,"value":801},{"type":54,"tag":69,"props":817,"children":819},{"className":818},[],[820],{"type":60,"value":821},"proxy",{"type":60,"value":823},"; switch VST to ",{"type":54,"tag":69,"props":825,"children":827},{"className":826},[],[828],{"type":60,"value":829},".\u002Fvst\u002Fcompose.yml",{"type":60,"value":831},"; add ",{"type":54,"tag":69,"props":833,"children":835},{"className":834},[],[836],{"type":60,"value":837},".\u002Fsop\u002Fcompose.yml",{"type":54,"tag":398,"props":839,"children":840},{},[841],{"type":60,"value":842},"Stage 1",{"type":54,"tag":376,"props":844,"children":845},{},[846,851,864],{"type":54,"tag":398,"props":847,"children":848},{},[849],{"type":60,"value":850},"Foundational",{"type":54,"tag":398,"props":852,"children":853},{},[854,856,862],{"type":60,"value":855},"Add ",{"type":54,"tag":69,"props":857,"children":859},{"className":858},[],[860],{"type":60,"value":861},"bp_sop_2d",{"type":60,"value":863}," profiles, stock ES image, SOP Kafka topics + ES templates",{"type":54,"tag":398,"props":865,"children":866},{},[867],{"type":54,"tag":186,"props":868,"children":870},{"href":869},"references\u002Ffoundational-building.md",[871],{"type":54,"tag":69,"props":872,"children":874},{"className":873},[],[875],{"type":60,"value":876},"foundational-building.md",{"type":54,"tag":376,"props":878,"children":879},{},[880,885,914],{"type":54,"tag":398,"props":881,"children":882},{},[883],{"type":60,"value":884},"VST",{"type":54,"tag":398,"props":886,"children":887},{},[888,890,896,898,904,906,912],{"type":60,"value":889},"Replace ",{"type":54,"tag":69,"props":891,"children":893},{"className":892},[],[894],{"type":60,"value":895},"vst\u002Fdeveloper\u002F",{"type":60,"value":897}," with ",{"type":54,"tag":69,"props":899,"children":901},{"className":900},[],[902],{"type":60,"value":903},"vst\u002Fcompose.yml",{"type":60,"value":905}," + ",{"type":54,"tag":69,"props":907,"children":909},{"className":908},[],[910],{"type":60,"value":911},"vst\u002Fsop\u002F",{"type":60,"value":913},"; split monolith into 5 microservices; add MinIO",{"type":54,"tag":398,"props":915,"children":916},{},[917],{"type":54,"tag":186,"props":918,"children":920},{"href":919},"references\u002Fvios-building.md",[921],{"type":54,"tag":69,"props":922,"children":924},{"className":923},[],[925],{"type":60,"value":926},"vios-building.md",{"type":54,"tag":376,"props":928,"children":929},{},[930,935,968],{"type":54,"tag":398,"props":931,"children":932},{},[933],{"type":60,"value":934},"Agent",{"type":54,"tag":398,"props":936,"children":937},{},[938,939,944,946,952,953,959,960,966],{"type":60,"value":855},{"type":54,"tag":69,"props":940,"children":942},{"className":941},[],[943],{"type":60,"value":861},{"type":60,"value":945}," profile to ",{"type":54,"tag":69,"props":947,"children":949},{"className":948},[],[950],{"type":60,"value":951},"vss-va-mcp",{"type":60,"value":801},{"type":54,"tag":69,"props":954,"children":956},{"className":955},[],[957],{"type":60,"value":958},"vss-agent",{"type":60,"value":801},{"type":54,"tag":69,"props":961,"children":963},{"className":962},[],[964],{"type":60,"value":965},"vss-ui",{"type":60,"value":967},"; add SOP patch volume mounts",{"type":54,"tag":398,"props":969,"children":970},{},[971],{"type":54,"tag":186,"props":972,"children":974},{"href":973},"references\u002Fvss-agent-building.md",[975],{"type":54,"tag":69,"props":976,"children":978},{"className":977},[],[979],{"type":60,"value":980},"vss-agent-building.md",{"type":54,"tag":376,"props":982,"children":983},{},[984,989,1015],{"type":54,"tag":398,"props":985,"children":986},{},[987],{"type":60,"value":988},"DS",{"type":54,"tag":398,"props":990,"children":991},{},[992,993,999,1001,1007,1009],{"type":60,"value":855},{"type":54,"tag":69,"props":994,"children":996},{"className":995},[],[997],{"type":60,"value":998},"ds-sop\u002F",{"type":60,"value":1000}," subdirectory under ",{"type":54,"tag":69,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":60,"value":1006},"deployments\u002Fds\u002F",{"type":60,"value":1008}," with compose + ",{"type":54,"tag":69,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":60,"value":1014},".env",{"type":54,"tag":398,"props":1016,"children":1017},{},[1018],{"type":54,"tag":186,"props":1019,"children":1021},{"href":1020},"references\u002Fds-sop-building.md",[1022],{"type":54,"tag":69,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":60,"value":1027},"ds-sop-building.md",{"type":54,"tag":376,"props":1029,"children":1030},{},[1031,1043,1048],{"type":54,"tag":398,"props":1032,"children":1033},{},[1034,1036,1041],{"type":60,"value":1035},"New ",{"type":54,"tag":69,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":60,"value":751},{"type":60,"value":1042}," directory",{"type":54,"tag":398,"props":1044,"children":1045},{},[1046],{"type":60,"value":1047},"Entire SOP app layer: compose, .env, vss-agent configs\u002Fpatches\u002Ftemplates, sop-app services",{"type":54,"tag":398,"props":1049,"children":1050},{},[1051],{"type":54,"tag":186,"props":1052,"children":1054},{"href":1053},"references\u002Fsop-app-building.md",[1055],{"type":54,"tag":69,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":60,"value":1060},"sop-app-building.md",{"type":54,"tag":376,"props":1062,"children":1063},{},[1064,1069,1074],{"type":54,"tag":398,"props":1065,"children":1066},{},[1067],{"type":60,"value":1068},"NIM",{"type":54,"tag":398,"props":1070,"children":1071},{},[1072],{"type":60,"value":1073},"Per-GPU profiles, rename env files, tune NIM params",{"type":54,"tag":398,"props":1075,"children":1076},{},[1077],{"type":54,"tag":186,"props":1078,"children":1080},{"href":1079},"references\u002Fnim-building.md",[1081],{"type":54,"tag":69,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":60,"value":1086},"nim-building.md",{"type":54,"tag":376,"props":1088,"children":1089},{},[1090,1095,1135],{"type":54,"tag":398,"props":1091,"children":1092},{},[1093],{"type":60,"value":1094},"Remove",{"type":54,"tag":398,"props":1096,"children":1097},{},[1098,1100,1106,1107,1113,1114,1120,1121,1127,1129],{"type":60,"value":1099},"Delete ",{"type":54,"tag":69,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":60,"value":1105},"developer-workflow\u002F",{"type":60,"value":801},{"type":54,"tag":69,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":60,"value":1112},"vlm-as-verifier\u002F",{"type":60,"value":801},{"type":54,"tag":69,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":60,"value":1119},"lvs\u002F",{"type":60,"value":801},{"type":54,"tag":69,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":60,"value":1126},"proxy\u002F",{"type":60,"value":1128}," from ",{"type":54,"tag":69,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":60,"value":1134},"deployments\u002F",{"type":54,"tag":398,"props":1136,"children":1137},{},[1138],{"type":60,"value":1139},"—",{"type":54,"tag":537,"props":1141,"children":1142},{},[],{"type":54,"tag":86,"props":1144,"children":1146},{"id":1145},"architecture-overview",[1147],{"type":60,"value":1148},"Architecture Overview",{"type":54,"tag":547,"props":1150,"children":1152},{"id":1151},"system-data-flow",[1153],{"type":60,"value":1154},"System Data Flow",{"type":54,"tag":554,"props":1156,"children":1160},{"className":1157,"code":1159,"language":60},[1158],"language-text","Input Sources    Perception                      Messaging           Storage & Analytics\n─────────────    ──────────                      ─────────           ───────────────────\n Video file  ─┐\n Basler cam  ─┼──► DS SOP ──► Metadata ──► Message Broker (Kafka) ──► Video Analytics DB\n RTSP stream ─┘        │                                                 (Elasticsearch)\n                       │                                                        │\n              RTSP output ──► VMS (VIOS\u002FVST) ──► Video IO & Storage             │\n                                                   │                            │\n                                                   ▼                            ▼\n                                          ┌─────────────────────────────────────────┐\n                                          │              VSS Agent                  │\n                                          │  Video IO │ Report Gen │ Search         │\n                                          │       LLM (Nemotron Nano v2)            │\n                                          │       VLM (Cosmos Reason 2)             │\n                                          └─────────────┬───────────────────────────┘\n                                                        ▼\n                                                      User\n",[1161],{"type":54,"tag":69,"props":1162,"children":1163},{"__ignoreMap":559},[1164],{"type":60,"value":1159},{"type":54,"tag":547,"props":1166,"children":1168},{"id":1167},"ds-sop-internal-pipeline",[1169],{"type":60,"value":1170},"DS SOP Internal Pipeline",{"type":54,"tag":554,"props":1172,"children":1175},{"className":1173,"code":1174,"language":60},[1158],"streaming ──► Decode ──► Create Video Chunks ──fix chunks──► DDM-Net (CV) ──action chunks──► Cosmos Reason (VLM) ──► Metadata\n",[1176],{"type":54,"tag":69,"props":1177,"children":1178},{"__ignoreMap":559},[1179],{"type":60,"value":1174},{"type":54,"tag":63,"props":1181,"children":1182},{},[1183,1185,1191],{"type":60,"value":1184},"Metadata is published to Kafka (",{"type":54,"tag":69,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":60,"value":1190},"mdx-vlm-captions",{"type":60,"value":1192},"), ingested by Elasticsearch, and queried by the VSS Agent.",{"type":54,"tag":547,"props":1194,"children":1196},{"id":1195},"component-service-mapping-key-bindings",[1197],{"type":60,"value":1198},"Component → Service Mapping (key bindings)",{"type":54,"tag":368,"props":1200,"children":1201},{},[1202,1223],{"type":54,"tag":372,"props":1203,"children":1204},{},[1205],{"type":54,"tag":376,"props":1206,"children":1207},{},[1208,1213,1218],{"type":54,"tag":380,"props":1209,"children":1210},{},[1211],{"type":60,"value":1212},"Component",{"type":54,"tag":380,"props":1214,"children":1215},{},[1216],{"type":60,"value":1217},"Service \u002F Image",{"type":54,"tag":380,"props":1219,"children":1220},{},[1221],{"type":60,"value":1222},"Where configured",{"type":54,"tag":391,"props":1224,"children":1225},{},[1226,1265,1288,1317,1356,1393,1423,1452],{"type":54,"tag":376,"props":1227,"children":1228},{},[1229,1233,1247],{"type":54,"tag":398,"props":1230,"children":1231},{},[1232],{"type":60,"value":934},{"type":54,"tag":398,"props":1234,"children":1235},{},[1236,1241,1242],{"type":54,"tag":69,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":60,"value":958},{"type":60,"value":905},{"type":54,"tag":69,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":60,"value":951},{"type":54,"tag":398,"props":1248,"children":1249},{},[1250,1256,1257,1263],{"type":54,"tag":69,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":60,"value":1255},"agents\u002Fvss-agent\u002F",{"type":60,"value":801},{"type":54,"tag":69,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":60,"value":1262},"sop\u002Fvss-agent\u002F",{"type":60,"value":1264}," (Stage 2)",{"type":54,"tag":376,"props":1266,"children":1267},{},[1268,1273,1278],{"type":54,"tag":398,"props":1269,"children":1270},{},[1271],{"type":60,"value":1272},"Video IO & Storage \u002F VMS",{"type":54,"tag":398,"props":1274,"children":1275},{},[1276],{"type":60,"value":1277},"VST 3.1.0 services",{"type":54,"tag":398,"props":1279,"children":1280},{},[1281,1286],{"type":54,"tag":69,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":60,"value":903},{"type":60,"value":1287}," (Stage 3.4)",{"type":54,"tag":376,"props":1289,"children":1290},{},[1291,1296,1307],{"type":54,"tag":398,"props":1292,"children":1293},{},[1294],{"type":60,"value":1295},"Search \u002F Report Gen",{"type":54,"tag":398,"props":1297,"children":1298},{},[1299,1301],{"type":60,"value":1300},"Elasticsearch + ",{"type":54,"tag":69,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":60,"value":1306},"template_report_gen",{"type":54,"tag":398,"props":1308,"children":1309},{},[1310,1316],{"type":54,"tag":69,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":60,"value":1315},"sop\u002Fvss-agent\u002Fconfigs\u002Fconfig.yml",{"type":60,"value":1264},{"type":54,"tag":376,"props":1318,"children":1319},{},[1320,1325,1330],{"type":54,"tag":398,"props":1321,"children":1322},{},[1323],{"type":60,"value":1324},"Nemotron Super (LLM)",{"type":54,"tag":398,"props":1326,"children":1327},{},[1328],{"type":60,"value":1329},"Remote NIM endpoint (or local NIM)",{"type":54,"tag":398,"props":1331,"children":1332},{},[1333,1339,1340,1346,1348,1354],{"type":54,"tag":69,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":60,"value":1338},"LLM_BASE_URL",{"type":60,"value":801},{"type":54,"tag":69,"props":1341,"children":1343},{"className":1342},[],[1344],{"type":60,"value":1345},"LLM_NAME",{"type":60,"value":1347}," in ",{"type":54,"tag":69,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":60,"value":1353},"sop\u002F.env",{"type":60,"value":1355}," (default remote Llama 3.3 Nemotron Super, customizable)",{"type":54,"tag":376,"props":1357,"children":1358},{},[1359,1364,1369],{"type":54,"tag":398,"props":1360,"children":1361},{},[1362],{"type":60,"value":1363},"DS SOP Model (VLM)",{"type":54,"tag":398,"props":1365,"children":1366},{},[1367],{"type":60,"value":1368},"Local — inside DS-SOP (or remote VLM)",{"type":54,"tag":398,"props":1370,"children":1371},{},[1372,1378,1379,1385,1386,1391],{"type":54,"tag":69,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":60,"value":1377},"VLM_BASE_URL",{"type":60,"value":801},{"type":54,"tag":69,"props":1380,"children":1382},{"className":1381},[],[1383],{"type":60,"value":1384},"VLM_NAME",{"type":60,"value":1347},{"type":54,"tag":69,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":60,"value":1353},{"type":60,"value":1392}," (default local DS-SOP model, customizable)",{"type":54,"tag":376,"props":1394,"children":1395},{},[1396,1401,1412],{"type":54,"tag":398,"props":1397,"children":1398},{},[1399],{"type":60,"value":1400},"DS SOP",{"type":54,"tag":398,"props":1402,"children":1403},{},[1404,1410],{"type":54,"tag":69,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":60,"value":1409},"ds-sop:1.0.0",{"type":60,"value":1411}," (local build)",{"type":54,"tag":398,"props":1413,"children":1414},{},[1415,1421],{"type":54,"tag":69,"props":1416,"children":1418},{"className":1417},[],[1419],{"type":60,"value":1420},"ds\u002Fds-sop\u002F",{"type":60,"value":1422}," (Stage 3.6)",{"type":54,"tag":376,"props":1424,"children":1425},{},[1426,1431,1436],{"type":54,"tag":398,"props":1427,"children":1428},{},[1429],{"type":60,"value":1430},"Message Broker",{"type":54,"tag":398,"props":1432,"children":1433},{},[1434],{"type":60,"value":1435},"Kafka",{"type":54,"tag":398,"props":1437,"children":1438},{},[1439,1445,1447],{"type":54,"tag":69,"props":1440,"children":1442},{"className":1441},[],[1443],{"type":60,"value":1444},"foundational\u002F",{"type":60,"value":1446},", topic ",{"type":54,"tag":69,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":60,"value":1190},{"type":54,"tag":376,"props":1453,"children":1454},{},[1455,1460,1465],{"type":54,"tag":398,"props":1456,"children":1457},{},[1458],{"type":60,"value":1459},"Analytics DB",{"type":54,"tag":398,"props":1461,"children":1462},{},[1463],{"type":60,"value":1464},"Elasticsearch",{"type":54,"tag":398,"props":1466,"children":1467},{},[1468,1473,1475],{"type":54,"tag":69,"props":1469,"children":1471},{"className":1470},[],[1472],{"type":60,"value":1444},{"type":60,"value":1474},", index ",{"type":54,"tag":69,"props":1476,"children":1478},{"className":1477},[],[1479],{"type":60,"value":1480},"mdx-vlm-captions-*",{"type":54,"tag":547,"props":1482,"children":1484},{"id":1483},"pinned-container-versions",[1485],{"type":60,"value":1486},"Pinned Container Versions",{"type":54,"tag":368,"props":1488,"children":1489},{},[1490,1505],{"type":54,"tag":372,"props":1491,"children":1492},{},[1493],{"type":54,"tag":376,"props":1494,"children":1495},{},[1496,1500],{"type":54,"tag":380,"props":1497,"children":1498},{},[1499],{"type":60,"value":1212},{"type":54,"tag":380,"props":1501,"children":1502},{},[1503],{"type":60,"value":1504},"Version",{"type":54,"tag":391,"props":1506,"children":1507},{},[1508,1521,1533],{"type":54,"tag":376,"props":1509,"children":1510},{},[1511,1516],{"type":54,"tag":398,"props":1512,"children":1513},{},[1514],{"type":60,"value":1515},"Elasticsearch \u002F Kibana \u002F Logstash",{"type":54,"tag":398,"props":1517,"children":1518},{},[1519],{"type":60,"value":1520},"9.3.0 (stock)",{"type":54,"tag":376,"props":1522,"children":1523},{},[1524,1529],{"type":54,"tag":398,"props":1525,"children":1526},{},[1527],{"type":60,"value":1528},"VSS Agent \u002F VST \u002F Video Analytics API \u002F Agent UI",{"type":54,"tag":398,"props":1530,"children":1531},{},[1532],{"type":60,"value":735},{"type":54,"tag":376,"props":1534,"children":1535},{},[1536,1541],{"type":54,"tag":398,"props":1537,"children":1538},{},[1539],{"type":60,"value":1540},"DS-SOP",{"type":54,"tag":398,"props":1542,"children":1543},{},[1544],{"type":60,"value":1545},"1.0.0 (local build)",{"type":54,"tag":547,"props":1547,"children":1549},{"id":1548},"directory-structure",[1550],{"type":60,"value":1551},"Directory Structure",{"type":54,"tag":63,"props":1553,"children":1554},{},[1555,1557,1563],{"type":60,"value":1556},"During build, all directories coexist under the current working directory (CWD). The upstream ",{"type":54,"tag":69,"props":1558,"children":1560},{"className":1559},[],[1561],{"type":60,"value":1562},"video-search-and-summarization\u002F",{"type":60,"value":1564}," is removed after success.",{"type":54,"tag":554,"props":1566,"children":1569},{"className":1567,"code":1568,"language":60},[1158],"\u003Ccurrent working directory>\u002F\n├── deployments\u002F                    ← starts empty; populated by Stages 0–4\n│   ├── compose.yml                 ← top-level (Stage 1)\n│   ├── cleanup_all_datalog.sh      ← cleanup data script\n│   ├── foundational\u002F               ← ELK 9.3.0, Kafka, Redis, Phoenix (Stage 3.1)\n│   ├── vst\u002F                        ← VST 3.1.0 microservices (Stage 3.4)\n│   ├── agents\u002F                     ← +bp_sop_2d profiles (Stage 2.1)\n│   ├── nim\u002F                        ← per-GPU profiles (Stage 3.3)\n│   ├── monitoring\u002F                 ← NEW: Prometheus\u002FGrafana (Stage 3.2)\n│   ├── ds\u002Fds-sop\u002F                  ← NEW: DS-SOP microservice (Stage 3.6)\n│   └── sop\u002F                        ← NEW: full SOP app layer (Stage 4)\n├── sop-resources\u002F                  ← NEW: resources downloaded in CWD (sample video, configs)\n├── sop-data\u002F                       ← NEW: datalog folders created in CWD (ES data, logs, Kafka, etc.)\n└── video-search-and-summarization\u002F ← upstream (cloned to CWD, read-only, removed after build)\n",[1570],{"type":54,"tag":69,"props":1571,"children":1572},{"__ignoreMap":559},[1573],{"type":60,"value":1568},{"type":54,"tag":537,"props":1575,"children":1576},{},[],{"type":54,"tag":55,"props":1578,"children":1580},{"id":1579},"stage-0-prerequisites-check-auto-install",[1581],{"type":60,"value":191},{"type":54,"tag":63,"props":1583,"children":1584},{},[1585,1587,1592],{"type":60,"value":1586},"Run this ",{"type":54,"tag":78,"props":1588,"children":1589},{},[1590],{"type":60,"value":1591},"first",{"type":60,"value":1593},", before cloning or any build stage. It checks secret key files, GPU drivers, Docker, NVIDIA Container Toolkit, and NGC configuration, and can automatically install or configure missing prerequisites (NVIDIA Driver 580, CUDA Toolkit 13, Docker, Docker Compose, NVIDIA Container Toolkit, NGC CLI, and NGC CLI configuration).",{"type":54,"tag":63,"props":1595,"children":1596},{},[1597],{"type":60,"value":1598},"To run the checks and automatically fix\u002Finstall any missing components:",{"type":54,"tag":554,"props":1600,"children":1602},{"className":556,"code":1601,"language":558,"meta":559,"style":559},"cd \u003Cbp-repo>\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo . --fix\n",[1603],{"type":54,"tag":69,"props":1604,"children":1605},{"__ignoreMap":559},[1606,1637],{"type":54,"tag":565,"props":1607,"children":1608},{"class":567,"line":568},[1609,1615,1621,1626,1632],{"type":54,"tag":565,"props":1610,"children":1612},{"style":1611},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1613],{"type":60,"value":1614},"cd",{"type":54,"tag":565,"props":1616,"children":1618},{"style":1617},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1619],{"type":60,"value":1620}," \u003C",{"type":54,"tag":565,"props":1622,"children":1623},{"style":588},[1624],{"type":60,"value":1625},"bp-rep",{"type":54,"tag":565,"props":1627,"children":1629},{"style":1628},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1630],{"type":60,"value":1631},"o",{"type":54,"tag":565,"props":1633,"children":1634},{"style":1617},[1635],{"type":60,"value":1636},">\n",{"type":54,"tag":565,"props":1638,"children":1639},{"class":567,"line":578},[1640,1644,1648,1652],{"type":54,"tag":565,"props":1641,"children":1642},{"style":582},[1643],{"type":60,"value":585},{"type":54,"tag":565,"props":1645,"children":1646},{"style":588},[1647],{"type":60,"value":591},{"type":54,"tag":565,"props":1649,"children":1650},{"style":588},[1651],{"type":60,"value":596},{"type":54,"tag":565,"props":1653,"children":1654},{"style":588},[1655],{"type":60,"value":601},{"type":54,"tag":63,"props":1657,"children":1658},{},[1659],{"type":60,"value":1660},"To run the checks only, without modifying your system:",{"type":54,"tag":554,"props":1662,"children":1664},{"className":556,"code":1663,"language":558,"meta":559,"style":559},"cd \u003Cbp-repo>\n.\u002Fagentic\u002Fvss-sop-skills\u002Fvss-sop-deploy\u002Fscripts\u002Fpreflight_check.sh --bp-repo .\n",[1665],{"type":54,"tag":69,"props":1666,"children":1667},{"__ignoreMap":559},[1668,1691],{"type":54,"tag":565,"props":1669,"children":1670},{"class":567,"line":568},[1671,1675,1679,1683,1687],{"type":54,"tag":565,"props":1672,"children":1673},{"style":1611},[1674],{"type":60,"value":1614},{"type":54,"tag":565,"props":1676,"children":1677},{"style":1617},[1678],{"type":60,"value":1620},{"type":54,"tag":565,"props":1680,"children":1681},{"style":588},[1682],{"type":60,"value":1625},{"type":54,"tag":565,"props":1684,"children":1685},{"style":1628},[1686],{"type":60,"value":1631},{"type":54,"tag":565,"props":1688,"children":1689},{"style":1617},[1690],{"type":60,"value":1636},{"type":54,"tag":565,"props":1692,"children":1693},{"class":567,"line":578},[1694,1698,1702],{"type":54,"tag":565,"props":1695,"children":1696},{"style":582},[1697],{"type":60,"value":585},{"type":54,"tag":565,"props":1699,"children":1700},{"style":588},[1701],{"type":60,"value":591},{"type":54,"tag":565,"props":1703,"children":1704},{"style":588},[1705],{"type":60,"value":1706}," .\n",{"type":54,"tag":63,"props":1708,"children":1709},{},[1710,1712,1716],{"type":60,"value":1711},"If any manual check fails, refer to the printed advice or the ",{"type":54,"tag":78,"props":1713,"children":1714},{},[1715],{"type":60,"value":410},{"type":60,"value":1717}," Phase 0 references (secret keys, NVIDIA driver, Docker & Toolkit).",{"type":54,"tag":537,"props":1719,"children":1720},{},[],{"type":54,"tag":55,"props":1722,"children":1724},{"id":1723},"stage-01-clone-and-prepare",[1725],{"type":60,"value":1726},"Stage 0.1 — Clone and Prepare",{"type":54,"tag":63,"props":1728,"children":1729},{},[1730,1732,1737,1739,1744],{"type":60,"value":1731},"All output goes into ",{"type":54,"tag":69,"props":1733,"children":1735},{"className":1734},[],[1736],{"type":60,"value":1134},{"type":60,"value":1738},". Upstream ",{"type":54,"tag":69,"props":1740,"children":1742},{"className":1741},[],[1743],{"type":60,"value":1562},{"type":60,"value":1745}," is read-only and is cloned directly into the CWD. All paths are relative to CWD.",{"type":54,"tag":86,"props":1747,"children":1749},{"id":1748},"step-011-clone-upstream-repository",[1750],{"type":60,"value":1751},"Step 0.1.1 — Clone Upstream Repository",{"type":54,"tag":63,"props":1753,"children":1754},{},[1755,1757,1762,1764,1770],{"type":60,"value":1756},"Run ",{"type":54,"tag":69,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":60,"value":208},{"type":60,"value":1763}," to clone the upstream 3.1.0 branch of ",{"type":54,"tag":69,"props":1765,"children":1767},{"className":1766},[],[1768],{"type":60,"value":1769},"video-search-and-summarization",{"type":60,"value":1771}," (which serves as a read-only source for the build process).",{"type":54,"tag":537,"props":1773,"children":1774},{},[],{"type":54,"tag":55,"props":1776,"children":1778},{"id":1777},"stage-1-reference-target-file-mapping",[1779],{"type":60,"value":1780},"Stage 1 — Reference → Target File Mapping",{"type":54,"tag":63,"props":1782,"children":1783},{},[1784,1786,1791,1792,1798],{"type":60,"value":1785},"Copy these files ",{"type":54,"tag":78,"props":1787,"children":1788},{},[1789],{"type":60,"value":1790},"verbatim",{"type":60,"value":1128},{"type":54,"tag":69,"props":1793,"children":1795},{"className":1794},[],[1796],{"type":60,"value":1797},"references\u002F",{"type":60,"value":1799}," (do NOT regenerate — they contain tuned defaults):",{"type":54,"tag":368,"props":1801,"children":1802},{},[1803,1819],{"type":54,"tag":372,"props":1804,"children":1805},{},[1806],{"type":54,"tag":376,"props":1807,"children":1808},{},[1809,1814],{"type":54,"tag":380,"props":1810,"children":1811},{},[1812],{"type":60,"value":1813},"Reference file",{"type":54,"tag":380,"props":1815,"children":1816},{},[1817],{"type":60,"value":1818},"Copy to",{"type":54,"tag":391,"props":1820,"children":1821},{},[1822,1843,1864,1885,1906,1927],{"type":54,"tag":376,"props":1823,"children":1824},{},[1825,1834],{"type":54,"tag":398,"props":1826,"children":1827},{},[1828],{"type":54,"tag":69,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":60,"value":1833},"references\u002Fdeployments\u002Fcompose.yml",{"type":54,"tag":398,"props":1835,"children":1836},{},[1837],{"type":54,"tag":69,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":60,"value":1842},"deployments\u002Fcompose.yml",{"type":54,"tag":376,"props":1844,"children":1845},{},[1846,1855],{"type":54,"tag":398,"props":1847,"children":1848},{},[1849],{"type":54,"tag":69,"props":1850,"children":1852},{"className":1851},[],[1853],{"type":60,"value":1854},"references\u002Fdeployments\u002Fcleanup_all_datalog.sh",{"type":54,"tag":398,"props":1856,"children":1857},{},[1858],{"type":54,"tag":69,"props":1859,"children":1861},{"className":1860},[],[1862],{"type":60,"value":1863},"deployments\u002Fcleanup_all_datalog.sh",{"type":54,"tag":376,"props":1865,"children":1866},{},[1867,1876],{"type":54,"tag":398,"props":1868,"children":1869},{},[1870],{"type":54,"tag":69,"props":1871,"children":1873},{"className":1872},[],[1874],{"type":60,"value":1875},"references\u002Fdeployments\u002Fds\u002Fcompose.yml",{"type":54,"tag":398,"props":1877,"children":1878},{},[1879],{"type":54,"tag":69,"props":1880,"children":1882},{"className":1881},[],[1883],{"type":60,"value":1884},"deployments\u002Fds\u002Fcompose.yml",{"type":54,"tag":376,"props":1886,"children":1887},{},[1888,1897],{"type":54,"tag":398,"props":1889,"children":1890},{},[1891],{"type":54,"tag":69,"props":1892,"children":1894},{"className":1893},[],[1895],{"type":60,"value":1896},"references\u002Fdeployments\u002Fds\u002Fds-sop\u002F.env",{"type":54,"tag":398,"props":1898,"children":1899},{},[1900],{"type":54,"tag":69,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":60,"value":1905},"deployments\u002Fds\u002Fds-sop\u002F.env",{"type":54,"tag":376,"props":1907,"children":1908},{},[1909,1918],{"type":54,"tag":398,"props":1910,"children":1911},{},[1912],{"type":54,"tag":69,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":60,"value":1917},"references\u002Fdeployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml",{"type":54,"tag":398,"props":1919,"children":1920},{},[1921],{"type":54,"tag":69,"props":1922,"children":1924},{"className":1923},[],[1925],{"type":60,"value":1926},"deployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml",{"type":54,"tag":376,"props":1928,"children":1929},{},[1930,1939],{"type":54,"tag":398,"props":1931,"children":1932},{},[1933],{"type":54,"tag":69,"props":1934,"children":1936},{"className":1935},[],[1937],{"type":60,"value":1938},"references\u002Fdeployments\u002Fsop\u002F.env",{"type":54,"tag":398,"props":1940,"children":1941},{},[1942],{"type":54,"tag":69,"props":1943,"children":1945},{"className":1944},[],[1946],{"type":60,"value":1947},"deployments\u002Fsop\u002F.env",{"type":54,"tag":63,"props":1949,"children":1950},{},[1951,1953],{"type":60,"value":1952},"These references are all copied to their correct locations by running the unified copy script:\n",{"type":54,"tag":69,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":60,"value":223},{"type":54,"tag":537,"props":1959,"children":1960},{},[],{"type":54,"tag":55,"props":1962,"children":1964},{"id":1963},"stage-2-convert-vss-agent-vss-sop-agent",[1965],{"type":60,"value":1966},"Stage 2 — Convert VSS Agent → VSS SOP Agent",{"type":54,"tag":1968,"props":1969,"children":1970},"blockquote",{},[1971],{"type":54,"tag":63,"props":1972,"children":1973},{},[1974,1976,1984,1986],{"type":60,"value":1975},"Full details (YAML diffs, profiles, depends_on, agent-eval volume removal): ",{"type":54,"tag":186,"props":1977,"children":1978},{"href":973},[1979],{"type":54,"tag":69,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":60,"value":973},{"type":60,"value":1985},"\nFull details (config.yml, va_mcp_server_config.yml, patches, templates): ",{"type":54,"tag":186,"props":1987,"children":1988},{"href":1053},[1989],{"type":54,"tag":69,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":60,"value":1053},{"type":54,"tag":63,"props":1995,"children":1996},{},[1997,1999,2004],{"type":60,"value":1998},"Transforms the upstream VSS Agent into the VSS SOP Agent (SOP compliance monitoring). ",{"type":54,"tag":78,"props":2000,"children":2001},{},[2002],{"type":60,"value":2003},"No image rebuilds",{"type":60,"value":2005}," — done via configs, bind-mounts, env vars.",{"type":54,"tag":368,"props":2007,"children":2008},{},[2009,2030],{"type":54,"tag":372,"props":2010,"children":2011},{},[2012],{"type":54,"tag":376,"props":2013,"children":2014},{},[2015,2020,2025],{"type":54,"tag":380,"props":2016,"children":2017},{},[2018],{"type":60,"value":2019},"#",{"type":54,"tag":380,"props":2021,"children":2022},{},[2023],{"type":60,"value":2024},"Step",{"type":54,"tag":380,"props":2026,"children":2027},{},[2028],{"type":60,"value":2029},"Action",{"type":54,"tag":391,"props":2031,"children":2032},{},[2033,2096,2129,2153,2175],{"type":54,"tag":376,"props":2034,"children":2035},{},[2036,2041,2052],{"type":54,"tag":398,"props":2037,"children":2038},{},[2039],{"type":60,"value":2040},"2.1",{"type":54,"tag":398,"props":2042,"children":2043},{},[2044,2045,2050],{"type":60,"value":855},{"type":54,"tag":69,"props":2046,"children":2048},{"className":2047},[],[2049],{"type":60,"value":861},{"type":60,"value":2051}," profile + patch volumes",{"type":54,"tag":398,"props":2053,"children":2054},{},[2055,2057,2062,2063,2068,2069,2074,2076,2081,2083,2089,2090],{"type":60,"value":2056},"Add profile to ",{"type":54,"tag":69,"props":2058,"children":2060},{"className":2059},[],[2061],{"type":60,"value":965},{"type":60,"value":801},{"type":54,"tag":69,"props":2064,"children":2066},{"className":2065},[],[2067],{"type":60,"value":951},{"type":60,"value":801},{"type":54,"tag":69,"props":2070,"children":2072},{"className":2071},[],[2073],{"type":60,"value":958},{"type":60,"value":2075},", all foundational services. Bind-mount SOP patches into ",{"type":54,"tag":69,"props":2077,"children":2079},{"className":2078},[],[2080],{"type":60,"value":951},{"type":60,"value":2082},". Comment out ",{"type":54,"tag":69,"props":2084,"children":2086},{"className":2085},[],[2087],{"type":60,"value":2088},"ai-agents",{"type":60,"value":1347},{"type":54,"tag":69,"props":2091,"children":2093},{"className":2092},[],[2094],{"type":60,"value":2095},"agents\u002Fcompose.yml",{"type":54,"tag":376,"props":2097,"children":2098},{},[2099,2104,2109],{"type":54,"tag":398,"props":2100,"children":2101},{},[2102],{"type":60,"value":2103},"2.2",{"type":54,"tag":398,"props":2105,"children":2106},{},[2107],{"type":60,"value":2108},"Configure VSS Agent for SOP",{"type":54,"tag":398,"props":2110,"children":2111},{},[2112,2114,2119,2121,2127],{"type":60,"value":2113},"Create ",{"type":54,"tag":69,"props":2115,"children":2117},{"className":2116},[],[2118],{"type":60,"value":1315},{"type":60,"value":2120}," (workflow, SOP tools, prompt) and ",{"type":54,"tag":69,"props":2122,"children":2124},{"className":2123},[],[2125],{"type":60,"value":2126},"va_mcp_server_config.yml",{"type":60,"value":2128}," (SOP tools list)",{"type":54,"tag":376,"props":2130,"children":2131},{},[2132,2137,2142],{"type":54,"tag":398,"props":2133,"children":2134},{},[2135],{"type":60,"value":2136},"2.3",{"type":54,"tag":398,"props":2138,"children":2139},{},[2140],{"type":60,"value":2141},"Create Python patches",{"type":54,"tag":398,"props":2143,"children":2144},{},[2145,2151],{"type":54,"tag":69,"props":2146,"children":2148},{"className":2147},[],[2149],{"type":60,"value":2150},"sop\u002Fvss-agent\u002Fpatches\u002F{es_client.py, tools.py, utils.py}",{"type":60,"value":2152}," — overlay video-analytics module",{"type":54,"tag":376,"props":2154,"children":2155},{},[2156,2161,2166],{"type":54,"tag":398,"props":2157,"children":2158},{},[2159],{"type":60,"value":2160},"2.4",{"type":54,"tag":398,"props":2162,"children":2163},{},[2164],{"type":60,"value":2165},"Create report templates",{"type":54,"tag":398,"props":2167,"children":2168},{},[2169],{"type":54,"tag":69,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":60,"value":2174},"sop\u002Fvss-agent\u002Ftemplates\u002F{sop_compliance_report_template.md}",{"type":54,"tag":376,"props":2176,"children":2177},{},[2178,2183,2195],{"type":54,"tag":398,"props":2179,"children":2180},{},[2181],{"type":60,"value":2182},"2.5",{"type":54,"tag":398,"props":2184,"children":2185},{},[2186,2188,2193],{"type":60,"value":2187},"Set agent ",{"type":54,"tag":69,"props":2189,"children":2191},{"className":2190},[],[2192],{"type":60,"value":1014},{"type":60,"value":2194}," vars",{"type":54,"tag":398,"props":2196,"children":2197},{},[2198,2204,2205,2211,2212,2218,2219,2225,2226,2232,2233],{"type":54,"tag":69,"props":2199,"children":2201},{"className":2200},[],[2202],{"type":60,"value":2203},"VSS_AGENT_CONFIG_FILE",{"type":60,"value":801},{"type":54,"tag":69,"props":2206,"children":2208},{"className":2207},[],[2209],{"type":60,"value":2210},"VSS_VA_MCP_CONFIG_FILE",{"type":60,"value":801},{"type":54,"tag":69,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":60,"value":2217},"VSS_AGENT_TEMPLATE_*",{"type":60,"value":801},{"type":54,"tag":69,"props":2220,"children":2222},{"className":2221},[],[2223],{"type":60,"value":2224},"VLM_MODE=local",{"type":60,"value":801},{"type":54,"tag":69,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":60,"value":2231},"VLM_BASE_URL=http:\u002F\u002Flocalhost:8300",{"type":60,"value":801},{"type":54,"tag":69,"props":2234,"children":2236},{"className":2235},[],[2237],{"type":60,"value":2238},"VLM_NAME=ds_sop_model",{"type":54,"tag":547,"props":2240,"children":2242},{"id":2241},"key-sop-specific-tools-configured-via-va_mcp_server_configyml",[2243,2245,2250],{"type":60,"value":2244},"Key SOP-specific tools (configured via ",{"type":54,"tag":69,"props":2246,"children":2248},{"className":2247},[],[2249],{"type":60,"value":2126},{"type":60,"value":193},{"type":54,"tag":103,"props":2252,"children":2253},{},[2254,2265,2276],{"type":54,"tag":107,"props":2255,"children":2256},{},[2257,2263],{"type":54,"tag":69,"props":2258,"children":2260},{"className":2259},[],[2261],{"type":60,"value":2262},"get_sop_status",{"type":60,"value":2264}," — current compliance status, latest actions, cycle info",{"type":54,"tag":107,"props":2266,"children":2267},{},[2268,2274],{"type":54,"tag":69,"props":2269,"children":2271},{"className":2270},[],[2272],{"type":60,"value":2273},"get_sop_report",{"type":60,"value":2275}," — full compliance report with violations, cycles, statistics",{"type":54,"tag":107,"props":2277,"children":2278},{},[2279,2285,2287,2293],{"type":54,"tag":69,"props":2280,"children":2282},{"className":2281},[],[2283],{"type":60,"value":2284},"get_sop_as_incidents",{"type":60,"value":2286}," \u002F ",{"type":54,"tag":69,"props":2288,"children":2290},{"className":2289},[],[2291],{"type":60,"value":2292},"get_sop_as_incident",{"type":60,"value":2294}," — SOP events as incidents",{"type":54,"tag":547,"props":2296,"children":2298},{"id":2297},"patch-mount-target-verify-python-version-matches-the-vss-agent-image",[2299],{"type":60,"value":2300},"Patch mount target (verify Python version matches the VSS Agent image)",{"type":54,"tag":554,"props":2302,"children":2305},{"className":2303,"code":2304,"language":60},[1158],"\u002Fvss-agent\u002F.venv\u002Flib\u002Fpython3.13\u002Fsite-packages\u002Fvss_agents\u002Fvideo_analytics\u002F{tools,utils,es_client}.py\n",[2306],{"type":54,"tag":69,"props":2307,"children":2308},{"__ignoreMap":559},[2309],{"type":60,"value":2304},{"type":54,"tag":537,"props":2311,"children":2312},{},[],{"type":54,"tag":55,"props":2314,"children":2316},{"id":2315},"stage-3-build-foundational-monitoring-nim-vios-ds-sop-layer",[2317],{"type":60,"value":2318},"Stage 3 — Build Foundational, Monitoring, NIM, VIOS & DS-SOP Layer",{"type":54,"tag":368,"props":2320,"children":2321},{},[2322,2340],{"type":54,"tag":372,"props":2323,"children":2324},{},[2325],{"type":54,"tag":376,"props":2326,"children":2327},{},[2328,2332,2336],{"type":54,"tag":380,"props":2329,"children":2330},{},[2331],{"type":60,"value":2019},{"type":54,"tag":380,"props":2333,"children":2334},{},[2335],{"type":60,"value":2024},{"type":54,"tag":380,"props":2337,"children":2338},{},[2339],{"type":60,"value":777},{"type":54,"tag":391,"props":2341,"children":2342},{},[2343,2365,2396,2418,2442,2479,2510,2528],{"type":54,"tag":376,"props":2344,"children":2345},{},[2346,2351,2356],{"type":54,"tag":398,"props":2347,"children":2348},{},[2349],{"type":60,"value":2350},"3.1a",{"type":54,"tag":398,"props":2352,"children":2353},{},[2354],{"type":60,"value":2355},"Copy foundational from upstream to deployments",{"type":54,"tag":398,"props":2357,"children":2358},{},[2359],{"type":54,"tag":69,"props":2360,"children":2362},{"className":2361},[],[2363],{"type":60,"value":2364},"scripts\u002Fcopy_foundational_from_upstream.sh",{"type":54,"tag":376,"props":2366,"children":2367},{},[2368,2373,2378],{"type":54,"tag":398,"props":2369,"children":2370},{},[2371],{"type":60,"value":2372},"3.1b",{"type":54,"tag":398,"props":2374,"children":2375},{},[2376],{"type":60,"value":2377},"Modify foundational for SOP: stock ES, Kafka topics, vlm-captions, init scripts",{"type":54,"tag":398,"props":2379,"children":2380},{},[2381,2387,2388],{"type":54,"tag":69,"props":2382,"children":2384},{"className":2383},[],[2385],{"type":60,"value":2386},"scripts\u002Fmodify_foundational_for_sop.sh",{"type":60,"value":905},{"type":54,"tag":186,"props":2389,"children":2390},{"href":869},[2391],{"type":54,"tag":69,"props":2392,"children":2394},{"className":2393},[],[2395],{"type":60,"value":876},{"type":54,"tag":376,"props":2397,"children":2398},{},[2399,2404,2409],{"type":54,"tag":398,"props":2400,"children":2401},{},[2402],{"type":60,"value":2403},"3.2",{"type":54,"tag":398,"props":2405,"children":2406},{},[2407],{"type":60,"value":2408},"Create monitoring stack (Prometheus, Grafana, DCGM, node-exporter, cAdvisor)",{"type":54,"tag":398,"props":2410,"children":2411},{},[2412],{"type":54,"tag":2413,"props":2414,"children":2415},"em",{},[2416],{"type":60,"value":2417},"(not yet documented)",{"type":54,"tag":376,"props":2419,"children":2420},{},[2421,2426,2431],{"type":54,"tag":398,"props":2422,"children":2423},{},[2424],{"type":60,"value":2425},"3.3",{"type":54,"tag":398,"props":2427,"children":2428},{},[2429],{"type":60,"value":2430},"Convert NIM model services (per-GPU profiles, rename envs, tune params)",{"type":54,"tag":398,"props":2432,"children":2433},{},[2434],{"type":54,"tag":186,"props":2435,"children":2436},{"href":1079},[2437],{"type":54,"tag":69,"props":2438,"children":2440},{"className":2439},[],[2441],{"type":60,"value":1086},{"type":54,"tag":376,"props":2443,"children":2444},{},[2445,2450,2470],{"type":54,"tag":398,"props":2446,"children":2447},{},[2448],{"type":60,"value":2449},"3.4a",{"type":54,"tag":398,"props":2451,"children":2452},{},[2453,2455,2461,2463,2469],{"type":60,"value":2454},"Copy VIOS from upstream to deployments (restructure ",{"type":54,"tag":69,"props":2456,"children":2458},{"className":2457},[],[2459],{"type":60,"value":2460},"developer\u002Fvst\u002F",{"type":60,"value":2462}," → ",{"type":54,"tag":69,"props":2464,"children":2466},{"className":2465},[],[2467],{"type":60,"value":2468},"sop\u002Fvst\u002F",{"type":60,"value":193},{"type":54,"tag":398,"props":2471,"children":2472},{},[2473],{"type":54,"tag":69,"props":2474,"children":2476},{"className":2475},[],[2477],{"type":60,"value":2478},"scripts\u002Fcopy_vios_from_upstream.sh",{"type":54,"tag":376,"props":2480,"children":2481},{},[2482,2487,2492],{"type":54,"tag":398,"props":2483,"children":2484},{},[2485],{"type":60,"value":2486},"3.4b",{"type":54,"tag":398,"props":2488,"children":2489},{},[2490],{"type":60,"value":2491},"Modify VIOS for SOP: split monolith → 5 microservices + MinIO",{"type":54,"tag":398,"props":2493,"children":2494},{},[2495,2501,2502],{"type":54,"tag":69,"props":2496,"children":2498},{"className":2497},[],[2499],{"type":60,"value":2500},"scripts\u002Fmodify_vios_for_sop.sh",{"type":60,"value":905},{"type":54,"tag":186,"props":2503,"children":2504},{"href":919},[2505],{"type":54,"tag":69,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":60,"value":926},{"type":54,"tag":376,"props":2511,"children":2512},{},[2513,2518,2523],{"type":54,"tag":398,"props":2514,"children":2515},{},[2516],{"type":60,"value":2517},"3.5",{"type":54,"tag":398,"props":2519,"children":2520},{},[2521],{"type":60,"value":2522},"Wire SOP compose",{"type":54,"tag":398,"props":2524,"children":2525},{},[2526],{"type":60,"value":2527},"See below",{"type":54,"tag":376,"props":2529,"children":2530},{},[2531,2536,2541],{"type":54,"tag":398,"props":2532,"children":2533},{},[2534],{"type":60,"value":2535},"3.6",{"type":54,"tag":398,"props":2537,"children":2538},{},[2539],{"type":60,"value":2540},"Configure DS-SOP",{"type":54,"tag":398,"props":2542,"children":2543},{},[2544],{"type":60,"value":2545},"Copy reference files verbatim (see below)",{"type":54,"tag":1968,"props":2547,"children":2548},{},[2549],{"type":54,"tag":63,"props":2550,"children":2551},{},[2552,2554,2560,2562,2570],{"type":60,"value":2553},"DS-SOP source generation (ds-sop-skills, RTSP output native per § 18) + image build (via ",{"type":54,"tag":69,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":60,"value":2559},"build_ds_sop.sh",{"type":60,"value":2561},", no patch): see the Generate + Build section below + ",{"type":54,"tag":186,"props":2563,"children":2564},{"href":1020},[2565],{"type":54,"tag":69,"props":2566,"children":2568},{"className":2567},[],[2569],{"type":60,"value":1027},{"type":60,"value":2571},".",{"type":54,"tag":86,"props":2573,"children":2575},{"id":2574},"step-35-wire-the-sop-compose",[2576],{"type":60,"value":2577},"Step 3.5 — Wire the SOP Compose",{"type":54,"tag":63,"props":2579,"children":2580},{},[2581,2583,2589],{"type":60,"value":2582},"The compose files are wired here; both are kept in ",{"type":54,"tag":69,"props":2584,"children":2586},{"className":2585},[],[2587],{"type":60,"value":2588},"configs\u002F",{"type":60,"value":2590},":",{"type":54,"tag":103,"props":2592,"children":2593},{},[2594],{"type":54,"tag":107,"props":2595,"children":2596},{},[2597,2607,2609,2614,2616,2622],{"type":54,"tag":78,"props":2598,"children":2599},{},[2600,2605],{"type":54,"tag":69,"props":2601,"children":2603},{"className":2602},[],[2604],{"type":60,"value":1884},{"type":60,"value":2606}," (REPLACES upstream content)",{"type":60,"value":2608}," — see ",{"type":54,"tag":69,"props":2610,"children":2612},{"className":2611},[],[2613],{"type":60,"value":1875},{"type":60,"value":2615},". Single include: ",{"type":54,"tag":69,"props":2617,"children":2619},{"className":2618},[],[2620],{"type":60,"value":2621},"ds-sop\u002Fds-sop-docker-compose.yml",{"type":60,"value":2571},{"type":54,"tag":86,"props":2624,"children":2626},{"id":2625},"step-36-configure-the-ds-sop-microservice",[2627],{"type":60,"value":2628},"Step 3.6 — Configure the DS-SOP Microservice",{"type":54,"tag":63,"props":2630,"children":2631},{},[2632,2634,2639],{"type":60,"value":2633},"Copy both files verbatim from references — they encode tuned defaults, exact volume mounts, and env-var pass-through. This is done by the copy references script (",{"type":54,"tag":69,"props":2635,"children":2637},{"className":2636},[],[2638],{"type":60,"value":223},{"type":60,"value":2640},"), which copies:",{"type":54,"tag":103,"props":2642,"children":2643},{},[2644,2659],{"type":54,"tag":107,"props":2645,"children":2646},{},[2647,2653,2654],{"type":54,"tag":69,"props":2648,"children":2650},{"className":2649},[],[2651],{"type":60,"value":2652},"agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments\u002Fds\u002Fds-sop\u002F.env",{"type":60,"value":2462},{"type":54,"tag":69,"props":2655,"children":2657},{"className":2656},[],[2658],{"type":60,"value":1905},{"type":54,"tag":107,"props":2660,"children":2661},{},[2662,2668,2669],{"type":54,"tag":69,"props":2663,"children":2665},{"className":2664},[],[2666],{"type":60,"value":2667},"agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments\u002Fds\u002Fds-sop\u002Fds-sop-docker-compose.yml",{"type":60,"value":2462},{"type":54,"tag":69,"props":2670,"children":2672},{"className":2671},[],[2673],{"type":60,"value":1926},{"type":54,"tag":63,"props":2675,"children":2676},{},[2677],{"type":60,"value":2678},"Critical defaults to be aware of:",{"type":54,"tag":368,"props":2680,"children":2681},{},[2682,2703],{"type":54,"tag":372,"props":2683,"children":2684},{},[2685],{"type":54,"tag":376,"props":2686,"children":2687},{},[2688,2693,2698],{"type":54,"tag":380,"props":2689,"children":2690},{},[2691],{"type":60,"value":2692},"Variable",{"type":54,"tag":380,"props":2694,"children":2695},{},[2696],{"type":60,"value":2697},"Default",{"type":54,"tag":380,"props":2699,"children":2700},{},[2701],{"type":60,"value":2702},"Note",{"type":54,"tag":391,"props":2704,"children":2705},{},[2706,2735,2760,2798,2824,2856,2897],{"type":54,"tag":376,"props":2707,"children":2708},{},[2709,2718,2723],{"type":54,"tag":398,"props":2710,"children":2711},{},[2712],{"type":54,"tag":69,"props":2713,"children":2715},{"className":2714},[],[2716],{"type":60,"value":2717},"API_SERVER_PORT",{"type":54,"tag":398,"props":2719,"children":2720},{},[2721],{"type":60,"value":2722},"8300",{"type":54,"tag":398,"props":2724,"children":2725},{},[2726,2728,2733],{"type":60,"value":2727},"DS-SOP API server (also ",{"type":54,"tag":69,"props":2729,"children":2731},{"className":2730},[],[2732],{"type":60,"value":1377},{"type":60,"value":2734}," target)",{"type":54,"tag":376,"props":2736,"children":2737},{},[2738,2747,2755],{"type":54,"tag":398,"props":2739,"children":2740},{},[2741],{"type":54,"tag":69,"props":2742,"children":2744},{"className":2743},[],[2745],{"type":60,"value":2746},"DS_SOP_KAFKA_TOPIC",{"type":54,"tag":398,"props":2748,"children":2749},{},[2750],{"type":54,"tag":69,"props":2751,"children":2753},{"className":2752},[],[2754],{"type":60,"value":1190},{"type":54,"tag":398,"props":2756,"children":2757},{},[2758],{"type":60,"value":2759},"Must match foundational Kafka topic",{"type":54,"tag":376,"props":2761,"children":2762},{},[2763,2772,2781],{"type":54,"tag":398,"props":2764,"children":2765},{},[2766],{"type":54,"tag":69,"props":2767,"children":2769},{"className":2768},[],[2770],{"type":60,"value":2771},"SOP_MESSAGING_SCHEMA",{"type":54,"tag":398,"props":2773,"children":2774},{},[2775],{"type":54,"tag":69,"props":2776,"children":2778},{"className":2777},[],[2779],{"type":60,"value":2780},"JSON",{"type":54,"tag":398,"props":2782,"children":2783},{},[2784,2789,2791,2797],{"type":54,"tag":78,"props":2785,"children":2786},{},[2787],{"type":60,"value":2788},"Required for ELK pipeline",{"type":60,"value":2790}," (not ",{"type":54,"tag":69,"props":2792,"children":2794},{"className":2793},[],[2795],{"type":60,"value":2796},"NvProtoSchema",{"type":60,"value":193},{"type":54,"tag":376,"props":2799,"children":2800},{},[2801,2810,2819],{"type":54,"tag":398,"props":2802,"children":2803},{},[2804],{"type":54,"tag":69,"props":2805,"children":2807},{"className":2806},[],[2808],{"type":60,"value":2809},"ENABLE_MESSAGING",{"type":54,"tag":398,"props":2811,"children":2812},{},[2813],{"type":54,"tag":69,"props":2814,"children":2816},{"className":2815},[],[2817],{"type":60,"value":2818},"1",{"type":54,"tag":398,"props":2820,"children":2821},{},[2822],{"type":60,"value":2823},"Enable chunk → Kafka publication",{"type":54,"tag":376,"props":2825,"children":2826},{},[2827,2836,2845],{"type":54,"tag":398,"props":2828,"children":2829},{},[2830],{"type":54,"tag":69,"props":2831,"children":2833},{"className":2832},[],[2834],{"type":60,"value":2835},"MODEL_ROOT_DIR",{"type":54,"tag":398,"props":2837,"children":2838},{},[2839],{"type":54,"tag":69,"props":2840,"children":2842},{"className":2841},[],[2843],{"type":60,"value":2844},"\u002Fopt\u002Fmodels",{"type":54,"tag":398,"props":2846,"children":2847},{},[2848,2850],{"type":60,"value":2849},"Mounts ",{"type":54,"tag":69,"props":2851,"children":2853},{"className":2852},[],[2854],{"type":60,"value":2855},"${MODEL_ROOT_DIR}:${MODEL_ROOT_DIR}",{"type":54,"tag":376,"props":2857,"children":2858},{},[2859,2875,2885],{"type":54,"tag":398,"props":2860,"children":2861},{},[2862,2868,2869],{"type":54,"tag":69,"props":2863,"children":2865},{"className":2864},[],[2866],{"type":60,"value":2867},"VLLM_MODEL_PATH",{"type":60,"value":2286},{"type":54,"tag":69,"props":2870,"children":2872},{"className":2871},[],[2873],{"type":60,"value":2874},"DDM_MODEL_PATH",{"type":54,"tag":398,"props":2876,"children":2877},{},[2878,2880],{"type":60,"value":2879},"per ",{"type":54,"tag":69,"props":2881,"children":2883},{"className":2882},[],[2884],{"type":60,"value":1014},{"type":54,"tag":398,"props":2886,"children":2887},{},[2888,2890,2895],{"type":60,"value":2889},"Models verified under ",{"type":54,"tag":69,"props":2891,"children":2893},{"className":2892},[],[2894],{"type":60,"value":2844},{"type":60,"value":2896}," (vss-sop-deploy Phase 1)",{"type":54,"tag":376,"props":2898,"children":2899},{},[2900,2909,2918],{"type":54,"tag":398,"props":2901,"children":2902},{},[2903],{"type":54,"tag":69,"props":2904,"children":2906},{"className":2905},[],[2907],{"type":60,"value":2908},"SW_ENCODER",{"type":54,"tag":398,"props":2910,"children":2911},{},[2912],{"type":54,"tag":69,"props":2913,"children":2915},{"className":2914},[],[2916],{"type":60,"value":2917},"true",{"type":54,"tag":398,"props":2919,"children":2920},{},[2921,2923,2929,2931,2937,2939],{"type":60,"value":2922},"CPU ",{"type":54,"tag":69,"props":2924,"children":2926},{"className":2925},[],[2927],{"type":60,"value":2928},"x264enc",{"type":60,"value":2930},"; set ",{"type":54,"tag":69,"props":2932,"children":2934},{"className":2933},[],[2935],{"type":60,"value":2936},"false",{"type":60,"value":2938}," for GPU ",{"type":54,"tag":69,"props":2940,"children":2942},{"className":2941},[],[2943],{"type":60,"value":2944},"nvv4l2h264enc",{"type":54,"tag":63,"props":2946,"children":2947},{},[2948,2950,2955,2957,2962,2964,2969,2970,2976,2977,2983,2985,2991],{"type":60,"value":2949},"Container properties: image ",{"type":54,"tag":69,"props":2951,"children":2953},{"className":2952},[],[2954],{"type":60,"value":1409},{"type":60,"value":2956},", profile ",{"type":54,"tag":69,"props":2958,"children":2960},{"className":2959},[],[2961],{"type":60,"value":861},{"type":60,"value":2963},", runtime ",{"type":54,"tag":69,"props":2965,"children":2967},{"className":2966},[],[2968],{"type":60,"value":8},{"type":60,"value":801},{"type":54,"tag":69,"props":2971,"children":2973},{"className":2972},[],[2974],{"type":60,"value":2975},"shm_size: 16gb",{"type":60,"value":801},{"type":54,"tag":69,"props":2978,"children":2980},{"className":2979},[],[2981],{"type":60,"value":2982},"network_mode: host",{"type":60,"value":2984},", depends on ",{"type":54,"tag":69,"props":2986,"children":2988},{"className":2987},[],[2989],{"type":60,"value":2990},"kafka",{"type":60,"value":2571},{"type":54,"tag":537,"props":2993,"children":2994},{},[],{"type":54,"tag":86,"props":2996,"children":2998},{"id":2997},"generate-build-ds-sop-skills-source-ds-sop",[2999],{"type":60,"value":3000},"Generate + Build: ds-sop-skills source → DS-SOP",{"type":54,"tag":1968,"props":3002,"children":3003},{},[3004],{"type":54,"tag":63,"props":3005,"children":3006},{},[3007,3009,3017,3019],{"type":60,"value":3008},"Full breakdown (build flow, 8 post-build checks, auto-fix recipes; RTSP is an opt-in ds-sop-skills feature, requested at generation — § 18): ",{"type":54,"tag":186,"props":3010,"children":3011},{"href":1020},[3012],{"type":54,"tag":69,"props":3013,"children":3015},{"className":3014},[],[3016],{"type":60,"value":1020},{"type":60,"value":3018},"\nBuild script: ",{"type":54,"tag":186,"props":3020,"children":3022},{"href":3021},"scripts\u002Fbuild_ds_sop.sh",[3023],{"type":54,"tag":69,"props":3024,"children":3026},{"className":3025},[],[3027],{"type":60,"value":3021},{"type":54,"tag":63,"props":3029,"children":3030},{},[3031,3033,3038,3040,3045,3047,3053,3055,3060,3062,3067],{"type":60,"value":3032},"The DS-SOP source is ",{"type":54,"tag":78,"props":3034,"children":3035},{},[3036],{"type":60,"value":3037},"not cloned",{"type":60,"value":3039}," from the public NVIDIA SOP Inference Blueprint. It is ",{"type":54,"tag":78,"props":3041,"children":3042},{},[3043],{"type":60,"value":3044},"generated by the ds-sop-skills skill",{"type":60,"value":3046}," into ",{"type":54,"tag":69,"props":3048,"children":3050},{"className":3049},[],[3051],{"type":60,"value":3052},"ds_sop_microservice",{"type":60,"value":3054}," and built as-is into the VSS blueprint's ",{"type":54,"tag":69,"props":3056,"children":3058},{"className":3057},[],[3059],{"type":60,"value":1409},{"type":60,"value":3061}," image. RTSP streaming output is an ",{"type":54,"tag":78,"props":3063,"children":3064},{},[3065],{"type":60,"value":3066},"optional, opt-in",{"type":60,"value":3068}," ds-sop-skills feature (§ 18) that the VSS-SOP blueprint requires, so the generation prompt must request it explicitly.",{"type":54,"tag":63,"props":3070,"children":3071},{},[3072,3077,3079,3084,3086,3091,3093,3098],{"type":54,"tag":78,"props":3073,"children":3074},{},[3075],{"type":60,"value":3076},"Step A — Generate the source",{"type":60,"value":3078}," (if ",{"type":54,"tag":69,"props":3080,"children":3082},{"className":3081},[],[3083],{"type":60,"value":3052},{"type":60,"value":3085}," does not already exist) by following the ds-sop-skills prompt — note the ",{"type":54,"tag":78,"props":3087,"children":3088},{},[3089],{"type":60,"value":3090},"required",{"type":60,"value":3092}," ",{"type":54,"tag":2413,"props":3094,"children":3095},{},[3096],{"type":60,"value":3097},"\"with rtsp streaming output feature\"",{"type":60,"value":3099}," phrase:",{"type":54,"tag":554,"props":3101,"children":3104},{"className":3102,"code":3103,"language":60},[1158],"Please follow instructions in ..\u002Fds-sop-skills\u002Fexample_sop_prompt.md to generate a SOP microservice with rtsp streaming output feature in folder ..\u002Fds_sop_microservice\n",[3105],{"type":54,"tag":69,"props":3106,"children":3107},{"__ignoreMap":559},[3108],{"type":60,"value":3103},{"type":54,"tag":63,"props":3110,"children":3111},{},[3112,3114,3119],{"type":60,"value":3113},"This emits the standard DeepStream SOP microservice (DeepStream GEBD pipeline, VLM classification, SOP checker, Kafka\u002FJSON messaging, Basler camera support) ",{"type":54,"tag":78,"props":3115,"children":3116},{},[3117],{"type":60,"value":3118},"with RTSP streaming output built in",{"type":60,"value":3120}," (ds-sop-skills § 18). Omitting the RTSP phrase produces a source without RTSP and the RTSP post-build checks will fail.",{"type":54,"tag":63,"props":3122,"children":3123},{},[3124,3129,3131,3136,3138,3144,3146,3151,3153,3159,3161,3166,3168],{"type":54,"tag":78,"props":3125,"children":3126},{},[3127],{"type":60,"value":3128},"Step B — Build:",{"type":60,"value":3130}," Run ",{"type":54,"tag":69,"props":3132,"children":3134},{"className":3133},[],[3135],{"type":60,"value":345},{"type":60,"value":3137}," (",{"type":54,"tag":69,"props":3139,"children":3141},{"className":3140},[],[3142],{"type":60,"value":3143},"\u003Cds_sop_microservice_dir>",{"type":60,"value":3145}," defaults to ",{"type":54,"tag":69,"props":3147,"children":3149},{"className":3148},[],[3150],{"type":60,"value":329},{"type":60,"value":3152},"). It validates the generated layout, ensures the ",{"type":54,"tag":69,"props":3154,"children":3156},{"className":3155},[],[3157],{"type":60,"value":3158},"binaries\u002F",{"type":60,"value":3160}," bind-mount target exists, then builds ",{"type":54,"tag":69,"props":3162,"children":3164},{"className":3163},[],[3165],{"type":60,"value":1409},{"type":60,"value":3167},". ",{"type":54,"tag":78,"props":3169,"children":3170},{},[3171],{"type":60,"value":3172},"No source modification.",{"type":54,"tag":63,"props":3174,"children":3175},{},[3176],{"type":60,"value":3177},"Notes:",{"type":54,"tag":103,"props":3179,"children":3180},{},[3181,3264,3319],{"type":54,"tag":107,"props":3182,"children":3183},{},[3184,3189,3191,3196,3198,3202,3204,3210,3211,3217,3219,3224,3226,3232,3233,3239,3240,3246,3248,3254,3256,3262],{"type":54,"tag":78,"props":3185,"children":3186},{},[3187],{"type":60,"value":3188},"RTSP is owned by ds-sop-skills (§ 18)",{"type":60,"value":3190}," — it is an ",{"type":54,"tag":78,"props":3192,"children":3193},{},[3194],{"type":60,"value":3195},"opt-in",{"type":60,"value":3197}," ds-sop-skills feature, so the generation prompt must request it (",{"type":54,"tag":2413,"props":3199,"children":3200},{},[3201],{"type":60,"value":3097},{"type":60,"value":3203},"). When requested, the generated source contains the GStreamer RTSP libs + codec plugins, ",{"type":54,"tag":69,"props":3205,"children":3207},{"className":3206},[],[3208],{"type":60,"value":3209},"RTSPStreamingServer",{"type":60,"value":905},{"type":54,"tag":69,"props":3212,"children":3214},{"className":3213},[],[3215],{"type":60,"value":3216},"tee1",{"type":60,"value":3218},"-tapped encode branch, ",{"type":54,"tag":69,"props":3220,"children":3222},{"className":3221},[],[3223],{"type":60,"value":2908},{"type":60,"value":3225},"\u002F",{"type":54,"tag":69,"props":3227,"children":3229},{"className":3228},[],[3230],{"type":60,"value":3231},"ENABLE_RTSP_OUTPUT",{"type":60,"value":3225},{"type":54,"tag":69,"props":3234,"children":3236},{"className":3235},[],[3237],{"type":60,"value":3238},"RTSP_PORT",{"type":60,"value":801},{"type":54,"tag":69,"props":3241,"children":3243},{"className":3242},[],[3244],{"type":60,"value":3245},"--rtsp-port",{"type":60,"value":3247}," CLI, api-server auto-injection, ",{"type":54,"tag":69,"props":3249,"children":3251},{"className":3250},[],[3252],{"type":60,"value":3253},"\u002Fds-out\u002F{sensor_id}",{"type":60,"value":3255}," paths, and ",{"type":54,"tag":69,"props":3257,"children":3259},{"className":3258},[],[3260],{"type":60,"value":3261},"key-int-max=30",{"type":60,"value":3263},". vss-sop-build does not add or patch any of it.",{"type":54,"tag":107,"props":3265,"children":3266},{},[3267,3272,3274,3279,3281,3287,3289,3295,3297,3303,3304,3310,3312,3317],{"type":54,"tag":78,"props":3268,"children":3269},{},[3270],{"type":60,"value":3271},"Image vs. workdir",{"type":60,"value":3273}," — the image is tagged ",{"type":54,"tag":69,"props":3275,"children":3277},{"className":3276},[],[3278],{"type":60,"value":1409},{"type":60,"value":3280}," at build time, but the container workdir stays ",{"type":54,"tag":69,"props":3282,"children":3284},{"className":3283},[],[3285],{"type":60,"value":3286},"\u002Fopt\u002Fnvidia\u002Fnvds_sop",{"type":60,"value":3288}," (as generated). The VSS ",{"type":54,"tag":69,"props":3290,"children":3292},{"className":3291},[],[3293],{"type":60,"value":3294},"ds-sop-docker-compose.yml",{"type":60,"value":3296}," points ",{"type":54,"tag":69,"props":3298,"children":3300},{"className":3299},[],[3301],{"type":60,"value":3302},"PYTHONPATH",{"type":60,"value":801},{"type":54,"tag":69,"props":3305,"children":3307},{"className":3306},[],[3308],{"type":60,"value":3309},"working_dir",{"type":60,"value":3311},", and the cache\u002Fchunks\u002Falert mounts at ",{"type":54,"tag":69,"props":3313,"children":3315},{"className":3314},[],[3316],{"type":60,"value":3286},{"type":60,"value":3318}," accordingly.",{"type":54,"tag":107,"props":3320,"children":3321},{},[3322,3324,3329,3331,3336],{"type":60,"value":3323},"If a post-build check (§ checks in ",{"type":54,"tag":69,"props":3325,"children":3327},{"className":3326},[],[3328],{"type":60,"value":1027},{"type":60,"value":3330},") fails, fix it in the ",{"type":54,"tag":78,"props":3332,"children":3333},{},[3334],{"type":60,"value":3335},"ds-sop-skills generation",{"type":60,"value":3337}," and regenerate — not by patching here.",{"type":54,"tag":537,"props":3339,"children":3340},{},[],{"type":54,"tag":55,"props":3342,"children":3344},{"id":3343},"stage-4-add-sop-infrastructure-app-layer",[3345],{"type":60,"value":3346},"Stage 4 — Add SOP Infrastructure & App Layer",{"type":54,"tag":1968,"props":3348,"children":3349},{},[3350],{"type":54,"tag":63,"props":3351,"children":3352},{},[3353,3355],{"type":60,"value":3354},"Full details: ",{"type":54,"tag":186,"props":3356,"children":3357},{"href":1053},[3358],{"type":54,"tag":69,"props":3359,"children":3361},{"className":3360},[],[3362],{"type":60,"value":1053},{"type":54,"tag":63,"props":3364,"children":3365},{},[3366,3368,3373,3375,3380,3382,3387,3389,3395,3397,3403,3404,3410,3412,3417,3419,3424,3426,3431],{"type":60,"value":3367},"The entire ",{"type":54,"tag":69,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":60,"value":751},{"type":60,"value":3374}," directory is ",{"type":54,"tag":78,"props":3376,"children":3377},{},[3378],{"type":60,"value":3379},"new",{"type":60,"value":3381}," — not in the upstream repo. This is copied as part of the copy references script (",{"type":54,"tag":69,"props":3383,"children":3385},{"className":3384},[],[3386],{"type":60,"value":223},{"type":60,"value":3388},") from the skill's reference directory ",{"type":54,"tag":69,"props":3390,"children":3392},{"className":3391},[],[3393],{"type":60,"value":3394},"agentic\u002Fvss-sop-skills\u002Fvss-sop-build\u002Freferences\u002Fdeployments",{"type":60,"value":3396}," (including the top-level ",{"type":54,"tag":69,"props":3398,"children":3400},{"className":3399},[],[3401],{"type":60,"value":3402},"compose.yml",{"type":60,"value":801},{"type":54,"tag":69,"props":3405,"children":3407},{"className":3406},[],[3408],{"type":60,"value":3409},"cleanup_all_datalog.sh",{"type":60,"value":3411},", and the full ",{"type":54,"tag":69,"props":3413,"children":3415},{"className":3414},[],[3416],{"type":60,"value":751},{"type":60,"value":3418}," directory with its ",{"type":54,"tag":69,"props":3420,"children":3422},{"className":3421},[],[3423],{"type":60,"value":1014},{"type":60,"value":3425}," file) into the target ",{"type":54,"tag":69,"props":3427,"children":3429},{"className":3428},[],[3430],{"type":60,"value":1134},{"type":60,"value":3432}," folder.",{"type":54,"tag":63,"props":3434,"children":3435},{},[3436,3438,3443],{"type":60,"value":3437},"Then customize ",{"type":54,"tag":69,"props":3439,"children":3441},{"className":3440},[],[3442],{"type":60,"value":1947},{"type":60,"value":2590},{"type":54,"tag":163,"props":3445,"children":3446},{},[3447,3496],{"type":54,"tag":107,"props":3448,"children":3449},{},[3450,3452,3458,3459,3465,3466,3472,3474,3480,3481,3487,3489,3495],{"type":60,"value":3451},"Set ",{"type":54,"tag":69,"props":3453,"children":3455},{"className":3454},[],[3456],{"type":60,"value":3457},"MDX_SAMPLE_APPS_DIR",{"type":60,"value":801},{"type":54,"tag":69,"props":3460,"children":3462},{"className":3461},[],[3463],{"type":60,"value":3464},"MDX_DATA_DIR",{"type":60,"value":801},{"type":54,"tag":69,"props":3467,"children":3469},{"className":3468},[],[3470],{"type":60,"value":3471},"HOST_IP",{"type":60,"value":3473},", API keys (",{"type":54,"tag":69,"props":3475,"children":3477},{"className":3476},[],[3478],{"type":60,"value":3479},"NGC_CLI_API_KEY",{"type":60,"value":801},{"type":54,"tag":69,"props":3482,"children":3484},{"className":3483},[],[3485],{"type":60,"value":3486},"NVIDIA_API_KEY",{"type":60,"value":3488},"), ",{"type":54,"tag":69,"props":3490,"children":3492},{"className":3491},[],[3493],{"type":60,"value":3494},"HARDWARE_PROFILE",{"type":60,"value":2571},{"type":54,"tag":107,"props":3497,"children":3498},{},[3499,3501,3507,3509],{"type":60,"value":3500},"Customize the LLM and VLM settings if needed (defaults to Llama 3.3 Nemotron Super for remote LLM and ",{"type":54,"tag":69,"props":3502,"children":3504},{"className":3503},[],[3505],{"type":60,"value":3506},"ds_sop_model",{"type":60,"value":3508}," for local DS-SOP VLM):\n",{"type":54,"tag":103,"props":3510,"children":3511},{},[3512,3548],{"type":54,"tag":107,"props":3513,"children":3514},{},[3515,3520,3522,3528,3529,3534,3535,3540,3541,3547],{"type":54,"tag":78,"props":3516,"children":3517},{},[3518],{"type":60,"value":3519},"LLM Configuration (remote or local NIM)",{"type":60,"value":3521},": ",{"type":54,"tag":69,"props":3523,"children":3525},{"className":3524},[],[3526],{"type":60,"value":3527},"LLM_MODE",{"type":60,"value":801},{"type":54,"tag":69,"props":3530,"children":3532},{"className":3531},[],[3533],{"type":60,"value":1338},{"type":60,"value":801},{"type":54,"tag":69,"props":3536,"children":3538},{"className":3537},[],[3539],{"type":60,"value":1345},{"type":60,"value":2286},{"type":54,"tag":69,"props":3542,"children":3544},{"className":3543},[],[3545],{"type":60,"value":3546},"LLM_NAME_SLUG",{"type":60,"value":2571},{"type":54,"tag":107,"props":3549,"children":3550},{},[3551,3556,3557,3563,3564,3569,3570,3575,3576,3582],{"type":54,"tag":78,"props":3552,"children":3553},{},[3554],{"type":60,"value":3555},"VLM Configuration (local or remote)",{"type":60,"value":3521},{"type":54,"tag":69,"props":3558,"children":3560},{"className":3559},[],[3561],{"type":60,"value":3562},"VLM_MODE",{"type":60,"value":801},{"type":54,"tag":69,"props":3565,"children":3567},{"className":3566},[],[3568],{"type":60,"value":1377},{"type":60,"value":801},{"type":54,"tag":69,"props":3571,"children":3573},{"className":3572},[],[3574],{"type":60,"value":1384},{"type":60,"value":2286},{"type":54,"tag":69,"props":3577,"children":3579},{"className":3578},[],[3580],{"type":60,"value":3581},"VLM_NAME_SLUG",{"type":60,"value":2571},{"type":54,"tag":63,"props":3584,"children":3585},{},[3586],{"type":60,"value":3587},"All other files are used as-is.",{"type":54,"tag":537,"props":3589,"children":3590},{},[],{"type":54,"tag":55,"props":3592,"children":3594},{"id":3593},"stage-5-build-verification-deploy-test-loop",[3595],{"type":60,"value":3596},"Stage 5 — Build Verification + Deploy → Test Loop",{"type":54,"tag":86,"props":3598,"children":3600},{"id":3599},"step-50-verify-the-build",[3601],{"type":60,"value":3602},"Step 5.0 — Verify the build",{"type":54,"tag":63,"props":3604,"children":3605},{},[3606,3607,3612,3614,3620,3622,3627],{"type":60,"value":1756},{"type":54,"tag":69,"props":3608,"children":3610},{"className":3609},[],[3611],{"type":60,"value":360},{"type":60,"value":3613}," — it invokes ",{"type":54,"tag":69,"props":3615,"children":3617},{"className":3616},[],[3618],{"type":60,"value":3619},"verify_build.py",{"type":60,"value":3621}," to check directory structure, top-level compose include, ",{"type":54,"tag":69,"props":3623,"children":3625},{"className":3624},[],[3626],{"type":60,"value":861},{"type":60,"value":3628}," profile coverage, container image versions, Kibana dashboard flat-field mapping, SDR recorder API URLs, and SDR container cluster name syntax (checks for invalid double-double-quotes), then runs the post-verification cleanup of the upstream repo.",{"type":54,"tag":86,"props":3630,"children":3632},{"id":3631},"step-51-deploy-invoke-vss-sop-deploy",[3633,3635,3640],{"type":60,"value":3634},"Step 5.1 — Deploy (invoke ",{"type":54,"tag":69,"props":3636,"children":3638},{"className":3637},[],[3639],{"type":60,"value":410},{"type":60,"value":193},{"type":54,"tag":63,"props":3642,"children":3643},{},[3644,3646,3652],{"type":60,"value":3645},"Phase 0: prerequisites & API keys → Phase 1: verify models & download assets → Phase 2: start RTSP simulator → Phase 3: build DS-SOP image & verify components → Phase 4: configure & deploy (",{"type":54,"tag":69,"props":3647,"children":3649},{"className":3648},[],[3650],{"type":60,"value":3651},"docker compose … --profile bp_sop_2d up -d",{"type":60,"value":3653},") → Phase 5: test RTSP stream & register to VIOS.",{"type":54,"tag":86,"props":3655,"children":3657},{"id":3656},"step-52-test-invoke-vss-sop-test",[3658,3660,3665],{"type":60,"value":3659},"Step 5.2 — Test (invoke ",{"type":54,"tag":69,"props":3661,"children":3663},{"className":3662},[],[3664],{"type":60,"value":428},{"type":60,"value":193},{"type":54,"tag":63,"props":3667,"children":3668},{},[3669],{"type":60,"value":3670},"Phase 1: service health → Phase 2: ELK pipeline (ES reachable, data ingested, Kibana fields) → Phase 3: VIOS recording + livestream → Phase 4: VSS Agent (MCP, LLM, VLM, snapshot, video, report).",{"type":54,"tag":86,"props":3672,"children":3674},{"id":3673},"step-53-fix-and-re-deploy-loop",[3675],{"type":60,"value":3676},"Step 5.3 — Fix and Re-deploy (loop)",{"type":54,"tag":63,"props":3678,"children":3679},{},[3680],{"type":60,"value":3681},"If a phase fails: read auto-debug output → apply fix (env, compose, patches, image rebuild) → re-deploy → re-test. Repeat until ALL phases pass with 100% check pass rate.",{"type":54,"tag":63,"props":3683,"children":3684},{},[3685],{"type":54,"tag":78,"props":3686,"children":3687},{},[3688],{"type":60,"value":3689},"MANDATORY: ALL tests must pass. Do NOT classify any failure as \"environmental\", \"intermittent\", or \"acceptable\". Do NOT proceed with any failing test. If stuck after 3 attempts on the same failure, STOP and ask the user for help.",{"type":54,"tag":63,"props":3691,"children":3692},{},[3693],{"type":60,"value":3694},"The pipeline is complete ONLY when the output matches:",{"type":54,"tag":554,"props":3696,"children":3699},{"className":3697,"code":3698,"language":60},[1158],"✅ Phase 1 — Service Health: PASS (all checks)\n✅ Phase 2 — ELK Data Pipeline: PASS (all checks)\n✅ Phase 3 — VIOS Recording & Livestream: PASS (all checks, including recording)\n✅ Phase 4 — VSS Agent: PASS (all checks, including report generation)\n",[3700],{"type":54,"tag":69,"props":3701,"children":3702},{"__ignoreMap":559},[3703],{"type":60,"value":3698},{"type":54,"tag":63,"props":3705,"children":3706},{},[3707],{"type":60,"value":3708},"Any partial result (e.g., 36\u002F38) means the pipeline is NOT complete — keep debugging.",{"type":54,"tag":537,"props":3710,"children":3711},{},[],{"type":54,"tag":86,"props":3713,"children":3715},{"id":3714},"error-handling",[3716],{"type":60,"value":3717},"Error Handling",{"type":54,"tag":63,"props":3719,"children":3720},{},[3721],{"type":60,"value":3722},"Build \u002F structure issues (resolved during the build stages above):",{"type":54,"tag":103,"props":3724,"children":3725},{},[3726,3764,3789,3898,3929,3953,3983,4013,4030,4102],{"type":54,"tag":107,"props":3727,"children":3728},{},[3729,3741,3743,3748,3749,3755,3756,3762],{"type":54,"tag":78,"props":3730,"children":3731},{},[3732,3734,3739],{"type":60,"value":3733},"Missing ",{"type":54,"tag":69,"props":3735,"children":3737},{"className":3736},[],[3738],{"type":60,"value":861},{"type":60,"value":3740}," profile",{"type":60,"value":3742}," — must be added manually to ALL shared services in ",{"type":54,"tag":69,"props":3744,"children":3746},{"className":3745},[],[3747],{"type":60,"value":1444},{"type":60,"value":801},{"type":54,"tag":69,"props":3750,"children":3752},{"className":3751},[],[3753],{"type":60,"value":3754},"agents\u002F",{"type":60,"value":801},{"type":54,"tag":69,"props":3757,"children":3759},{"className":3758},[],[3760],{"type":60,"value":3761},"vst\u002F",{"type":60,"value":3763},". Upstream 3.1.0 doesn't include it.",{"type":54,"tag":107,"props":3765,"children":3766},{},[3767,3772,3774,3780,3782,3788],{"type":54,"tag":78,"props":3768,"children":3769},{},[3770],{"type":60,"value":3771},"Patch mount failures",{"type":60,"value":3773}," — verify the Python version (",{"type":54,"tag":69,"props":3775,"children":3777},{"className":3776},[],[3778],{"type":60,"value":3779},"python3.13",{"type":60,"value":3781},") matches the VSS Agent image; mount target is ",{"type":54,"tag":69,"props":3783,"children":3785},{"className":3784},[],[3786],{"type":60,"value":3787},"\u002Fvss-agent\u002F.venv\u002Flib\u002Fpython3.13\u002Fsite-packages\u002Fvss_agents\u002Fvideo_analytics\u002F",{"type":60,"value":2571},{"type":54,"tag":107,"props":3790,"children":3791},{},[3792,3815,3817,3823,3825,3830,3832,3838,3840,3846,3848,3854,3856,3861,3863,3868,3869,3874,3876,3882,3883,3889,3890,3896],{"type":54,"tag":78,"props":3793,"children":3794},{},[3795,3800,3802,3807,3809,3814],{"type":54,"tag":69,"props":3796,"children":3798},{"className":3797},[],[3799],{"type":60,"value":958},{"type":60,"value":3801}," and ",{"type":54,"tag":69,"props":3803,"children":3805},{"className":3804},[],[3806],{"type":60,"value":951},{"type":60,"value":3808}," containers never start with ",{"type":54,"tag":69,"props":3810,"children":3812},{"className":3811},[],[3813],{"type":60,"value":861},{"type":60,"value":3740},{"type":60,"value":3816}," — both services in ",{"type":54,"tag":69,"props":3818,"children":3820},{"className":3819},[],[3821],{"type":60,"value":3822},"agents\u002Fvss-agent\u002Fvss-agent-docker-compose.yml",{"type":60,"value":3824}," must have ",{"type":54,"tag":69,"props":3826,"children":3828},{"className":3827},[],[3829],{"type":60,"value":861},{"type":60,"value":3831}," in their ",{"type":54,"tag":69,"props":3833,"children":3835},{"className":3834},[],[3836],{"type":60,"value":3837},"profiles:",{"type":60,"value":3839}," list. The ",{"type":54,"tag":69,"props":3841,"children":3843},{"className":3842},[],[3844],{"type":60,"value":3845},"patch_profiles.py",{"type":60,"value":3847}," script handles this automatically. Manual fallback: add ",{"type":54,"tag":69,"props":3849,"children":3851},{"className":3850},[],[3852],{"type":60,"value":3853},"- bp_sop_2d",{"type":60,"value":3855}," as the first entry in the ",{"type":54,"tag":69,"props":3857,"children":3859},{"className":3858},[],[3860],{"type":60,"value":3837},{"type":60,"value":3862}," list for both ",{"type":54,"tag":69,"props":3864,"children":3866},{"className":3865},[],[3867],{"type":60,"value":951},{"type":60,"value":3801},{"type":54,"tag":69,"props":3870,"children":3872},{"className":3871},[],[3873],{"type":60,"value":958},{"type":60,"value":3875},". Also add the SOP patch volume mounts (",{"type":54,"tag":69,"props":3877,"children":3879},{"className":3878},[],[3880],{"type":60,"value":3881},"tools.py",{"type":60,"value":801},{"type":54,"tag":69,"props":3884,"children":3886},{"className":3885},[],[3887],{"type":60,"value":3888},"utils.py",{"type":60,"value":801},{"type":54,"tag":69,"props":3891,"children":3893},{"className":3892},[],[3894],{"type":60,"value":3895},"es_client.py",{"type":60,"value":3897},") to both services so they both use the SOP-specific video analytics module.",{"type":54,"tag":107,"props":3899,"children":3900},{},[3901,3906,3907,3913,3915,3920,3921,3927],{"type":54,"tag":78,"props":3902,"children":3903},{},[3904],{"type":60,"value":3905},"Video analytics API empty",{"type":60,"value":176},{"type":54,"tag":69,"props":3908,"children":3910},{"className":3909},[],[3911],{"type":60,"value":3912},"vss-video-analytics-api-config.json",{"type":60,"value":3914}," must point to ",{"type":54,"tag":69,"props":3916,"children":3918},{"className":3917},[],[3919],{"type":60,"value":1480},{"type":60,"value":2790},{"type":54,"tag":69,"props":3922,"children":3924},{"className":3923},[],[3925],{"type":60,"value":3926},"mdx-incidents-*",{"type":60,"value":3928},").",{"type":54,"tag":107,"props":3930,"children":3931},{},[3932,3937,3939,3944,3946,3951],{"type":54,"tag":78,"props":3933,"children":3934},{},[3935],{"type":60,"value":3936},"Upstream includes fail",{"type":60,"value":3938}," — clean up top-level ",{"type":54,"tag":69,"props":3940,"children":3942},{"className":3941},[],[3943],{"type":60,"value":3402},{"type":60,"value":3945}," per Stage 1 (drop ",{"type":54,"tag":69,"props":3947,"children":3949},{"className":3948},[],[3950],{"type":60,"value":814},{"type":60,"value":3952},", etc.).",{"type":54,"tag":107,"props":3954,"children":3955},{},[3956,3966,3968,3973,3975,3981],{"type":54,"tag":78,"props":3957,"children":3958},{},[3959,3964],{"type":54,"tag":69,"props":3960,"children":3962},{"className":3961},[],[3963],{"type":60,"value":1353},{"type":60,"value":3965}," not found",{"type":60,"value":3967}," — must be at ",{"type":54,"tag":69,"props":3969,"children":3971},{"className":3970},[],[3972],{"type":60,"value":1947},{"type":60,"value":3974}," (Docker Compose reads it from beside ",{"type":54,"tag":69,"props":3976,"children":3978},{"className":3977},[],[3979],{"type":60,"value":3980},"sop\u002Fcompose.yml",{"type":60,"value":3982},"). Copied during Stage 4.",{"type":54,"tag":107,"props":3984,"children":3985},{},[3986,3991,3993,3998,4000,4005,4006,4011],{"type":54,"tag":78,"props":3987,"children":3988},{},[3989],{"type":60,"value":3990},"DS-SOP container won't start",{"type":60,"value":3992}," — confirm ",{"type":54,"tag":69,"props":3994,"children":3996},{"className":3995},[],[3997],{"type":60,"value":1409},{"type":60,"value":3999}," image exists; verify ",{"type":54,"tag":69,"props":4001,"children":4003},{"className":4002},[],[4004],{"type":60,"value":2867},{"type":60,"value":2286},{"type":54,"tag":69,"props":4007,"children":4009},{"className":4008},[],[4010],{"type":60,"value":2874},{"type":60,"value":4012}," point to verified models.",{"type":54,"tag":107,"props":4014,"children":4015},{},[4016,4021,4023,4028],{"type":54,"tag":78,"props":4017,"children":4018},{},[4019],{"type":60,"value":4020},"Agent can't reach VLM",{"type":60,"value":4022}," — SOP uses ",{"type":54,"tag":69,"props":4024,"children":4026},{"className":4025},[],[4027],{"type":60,"value":2231},{"type":60,"value":4029}," (DS-SOP API), not a remote NIM endpoint.",{"type":54,"tag":107,"props":4031,"children":4032},{},[4033,4038,4040,4046,4048,4054,4056,4062,4064,4070,4072,4078,4080,4085,4087,4092,4094,4100],{"type":54,"tag":78,"props":4034,"children":4035},{},[4036],{"type":60,"value":4037},"Report generation fails with \"error generating\" \u002F VST clip HTTP 500 (\"Could not multiplex stream\")",{"type":60,"value":4039}," — the report agent extracts a short (~2s) incident video clip via ",{"type":54,"tag":69,"props":4041,"children":4043},{"className":4042},[],[4044],{"type":60,"value":4045},"vst_video_url",{"type":60,"value":4047},". With ",{"type":54,"tag":69,"props":4049,"children":4051},{"className":4050},[],[4052],{"type":60,"value":4053},"overlay_config: true",{"type":60,"value":4055},", VST's OSD\u002Fbbox transcode pipeline fails to multiplex such short clips (",{"type":54,"tag":69,"props":4057,"children":4059},{"className":4058},[],[4060],{"type":60,"value":4061},"VMSInternalError: Synchronous video generation failed",{"type":60,"value":4063},"). SOP incidents carry no object bounding boxes (",{"type":54,"tag":69,"props":4065,"children":4067},{"className":4066},[],[4068],{"type":60,"value":4069},"objectId",{"type":60,"value":4071}," is always empty), so set ",{"type":54,"tag":69,"props":4073,"children":4075},{"className":4074},[],[4076],{"type":60,"value":4077},"overlay_config: false",{"type":60,"value":4079}," for the ",{"type":54,"tag":69,"props":4081,"children":4083},{"className":4082},[],[4084],{"type":60,"value":4045},{"type":60,"value":4086}," tool in ",{"type":54,"tag":69,"props":4088,"children":4090},{"className":4089},[],[4091],{"type":60,"value":1315},{"type":60,"value":4093}," (leave the ",{"type":54,"tag":69,"props":4095,"children":4097},{"className":4096},[],[4098],{"type":60,"value":4099},"vst_picture_url",{"type":60,"value":4101}," snapshot tool as-is). The plain no-overlay clip path muxes reliably.",{"type":54,"tag":107,"props":4103,"children":4104},{},[4105,4117,4118,4124,4125,4130,4132,4138,4140,4146,4147,4152,4154,4159,4161,4166,4168,4173,4175,4181],{"type":54,"tag":78,"props":4106,"children":4107},{},[4108,4110,4115],{"type":60,"value":4109},"VSS agent ",{"type":54,"tag":565,"props":4111,"children":4112},{},[4113],{"type":60,"value":4114},"401",{"type":60,"value":4116}," Unauthorized calling remote LLM",{"type":60,"value":176},{"type":54,"tag":69,"props":4119,"children":4121},{"className":4120},[],[4122],{"type":60,"value":4123},"NVIDIA_API_KEY=''",{"type":60,"value":1347},{"type":54,"tag":69,"props":4126,"children":4128},{"className":4127},[],[4129],{"type":60,"value":1947},{"type":60,"value":4131}," is empty. ",{"type":54,"tag":69,"props":4133,"children":4135},{"className":4134},[],[4136],{"type":60,"value":4137},"deploy.sh",{"type":60,"value":4139}," now auto-writes the key from ",{"type":54,"tag":69,"props":4141,"children":4143},{"className":4142},[],[4144],{"type":60,"value":4145},".secret\u002Fnvidia_build_api_key.txt",{"type":60,"value":3046},{"type":54,"tag":69,"props":4148,"children":4150},{"className":4149},[],[4151],{"type":60,"value":1353},{"type":60,"value":4153}," on each run. If starting agent containers independently (not via ",{"type":54,"tag":69,"props":4155,"children":4157},{"className":4156},[],[4158],{"type":60,"value":4137},{"type":60,"value":4160},"), ensure ",{"type":54,"tag":69,"props":4162,"children":4164},{"className":4163},[],[4165],{"type":60,"value":3486},{"type":60,"value":4167}," is set in the shell or in ",{"type":54,"tag":69,"props":4169,"children":4171},{"className":4170},[],[4172],{"type":60,"value":1353},{"type":60,"value":4174}," before running ",{"type":54,"tag":69,"props":4176,"children":4178},{"className":4177},[],[4179],{"type":60,"value":4180},"docker compose up",{"type":60,"value":2571},{"type":54,"tag":63,"props":4183,"children":4184},{},[4185],{"type":60,"value":4186},"Component-specific issues — the detailed symptoms and fixes live in the reference docs (single source of truth), so they don't drift out of sync with this skill:",{"type":54,"tag":103,"props":4188,"children":4189},{},[4190,4275,4362,4389,4431],{"type":54,"tag":107,"props":4191,"children":4192},{},[4193,4198,4200,4206,4208,4214,4216,4221,4223,4228,4230,4236,4238,4243,4245,4250,4251,4256,4258,4266,4268,4274],{"type":54,"tag":78,"props":4194,"children":4195},{},[4196],{"type":60,"value":4197},"Foundational \u002F ELK pipeline",{"type":60,"value":4199}," — Logstash ",{"type":54,"tag":69,"props":4201,"children":4203},{"className":4202},[],[4204],{"type":60,"value":4205},"ConfigurationError",{"type":60,"value":4207}," at ",{"type":54,"tag":69,"props":4209,"children":4211},{"className":4210},[],[4212],{"type":60,"value":4213},"date",{"type":60,"value":4215}," blocks, ",{"type":54,"tag":69,"props":4217,"children":4219},{"className":4218},[],[4220],{"type":60,"value":1190},{"type":60,"value":4222}," index never appears, ",{"type":54,"tag":69,"props":4224,"children":4226},{"className":4225},[],[4227],{"type":60,"value":1190},{"type":60,"value":4229}," doc count stuck at 1 (",{"type":54,"tag":69,"props":4231,"children":4233},{"className":4232},[],[4234],{"type":60,"value":4235},"document_id",{"type":60,"value":4237}," branch), Kibana \"No field found for ",{"type":54,"tag":565,"props":4239,"children":4240},{},[4241],{"type":60,"value":4242},"...",{"type":60,"value":4244},"\" \u002F flat-JSON data view, ",{"type":54,"tag":69,"props":4246,"children":4248},{"className":4247},[],[4249],{"type":60,"value":2771},{"type":60,"value":3225},{"type":54,"tag":69,"props":4252,"children":4254},{"className":4253},[],[4255],{"type":60,"value":2809},{"type":60,"value":4257},"\u002FKafka topic issues → see ",{"type":54,"tag":186,"props":4259,"children":4260},{"href":869},[4261],{"type":54,"tag":69,"props":4262,"children":4264},{"className":4263},[],[4265],{"type":60,"value":876},{"type":60,"value":4267}," Troubleshooting (validated by ",{"type":54,"tag":69,"props":4269,"children":4271},{"className":4270},[],[4272],{"type":60,"value":4273},"verify_build.py --component foundational",{"type":60,"value":3928},{"type":54,"tag":107,"props":4276,"children":4277},{},[4278,4283,4285,4291,4293,4299,4301,4307,4309,4315,4317,4323,4324,4330,4331,4337,4338,4344,4346,4354,4355,4361],{"type":54,"tag":78,"props":4279,"children":4280},{},[4281],{"type":60,"value":4282},"VIOS \u002F VST recording & streaming",{"type":60,"value":4284}," — double-scheme clip URLs (",{"type":54,"tag":69,"props":4286,"children":4288},{"className":4287},[],[4289],{"type":60,"value":4290},"http:\u002F\u002Fhttp:\u002F\u002F...",{"type":60,"value":4292},"), recorder on wrong RTSP port (30556 vs 30554), \"Stream not present in recorder\", ",{"type":54,"tag":69,"props":4294,"children":4296},{"className":4295},[],[4297],{"type":60,"value":4298},"camera_streaming",{"type":60,"value":4300}," not published, SDR ",{"type":54,"tag":69,"props":4302,"children":4304},{"className":4303},[],[4305],{"type":60,"value":4306},"KeyError: 'process_type'",{"type":60,"value":4308},", SDR ",{"type":54,"tag":69,"props":4310,"children":4312},{"className":4311},[],[4313],{"type":60,"value":4314},"provisioning_address",{"type":60,"value":4316}," scheme error, SDR consumer-group round-robin, nginx ",{"type":54,"tag":69,"props":4318,"children":4320},{"className":4319},[],[4321],{"type":60,"value":4322},"host not found in upstream",{"type":60,"value":801},{"type":54,"tag":69,"props":4325,"children":4327},{"className":4326},[],[4328],{"type":60,"value":4329},"vst-mcp-sop",{"type":60,"value":3092},{"type":54,"tag":69,"props":4332,"children":4334},{"className":4333},[],[4335],{"type":60,"value":4336},"server_port",{"type":60,"value":3092},{"type":54,"tag":69,"props":4339,"children":4341},{"className":4340},[],[4342],{"type":60,"value":4343},"ValidationError",{"type":60,"value":4345},", recorder \"insufficient disk capacity\" → see ",{"type":54,"tag":186,"props":4347,"children":4348},{"href":919},[4349],{"type":54,"tag":69,"props":4350,"children":4352},{"className":4351},[],[4353],{"type":60,"value":926},{"type":60,"value":4267},{"type":54,"tag":69,"props":4356,"children":4358},{"className":4357},[],[4359],{"type":60,"value":4360},"verify_build.py --component vios",{"type":60,"value":3928},{"type":54,"tag":107,"props":4363,"children":4364},{},[4365,4370,4372,4378,4380,4388],{"type":54,"tag":78,"props":4366,"children":4367},{},[4368],{"type":60,"value":4369},"DS-SOP image",{"type":60,"value":4371}," — empty (623-byte) MP4 report clips \u002F ",{"type":54,"tag":69,"props":4373,"children":4375},{"className":4374},[],[4376],{"type":60,"value":4377},"key-int-max",{"type":60,"value":4379}," keyframe interval, RTSP streaming output (ds-sop-skills § 18; opt-in at generation, built, not patched) → see ",{"type":54,"tag":186,"props":4381,"children":4382},{"href":1020},[4383],{"type":54,"tag":69,"props":4384,"children":4386},{"className":4385},[],[4387],{"type":60,"value":1027},{"type":60,"value":2571},{"type":54,"tag":107,"props":4390,"children":4391},{},[4392,4397,4398,4403,4405,4411,4413,4419,4421,4429],{"type":54,"tag":78,"props":4393,"children":4394},{},[4395],{"type":60,"value":4396},"VSS Agent compose",{"type":60,"value":176},{"type":54,"tag":69,"props":4399,"children":4401},{"className":4400},[],[4402],{"type":60,"value":958},{"type":60,"value":4404}," refuses to start with ",{"type":54,"tag":69,"props":4406,"children":4408},{"className":4407},[],[4409],{"type":60,"value":4410},"depends on undefined service \"nvidia-nemotron-nano-9b-v2-fp8\"",{"type":60,"value":4412}," (or ",{"type":54,"tag":69,"props":4414,"children":4416},{"className":4415},[],[4417],{"type":60,"value":4418},"-fp8-shared-gpu",{"type":60,"value":4420},") → see ",{"type":54,"tag":186,"props":4422,"children":4423},{"href":973},[4424],{"type":54,"tag":69,"props":4425,"children":4427},{"className":4426},[],[4428],{"type":60,"value":980},{"type":60,"value":4430}," Step 2d.",{"type":54,"tag":107,"props":4432,"children":4433},{},[4434,4439,4441,4445],{"type":54,"tag":78,"props":4435,"children":4436},{},[4437],{"type":60,"value":4438},"Prerequisites & runtime issues",{"type":60,"value":4440}," → see ",{"type":54,"tag":78,"props":4442,"children":4443},{},[4444],{"type":60,"value":410},{"type":60,"value":4446}," Phase 0 and Troubleshooting.",{"type":54,"tag":537,"props":4448,"children":4449},{},[],{"type":54,"tag":86,"props":4451,"children":4453},{"id":4452},"license",[4454],{"type":60,"value":4455},"License",{"type":54,"tag":63,"props":4457,"children":4458},{},[4459,4461,4469,4471,4478],{"type":60,"value":4460},"Use of this skill is governed by the ",{"type":54,"tag":186,"props":4462,"children":4466},{"href":4463,"rel":4464},"https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F4.0\u002Flegalcode.en",[4465],"nofollow",[4467],{"type":60,"value":4468},"Creative Commons Attribution 4.0 International License (CC BY 4.0)",{"type":60,"value":4470}," and the ",{"type":54,"tag":186,"props":4472,"children":4475},{"href":4473,"rel":4474},"https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0",[4465],[4476],{"type":60,"value":4477},"Apache License, Version 2.0",{"type":60,"value":2571},{"type":54,"tag":4480,"props":4481,"children":4482},"style",{},[4483],{"type":60,"value":4484},"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":4486,"total":675},[4487,4503,4518,4531,4549,4561,4572],{"slug":4488,"name":4488,"fn":4489,"description":4490,"org":4491,"tags":4492,"stars":23,"repoUrl":24,"updatedAt":4502},"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},[4493,4496,4497,4498,4499],{"name":4494,"slug":4495,"type":15},"Automation","automation",{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":4500,"slug":4501,"type":15},"Video","video","2026-07-14T05:32:48.503678",{"slug":4504,"name":4504,"fn":4505,"description":4506,"org":4507,"tags":4508,"stars":23,"repoUrl":24,"updatedAt":4517},"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},[4509,4512,4515,4516],{"name":4510,"slug":4511,"type":15},"Evals","evals",{"name":4513,"slug":4514,"type":15},"Machine Learning","machine-learning",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:13.260585",{"slug":4519,"name":4519,"fn":4520,"description":4521,"org":4522,"tags":4523,"stars":23,"repoUrl":24,"updatedAt":4530},"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},[4524,4527,4528,4529],{"name":4525,"slug":4526,"type":15},"AI Infrastructure","ai-infrastructure",{"name":4513,"slug":4514,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:22.874218",{"slug":4532,"name":4532,"fn":4533,"description":4534,"org":4535,"tags":4536,"stars":23,"repoUrl":24,"updatedAt":4548},"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},[4537,4540,4543,4544,4545],{"name":4538,"slug":4539,"type":15},"Data Engineering","data-engineering",{"name":4541,"slug":4542,"type":15},"Datasets","datasets",{"name":4513,"slug":4514,"type":15},{"name":9,"slug":8,"type":15},{"name":4546,"slug":4547,"type":15},"QA","qa","2026-07-14T05:36:20.305657",{"slug":4550,"name":4550,"fn":4551,"description":4552,"org":4553,"tags":4554,"stars":23,"repoUrl":24,"updatedAt":4560},"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},[4555,4558,4559],{"name":4556,"slug":4557,"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":4562,"name":4562,"fn":4563,"description":4564,"org":4565,"tags":4566,"stars":23,"repoUrl":24,"updatedAt":4571},"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},[4567,4568,4569,4570],{"name":4510,"slug":4511,"type":15},{"name":4513,"slug":4514,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:15.23958",{"slug":4573,"name":4573,"fn":4574,"description":4575,"org":4576,"tags":4577,"stars":23,"repoUrl":24,"updatedAt":4584},"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},[4578,4579,4580,4581],{"name":4494,"slug":4495,"type":15},{"name":4513,"slug":4514,"type":15},{"name":9,"slug":8,"type":15},{"name":4582,"slug":4583,"type":15},"Orchestration","orchestration","2026-07-14T05:36:28.162686",{"items":4586,"total":4737},[4587,4605,4621,4632,4644,4658,4671,4683,4694,4705,4719,4728],{"slug":4588,"name":4588,"fn":4589,"description":4590,"org":4591,"tags":4592,"stars":4602,"repoUrl":4603,"updatedAt":4604},"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},[4593,4596,4599],{"name":4594,"slug":4595,"type":15},"Documentation","documentation",{"name":4597,"slug":4598,"type":15},"MCP","mcp",{"name":4600,"slug":4601,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":4606,"name":4606,"fn":4607,"description":4608,"org":4609,"tags":4610,"stars":4618,"repoUrl":4619,"updatedAt":4620},"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},[4611,4614,4615],{"name":4612,"slug":4613,"type":15},"Containers","containers",{"name":17,"slug":18,"type":15},{"name":4616,"slug":4617,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":4622,"name":4622,"fn":4623,"description":4624,"org":4625,"tags":4626,"stars":4618,"repoUrl":4619,"updatedAt":4631},"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},[4627,4630],{"name":4628,"slug":4629,"type":15},"CI\u002FCD","ci-cd",{"name":17,"slug":18,"type":15},"2026-07-14T05:25:59.97109",{"slug":4633,"name":4633,"fn":4634,"description":4635,"org":4636,"tags":4637,"stars":4618,"repoUrl":4619,"updatedAt":4643},"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},[4638,4639,4640],{"name":4628,"slug":4629,"type":15},{"name":17,"slug":18,"type":15},{"name":4641,"slug":4642,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":4645,"name":4645,"fn":4646,"description":4647,"org":4648,"tags":4649,"stars":4618,"repoUrl":4619,"updatedAt":4657},"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},[4650,4653,4654],{"name":4651,"slug":4652,"type":15},"Debugging","debugging",{"name":4641,"slug":4642,"type":15},{"name":4655,"slug":4656,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":4659,"name":4659,"fn":4660,"description":4661,"org":4662,"tags":4663,"stars":4618,"repoUrl":4619,"updatedAt":4670},"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},[4664,4667],{"name":4665,"slug":4666,"type":15},"Best Practices","best-practices",{"name":4668,"slug":4669,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":4672,"name":4672,"fn":4673,"description":4674,"org":4675,"tags":4676,"stars":4618,"repoUrl":4619,"updatedAt":4682},"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},[4677,4678,4681],{"name":4513,"slug":4514,"type":15},{"name":4679,"slug":4680,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":4684,"name":4684,"fn":4685,"description":4686,"org":4687,"tags":4688,"stars":4618,"repoUrl":4619,"updatedAt":4693},"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},[4689,4690],{"name":4546,"slug":4547,"type":15},{"name":4691,"slug":4692,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":4695,"name":4695,"fn":4696,"description":4697,"org":4698,"tags":4699,"stars":4618,"repoUrl":4619,"updatedAt":4704},"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},[4700,4701],{"name":17,"slug":18,"type":15},{"name":4702,"slug":4703,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":4706,"name":4706,"fn":4707,"description":4708,"org":4709,"tags":4710,"stars":4618,"repoUrl":4619,"updatedAt":4718},"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},[4711,4714,4715],{"name":4712,"slug":4713,"type":15},"Code Review","code-review",{"name":4641,"slug":4642,"type":15},{"name":4716,"slug":4717,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":4720,"name":4720,"fn":4721,"description":4722,"org":4723,"tags":4724,"stars":4618,"repoUrl":4619,"updatedAt":4727},"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},[4725,4726],{"name":4546,"slug":4547,"type":15},{"name":4691,"slug":4692,"type":15},"2026-07-14T05:25:54.928983",{"slug":4729,"name":4729,"fn":4730,"description":4731,"org":4732,"tags":4733,"stars":4618,"repoUrl":4619,"updatedAt":4736},"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},[4734,4735],{"name":4494,"slug":4495,"type":15},{"name":4628,"slug":4629,"type":15},"2026-07-30T05:29:03.275638",496]