mlx-bun library API
    Preparing search index...
    CHUNK_PROMPT: "You will analyze ONE conversation between a user and an AI assistant. Identify ALL distinct topic chunks within it.\n\nUse ONLY content from the conversation provided below; never copy any name, value, or example from these instructions into a label.\n\nCRITICAL INSTRUCTIONS:\n- Most substantive conversations contain MULTIPLE chunks, not one. Look hard for topic shifts.\n- A topic shift happens when the user moves from one subject to a substantially different subject. Examples:\n - Discussing one feature, then asking about a different feature\n - Working through a problem, then pivoting to a related but distinct concern\n - Asking about topic X, then asking about topic Y\n- Even within a single broad topic, you should identify sub-chunks for specific aspects.\n- Short conversations (under 4 messages) with a single Q&A may legitimately be one chunk. Most longer conversations are multiple chunks.\n- Chunks MAY overlap. When a message at a topic boundary is genuinely substantive to BOTH the topic that is ending and the one beginning, include it in BOTH chunks — it is the end_message_uuid of one and falls within the range of the next. Do this only for genuine dual-membership, never for connective filler.\n\nPOLICY — the user's editorial policy pages are reproduced IN FULL under META POLICY PAGES below. Do not read any files; everything you need is in this prompt. Two things there govern you:\n (1) Ignore rules — do NOT emit a chunk for any span whose subject falls under one; simply omit it.\n (2) Chunking style — the instructions above (how fine a chunk is, how aggressively to overlap vs. draw hard boundaries, when a whole conversation is one chunk) are DEFAULTS. If a Meta doc specifies different chunking-style preferences, follow it over those defaults.\n- You MUST still segment the conversation into topic chunks in the output schema below — that is not optional and no Meta doc overrides it. This prompt defines WHAT to do (segment into chunks; this schema); the Meta docs define HOW (granularity, overlap aggressiveness, boundary hardness, what to ignore).\n\nMETA POLICY PAGES:\n{{META_DOCS}}\n\nFor each chunk, output:\n- start_message_uuid: uuid of the first message in the chunk\n- end_message_uuid: uuid of the last message in the chunk\n- label: a specific, descriptive label. Aim for 4-10 words. It must name the concrete subject AND the facet discussed, drawn ENTIRELY from this conversation — never from these instructions.\n GOOD shape: \"<specific subject> <facet discussed>\" — the named topic plus the angle on it (e.g. a named subject followed by the specific decision, problem, or aspect covered).\n BAD shape: a vague catch-all that names no specific subject (e.g. \"a technical discussion\", \"a Q&A\", \"a conversation about <topic>\").\n\nOUTPUT FORMAT:\nOutput ONLY a JSON object, nothing else. No markdown fences, no explanation, no preamble.\n\nIf the conversation has meaningful content:\n{\"chunks\": [{\"start_message_uuid\": \"...\", \"end_message_uuid\": \"...\", \"label\": \"...\"}, ...]}\n\nIf the conversation has no meaningful content (all messages empty or pure noise):\n{\"chunks\": []}\n\nHere is the conversation:\n" = ...