fix(pi): converge worker failures and thinking state
This commit is contained in:
@@ -89,13 +89,19 @@ import {
|
||||
resolveCodingPiRuntimePaths,
|
||||
} from '../api/coding-composition';
|
||||
import {
|
||||
abortFinalAsarResilienceTarget,
|
||||
finishFinalAsarProxyCompositionProof,
|
||||
finishFinalAsarPressureProof,
|
||||
finishFinalAsarResilienceProof,
|
||||
getFinalAsarProxyCompositionStatus,
|
||||
getFinalAsarResilienceStatus,
|
||||
injectFinalAsarResilienceFailure,
|
||||
releaseFinalAsarProxyCompositionChild,
|
||||
releaseFinalAsarResilienceParents,
|
||||
runFinalAsarExtensionProof,
|
||||
startFinalAsarProxyCompositionProof,
|
||||
startFinalAsarPressureProof,
|
||||
startFinalAsarResilienceProof,
|
||||
} from '../coding-runtime/pi/release-proof';
|
||||
|
||||
// Diagnostic package: force Chromium networking onto HTTP/1.1 for transport A/B testing.
|
||||
@@ -890,6 +896,13 @@ type PiReleaseProofAction =
|
||||
| 'proxy.status'
|
||||
| 'proxy.release-child'
|
||||
| 'proxy.finish'
|
||||
| 'resilience.start'
|
||||
| 'resilience.status'
|
||||
| 'resilience.inject-exit'
|
||||
| 'resilience.inject-protocol'
|
||||
| 'resilience.abort-after-exit'
|
||||
| 'resilience.release-parents'
|
||||
| 'resilience.finish'
|
||||
| 'pressure.start'
|
||||
| 'pressure.finish'
|
||||
| 'pressure.finish.inject-failure';
|
||||
@@ -930,6 +943,43 @@ export async function runPiReleaseProofE2E(action: PiReleaseProofAction) {
|
||||
if (action === 'proxy.finish') {
|
||||
return { action, packagedMain, proxy: await finishFinalAsarProxyCompositionProof() };
|
||||
}
|
||||
if (action === 'resilience.start') {
|
||||
if (!codingProducts) throw new Error('Packaged Main coding composition is unavailable');
|
||||
const address = hostApiServer?.address();
|
||||
if (!address || typeof address === 'string') throw new Error('Packaged Main Host API is unavailable');
|
||||
return {
|
||||
action,
|
||||
packagedMain,
|
||||
resilience: await startFinalAsarResilienceProof({
|
||||
composition: codingProducts,
|
||||
projectPath: join(app.getPath('userData'), 'pi-resilience-proof-project'),
|
||||
hostProxyBaseUrl: `http://127.0.0.1:${address.port}/api/ai-proxy/v1`,
|
||||
hostToken: getHostApiToken(),
|
||||
}),
|
||||
};
|
||||
}
|
||||
if (action === 'resilience.status') {
|
||||
return { action, packagedMain, resilience: await getFinalAsarResilienceStatus() };
|
||||
}
|
||||
if (action === 'resilience.inject-exit' || action === 'resilience.inject-protocol') {
|
||||
return {
|
||||
action,
|
||||
packagedMain,
|
||||
resilience: await injectFinalAsarResilienceFailure(
|
||||
action === 'resilience.inject-exit' ? 'unexpected_exit' : 'protocol_invalidation',
|
||||
),
|
||||
};
|
||||
}
|
||||
if (action === 'resilience.abort-after-exit') {
|
||||
return { action, packagedMain, resilience: await abortFinalAsarResilienceTarget() };
|
||||
}
|
||||
if (action === 'resilience.release-parents') {
|
||||
releaseFinalAsarResilienceParents();
|
||||
return { action, packagedMain, resilience: { released: 'parents' } };
|
||||
}
|
||||
if (action === 'resilience.finish') {
|
||||
return { action, packagedMain, resilience: await finishFinalAsarResilienceProof() };
|
||||
}
|
||||
if (action === 'pressure.start') {
|
||||
return { action, packagedMain, pressure: await startFinalAsarPressureProof() };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user