Readonlydirection
direction: "incoming" | "outgoing" | "both"
Readonlygraph
graph: {
coverage: {
limits: {
name: string;
unit:
| "bytes"
| "other"
| "items"
| "depth"
| "milliseconds"
| "characters"
| "instructions";
value: number;
}[];
omitted_count: number
| null;
status: "unknown" | "unavailable" | "complete" | "partial";
truncated: boolean;
};
edges: {
edge_id: string;
evidence: {
artifact: | { artifact_id: string; available: true; sha256: string }
| {
available: false;
detail: string;
reason:
| "unknown"
| "truncated"
| "unresolved"
| "not-applicable"
| "not-observed"
| "not-approved"
| "provider-unavailable";
};
authority: | "unknown"
| "controlled-replay"
| "historical-reference"
| "artifact-bytes"
| "ast-static-analysis"
| "static-relationship-inference"
| "passive-cdp-runtime"
| "cross-layer-reconciliation"
| "cross-version-comparison"
| "native-analysis-provider"
| "managed-static-analysis"
| "user-assertion";
confidence: "unknown"
| "exact"
| "low"
| "medium"
| "high";
coverage: {
limits: {
name: string;
unit:
| "bytes"
| "other"
| "items"
| "depth"
| "milliseconds"
| "characters"
| "instructions";
value: number;
}[];
omitted_count: number
| null;
status: "unknown" | "unavailable" | "complete" | "partial";
truncated: boolean;
};
evidence_ids: string[];
extractor: {
executable_sha256: string
| null;
name: string;
operation: string;
version: string;
};
limitations: string[];
location: | {
available: false;
detail: string;
reason: | "unknown"
| "truncated"
| "unresolved"
| "not-applicable"
| "not-observed"
| "not-approved"
| "provider-unavailable";
}
| {
available: true;
value: | {
end: { column: number; line: number };
kind: "source-range";
source: string;
start: { column: number; line: number };
}
| { end: number; kind: "file-offset-range"; start: number }
| { kind: "artifact-path"; path: string }
| { kind: "url"; url: string }
| {
capture_sha256: string;
frame_key: string | null;
kind: "runtime";
script_key: string | null;
target_key: string;
}
| { address: string; kind: "native-address"; symbol: string
| null }
| { export_path: string; kind: "package-export"; package_name: string };
};
state: "unknown"
| "observed"
| "inferred"
| "unavailable";
};
identifier_strategy: {
stability: "relationship-exact";
strategy: "semantic-content-sha256";
};
properties: Record<string, JSONType>;
relation:
| "contains"
| "loads"
| "calls"
| "imports"
| "maps_to"
| "exposes"
| "sends"
| "invokes"
| "handles"
| "persists_to"
| "observed_as"
| "changed_from";
source_node_id: string;
target_node_id: string;
}[];
graph_id: string;
limitations: string[];
nodes: {
identity: | {
sha256: string;
stability: "global-exact";
strategy: "content-digest";
}
| {
original_source: string;
source_map_sha256: string;
source_sha256: string
| null;
stability: "source-map-exact";
strategy: "source-map-original";
}
| {
artifact_sha256: string;
path: string;
stability: "artifact-version";
strategy: "canonical-path";
}
| {
algorithm: string;
basis: (
| "imports"
| "exports"
| "syntax-tree"
| "control-flow"
| "literals"
| "api-usage"
)[];
fingerprint_sha256: string;
stability: "cross-version-inference";
strategy: "structural-fingerprint";
}
| {
artifact_sha256: string;
key: string;
namespace: string;
stability: "artifact-version";
strategy: "artifact-local-key";
}
| {
capture_sha256: string;
runtime_key: string;
stability: "capture-only";
strategy: "runtime-instance";
}
| {
observation_sha256: string;
scope: string;
stability: "observation-only";
strategy: "observation-fingerprint";
};
kind: | "unknown"
| "target"
| "native-addon"
| "source-map"
| "artifact"
| "package"
| "installer"
| "asar-entry"
| "electron-main"
| "electron-preload"
| "electron-renderer"
| "electron-utility"
| "javascript-asset"
| "javascript-chunk"
| "javascript-module"
| "source-module"
| "browser-window"
| "frame"
| "context-bridge-api"
| "ipc-channel"
| "ipc-handler"
| "worker"
| "service-worker"
| "endpoint"
| "storage"
| "native-export"
| "managed-assembly"
| "managed-module"
| "managed-type"
| "managed-method"
| "managed-field"
| "managed-pinvoke-import"
| "managed-native-implementation"
| "runtime-script-instance";
node_id: string;
observations: {
evidence: {
artifact: | { artifact_id: string; available: true; sha256: string }
| {
available: false;
detail: string;
reason:
| "unknown"
| "truncated"
| "unresolved"
| "not-applicable"
| "not-observed"
| "not-approved"
| "provider-unavailable";
};
authority: | "unknown"
| "controlled-replay"
| "historical-reference"
| "artifact-bytes"
| "ast-static-analysis"
| "static-relationship-inference"
| "passive-cdp-runtime"
| "cross-layer-reconciliation"
| "cross-version-comparison"
| "native-analysis-provider"
| "managed-static-analysis"
| "user-assertion";
confidence: "unknown"
| "exact"
| "low"
| "medium"
| "high";
coverage: {
limits: {
name: string;
unit:
| "bytes"
| "other"
| "items"
| "depth"
| "milliseconds"
| "characters"
| "instructions";
value: number;
}[];
omitted_count: number
| null;
status: "unknown" | "unavailable" | "complete" | "partial";
truncated: boolean;
};
evidence_ids: string[];
extractor: {
executable_sha256: string
| null;
name: string;
operation: string;
version: string;
};
limitations: string[];
location: | {
available: false;
detail: string;
reason: | "unknown"
| "truncated"
| "unresolved"
| "not-applicable"
| "not-observed"
| "not-approved"
| "provider-unavailable";
}
| {
available: true;
value: | {
end: { column: ...; line: ... };
kind: "source-range";
source: string;
start: { column: ...; line: ... };
}
| { end: number; kind: "file-offset-range"; start: number }
| { kind: "artifact-path"; path: string }
| { kind: "url"; url: string }
| {
capture_sha256: string;
frame_key: (...) | (...);
kind: "runtime";
script_key: (...) | (...);
target_key: string;
}
| { address: string; kind: "native-address"; symbol: (...)
| (...) }
| { export_path: string; kind: "package-export"; package_name: string };
};
state: "unknown"
| "observed"
| "inferred"
| "unavailable";
};
identifier_strategy: {
stability: "observation-exact";
strategy: "semantic-content-sha256";
};
label: string
| null;
observation_id: string;
properties: Record<string, JSONType>;
}[];
}[];
root_node_ids: string[];
schema: "JavaScriptApplicationGraph";
schema_version: 1;
}
Readonlylimits
limits: {
max_depth: number;
max_edges: number;
max_nodes: number;
max_paths: number;
max_seed_matches: number;
}
ReadonlynativeEvidence
nativeEvidence: readonly (
| {
analysis_profile: {
digest: string;
parameters: Record<string, JSONType>;
provider: { id: string; name: string; version: string };
provider_profile_schema_version: number;
schema_version: 1;
};
authority: | "shipped-artifact"
| "controlled-replay"
| "historical-reference"
| "external-service"
| "analyst-inference";
confidence: "observed"
| "derived"
| "inferred";
environment:
| {
architecture: string;
id: string;
isolation: "process"
| "none"
| "container"
| "virtual-machine";
platform: string;
}
| null;
evidence_id: string;
evidence_links: string[];
limitations: string[];
locations: (
| { address: string; kind: "address" }
| { end: string; kind: "address-range"; start: string }
| { kind: "artifact-path"; path: string }
| { kind: "file-offset"; offset: number }
| { end: number; kind: "file-offset-range"; start: number }
)[];
normalized_result: JSONType;
operation: string;
parameters: Record<string, JSONType>;
predicate_type: string;
provider: { id: string; name: string; version: string | null };
raw_result: JSONType;
schema_version: 2;
subject:
| {
architecture: "x86"
| "x86_64"
| "arm"
| "arm64"
| null;
digest: { sha256: string };
format:
| "unknown"
| "file"
| "directory"
| "javascript"
| "source-map"
| "plist"
| "entitlements"
| "dmg"
| "zip"
| "pkg"
| "asar"
| "javascript-bundle"
| "mach-o-universal"
| "mach-o"
| "elf"
| "pe"
| "hopper"
| "analysis-database"
| "ipa"
| "apk"
| "dex"
| "jvm-class"
| "webassembly"
| "android-manifest"
| "android-resources";
local_path: string;
name: string;
}
| null;
}
| {
authority: | "shipped-artifact"
| "controlled-replay"
| "historical-reference"
| "external-service"
| "analyst-inference";
confidence: "observed"
| "derived"
| "inferred";
environment:
| {
architecture: string;
id: string;
isolation: "process"
| "none"
| "container"
| "virtual-machine";
platform: string;
}
| null;
evidence_id: string;
evidence_links: string[];
limitations: string[];
locations: (
| { address: string; kind: "address" }
| { end: string; kind: "address-range"; start: string }
| { kind: "artifact-path"; path: string }
| { kind: "file-offset"; offset: number }
| { end: number; kind: "file-offset-range"; start: number }
)[];
normalized_result: JSONType;
operation: string;
parameters: Record<string, JSONType>;
predicate_type: string;
provider: { id: string; name: string; version: string | null };
raw_result: JSONType;
schema_version: 2;
subject:
| {
architecture: "x86"
| "x86_64"
| "arm"
| "arm64"
| null;
digest: { sha256: string };
format:
| "unknown"
| "file"
| "directory"
| "javascript"
| "source-map"
| "plist"
| "entitlements"
| "dmg"
| "zip"
| "pkg"
| "asar"
| "javascript-bundle"
| "mach-o-universal"
| "mach-o"
| "elf"
| "pe"
| "hopper"
| "analysis-database"
| "ipa"
| "apk"
| "dex"
| "jvm-class"
| "webassembly"
| "android-manifest"
| "android-resources";
local_path: string;
name: string;
}
| null;
}
)[]
Readonlyseed
seed: {
case_sensitive: boolean;
kind:
| "string"
| "module"
| "native-export"
| "route"
| "node-id"
| "api"
| "channel";
match: "exact"
| "contains"
| null;
value: string;
}
ReadonlysourceEvidenceId
sourceEvidenceId: string
Pure, authenticated inputs projected by the application service.