AiCall
object type
One AI provider call YOUR group made, WITH the words (🧾 THE AI LEDGER): the merchant's prompt · the office-composed context · what the model said it understood · the answer · the refs — beside the metering facts the daily rollup already shows. The words live here and in the event lake ONLY; no log line ever carries them.
Fields
| Field | Type | Notes |
|---|---|---|
id | ID ID! | = the meter event's callId (the provider call's own uuidV7) — the same id the response envelope's extensions.at.ai.calls.id carries. |
at | String String! | No further notes. |
requestId | ID ID! | The wire request's own id (= that response's extensions.at.callId) — every AI call of one press carries it (a planner's route + steps + resolve; a consultation's rounds). |
op | String String! | The wire operation the call served — draftReport · askConsultation · interpretFilter · … |
surface | String String! | The metered surface token (the at.ai.call.v1 roster) — e.g. office.report_draft. |
provider | String String! | No further notes. |
model | String String! | The EXACT model id the provider reported. |
effort | String String! | The reasoning effort the call rode — low | medium | high | xhigh (low everywhere in slice 1). |
schemaName | String String! | No further notes. |
status | String String! | ok | refused | error | timeout. |
providerErrorCode | String | No further notes. |
tokens | AiCallTokens AiCallTokens! | No further notes. |
costUsd | String String! | The call's cost — a DECIMAL STRING in USD (nano-dollar exact; the money-string law — never a float). |
priceTableVersion | String String! | No further notes. |
latencyMs | Int Int! | No further notes. |
bytesIn | Int | No further notes. |
bytesOut | Int | No further notes. |
prompt | String | The MERCHANT's words; null where the surface has none (a summary roll, a material extraction, a training draft). |
context | String | The office-composed context the merchant handed the surface (the page's identity form · the filled fields · the thread); null where none; cut at 8192 with contextTruncated true. |
contextTruncated | Boolean Boolean! | No further notes. |
understood | String | What the model said it understood the request to be (the echo rule — one sentence, at most 240 characters); null when the call did not answer. |
answer | String | The surface's answer as it parsed it (the strict JSON text after the echo strip); null when the call did not answer; cut at 16000 with answerTruncated true. |
answerTruncated | Boolean Boolean! | No further notes. |
refs | AiCallRef [AiCallRef!]! | No further notes. |
userId | ID | No further notes. |
sessionId | ID | No further notes. |
organizationId | ID | No further notes. |