[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-hoisa-deploy-profile":3,"mdc--itz43e-key":34,"related-repo-nvidia-hoisa-deploy-profile":2238,"related-org-nvidia-hoisa-deploy-profile":2247},{"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},"hoisa-deploy-profile","deploy HOISA safety testing profiles","Deploy Halos Outside-In Safety (HOISA) closed-loop testing by PROFILE (base \u002F sil \u002F hil) on top of the VSS Warehouse 3.2 perception backend. Clone the OSS repo, pick a profile, deploy. Covers prerequisites, NGC artifacts (sil-data + PSF + VSS images), VSS SIL overrides, the Halos stack (PSF, comm-layer, Isaac Sim, MediaMTX), test scenario, and monitoring. Use when asked to deploy Halos, deploy HOISA, deploy SIL, set up warehouse safety simulation, or run outside-in safety testing.",{"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},"Security","security","tag",{"name":17,"slug":18,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Engineering","engineering",52,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fhalos-outside-in-safety","2026-07-14T05:36:09.251774",null,12,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"NVIDIA Halos Outside-In Safety Blueprint extends robot perception beyond on-board sensors by using external infrastructure cameras and AI agents to dynamically control robot behavior and perform at maximum efficiency. ","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fhalos-outside-in-safety\u002Ftree\u002FHEAD\u002Fskills\u002Fhoisa-deploy-profile","---\nname: hoisa-deploy-profile\ndescription: >-\n  Deploy Halos Outside-In Safety (HOISA) closed-loop testing by PROFILE\n  (base \u002F sil \u002F hil) on top of the VSS Warehouse 3.2 perception backend.\n  Clone the OSS repo, pick a profile, deploy. Covers prerequisites, NGC\n  artifacts (sil-data + PSF + VSS images), VSS SIL overrides, the Halos\n  stack (PSF, comm-layer, Isaac Sim, MediaMTX), test scenario, and\n  monitoring. Use when asked to deploy Halos, deploy HOISA, deploy SIL,\n  set up warehouse safety simulation, or run outside-in safety testing.\nmetadata:\n  author: NVIDIA\n  version: 1.0.0\n---\n\n# Halos Outside-In Safety — Deploy by Profile (VSS 3.2)\n\nThis skill deploys **from the HOISA OSS repository you cloned** — the compose\nfiles, profiles, configs, and this skill all live in the repo. When active,\n**ALWAYS read the relevant reference document before running commands.**\nDeployment has two stacks that must come up in order — do NOT skip or reorder.\n\n> Targets **VSS Warehouse 3.2**.\n\n---\n\n## Profiles\n\nPick one profile (set `COMPOSE_PROFILES` in the profile run-env). Services started:\n\n| Profile | Services | Use |\n|---------|----------|-----|\n| `base` | safety-core | Safety on an existing VSS feed; MUTE\u002FUNMUTE rendered as the VST `halo_safety` overlay (\"Standard\"\u002F\"Efficient Mode\" + proximity bubble). No Isaac Sim. |\n| `sil` | safety-core, comm-layer, isaac-sim, mediamtx | Full single-host closed loop: Isaac Sim stimulus → VSS perception → PSF → ROS → Isaac forklift. |\n| `hil` 🚧 | comm-layer, isaac-sim, mediamtx | 🚧 **Under development.** |\n\n> **2D today. A 3D (Sparse4D) profile is 🚧 under development** — see\n> `references\u002Fvss_3d_overrides.md` when it lands.\n\n> **`base` on IGX Thor (aarch64)** — the skill detects the platform and, on Thor, asks whether to run the SDM on **CCPLEX** or **FSI** (covered in `references\u002Fhalos_thor.md`). The CCPLEX path follows the x86 flow; the FSI path is advanced (a one-time firmware reflash).\n\n---\n\n## Architecture (sil profile)\n\n```\nIsaac Sim (forklift + digital humans, segments-driven)\n     ↓ RTSP (3 cameras, H265, via MediaMTX)\nVSS Warehouse 3.2 (AI Perception)\n     ├─ vss-rtvi-cv: detection + tracking\n     └─ vss-behavior-analytics: ROI \u002F tripwire (forklift-in-trailer)\n     ↓ Kafka events (mdx-events topic)\nSafety Core (PSF)\n     ├─ SEI: multi-camera fusion + event validation\n     └─ SDM: ATL decision logic (MUTE\u002FUNMUTE)\n     ↓ UDP 64-byte packet (port 12346)\nCommunication Layer → ROS2 \u002Fsafety\u002Fis_muted → Isaac Sim Action Graph (forklift safety disc)\n```\n\n**Two separate stacks**:\n- **Stack 1**: VSS Warehouse 3.2 (perception) — deploy via the `vss-deploy-profile` skill (or the public VSS Warehouse docs: github.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization); must be up + healthy first.\n- **Stack 2**: Halos (`base`\u002F`sil`\u002F`hil`) — this skill.\n\n---\n\n## Agent Autonomy Rules\n\nWhen invoked autonomously (no human in the loop):\n\n1. **Proceed through all phases without asking for confirmation** at phase\n   boundaries. Only stop on a real error or a missing input that the user\n   must provide (e.g., NGC API key not present anywhere).\n2. **Use the Ready Signals table below as phase gates**, not narrative time\n   estimates (\"wait ~15 min\") and not process existence (`pgrep -f \"compose up\"`).\n   `compose up --detach` exits before containers are actually serving.\n3. **Never use `docker logs -f`** or any blocking follow command in the main\n   flow. Use a poll loop with a non-blocking grep instead.\n4. **Pre-pull large images in parallel** with the VSS Warehouse build: the PSF\n   image (`PSF_IMAGE`) and the Isaac Sim base (`ISAAC_SIM_IMAGE`), both from the\n   profile run-env (~30 GB total), to save wall time.\n5. **Emit a heartbeat line every poll iteration** so the user can see the agent\n   is alive during long phases (TensorRT build, Isaac Sim shader compile).\n6. **Do NOT declare \"deployment complete\"** until the final ready signal fires:\n   sim-driven safety transitions in `\u003Csil-data>\u002Fcomm-layer\u002Fopc_server.log`.\n   \"All containers Up\" is not the same as \"system working\".\n\n---\n\n## Ready Signals\n\nEach phase ends when its ready signal becomes true. Poll, don't wait by time.\n\n| Phase | Ready signal (poll until true) |\n|-------|--------------------------------|\n| Prerequisites | All checks in `prerequisites.md` Summary checklist pass |\n| NGC artifacts | sil-data extracted (`collected-assets\u002F` present) + `PSF_IMAGE` pulled + VSS images present |\n| VSS perception | `docker logs vss-rtvi-cv 2>&1 \\| grep -c \"stream_name Camera\"` returns ≥ 3, all non-zero FPS |\n| VSS Kafka | `docker exec kafka kafka-console-consumer --bootstrap-server localhost:9092 --topic mdx-events --max-messages 1 --timeout-ms 30000` exits 0 |\n| Halos services | The profile's services are all Up (`sil` = 4: safety-core, comm-layer, isaac-sim, mediamtx; `base` = 1) |\n| PSF wired | `\u003Csil-data>\u002Fcomm-layer\u002Fopc_server.log` exists and is non-empty |\n| **ROS isolation** | `docker exec comm-layer bash -c \"source \u002Fopt\u002Fros\u002Fjazzy\u002Fsetup.bash && ros2 topic info \u002Fsafety\u002Fis_muted -v\"` shows **`Publisher count: 1`** (if 2+, multi-machine `ROS_DOMAIN_ID` collision — see `troubleshooting.md`) |\n| Isaac Sim streaming | DeepStream `vss-rtvi-cv` has 3 active Isaac streams: count of `new stream added [` **minus** `new stream removed [` ≥ 3 (net handles re-runs). First-run RT shader compile is slow — gate on this handoff, **not** a shader-log string (absent on Isaac 5.1.0). Poll command in `test_scenario.md`. |\n| Isaac Sim wired | `ros2 topic info \u002Fsafety\u002Fis_muted -v` shows **`Subscription count: 1`** (Isaac forklift Action Graph connected) |\n| Sim-driven safety | forklift\u002Ftrailer transitions in `\u003Csil-data>\u002Fpsf-log\u002Fpss.log` **after** Isaac streams came up (not sample-video bootstrap traffic) |\n\nThe exact poll command for each signal is in the corresponding reference doc.\n\n---\n\n## Quick Start Workflow\n\nDeploy in strict order. **Stack 1 (VSS) must be running before Stack 2 (Halos).**\n\n```\n- [ ] 1. Clone the HOISA OSS repo (this skill lives in skills\u002F)\n- [ ] 2. Check prerequisites (host setup overlaps VSS — run VSS prereq first) → references\u002Fprerequisites.md\n- [ ] 3. Pull NGC artifacts (sil-data + PSF image + VSS images)  → references\u002Fngc_artifacts.md\n- [ ] 4. Deploy VSS Warehouse 3.2 via `vss-deploy-profile`,\n        apply SIL overrides BEFORE its compose up                → references\u002Fvss_2d_overrides.md\n- [ ] 5. Poll VSS perception + Kafka ready signals\n- [ ] 6. Configure deployments\u002Fprofiles\u002F\u003Cprofile>.env, then\n        deploy Halos (setup.sh + cleanup + compose up --build)   → references\u002Fhalos_deploy.md\n- [ ] 7. Set a unique ROS_DOMAIN_ID (0-232) + verify Publisher count=1\n- [ ] 8. (sil) Run the Isaac Sim test scenario                   → references\u002Ftest_scenario.md\n- [ ] 9. Monitor until sim-driven safety transitions appear (the \"complete\" signal)\n```\n\n---\n\n## Reference Documents\n\n| Document | Use When |\n|----------|----------|\n| [references\u002Fprerequisites.md](references\u002Fprerequisites.md) | Hardware\u002Fsoftware requirements, Docker, NGC CLI, driver, GPU selection |\n| [references\u002Fngc_artifacts.md](references\u002Fngc_artifacts.md) | Pulling sil-data + PSF image + VSS images from NGC; **Thor Safety Core `.deb`s (`psf-tegra` + `psf-tegra-fsi`)** |\n| [references\u002Fvss_2d_overrides.md](references\u002Fvss_2d_overrides.md) | VSS Warehouse 2D `.env`, DeepStream config, and VST config for Isaac Sim |\n| [references\u002Fvss_3d_overrides.md](references\u002Fvss_3d_overrides.md) | 🚧 **Under development** — 3D (Sparse4D) profile overrides |\n| [references\u002Fhalos_deploy.md](references\u002Fhalos_deploy.md) | Configuring and deploying the Halos stack by profile |\n| [references\u002Fhalos_thor.md](references\u002Fhalos_thor.md) | Deploying `base` on IGX Thor (aarch64) — SDM on CCPLEX or FSI |\n| [references\u002Fhalos_hil.md](references\u002Fhalos_hil.md) | 🚧 **Under development** — HIL profile |\n| [references\u002Ftest_scenario.md](references\u002Ftest_scenario.md) | Running the simulation, monitoring safety commands, viewing camera streams |\n| [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) | Fixing deployment errors |\n\n---\n\n## Critical Rules\n\n| Tag | Rule | Details in |\n|-----|------|-----------|\n| `VSS_DEPLOY_PROFILE` | Deploy VSS Warehouse 3.2 with the `vss-deploy-profile` skill; apply SIL overrides before its `docker compose up` | `vss_2d_overrides.md` |\n| `VSS_BEFORE_HALOS` | VSS Warehouse **must** be running and healthy before deploying Halos | `vss_2d_overrides.md` |\n| `KAFKA_BEFORE_PSF` | Kafka must be up before PSF starts — PSF connects to Kafka on startup | `troubleshooting.md` |\n| `DEEPSTREAM_SEI` | **Disable** SEI extraction + enable system timestamps in DeepStream — Isaac Sim RTSP carries no SEI | `vss_2d_overrides.md` |\n| `BP_PROFILE_KAFKA` | VSS must use `BP_PROFILE=bp_wh_kafka` (not `bp_wh`) for Halos integration | `vss_2d_overrides.md` |\n| `LLM_VLM_NONE` | Set `LLM_MODE=none` and `VLM_MODE=none` — not needed for safety SIL | `vss_2d_overrides.md` |\n| `HALO_SAFETY_BASE` | **`base` profile**: to render the safety overlay, set `halo_safety_udp_port` in the VSS 2D `vst_config.json` from `-1` → `12345` (must equal `COMM_UDP_PORT`), then restart VST | `halos_deploy.md`, `vss_2d_overrides.md` |\n| `THOR_BASE` | **`base`: detect the platform** (`uname -m`). `x86_64` → standard container base. **`aarch64` (IGX Thor)** → **ask the user** which SDM target before deploying — **CCPLEX** (decision-maker as host software on the Thor application cores; simpler, no firmware change) or **FSI** (decision-maker on the Functional Safety Island, the on-die safety microcontroller; needs a one-time firmware reflash) — then launch via `launch_thor_safety.sh` (hybrid container + host binaries, **not** `docker compose`) | `halos_thor.md` |\n| `HOST_IP_BOTH` | `HOST_IP` must be set in **both** the VSS and Halos run-env files | `halos_deploy.md` |\n| `SIL_DATA_PATH` | Halos `MDX_DATA_DIR` points to **sil-data** (has `collected-assets\u002F`), not VSS app-data | `halos_deploy.md`, `ngc_artifacts.md` |\n| `ROS_DOMAIN_UNIQUE` | Assign a unique `ROS_DOMAIN_ID` (0-232) per machine; verify `Publisher count: 1` on `\u002Fsafety\u002Fis_muted` | `halos_deploy.md`, `troubleshooting.md` |\n| `GPU_NOT_PERCEPTION` | Run Isaac Sim on a GPU (RT cores, >20 GB) that is **not** running VSS perception | `prerequisites.md`, `halos_deploy.md` |\n| `SETUP_BEFORE_UP` | Run `setup.sh \u003Cprofile>` and `cleanup_all_datalog.sh \u003Cprofile>` **before** `docker compose up` (both read `profiles\u002F\u003Cprofile>.env`) | `halos_deploy.md` |\n| `POLL_NEVER_WAIT` | First VSS startup takes 10-15 min (TensorRT build); Isaac shaders ~5-10 min — **poll** the ready signal, never `docker logs -f` or a fixed timer | (this file) |\n| `COMPLETE_MEANS_SIM_TRAFFIC` | Do not declare \"complete\" until **sim-driven** transitions appear in the OPC log — VSS sample-video bootstrap traffic doesn't count | `test_scenario.md` |\n| `NEVER_SHOW_KEYS` | **NEVER** echo, print, or hardcode NGC API keys or secrets. Read silently from `~\u002F.bashrc` or `~\u002F.ngc\u002Fconfig` | `prerequisites.md` |\n\n---\n\n## Deployment Stack Summary\n\n| Stack | Services | Source |\n|-------|----------|--------|\n| VSS Warehouse 3.2 | vss-vios-*, vss-rtvi-cv, vss-behavior-analytics, vss-configurator, kafka, redis, … | `vss-deploy-profile` skill (VSS repo) |\n| Halos (profile) | safety-core, comm-layer, isaac-sim, mediamtx | this OSS repo (`deployments\u002Fcompose.yaml`) + `PSF_IMAGE` from NGC |\n\n---\n\n## Key URLs (after deployment)\n\n| Service | URL |\n|---------|-----|\n| VST UI (camera streams) | `http:\u002F\u002F\u003CHOST_IP>:30888\u002Fvst\u002F` |\n| Grafana (monitoring) | `http:\u002F\u002F\u003CHOST_IP>:32900` |\n| Kibana (analytics) | `http:\u002F\u002F\u003CHOST_IP>:5601` |\n\n---\n\n## Cleanup\n\n```bash\n# Stop Halos (from the repo's deployments\u002F directory)\ncd \u003Crepo>\u002Fdeployments && docker compose --env-file profiles\u002F\u003Cprofile>.env down\nbash ..\u002Fclosed-loop-testing\u002Fscripts\u002Fcleanup_all_datalog.sh \u003Cprofile>\ndocker volume prune -f\n\n# Stop VSS Warehouse — see the vss-deploy-profile skill\n```\n",{"data":35,"body":38},{"name":4,"description":6,"metadata":36},{"author":9,"version":37},"1.0.0",{"type":39,"children":40},"root",[41,50,71,87,91,98,112,226,247,287,290,296,308,318,371,374,380,385,495,498,504,509,825,830,833,839,849,858,861,867,1086,1089,1095,1866,1869,1875,1955,1958,1964,2037,2040,2046,2232],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"halos-outside-in-safety-deploy-by-profile-vss-32",[47],{"type":48,"value":49},"text","Halos Outside-In Safety — Deploy by Profile (VSS 3.2)",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,56,62,64,69],{"type":48,"value":55},"This skill deploys ",{"type":42,"tag":57,"props":58,"children":59},"strong",{},[60],{"type":48,"value":61},"from the HOISA OSS repository you cloned",{"type":48,"value":63}," — the compose\nfiles, profiles, configs, and this skill all live in the repo. When active,\n",{"type":42,"tag":57,"props":65,"children":66},{},[67],{"type":48,"value":68},"ALWAYS read the relevant reference document before running commands.",{"type":48,"value":70},"\nDeployment has two stacks that must come up in order — do NOT skip or reorder.",{"type":42,"tag":72,"props":73,"children":74},"blockquote",{},[75],{"type":42,"tag":51,"props":76,"children":77},{},[78,80,85],{"type":48,"value":79},"Targets ",{"type":42,"tag":57,"props":81,"children":82},{},[83],{"type":48,"value":84},"VSS Warehouse 3.2",{"type":48,"value":86},".",{"type":42,"tag":88,"props":89,"children":90},"hr",{},[],{"type":42,"tag":92,"props":93,"children":95},"h2",{"id":94},"profiles",[96],{"type":48,"value":97},"Profiles",{"type":42,"tag":51,"props":99,"children":100},{},[101,103,110],{"type":48,"value":102},"Pick one profile (set ",{"type":42,"tag":104,"props":105,"children":107},"code",{"className":106},[],[108],{"type":48,"value":109},"COMPOSE_PROFILES",{"type":48,"value":111}," in the profile run-env). Services started:",{"type":42,"tag":113,"props":114,"children":115},"table",{},[116,140],{"type":42,"tag":117,"props":118,"children":119},"thead",{},[120],{"type":42,"tag":121,"props":122,"children":123},"tr",{},[124,130,135],{"type":42,"tag":125,"props":126,"children":127},"th",{},[128],{"type":48,"value":129},"Profile",{"type":42,"tag":125,"props":131,"children":132},{},[133],{"type":48,"value":134},"Services",{"type":42,"tag":125,"props":136,"children":137},{},[138],{"type":48,"value":139},"Use",{"type":42,"tag":141,"props":142,"children":143},"tbody",{},[144,175,197],{"type":42,"tag":121,"props":145,"children":146},{},[147,157,162],{"type":42,"tag":148,"props":149,"children":150},"td",{},[151],{"type":42,"tag":104,"props":152,"children":154},{"className":153},[],[155],{"type":48,"value":156},"base",{"type":42,"tag":148,"props":158,"children":159},{},[160],{"type":48,"value":161},"safety-core",{"type":42,"tag":148,"props":163,"children":164},{},[165,167,173],{"type":48,"value":166},"Safety on an existing VSS feed; MUTE\u002FUNMUTE rendered as the VST ",{"type":42,"tag":104,"props":168,"children":170},{"className":169},[],[171],{"type":48,"value":172},"halo_safety",{"type":48,"value":174}," overlay (\"Standard\"\u002F\"Efficient Mode\" + proximity bubble). No Isaac Sim.",{"type":42,"tag":121,"props":176,"children":177},{},[178,187,192],{"type":42,"tag":148,"props":179,"children":180},{},[181],{"type":42,"tag":104,"props":182,"children":184},{"className":183},[],[185],{"type":48,"value":186},"sil",{"type":42,"tag":148,"props":188,"children":189},{},[190],{"type":48,"value":191},"safety-core, comm-layer, isaac-sim, mediamtx",{"type":42,"tag":148,"props":193,"children":194},{},[195],{"type":48,"value":196},"Full single-host closed loop: Isaac Sim stimulus → VSS perception → PSF → ROS → Isaac forklift.",{"type":42,"tag":121,"props":198,"children":199},{},[200,211,216],{"type":42,"tag":148,"props":201,"children":202},{},[203,209],{"type":42,"tag":104,"props":204,"children":206},{"className":205},[],[207],{"type":48,"value":208},"hil",{"type":48,"value":210}," 🚧",{"type":42,"tag":148,"props":212,"children":213},{},[214],{"type":48,"value":215},"comm-layer, isaac-sim, mediamtx",{"type":42,"tag":148,"props":217,"children":218},{},[219,221],{"type":48,"value":220},"🚧 ",{"type":42,"tag":57,"props":222,"children":223},{},[224],{"type":48,"value":225},"Under development.",{"type":42,"tag":72,"props":227,"children":228},{},[229],{"type":42,"tag":51,"props":230,"children":231},{},[232,237,239,245],{"type":42,"tag":57,"props":233,"children":234},{},[235],{"type":48,"value":236},"2D today. A 3D (Sparse4D) profile is 🚧 under development",{"type":48,"value":238}," — see\n",{"type":42,"tag":104,"props":240,"children":242},{"className":241},[],[243],{"type":48,"value":244},"references\u002Fvss_3d_overrides.md",{"type":48,"value":246}," when it lands.",{"type":42,"tag":72,"props":248,"children":249},{},[250],{"type":42,"tag":51,"props":251,"children":252},{},[253,263,265,270,272,277,279,285],{"type":42,"tag":57,"props":254,"children":255},{},[256,261],{"type":42,"tag":104,"props":257,"children":259},{"className":258},[],[260],{"type":48,"value":156},{"type":48,"value":262}," on IGX Thor (aarch64)",{"type":48,"value":264}," — the skill detects the platform and, on Thor, asks whether to run the SDM on ",{"type":42,"tag":57,"props":266,"children":267},{},[268],{"type":48,"value":269},"CCPLEX",{"type":48,"value":271}," or ",{"type":42,"tag":57,"props":273,"children":274},{},[275],{"type":48,"value":276},"FSI",{"type":48,"value":278}," (covered in ",{"type":42,"tag":104,"props":280,"children":282},{"className":281},[],[283],{"type":48,"value":284},"references\u002Fhalos_thor.md",{"type":48,"value":286},"). The CCPLEX path follows the x86 flow; the FSI path is advanced (a one-time firmware reflash).",{"type":42,"tag":88,"props":288,"children":289},{},[],{"type":42,"tag":92,"props":291,"children":293},{"id":292},"architecture-sil-profile",[294],{"type":48,"value":295},"Architecture (sil profile)",{"type":42,"tag":297,"props":298,"children":302},"pre",{"className":299,"code":301,"language":48},[300],"language-text","Isaac Sim (forklift + digital humans, segments-driven)\n     ↓ RTSP (3 cameras, H265, via MediaMTX)\nVSS Warehouse 3.2 (AI Perception)\n     ├─ vss-rtvi-cv: detection + tracking\n     └─ vss-behavior-analytics: ROI \u002F tripwire (forklift-in-trailer)\n     ↓ Kafka events (mdx-events topic)\nSafety Core (PSF)\n     ├─ SEI: multi-camera fusion + event validation\n     └─ SDM: ATL decision logic (MUTE\u002FUNMUTE)\n     ↓ UDP 64-byte packet (port 12346)\nCommunication Layer → ROS2 \u002Fsafety\u002Fis_muted → Isaac Sim Action Graph (forklift safety disc)\n",[303],{"type":42,"tag":104,"props":304,"children":306},{"__ignoreMap":305},"",[307],{"type":48,"value":301},{"type":42,"tag":51,"props":309,"children":310},{},[311,316],{"type":42,"tag":57,"props":312,"children":313},{},[314],{"type":48,"value":315},"Two separate stacks",{"type":48,"value":317},":",{"type":42,"tag":319,"props":320,"children":321},"ul",{},[322,341],{"type":42,"tag":323,"props":324,"children":325},"li",{},[326,331,333,339],{"type":42,"tag":57,"props":327,"children":328},{},[329],{"type":48,"value":330},"Stack 1",{"type":48,"value":332},": VSS Warehouse 3.2 (perception) — deploy via the ",{"type":42,"tag":104,"props":334,"children":336},{"className":335},[],[337],{"type":48,"value":338},"vss-deploy-profile",{"type":48,"value":340}," skill (or the public VSS Warehouse docs: github.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization); must be up + healthy first.",{"type":42,"tag":323,"props":342,"children":343},{},[344,349,351,356,358,363,364,369],{"type":42,"tag":57,"props":345,"children":346},{},[347],{"type":48,"value":348},"Stack 2",{"type":48,"value":350},": Halos (",{"type":42,"tag":104,"props":352,"children":354},{"className":353},[],[355],{"type":48,"value":156},{"type":48,"value":357},"\u002F",{"type":42,"tag":104,"props":359,"children":361},{"className":360},[],[362],{"type":48,"value":186},{"type":48,"value":357},{"type":42,"tag":104,"props":365,"children":367},{"className":366},[],[368],{"type":48,"value":208},{"type":48,"value":370},") — this skill.",{"type":42,"tag":88,"props":372,"children":373},{},[],{"type":42,"tag":92,"props":375,"children":377},{"id":376},"agent-autonomy-rules",[378],{"type":48,"value":379},"Agent Autonomy Rules",{"type":42,"tag":51,"props":381,"children":382},{},[383],{"type":48,"value":384},"When invoked autonomously (no human in the loop):",{"type":42,"tag":386,"props":387,"children":388},"ol",{},[389,399,425,441,467,477],{"type":42,"tag":323,"props":390,"children":391},{},[392,397],{"type":42,"tag":57,"props":393,"children":394},{},[395],{"type":48,"value":396},"Proceed through all phases without asking for confirmation",{"type":48,"value":398}," at phase\nboundaries. Only stop on a real error or a missing input that the user\nmust provide (e.g., NGC API key not present anywhere).",{"type":42,"tag":323,"props":400,"children":401},{},[402,407,409,415,417,423],{"type":42,"tag":57,"props":403,"children":404},{},[405],{"type":48,"value":406},"Use the Ready Signals table below as phase gates",{"type":48,"value":408},", not narrative time\nestimates (\"wait ~15 min\") and not process existence (",{"type":42,"tag":104,"props":410,"children":412},{"className":411},[],[413],{"type":48,"value":414},"pgrep -f \"compose up\"",{"type":48,"value":416},").\n",{"type":42,"tag":104,"props":418,"children":420},{"className":419},[],[421],{"type":48,"value":422},"compose up --detach",{"type":48,"value":424}," exits before containers are actually serving.",{"type":42,"tag":323,"props":426,"children":427},{},[428,439],{"type":42,"tag":57,"props":429,"children":430},{},[431,433],{"type":48,"value":432},"Never use ",{"type":42,"tag":104,"props":434,"children":436},{"className":435},[],[437],{"type":48,"value":438},"docker logs -f",{"type":48,"value":440}," or any blocking follow command in the main\nflow. Use a poll loop with a non-blocking grep instead.",{"type":42,"tag":323,"props":442,"children":443},{},[444,449,451,457,459,465],{"type":42,"tag":57,"props":445,"children":446},{},[447],{"type":48,"value":448},"Pre-pull large images in parallel",{"type":48,"value":450}," with the VSS Warehouse build: the PSF\nimage (",{"type":42,"tag":104,"props":452,"children":454},{"className":453},[],[455],{"type":48,"value":456},"PSF_IMAGE",{"type":48,"value":458},") and the Isaac Sim base (",{"type":42,"tag":104,"props":460,"children":462},{"className":461},[],[463],{"type":48,"value":464},"ISAAC_SIM_IMAGE",{"type":48,"value":466},"), both from the\nprofile run-env (~30 GB total), to save wall time.",{"type":42,"tag":323,"props":468,"children":469},{},[470,475],{"type":42,"tag":57,"props":471,"children":472},{},[473],{"type":48,"value":474},"Emit a heartbeat line every poll iteration",{"type":48,"value":476}," so the user can see the agent\nis alive during long phases (TensorRT build, Isaac Sim shader compile).",{"type":42,"tag":323,"props":478,"children":479},{},[480,485,487,493],{"type":42,"tag":57,"props":481,"children":482},{},[483],{"type":48,"value":484},"Do NOT declare \"deployment complete\"",{"type":48,"value":486}," until the final ready signal fires:\nsim-driven safety transitions in ",{"type":42,"tag":104,"props":488,"children":490},{"className":489},[],[491],{"type":48,"value":492},"\u003Csil-data>\u002Fcomm-layer\u002Fopc_server.log",{"type":48,"value":494},".\n\"All containers Up\" is not the same as \"system working\".",{"type":42,"tag":88,"props":496,"children":497},{},[],{"type":42,"tag":92,"props":499,"children":501},{"id":500},"ready-signals",[502],{"type":48,"value":503},"Ready Signals",{"type":42,"tag":51,"props":505,"children":506},{},[507],{"type":48,"value":508},"Each phase ends when its ready signal becomes true. Poll, don't wait by time.",{"type":42,"tag":113,"props":510,"children":511},{},[512,528],{"type":42,"tag":117,"props":513,"children":514},{},[515],{"type":42,"tag":121,"props":516,"children":517},{},[518,523],{"type":42,"tag":125,"props":519,"children":520},{},[521],{"type":48,"value":522},"Phase",{"type":42,"tag":125,"props":524,"children":525},{},[526],{"type":48,"value":527},"Ready signal (poll until true)",{"type":42,"tag":141,"props":529,"children":530},{},[531,552,580,599,618,645,663,712,769,798],{"type":42,"tag":121,"props":532,"children":533},{},[534,539],{"type":42,"tag":148,"props":535,"children":536},{},[537],{"type":48,"value":538},"Prerequisites",{"type":42,"tag":148,"props":540,"children":541},{},[542,544,550],{"type":48,"value":543},"All checks in ",{"type":42,"tag":104,"props":545,"children":547},{"className":546},[],[548],{"type":48,"value":549},"prerequisites.md",{"type":48,"value":551}," Summary checklist pass",{"type":42,"tag":121,"props":553,"children":554},{},[555,560],{"type":42,"tag":148,"props":556,"children":557},{},[558],{"type":48,"value":559},"NGC artifacts",{"type":42,"tag":148,"props":561,"children":562},{},[563,565,571,573,578],{"type":48,"value":564},"sil-data extracted (",{"type":42,"tag":104,"props":566,"children":568},{"className":567},[],[569],{"type":48,"value":570},"collected-assets\u002F",{"type":48,"value":572}," present) + ",{"type":42,"tag":104,"props":574,"children":576},{"className":575},[],[577],{"type":48,"value":456},{"type":48,"value":579}," pulled + VSS images present",{"type":42,"tag":121,"props":581,"children":582},{},[583,588],{"type":42,"tag":148,"props":584,"children":585},{},[586],{"type":48,"value":587},"VSS perception",{"type":42,"tag":148,"props":589,"children":590},{},[591,597],{"type":42,"tag":104,"props":592,"children":594},{"className":593},[],[595],{"type":48,"value":596},"docker logs vss-rtvi-cv 2>&1 | grep -c \"stream_name Camera\"",{"type":48,"value":598}," returns ≥ 3, all non-zero FPS",{"type":42,"tag":121,"props":600,"children":601},{},[602,607],{"type":42,"tag":148,"props":603,"children":604},{},[605],{"type":48,"value":606},"VSS Kafka",{"type":42,"tag":148,"props":608,"children":609},{},[610,616],{"type":42,"tag":104,"props":611,"children":613},{"className":612},[],[614],{"type":48,"value":615},"docker exec kafka kafka-console-consumer --bootstrap-server localhost:9092 --topic mdx-events --max-messages 1 --timeout-ms 30000",{"type":48,"value":617}," exits 0",{"type":42,"tag":121,"props":619,"children":620},{},[621,626],{"type":42,"tag":148,"props":622,"children":623},{},[624],{"type":48,"value":625},"Halos services",{"type":42,"tag":148,"props":627,"children":628},{},[629,631,636,638,643],{"type":48,"value":630},"The profile's services are all Up (",{"type":42,"tag":104,"props":632,"children":634},{"className":633},[],[635],{"type":48,"value":186},{"type":48,"value":637}," = 4: safety-core, comm-layer, isaac-sim, mediamtx; ",{"type":42,"tag":104,"props":639,"children":641},{"className":640},[],[642],{"type":48,"value":156},{"type":48,"value":644}," = 1)",{"type":42,"tag":121,"props":646,"children":647},{},[648,653],{"type":42,"tag":148,"props":649,"children":650},{},[651],{"type":48,"value":652},"PSF wired",{"type":42,"tag":148,"props":654,"children":655},{},[656,661],{"type":42,"tag":104,"props":657,"children":659},{"className":658},[],[660],{"type":48,"value":492},{"type":48,"value":662}," exists and is non-empty",{"type":42,"tag":121,"props":664,"children":665},{},[666,674],{"type":42,"tag":148,"props":667,"children":668},{},[669],{"type":42,"tag":57,"props":670,"children":671},{},[672],{"type":48,"value":673},"ROS isolation",{"type":42,"tag":148,"props":675,"children":676},{},[677,683,685,694,696,702,704,710],{"type":42,"tag":104,"props":678,"children":680},{"className":679},[],[681],{"type":48,"value":682},"docker exec comm-layer bash -c \"source \u002Fopt\u002Fros\u002Fjazzy\u002Fsetup.bash && ros2 topic info \u002Fsafety\u002Fis_muted -v\"",{"type":48,"value":684}," shows ",{"type":42,"tag":57,"props":686,"children":687},{},[688],{"type":42,"tag":104,"props":689,"children":691},{"className":690},[],[692],{"type":48,"value":693},"Publisher count: 1",{"type":48,"value":695}," (if 2+, multi-machine ",{"type":42,"tag":104,"props":697,"children":699},{"className":698},[],[700],{"type":48,"value":701},"ROS_DOMAIN_ID",{"type":48,"value":703}," collision — see ",{"type":42,"tag":104,"props":705,"children":707},{"className":706},[],[708],{"type":48,"value":709},"troubleshooting.md",{"type":48,"value":711},")",{"type":42,"tag":121,"props":713,"children":714},{},[715,720],{"type":42,"tag":148,"props":716,"children":717},{},[718],{"type":48,"value":719},"Isaac Sim streaming",{"type":42,"tag":148,"props":721,"children":722},{},[723,725,731,733,739,741,746,747,753,755,760,762,768],{"type":48,"value":724},"DeepStream ",{"type":42,"tag":104,"props":726,"children":728},{"className":727},[],[729],{"type":48,"value":730},"vss-rtvi-cv",{"type":48,"value":732}," has 3 active Isaac streams: count of ",{"type":42,"tag":104,"props":734,"children":736},{"className":735},[],[737],{"type":48,"value":738},"new stream added [",{"type":48,"value":740}," ",{"type":42,"tag":57,"props":742,"children":743},{},[744],{"type":48,"value":745},"minus",{"type":48,"value":740},{"type":42,"tag":104,"props":748,"children":750},{"className":749},[],[751],{"type":48,"value":752},"new stream removed [",{"type":48,"value":754}," ≥ 3 (net handles re-runs). First-run RT shader compile is slow — gate on this handoff, ",{"type":42,"tag":57,"props":756,"children":757},{},[758],{"type":48,"value":759},"not",{"type":48,"value":761}," a shader-log string (absent on Isaac 5.1.0). Poll command in ",{"type":42,"tag":104,"props":763,"children":765},{"className":764},[],[766],{"type":48,"value":767},"test_scenario.md",{"type":48,"value":86},{"type":42,"tag":121,"props":770,"children":771},{},[772,777],{"type":42,"tag":148,"props":773,"children":774},{},[775],{"type":48,"value":776},"Isaac Sim wired",{"type":42,"tag":148,"props":778,"children":779},{},[780,786,787,796],{"type":42,"tag":104,"props":781,"children":783},{"className":782},[],[784],{"type":48,"value":785},"ros2 topic info \u002Fsafety\u002Fis_muted -v",{"type":48,"value":684},{"type":42,"tag":57,"props":788,"children":789},{},[790],{"type":42,"tag":104,"props":791,"children":793},{"className":792},[],[794],{"type":48,"value":795},"Subscription count: 1",{"type":48,"value":797}," (Isaac forklift Action Graph connected)",{"type":42,"tag":121,"props":799,"children":800},{},[801,806],{"type":42,"tag":148,"props":802,"children":803},{},[804],{"type":48,"value":805},"Sim-driven safety",{"type":42,"tag":148,"props":807,"children":808},{},[809,811,817,818,823],{"type":48,"value":810},"forklift\u002Ftrailer transitions in ",{"type":42,"tag":104,"props":812,"children":814},{"className":813},[],[815],{"type":48,"value":816},"\u003Csil-data>\u002Fpsf-log\u002Fpss.log",{"type":48,"value":740},{"type":42,"tag":57,"props":819,"children":820},{},[821],{"type":48,"value":822},"after",{"type":48,"value":824}," Isaac streams came up (not sample-video bootstrap traffic)",{"type":42,"tag":51,"props":826,"children":827},{},[828],{"type":48,"value":829},"The exact poll command for each signal is in the corresponding reference doc.",{"type":42,"tag":88,"props":831,"children":832},{},[],{"type":42,"tag":92,"props":834,"children":836},{"id":835},"quick-start-workflow",[837],{"type":48,"value":838},"Quick Start Workflow",{"type":42,"tag":51,"props":840,"children":841},{},[842,844],{"type":48,"value":843},"Deploy in strict order. ",{"type":42,"tag":57,"props":845,"children":846},{},[847],{"type":48,"value":848},"Stack 1 (VSS) must be running before Stack 2 (Halos).",{"type":42,"tag":297,"props":850,"children":853},{"className":851,"code":852,"language":48},[300],"- [ ] 1. Clone the HOISA OSS repo (this skill lives in skills\u002F)\n- [ ] 2. Check prerequisites (host setup overlaps VSS — run VSS prereq first) → references\u002Fprerequisites.md\n- [ ] 3. Pull NGC artifacts (sil-data + PSF image + VSS images)  → references\u002Fngc_artifacts.md\n- [ ] 4. Deploy VSS Warehouse 3.2 via `vss-deploy-profile`,\n        apply SIL overrides BEFORE its compose up                → references\u002Fvss_2d_overrides.md\n- [ ] 5. Poll VSS perception + Kafka ready signals\n- [ ] 6. Configure deployments\u002Fprofiles\u002F\u003Cprofile>.env, then\n        deploy Halos (setup.sh + cleanup + compose up --build)   → references\u002Fhalos_deploy.md\n- [ ] 7. Set a unique ROS_DOMAIN_ID (0-232) + verify Publisher count=1\n- [ ] 8. (sil) Run the Isaac Sim test scenario                   → references\u002Ftest_scenario.md\n- [ ] 9. Monitor until sim-driven safety transitions appear (the \"complete\" signal)\n",[854],{"type":42,"tag":104,"props":855,"children":856},{"__ignoreMap":305},[857],{"type":48,"value":852},{"type":42,"tag":88,"props":859,"children":860},{},[],{"type":42,"tag":92,"props":862,"children":864},{"id":863},"reference-documents",[865],{"type":48,"value":866},"Reference Documents",{"type":42,"tag":113,"props":868,"children":869},{},[870,886],{"type":42,"tag":117,"props":871,"children":872},{},[873],{"type":42,"tag":121,"props":874,"children":875},{},[876,881],{"type":42,"tag":125,"props":877,"children":878},{},[879],{"type":48,"value":880},"Document",{"type":42,"tag":125,"props":882,"children":883},{},[884],{"type":48,"value":885},"Use When",{"type":42,"tag":141,"props":887,"children":888},{},[889,906,950,974,995,1011,1033,1054,1070],{"type":42,"tag":121,"props":890,"children":891},{},[892,901],{"type":42,"tag":148,"props":893,"children":894},{},[895],{"type":42,"tag":896,"props":897,"children":899},"a",{"href":898},"references\u002Fprerequisites.md",[900],{"type":48,"value":898},{"type":42,"tag":148,"props":902,"children":903},{},[904],{"type":48,"value":905},"Hardware\u002Fsoftware requirements, Docker, NGC CLI, driver, GPU selection",{"type":42,"tag":121,"props":907,"children":908},{},[909,917],{"type":42,"tag":148,"props":910,"children":911},{},[912],{"type":42,"tag":896,"props":913,"children":915},{"href":914},"references\u002Fngc_artifacts.md",[916],{"type":48,"value":914},{"type":42,"tag":148,"props":918,"children":919},{},[920,922],{"type":48,"value":921},"Pulling sil-data + PSF image + VSS images from NGC; ",{"type":42,"tag":57,"props":923,"children":924},{},[925,927,933,935,941,943,949],{"type":48,"value":926},"Thor Safety Core ",{"type":42,"tag":104,"props":928,"children":930},{"className":929},[],[931],{"type":48,"value":932},".deb",{"type":48,"value":934},"s (",{"type":42,"tag":104,"props":936,"children":938},{"className":937},[],[939],{"type":48,"value":940},"psf-tegra",{"type":48,"value":942}," + ",{"type":42,"tag":104,"props":944,"children":946},{"className":945},[],[947],{"type":48,"value":948},"psf-tegra-fsi",{"type":48,"value":711},{"type":42,"tag":121,"props":951,"children":952},{},[953,961],{"type":42,"tag":148,"props":954,"children":955},{},[956],{"type":42,"tag":896,"props":957,"children":959},{"href":958},"references\u002Fvss_2d_overrides.md",[960],{"type":48,"value":958},{"type":42,"tag":148,"props":962,"children":963},{},[964,966,972],{"type":48,"value":965},"VSS Warehouse 2D ",{"type":42,"tag":104,"props":967,"children":969},{"className":968},[],[970],{"type":48,"value":971},".env",{"type":48,"value":973},", DeepStream config, and VST config for Isaac Sim",{"type":42,"tag":121,"props":975,"children":976},{},[977,984],{"type":42,"tag":148,"props":978,"children":979},{},[980],{"type":42,"tag":896,"props":981,"children":982},{"href":244},[983],{"type":48,"value":244},{"type":42,"tag":148,"props":985,"children":986},{},[987,988,993],{"type":48,"value":220},{"type":42,"tag":57,"props":989,"children":990},{},[991],{"type":48,"value":992},"Under development",{"type":48,"value":994}," — 3D (Sparse4D) profile overrides",{"type":42,"tag":121,"props":996,"children":997},{},[998,1006],{"type":42,"tag":148,"props":999,"children":1000},{},[1001],{"type":42,"tag":896,"props":1002,"children":1004},{"href":1003},"references\u002Fhalos_deploy.md",[1005],{"type":48,"value":1003},{"type":42,"tag":148,"props":1007,"children":1008},{},[1009],{"type":48,"value":1010},"Configuring and deploying the Halos stack by profile",{"type":42,"tag":121,"props":1012,"children":1013},{},[1014,1021],{"type":42,"tag":148,"props":1015,"children":1016},{},[1017],{"type":42,"tag":896,"props":1018,"children":1019},{"href":284},[1020],{"type":48,"value":284},{"type":42,"tag":148,"props":1022,"children":1023},{},[1024,1026,1031],{"type":48,"value":1025},"Deploying ",{"type":42,"tag":104,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":48,"value":156},{"type":48,"value":1032}," on IGX Thor (aarch64) — SDM on CCPLEX or FSI",{"type":42,"tag":121,"props":1034,"children":1035},{},[1036,1044],{"type":42,"tag":148,"props":1037,"children":1038},{},[1039],{"type":42,"tag":896,"props":1040,"children":1042},{"href":1041},"references\u002Fhalos_hil.md",[1043],{"type":48,"value":1041},{"type":42,"tag":148,"props":1045,"children":1046},{},[1047,1048,1052],{"type":48,"value":220},{"type":42,"tag":57,"props":1049,"children":1050},{},[1051],{"type":48,"value":992},{"type":48,"value":1053}," — HIL profile",{"type":42,"tag":121,"props":1055,"children":1056},{},[1057,1065],{"type":42,"tag":148,"props":1058,"children":1059},{},[1060],{"type":42,"tag":896,"props":1061,"children":1063},{"href":1062},"references\u002Ftest_scenario.md",[1064],{"type":48,"value":1062},{"type":42,"tag":148,"props":1066,"children":1067},{},[1068],{"type":48,"value":1069},"Running the simulation, monitoring safety commands, viewing camera streams",{"type":42,"tag":121,"props":1071,"children":1072},{},[1073,1081],{"type":42,"tag":148,"props":1074,"children":1075},{},[1076],{"type":42,"tag":896,"props":1077,"children":1079},{"href":1078},"references\u002Ftroubleshooting.md",[1080],{"type":48,"value":1078},{"type":42,"tag":148,"props":1082,"children":1083},{},[1084],{"type":48,"value":1085},"Fixing deployment errors",{"type":42,"tag":88,"props":1087,"children":1088},{},[],{"type":42,"tag":92,"props":1090,"children":1092},{"id":1091},"critical-rules",[1093],{"type":48,"value":1094},"Critical Rules",{"type":42,"tag":113,"props":1096,"children":1097},{},[1098,1119],{"type":42,"tag":117,"props":1099,"children":1100},{},[1101],{"type":42,"tag":121,"props":1102,"children":1103},{},[1104,1109,1114],{"type":42,"tag":125,"props":1105,"children":1106},{},[1107],{"type":48,"value":1108},"Tag",{"type":42,"tag":125,"props":1110,"children":1111},{},[1112],{"type":48,"value":1113},"Rule",{"type":42,"tag":125,"props":1115,"children":1116},{},[1117],{"type":48,"value":1118},"Details in",{"type":42,"tag":141,"props":1120,"children":1121},{},[1122,1161,1193,1218,1248,1289,1330,1413,1516,1554,1608,1659,1696,1755,1791,1823],{"type":42,"tag":121,"props":1123,"children":1124},{},[1125,1134,1152],{"type":42,"tag":148,"props":1126,"children":1127},{},[1128],{"type":42,"tag":104,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":48,"value":1133},"VSS_DEPLOY_PROFILE",{"type":42,"tag":148,"props":1135,"children":1136},{},[1137,1139,1144,1146],{"type":48,"value":1138},"Deploy VSS Warehouse 3.2 with the ",{"type":42,"tag":104,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":48,"value":338},{"type":48,"value":1145}," skill; apply SIL overrides before its ",{"type":42,"tag":104,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":48,"value":1151},"docker compose up",{"type":42,"tag":148,"props":1153,"children":1154},{},[1155],{"type":42,"tag":104,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":48,"value":1160},"vss_2d_overrides.md",{"type":42,"tag":121,"props":1162,"children":1163},{},[1164,1173,1185],{"type":42,"tag":148,"props":1165,"children":1166},{},[1167],{"type":42,"tag":104,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":48,"value":1172},"VSS_BEFORE_HALOS",{"type":42,"tag":148,"props":1174,"children":1175},{},[1176,1178,1183],{"type":48,"value":1177},"VSS Warehouse ",{"type":42,"tag":57,"props":1179,"children":1180},{},[1181],{"type":48,"value":1182},"must",{"type":48,"value":1184}," be running and healthy before deploying Halos",{"type":42,"tag":148,"props":1186,"children":1187},{},[1188],{"type":42,"tag":104,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":48,"value":1160},{"type":42,"tag":121,"props":1194,"children":1195},{},[1196,1205,1210],{"type":42,"tag":148,"props":1197,"children":1198},{},[1199],{"type":42,"tag":104,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":48,"value":1204},"KAFKA_BEFORE_PSF",{"type":42,"tag":148,"props":1206,"children":1207},{},[1208],{"type":48,"value":1209},"Kafka must be up before PSF starts — PSF connects to Kafka on startup",{"type":42,"tag":148,"props":1211,"children":1212},{},[1213],{"type":42,"tag":104,"props":1214,"children":1216},{"className":1215},[],[1217],{"type":48,"value":709},{"type":42,"tag":121,"props":1219,"children":1220},{},[1221,1230,1240],{"type":42,"tag":148,"props":1222,"children":1223},{},[1224],{"type":42,"tag":104,"props":1225,"children":1227},{"className":1226},[],[1228],{"type":48,"value":1229},"DEEPSTREAM_SEI",{"type":42,"tag":148,"props":1231,"children":1232},{},[1233,1238],{"type":42,"tag":57,"props":1234,"children":1235},{},[1236],{"type":48,"value":1237},"Disable",{"type":48,"value":1239}," SEI extraction + enable system timestamps in DeepStream — Isaac Sim RTSP carries no SEI",{"type":42,"tag":148,"props":1241,"children":1242},{},[1243],{"type":42,"tag":104,"props":1244,"children":1246},{"className":1245},[],[1247],{"type":48,"value":1160},{"type":42,"tag":121,"props":1249,"children":1250},{},[1251,1260,1281],{"type":42,"tag":148,"props":1252,"children":1253},{},[1254],{"type":42,"tag":104,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":48,"value":1259},"BP_PROFILE_KAFKA",{"type":42,"tag":148,"props":1261,"children":1262},{},[1263,1265,1271,1273,1279],{"type":48,"value":1264},"VSS must use ",{"type":42,"tag":104,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":48,"value":1270},"BP_PROFILE=bp_wh_kafka",{"type":48,"value":1272}," (not ",{"type":42,"tag":104,"props":1274,"children":1276},{"className":1275},[],[1277],{"type":48,"value":1278},"bp_wh",{"type":48,"value":1280},") for Halos integration",{"type":42,"tag":148,"props":1282,"children":1283},{},[1284],{"type":42,"tag":104,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":48,"value":1160},{"type":42,"tag":121,"props":1290,"children":1291},{},[1292,1301,1322],{"type":42,"tag":148,"props":1293,"children":1294},{},[1295],{"type":42,"tag":104,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":48,"value":1300},"LLM_VLM_NONE",{"type":42,"tag":148,"props":1302,"children":1303},{},[1304,1306,1312,1314,1320],{"type":48,"value":1305},"Set ",{"type":42,"tag":104,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":48,"value":1311},"LLM_MODE=none",{"type":48,"value":1313}," and ",{"type":42,"tag":104,"props":1315,"children":1317},{"className":1316},[],[1318],{"type":48,"value":1319},"VLM_MODE=none",{"type":48,"value":1321}," — not needed for safety SIL",{"type":42,"tag":148,"props":1323,"children":1324},{},[1325],{"type":42,"tag":104,"props":1326,"children":1328},{"className":1327},[],[1329],{"type":48,"value":1160},{"type":42,"tag":121,"props":1331,"children":1332},{},[1333,1342,1397],{"type":42,"tag":148,"props":1334,"children":1335},{},[1336],{"type":42,"tag":104,"props":1337,"children":1339},{"className":1338},[],[1340],{"type":48,"value":1341},"HALO_SAFETY_BASE",{"type":42,"tag":148,"props":1343,"children":1344},{},[1345,1355,1357,1363,1365,1371,1373,1379,1381,1387,1389,1395],{"type":42,"tag":57,"props":1346,"children":1347},{},[1348,1353],{"type":42,"tag":104,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":48,"value":156},{"type":48,"value":1354}," profile",{"type":48,"value":1356},": to render the safety overlay, set ",{"type":42,"tag":104,"props":1358,"children":1360},{"className":1359},[],[1361],{"type":48,"value":1362},"halo_safety_udp_port",{"type":48,"value":1364}," in the VSS 2D ",{"type":42,"tag":104,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":48,"value":1370},"vst_config.json",{"type":48,"value":1372}," from ",{"type":42,"tag":104,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":48,"value":1378},"-1",{"type":48,"value":1380}," → ",{"type":42,"tag":104,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":48,"value":1386},"12345",{"type":48,"value":1388}," (must equal ",{"type":42,"tag":104,"props":1390,"children":1392},{"className":1391},[],[1393],{"type":48,"value":1394},"COMM_UDP_PORT",{"type":48,"value":1396},"), then restart VST",{"type":42,"tag":148,"props":1398,"children":1399},{},[1400,1406,1408],{"type":42,"tag":104,"props":1401,"children":1403},{"className":1402},[],[1404],{"type":48,"value":1405},"halos_deploy.md",{"type":48,"value":1407},", ",{"type":42,"tag":104,"props":1409,"children":1411},{"className":1410},[],[1412],{"type":48,"value":1160},{"type":42,"tag":121,"props":1414,"children":1415},{},[1416,1425,1507],{"type":42,"tag":148,"props":1417,"children":1418},{},[1419],{"type":42,"tag":104,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":48,"value":1424},"THOR_BASE",{"type":42,"tag":148,"props":1426,"children":1427},{},[1428,1438,1440,1446,1448,1454,1456,1467,1468,1473,1475,1479,1481,1485,1487,1493,1495,1499,1500,1506],{"type":42,"tag":57,"props":1429,"children":1430},{},[1431,1436],{"type":42,"tag":104,"props":1432,"children":1434},{"className":1433},[],[1435],{"type":48,"value":156},{"type":48,"value":1437},": detect the platform",{"type":48,"value":1439}," (",{"type":42,"tag":104,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":48,"value":1445},"uname -m",{"type":48,"value":1447},"). ",{"type":42,"tag":104,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":48,"value":1453},"x86_64",{"type":48,"value":1455}," → standard container base. ",{"type":42,"tag":57,"props":1457,"children":1458},{},[1459,1465],{"type":42,"tag":104,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":48,"value":1464},"aarch64",{"type":48,"value":1466}," (IGX Thor)",{"type":48,"value":1380},{"type":42,"tag":57,"props":1469,"children":1470},{},[1471],{"type":48,"value":1472},"ask the user",{"type":48,"value":1474}," which SDM target before deploying — ",{"type":42,"tag":57,"props":1476,"children":1477},{},[1478],{"type":48,"value":269},{"type":48,"value":1480}," (decision-maker as host software on the Thor application cores; simpler, no firmware change) or ",{"type":42,"tag":57,"props":1482,"children":1483},{},[1484],{"type":48,"value":276},{"type":48,"value":1486}," (decision-maker on the Functional Safety Island, the on-die safety microcontroller; needs a one-time firmware reflash) — then launch via ",{"type":42,"tag":104,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":48,"value":1492},"launch_thor_safety.sh",{"type":48,"value":1494}," (hybrid container + host binaries, ",{"type":42,"tag":57,"props":1496,"children":1497},{},[1498],{"type":48,"value":759},{"type":48,"value":740},{"type":42,"tag":104,"props":1501,"children":1503},{"className":1502},[],[1504],{"type":48,"value":1505},"docker compose",{"type":48,"value":711},{"type":42,"tag":148,"props":1508,"children":1509},{},[1510],{"type":42,"tag":104,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":48,"value":1515},"halos_thor.md",{"type":42,"tag":121,"props":1517,"children":1518},{},[1519,1528,1546],{"type":42,"tag":148,"props":1520,"children":1521},{},[1522],{"type":42,"tag":104,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":48,"value":1527},"HOST_IP_BOTH",{"type":42,"tag":148,"props":1529,"children":1530},{},[1531,1537,1539,1544],{"type":42,"tag":104,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":48,"value":1536},"HOST_IP",{"type":48,"value":1538}," must be set in ",{"type":42,"tag":57,"props":1540,"children":1541},{},[1542],{"type":48,"value":1543},"both",{"type":48,"value":1545}," the VSS and Halos run-env files",{"type":42,"tag":148,"props":1547,"children":1548},{},[1549],{"type":42,"tag":104,"props":1550,"children":1552},{"className":1551},[],[1553],{"type":48,"value":1405},{"type":42,"tag":121,"props":1555,"children":1556},{},[1557,1566,1593],{"type":42,"tag":148,"props":1558,"children":1559},{},[1560],{"type":42,"tag":104,"props":1561,"children":1563},{"className":1562},[],[1564],{"type":48,"value":1565},"SIL_DATA_PATH",{"type":42,"tag":148,"props":1567,"children":1568},{},[1569,1571,1577,1579,1584,1586,1591],{"type":48,"value":1570},"Halos ",{"type":42,"tag":104,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":48,"value":1576},"MDX_DATA_DIR",{"type":48,"value":1578}," points to ",{"type":42,"tag":57,"props":1580,"children":1581},{},[1582],{"type":48,"value":1583},"sil-data",{"type":48,"value":1585}," (has ",{"type":42,"tag":104,"props":1587,"children":1589},{"className":1588},[],[1590],{"type":48,"value":570},{"type":48,"value":1592},"), not VSS app-data",{"type":42,"tag":148,"props":1594,"children":1595},{},[1596,1601,1602],{"type":42,"tag":104,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":48,"value":1405},{"type":48,"value":1407},{"type":42,"tag":104,"props":1603,"children":1605},{"className":1604},[],[1606],{"type":48,"value":1607},"ngc_artifacts.md",{"type":42,"tag":121,"props":1609,"children":1610},{},[1611,1620,1645],{"type":42,"tag":148,"props":1612,"children":1613},{},[1614],{"type":42,"tag":104,"props":1615,"children":1617},{"className":1616},[],[1618],{"type":48,"value":1619},"ROS_DOMAIN_UNIQUE",{"type":42,"tag":148,"props":1621,"children":1622},{},[1623,1625,1630,1632,1637,1639],{"type":48,"value":1624},"Assign a unique ",{"type":42,"tag":104,"props":1626,"children":1628},{"className":1627},[],[1629],{"type":48,"value":701},{"type":48,"value":1631}," (0-232) per machine; verify ",{"type":42,"tag":104,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":48,"value":693},{"type":48,"value":1638}," on ",{"type":42,"tag":104,"props":1640,"children":1642},{"className":1641},[],[1643],{"type":48,"value":1644},"\u002Fsafety\u002Fis_muted",{"type":42,"tag":148,"props":1646,"children":1647},{},[1648,1653,1654],{"type":42,"tag":104,"props":1649,"children":1651},{"className":1650},[],[1652],{"type":48,"value":1405},{"type":48,"value":1407},{"type":42,"tag":104,"props":1655,"children":1657},{"className":1656},[],[1658],{"type":48,"value":709},{"type":42,"tag":121,"props":1660,"children":1661},{},[1662,1671,1682],{"type":42,"tag":148,"props":1663,"children":1664},{},[1665],{"type":42,"tag":104,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":48,"value":1670},"GPU_NOT_PERCEPTION",{"type":42,"tag":148,"props":1672,"children":1673},{},[1674,1676,1680],{"type":48,"value":1675},"Run Isaac Sim on a GPU (RT cores, >20 GB) that is ",{"type":42,"tag":57,"props":1677,"children":1678},{},[1679],{"type":48,"value":759},{"type":48,"value":1681}," running VSS perception",{"type":42,"tag":148,"props":1683,"children":1684},{},[1685,1690,1691],{"type":42,"tag":104,"props":1686,"children":1688},{"className":1687},[],[1689],{"type":48,"value":549},{"type":48,"value":1407},{"type":42,"tag":104,"props":1692,"children":1694},{"className":1693},[],[1695],{"type":48,"value":1405},{"type":42,"tag":121,"props":1697,"children":1698},{},[1699,1708,1747],{"type":42,"tag":148,"props":1700,"children":1701},{},[1702],{"type":42,"tag":104,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":48,"value":1707},"SETUP_BEFORE_UP",{"type":42,"tag":148,"props":1709,"children":1710},{},[1711,1713,1719,1720,1726,1727,1732,1733,1738,1740,1746],{"type":48,"value":1712},"Run ",{"type":42,"tag":104,"props":1714,"children":1716},{"className":1715},[],[1717],{"type":48,"value":1718},"setup.sh \u003Cprofile>",{"type":48,"value":1313},{"type":42,"tag":104,"props":1721,"children":1723},{"className":1722},[],[1724],{"type":48,"value":1725},"cleanup_all_datalog.sh \u003Cprofile>",{"type":48,"value":740},{"type":42,"tag":57,"props":1728,"children":1729},{},[1730],{"type":48,"value":1731},"before",{"type":48,"value":740},{"type":42,"tag":104,"props":1734,"children":1736},{"className":1735},[],[1737],{"type":48,"value":1151},{"type":48,"value":1739}," (both read ",{"type":42,"tag":104,"props":1741,"children":1743},{"className":1742},[],[1744],{"type":48,"value":1745},"profiles\u002F\u003Cprofile>.env",{"type":48,"value":711},{"type":42,"tag":148,"props":1748,"children":1749},{},[1750],{"type":42,"tag":104,"props":1751,"children":1753},{"className":1752},[],[1754],{"type":48,"value":1405},{"type":42,"tag":121,"props":1756,"children":1757},{},[1758,1767,1786],{"type":42,"tag":148,"props":1759,"children":1760},{},[1761],{"type":42,"tag":104,"props":1762,"children":1764},{"className":1763},[],[1765],{"type":48,"value":1766},"POLL_NEVER_WAIT",{"type":42,"tag":148,"props":1768,"children":1769},{},[1770,1772,1777,1779,1784],{"type":48,"value":1771},"First VSS startup takes 10-15 min (TensorRT build); Isaac shaders ~5-10 min — ",{"type":42,"tag":57,"props":1773,"children":1774},{},[1775],{"type":48,"value":1776},"poll",{"type":48,"value":1778}," the ready signal, never ",{"type":42,"tag":104,"props":1780,"children":1782},{"className":1781},[],[1783],{"type":48,"value":438},{"type":48,"value":1785}," or a fixed timer",{"type":42,"tag":148,"props":1787,"children":1788},{},[1789],{"type":48,"value":1790},"(this file)",{"type":42,"tag":121,"props":1792,"children":1793},{},[1794,1803,1815],{"type":42,"tag":148,"props":1795,"children":1796},{},[1797],{"type":42,"tag":104,"props":1798,"children":1800},{"className":1799},[],[1801],{"type":48,"value":1802},"COMPLETE_MEANS_SIM_TRAFFIC",{"type":42,"tag":148,"props":1804,"children":1805},{},[1806,1808,1813],{"type":48,"value":1807},"Do not declare \"complete\" until ",{"type":42,"tag":57,"props":1809,"children":1810},{},[1811],{"type":48,"value":1812},"sim-driven",{"type":48,"value":1814}," transitions appear in the OPC log — VSS sample-video bootstrap traffic doesn't count",{"type":42,"tag":148,"props":1816,"children":1817},{},[1818],{"type":42,"tag":104,"props":1819,"children":1821},{"className":1820},[],[1822],{"type":48,"value":767},{"type":42,"tag":121,"props":1824,"children":1825},{},[1826,1835,1858],{"type":42,"tag":148,"props":1827,"children":1828},{},[1829],{"type":42,"tag":104,"props":1830,"children":1832},{"className":1831},[],[1833],{"type":48,"value":1834},"NEVER_SHOW_KEYS",{"type":42,"tag":148,"props":1836,"children":1837},{},[1838,1843,1845,1851,1852],{"type":42,"tag":57,"props":1839,"children":1840},{},[1841],{"type":48,"value":1842},"NEVER",{"type":48,"value":1844}," echo, print, or hardcode NGC API keys or secrets. Read silently from ",{"type":42,"tag":104,"props":1846,"children":1848},{"className":1847},[],[1849],{"type":48,"value":1850},"~\u002F.bashrc",{"type":48,"value":271},{"type":42,"tag":104,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":48,"value":1857},"~\u002F.ngc\u002Fconfig",{"type":42,"tag":148,"props":1859,"children":1860},{},[1861],{"type":42,"tag":104,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":48,"value":549},{"type":42,"tag":88,"props":1867,"children":1868},{},[],{"type":42,"tag":92,"props":1870,"children":1872},{"id":1871},"deployment-stack-summary",[1873],{"type":48,"value":1874},"Deployment Stack Summary",{"type":42,"tag":113,"props":1876,"children":1877},{},[1878,1898],{"type":42,"tag":117,"props":1879,"children":1880},{},[1881],{"type":42,"tag":121,"props":1882,"children":1883},{},[1884,1889,1893],{"type":42,"tag":125,"props":1885,"children":1886},{},[1887],{"type":48,"value":1888},"Stack",{"type":42,"tag":125,"props":1890,"children":1891},{},[1892],{"type":48,"value":134},{"type":42,"tag":125,"props":1894,"children":1895},{},[1896],{"type":48,"value":1897},"Source",{"type":42,"tag":141,"props":1899,"children":1900},{},[1901,1923],{"type":42,"tag":121,"props":1902,"children":1903},{},[1904,1908,1913],{"type":42,"tag":148,"props":1905,"children":1906},{},[1907],{"type":48,"value":84},{"type":42,"tag":148,"props":1909,"children":1910},{},[1911],{"type":48,"value":1912},"vss-vios-*, vss-rtvi-cv, vss-behavior-analytics, vss-configurator, kafka, redis, …",{"type":42,"tag":148,"props":1914,"children":1915},{},[1916,1921],{"type":42,"tag":104,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":48,"value":338},{"type":48,"value":1922}," skill (VSS repo)",{"type":42,"tag":121,"props":1924,"children":1925},{},[1926,1931,1935],{"type":42,"tag":148,"props":1927,"children":1928},{},[1929],{"type":48,"value":1930},"Halos (profile)",{"type":42,"tag":148,"props":1932,"children":1933},{},[1934],{"type":48,"value":191},{"type":42,"tag":148,"props":1936,"children":1937},{},[1938,1940,1946,1948,1953],{"type":48,"value":1939},"this OSS repo (",{"type":42,"tag":104,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":48,"value":1945},"deployments\u002Fcompose.yaml",{"type":48,"value":1947},") + ",{"type":42,"tag":104,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":48,"value":456},{"type":48,"value":1954}," from NGC",{"type":42,"tag":88,"props":1956,"children":1957},{},[],{"type":42,"tag":92,"props":1959,"children":1961},{"id":1960},"key-urls-after-deployment",[1962],{"type":48,"value":1963},"Key URLs (after deployment)",{"type":42,"tag":113,"props":1965,"children":1966},{},[1967,1983],{"type":42,"tag":117,"props":1968,"children":1969},{},[1970],{"type":42,"tag":121,"props":1971,"children":1972},{},[1973,1978],{"type":42,"tag":125,"props":1974,"children":1975},{},[1976],{"type":48,"value":1977},"Service",{"type":42,"tag":125,"props":1979,"children":1980},{},[1981],{"type":48,"value":1982},"URL",{"type":42,"tag":141,"props":1984,"children":1985},{},[1986,2003,2020],{"type":42,"tag":121,"props":1987,"children":1988},{},[1989,1994],{"type":42,"tag":148,"props":1990,"children":1991},{},[1992],{"type":48,"value":1993},"VST UI (camera streams)",{"type":42,"tag":148,"props":1995,"children":1996},{},[1997],{"type":42,"tag":104,"props":1998,"children":2000},{"className":1999},[],[2001],{"type":48,"value":2002},"http:\u002F\u002F\u003CHOST_IP>:30888\u002Fvst\u002F",{"type":42,"tag":121,"props":2004,"children":2005},{},[2006,2011],{"type":42,"tag":148,"props":2007,"children":2008},{},[2009],{"type":48,"value":2010},"Grafana (monitoring)",{"type":42,"tag":148,"props":2012,"children":2013},{},[2014],{"type":42,"tag":104,"props":2015,"children":2017},{"className":2016},[],[2018],{"type":48,"value":2019},"http:\u002F\u002F\u003CHOST_IP>:32900",{"type":42,"tag":121,"props":2021,"children":2022},{},[2023,2028],{"type":42,"tag":148,"props":2024,"children":2025},{},[2026],{"type":48,"value":2027},"Kibana (analytics)",{"type":42,"tag":148,"props":2029,"children":2030},{},[2031],{"type":42,"tag":104,"props":2032,"children":2034},{"className":2033},[],[2035],{"type":48,"value":2036},"http:\u002F\u002F\u003CHOST_IP>:5601",{"type":42,"tag":88,"props":2038,"children":2039},{},[],{"type":42,"tag":92,"props":2041,"children":2043},{"id":2042},"cleanup",[2044],{"type":48,"value":2045},"Cleanup",{"type":42,"tag":297,"props":2047,"children":2051},{"className":2048,"code":2049,"language":2050,"meta":305,"style":305},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Stop Halos (from the repo's deployments\u002F directory)\ncd \u003Crepo>\u002Fdeployments && docker compose --env-file profiles\u002F\u003Cprofile>.env down\nbash ..\u002Fclosed-loop-testing\u002Fscripts\u002Fcleanup_all_datalog.sh \u003Cprofile>\ndocker volume prune -f\n\n# Stop VSS Warehouse — see the vss-deploy-profile skill\n","bash",[2052],{"type":42,"tag":104,"props":2053,"children":2054},{"__ignoreMap":305},[2055,2067,2159,2189,2213,2223],{"type":42,"tag":2056,"props":2057,"children":2060},"span",{"class":2058,"line":2059},"line",1,[2061],{"type":42,"tag":2056,"props":2062,"children":2064},{"style":2063},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2065],{"type":48,"value":2066},"# Stop Halos (from the repo's deployments\u002F directory)\n",{"type":42,"tag":2056,"props":2068,"children":2070},{"class":2058,"line":2069},2,[2071,2077,2083,2089,2095,2100,2105,2110,2116,2121,2126,2131,2136,2141,2146,2150,2154],{"type":42,"tag":2056,"props":2072,"children":2074},{"style":2073},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[2075],{"type":48,"value":2076},"cd",{"type":42,"tag":2056,"props":2078,"children":2080},{"style":2079},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[2081],{"type":48,"value":2082}," \u003C",{"type":42,"tag":2056,"props":2084,"children":2086},{"style":2085},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[2087],{"type":48,"value":2088},"rep",{"type":42,"tag":2056,"props":2090,"children":2092},{"style":2091},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[2093],{"type":48,"value":2094},"o",{"type":42,"tag":2056,"props":2096,"children":2097},{"style":2079},[2098],{"type":48,"value":2099},">",{"type":42,"tag":2056,"props":2101,"children":2102},{"style":2085},[2103],{"type":48,"value":2104},"\u002Fdeployments",{"type":42,"tag":2056,"props":2106,"children":2107},{"style":2079},[2108],{"type":48,"value":2109}," &&",{"type":42,"tag":2056,"props":2111,"children":2113},{"style":2112},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2114],{"type":48,"value":2115}," docker",{"type":42,"tag":2056,"props":2117,"children":2118},{"style":2085},[2119],{"type":48,"value":2120}," compose",{"type":42,"tag":2056,"props":2122,"children":2123},{"style":2085},[2124],{"type":48,"value":2125}," --env-file",{"type":42,"tag":2056,"props":2127,"children":2128},{"style":2085},[2129],{"type":48,"value":2130}," profiles\u002F",{"type":42,"tag":2056,"props":2132,"children":2133},{"style":2079},[2134],{"type":48,"value":2135},"\u003C",{"type":42,"tag":2056,"props":2137,"children":2138},{"style":2085},[2139],{"type":48,"value":2140},"profil",{"type":42,"tag":2056,"props":2142,"children":2143},{"style":2091},[2144],{"type":48,"value":2145},"e",{"type":42,"tag":2056,"props":2147,"children":2148},{"style":2079},[2149],{"type":48,"value":2099},{"type":42,"tag":2056,"props":2151,"children":2152},{"style":2085},[2153],{"type":48,"value":971},{"type":42,"tag":2056,"props":2155,"children":2156},{"style":2085},[2157],{"type":48,"value":2158}," down\n",{"type":42,"tag":2056,"props":2160,"children":2162},{"class":2058,"line":2161},3,[2163,2167,2172,2176,2180,2184],{"type":42,"tag":2056,"props":2164,"children":2165},{"style":2112},[2166],{"type":48,"value":2050},{"type":42,"tag":2056,"props":2168,"children":2169},{"style":2085},[2170],{"type":48,"value":2171}," ..\u002Fclosed-loop-testing\u002Fscripts\u002Fcleanup_all_datalog.sh",{"type":42,"tag":2056,"props":2173,"children":2174},{"style":2079},[2175],{"type":48,"value":2082},{"type":42,"tag":2056,"props":2177,"children":2178},{"style":2085},[2179],{"type":48,"value":2140},{"type":42,"tag":2056,"props":2181,"children":2182},{"style":2091},[2183],{"type":48,"value":2145},{"type":42,"tag":2056,"props":2185,"children":2186},{"style":2079},[2187],{"type":48,"value":2188},">\n",{"type":42,"tag":2056,"props":2190,"children":2192},{"class":2058,"line":2191},4,[2193,2198,2203,2208],{"type":42,"tag":2056,"props":2194,"children":2195},{"style":2112},[2196],{"type":48,"value":2197},"docker",{"type":42,"tag":2056,"props":2199,"children":2200},{"style":2085},[2201],{"type":48,"value":2202}," volume",{"type":42,"tag":2056,"props":2204,"children":2205},{"style":2085},[2206],{"type":48,"value":2207}," prune",{"type":42,"tag":2056,"props":2209,"children":2210},{"style":2085},[2211],{"type":48,"value":2212}," -f\n",{"type":42,"tag":2056,"props":2214,"children":2216},{"class":2058,"line":2215},5,[2217],{"type":42,"tag":2056,"props":2218,"children":2220},{"emptyLinePlaceholder":2219},true,[2221],{"type":48,"value":2222},"\n",{"type":42,"tag":2056,"props":2224,"children":2226},{"class":2058,"line":2225},6,[2227],{"type":42,"tag":2056,"props":2228,"children":2229},{"style":2063},[2230],{"type":48,"value":2231},"# Stop VSS Warehouse — see the vss-deploy-profile skill\n",{"type":42,"tag":2233,"props":2234,"children":2235},"style",{},[2236],{"type":48,"value":2237},"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":2239,"total":2059},[2240],{"slug":4,"name":4,"fn":5,"description":6,"org":2241,"tags":2242,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2243,2244,2245,2246],{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"items":2248,"total":2405},[2249,2267,2283,2294,2306,2320,2333,2347,2360,2371,2385,2394],{"slug":2250,"name":2250,"fn":2251,"description":2252,"org":2253,"tags":2254,"stars":2264,"repoUrl":2265,"updatedAt":2266},"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},[2255,2258,2261],{"name":2256,"slug":2257,"type":15},"Documentation","documentation",{"name":2259,"slug":2260,"type":15},"MCP","mcp",{"name":2262,"slug":2263,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2268,"name":2268,"fn":2269,"description":2270,"org":2271,"tags":2272,"stars":2280,"repoUrl":2281,"updatedAt":2282},"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},[2273,2276,2277],{"name":2274,"slug":2275,"type":15},"Containers","containers",{"name":17,"slug":18,"type":15},{"name":2278,"slug":2279,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2284,"name":2284,"fn":2285,"description":2286,"org":2287,"tags":2288,"stars":2280,"repoUrl":2281,"updatedAt":2293},"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},[2289,2292],{"name":2290,"slug":2291,"type":15},"CI\u002FCD","ci-cd",{"name":17,"slug":18,"type":15},"2026-07-14T05:25:59.97109",{"slug":2295,"name":2295,"fn":2296,"description":2297,"org":2298,"tags":2299,"stars":2280,"repoUrl":2281,"updatedAt":2305},"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},[2300,2301,2302],{"name":2290,"slug":2291,"type":15},{"name":17,"slug":18,"type":15},{"name":2303,"slug":2304,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2307,"name":2307,"fn":2308,"description":2309,"org":2310,"tags":2311,"stars":2280,"repoUrl":2281,"updatedAt":2319},"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},[2312,2315,2316],{"name":2313,"slug":2314,"type":15},"Debugging","debugging",{"name":2303,"slug":2304,"type":15},{"name":2317,"slug":2318,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2321,"name":2321,"fn":2322,"description":2323,"org":2324,"tags":2325,"stars":2280,"repoUrl":2281,"updatedAt":2332},"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},[2326,2329],{"name":2327,"slug":2328,"type":15},"Best Practices","best-practices",{"name":2330,"slug":2331,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2334,"name":2334,"fn":2335,"description":2336,"org":2337,"tags":2338,"stars":2280,"repoUrl":2281,"updatedAt":2346},"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},[2339,2342,2345],{"name":2340,"slug":2341,"type":15},"Machine Learning","machine-learning",{"name":2343,"slug":2344,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2348,"name":2348,"fn":2349,"description":2350,"org":2351,"tags":2352,"stars":2280,"repoUrl":2281,"updatedAt":2359},"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},[2353,2356],{"name":2354,"slug":2355,"type":15},"QA","qa",{"name":2357,"slug":2358,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2361,"name":2361,"fn":2362,"description":2363,"org":2364,"tags":2365,"stars":2280,"repoUrl":2281,"updatedAt":2370},"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},[2366,2367],{"name":17,"slug":18,"type":15},{"name":2368,"slug":2369,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2372,"name":2372,"fn":2373,"description":2374,"org":2375,"tags":2376,"stars":2280,"repoUrl":2281,"updatedAt":2384},"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},[2377,2380,2381],{"name":2378,"slug":2379,"type":15},"Code Review","code-review",{"name":2303,"slug":2304,"type":15},{"name":2382,"slug":2383,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2386,"name":2386,"fn":2387,"description":2388,"org":2389,"tags":2390,"stars":2280,"repoUrl":2281,"updatedAt":2393},"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},[2391,2392],{"name":2354,"slug":2355,"type":15},{"name":2357,"slug":2358,"type":15},"2026-07-14T05:25:54.928983",{"slug":2395,"name":2395,"fn":2396,"description":2397,"org":2398,"tags":2399,"stars":2280,"repoUrl":2281,"updatedAt":2404},"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},[2400,2403],{"name":2401,"slug":2402,"type":15},"Automation","automation",{"name":2290,"slug":2291,"type":15},"2026-07-30T05:29:03.275638",496]