droid
Identity
-
Names:
droid/ai.factory.droid. -
Native format:
factory-droid-jsonl, one session journal. -
Session ID:
session_start.sessionId, withsession_start.idin the legacy fixture dialect. If both are present they must agree. No namespace is specified by this evidence. -
Entity keys: Message row
idoruuid. Retry results can reuse an ID withparentId == id; preserve each observation rather than deduplicating it. Positional records are capture-scoped.tool_use.idjoinstool_result.tool_use_idonly when unique. -
Notes: Accept top-level or nested
message.role/contentonly in the fixture dialect.is_errorcontrols result status when present. An assistant message ID does not identify inference; keep model and usage metadata without inventing calls.compaction_statehas unknown replacement extent.todo_state.itemssupports an items plan; retain unmapped statuses instead of prefixing them with_. No file cause or branch is inferred from physical order. -
Tool kinds: exact names
Executemap toexecute;Readtoread;Edit,CreateandApplyPatchtoedit;Grep,GlobandLStosearch;FetchUrlandWebSearchtofetch. Other names need recorded kind evidence.
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
droid: native facts without a standard field
Links
- Lineage:
callingSessionIdandparentare candidate parent fields. Their delegation meaning lacks a pinned native contract, so retain them and leavespawnedByabsent. The fixture’sdecompSessionType: workerrecords worker scope, but does not qualify every release. Mission and role facts remain metadata. No copy or root mapping is qualified.
Usage
Select one report per native accounting identity only when this entry establishes that identity. Keep unjoinable or overlapping reports as native evidence. Declare when semantic coverage is incomplete. 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["ai.factory.droid/unassigned"] with the common shape. A selection may keep these facts with any subset of sessions, including an empty subset, but must not imply that a session owns them. 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: fixture-verified: Factory JSONL parser and authored fixtures inctxrs/ctx at 74f63227f1c7416607d704668f38b9c7c9de6a16. No pinned Factory writer version or version-level conformance claim.
Evidence applies only to the named formats and explicit mappings above. A real capture covers only the behavior that was exercised. A writer probe run without a model covers persistence only, not model or tool execution. Authored tests do not qualify an agent version. Unlisted formats and link mappings remain unqualified.