mirror of
https://github.com/morluto/rea.git
synced 2026-10-28 10:25:42 +00:00
Decode caller-selected protocols from existing recordings through shared CLI/MCP Evidence. Page literal output lines after complete decoding; preserve explicit full output, source identity and failed cleanup ownership. Verified real sigrok-cli 0.7.2 workflows, published UART/SPI/I2C recordings, independent UART values, selector limits, SDK schemas and cleanup regressions. Co-authored-by: Olorinm <59321404+Olorinm@users.noreply.github.com> Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
78 lines
2.9 KiB
TypeScript
78 lines
2.9 KiB
TypeScript
import type { AvailabilityPolicy } from "../application/CapabilityInventory.js";
|
|
import type { OptionalProviderLoadFailures } from "../application/OptionalObservationProviders.js";
|
|
import { platform } from "node:process";
|
|
|
|
export interface SessionAvailabilityDefaults {
|
|
readonly optionalProviderLoadFailures?:
|
|
| OptionalProviderLoadFailures
|
|
| undefined;
|
|
readonly optionalFeatures?: Pick<
|
|
AvailabilityPolicy,
|
|
| "packetCaptureEnabled"
|
|
| "signalRecordingEnabled"
|
|
| "wasmArtifactEnabled"
|
|
| "evmInterfaceEnabled"
|
|
| "browserObservationEnabled"
|
|
| "browserScenarioEnabled"
|
|
| "electronObservationEnabled"
|
|
| "electronAutomationEnabled"
|
|
| "v8InspectorObservationEnabled"
|
|
| "javascriptRecoveryEnabled"
|
|
| "webModuleResolutionEnabled"
|
|
| "binaryLayoutEnabled"
|
|
| "recordedCrashEnabled"
|
|
| "firmwareInspectionEnabled"
|
|
| "firmwareExtractionEnabled"
|
|
>;
|
|
}
|
|
|
|
/** Select configured availability reporting or the target-free defaults. */
|
|
export const sessionAvailabilityPolicy = (
|
|
configured: (() => AvailabilityPolicy) | undefined,
|
|
defaults: SessionAvailabilityDefaults,
|
|
): (() => AvailabilityPolicy) => {
|
|
const policy =
|
|
configured ??
|
|
(() => ({
|
|
packetCaptureEnabled:
|
|
defaults.optionalFeatures?.packetCaptureEnabled ?? false,
|
|
signalRecordingEnabled:
|
|
defaults.optionalFeatures?.signalRecordingEnabled ?? false,
|
|
wasmArtifactEnabled:
|
|
defaults.optionalFeatures?.wasmArtifactEnabled ?? false,
|
|
evmInterfaceEnabled:
|
|
defaults.optionalFeatures?.evmInterfaceEnabled ?? false,
|
|
processCaptureEnabled: platform !== "win32",
|
|
recordedCrashEnabled:
|
|
defaults.optionalFeatures?.recordedCrashEnabled ?? false,
|
|
binaryLayoutEnabled:
|
|
defaults.optionalFeatures?.binaryLayoutEnabled ?? false,
|
|
firmwareInspectionEnabled:
|
|
defaults.optionalFeatures?.firmwareInspectionEnabled ?? false,
|
|
firmwareExtractionEnabled:
|
|
defaults.optionalFeatures?.firmwareExtractionEnabled ?? false,
|
|
javascriptRecoveryEnabled:
|
|
defaults.optionalFeatures?.javascriptRecoveryEnabled ?? false,
|
|
webModuleResolutionEnabled:
|
|
defaults.optionalFeatures?.webModuleResolutionEnabled ?? false,
|
|
browserObservationEnabled:
|
|
defaults.optionalFeatures?.browserObservationEnabled ?? false,
|
|
browserScenarioEnabled:
|
|
defaults.optionalFeatures?.browserScenarioEnabled ?? false,
|
|
electronObservationEnabled:
|
|
defaults.optionalFeatures?.electronObservationEnabled ?? false,
|
|
electronAutomationEnabled:
|
|
defaults.optionalFeatures?.electronAutomationEnabled ?? false,
|
|
v8InspectorObservationEnabled:
|
|
defaults.optionalFeatures?.v8InspectorObservationEnabled ?? false,
|
|
}));
|
|
return () => ({
|
|
...policy(),
|
|
...(defaults.optionalProviderLoadFailures === undefined
|
|
? {}
|
|
: {
|
|
optionalProviderLoadFailures: defaults.optionalProviderLoadFailures,
|
|
}),
|
|
});
|
|
};
|