Agents are optional rule-based post-processors. They run on the final assembled timeline JSON and produce a modified copy — nothing in a project changes until you click APPLY inside the project editor.
[
{
"op": "tighten_gaps",
"match_type": "text",
"min_gap": 0.05
},
{
"op": "scale_field",
"match_type": "sfx",
"field": "data.volume",
"factor": 1.3,
"clamp_min": 0,
"clamp_max": 1
},
{
"op": "scale_field",
"match_type": "music",
"field": "data.volume",
"factor": 1.15,
"clamp_min": 0,
"clamp_max": 1
},
{
"op": "shift_field",
"match_type": "text",
"field": "data.fontSize",
"delta": 12
}
]
[
{
"op": "widen_gaps",
"match_type": "text",
"min_gap": 0.3
},
{
"op": "scale_field",
"match_type": "sfx",
"field": "data.volume",
"factor": 0.8,
"clamp_min": 0,
"clamp_max": 1
},
{
"op": "scale_field",
"match_type": "music",
"field": "data.volume",
"factor": 0.85,
"clamp_min": 0,
"clamp_max": 1
}
]
[
{
"op": "scale_field",
"match_type": "sfx",
"field": "data.volume",
"factor": 1.5,
"clamp_min": 0,
"clamp_max": 1
},
{
"op": "scale_field",
"match_type": "music",
"field": "data.volume",
"factor": 1.4,
"clamp_min": 0,
"clamp_max": 1
},
{
"op": "scale_field",
"match_type": "voice",
"field": "data.volume",
"factor": 1.4,
"clamp_min": 0,
"clamp_max": 1
}
]