import { readFile } from 'node:fs/promises'; import { resolve } from 'node:path'; import { describe, expect, it } from 'vitest'; describe('Pi packaged release proof wiring', () => { it('keeps extension and proxy Provider scenarios assigned to their own proof entrypoints', async () => { const source = await readFile( resolve('electron/coding-runtime/pi/release-proof.ts'), 'utf8', ); const extensionStart = source.indexOf('export async function runFinalAsarExtensionProof'); const proxyStart = source.indexOf('export async function startFinalAsarProxyCompositionProof'); const resilienceStart = source.indexOf('export async function startFinalAsarResilienceProof'); expect(extensionStart).toBeGreaterThan(-1); expect(proxyStart).toBeGreaterThan(extensionStart); expect(resilienceStart).toBeGreaterThan(proxyStart); expect(source.slice(extensionStart, proxyStart)) .toContain("startLocalProofProvider('subagent')"); expect(source.slice(extensionStart, proxyStart)) .not.toContain("startLocalProofProvider('submit-rejection')"); expect(source.slice(proxyStart, resilienceStart)) .toContain("startLocalProofProvider('submit-rejection')"); expect(source.slice(proxyStart, resilienceStart)) .not.toContain("startLocalProofProvider('subagent')"); }); it('wires the packaged resilience proof through Main background and intentional-dispose seams', async () => { const [mainSource, proofSource, scriptSource] = await Promise.all([ readFile(resolve('electron/main/index.ts'), 'utf8'), readFile(resolve('electron/coding-runtime/pi/release-proof.ts'), 'utf8'), readFile(resolve('scripts/run-pi-subagent-packaged-smoke.mjs'), 'utf8'), ]); expect(mainSource).toContain("codingProducts?.sleep('background_sleep')"); expect(mainSource).toContain('acquireBackgroundLease: (lease) => backgroundLifecycle!'); expect(proofSource).toContain("runtime.dispose(run.targetConversationId, 'test_injection')"); expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.idle-status')"); expect(scriptSource).toContain('setMainWindowVisible(electronApplication, false)'); expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.dispose-target')"); expect(proofSource).toContain('const PROOF_MUTATION_CONFIRMATION_DELAY_MS = 12_000;'); expect(proofSource).toContain('keepRecentTokens: 1'); expect(proofSource).toContain("mode === 'resilience' && delayedCompactionArmed"); expect(mainSource).toContain("userDataDir: app.getPath('userData')"); expect(proofSource).toContain('delayNextTopLevelConfirmationForProof'); expect(mainSource).toContain("'resilience.arm-compact-delay'"); expect(mainSource).toContain("'resilience.arm-prompt-delay'"); expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.arm-compact-delay')"); expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.arm-prompt-delay')"); expect(scriptSource).toContain("status?.target?.errorCode === 'CODING_REQUEST_UNCERTAIN'"); expect(scriptSource).toContain('status?.target?.completedCompactions >= 1'); const releaseParents = scriptSource.indexOf( "await evaluateProof(electronApplication, 'resilience.release-parents')", ); const restoreVisible = scriptSource.indexOf( 'await setMainWindowVisible(electronApplication, true)', releaseParents, ); const awaitSettlement = scriptSource.indexOf( 'await waitForResilienceProof(', releaseParents, ); expect(releaseParents).toBeGreaterThan(-1); expect(restoreVisible).toBeGreaterThan(releaseParents); expect(restoreVisible).toBeLessThan(awaitSettlement); }); });