Files
reverse-engineering-anything/src/composition/javascriptRuntimeObservation.ts
T
morlutoandCursor Agent 395b598383 refactor(admission): own inspector, web, and CLI state per host (#8058)
* refactor(admission): own inspector, web, and CLI state per host

Replace the process-global inspector, web-bundle, guidance, and JavaScript
counters with objects a host passes in, so independent instances do not
share admission or cleanup.

* fix(admission): keep worker and file cleanup on the host

Web-bundle and JavaScript workers retry only their host registry, and
each Inspector admission authorizes and closes its own file scope.
Browser providers can share one web-bundle admission.

* test(inspector): gate one admission's file cleanup

The isolation test delayed the first ArtifactResourceScope.retryCleanup
call, so a second call on a shared ElectronFileScope still finished.
Hold first.files.retryCleanup until the other admission's close
finishes, then release and join before restoring the method.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-10-30 05:23:33 +08:00

21 lines
834 B
TypeScript

import type { AnalysisSettingsReader } from "../domain/analysisSettings.js";
import { runtimeAsarHeaderAdmission } from "../config/runtimeAnalysisSettings.js";
import type { JavaScriptRuntimeObservationPort } from "../application/javascript/JavaScriptRuntimeObservationPort.js";
import {
V8InspectorAdmission,
V8InspectorProvider,
} from "../inspector/V8InspectorProvider.js";
export { V8InspectorAdmission };
/** Construct a fresh provider without opening a target or acquiring an engine. */
export const createJavaScriptRuntimeObservationProvider = (
environment: Readonly<Record<string, string | undefined>>,
settings?: AnalysisSettingsReader,
admission?: V8InspectorAdmission,
): JavaScriptRuntimeObservationPort =>
new V8InspectorProvider(
runtimeAsarHeaderAdmission(environment, settings),
admission,
);