grok-build

Identity

  • Names: grok-build / ai.x.grok-build.
  • Native format: grok-build-acp-v1-jsonl, persisted session/update and _x.ai/session/update. ACP v2 message-ID guarantees do not apply.
  • Session ID: params.sessionId, or unwrapped sessionId, verbatim; no namespace. Foreign-session rows remain vendor evidence and cannot supply content or accounting for the selected session.
  • Entity keys: Notification _meta.eventId identifies observations; _meta.agentTimestampMs supplies native time. promptId or prompt_id supplies turn identity; promptIndex does not. V1 chunk messages use derived IDs from the first event, with capture scope for positional fallbacks.
  • Notes: Fold adjacent compatible chunks only within their native message/prompt boundaries. Mode/options and title events map configuration and session info; plans keep native plan identity or a documented derived key. Diff snippets do not prove whole files or additions; evidenced changes with unknown operation use op: "unknown". Declare missing model output, authorship, request context, v1 message boundaries and unqualified response variants.

Position basis

Use only positions established by the stated format and mapping evidence. Current-state rows without transcript positions form the snapshot tail. A protocol commit boundary takes precedence over physical EOF; uncommitted bytes are not a gap.

Destinations

grok-build: native facts without a standard field

  • Links: ACP toolCallId identifies calls and updates. Apply explicit null-removing patches; changed final requests/results use revisions. Result content is display content, rawOutput is raw; model output stays absent without separate evidence. A persisted terminal reference supplies exec.terminalId only when a terminal record is included (ASR-290). A native process ID without a recorded lifecycle uses exec.processId. A rewind_marker.target_prompt_index value N targets the context tip before N’s first user message only under the pinned prompt-index contract. Missing targets stay native. subagent_spawned.child_session_id identifies the announced child; tool_call_id identifies its delegating call when present. The child keeps that native session ID. The directory layout does not establish a parent link in the child’s header, copies or a root.

Usage

  • Inference and usage: response_started / response_completed with their native message_id establish a call only in the pinned extension dialect. Response input excludes caches. turn_completed.usage.input_tokens includes caches and is a prompt aggregate. Preserve the distinct inclusion rules. cost_usd_ticks / 1e10 gives provider-reported USD only for a complete native cost report; incomplete flags keep cost native. Signatures do not attach to an inference merely by adjacency.
The xAI response_started and response_completed mapping is conditional on the pinned extension dialect and native message_id. ACP v1 alone does not establish an inference. Keep response input counts, which exclude caches, distinct from turn totals, which include caches.

Lane and unassigned facts

Facts without established session ownership use manifest _meta["ai.x.grok-build/unassigned"] with the common shape. Selection may retain these facts with any session subset, including an empty subset, but must not imply session ownership. State the selection policy in the export report.

Losses

Declare every applicable loss under ASR-157. Missing model rendering, accounting joins, lineage or exact context boundaries remain losses when this entry does not qualify them. Unknown ownership is not itself lost data. Omitted unassigned facts use a documented vendor loss or report, not a new core category.

Evidence

Basis: source-verified at commit c2dab005c2b53c99209dc6faf82153d782f76ee4, with a sanitized native 1.0.3 capture. Optional response extensions have source and authored-test evidence only. No proprietary version-level conformance claim. Evidence applies only to the named formats and explicit mappings above. A real capture covers only exercised behavior. A writer probe run without a model covers persistence, not model or tool execution. Authored tests do not qualify an agent version. Unlisted formats and link mappings remain unqualified.

Observations from 2026-10-27

observed, version 1.0.70: Grok Build 1.0.70 retained edit, shell-test, fork and child sessions. Map native tool kind task to _ai.x.grok-build/task. ACP tool display data does not establish model-facing content. Unknown extras use ai.x.grok-build/remainingFields. Ten non-session sidecars remained unidentified; the converted streams do not establish coverage of those inputs. The ctx conversion produced 3 streams and 79 records, with 0 errors, 0 notices, 0 gaps and 10 unidentified inputs under validator-v0.1.2. These counts describe the selected output; an empty bundle qualifies no source format. No sanitized native fixture was retained for this observation. Whole native records use native.record or native.blob, with JSON text columns preserved as strings. The exporter’s own bookkeeping for serialization, partitioning and message keys belongs in the exporter namespace (rs.ctx for ctx). Do not put it in a provider metadata destination. These runs add no evidence for unexercised approvals, lineage links, compaction boundaries or exact request context.