Calcula el `PlaybackPlan` composicional y explicable de un asset para unas capacidades de cliente (r05).
packages/api-contracts/src/bus/nats.tsPágina generada desde
packages/api-contracts/src/bus/nats.ts + packages/api-contracts/src/bus/routes.ts. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
qry.playback.resolvePlan · v1
Calcula el PlaybackPlan composicional y explicable de un asset para unas capacidades de
cliente (r05). Hoy sólo la admite styx-ops (herramientas de operación y tests).
| Campo | Valor |
|---|---|
| Familia | qry |
| Versión | 1 |
| Tope del payload | 65536 bytes |
| Contrato | PlaybackResolvePlan en packages/api-contracts/src/bus/nats.ts |
BUS_ROUTES)Deny-by-default: un emisor fuera de la allowlist se deniega y se audita (dec-0119 §4).
| Atiende | Transporte | Emisores admitidos | Rate (por emisor) |
|---|---|---|---|
playback-svc | nats | styx-ops | 100/s, ráfaga 200 |
{
"type": "object",
"required": [
"intent"
],
"properties": {
"intent": {
"type": "object",
"required": [
"assetId",
"client"
],
"properties": {
"assetId": {
"type": "string"
},
"client": {
"anyOf": [
{
"type": "object",
"properties": {}
},
{
"type": "array",
"items": {}
}
]
},
"preferences": {
"anyOf": [
{
"type": "object",
"properties": {}
},
{
"type": "array",
"items": {}
}
]
}
}
}
}
}{
"anyOf": [
{
"type": "object",
"required": [
"ok",
"data"
],
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"required": [
"descriptor"
],
"properties": {
"descriptor": {
"type": "object",
"required": [
"sessionId",
"assetId",
"plan",
"delivery",
"actor",
"createdAt",
"expiresAt"
],
"properties": {
"sessionId": {
"type": "string"
},
"assetId": {
"type": "string"
},
"plan": {
"anyOf": [
{
"type": "object",
"properties": {}
},
{
"type": "array",
"items": {}
}
]
},
"delivery": {
"type": "object",
"required": [
"transport",
"endpoint"
],
"properties": {
"transport": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"certHash": {
"type": "string"
},
"tokenTtlMs": {
"type": "integer"
}
}
},
"actor": {
"type": "object",
"required": [
"service"
],
"properties": {
"userId": {
"type": "string"
},
"sessionId": {
"type": "string"
},
"service": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"createdAt": {
"type": "string"
},
"expiresAt": {
"type": "string"
}
}
}
}
}
}
},
{
"type": "object",
"required": [
"ok",
"error"
],
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"required": [
"code",
"message",
"category",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"category": {
"anyOf": [
{
"type": "string",
"const": "transient"
},
{
"type": "string",
"const": "permanent"
},
{
"type": "string",
"const": "recoverable"
}
]
},
"retryable": {
"type": "boolean"
},
"suggestedAction": {
"type": "string"
},
"details": {
"anyOf": [
{
"type": "object",
"properties": {}
},
{
"type": "array",
"items": {}
}
]
},
"causedBy": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {}
},
{
"type": "array",
"items": {}
}
]
}
}
}
}
}
}
]
}