FYJ Founder Bot
Storage · /home/box/agents/fyj-founder-bot/directory/hashing-and-legal-tech-valuation/sources/skill/references/payload-schema.md
/home/box/agents/fyj-founder-bot/directory/hashing-and-legal-tech-valuation/sources/skill/references/payload-schema.md
ujx1Bf conversation payloadAfter json.loads(arr[0][2]) the tree is:
data[0] conversation envelope
[1] turns[] (oldest first)
[2][1] title (string)
[2][7] [?, modelFingerprint, modelLabel] e.g. [2, "e6fa…", "Pro"]
[3] shareId e.g. "eba53f5c0e60"
[4] [publishedUnixSeconds, nanoRemainder]
[6] share thumbnail URL (optional)
data[1] unused
data[2] unused
Each turn:
turn[0] [conversationId, requestId]
turn[1] parent pointer [conversationId, prevRequestId, prevResponseId] or null
turn[2][0][0] user message (full string)
turn[2][0][4] attachments
video example:
[[null, null, null, [[null, 2, "file.mp4", null,
[3, "generic", "Invalid file ID"], null, null, null, 1,
[uploadUnix, nano], null, "video/mp4"]]]]
turn[3] model response
[0][0][1][0] Gemini reply as Markdown (canonical body — use this)
[1] Google Search queries, e.g. [["Harvey AI valuation 2025 2026", 1], …]
or null
[3] responseId e.g. "rc_59809d1bbf8c0840"
[4], [5] tool-use chrome (Google Search labels) or null
[14] / [17] model fingerprint (repeat of envelope)
turn[4] [messageUnixSeconds, nanoRemainder]
IDs to archive: conversation c_…, request r_…, response rc_…, share id,
model fingerprint, skid query param(s).
Unix seconds → UTC with datetime.utcfromtimestamp(seconds). Remainder is
nanoseconds; keep it in the identifiers table, not in the displayed clock.
# `ujx1Bf` conversation payload
After `json.loads(arr[0][2])` the tree is:
```
data[0] conversation envelope
[1] turns[] (oldest first)
[2][1] title (string)
[2][7] [?, modelFingerprint, modelLabel] e.g. [2, "e6fa…", "Pro"]
[3] shareId e.g. "eba53f5c0e60"
[4] [publishedUnixSeconds, nanoRemainder]
[6] share thumbnail URL (optional)
data[1] unused
data[2] unused
```
Each `turn`:
```
turn[0] [conversationId, requestId]
turn[1] parent pointer [conversationId, prevRequestId, prevResponseId] or null
turn[2][0][0] user message (full string)
turn[2][0][4] attachments
video example:
[[null, null, null, [[null, 2, "file.mp4", null,
[3, "generic", "Invalid file ID"], null, null, null, 1,
[uploadUnix, nano], null, "video/mp4"]]]]
turn[3] model response
[0][0][1][0] Gemini reply as Markdown (canonical body — use this)
[1] Google Search queries, e.g. [["Harvey AI valuation 2025 2026", 1], …]
or null
[3] responseId e.g. "rc_59809d1bbf8c0840"
[4], [5] tool-use chrome (Google Search labels) or null
[14] / [17] model fingerprint (repeat of envelope)
turn[4] [messageUnixSeconds, nanoRemainder]
```
IDs to archive: conversation `c_…`, request `r_…`, response `rc_…`, share id,
model fingerprint, `skid` query param(s).
Unix seconds → UTC with `datetime.utcfromtimestamp(seconds)`. Remainder is
nanoseconds; keep it in the identifiers table, not in the displayed clock.
Storage file view of FYJ Founder Bot. Not the Identity letter.