copilot-cli
Identity
-
Names:
copilot-cli/com.github.copilot-cli. -
Native format:
copilot-cli-events,session-state/<id>/events.jsonl. -
Session ID:
session.start.data.sessionId, verbatim. No namespace for ordinary sessions. The cloudCopilot-SessionID has a different scope. -
Entity keys: Event
ididentifies an observation;messageIdidentifies a logical message when present.apiCallIdidentifies an inference.toolCallId,requestIdandhookInvocationIdidentify tools, requests and hooks.chunkIndexwithin onemessageIdsupports folding. -
Triggers:
data.turnIdidentifies the consuming turn. On its first record,source: schedule-<decimal-id>suppliestrigger.kind: schedule, the full native source and suffix ID. Keep recordedintervalMs,at,cron,tz,recurringandselfPacedintrigger.schedule. Schedule creation and later steering do not count as a schedule firing.isAutopilotContinuationsupportsauto_continuation; retain the Boolean in metadata. A leadingagent-...source supports a peer trigger, not a guessed session reference. -
Notes:
transformedContentis model text;contentis display text when both exist. Results useresult.contentfor model text,detailedContentfor display and the result object for raw.successcontrols status, never an exit code.assistant.usagereports one call throughapiCallId; input cache inclusion is unknown. The nativecostmultiplier is not USD. Counts-only truncation and compaction have unknown replacement ranges. Full permission, input and hook revisions require their native IDs; no fork or rewind boundary is qualified here. -
Tool kinds: exact names
bashandpowershellmap toexecute;viewtoread;editandcreatetoedit;grepandglobtosearch;web_fetchandweb_searchtofetch. Other names need recorded kind evidence.
agentId may identify a child stream only when the pinned format establishes a distinct conversation. Its namespace is the enclosing native sessionId; retain the same namespace in parent refs. Otherwise keep lane facts unassigned.
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
copilot-cli: native facts without a standard field
Links
- Links and lineage:
toolCallIdis the call/result join. AtoolRequestsitem and an execution-start event with that ID can be views of one request only when their correspondence is unique. Counts and event order do not pair reused IDs.detachedFromSpawningParentSessionIdrecords continuation.parentIdrecords chronological order, not a branch. EmbeddedagentIdis local to the owning session. Use the container namespace only when there is evidence of a child conversation under the identity rule above. Other embedded events remain vendor records owned by the containing session. Do not mix them into root context or claim a root.
Usage
Select one report per native accounting identity only when this entry establishes that identity. Keep unjoinable or overlapping reports as native evidence. Declare incomplete semantic coverage. Schema defaults and placeholder zeros are not reported usage. Backend inclusion rules require evidence; do not infer them from a model name.Lane and unassigned facts
Facts without established session ownership use manifest_meta["com.github.copilot-cli/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: observed and fixture-verified: shipped CLI1.0.104 / SDK 1.0.27 schema and a sanitized native scheduler capture. The 1.0.77-shaped fixtures are authored. The capture covers scheduling, abort and shutdown, not successful inference. No 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.