Find Artifacts (artifact-first)
SkillAI & modelsUse when discovering or loading run artifacts in npa agent without workflow/type/path allowlists.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Find Artifacts (artifact-first) skill
What this skill tells your AI
The instructions your AI receives, as published by nebius/nebius-physical-ai in skills/atomic/find-artifacts/SKILL.md and read by ahel’s review.
Use this skill when the operator asks:
- "what can I view?"
- "show artifacts for this run"
- "load this recording/video/report"
- "browse outputs from storage"
Model
Artifact-first means:
- Enumerate what exists in storage.
- Group by discovered run prefix.
- Classify each object with a render hint.
- Never hide unknown formats; degrade to download.
No workflow registry, path allowlist, or known-type gate is required.
Agent API flow
All calls are same-origin (/api/...) on the authenticated agent VM.
- Discover runs:
GET /api/artifacts/runs?prefix=&limit=100
- List artifacts for one run:
GET /api/artifacts/run/{run_id}
- Load one explicit artifact:
POST /api/sim-viz/load-artifact
{
"run_id": "run-prefix",
"run_ref": "<server-issued opaque run reference>",
"project_id": "<selected project>",
"resource_bucket": "<selected bucket>",
"resolved_prefix": "<selected prefix, possibly empty>",
"source_selected": true,
"key": "path/to/run/object"
}
Preserve this exact source tuple from list response to card, thumbnail, preview,
download, and load action. s3_uri is provenance only: URI-only or otherwise
unscoped media requests are rejected with a stable 400 response because bucket
membership alone is not run-level authorization. Follow every artifact-page
cursor before computing preference; the shipped UI does this automatically.
- Confirm loaded state:
GET /api/sim-viz/status
Check artifact_key, artifact_render, artifact_uri, and rerun_ready.
Render hints
rerun(.rrd)video(.mp4,.webm,.mov)image(.png,.jpg,.jpeg,.gif,.webp)jsontextdownload(fallback for unknown/new types)
Unknown types must stay visible/selectable.
Safety
- Validate run ids (
validate_run_id) before listing/loading. - Reject traversal keys (
.., empty segments). - Surface S3 failures directly (
ok: falseor error detail); do not claim success when load/list fails. - Agent artifact discovery is S3-first and S3-only for run artifacts. The agent
must stage the configured artifact bucket credentials, upload completed run
artifacts there, and use
/api/artifacts/runs,/api/artifacts/run/{run_id}, and/api/sim-viz/load-artifactagainst that S3 data. Do not silently fall back to/opt/npa-agent/runsfor user-visible discovery.
Signals
- GitHub stars
- 28
- Forks
- 15
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
find-artifacts- Source
- github.com/nebius/nebius-physical-ai