mirror of
https://github.com/morluto/rea.git
synced 2026-11-12 01:41:21 +00:00
* refactor(analysis): centralize resource budgets and recovery facts * feat(analysis): expose ASAR and Ghidra runtime admission controls * feat(artifacts): expose reader admission and preserve limited recognition * feat(javascript): expose recoverable semantic precision budgets * feat(web): add recoverable source-map budgets and compact retained views * feat(web): make historical capture decoding budgets recoverable * fix(desktop): enforce selected view policies across capture and export * feat(runtime): make Frida and LLDB retention budgets selectable * feat(native): expose diagnostic budgets and preserve exhaustion causes * feat(managed): expose recoverable snapshot and representation budgets * feat(metadata): make Go and Rust inspection budgets recoverable * feat(wasm): expose representation and producer admissions * feat(evm): expose per-call worker resource budgets * feat(android): make resource and string-pool omissions recoverable * feat(producers): expose command and recorded-capture budgets * docs(analysis): record recovery contracts and integrated validation * fix(docs): link calibration oracle from published verification pages * fix(docs): restore desktop task anchors and receipt links * test(analysis): align fixtures with selectable budget contracts * fix(analysis): remove source-location projector dependency cycle * test(analysis): refresh budget recovery and verifier regressions * test(analysis): preserve format and publication recovery expectations * test(windows): align conformance with owned runtime admission * fix(desktop): preserve selected alias kinds in exported state * test(analysis): align provider fixtures with recoverable budgets * test(desktop): validate emitted alias metadata structurally * fix(ghidra): classify bounded Windows endpoint refusals * test(cli): assert selectable artifact admission recovery * fix(cli): preserve capture provenance in environment builds
61 lines
2.8 KiB
TypeScript
61 lines
2.8 KiB
TypeScript
import type { JavaScriptSemanticPrecisionInput } from "./javascriptSemanticPrecision.js";
|
|
import type {
|
|
JavaScriptSemanticProjectionCapacity,
|
|
JavaScriptSemanticFileProjection,
|
|
} from "./javascriptSemanticFileProjection.js";
|
|
import type { AnalysisError } from "../analysisErrorBase.js";
|
|
import type { AnalysisResourceConstraintError } from "../analysisErrorCore.js";
|
|
import type { Result } from "../result.js";
|
|
import type { JavaScriptArtifactFile } from "./javascriptArtifactFiles.js";
|
|
import type { JavaScriptStaticAnalysis } from "./javascriptStaticAnalysisTypes.js";
|
|
import type { JavaScriptModuleSemanticIr } from "./javascriptModuleSemanticIr.js";
|
|
import type { JavaScriptPackageType } from "./javascriptSourceParser.js";
|
|
|
|
/** An earlier static projection displaced to retain later static observations. */
|
|
export interface JavaScriptRevokedStaticProjection {
|
|
/** Zero-based source-analysis call index within this worker checkout. */
|
|
readonly sourceIndex: number;
|
|
readonly error: AnalysisResourceConstraintError;
|
|
}
|
|
|
|
/** Portable facts collected from one inert source. */
|
|
export interface JavaScriptAnalyzedSource {
|
|
readonly javascript: JavaScriptStaticAnalysis;
|
|
readonly module: JavaScriptModuleSemanticIr | null;
|
|
readonly projection: JavaScriptSemanticFileProjection | null;
|
|
readonly applicationProjectionFailure?: AnalysisResourceConstraintError;
|
|
readonly revokedStaticProjections?: readonly JavaScriptRevokedStaticProjection[];
|
|
}
|
|
|
|
/** Execution failure alongside facts already collected by the consumer. */
|
|
export interface JavaScriptSourceAnalysisFailure {
|
|
readonly error: AnalysisError;
|
|
readonly javascript: JavaScriptStaticAnalysis | null;
|
|
readonly module: JavaScriptModuleSemanticIr | null;
|
|
readonly projection: JavaScriptSemanticFileProjection | null;
|
|
readonly applicationProjectionFailure?: AnalysisResourceConstraintError;
|
|
readonly revokedStaticProjections?: readonly JavaScriptRevokedStaticProjection[];
|
|
}
|
|
|
|
/** Operational choices for source analysis, independent of transport framing. */
|
|
export interface JavaScriptSourceAnalysisLimits {
|
|
readonly semanticPrecision?: JavaScriptSemanticPrecisionInput;
|
|
readonly heapMb: number;
|
|
readonly timeoutMs: number;
|
|
}
|
|
|
|
/** Sequential source-analysis authority with independently verified cleanup. */
|
|
export interface JavaScriptSourceAnalysisPort {
|
|
analyze(
|
|
file: JavaScriptArtifactFile,
|
|
capacity: JavaScriptSemanticProjectionCapacity,
|
|
signal?: AbortSignal,
|
|
onPhase?: (phase: string) => Promise<void>,
|
|
/** Effective package/loader context; declared .js preloads use commonjs. */
|
|
packageType?: JavaScriptPackageType,
|
|
/** Discover loader declarations without retaining semantic projections. */
|
|
purpose?: "analysis" | "preload-discovery",
|
|
): Promise<Result<JavaScriptAnalyzedSource, JavaScriptSourceAnalysisFailure>>;
|
|
close(): Promise<void>;
|
|
}
|