diff --git a/public/app.js b/public/app.js index 4e639d7..fecbd04 100644 --- a/public/app.js +++ b/public/app.js @@ -262,6 +262,7 @@ function renderFirstScreen(firstScreen = {}) { ${escapeHtml(firstScreen.proofCadence || 'Run one tiny proof cycle, then rerank.')} ${held.length ? `
Say this to test it${escapeHtml(firstScreen.proofScript)}` : ''} ${firstScreen.sourceQuote ? `
${escapeHtml(firstScreen.sourceTitle || 'Source quote')}${escapeHtml(firstScreen.sourceQuote)}` : ''} ${guardrails.length ? `Guardrails: ${guardrails.map(escapeHtml).join(' · ')}` : ''} ${firstScreen.sourceAnchor ? `Source anchor: ${escapeHtml(firstScreen.sourceAnchor)}` : ''} @@ -403,6 +404,7 @@ async function copyText(text, label) { function attachResultActions(data) { document.querySelector('#copyBrief')?.addEventListener('click', () => copyText(markdownBrief(data), 'Decision brief')); document.querySelector('#copyActions')?.addEventListener('click', () => copyText((data.brief?.next48Hours || []).map((step, index) => `${index + 1}. ${step}`).join('\n'), '48h actions')); + document.querySelector('#copyProofScript')?.addEventListener('click', () => copyText(data.brief?.firstScreen?.proofScript || data.handoff?.activeSlice?.proof?.proofScript || '', 'Proof script')); document.querySelector('#copyJson')?.addEventListener('click', () => copyText(JSON.stringify({ brief: data.brief, ranked: data.ranked, buildOrder: data.buildOrderDetails, handoff: data.handoff }, null, 2), 'JSON handoff')); document.querySelector('#copySource')?.addEventListener('click', () => copyText(sourceCitation(data), 'Source citation')); } @@ -435,6 +437,7 @@ function renderResults(data) {