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(mainSource).toContain("'resilience.arm-compact-delay'"); expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.arm-compact-delay')"); expect(scriptSource).toContain("status?.target?.errorCode === 'CODING_REQUEST_UNCERTAIN'"); expect(scriptSource).toContain('status?.target?.completedCompactions >= 1'); }); });