mirror of
https://github.com/morluto/rea.git
synced 2026-10-12 02:19:24 +00:00
Remove REA permission grants, scope ceilings, approval confirmations, and inert settings. Preserve selected local evidence, accept caller-chosen commands and paths, and report actual runtime failures. Harden provider results, schema serialization, snapshot evidence binding, archive paths, source maps, native screenshots, managed EH parsing, and cancellation cleanup. Regenerate tool metadata and document direct invocation. BREAKING CHANGE: Removed permission configuration and policy commands, approval fields, filesystem scope inputs, and fixed confirmation options. Process capture inherits the host environment and accepts command names; callers must refresh tool schemas and migrate removed fields.
70 lines
2.4 KiB
TypeScript
70 lines
2.4 KiB
TypeScript
import type { ExecutionOptions } from "./AnalysisProvider.js";
|
|
import type { JavaScriptRuntimeObservationPort } from "./JavaScriptRuntimeObservationPort.js";
|
|
import { createJavaScriptRuntimeObservationEvidence } from "./JavaScriptRuntimeObservationEvidence.js";
|
|
import type { Evidence } from "../domain/evidence.js";
|
|
import {
|
|
AnalysisCapabilityUnavailableError,
|
|
type AnalysisError,
|
|
} from "../domain/errors.js";
|
|
import type {
|
|
ListJavaScriptRuntimeTargetsInput,
|
|
ObserveJavaScriptRuntimeInput,
|
|
} from "../domain/javascriptRuntimeObservation.js";
|
|
import { err, ok, type Result } from "../domain/result.js";
|
|
|
|
/** List targets exposed by the explicitly selected loopback Inspector. */
|
|
export const listJavaScriptRuntimeTargets = async (
|
|
provider: JavaScriptRuntimeObservationPort | undefined,
|
|
input: ListJavaScriptRuntimeTargetsInput,
|
|
options: ExecutionOptions = {},
|
|
): Promise<Result<Evidence, AnalysisError>> => {
|
|
const ready = requireProvider(provider, "list_javascript_runtime_targets");
|
|
if (!ready.ok) return ready;
|
|
const result = await ready.value.listTargets(input, options);
|
|
return result.ok
|
|
? ok(
|
|
createJavaScriptRuntimeObservationEvidence(
|
|
"list_javascript_runtime_targets",
|
|
input,
|
|
result.value,
|
|
ready.value.identity(),
|
|
),
|
|
)
|
|
: result;
|
|
};
|
|
|
|
/** Observe one attach-only Inspector target selected by the request. */
|
|
export const observeJavaScriptRuntime = async (
|
|
provider: JavaScriptRuntimeObservationPort | undefined,
|
|
input: ObserveJavaScriptRuntimeInput,
|
|
options: ExecutionOptions = {},
|
|
): Promise<Result<Evidence, AnalysisError>> => {
|
|
const ready = requireProvider(provider, "observe_javascript_runtime");
|
|
if (!ready.ok) return ready;
|
|
const result = await ready.value.observe(input, options);
|
|
return result.ok
|
|
? ok(
|
|
createJavaScriptRuntimeObservationEvidence(
|
|
"observe_javascript_runtime",
|
|
input,
|
|
result.value,
|
|
ready.value.identity(),
|
|
),
|
|
)
|
|
: result;
|
|
};
|
|
|
|
const requireProvider = (
|
|
provider: JavaScriptRuntimeObservationPort | undefined,
|
|
operation: "list_javascript_runtime_targets" | "observe_javascript_runtime",
|
|
): Result<JavaScriptRuntimeObservationPort, AnalysisError> =>
|
|
provider === undefined
|
|
? err(
|
|
new AnalysisCapabilityUnavailableError(
|
|
"rea-v8-inspector",
|
|
operation,
|
|
"V8 Inspector observation provider is not configured",
|
|
),
|
|
)
|
|
: ok(provider);
|