Core extraction logic. Accepts pre-fetched sessionContent so it can be called in parallel with other AI prompts without duplicate DB round-trips.
For forms larger than BATCH_SIZE fields, fields are chunked and all batches are run concurrently with Promise.all, then merged.
Core extraction logic. Accepts pre-fetched sessionContent so it can be called in parallel with other AI prompts without duplicate DB round-trips.
For forms larger than BATCH_SIZE fields, fields are chunked and all batches are run concurrently with Promise.all, then merged.