HypaV3 Data

{#if hypaV3DataState.summaries.length === 0} {#if isHypaV2ConversionPossible()}
No summaries yet, but you may convert HypaV2 data to V3.
{:else}
No summaries yet
{/if} {:else if searchUIState}
{ if (searchUIState) { searchUIState.currentIndex = -1; searchUIState.results = []; } }} onkeydown={(e) => onSearch(e)} /> {#if searchUIState.results.length > 0} {searchUIState.currentIndex + 1}/{searchUIState.results .length} {/if}
{/if} {#each hypaV3DataState.summaries as summary, i} {#if summaryUIStates[i]}
Summary #{i + 1}
{#if summaryUIStates[i].translation}
Translation
{/if} {#if summaryUIStates[i].rerolledText}
Rerolled Summary
{#if summaryUIStates[i].rerolledTranslation}
Rerolled Translation
{/if} {/if}
Connected Messages ({summary.chatMemos.length})
{#each summary.chatMemos as chatMemo, memoIndex} {/each}
{#if expandedMessageUIState?.summaryIndex === i}
{#await getProcessedMessageFromChatMemo(expandedMessageUIState.selectedChatMemo) then expandedMessage} {#if expandedMessage}
{expandedMessage.role}'s Message
{:else} Message not found {/if} {:catch error} Error loading expanded message: {error.message} {/await}
{#if expandedMessageUIState.translation}
Translation
{/if} {/if}
{/if} {/each}
{#await getProcessedNextSummarizationTarget() then nextMessage} {#if nextMessage} {@const chatId = nextMessage.chatId === "first" ? "First Message" : nextMessage.chatId == null ? "No Message ID" : nextMessage.chatId}
HypaV3 will summarize [{chatId}]
{:else} WARN: No messages found {/if} {:catch error} Error loading next message: {error.message} {/await}
{#if !getFirstMessage()}
WARN: Selected first message is empty
{/if}