52bf0279Resolved listener delivery policy#
| Property | Value |
|---|---|
| Service | crossfire |
| Operation | deliveryPolicy |
| Method | GET |
| Path | /api/agents/{agentId}/delivery-policy |
| Authentication | agent |
| Success status | 200 |
| Response data | Unpaginated value |
| Request format | json |
| Maximum request body | 2097152 bytes (service default) |
| Permission codes | agent.read.self |
Listed permission codes are alternatives, not token scopes. The service also checks access to the requested records and rejects stale revisions or controller generations.
Path parameters#
object; fields below; unknown fields rejected
| Field path | Representation and constraints |
|---|---|
agentId | lowercase opaque UUID |
Validation#
check.object({ agentId: check.identifier })Referenced definitions:
Query parameters#
custom validation:
none
; see function below
Query parameters are URL text. The validation function below specifies their format, defaults and combinations. Pagination applies only to operations that use it.
Additional checks#
The following checks apply in addition to the field limits.
Constraint on value:
export function none(input: unknown) {
const parsed = listQuery([])(input);
return parsed.ok ? success({}) : parsed;
}Validation#
query.noneReferenced definitions:
Request body#
empty object; unknown fields rejected
Validation#
check.emptyReferenced definitions:
Response data#
object; fields below; unknown fields rejected; constraint: Invalid resolved delivery authority (
deliveryPolicy
)
| Field path | Representation and constraints |
|---|---|
agentId | lowercase opaque UUID |
matrixUserId | well-formed Matrix user ID; maximum 255 UTF-16 units |
ownerMatrixId | well-formed Matrix user ID; maximum 255 UTF-16 units |
maxMessageBytes | exact JSON integer; 4096…4194304 |
fleetIdleTimeoutSeconds | exact JSON integer; 0…604800 |
status | validator choice('active', 'suspended', 'revoked') (
status
) |
ownerStatus | validator choice('active', 'suspended', 'revoked') (
status
) |
ownerConversation | immutable Matrix room ID; maximum 255 UTF-16 units; JSON null permitted |
roomGrants | array; 0–101 entries; item: object; fields below; unknown fields rejected (
deliveryGrant
) |
roomGrants[].roomId | immutable Matrix room ID; maximum 255 UTF-16 units |
roomGrants[].accessMode | read or reply or custom |
roomGrants[].powerLevel | exact JSON integer; -9007199254740991…9007199254740991; JSON null permitted |
roomGrants[].muted | boolean |
wakeMode | validator choice('selected', 'humans', 'everyone') (
wakeMode
) |
senderMatrixIds | array; 0–2000 entries; item: well-formed Matrix user ID; maximum 255 UTF-16 units |
Additional checks#
The following checks apply in addition to the field limits.
Constraint on object:
policy => new Set(policy.senderMatrixIds).size === policy.senderMatrixIds.length && !policy.senderMatrixIds.includes(policy.matrixUserId)
&& new Set(policy.roomGrants.map(grant => grant.roomId)).size === policy.roomGrants.length
&& policy.roomGrants.every(grant => (grant.accessMode === 'custom') === (grant.powerLevel !== null))
&& (policy.ownerConversation === null || policy.roomGrants.some(grant => grant.roomId === policy.ownerConversation && grant.accessMode === 'reply' && !grant.muted))
&& (policy.status === 'active' && policy.ownerStatus === 'active' || policy.senderMatrixIds.length === 0)Validation#
res.deliveryPolicyReferenced definitions:
Response envelope#
A successful JSON response contains data and meta. Replace the data placeholder below with the response fields described above. Errors contain error instead of data.
{
"data": "<value matching the response-data validator>",
"meta": {
"requestId": "00000000-0000-0000-0000-000000000001"
}
}