project_assets_query
Filter generated media assets, recurring shot elements, or scene moodboards for one BeatBandit project.
When to use
Use when the caller needs filtered asset reads instead of the broad `media_catalog` or `shot_element_library` resources.
Use `asset_kind=shot_element` for recurring element discovery before `shot_mutate(entity_type=element)` or `image_generate(workflow=generate_element)`; use the media kinds for generated audio/video assets.
Use `asset_kind=scene_audio` to find generated shot audio takes and `asset_kind=reference_audio` to find reusable uploaded voice samples.
Use `asset_kind=scene_moodboard` to discover scene-level art-direction references.
When not to use
Do not use for mutations or generation flows.
Do not use for broad project canon reads.
Do not use for story-card or scene reads; use `story_entity_query`.
Examples
“What music exists for scene 50.10.20?”
“List selected scene-audio takes for shot 101.”
“List reusable reference-audio voice samples.”
“List character shot elements for this project.”
“Does this project already have a recurring element for Anna?”
“List scene moodboards for scene 50.10.20.”
Anti-examples
- Generate a new sound effect.
- Update this wardrobe element prompt.
- Attach a voice sample to a voice profile; use `voice_profile`.
- Read the protagonist story card summary; use `story_entity_query`.
Backend capabilities
Linked resources
Tool calls may return resource_links pointing at these resource families.
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"project_id",
"asset_kind"
],
"properties": {
"project_id": {
"type": "integer"
},
"asset_kind": {
"type": "string",
"enum": [
"video",
"music",
"speech",
"dialogue",
"sound_effect",
"scene_audio",
"reference_audio",
"shot_element",
"scene_moodboard"
]
},
"scene_code": {
"type": "string"
},
"episode_code": {
"type": "string"
},
"shot_id": {
"type": "string"
},
"element_type": {
"type": "string",
"enum": [
"character",
"environment",
"object",
"style",
"other"
]
},
"tag": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"cursor": {
"type": "string"
}
},
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"asset_kind": {
"const": "shot_element"
}
}
},
"then": {
"not": {
"anyOf": [
{
"required": [
"episode_code"
]
},
{
"required": [
"shot_id"
]
}
]
}
}
},
{
"if": {
"properties": {
"asset_kind": {
"enum": [
"video",
"music",
"speech",
"dialogue",
"sound_effect",
"scene_audio",
"reference_audio",
"scene_moodboard"
]
}
}
},
"then": {
"not": {
"required": [
"element_type"
]
}
}
}
]
}Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"asset_kind",
"items"
],
"properties": {
"asset_kind": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object"
}
},
"catalog_updated_at": {
"type": "string"
},
"next_cursor": {
"type": "string"
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"family",
"uri"
],
"properties": {
"family": {
"type": "string"
},
"uri": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": true
}