From 2ca56724e4be7429372904ad26fe97fa5943bcf4 Mon Sep 17 00:00:00 2001 From: N0zoM1z0 <1705004398@qq.com> Date: Thu, 16 Jul 2026 04:00:42 +0800 Subject: [PATCH] feat(domain): add versioned JavaScript Application Graph --- AGENTS.md | 4 +- README.md | 5 +- docs/api/assets/hierarchy.js | 2 +- docs/api/assets/navigation.js | 2 +- docs/api/assets/search.js | 2 +- ...rmissionAuthority.PermissionPathError.html | 2 +- ...ocessCaptureError.ProcessCaptureError.html | 2 +- ...sionStore.ProjectPermissionStoreError.html | 2 +- ...permissionPolicy.PermissionGrantError.html | 2 +- ...idra_GhidraLauncher.GhidraLaunchError.html | 2 +- ...GhidraSessionError.GhidraSessionError.html | 2 +- .../ghidra_protocol.GhidraRemoteError.html | 2 +- ...mputeJavaScriptApplicationGraphSha256.html | 44 + ...Graph.createJavaScriptApplicationEdge.html | 44 + ...raph.createJavaScriptApplicationGraph.html | 44 + ...Graph.createJavaScriptApplicationNode.html | 44 + ...Graph.parseJavaScriptApplicationGraph.html | 44 + ...h.serializeJavaScriptApplicationGraph.html | 44 + docs/api/hierarchy.html | 52 +- docs/api/index.html | 4 +- ...ation_AnalysisProvider.AnalysisClient.html | 2 +- ...nalysisProvider.AnalysisOperationPort.html | 2 +- ...ion_AnalysisProvider.AnalysisProvider.html | 2 +- ...sisProvider.AnalysisProviderCandidate.html | 2 +- ...n_BinarySessionPort.BinarySessionPort.html | 2 +- ...main_permissionPolicy.PermissionGrant.html | 2 +- ...in_permissionPolicy.PermissionRequest.html | 2 +- ...main_permissionPolicy.PermissionScope.html | 2 +- ...domain_webInventory.StableWebResource.html | 2 +- ...ebInventory.WebInventoryResourceInput.html | 2 +- .../ghidra_GhidraLauncher.GhidraLaunch.html | 2 +- ...essionError.GhidraSessionErrorOptions.html | 2 +- .../hopper_BridgeLauncher.BridgeLaunch.html | 2 +- ...ProviderProcess.ProviderProcessLaunch.html | 2 +- ..._javascriptApplicationEvidenceSchemas.html | 40 + .../domain_javascriptApplicationGraph.html | 48 + ...ain_javascriptApplicationGraphSchemas.html | 40 + ...denceSchemas.ApplicationGraphEvidence.html | 35 + ...idenceSchemas.ApplicationNodeIdentity.html | 35 + ...ationGraph.JavaScriptApplicationGraph.html | 35 + ...plicationGraphSchemas.ApplicationEdge.html | 35 + ...plicationGraphSchemas.ApplicationNode.html | 35 + ...hemas.JavaScriptApplicationGraphInput.html | 35 + ...enceSchemas.applicationCoverageSchema.html | 35 + ...chemas.applicationGraphEvidenceSchema.html | 35 + ...Schemas.applicationNodeIdentitySchema.html | 35 + ...raph.javascriptApplicationGraphSchema.html | 35 + ...mas.JAVASCRIPT_APPLICATION_NODE_KINDS.html | 35 + ...emas.JAVASCRIPT_APPLICATION_RELATIONS.html | 35 + ...aphSchemas.applicationEdgeInputSchema.html | 35 + ...ionGraphSchemas.applicationEdgeSchema.html | 35 + ...aphSchemas.applicationNodeInputSchema.html | 35 + ...emas.applicationNodeObservationSchema.html | 35 + ...ionGraphSchemas.applicationNodeSchema.html | 35 + ...javascriptApplicationGraphInputSchema.html | 35 + ...avascriptApplicationGraphRecordSchema.html | 35 + docs/architecture.mermaid | 2 +- docs/javascript-application-graph.md | 179 ++++ docs/product-catalog.json | 4 + scripts/lib/product-catalog.mjs | 6 + .../javascriptApplicationEvidenceSchemas.ts | 435 +++++++++ src/domain/javascriptApplicationGraph.ts | 495 +++++++++++ .../javascriptApplicationGraphSchemas.ts | 164 ++++ tests/fixtures/javascriptApplicationGraph.ts | 403 +++++++++ tests/javascriptApplicationGraph.test.ts | 829 ++++++++++++++++++ 65 files changed, 3630 insertions(+), 57 deletions(-) create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.computeJavaScriptApplicationGraphSha256.html create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.createJavaScriptApplicationEdge.html create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.createJavaScriptApplicationGraph.html create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.createJavaScriptApplicationNode.html create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.parseJavaScriptApplicationGraph.html create mode 100644 docs/api/functions/domain_javascriptApplicationGraph.serializeJavaScriptApplicationGraph.html create mode 100644 docs/api/modules/domain_javascriptApplicationEvidenceSchemas.html create mode 100644 docs/api/modules/domain_javascriptApplicationGraph.html create mode 100644 docs/api/modules/domain_javascriptApplicationGraphSchemas.html create mode 100644 docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationGraphEvidence.html create mode 100644 docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationNodeIdentity.html create mode 100644 docs/api/types/domain_javascriptApplicationGraph.JavaScriptApplicationGraph.html create mode 100644 docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationEdge.html create mode 100644 docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationNode.html create mode 100644 docs/api/types/domain_javascriptApplicationGraphSchemas.JavaScriptApplicationGraphInput.html create mode 100644 docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationCoverageSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationGraphEvidenceSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationNodeIdentitySchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraph.javascriptApplicationGraphSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_NODE_KINDS.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_RELATIONS.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeInputSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeInputSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeObservationSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphInputSchema.html create mode 100644 docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphRecordSchema.html create mode 100644 docs/javascript-application-graph.md create mode 100644 src/domain/javascriptApplicationEvidenceSchemas.ts create mode 100644 src/domain/javascriptApplicationGraph.ts create mode 100644 src/domain/javascriptApplicationGraphSchemas.ts create mode 100644 tests/fixtures/javascriptApplicationGraph.ts create mode 100644 tests/javascriptApplicationGraph.test.ts diff --git a/AGENTS.md b/AGENTS.md index ebd60703f..d5c4ccc53 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,7 +25,7 @@ See [docs/architecture.mermaid](docs/architecture.mermaid) for a visual architec - `src/main.ts`: MCP adapter. Parses config, wires the shared session runtime, starts stdio transport, and owns process-lifetime shutdown. - `src/cli.ts`: one-shot CLI adapter for setup, diagnostics, analysis, and decompilation. - `src/config.ts`: Zod-validated parsing of environment configuration into `AppConfig`. -- `src/domain/`: pure, side-effect-free modules. `errors.ts` (tagged error algebra), `result.ts` (`Result`/`ok`/`err`), `hopperValues.ts` (shared function-dossier values plus Hopper boundary parsers), `symbolAnalysis.ts` (Swift/ObjC name parsing). +- `src/domain/`: pure, side-effect-free modules. `errors.ts` owns the tagged error algebra; `result.ts` owns `Result`/`ok`/`err`; `hopperValues.ts` owns shared function-dossier values plus Hopper boundary parsers; `symbolAnalysis.ts` parses Swift/ObjC names; `javascriptApplicationGraph.ts` validates and canonically commits the provider-neutral JavaScript Application Graph without performing I/O. - `src/contracts/`: caller-visible schemas for 33 direct, 10 enhanced, 5 native, 2 artifact, 8 browser, 2 Electron, and 18 session tools; `enhancedInputs.ts` owns enhanced input parsing. - `src/process/`: provider-neutral process ownership and lifecycle primitives. It owns private runtime roots, absolute startup deadlines, correlated request waits, bounded output capture, and TERM-to-KILL cleanup without defining any provider wire protocol. - `src/browser/`: loopback CDP discovery, bounded WebSocket transport, exact-origin target authorization, and passive browser observation normalization. @@ -36,7 +36,7 @@ See [docs/architecture.mermaid](docs/architecture.mermaid) for a visual architec - `src/application/`: shared CLI/MCP session composition, setup and diagnostics, and enhanced workflows. `AnalysisProviderRegistry` discovers overlapping deep candidates without starting them; `SessionProviderRouter` binds one candidate per target and composes it with disjoint auxiliary providers. - `src/server/`: MCP request translation. `createServer.ts` assembles the MCP server, `registerOfficialTools.ts`/`registerEnhancedTools.ts` register each tool set, `toolResult.ts` maps `Result` values to MCP content. - `docs/product-catalog.json`: generated package, tool-family, provider, setup-client, schema-version, and CLI facts. Regenerate it from source; do not edit it by hand. -- `tests/`: Vitest suite. `tests/fixtures/` holds reusable provider-process fixtures plus the fake launcher, Hopper bridge, and CDP seams. +- `tests/`: Vitest suite. `tests/fixtures/` holds reusable provider-process fixtures, a source-owned synthetic JavaScript application graph, and the fake launcher, Hopper bridge, and CDP seams. - `scripts/verify-real-hopper.mjs`: real-Hopper end-to-end verifier. - `scripts/verify-real-ghidra.mjs`: real Linux Ghidra verifier for x86-64 debug/stripped ELF, AArch64 ELF, PE, and Mach-O function semantics plus complete cleanup. - `scripts/verify-real-browser.mjs`: real Chrome end-to-end verifier for the passive CDP provider. diff --git a/README.md b/README.md index 336e38672..271307550 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ See a feature in an app that you want in your own product? Give the app to your agent—even without its source code. With REA, the agent can investigate the feature, explain how it works, show its evidence, and build a version adapted to your stack and requirements. -REA gives agents one consistent way to investigate software. Today that includes deep native analysis and function dossiers through Hopper or bring-your-own Ghidra on Linux, reproducible Evidence v2 records, controlled process capture, passive website and Electron observation, and bounded JavaScript/source-map reconstruction. The longer-term toolkit extends the same agent workflow to APIs, protocols, mobile artifacts, firmware, richer runtime behavior, and differences between versions. +REA gives agents one consistent way to investigate software. Today that includes deep native analysis and function dossiers through Hopper or bring-your-own Ghidra on Linux, reproducible Evidence v2 records, controlled process capture, passive website and Electron observation, bounded JavaScript/source-map reconstruction, and a versioned domain graph for connecting JavaScript application layers without confusing static inference with runtime observation. The longer-term toolkit extends the same agent workflow to APIs, protocols, mobile artifacts, firmware, richer runtime behavior, and differences between versions. Reverse engineering normally makes the operator choose a tool, learn its API, move evidence between programs, and decide what to inspect next. REA gives that work to the agent through commands, skills, structured results, and repeatable investigation workflows. @@ -340,6 +340,7 @@ REA is already useful for native application, browser, and Electron investigatio - Discover deep-analysis candidates without starting them, choose deterministically, and retain one immutable provider/profile binding until an explicit switch or close; provider failures never trigger transparent fallback. - Attach to a user-owned Chrome-family browser over a configured loopback CDP endpoint; capture exact-origin web structure, safe metadata, approved value-free payload shapes, bundle/source-map evidence, WebMCP declarations, user-action timelines, capture diffs, and explicitly approved screenshots without navigation or JavaScript evaluation. - Inspect Electron `file://` renderer pages through a separate canonical-root permission boundary without invoking Electron APIs; script contents remain separately approved and byte bounded. +- Validate and canonically serialize a provider-neutral [JavaScript Application Graph v1](docs/javascript-application-graph.md) spanning packages, ASAR entries, Electron roles, JavaScript/source-map entities, browser/runtime instances, IPC, endpoints, storage, and native add-ons. This shipped domain contract performs no extraction or I/O by itself. - Traverse content-addressed artifact graphs without extraction; on macOS, read-only DMG traversal additionally requires `native_mount_approved: true` and `REA_ARTIFACT_NATIVE_MOUNT_ENABLED=true`. Materialize only approved occurrences into absent output roots. - Build bounded function dossiers with pseudocode, assembly, CFG edges, comments, calls, references, strings, and names. - Search and trace features across symbols, strings, metadata, references, and call paths. @@ -384,7 +385,7 @@ REA is growing into a toolkit for understanding software across static artifacts ### Now 1. **Maintain truthful product metadata** — extend the shipped canonical catalog and drift checks whenever versions, tools, providers, schemas, setup clients, or CLI capabilities change. -2. **JavaScript application reconstruction** — connect packages, ASAR entries, main/preload/renderer bundles, source maps, Electron IPC boundaries, service-worker assets, and native add-ons in one evidence-bearing application graph. +2. **JavaScript application graph extractors** — populate the shipped v1 domain graph from artifact inventories, bundle analysis, source maps, Electron boundaries, passive runtime observations, and native analysis without widening authority. 3. **Cross-provider conformance growth** — add source-owned architectures and difficult indirect/thunk cases while preserving semantic comparison and provider-specific text boundaries. ### Next diff --git a/docs/api/assets/hierarchy.js b/docs/api/assets/hierarchy.js index 097fc3049..643dfbdbc 100644 --- a/docs/api/assets/hierarchy.js +++ b/docs/api/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJylmd9vozgQx/8Xnr0cGP+AvHWj3m6l1bVqd9WHUxQ54KZWCeYMaVWt9n8/GZrW1KYY+pIWxHfmw3g8toffgZKybYLVvwhhCGAWJ6n+TSmACCMEEhqlCUBJou/jKMUgjmiCAMQYYRBjSugGBIrflTxvhayaYPU70Lb034odeLAKzipWPjeiOVdKqgAED6IqglUMUxAcVRmsgrxkTcObvwp5YKLacv1cEw5k4X17KAPQPxqsgrYpvmg7X/obIMjvRVkoXnWvQhBAiBKAUJoChLIMIBxDgDAkAOFE/5AIIKwfwVkMEIkQQASmABEUAUQwBIgQDBChKUAUI4AoIQBRqv/T9mgSZ5s/INDOjHf9Luuaq5lvaohmvSdJM4BIRxNRgCiMNJcmRLhno8QxDldKtjKX5cLxGMgneDuINHVAXFT1sV1I8Kb1cZ9lDveXx3a5f0PsAYBj12RYs5rtRCna518Ve2SiZLuSL+QZt+WDB105smZVzsuSF4uRTL0PRuLC+CkOXC4eJ1Ptg0AiA+FKyUdRcHXDX0rbTAi33gdjMGlPZs4KVrezK4tL7YOQxQbCVyWfGq4udw1Xj2xBKEYMeICQyCyuZ6oVdyxvL2uulnC49T4Y0Cxh5zqkVc4vqpbvlWifZ2K49T4YKHJg/BAHMXeG2Fof94NV/WTibzG7bllSH+cEG84vqkfetGLfjeKtVA9NzfK5GB8Y8QGiZk78qh4q+VRd871oWjU3I1xqH4Q0s7YeyyqmrfVxn9nul64bLrUHAo2ohbBwe+MQ+wDAyAK45gfZzk1GS+rjPLG3nldK5ryZu9e2tT7uEbbc37RMLUu+N6WPa2y++VpWd2J/XLQm2Fof98Rcov+RX0XF1PNlzed6t6Q+zqn57r3+J1N7PjfultTH+WDOX3F1EE0jZHXN/zsKNXvajxiYBulOoU6Sm1zW/JUAYnIiEFXL1R3L3yDqV9GVLEX+HL6zMorxamp4IIsjiqA+IGO46RkRHI0Wb9pPU77Y8eDscbAb55ti1edhOiueKLpvYKDc8p1ejKtWqudr3sij0ruj+ugJ9WTIw1Fbs0cT0zTa9LSpWeVvWn2+uuW7k/kFlJYNv8BBhBM62JqLYs9/sGOV309Q3HdVdmsquArNS28EhEYQuPo0BB+f/CPjBBHG6aYnw6m1Ip3VdSnyrrxbkI765CYcNTVdqSAiqXOT0h3MPFCGgvDd5bR/HA0OlN/uRaGYV8rsu0e3poKr0Lz0TBndOBxBmEyZaYgFKYPjKO5SRv9jkX3nrCh50/jky0d47+34DFYMM4vHJ1kGHK/Z8e7Swz8ebOpOypedoVfW1P2z23fa0GlrwWRPKOhyuh8/Qs3SvC7ql2aDT8x2/aNbWxU6bk0HL40HlXFd1Oe696NkNZPmvSx03Zvm0d18V+/z1P64kmpqhWVvJW9rNIB7AqfB2SOaxfo7A8IJ2vTQgyC+NhRLwSc3KV60vSXPyqU/hbhb6MPx/ATP5ICOBA5FJNYfa2AC+8DBxNVoPplfs6oQBWundiuzmF+NLqjAMAPd2qjhk5gS+1Rzw7uN5UeTxqQdiMLh1eRk6RJwjGDmRLG0oX1nZry6AHWR0h/kPmzOzoV1GnD0bBdNbl2fu09ROlkHR/ZDLRvRcp/KaOJawtC+M32M1d8zzV7mS21dHsURC+HY/blx1EvLpu/5xNlwgdaL6ZrV7VFN95xMZIc0dN2biOafP/8DdORXWQ==" \ No newline at end of file +window.hierarchyData = "eJylmVFvpCoUx7+Lz6xXEUH71p307jbZ3E7a3fThppkwSqekDnjRadNs9rvfoJ0WB6xoX6aV+D/nBxwOcPwdKCnbJjj7F6EUgiSOMv0bJzGAGGUZSPIIEoBSmEEASQRzEENMMgAJynIQExLHdyBQ7L5iRculaIKz34G2pf8KumfBWXAuaPXS8OZCKakCEDxyUQZnMcxAcFBVcBYUFW0a1vxVyj3lYsP0e004kIUP7b4KQP9qcBa0TflF2/nSN4CgeOBVqZjouoIRQIhggHQXEMpzgNIY6m5ggNJE/+AIoFS/kuYxQDhCAGGYAYRRBBBOIUAYpwDpviKSIoAIxgARov/T9nKIk7s/INDOjL5+l3XN1MyeGqJZ/cRZDhDWNCQiABEYAUQSTYjSno1gxzyslWxlIauF8zGQT/B2EFnmgLgU9aFdSPCu9XGf5w73V4d2uX9D7AGQxq7FsKI13fKKty+/BH2ivKLbii3kGbflgwddMbKiomBVxcrFSKbeByNxYfzkeyYXz5Op9kHAkYGwVvKJl0zdsNfUNhPCrffBGCzao5nzktbt7MziUvsg5LGB8FXJ54apq23D1BNdMBQjBjxAcGQm13PV8ntatFc1U0s43HofDGimsAs9pKJgl6JlO8Xbl5kYbr0PBoocGD/4ns9dIbbWx/1gVz+a+JvPzluW1Mc5Tg3nl+KJNS3fdbN4K9VjU9NiLsYHRnyAiBkTv8SjkM/imu1406q5EeFS+yBkuXX0WJYxba2P+9x2v3TfcKk9EEhELISFxxuH2AcARhbANdvLdm4wWlIf54l99FwrWbBm7lnb1vq4R6nl/qalalnwvSt9XKdmz1dS3PPdYdGeYGt93GNzi/5HfuWCqperms31bkl9nBOz773+J1U7NnfcLamP88GaXzO1503Dpbhm/x24mr3sRwxMg3S3UCfJTSFr9kYAU3wk4KJl6p4W7xD1m2gtK168hCdWRjHeTA0vZDHEGdYX5Bzf9YwZHh0t1rSfpny148HZ4+RunG+Kis/DdFY8UXTdwEC5ZVu9GYtWqpdr1siD0qej+uAJ9WzIw1Fbs2eTEIjuelpoLrmbVt+vbtn2aH4BpWXDb+B0UWZ4NOfljv2gB1E8TFA8dFl2YyqYCs1Hf4RsBIGpT0Ow8cU/Mk8QpxG868jSCFo70nldV7zo0rsF6chPbsJRU9OZCmKcxK5turuYeaAMBeHJ47R/Eg3OKN8eeKmoV8jsulc3poKp0Hz0DBldOBxBmAyZaYgFIUOivkLW/WORfWe0rFjT+MTLR3indrwmiyQWj0+wDDjeouPk0cM/GtwpjsrXk6FX1NT9u5sTbei0NX+xoyzuKtFRP384HpwEy/q12OAzZtv+1Y2tCh1Nk4OXRNEgM67K+kLXfpQUM2lOZaGrbZpHV/Ndtc9j+WMt1dQOS99T3sYoAPcEToNzZ1RTZiDBiGR3r9CuevGq4mzykOJF21vyy1zdpxB3CX04n5/gmZzQkYFDMMXdxxqC+4GLx6r9nfkVFSUvaTt1WpnF/GZ0QQYmCej2xg4+IVFm3WpuWHew/GjRmLQDUTh8ml4sOgDHCGYuFEsb2i1zV4keoG6k9Ae5D4uzc2GdBhw12yXYXX7uPkXpYB1c2fe1bHjLfDKjiWsJQ7vF56PHIDMec+vyURyxEI61z51+vbV046i/Ow43aL2ZrmjdHtR0zclEdkhDV9vEaP758z+sH1dZ" \ No newline at end of file diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index aff74f0d0..f0141aef8 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "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" \ No newline at end of file +window.navigationData = "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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index 64de9d34c..c159096ee 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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R1qz4rh9deWPYmsO2MFPtx4ptpXwEB1uZ92244NyuOEVR+Prn366eX1z9XbV8Tj68fpB3Q7W2vi4frzBKNCm43O8w5d5XN/QzJMe19fFP/vZdstubHu2PW8HNj/bbtmR055tL7FD659tt+/PxmfbzbtDrnj8ShJe8443ufYKs/28Dq98U2nQtscRutLWe8PylsMjxre9tWXxEeTNWnckf3n38OTdY/rZ6vvGv324eePlX7+8e5jScAl6cTNs9a3Hw3cr8LQP795cLWra6ga9+BhqS7tovOXEO1xjxSn6uCG6+rmHMkqmaQKi7x6uHj68X3NKzlbYejrGWwyPzHybW1oTH6d5U9YfsVVPcIe/XX0iHqz0dB0j3dI8wimHZfmR7ZSyxi2NPaO6ceVmnqHIcdsOnlnreO5ubil53LZjmysfz9yVTUV4m3Zley3embuyvSRv0/6cWJl35k5tq33btEMnlMCduzMrK+G27caWgrgzd8BnLL9+89maV+1VjZ8CXq1+wV7f8Pj5YeV7z9GmVt6WN98Z588KH26nOp2P06WEjwrzn65+olrYyvyAkO2s2zY5HGTDC0fj/ThqT9Vmwc/WHoWb998F8WfHALcwW3XV3uPuBNnqUzuf3DS+/pnti/4y+3z269lNTE7kp4t/oYO5nf/46qv//PHVfkLmrz5/9eOfvvjy1Y/ffP3lF5+z6acXthaG2XJUjnY1bu033379+avvvju9nccBLtDCmnotu98S7LNvv//iT599/v2Pn3/979989u0X33391cdpr7f+DT8+iv74+uPXiH1Vp/fpumyz//CXr/745auLNPqvXkz0/E3+/LMvv/zxm8++//PpTX199fbtj/vpm56riX/+7Kt/e/XHH//w6s+f/ccXX397Rkv/dnX78/WbH/96/berX2/u7p+pwX/6y1eff//F119dJBEeL6bPnwofz+pTm/rY//J5mvftq8+//uq777/9yzi2J7dy/1F7Ghrz5tmO5Xfff/b9F5//+O1fvvr+i39/dXpj3z9cPdy83j/f7AcnulBjZ3fKh7u7t1/e/fzzze3PUQsPfrL22eXt3c/7Brz6x/XrD8uPb4fBca1Vd5fDHXhiPw8RAr9AkX0mP1+7/09tjR4Gtr317eBHhjXiyaN01A+cHpigp3dwLD6/ejshUDDN9jw2rrRhh30b/+9/vfzk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"; \ No newline at end of file diff --git a/docs/api/classes/application_PermissionAuthority.PermissionPathError.html b/docs/api/classes/application_PermissionAuthority.PermissionPathError.html index 1045b8aef..55b0cc83a 100644 --- a/docs/api/classes/application_PermissionAuthority.PermissionPathError.html +++ b/docs/api/classes/application_PermissionAuthority.PermissionPathError.html @@ -14,7 +14,7 @@

Failure to establish a filesystem object's canonical authorization identity.

-
+

Hierarchy

+
  • GhidraProvider
  • +
  • HopperProvider
  • +
  • HopperApplicationLauncher
  • +
  • CdpBrowserProvider
  • +
  • CdpElectronProvider
  • +
  • GhidraHeadlessLauncher
  • +
  • PermissionRequest
  • +
  • PermissionGrant
  • +
  • BridgeLaunch
  • +
  • GhidraLaunch
  • +
  • StableWebResource
  • interface AnalysisClient {
        close(): Promise<void>;
        execute(
            operation: AnalysisOperation,
            parameters: Readonly<Record<string, JsonValue>>,
            options?: ExecutionOptions,
        ): Promise<Result<AnalysisExecution, AnalysisError>>;
    }
    -
    +

    Hierarchy (View Summary)

    • AnalysisOperationPort diff --git a/docs/api/interfaces/application_AnalysisProvider.AnalysisOperationPort.html b/docs/api/interfaces/application_AnalysisProvider.AnalysisOperationPort.html index 4106572bc..47788f89f 100644 --- a/docs/api/interfaces/application_AnalysisProvider.AnalysisOperationPort.html +++ b/docs/api/interfaces/application_AnalysisProvider.AnalysisOperationPort.html @@ -15,7 +15,7 @@

      Provider-neutral application capability for one analysis operation.

    interface AnalysisOperationPort {
        execute(
            operation: AnalysisOperation,
            parameters: Readonly<Record<string, JsonValue>>,
            options?: ExecutionOptions,
        ): Promise<Result<AnalysisExecution, AnalysisError>>;
    }
    -
    +

    Hierarchy (View Summary)

    • AnalysisOperationPort diff --git a/docs/api/interfaces/application_AnalysisProvider.AnalysisProvider.html b/docs/api/interfaces/application_AnalysisProvider.AnalysisProvider.html index ace3ca92b..37192869e 100644 --- a/docs/api/interfaces/application_AnalysisProvider.AnalysisProvider.html +++ b/docs/api/interfaces/application_AnalysisProvider.AnalysisProvider.html @@ -15,7 +15,7 @@

      Factory and capability declaration for an analysis implementation.

    interface AnalysisProvider {
        capabilities(): readonly CapabilityDescriptor[];
        createClient(
            target: BinaryTarget,
            profile?: {
                digest: string;
                parameters: Record<string, JSONType>;
                provider: { id: string; name: string; version: string };
                provider_profile_schema_version: number;
                schema_version: 1;
            },
        ): AnalysisClient;
        identity(): ProviderIdentity;
        resolveAnalysisProfile?(
            target: BinaryTarget,
            options?: AnalysisProfileResolutionOptions,
        ): Promise<Result<AnalysisProfileResolution, AnalysisError>>;
    }
    -
    +

    Hierarchy (View Summary)

    • AnalysisProvider diff --git a/docs/api/interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html b/docs/api/interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html index 2681b1ab0..c131deeef 100644 --- a/docs/api/interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html +++ b/docs/api/interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html @@ -15,7 +15,7 @@

      Deep provider candidate discoverable before one target-bound route is chosen.

    interface AnalysisProviderCandidate {
        capabilities(): readonly CapabilityDescriptor[];
        createClient(
            target: BinaryTarget,
            profile?: {
                digest: string;
                parameters: Record<string, JSONType>;
                provider: { id: string; name: string; version: string };
                provider_profile_schema_version: number;
                schema_version: 1;
            },
        ): AnalysisClient;
        identity(): ProviderIdentity;
        inspectAvailability(): ProviderAvailability;
        inspectTargetSupport(target: BinaryTarget): ProviderTargetSupport;
        resolveAnalysisProfile(
            target: BinaryTarget,
            options?: AnalysisProfileResolutionOptions,
        ): Promise<Result<AnalysisProfileResolution, AnalysisError>>;
    }
    -
    +

    Hierarchy (View Summary)

    • AnalysisProvider diff --git a/docs/api/interfaces/application_BinarySessionPort.BinarySessionPort.html b/docs/api/interfaces/application_BinarySessionPort.BinarySessionPort.html index 21abfcbd0..b69d5d0ae 100644 --- a/docs/api/interfaces/application_BinarySessionPort.BinarySessionPort.html +++ b/docs/api/interfaces/application_BinarySessionPort.BinarySessionPort.html @@ -15,7 +15,7 @@

      Target lifecycle used by CLI and MCP without exposing a concrete provider.

    interface BinarySessionPort {
        activeTarget(): BinaryTarget | undefined;
        analysisProfile(
            operation?: AnalysisOperation,
        ):
            | {
                digest: string;
                parameters: Record<string, JSONType>;
                provider: { id: string; name: string; version: string };
                provider_profile_schema_version: number;
                schema_version: 1;
            }
            | undefined;
        close(): Promise<Result<null, AnalysisError>>;
        evidenceById(
            evidenceId: string,
        ):
            | {
                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";
                        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";
                        local_path: string;
                        name: string;
                    }
                    | null;
            }
            | undefined;
        execute(
            operation: AnalysisOperation,
            parameters: Readonly<Record<string, JsonValue>>,
            options?: ExecutionOptions,
        ): Promise<Result<AnalysisExecution, AnalysisError>>;
        exportAnalysisSnapshot(): Result<
            {
                binding: {
                    analysis_profile: {
                        digest: string;
                        parameters: Record<string, JSONType>;
                        provider: { id: string; name: string; version: string };
                        provider_profile_schema_version: number;
                        schema_version: 1;
                    };
                    provider: { id: string; name: string; version: string };
                };
                entries: {
                    execution: {
                        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 }
                        )[];
                        provider: { id: string; name: string; version: string };
                        raw_result: JSONType;
                        result: JSONType;
                        subject:
                            | {
                                architecture: "x86"
                                | "x86_64"
                                | "arm"
                                | "arm64"
                                | null;
                                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";
                                path: string;
                                sha256: string;
                            }
                            | null;
                    };
                    operation: string;
                    parameters: Record<string, JSONType>;
                    query_id: string;
                }[];
                evidence_bundle: {
                    artifacts: {
                        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";
                    }[];
                    bundle_version: 2;
                    captures: { evidence_id: string; predicate_type: string }[];
                    environments: {
                        architecture: string;
                        id: string;
                        isolation: "process" | "none" | "container" | "virtual-machine";
                        platform: string;
                    }[];
                    providers: { id: string; name: string; version: string
                    | null }[];
                    records: (
                        | {
                            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";
                                    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";
                                    local_path: string;
                                    name: string;
                                }
                                | null;
                        }
                    )[];
                    scenarios: {
                        authority: "controlled-replay";
                        evidence_id: string;
                        operation: string;
                    }[];
                    unknowns: {
                        contradicting_evidence_ids: string[];
                        domain: string;
                        mutation_evidence_ids: string[];
                        previous_revision_digest: string
                        | null;
                        question: string;
                        recommended_probes: { operation: string; rationale: string }[];
                        registry_version: 1;
                        relationships: {
                            type: "depends-on" | "related-to" | "contradicts";
                            unknown_id: string;
                        }[];
                        required_authority: | "shipped-artifact"
                        | "controlled-replay"
                        | "historical-reference"
                        | "external-service"
                        | "analyst-inference"
                        | null;
                        required_confidence: "observed"
                        | "derived"
                        | "inferred";
                        required_environment:
                            | {
                                architecture: string
                                | null;
                                id: string | null;
                                isolation:
                                    | "process"
                                    | "none"
                                    | "container"
                                    | "virtual-machine"
                                    | null;
                                platform: string
                                | null;
                            }
                            | null;
                        resolution: | {
                            disposition: "verified";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | {
                            disposition: "withdrawn"
                            | "out-of-scope";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | null;
                        revision: number;
                        revision_digest: string;
                        scope_digest: string
                        | null;
                        severity: "low" | "medium" | "high" | "critical";
                        status:
                            | "open"
                            | "investigating"
                            | "blocked"
                            | "contradicted"
                            | "resolved";
                        supporting_evidence_ids: string[];
                        unknown_id: string;
                    }[];
                };
                snapshot_version: 2;
                target: {
                    architecture: "x86"
                    | "x86_64"
                    | "arm"
                    | "arm64"
                    | null;
                    format:
                        | "javascript"
                        | "source-map"
                        | "plist"
                        | "dmg"
                        | "zip"
                        | "pkg"
                        | "asar"
                        | "mach-o"
                        | "elf"
                        | "pe"
                        | "analysis-database"
                        | "ipa"
                        | "apk";
                    kind: "executable"
                    | "database"
                    | "archive"
                    | "artifact";
                    sha256: string;
                };
            },
            AnalysisError,
        >;
        exportEvidenceBundle(): {
            artifacts: {
                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";
            }[];
            bundle_version: 2;
            captures: { evidence_id: string; predicate_type: string }[];
            environments: {
                architecture: string;
                id: string;
                isolation: "process" | "none" | "container" | "virtual-machine";
                platform: string;
            }[];
            providers: { id: string; name: string; version: string
            | null }[];
            records: (
                | {
                    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";
                            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";
                            local_path: string;
                            name: string;
                        }
                        | null;
                }
            )[];
            scenarios: {
                authority: "controlled-replay";
                evidence_id: string;
                operation: string;
            }[];
            unknowns: {
                contradicting_evidence_ids: string[];
                domain: string;
                mutation_evidence_ids: string[];
                previous_revision_digest: string
                | null;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                registry_version: 1;
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                resolution: | {
                    disposition: "verified";
                    evidence_ids: string[];
                    rationale: string;
                }
                | {
                    disposition: "withdrawn"
                    | "out-of-scope";
                    evidence_ids: string[];
                    rationale: string;
                }
                | null;
                revision: number;
                revision_digest: string;
                scope_digest: string
                | null;
                severity: "low" | "medium" | "high" | "critical";
                status:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
                supporting_evidence_ids: string[];
                unknown_id: string;
            }[];
        };
        hasEvidence(evidenceId: string): boolean;
        importAnalysisSnapshot(
            snapshot: {
                binding: {
                    analysis_profile: {
                        digest: string;
                        parameters: Record<string, JSONType>;
                        provider: { id: string; name: string; version: string };
                        provider_profile_schema_version: number;
                        schema_version: 1;
                    };
                    provider: { id: string; name: string; version: string };
                };
                entries: {
                    execution: {
                        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 }
                        )[];
                        provider: { id: string; name: string; version: string };
                        raw_result: JSONType;
                        result: JSONType;
                        subject:
                            | {
                                architecture: "x86"
                                | "x86_64"
                                | "arm"
                                | "arm64"
                                | null;
                                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";
                                path: string;
                                sha256: string;
                            }
                            | null;
                    };
                    operation: string;
                    parameters: Record<string, JSONType>;
                    query_id: string;
                }[];
                evidence_bundle: {
                    artifacts: {
                        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";
                    }[];
                    bundle_version: 2;
                    captures: { evidence_id: string; predicate_type: string }[];
                    environments: {
                        architecture: string;
                        id: string;
                        isolation: "process" | "none" | "container" | "virtual-machine";
                        platform: string;
                    }[];
                    providers: { id: string; name: string; version: string
                    | null }[];
                    records: (
                        | {
                            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";
                                    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";
                                    local_path: string;
                                    name: string;
                                }
                                | null;
                        }
                    )[];
                    scenarios: {
                        authority: "controlled-replay";
                        evidence_id: string;
                        operation: string;
                    }[];
                    unknowns: {
                        contradicting_evidence_ids: string[];
                        domain: string;
                        mutation_evidence_ids: string[];
                        previous_revision_digest: string
                        | null;
                        question: string;
                        recommended_probes: { operation: string; rationale: string }[];
                        registry_version: 1;
                        relationships: {
                            type: "depends-on" | "related-to" | "contradicts";
                            unknown_id: string;
                        }[];
                        required_authority: | "shipped-artifact"
                        | "controlled-replay"
                        | "historical-reference"
                        | "external-service"
                        | "analyst-inference"
                        | null;
                        required_confidence: "observed"
                        | "derived"
                        | "inferred";
                        required_environment:
                            | {
                                architecture: string
                                | null;
                                id: string | null;
                                isolation:
                                    | "process"
                                    | "none"
                                    | "container"
                                    | "virtual-machine"
                                    | null;
                                platform: string
                                | null;
                            }
                            | null;
                        resolution: | {
                            disposition: "verified";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | {
                            disposition: "withdrawn"
                            | "out-of-scope";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | null;
                        revision: number;
                        revision_digest: string;
                        scope_digest: string
                        | null;
                        severity: "low" | "medium" | "high" | "critical";
                        status:
                            | "open"
                            | "investigating"
                            | "blocked"
                            | "contradicted"
                            | "resolved";
                        supporting_evidence_ids: string[];
                        unknown_id: string;
                    }[];
                };
                snapshot_version: 2;
                target: {
                    architecture: "x86"
                    | "x86_64"
                    | "arm"
                    | "arm64"
                    | null;
                    format:
                        | "javascript"
                        | "source-map"
                        | "plist"
                        | "dmg"
                        | "zip"
                        | "pkg"
                        | "asar"
                        | "mach-o"
                        | "elf"
                        | "pe"
                        | "analysis-database"
                        | "ipa"
                        | "apk";
                    kind: "executable"
                    | "database"
                    | "archive"
                    | "artifact";
                    sha256: string;
                };
            },
        ): Result<number, AnalysisError>;
        importEvidenceBundle(
            bundle: unknown,
        ): Result<number, EvidenceIntegrityError | EvidenceLimitError>;
        investigationWorkspace(
            workspaceId: string,
            revision: number,
        ):
            | {
                bundle: {
                    artifacts: {
                        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";
                    }[];
                    bundle_version: 2;
                    captures: { evidence_id: string; predicate_type: string }[];
                    environments: {
                        architecture: string;
                        id: string;
                        isolation: "process" | "none" | "container" | "virtual-machine";
                        platform: string;
                    }[];
                    providers: { id: string; name: string; version: string
                    | null }[];
                    records: (
                        | {
                            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";
                                    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";
                                    local_path: string;
                                    name: string;
                                }
                                | null;
                        }
                    )[];
                    scenarios: {
                        authority: "controlled-replay";
                        evidence_id: string;
                        operation: string;
                    }[];
                    unknowns: {
                        contradicting_evidence_ids: string[];
                        domain: string;
                        mutation_evidence_ids: string[];
                        previous_revision_digest: string
                        | null;
                        question: string;
                        recommended_probes: { operation: string; rationale: string }[];
                        registry_version: 1;
                        relationships: {
                            type: "depends-on" | "related-to" | "contradicts";
                            unknown_id: string;
                        }[];
                        required_authority: | "shipped-artifact"
                        | "controlled-replay"
                        | "historical-reference"
                        | "external-service"
                        | "analyst-inference"
                        | null;
                        required_confidence: "observed"
                        | "derived"
                        | "inferred";
                        required_environment:
                            | {
                                architecture: string
                                | null;
                                id: string | null;
                                isolation:
                                    | "process"
                                    | "none"
                                    | "container"
                                    | "virtual-machine"
                                    | null;
                                platform: string
                                | null;
                            }
                            | null;
                        resolution: | {
                            disposition: "verified";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | {
                            disposition: "withdrawn"
                            | "out-of-scope";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | null;
                        revision: number;
                        revision_digest: string;
                        scope_digest: string
                        | null;
                        severity: "low" | "medium" | "high" | "critical";
                        status:
                            | "open"
                            | "investigating"
                            | "blocked"
                            | "contradicted"
                            | "resolved";
                        supporting_evidence_ids: string[];
                        unknown_id: string;
                    }[];
                };
                name: string;
                previous_revision_digest: string
                | null;
                revision: number;
                revision_digest: string;
                runs: (
                    | {
                        comparison_evidence_id: string
                        | null;
                        completed_stages: (
                            | "inventory_left"
                            | "inventory_right"
                            | "compare_artifacts"
                            | "find_changed_behavior"
                        )[];
                        integrity_continue_approved: boolean;
                        integrity_policy: "fail"
                        | "record-and-continue";
                        left: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        left_inventory_evidence_ids: string[];
                        limitations: string[];
                        max_integrity_mismatches: number;
                        options: {
                            change_limit: number;
                            max_compression_ratio: number;
                            max_depth: number;
                            max_entries: number;
                            max_entry_bytes: number;
                            max_path_bytes: number;
                            max_total_bytes: number;
                            page_size: number;
                        };
                        request_sha256: string;
                        result_evidence_id: string
                        | null;
                        right: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        right_inventory_evidence_ids: string[];
                        run_id: string;
                        schema_version: 1;
                        status: "complete"
                        | "running";
                    }
                    | {
                        comparison_evidence_id: string
                        | null;
                        completed_stages: (
                            | "inventory_left"
                            | "inventory_right"
                            | "compare_artifacts"
                            | "find_changed_behavior"
                        )[];
                        integrity_continue_approved: boolean;
                        integrity_policy: "fail"
                        | "record-and-continue";
                        left: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        left_inventory_evidence_ids: string[];
                        legacy_request_identity: true;
                        limitations: string[];
                        max_integrity_mismatches: number;
                        options: {
                            change_limit: number;
                            max_compression_ratio: number;
                            max_depth: number;
                            max_entries: number;
                            max_entry_bytes: number;
                            max_path_bytes: number;
                            max_total_bytes: number;
                            page_size: number;
                        };
                        request_sha256: string;
                        result_evidence_id: string
                        | null;
                        right: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        right_inventory_evidence_ids: string[];
                        run_id: string;
                        schema_version: 1;
                        status: "complete"
                        | "running";
                    }
                )[];
                workspace_id: string;
                workspace_version: 1;
            }
            | undefined;
        investigationWorkspaces(): readonly {
            bundle: {
                artifacts: {
                    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";
                }[];
                bundle_version: 2;
                captures: { evidence_id: string; predicate_type: string }[];
                environments: {
                    architecture: string;
                    id: string;
                    isolation: "process" | "none" | "container" | "virtual-machine";
                    platform: string;
                }[];
                providers: { id: string; name: string; version: string
                | null }[];
                records: (
                    | {
                        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";
                                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";
                                local_path: string;
                                name: string;
                            }
                            | null;
                    }
                )[];
                scenarios: {
                    authority: "controlled-replay";
                    evidence_id: string;
                    operation: string;
                }[];
                unknowns: {
                    contradicting_evidence_ids: string[];
                    domain: string;
                    mutation_evidence_ids: string[];
                    previous_revision_digest: string
                    | null;
                    question: string;
                    recommended_probes: { operation: string; rationale: string }[];
                    registry_version: 1;
                    relationships: {
                        type: "depends-on" | "related-to" | "contradicts";
                        unknown_id: string;
                    }[];
                    required_authority: | "shipped-artifact"
                    | "controlled-replay"
                    | "historical-reference"
                    | "external-service"
                    | "analyst-inference"
                    | null;
                    required_confidence: "observed"
                    | "derived"
                    | "inferred";
                    required_environment:
                        | {
                            architecture: string
                            | null;
                            id: string | null;
                            isolation: "process" | "none" | "container" | "virtual-machine" | null;
                            platform: string | null;
                        }
                        | null;
                    resolution: | {
                        disposition: "verified";
                        evidence_ids: string[];
                        rationale: string;
                    }
                    | {
                        disposition: "withdrawn"
                        | "out-of-scope";
                        evidence_ids: string[];
                        rationale: string;
                    }
                    | null;
                    revision: number;
                    revision_digest: string;
                    scope_digest: string
                    | null;
                    severity: "low" | "medium" | "high" | "critical";
                    status:
                        | "open"
                        | "investigating"
                        | "blocked"
                        | "contradicted"
                        | "resolved";
                    supporting_evidence_ids: string[];
                    unknown_id: string;
                }[];
            };
            name: string;
            previous_revision_digest: string
            | null;
            revision: number;
            revision_digest: string;
            runs: (
                | {
                    comparison_evidence_id: string
                    | null;
                    completed_stages: (
                        | "inventory_left"
                        | "inventory_right"
                        | "compare_artifacts"
                        | "find_changed_behavior"
                    )[];
                    integrity_continue_approved: boolean;
                    integrity_policy: "fail"
                    | "record-and-continue";
                    left: {
                        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";
                        graph_sha256: string;
                        manifest_id: string;
                        root_sha256: string;
                    };
                    left_inventory_evidence_ids: string[];
                    limitations: string[];
                    max_integrity_mismatches: number;
                    options: {
                        change_limit: number;
                        max_compression_ratio: number;
                        max_depth: number;
                        max_entries: number;
                        max_entry_bytes: number;
                        max_path_bytes: number;
                        max_total_bytes: number;
                        page_size: number;
                    };
                    request_sha256: string;
                    result_evidence_id: string
                    | null;
                    right: {
                        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";
                        graph_sha256: string;
                        manifest_id: string;
                        root_sha256: string;
                    };
                    right_inventory_evidence_ids: string[];
                    run_id: string;
                    schema_version: 1;
                    status: "complete"
                    | "running";
                }
                | {
                    comparison_evidence_id: string
                    | null;
                    completed_stages: (
                        | "inventory_left"
                        | "inventory_right"
                        | "compare_artifacts"
                        | "find_changed_behavior"
                    )[];
                    integrity_continue_approved: boolean;
                    integrity_policy: "fail"
                    | "record-and-continue";
                    left: {
                        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";
                        graph_sha256: string;
                        manifest_id: string;
                        root_sha256: string;
                    };
                    left_inventory_evidence_ids: string[];
                    legacy_request_identity: true;
                    limitations: string[];
                    max_integrity_mismatches: number;
                    options: {
                        change_limit: number;
                        max_compression_ratio: number;
                        max_depth: number;
                        max_entries: number;
                        max_entry_bytes: number;
                        max_path_bytes: number;
                        max_total_bytes: number;
                        page_size: number;
                    };
                    request_sha256: string;
                    result_evidence_id: string
                    | null;
                    right: {
                        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";
                        graph_sha256: string;
                        manifest_id: string;
                        root_sha256: string;
                    };
                    right_inventory_evidence_ids: string[];
                    run_id: string;
                    schema_version: 1;
                    status: "complete"
                    | "running";
                }
            )[];
            workspace_id: string;
            workspace_version: 1;
        }[];
        listUnknowns(
            filters?: {
                domain?: string;
                severity?: "low" | "medium" | "high" | "critical";
                status?:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
            },
        ): {
            contradicting_evidence_ids: string[];
            domain: string;
            mutation_evidence_ids: string[];
            previous_revision_digest: string
            | null;
            question: string;
            recommended_probes: { operation: string; rationale: string }[];
            registry_version: 1;
            relationships: {
                type: "depends-on" | "related-to" | "contradicts";
                unknown_id: string;
            }[];
            required_authority: | "shipped-artifact"
            | "controlled-replay"
            | "historical-reference"
            | "external-service"
            | "analyst-inference"
            | null;
            required_confidence: "observed"
            | "derived"
            | "inferred";
            required_environment:
                | {
                    architecture: string
                    | null;
                    id: string | null;
                    isolation: "process" | "none" | "container" | "virtual-machine" | null;
                    platform: string | null;
                }
                | null;
            resolution: | {
                disposition: "verified";
                evidence_ids: string[];
                rationale: string;
            }
            | {
                disposition: "withdrawn"
                | "out-of-scope";
                evidence_ids: string[];
                rationale: string;
            }
            | null;
            revision: number;
            revision_digest: string;
            scope_digest: string
            | null;
            severity: "low" | "medium" | "high" | "critical";
            status: "open" | "investigating" | "blocked" | "contradicted" | "resolved";
            supporting_evidence_ids: string[];
            unknown_id: string;
        }[];
        onAvailabilityChanged?(listener: () => void | Promise<void>): () => void;
        open(
            path: string,
            options?: {
                providerId?: string;
                signal?: AbortSignal;
                snapshot?: {
                    binding: {
                        analysis_profile: {
                            digest: string;
                            parameters: Record<string, JSONType>;
                            provider: { id: string; name: string; version: string };
                            provider_profile_schema_version: number;
                            schema_version: 1;
                        };
                        provider: { id: string; name: string; version: string };
                    };
                    entries: {
                        execution: {
                            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 }
                            )[];
                            provider: { id: string; name: string; version: string };
                            raw_result: JSONType;
                            result: JSONType;
                            subject:
                                | {
                                    architecture: "x86"
                                    | "x86_64"
                                    | "arm"
                                    | "arm64"
                                    | null;
                                    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";
                                    path: string;
                                    sha256: string;
                                }
                                | null;
                        };
                        operation: string;
                        parameters: Record<string, JSONType>;
                        query_id: string;
                    }[];
                    evidence_bundle: {
                        artifacts: {
                            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";
                        }[];
                        bundle_version: 2;
                        captures: { evidence_id: string; predicate_type: string }[];
                        environments: {
                            architecture: string;
                            id: string;
                            isolation: "process" | "none" | "container" | "virtual-machine";
                            platform: string;
                        }[];
                        providers: { id: string; name: string; version: string
                        | null }[];
                        records: (
                            | {
                                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: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        platform: string;
                                    }
                                    | null;
                                evidence_id: string;
                                evidence_links: string[];
                                limitations: string[];
                                locations: (
                                    | { address: ...; kind: ... }
                                    | { end: ...; kind: ...; start: ... }
                                    | { kind: ...; path: ... }
                                    | { kind: ...; offset: ... }
                                    | { end: ...; kind: ...; start: ... }
                                )[];
                                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: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        digest: { sha256: ... };
                                        format:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        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: (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        platform: string;
                                    }
                                    | null;
                                evidence_id: string;
                                evidence_links: string[];
                                limitations: string[];
                                locations: (
                                    | { address: ...; kind: ... }
                                    | { end: ...; kind: ...; start: ... }
                                    | { kind: ...; path: ... }
                                    | { kind: ...; offset: ... }
                                    | { end: ...; kind: ...; start: ... }
                                )[];
                                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: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        digest: { sha256: ... };
                                        format:
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...);
                                        local_path: string;
                                        name: string;
                                    }
                                    | null;
                            }
                        )[];
                        scenarios: {
                            authority: "controlled-replay";
                            evidence_id: string;
                            operation: string;
                        }[];
                        unknowns: {
                            contradicting_evidence_ids: string[];
                            domain: string;
                            mutation_evidence_ids: string[];
                            previous_revision_digest: string
                            | null;
                            question: string;
                            recommended_probes: { operation: string; rationale: string }[];
                            registry_version: 1;
                            relationships: {
                                type: "depends-on" | "related-to" | "contradicts";
                                unknown_id: string;
                            }[];
                            required_authority: | "shipped-artifact"
                            | "controlled-replay"
                            | "historical-reference"
                            | "external-service"
                            | "analyst-inference"
                            | null;
                            required_confidence: "observed"
                            | "derived"
                            | "inferred";
                            required_environment:
                                | {
                                    architecture: string
                                    | null;
                                    id: string | null;
                                    isolation:
                                        | "process"
                                        | "none"
                                        | "container"
                                        | "virtual-machine"
                                        | null;
                                    platform: string
                                    | null;
                                }
                                | null;
                            resolution: | {
                                disposition: "verified";
                                evidence_ids: string[];
                                rationale: string;
                            }
                            | {
                                disposition: "withdrawn"
                                | "out-of-scope";
                                evidence_ids: string[];
                                rationale: string;
                            }
                            | null;
                            revision: number;
                            revision_digest: string;
                            scope_digest: string
                            | null;
                            severity: "low" | "medium" | "high" | "critical";
                            status:
                                | "open"
                                | "investigating"
                                | "blocked"
                                | "contradicted"
                                | "resolved";
                            supporting_evidence_ids: string[];
                            unknown_id: string;
                        }[];
                    };
                    snapshot_version: 2;
                    target: {
                        architecture: "x86"
                        | "x86_64"
                        | "arm"
                        | "arm64"
                        | null;
                        format:
                            | "javascript"
                            | "source-map"
                            | "plist"
                            | "dmg"
                            | "zip"
                            | "pkg"
                            | "asar"
                            | "mach-o"
                            | "elf"
                            | "pe"
                            | "analysis-database"
                            | "ipa"
                            | "apk";
                        kind: "executable"
                        | "database"
                        | "archive"
                        | "artifact";
                        sha256: string;
                    };
                };
                targetKind?: "executable"
                | "database"
                | "archive"
                | "artifact";
            },
        ): Promise<Result<BinaryTarget, AnalysisError>>;
        openCompatibility(): Readonly<Record<string, JsonValue>>;
        providerIdentity(operation?: AnalysisOperation): ProviderIdentity;
        recordEvidence(
            evidence:
                | {
                    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";
                            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";
                            local_path: string;
                            name: string;
                        }
                        | null;
                },
        ): Result<
            "added"
            | "duplicate",
            EvidenceIntegrityError | EvidenceLimitError,
        >;
        recordEvidenceWithUnknown(
            evidence:
                | {
                    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";
                            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";
                            local_path: string;
                            name: string;
                        }
                        | null;
                },
            input: {
                approved: true;
                contradicting_evidence_ids: string[];
                domain: string;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                severity: "low"
                | "medium"
                | "high"
                | "critical";
                supporting_evidence_ids: string[];
            },
        ): Result<
            | {
                contradicting_evidence_ids: string[];
                domain: string;
                mutation_evidence_ids: string[];
                previous_revision_digest: string
                | null;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                registry_version: 1;
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                resolution: | {
                    disposition: "verified";
                    evidence_ids: string[];
                    rationale: string;
                }
                | {
                    disposition: "withdrawn"
                    | "out-of-scope";
                    evidence_ids: string[];
                    rationale: string;
                }
                | null;
                revision: number;
                revision_digest: string;
                scope_digest: string
                | null;
                severity: "low" | "medium" | "high" | "critical";
                status:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
                supporting_evidence_ids: string[];
                unknown_id: string;
            }
            | null,
            AnalysisError,
        >;
        recordUnknown(
            input: {
                approved: true;
                contradicting_evidence_ids: string[];
                domain: string;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                severity: "low"
                | "medium"
                | "high"
                | "critical";
                supporting_evidence_ids: string[];
            },
        ): Result<
            {
                contradicting_evidence_ids: string[];
                domain: string;
                mutation_evidence_ids: string[];
                previous_revision_digest: string
                | null;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                registry_version: 1;
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                resolution: | {
                    disposition: "verified";
                    evidence_ids: string[];
                    rationale: string;
                }
                | {
                    disposition: "withdrawn"
                    | "out-of-scope";
                    evidence_ids: string[];
                    rationale: string;
                }
                | null;
                revision: number;
                revision_digest: string;
                scope_digest: string
                | null;
                severity: "low" | "medium" | "high" | "critical";
                status:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
                supporting_evidence_ids: string[];
                unknown_id: string;
            },
            AnalysisError,
        >;
        retainInvestigationWorkspace(
            workspace: {
                bundle: {
                    artifacts: {
                        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";
                    }[];
                    bundle_version: 2;
                    captures: { evidence_id: string; predicate_type: string }[];
                    environments: {
                        architecture: string;
                        id: string;
                        isolation: "process" | "none" | "container" | "virtual-machine";
                        platform: string;
                    }[];
                    providers: { id: string; name: string; version: string
                    | null }[];
                    records: (
                        | {
                            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";
                                    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";
                                    local_path: string;
                                    name: string;
                                }
                                | null;
                        }
                    )[];
                    scenarios: {
                        authority: "controlled-replay";
                        evidence_id: string;
                        operation: string;
                    }[];
                    unknowns: {
                        contradicting_evidence_ids: string[];
                        domain: string;
                        mutation_evidence_ids: string[];
                        previous_revision_digest: string
                        | null;
                        question: string;
                        recommended_probes: { operation: string; rationale: string }[];
                        registry_version: 1;
                        relationships: {
                            type: "depends-on" | "related-to" | "contradicts";
                            unknown_id: string;
                        }[];
                        required_authority: | "shipped-artifact"
                        | "controlled-replay"
                        | "historical-reference"
                        | "external-service"
                        | "analyst-inference"
                        | null;
                        required_confidence: "observed"
                        | "derived"
                        | "inferred";
                        required_environment:
                            | {
                                architecture: string
                                | null;
                                id: string | null;
                                isolation:
                                    | "process"
                                    | "none"
                                    | "container"
                                    | "virtual-machine"
                                    | null;
                                platform: string
                                | null;
                            }
                            | null;
                        resolution: | {
                            disposition: "verified";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | {
                            disposition: "withdrawn"
                            | "out-of-scope";
                            evidence_ids: string[];
                            rationale: string;
                        }
                        | null;
                        revision: number;
                        revision_digest: string;
                        scope_digest: string
                        | null;
                        severity: "low" | "medium" | "high" | "critical";
                        status:
                            | "open"
                            | "investigating"
                            | "blocked"
                            | "contradicted"
                            | "resolved";
                        supporting_evidence_ids: string[];
                        unknown_id: string;
                    }[];
                };
                name: string;
                previous_revision_digest: string
                | null;
                revision: number;
                revision_digest: string;
                runs: (
                    | {
                        comparison_evidence_id: string
                        | null;
                        completed_stages: (
                            | "inventory_left"
                            | "inventory_right"
                            | "compare_artifacts"
                            | "find_changed_behavior"
                        )[];
                        integrity_continue_approved: boolean;
                        integrity_policy: "fail"
                        | "record-and-continue";
                        left: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        left_inventory_evidence_ids: string[];
                        limitations: string[];
                        max_integrity_mismatches: number;
                        options: {
                            change_limit: number;
                            max_compression_ratio: number;
                            max_depth: number;
                            max_entries: number;
                            max_entry_bytes: number;
                            max_path_bytes: number;
                            max_total_bytes: number;
                            page_size: number;
                        };
                        request_sha256: string;
                        result_evidence_id: string
                        | null;
                        right: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        right_inventory_evidence_ids: string[];
                        run_id: string;
                        schema_version: 1;
                        status: "complete"
                        | "running";
                    }
                    | {
                        comparison_evidence_id: string
                        | null;
                        completed_stages: (
                            | "inventory_left"
                            | "inventory_right"
                            | "compare_artifacts"
                            | "find_changed_behavior"
                        )[];
                        integrity_continue_approved: boolean;
                        integrity_policy: "fail"
                        | "record-and-continue";
                        left: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        left_inventory_evidence_ids: string[];
                        legacy_request_identity: true;
                        limitations: string[];
                        max_integrity_mismatches: number;
                        options: {
                            change_limit: number;
                            max_compression_ratio: number;
                            max_depth: number;
                            max_entries: number;
                            max_entry_bytes: number;
                            max_path_bytes: number;
                            max_total_bytes: number;
                            page_size: number;
                        };
                        request_sha256: string;
                        result_evidence_id: string
                        | null;
                        right: {
                            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";
                            graph_sha256: string;
                            manifest_id: string;
                            root_sha256: string;
                        };
                        right_inventory_evidence_ids: string[];
                        run_id: string;
                        schema_version: 1;
                        status: "complete"
                        | "running";
                    }
                )[];
                workspace_id: string;
                workspace_version: 1;
            },
        ): "added"
        | "duplicate";
        status(): JSONType;
        updateUnknown(
            input: {
                approved: true;
                contradicting_evidence_ids: string[];
                expected_revision: number;
                recommended_probes: { operation: string; rationale: string }[];
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                resolution: | {
                    disposition: "verified";
                    evidence_ids: string[];
                    rationale: string;
                }
                | {
                    disposition: "withdrawn"
                    | "out-of-scope";
                    evidence_ids: string[];
                    rationale: string;
                }
                | null;
                severity: "low"
                | "medium"
                | "high"
                | "critical";
                status:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
                supporting_evidence_ids: string[];
                unknown_id: string;
            },
        ): Result<
            {
                contradicting_evidence_ids: string[];
                domain: string;
                mutation_evidence_ids: string[];
                previous_revision_digest: string
                | null;
                question: string;
                recommended_probes: { operation: string; rationale: string }[];
                registry_version: 1;
                relationships: {
                    type: "depends-on" | "related-to" | "contradicts";
                    unknown_id: string;
                }[];
                required_authority: | "shipped-artifact"
                | "controlled-replay"
                | "historical-reference"
                | "external-service"
                | "analyst-inference"
                | null;
                required_confidence: "observed"
                | "derived"
                | "inferred";
                required_environment:
                    | {
                        architecture: string
                        | null;
                        id: string | null;
                        isolation: "process" | "none" | "container" | "virtual-machine" | null;
                        platform: string | null;
                    }
                    | null;
                resolution: | {
                    disposition: "verified";
                    evidence_ids: string[];
                    rationale: string;
                }
                | {
                    disposition: "withdrawn"
                    | "out-of-scope";
                    evidence_ids: string[];
                    rationale: string;
                }
                | null;
                revision: number;
                revision_digest: string;
                scope_digest: string
                | null;
                severity: "low" | "medium" | "high" | "critical";
                status:
                    | "open"
                    | "investigating"
                    | "blocked"
                    | "contradicted"
                    | "resolved";
                supporting_evidence_ids: string[];
                unknown_id: string;
            },
            AnalysisError,
        >;
        verifyUnknownResolution(
            unknownId: string,
        ): Result<
            {
                truthVerified: boolean;
                unknown: {
                    contradicting_evidence_ids: string[];
                    domain: string;
                    mutation_evidence_ids: string[];
                    previous_revision_digest: string
                    | null;
                    question: string;
                    recommended_probes: { operation: string; rationale: string }[];
                    registry_version: 1;
                    relationships: {
                        type: "depends-on" | "related-to" | "contradicts";
                        unknown_id: string;
                    }[];
                    required_authority: | "shipped-artifact"
                    | "controlled-replay"
                    | "historical-reference"
                    | "external-service"
                    | "analyst-inference"
                    | null;
                    required_confidence: "observed"
                    | "derived"
                    | "inferred";
                    required_environment:
                        | {
                            architecture: string
                            | null;
                            id: string | null;
                            isolation: "process" | "none" | "container" | "virtual-machine" | null;
                            platform: string | null;
                        }
                        | null;
                    resolution: | {
                        disposition: "verified";
                        evidence_ids: string[];
                        rationale: string;
                    }
                    | {
                        disposition: "withdrawn"
                        | "out-of-scope";
                        evidence_ids: string[];
                        rationale: string;
                    }
                    | null;
                    revision: number;
                    revision_digest: string;
                    scope_digest: string
                    | null;
                    severity: "low" | "medium" | "high" | "critical";
                    status:
                        | "open"
                        | "investigating"
                        | "blocked"
                        | "contradicted"
                        | "resolved";
                    supporting_evidence_ids: string[];
                    unknown_id: string;
                };
                valid: boolean;
            },
            UnknownRegistryError,
        >;
    }
    -
    +

    Hierarchy (View Summary)

    • AnalysisOperationPort diff --git a/docs/api/interfaces/domain_permissionPolicy.PermissionGrant.html b/docs/api/interfaces/domain_permissionPolicy.PermissionGrant.html index edbbc2260..d57d83229 100644 --- a/docs/api/interfaces/domain_permissionPolicy.PermissionGrant.html +++ b/docs/api/interfaces/domain_permissionPolicy.PermissionGrant.html @@ -15,7 +15,7 @@

      Authority issued beneath the administrator ceiling.

    interface PermissionGrant {
        capability: PermissionCapability;
        environment_names: readonly string[];
        executables: readonly string[];
        expires_at: string | null;
        grant_id: string;
        lifetime: "once" | "session" | "project" | "administrator";
        mount: boolean;
        network: PermissionNetwork;
        operation_identity: string | null;
        origins?: readonly string[];
        roots: readonly string[];
    }
    -
    +

    Hierarchy (View Summary)

    • PermissionScope diff --git a/docs/api/interfaces/domain_permissionPolicy.PermissionRequest.html b/docs/api/interfaces/domain_permissionPolicy.PermissionRequest.html index e7273a08e..ae9e851e5 100644 --- a/docs/api/interfaces/domain_permissionPolicy.PermissionRequest.html +++ b/docs/api/interfaces/domain_permissionPolicy.PermissionRequest.html @@ -15,7 +15,7 @@

      A request identity associates one-shot grants with exactly one operation.

    interface PermissionRequest {
        capability: PermissionCapability;
        environment_names: readonly string[];
        executables: readonly string[];
        mount: boolean;
        network: PermissionNetwork;
        operation_identity: string;
        origins?: readonly string[];
        roots: readonly string[];
    }
    -
    +

    Hierarchy (View Summary)

    • PermissionScope diff --git a/docs/api/interfaces/domain_permissionPolicy.PermissionScope.html b/docs/api/interfaces/domain_permissionPolicy.PermissionScope.html index 03e89d634..f83e671f2 100644 --- a/docs/api/interfaces/domain_permissionPolicy.PermissionScope.html +++ b/docs/api/interfaces/domain_permissionPolicy.PermissionScope.html @@ -15,7 +15,7 @@

      Exact normalized scope requested by one local operation.

    interface PermissionScope {
        capability: PermissionCapability;
        environment_names: readonly string[];
        executables: readonly string[];
        mount: boolean;
        network: PermissionNetwork;
        origins?: readonly string[];
        roots: readonly string[];
    }
    -
    +

    Hierarchy (View Summary)

    • PermissionScope diff --git a/docs/api/interfaces/domain_webInventory.StableWebResource.html b/docs/api/interfaces/domain_webInventory.StableWebResource.html index e95f2753f..60b4ea6b6 100644 --- a/docs/api/interfaces/domain_webInventory.StableWebResource.html +++ b/docs/api/interfaces/domain_webInventory.StableWebResource.html @@ -12,7 +12,7 @@
    • StableWebResource

    Interface StableWebResource

    interface StableWebResource {
        content_size: number | null;
        mime_type: string;
        origin: string | null;
        resource_key: string;
        type: string;
        url: string;
    }
    -
    +

    Hierarchy (View Summary)

    • WebInventoryResourceInput diff --git a/docs/api/interfaces/domain_webInventory.WebInventoryResourceInput.html b/docs/api/interfaces/domain_webInventory.WebInventoryResourceInput.html index 5bac03af0..3de2211e4 100644 --- a/docs/api/interfaces/domain_webInventory.WebInventoryResourceInput.html +++ b/docs/api/interfaces/domain_webInventory.WebInventoryResourceInput.html @@ -12,7 +12,7 @@
    • WebInventoryResourceInput

    Interface WebInventoryResourceInput

    interface WebInventoryResourceInput {
        content_size: number | null;
        mime_type: string;
        origin: string | null;
        type: string;
        url: string;
    }
    -
    +

    Hierarchy (View Summary)

    • WebInventoryResourceInput diff --git a/docs/api/interfaces/ghidra_GhidraLauncher.GhidraLaunch.html b/docs/api/interfaces/ghidra_GhidraLauncher.GhidraLaunch.html index 9e1509982..89f8ac60a 100644 --- a/docs/api/interfaces/ghidra_GhidraLauncher.GhidraLaunch.html +++ b/docs/api/interfaces/ghidra_GhidraLauncher.GhidraLaunch.html @@ -15,7 +15,7 @@

      Process plus private log coordinates returned by a Ghidra launcher.

    interface GhidraLaunch {
        cleanup?: () => Promise<ProcessCleanupResult>;
        ghidraLogPath: string;
        ownsProcessLifetime: boolean;
        process: ChildProcess;
        projectRoot: string;
        scriptLogPath: string;
    }
    -
    +

    Hierarchy (View Summary)

    • ProviderProcessLaunch diff --git a/docs/api/interfaces/ghidra_GhidraSessionError.GhidraSessionErrorOptions.html b/docs/api/interfaces/ghidra_GhidraSessionError.GhidraSessionErrorOptions.html index 1cab0a47d..f696b06b4 100644 --- a/docs/api/interfaces/ghidra_GhidraSessionError.GhidraSessionErrorOptions.html +++ b/docs/api/interfaces/ghidra_GhidraSessionError.GhidraSessionErrorOptions.html @@ -15,7 +15,7 @@

      Additional structured context for a Ghidra session failure.

    interface GhidraSessionErrorOptions {
        remoteCode?: string;
        timeoutMs?: number;
    }
    -
    +

    Hierarchy

    • ErrorOptions diff --git a/docs/api/interfaces/hopper_BridgeLauncher.BridgeLaunch.html b/docs/api/interfaces/hopper_BridgeLauncher.BridgeLaunch.html index 7534fbf24..e89063308 100644 --- a/docs/api/interfaces/hopper_BridgeLauncher.BridgeLaunch.html +++ b/docs/api/interfaces/hopper_BridgeLauncher.BridgeLaunch.html @@ -15,7 +15,7 @@

      Process handle returned by a bridge launcher.

    interface BridgeLaunch {
        cleanup?: () => Promise<ProcessCleanupResult>;
        ownsProcessLifetime: boolean;
        process: ChildProcess;
        shutdownByCleanup?: boolean;
    }
    -
    +

    Hierarchy (View Summary)

    • ProviderProcessLaunch diff --git a/docs/api/interfaces/process_ProviderProcess.ProviderProcessLaunch.html b/docs/api/interfaces/process_ProviderProcess.ProviderProcessLaunch.html index 6bc306c61..c1ff48aa7 100644 --- a/docs/api/interfaces/process_ProviderProcess.ProviderProcessLaunch.html +++ b/docs/api/interfaces/process_ProviderProcess.ProviderProcessLaunch.html @@ -15,7 +15,7 @@

      Process handle returned by a provider-specific launcher.

    interface ProviderProcessLaunch {
        cleanup?: () => Promise<ProcessCleanupResult>;
        ownsProcessLifetime: boolean;
        process: ChildProcess;
    }
    -
    +

    Hierarchy (View Summary)

    • ProviderProcessLaunch diff --git a/docs/api/modules/domain_javascriptApplicationEvidenceSchemas.html b/docs/api/modules/domain_javascriptApplicationEvidenceSchemas.html new file mode 100644 index 000000000..5b8667142 --- /dev/null +++ b/docs/api/modules/domain_javascriptApplicationEvidenceSchemas.html @@ -0,0 +1,40 @@ +domain/javascriptApplicationEvidenceSchemas | rea-agents - v1.6.0
      +
      rea-agents - v1.6.0 + +
        +
        +
        Preparing search index...
        +
        + +
        + +
        +
        diff --git a/docs/api/modules/domain_javascriptApplicationGraph.html b/docs/api/modules/domain_javascriptApplicationGraph.html new file mode 100644 index 000000000..93bd5b84d --- /dev/null +++ b/docs/api/modules/domain_javascriptApplicationGraph.html @@ -0,0 +1,48 @@ +domain/javascriptApplicationGraph | rea-agents - v1.6.0
        +
        rea-agents - v1.6.0 + +
          +
          +
          Preparing search index...
          + +
          diff --git a/docs/api/modules/domain_javascriptApplicationGraphSchemas.html b/docs/api/modules/domain_javascriptApplicationGraphSchemas.html new file mode 100644 index 000000000..f0fa50c0e --- /dev/null +++ b/docs/api/modules/domain_javascriptApplicationGraphSchemas.html @@ -0,0 +1,40 @@ +domain/javascriptApplicationGraphSchemas | rea-agents - v1.6.0
          +
          rea-agents - v1.6.0 + +
            +
            +
            Preparing search index...
            + +
            diff --git a/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationGraphEvidence.html b/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationGraphEvidence.html new file mode 100644 index 000000000..a7fb4f9a3 --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationGraphEvidence.html @@ -0,0 +1,35 @@ +ApplicationGraphEvidence | rea-agents - v1.6.0
            +
            rea-agents - v1.6.0 + +
              +
              +
              Preparing search index...
              +
              +
              + +
              ApplicationGraphEvidence: z.infer<typeof applicationGraphEvidenceSchema>
              +

              Evidence coordinates attached to one graph observation or edge.

              +
              +
              + +
              +
              diff --git a/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationNodeIdentity.html b/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationNodeIdentity.html new file mode 100644 index 000000000..ae0852416 --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationEvidenceSchemas.ApplicationNodeIdentity.html @@ -0,0 +1,35 @@ +ApplicationNodeIdentity | rea-agents - v1.6.0
              +
              rea-agents - v1.6.0 + +
                +
                +
                Preparing search index...
                +
                +
                + +
                ApplicationNodeIdentity: z.infer<typeof applicationNodeIdentitySchema>
                +

                Explicit stable identity strategy for one application entity.

                +
                +
                + +
                +
                diff --git a/docs/api/types/domain_javascriptApplicationGraph.JavaScriptApplicationGraph.html b/docs/api/types/domain_javascriptApplicationGraph.JavaScriptApplicationGraph.html new file mode 100644 index 000000000..d55194096 --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationGraph.JavaScriptApplicationGraph.html @@ -0,0 +1,35 @@ +JavaScriptApplicationGraph | rea-agents - v1.6.0
                +
                rea-agents - v1.6.0 + +
                  +
                  +
                  Preparing search index...
                  +
                  +
                  +
                  + +

                  Type Alias JavaScriptApplicationGraph

                  +
                  JavaScriptApplicationGraph: z.infer<typeof javascriptApplicationGraphSchema>
                  +

                  Fully validated JavaScript Application Graph v1.

                  +
                  +
                  + +
                  +
                  diff --git a/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationEdge.html b/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationEdge.html new file mode 100644 index 000000000..020d69ae3 --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationEdge.html @@ -0,0 +1,35 @@ +ApplicationEdge | rea-agents - v1.6.0
                  +
                  rea-agents - v1.6.0 + +
                    +
                    +
                    Preparing search index...
                    +
                    +
                    + +
                    ApplicationEdge: z.infer<typeof applicationEdgeSchema>
                    +

                    Immutable relationship in a JavaScript Application Graph.

                    +
                    +
                    + +
                    +
                    diff --git a/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationNode.html b/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationNode.html new file mode 100644 index 000000000..e6143c2de --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationGraphSchemas.ApplicationNode.html @@ -0,0 +1,35 @@ +ApplicationNode | rea-agents - v1.6.0
                    +
                    rea-agents - v1.6.0 + +
                      +
                      +
                      Preparing search index...
                      +
                      +
                      + +
                      ApplicationNode: z.infer<typeof applicationNodeSchema>
                      +

                      Immutable entity in a JavaScript Application Graph.

                      +
                      +
                      + +
                      +
                      diff --git a/docs/api/types/domain_javascriptApplicationGraphSchemas.JavaScriptApplicationGraphInput.html b/docs/api/types/domain_javascriptApplicationGraphSchemas.JavaScriptApplicationGraphInput.html new file mode 100644 index 000000000..a540ffd6a --- /dev/null +++ b/docs/api/types/domain_javascriptApplicationGraphSchemas.JavaScriptApplicationGraphInput.html @@ -0,0 +1,35 @@ +JavaScriptApplicationGraphInput | rea-agents - v1.6.0
                      +
                      rea-agents - v1.6.0 + +
                        +
                        +
                        Preparing search index...
                        +
                        +
                        +
                        + +

                        Type Alias JavaScriptApplicationGraphInput

                        +
                        JavaScriptApplicationGraphInput: z.infer<
                            typeof javascriptApplicationGraphInputSchema,
                        >
                        +

                        Complete v1 graph content before its graph identifier is derived.

                        +
                        +
                        + +
                        +
                        diff --git a/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationCoverageSchema.html b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationCoverageSchema.html new file mode 100644 index 000000000..f29bee2d0 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationCoverageSchema.html @@ -0,0 +1,35 @@ +applicationCoverageSchema | rea-agents - v1.6.0
                        +
                        rea-agents - v1.6.0 + +
                          +
                          +
                          Preparing search index...
                          +
                          +
                          +
                          + +

                          Variable applicationCoverageSchemaConst

                          +
                          applicationCoverageSchema: ZodObject<
                              {
                                  limits: ZodArray<
                                      ZodObject<
                                          {
                                              name: ZodString;
                                              unit: ZodEnum<
                                                  {
                                                      bytes: "bytes";
                                                      characters: "characters";
                                                      depth: "depth";
                                                      instructions: "instructions";
                                                      items: "items";
                                                      milliseconds: "milliseconds";
                                                      other: "other";
                                                  },
                                              >;
                                              value: ZodNumber;
                                          },
                                          $strict,
                                      >,
                                  >;
                                  omitted_count: ZodNullable<ZodNumber>;
                                  status: ZodEnum<
                                      {
                                          complete: "complete";
                                          partial: "partial";
                                          unavailable: "unavailable";
                                          unknown: "unknown";
                                      },
                                  >;
                                  truncated: ZodBoolean;
                              },
                              $strict,
                          > = ...
                          +

                          Bounded collection coverage without treating omission as absence.

                          +
                          +
                          + +
                          +
                          diff --git a/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationGraphEvidenceSchema.html b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationGraphEvidenceSchema.html new file mode 100644 index 000000000..bda21d0c1 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationGraphEvidenceSchema.html @@ -0,0 +1,35 @@ +applicationGraphEvidenceSchema | rea-agents - v1.6.0
                          +
                          rea-agents - v1.6.0 + +
                            +
                            +
                            Preparing search index...
                            +
                            +
                            +
                            + +

                            Variable applicationGraphEvidenceSchemaConst

                            +
                            applicationGraphEvidenceSchema: ZodObject<
                                {
                                    artifact: ZodDiscriminatedUnion<
                                        [
                                            ZodObject<
                                                {
                                                    artifact_id: ZodString;
                                                    available: ZodLiteral<true>;
                                                    sha256: ZodString;
                                                },
                                                $strict,
                                            >,
                                            ZodObject<
                                                {
                                                    available: ZodLiteral<false>;
                                                    detail: ZodString;
                                                    reason: ZodEnum<
                                                        {
                                                            "not-applicable": "not-applicable";
                                                            "not-approved": "not-approved";
                                                            "not-observed": "not-observed";
                                                            "provider-unavailable": "provider-unavailable";
                                                            truncated: "truncated";
                                                            unknown: "unknown";
                                                            unresolved: "unresolved";
                                                        },
                                                    >;
                                                },
                                                $strict,
                                            >,
                                        ],
                                        "available",
                                    >;
                                    authority: ZodEnum<
                                        {
                                            "artifact-bytes": "artifact-bytes";
                                            "ast-static-analysis": "ast-static-analysis";
                                            "controlled-replay": "controlled-replay";
                                            "historical-reference": "historical-reference";
                                            "native-analysis-provider": "native-analysis-provider";
                                            "passive-cdp-runtime": "passive-cdp-runtime";
                                            "static-relationship-inference": "static-relationship-inference";
                                            unknown: "unknown";
                                            "user-assertion": "user-assertion";
                                        },
                                    >;
                                    confidence: ZodEnum<
                                        {
                                            exact: "exact";
                                            high: "high";
                                            low: "low";
                                            medium: "medium";
                                            unknown: "unknown";
                                        },
                                    >;
                                    coverage: ZodObject<
                                        {
                                            limits: ZodArray<
                                                ZodObject<
                                                    {
                                                        name: ZodString;
                                                        unit: ZodEnum<
                                                            {
                                                                bytes: "bytes";
                                                                characters: "characters";
                                                                depth: "depth";
                                                                instructions: "instructions";
                                                                items: "items";
                                                                milliseconds: "milliseconds";
                                                                other: "other";
                                                            },
                                                        >;
                                                        value: ZodNumber;
                                                    },
                                                    $strict,
                                                >,
                                            >;
                                            omitted_count: ZodNullable<ZodNumber>;
                                            status: ZodEnum<
                                                {
                                                    complete: "complete";
                                                    partial: "partial";
                                                    unavailable: "unavailable";
                                                    unknown: "unknown";
                                                },
                                            >;
                                            truncated: ZodBoolean;
                                        },
                                        $strict,
                                    >;
                                    evidence_ids: ZodArray<ZodString>;
                                    extractor: ZodObject<
                                        {
                                            executable_sha256: ZodNullable<ZodString>;
                                            name: ZodString;
                                            operation: ZodString;
                                            version: ZodString;
                                        },
                                        $strict,
                                    >;
                                    limitations: ZodArray<ZodString>;
                                    location: ZodDiscriminatedUnion<
                                        [
                                            ZodObject<
                                                {
                                                    available: ZodLiteral<true>;
                                                    value: ZodDiscriminatedUnion<
                                                        [
                                                            ZodObject<{ kind: ZodLiteral<(...)>; path: ZodString }, $strict>,
                                                            ZodObject<
                                                                {
                                                                    end: ZodObject<(...), (...)>;
                                                                    kind: ZodLiteral<(...)>;
                                                                    source: ZodString;
                                                                    start: ZodObject<(...), (...)>;
                                                                },
                                                                $strict,
                                                            >,
                                                            ZodObject<
                                                                { end: ZodNumber; kind: ZodLiteral<(...)>; start: ZodNumber },
                                                                $strict,
                                                            >,
                                                            ZodObject<{ kind: ZodLiteral<(...)>; url: ZodString }, $strict>,
                                                        ],
                                                        "kind",
                                                    >;
                                                },
                                                $strict,
                                            >,
                                            ZodObject<
                                                {
                                                    available: ZodLiteral<false>;
                                                    detail: ZodString;
                                                    reason: ZodEnum<
                                                        {
                                                            "not-applicable": "not-applicable";
                                                            "not-approved": "not-approved";
                                                            "not-observed": "not-observed";
                                                            "provider-unavailable": "provider-unavailable";
                                                            truncated: "truncated";
                                                            unknown: "unknown";
                                                            unresolved: "unresolved";
                                                        },
                                                    >;
                                                },
                                                $strict,
                                            >,
                                        ],
                                        "available",
                                    >;
                                    state: ZodEnum<
                                        {
                                            inferred: "inferred";
                                            observed: "observed";
                                            unavailable: "unavailable";
                                            unknown: "unknown";
                                        },
                                    >;
                                },
                                $strict,
                            > = ...
                            +

                            Provenance, authority, uncertainty, and bounds for one graph fact.

                            +
                            +
                            + +
                            +
                            diff --git a/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationNodeIdentitySchema.html b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationNodeIdentitySchema.html new file mode 100644 index 000000000..26938cd27 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationEvidenceSchemas.applicationNodeIdentitySchema.html @@ -0,0 +1,35 @@ +applicationNodeIdentitySchema | rea-agents - v1.6.0
                            +
                            rea-agents - v1.6.0 + +
                              +
                              +
                              Preparing search index...
                              +
                              +
                              +
                              + +

                              Variable applicationNodeIdentitySchemaConst

                              +
                              applicationNodeIdentitySchema: ZodDiscriminatedUnion<
                                  [
                                      ZodObject<
                                          {
                                              sha256: ZodString;
                                              stability: ZodLiteral<"global-exact">;
                                              strategy: ZodLiteral<"content-digest">;
                                          },
                                          $strict,
                                      >,
                                      ZodObject<
                                          {
                                              original_source: ZodString;
                                              source_map_sha256: ZodString;
                                              source_sha256: ZodNullable<ZodString>;
                                              stability: ZodLiteral<"source-map-exact">;
                                              strategy: ZodLiteral<"source-map-original">;
                                          },
                                          $strict,
                                      >,
                                      ZodObject<
                                          {
                                              artifact_sha256: ZodString;
                                              path: ZodString;
                                              stability: ZodLiteral<"artifact-version">;
                                              strategy: ZodLiteral<"canonical-path">;
                                          },
                                          $strict,
                                      >,
                                  ],
                                  "strategy",
                              > = ...
                              +

                              Stable node identifier strategies and their explicit scope.

                              +
                              +
                              + +
                              +
                              diff --git a/docs/api/variables/domain_javascriptApplicationGraph.javascriptApplicationGraphSchema.html b/docs/api/variables/domain_javascriptApplicationGraph.javascriptApplicationGraphSchema.html new file mode 100644 index 000000000..2950a7cbb --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraph.javascriptApplicationGraphSchema.html @@ -0,0 +1,35 @@ +javascriptApplicationGraphSchema | rea-agents - v1.6.0
                              +
                              rea-agents - v1.6.0 + +
                                +
                                +
                                Preparing search index...
                                +
                                +
                                +
                                + +

                                Variable javascriptApplicationGraphSchemaConst

                                +
                                javascriptApplicationGraphSchema: ZodObject<
                                    {
                                        coverage: ZodObject<
                                            {
                                                limits: ZodArray<
                                                    ZodObject<
                                                        {
                                                            name: ZodString;
                                                            unit: ZodEnum<
                                                                {
                                                                    bytes: "bytes";
                                                                    characters: "characters";
                                                                    depth: "depth";
                                                                    instructions: "instructions";
                                                                    items: "items";
                                                                    milliseconds: "milliseconds";
                                                                    other: "other";
                                                                },
                                                            >;
                                                            value: ZodNumber;
                                                        },
                                                        $strict,
                                                    >,
                                                >;
                                                omitted_count: ZodNullable<ZodNumber>;
                                                status: ZodEnum<
                                                    {
                                                        complete: "complete";
                                                        partial: "partial";
                                                        unavailable: "unavailable";
                                                        unknown: "unknown";
                                                    },
                                                >;
                                                truncated: ZodBoolean;
                                            },
                                            $strict,
                                        >;
                                        edges: ZodArray<
                                            ZodObject<
                                                {
                                                    edge_id: ZodString;
                                                    evidence: ZodObject<
                                                        {
                                                            artifact: ZodDiscriminatedUnion<
                                                                [
                                                                    ZodObject<
                                                                        { artifact_id: ...; available: ...; sha256: ... },
                                                                        $strict,
                                                                    >,
                                                                    ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                ],
                                                                "available",
                                                            >;
                                                            authority: ZodEnum<
                                                                {
                                                                    "artifact-bytes": "artifact-bytes";
                                                                    "ast-static-analysis": "ast-static-analysis";
                                                                    "controlled-replay": "controlled-replay";
                                                                    "historical-reference": "historical-reference";
                                                                    "native-analysis-provider": "native-analysis-provider";
                                                                    "passive-cdp-runtime": "passive-cdp-runtime";
                                                                    "static-relationship-inference": "static-relationship-inference";
                                                                    unknown: "unknown";
                                                                    "user-assertion": "user-assertion";
                                                                },
                                                            >;
                                                            confidence: ZodEnum<
                                                                {
                                                                    exact: "exact";
                                                                    high: "high";
                                                                    low: "low";
                                                                    medium: "medium";
                                                                    unknown: "unknown";
                                                                },
                                                            >;
                                                            coverage: ZodObject<
                                                                {
                                                                    limits: ZodArray<ZodObject<(...), (...)>>;
                                                                    omitted_count: ZodNullable<ZodNumber>;
                                                                    status: ZodEnum<
                                                                        { complete: ...; partial: ...; unavailable: ...; unknown: ... },
                                                                    >;
                                                                    truncated: ZodBoolean;
                                                                },
                                                                $strict,
                                                            >;
                                                            evidence_ids: ZodArray<ZodString>;
                                                            extractor: ZodObject<
                                                                {
                                                                    executable_sha256: ZodNullable<ZodString>;
                                                                    name: ZodString;
                                                                    operation: ZodString;
                                                                    version: ZodString;
                                                                },
                                                                $strict,
                                                            >;
                                                            limitations: ZodArray<ZodString>;
                                                            location: ZodDiscriminatedUnion<
                                                                [
                                                                    ZodObject<{ available: ...; value: ... }, $strict>,
                                                                    ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                ],
                                                                "available",
                                                            >;
                                                            state: ZodEnum<
                                                                {
                                                                    inferred: "inferred";
                                                                    observed: "observed";
                                                                    unavailable: "unavailable";
                                                                    unknown: "unknown";
                                                                },
                                                            >;
                                                        },
                                                        $strict,
                                                    >;
                                                    identifier_strategy: ZodObject<
                                                        {
                                                            stability: ZodLiteral<"relationship-exact">;
                                                            strategy: ZodLiteral<"semantic-content-sha256">;
                                                        },
                                                        $strict,
                                                    >;
                                                    properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                    relation: ZodEnum<
                                                        {
                                                            calls: "calls";
                                                            changed_from: "changed_from";
                                                            contains: "contains";
                                                            exposes: "exposes";
                                                            handles: "handles";
                                                            imports: "imports";
                                                            invokes: "invokes";
                                                            loads: "loads";
                                                            maps_to: "maps_to";
                                                            observed_as: "observed_as";
                                                            persists_to: "persists_to";
                                                            sends: "sends";
                                                        },
                                                    >;
                                                    source_node_id: ZodString;
                                                    target_node_id: ZodString;
                                                },
                                                $strict,
                                            >,
                                        >;
                                        graph_id: ZodString;
                                        limitations: ZodArray<ZodString>;
                                        nodes: ZodArray<
                                            ZodObject<
                                                {
                                                    identity: ZodDiscriminatedUnion<
                                                        [
                                                            ZodObject<
                                                                {
                                                                    sha256: ZodString;
                                                                    stability: ZodLiteral<"global-exact">;
                                                                    strategy: ZodLiteral<"content-digest">;
                                                                },
                                                                $strict,
                                                            >,
                                                            ZodObject<
                                                                {
                                                                    original_source: ZodString;
                                                                    source_map_sha256: ZodString;
                                                                    source_sha256: ZodNullable<ZodString>;
                                                                    stability: ZodLiteral<"source-map-exact">;
                                                                    strategy: ZodLiteral<"source-map-original">;
                                                                },
                                                                $strict,
                                                            >,
                                                            ZodObject<
                                                                {
                                                                    artifact_sha256: ZodString;
                                                                    path: ZodString;
                                                                    stability: ZodLiteral<"artifact-version">;
                                                                    strategy: ZodLiteral<"canonical-path">;
                                                                },
                                                                $strict,
                                                            >,
                                                        ],
                                                        "strategy",
                                                    >;
                                                    kind: ZodEnum<
                                                        {
                                                            artifact: "artifact";
                                                            "asar-entry": "asar-entry";
                                                            "browser-window": "browser-window";
                                                            "context-bridge-api": "context-bridge-api";
                                                            "electron-main": "electron-main";
                                                            "electron-preload": "electron-preload";
                                                            "electron-renderer": "electron-renderer";
                                                            "electron-utility": "electron-utility";
                                                            endpoint: "endpoint";
                                                            frame: "frame";
                                                            installer: "installer";
                                                            "ipc-channel": "ipc-channel";
                                                            "ipc-handler": "ipc-handler";
                                                            "javascript-asset": "javascript-asset";
                                                            "javascript-chunk": "javascript-chunk";
                                                            "javascript-module": "javascript-module";
                                                            "native-addon": "native-addon";
                                                            "native-export": "native-export";
                                                            package: "package";
                                                            "runtime-script-instance": "runtime-script-instance";
                                                            "service-worker": "service-worker";
                                                            "source-map": "source-map";
                                                            "source-module": "source-module";
                                                            storage: "storage";
                                                            target: "target";
                                                            unknown: "unknown";
                                                            worker: "worker";
                                                        },
                                                    >;
                                                    node_id: ZodString;
                                                    observations: ZodArray<
                                                        ZodObject<
                                                            {
                                                                evidence: ZodObject<
                                                                    {
                                                                        artifact: ZodDiscriminatedUnion<(...), (...)>;
                                                                        authority: ZodEnum<(...)>;
                                                                        confidence: ZodEnum<(...)>;
                                                                        coverage: ZodObject<(...), (...)>;
                                                                        evidence_ids: ZodArray<(...)>;
                                                                        extractor: ZodObject<(...), (...)>;
                                                                        limitations: ZodArray<(...)>;
                                                                        location: ZodDiscriminatedUnion<(...), (...)>;
                                                                        state: ZodEnum<(...)>;
                                                                    },
                                                                    $strict,
                                                                >;
                                                                identifier_strategy: ZodObject<
                                                                    { stability: ZodLiteral<(...)>; strategy: ZodLiteral<(...)> },
                                                                    $strict,
                                                                >;
                                                                label: ZodNullable<ZodString>;
                                                                observation_id: ZodString;
                                                                properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                            },
                                                            $strict,
                                                        >,
                                                    >;
                                                },
                                                $strict,
                                            >,
                                        >;
                                        root_node_ids: ZodArray<ZodString>;
                                        schema: ZodLiteral<"JavaScriptApplicationGraph">;
                                        schema_version: ZodLiteral<1>;
                                    },
                                    $strict,
                                > = ...
                                +

                                Strict versioned JavaScript Application Graph with verified commitments.

                                +
                                +
                                + +
                                +
                                diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_NODE_KINDS.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_NODE_KINDS.html new file mode 100644 index 000000000..6942be11a --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_NODE_KINDS.html @@ -0,0 +1,35 @@ +JAVASCRIPT_APPLICATION_NODE_KINDS | rea-agents - v1.6.0
                                +
                                rea-agents - v1.6.0 + +
                                  +
                                  +
                                  Preparing search index...
                                  +
                                  +
                                  +
                                  + +

                                  Variable JAVASCRIPT_APPLICATION_NODE_KINDSConst

                                  +
                                  JAVASCRIPT_APPLICATION_NODE_KINDS: readonly [
                                      "package",
                                      "installer",
                                      "artifact",
                                      "asar-entry",
                                      "electron-main",
                                      "electron-preload",
                                      "electron-renderer",
                                      "electron-utility",
                                      "javascript-asset",
                                      "javascript-chunk",
                                      "javascript-module",
                                      "source-map",
                                      "source-module",
                                      "browser-window",
                                      "frame",
                                      "target",
                                      "context-bridge-api",
                                      "ipc-channel",
                                      "ipc-handler",
                                      "worker",
                                      "service-worker",
                                      "endpoint",
                                      "storage",
                                      "native-addon",
                                      "native-export",
                                      "runtime-script-instance",
                                      "unknown",
                                  ] = ...
                                  +

                                  Node kinds admitted by JavaScript Application Graph v1.

                                  +
                                  +
                                  + +
                                  +
                                  diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_RELATIONS.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_RELATIONS.html new file mode 100644 index 000000000..e38f10d2e --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.JAVASCRIPT_APPLICATION_RELATIONS.html @@ -0,0 +1,35 @@ +JAVASCRIPT_APPLICATION_RELATIONS | rea-agents - v1.6.0
                                  +
                                  rea-agents - v1.6.0 + +
                                    +
                                    +
                                    Preparing search index...
                                    +
                                    +
                                    +
                                    + +

                                    Variable JAVASCRIPT_APPLICATION_RELATIONSConst

                                    +
                                    JAVASCRIPT_APPLICATION_RELATIONS: readonly [
                                        "contains",
                                        "loads",
                                        "imports",
                                        "maps_to",
                                        "exposes",
                                        "sends",
                                        "invokes",
                                        "handles",
                                        "calls",
                                        "persists_to",
                                        "observed_as",
                                        "changed_from",
                                    ] = ...
                                    +

                                    Directed relations admitted by JavaScript Application Graph v1.

                                    +
                                    +
                                    + +
                                    +
                                    diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeInputSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeInputSchema.html new file mode 100644 index 000000000..0442a449b --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeInputSchema.html @@ -0,0 +1,35 @@ +applicationEdgeInputSchema | rea-agents - v1.6.0
                                    +
                                    rea-agents - v1.6.0 + +
                                      +
                                      +
                                      Preparing search index...
                                      +
                                      +
                                      +
                                      + +

                                      Variable applicationEdgeInputSchemaConst

                                      +
                                      applicationEdgeInputSchema: ZodObject<
                                          {
                                              evidence: ZodObject<
                                                  {
                                                      artifact: ZodDiscriminatedUnion<
                                                          [
                                                              ZodObject<
                                                                  {
                                                                      artifact_id: ZodString;
                                                                      available: ZodLiteral<true>;
                                                                      sha256: ZodString;
                                                                  },
                                                                  $strict,
                                                              >,
                                                              ZodObject<
                                                                  {
                                                                      available: ZodLiteral<false>;
                                                                      detail: ZodString;
                                                                      reason: ZodEnum<
                                                                          {
                                                                              "not-applicable": "not-applicable";
                                                                              "not-approved": "not-approved";
                                                                              "not-observed": "not-observed";
                                                                              "provider-unavailable": "provider-unavailable";
                                                                              truncated: "truncated";
                                                                              unknown: "unknown";
                                                                              unresolved: "unresolved";
                                                                          },
                                                                      >;
                                                                  },
                                                                  $strict,
                                                              >,
                                                          ],
                                                          "available",
                                                      >;
                                                      authority: ZodEnum<
                                                          {
                                                              "artifact-bytes": "artifact-bytes";
                                                              "ast-static-analysis": "ast-static-analysis";
                                                              "controlled-replay": "controlled-replay";
                                                              "historical-reference": "historical-reference";
                                                              "native-analysis-provider": "native-analysis-provider";
                                                              "passive-cdp-runtime": "passive-cdp-runtime";
                                                              "static-relationship-inference": "static-relationship-inference";
                                                              unknown: "unknown";
                                                              "user-assertion": "user-assertion";
                                                          },
                                                      >;
                                                      confidence: ZodEnum<
                                                          {
                                                              exact: "exact";
                                                              high: "high";
                                                              low: "low";
                                                              medium: "medium";
                                                              unknown: "unknown";
                                                          },
                                                      >;
                                                      coverage: ZodObject<
                                                          {
                                                              limits: ZodArray<
                                                                  ZodObject<
                                                                      {
                                                                          name: ZodString;
                                                                          unit: ZodEnum<
                                                                              {
                                                                                  bytes: ...;
                                                                                  characters: ...;
                                                                                  depth: ...;
                                                                                  instructions: ...;
                                                                                  items: ...;
                                                                                  milliseconds: ...;
                                                                                  other: ...;
                                                                              },
                                                                          >;
                                                                          value: ZodNumber;
                                                                      },
                                                                      $strict,
                                                                  >,
                                                              >;
                                                              omitted_count: ZodNullable<ZodNumber>;
                                                              status: ZodEnum<
                                                                  {
                                                                      complete: "complete";
                                                                      partial: "partial";
                                                                      unavailable: "unavailable";
                                                                      unknown: "unknown";
                                                                  },
                                                              >;
                                                              truncated: ZodBoolean;
                                                          },
                                                          $strict,
                                                      >;
                                                      evidence_ids: ZodArray<ZodString>;
                                                      extractor: ZodObject<
                                                          {
                                                              executable_sha256: ZodNullable<ZodString>;
                                                              name: ZodString;
                                                              operation: ZodString;
                                                              version: ZodString;
                                                          },
                                                          $strict,
                                                      >;
                                                      limitations: ZodArray<ZodString>;
                                                      location: ZodDiscriminatedUnion<
                                                          [
                                                              ZodObject<
                                                                  {
                                                                      available: ZodLiteral<true>;
                                                                      value: ZodDiscriminatedUnion<
                                                                          [
                                                                              ZodObject<(...), (...)>,
                                                                              ZodObject<(...), (...)>,
                                                                              ZodObject<(...), (...)>,
                                                                              ZodObject<(...), (...)>,
                                                                          ],
                                                                          "kind",
                                                                      >;
                                                                  },
                                                                  $strict,
                                                              >,
                                                              ZodObject<
                                                                  {
                                                                      available: ZodLiteral<false>;
                                                                      detail: ZodString;
                                                                      reason: ZodEnum<
                                                                          {
                                                                              "not-applicable": "not-applicable";
                                                                              "not-approved": "not-approved";
                                                                              "not-observed": "not-observed";
                                                                              "provider-unavailable": "provider-unavailable";
                                                                              truncated: "truncated";
                                                                              unknown: "unknown";
                                                                              unresolved: "unresolved";
                                                                          },
                                                                      >;
                                                                  },
                                                                  $strict,
                                                              >,
                                                          ],
                                                          "available",
                                                      >;
                                                      state: ZodEnum<
                                                          {
                                                              inferred: "inferred";
                                                              observed: "observed";
                                                              unavailable: "unavailable";
                                                              unknown: "unknown";
                                                          },
                                                      >;
                                                  },
                                                  $strict,
                                              >;
                                              properties: ZodRecord<ZodString, ZodJSONSchema>;
                                              relation: ZodEnum<
                                                  {
                                                      calls: "calls";
                                                      changed_from: "changed_from";
                                                      contains: "contains";
                                                      exposes: "exposes";
                                                      handles: "handles";
                                                      imports: "imports";
                                                      invokes: "invokes";
                                                      loads: "loads";
                                                      maps_to: "maps_to";
                                                      observed_as: "observed_as";
                                                      persists_to: "persists_to";
                                                      sends: "sends";
                                                  },
                                              >;
                                              source_node_id: ZodString;
                                              target_node_id: ZodString;
                                          },
                                          $strict,
                                      > = ...
                                      +

                                      One directed relationship before its semantic identifier is derived.

                                      +
                                      +
                                      + +
                                      +
                                      diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeSchema.html new file mode 100644 index 000000000..f71c677dd --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationEdgeSchema.html @@ -0,0 +1,35 @@ +applicationEdgeSchema | rea-agents - v1.6.0
                                      +
                                      rea-agents - v1.6.0 + +
                                        +
                                        +
                                        Preparing search index...
                                        +
                                        +
                                        +
                                        + +

                                        Variable applicationEdgeSchemaConst

                                        +
                                        applicationEdgeSchema: ZodObject<
                                            {
                                                edge_id: ZodString;
                                                evidence: ZodObject<
                                                    {
                                                        artifact: ZodDiscriminatedUnion<
                                                            [
                                                                ZodObject<
                                                                    {
                                                                        artifact_id: ZodString;
                                                                        available: ZodLiteral<true>;
                                                                        sha256: ZodString;
                                                                    },
                                                                    $strict,
                                                                >,
                                                                ZodObject<
                                                                    {
                                                                        available: ZodLiteral<false>;
                                                                        detail: ZodString;
                                                                        reason: ZodEnum<
                                                                            {
                                                                                "not-applicable": "not-applicable";
                                                                                "not-approved": "not-approved";
                                                                                "not-observed": "not-observed";
                                                                                "provider-unavailable": "provider-unavailable";
                                                                                truncated: "truncated";
                                                                                unknown: "unknown";
                                                                                unresolved: "unresolved";
                                                                            },
                                                                        >;
                                                                    },
                                                                    $strict,
                                                                >,
                                                            ],
                                                            "available",
                                                        >;
                                                        authority: ZodEnum<
                                                            {
                                                                "artifact-bytes": "artifact-bytes";
                                                                "ast-static-analysis": "ast-static-analysis";
                                                                "controlled-replay": "controlled-replay";
                                                                "historical-reference": "historical-reference";
                                                                "native-analysis-provider": "native-analysis-provider";
                                                                "passive-cdp-runtime": "passive-cdp-runtime";
                                                                "static-relationship-inference": "static-relationship-inference";
                                                                unknown: "unknown";
                                                                "user-assertion": "user-assertion";
                                                            },
                                                        >;
                                                        confidence: ZodEnum<
                                                            {
                                                                exact: "exact";
                                                                high: "high";
                                                                low: "low";
                                                                medium: "medium";
                                                                unknown: "unknown";
                                                            },
                                                        >;
                                                        coverage: ZodObject<
                                                            {
                                                                limits: ZodArray<
                                                                    ZodObject<
                                                                        {
                                                                            name: ZodString;
                                                                            unit: ZodEnum<
                                                                                {
                                                                                    bytes: ...;
                                                                                    characters: ...;
                                                                                    depth: ...;
                                                                                    instructions: ...;
                                                                                    items: ...;
                                                                                    milliseconds: ...;
                                                                                    other: ...;
                                                                                },
                                                                            >;
                                                                            value: ZodNumber;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                >;
                                                                omitted_count: ZodNullable<ZodNumber>;
                                                                status: ZodEnum<
                                                                    {
                                                                        complete: "complete";
                                                                        partial: "partial";
                                                                        unavailable: "unavailable";
                                                                        unknown: "unknown";
                                                                    },
                                                                >;
                                                                truncated: ZodBoolean;
                                                            },
                                                            $strict,
                                                        >;
                                                        evidence_ids: ZodArray<ZodString>;
                                                        extractor: ZodObject<
                                                            {
                                                                executable_sha256: ZodNullable<ZodString>;
                                                                name: ZodString;
                                                                operation: ZodString;
                                                                version: ZodString;
                                                            },
                                                            $strict,
                                                        >;
                                                        limitations: ZodArray<ZodString>;
                                                        location: ZodDiscriminatedUnion<
                                                            [
                                                                ZodObject<
                                                                    {
                                                                        available: ZodLiteral<true>;
                                                                        value: ZodDiscriminatedUnion<
                                                                            [
                                                                                ZodObject<(...), (...)>,
                                                                                ZodObject<(...), (...)>,
                                                                                ZodObject<(...), (...)>,
                                                                                ZodObject<(...), (...)>,
                                                                            ],
                                                                            "kind",
                                                                        >;
                                                                    },
                                                                    $strict,
                                                                >,
                                                                ZodObject<
                                                                    {
                                                                        available: ZodLiteral<false>;
                                                                        detail: ZodString;
                                                                        reason: ZodEnum<
                                                                            {
                                                                                "not-applicable": "not-applicable";
                                                                                "not-approved": "not-approved";
                                                                                "not-observed": "not-observed";
                                                                                "provider-unavailable": "provider-unavailable";
                                                                                truncated: "truncated";
                                                                                unknown: "unknown";
                                                                                unresolved: "unresolved";
                                                                            },
                                                                        >;
                                                                    },
                                                                    $strict,
                                                                >,
                                                            ],
                                                            "available",
                                                        >;
                                                        state: ZodEnum<
                                                            {
                                                                inferred: "inferred";
                                                                observed: "observed";
                                                                unavailable: "unavailable";
                                                                unknown: "unknown";
                                                            },
                                                        >;
                                                    },
                                                    $strict,
                                                >;
                                                identifier_strategy: ZodObject<
                                                    {
                                                        stability: ZodLiteral<"relationship-exact">;
                                                        strategy: ZodLiteral<"semantic-content-sha256">;
                                                    },
                                                    $strict,
                                                >;
                                                properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                relation: ZodEnum<
                                                    {
                                                        calls: "calls";
                                                        changed_from: "changed_from";
                                                        contains: "contains";
                                                        exposes: "exposes";
                                                        handles: "handles";
                                                        imports: "imports";
                                                        invokes: "invokes";
                                                        loads: "loads";
                                                        maps_to: "maps_to";
                                                        observed_as: "observed_as";
                                                        persists_to: "persists_to";
                                                        sends: "sends";
                                                    },
                                                >;
                                                source_node_id: ZodString;
                                                target_node_id: ZodString;
                                            },
                                            $strict,
                                        > = ...
                                        +

                                        One directed, evidence-bearing application relationship.

                                        +
                                        +
                                        + +
                                        +
                                        diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeInputSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeInputSchema.html new file mode 100644 index 000000000..663647435 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeInputSchema.html @@ -0,0 +1,35 @@ +applicationNodeInputSchema | rea-agents - v1.6.0
                                        +
                                        rea-agents - v1.6.0 + +
                                          +
                                          +
                                          Preparing search index...
                                          +
                                          +
                                          +
                                          + +

                                          Variable applicationNodeInputSchemaConst

                                          +
                                          applicationNodeInputSchema: ZodObject<
                                              {
                                                  identity: ZodDiscriminatedUnion<
                                                      [
                                                          ZodObject<
                                                              {
                                                                  sha256: ZodString;
                                                                  stability: ZodLiteral<"global-exact">;
                                                                  strategy: ZodLiteral<"content-digest">;
                                                              },
                                                              $strict,
                                                          >,
                                                          ZodObject<
                                                              {
                                                                  original_source: ZodString;
                                                                  source_map_sha256: ZodString;
                                                                  source_sha256: ZodNullable<ZodString>;
                                                                  stability: ZodLiteral<"source-map-exact">;
                                                                  strategy: ZodLiteral<"source-map-original">;
                                                              },
                                                              $strict,
                                                          >,
                                                          ZodObject<
                                                              {
                                                                  artifact_sha256: ZodString;
                                                                  path: ZodString;
                                                                  stability: ZodLiteral<"artifact-version">;
                                                                  strategy: ZodLiteral<"canonical-path">;
                                                              },
                                                              $strict,
                                                          >,
                                                      ],
                                                      "strategy",
                                                  >;
                                                  kind: ZodEnum<
                                                      {
                                                          artifact: "artifact";
                                                          "asar-entry": "asar-entry";
                                                          "browser-window": "browser-window";
                                                          "context-bridge-api": "context-bridge-api";
                                                          "electron-main": "electron-main";
                                                          "electron-preload": "electron-preload";
                                                          "electron-renderer": "electron-renderer";
                                                          "electron-utility": "electron-utility";
                                                          endpoint: "endpoint";
                                                          frame: "frame";
                                                          installer: "installer";
                                                          "ipc-channel": "ipc-channel";
                                                          "ipc-handler": "ipc-handler";
                                                          "javascript-asset": "javascript-asset";
                                                          "javascript-chunk": "javascript-chunk";
                                                          "javascript-module": "javascript-module";
                                                          "native-addon": "native-addon";
                                                          "native-export": "native-export";
                                                          package: "package";
                                                          "runtime-script-instance": "runtime-script-instance";
                                                          "service-worker": "service-worker";
                                                          "source-map": "source-map";
                                                          "source-module": "source-module";
                                                          storage: "storage";
                                                          target: "target";
                                                          unknown: "unknown";
                                                          worker: "worker";
                                                      },
                                                  >;
                                                  observations: ZodArray<
                                                      ZodObject<
                                                          {
                                                              evidence: ZodObject<
                                                                  {
                                                                      artifact: ZodDiscriminatedUnion<
                                                                          [
                                                                              ZodObject<
                                                                                  { artifact_id: ...; available: ...; sha256: ... },
                                                                                  $strict,
                                                                              >,
                                                                              ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                          ],
                                                                          "available",
                                                                      >;
                                                                      authority: ZodEnum<
                                                                          {
                                                                              "artifact-bytes": "artifact-bytes";
                                                                              "ast-static-analysis": "ast-static-analysis";
                                                                              "controlled-replay": "controlled-replay";
                                                                              "historical-reference": "historical-reference";
                                                                              "native-analysis-provider": "native-analysis-provider";
                                                                              "passive-cdp-runtime": "passive-cdp-runtime";
                                                                              "static-relationship-inference": "static-relationship-inference";
                                                                              unknown: "unknown";
                                                                              "user-assertion": "user-assertion";
                                                                          },
                                                                      >;
                                                                      confidence: ZodEnum<
                                                                          {
                                                                              exact: "exact";
                                                                              high: "high";
                                                                              low: "low";
                                                                              medium: "medium";
                                                                              unknown: "unknown";
                                                                          },
                                                                      >;
                                                                      coverage: ZodObject<
                                                                          {
                                                                              limits: ZodArray<ZodObject<(...), (...)>>;
                                                                              omitted_count: ZodNullable<ZodNumber>;
                                                                              status: ZodEnum<
                                                                                  { complete: ...; partial: ...; unavailable: ...; unknown: ... },
                                                                              >;
                                                                              truncated: ZodBoolean;
                                                                          },
                                                                          $strict,
                                                                      >;
                                                                      evidence_ids: ZodArray<ZodString>;
                                                                      extractor: ZodObject<
                                                                          {
                                                                              executable_sha256: ZodNullable<ZodString>;
                                                                              name: ZodString;
                                                                              operation: ZodString;
                                                                              version: ZodString;
                                                                          },
                                                                          $strict,
                                                                      >;
                                                                      limitations: ZodArray<ZodString>;
                                                                      location: ZodDiscriminatedUnion<
                                                                          [
                                                                              ZodObject<{ available: ...; value: ... }, $strict>,
                                                                              ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                          ],
                                                                          "available",
                                                                      >;
                                                                      state: ZodEnum<
                                                                          {
                                                                              inferred: "inferred";
                                                                              observed: "observed";
                                                                              unavailable: "unavailable";
                                                                              unknown: "unknown";
                                                                          },
                                                                      >;
                                                                  },
                                                                  $strict,
                                                              >;
                                                              label: ZodNullable<ZodString>;
                                                              properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                          },
                                                          $strict,
                                                      >,
                                                  >;
                                              },
                                              $strict,
                                          > = ...
                                          +

                                          One application entity before its stable identifier is derived.

                                          +
                                          +
                                          + +
                                          +
                                          diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeObservationSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeObservationSchema.html new file mode 100644 index 000000000..b142aa5d4 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeObservationSchema.html @@ -0,0 +1,35 @@ +applicationNodeObservationSchema | rea-agents - v1.6.0
                                          +
                                          rea-agents - v1.6.0 + +
                                            +
                                            +
                                            Preparing search index...
                                            +
                                            +
                                            +
                                            + +

                                            Variable applicationNodeObservationSchemaConst

                                            +
                                            applicationNodeObservationSchema: ZodObject<
                                                {
                                                    evidence: ZodObject<
                                                        {
                                                            artifact: ZodDiscriminatedUnion<
                                                                [
                                                                    ZodObject<
                                                                        {
                                                                            artifact_id: ZodString;
                                                                            available: ZodLiteral<true>;
                                                                            sha256: ZodString;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                    ZodObject<
                                                                        {
                                                                            available: ZodLiteral<false>;
                                                                            detail: ZodString;
                                                                            reason: ZodEnum<
                                                                                {
                                                                                    "not-applicable": "not-applicable";
                                                                                    "not-approved": "not-approved";
                                                                                    "not-observed": "not-observed";
                                                                                    "provider-unavailable": "provider-unavailable";
                                                                                    truncated: "truncated";
                                                                                    unknown: "unknown";
                                                                                    unresolved: "unresolved";
                                                                                },
                                                                            >;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                ],
                                                                "available",
                                                            >;
                                                            authority: ZodEnum<
                                                                {
                                                                    "artifact-bytes": "artifact-bytes";
                                                                    "ast-static-analysis": "ast-static-analysis";
                                                                    "controlled-replay": "controlled-replay";
                                                                    "historical-reference": "historical-reference";
                                                                    "native-analysis-provider": "native-analysis-provider";
                                                                    "passive-cdp-runtime": "passive-cdp-runtime";
                                                                    "static-relationship-inference": "static-relationship-inference";
                                                                    unknown: "unknown";
                                                                    "user-assertion": "user-assertion";
                                                                },
                                                            >;
                                                            confidence: ZodEnum<
                                                                {
                                                                    exact: "exact";
                                                                    high: "high";
                                                                    low: "low";
                                                                    medium: "medium";
                                                                    unknown: "unknown";
                                                                },
                                                            >;
                                                            coverage: ZodObject<
                                                                {
                                                                    limits: ZodArray<
                                                                        ZodObject<
                                                                            {
                                                                                name: ZodString;
                                                                                unit: ZodEnum<
                                                                                    {
                                                                                        bytes: ...;
                                                                                        characters: ...;
                                                                                        depth: ...;
                                                                                        instructions: ...;
                                                                                        items: ...;
                                                                                        milliseconds: ...;
                                                                                        other: ...;
                                                                                    },
                                                                                >;
                                                                                value: ZodNumber;
                                                                            },
                                                                            $strict,
                                                                        >,
                                                                    >;
                                                                    omitted_count: ZodNullable<ZodNumber>;
                                                                    status: ZodEnum<
                                                                        {
                                                                            complete: "complete";
                                                                            partial: "partial";
                                                                            unavailable: "unavailable";
                                                                            unknown: "unknown";
                                                                        },
                                                                    >;
                                                                    truncated: ZodBoolean;
                                                                },
                                                                $strict,
                                                            >;
                                                            evidence_ids: ZodArray<ZodString>;
                                                            extractor: ZodObject<
                                                                {
                                                                    executable_sha256: ZodNullable<ZodString>;
                                                                    name: ZodString;
                                                                    operation: ZodString;
                                                                    version: ZodString;
                                                                },
                                                                $strict,
                                                            >;
                                                            limitations: ZodArray<ZodString>;
                                                            location: ZodDiscriminatedUnion<
                                                                [
                                                                    ZodObject<
                                                                        {
                                                                            available: ZodLiteral<true>;
                                                                            value: ZodDiscriminatedUnion<
                                                                                [
                                                                                    ZodObject<(...), (...)>,
                                                                                    ZodObject<(...), (...)>,
                                                                                    ZodObject<(...), (...)>,
                                                                                    ZodObject<(...), (...)>,
                                                                                ],
                                                                                "kind",
                                                                            >;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                    ZodObject<
                                                                        {
                                                                            available: ZodLiteral<false>;
                                                                            detail: ZodString;
                                                                            reason: ZodEnum<
                                                                                {
                                                                                    "not-applicable": "not-applicable";
                                                                                    "not-approved": "not-approved";
                                                                                    "not-observed": "not-observed";
                                                                                    "provider-unavailable": "provider-unavailable";
                                                                                    truncated: "truncated";
                                                                                    unknown: "unknown";
                                                                                    unresolved: "unresolved";
                                                                                },
                                                                            >;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                ],
                                                                "available",
                                                            >;
                                                            state: ZodEnum<
                                                                {
                                                                    inferred: "inferred";
                                                                    observed: "observed";
                                                                    unavailable: "unavailable";
                                                                    unknown: "unknown";
                                                                },
                                                            >;
                                                        },
                                                        $strict,
                                                    >;
                                                    identifier_strategy: ZodObject<
                                                        {
                                                            stability: ZodLiteral<"observation-exact">;
                                                            strategy: ZodLiteral<"semantic-content-sha256">;
                                                        },
                                                        $strict,
                                                    >;
                                                    label: ZodNullable<ZodString>;
                                                    observation_id: ZodString;
                                                    properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                },
                                                $strict,
                                            > = ...
                                            +

                                            One immutable, evidence-bearing observation attached to an entity.

                                            +
                                            +
                                            + +
                                            +
                                            diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeSchema.html new file mode 100644 index 000000000..42b977e47 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.applicationNodeSchema.html @@ -0,0 +1,35 @@ +applicationNodeSchema | rea-agents - v1.6.0
                                            +
                                            rea-agents - v1.6.0 + +
                                              +
                                              +
                                              Preparing search index...
                                              +
                                              +
                                              +
                                              + +

                                              Variable applicationNodeSchemaConst

                                              +
                                              applicationNodeSchema: ZodObject<
                                                  {
                                                      identity: ZodDiscriminatedUnion<
                                                          [
                                                              ZodObject<
                                                                  {
                                                                      sha256: ZodString;
                                                                      stability: ZodLiteral<"global-exact">;
                                                                      strategy: ZodLiteral<"content-digest">;
                                                                  },
                                                                  $strict,
                                                              >,
                                                              ZodObject<
                                                                  {
                                                                      original_source: ZodString;
                                                                      source_map_sha256: ZodString;
                                                                      source_sha256: ZodNullable<ZodString>;
                                                                      stability: ZodLiteral<"source-map-exact">;
                                                                      strategy: ZodLiteral<"source-map-original">;
                                                                  },
                                                                  $strict,
                                                              >,
                                                              ZodObject<
                                                                  {
                                                                      artifact_sha256: ZodString;
                                                                      path: ZodString;
                                                                      stability: ZodLiteral<"artifact-version">;
                                                                      strategy: ZodLiteral<"canonical-path">;
                                                                  },
                                                                  $strict,
                                                              >,
                                                          ],
                                                          "strategy",
                                                      >;
                                                      kind: ZodEnum<
                                                          {
                                                              artifact: "artifact";
                                                              "asar-entry": "asar-entry";
                                                              "browser-window": "browser-window";
                                                              "context-bridge-api": "context-bridge-api";
                                                              "electron-main": "electron-main";
                                                              "electron-preload": "electron-preload";
                                                              "electron-renderer": "electron-renderer";
                                                              "electron-utility": "electron-utility";
                                                              endpoint: "endpoint";
                                                              frame: "frame";
                                                              installer: "installer";
                                                              "ipc-channel": "ipc-channel";
                                                              "ipc-handler": "ipc-handler";
                                                              "javascript-asset": "javascript-asset";
                                                              "javascript-chunk": "javascript-chunk";
                                                              "javascript-module": "javascript-module";
                                                              "native-addon": "native-addon";
                                                              "native-export": "native-export";
                                                              package: "package";
                                                              "runtime-script-instance": "runtime-script-instance";
                                                              "service-worker": "service-worker";
                                                              "source-map": "source-map";
                                                              "source-module": "source-module";
                                                              storage: "storage";
                                                              target: "target";
                                                              unknown: "unknown";
                                                              worker: "worker";
                                                          },
                                                      >;
                                                      node_id: ZodString;
                                                      observations: ZodArray<
                                                          ZodObject<
                                                              {
                                                                  evidence: ZodObject<
                                                                      {
                                                                          artifact: ZodDiscriminatedUnion<
                                                                              [
                                                                                  ZodObject<
                                                                                      { artifact_id: ...; available: ...; sha256: ... },
                                                                                      $strict,
                                                                                  >,
                                                                                  ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                              ],
                                                                              "available",
                                                                          >;
                                                                          authority: ZodEnum<
                                                                              {
                                                                                  "artifact-bytes": "artifact-bytes";
                                                                                  "ast-static-analysis": "ast-static-analysis";
                                                                                  "controlled-replay": "controlled-replay";
                                                                                  "historical-reference": "historical-reference";
                                                                                  "native-analysis-provider": "native-analysis-provider";
                                                                                  "passive-cdp-runtime": "passive-cdp-runtime";
                                                                                  "static-relationship-inference": "static-relationship-inference";
                                                                                  unknown: "unknown";
                                                                                  "user-assertion": "user-assertion";
                                                                              },
                                                                          >;
                                                                          confidence: ZodEnum<
                                                                              {
                                                                                  exact: "exact";
                                                                                  high: "high";
                                                                                  low: "low";
                                                                                  medium: "medium";
                                                                                  unknown: "unknown";
                                                                              },
                                                                          >;
                                                                          coverage: ZodObject<
                                                                              {
                                                                                  limits: ZodArray<ZodObject<(...), (...)>>;
                                                                                  omitted_count: ZodNullable<ZodNumber>;
                                                                                  status: ZodEnum<
                                                                                      { complete: ...; partial: ...; unavailable: ...; unknown: ... },
                                                                                  >;
                                                                                  truncated: ZodBoolean;
                                                                              },
                                                                              $strict,
                                                                          >;
                                                                          evidence_ids: ZodArray<ZodString>;
                                                                          extractor: ZodObject<
                                                                              {
                                                                                  executable_sha256: ZodNullable<ZodString>;
                                                                                  name: ZodString;
                                                                                  operation: ZodString;
                                                                                  version: ZodString;
                                                                              },
                                                                              $strict,
                                                                          >;
                                                                          limitations: ZodArray<ZodString>;
                                                                          location: ZodDiscriminatedUnion<
                                                                              [
                                                                                  ZodObject<{ available: ...; value: ... }, $strict>,
                                                                                  ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                              ],
                                                                              "available",
                                                                          >;
                                                                          state: ZodEnum<
                                                                              {
                                                                                  inferred: "inferred";
                                                                                  observed: "observed";
                                                                                  unavailable: "unavailable";
                                                                                  unknown: "unknown";
                                                                              },
                                                                          >;
                                                                      },
                                                                      $strict,
                                                                  >;
                                                                  identifier_strategy: ZodObject<
                                                                      {
                                                                          stability: ZodLiteral<"observation-exact">;
                                                                          strategy: ZodLiteral<"semantic-content-sha256">;
                                                                      },
                                                                      $strict,
                                                                  >;
                                                                  label: ZodNullable<ZodString>;
                                                                  observation_id: ZodString;
                                                                  properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                              },
                                                              $strict,
                                                          >,
                                                      >;
                                                  },
                                                  $strict,
                                              > = ...
                                              +

                                              One stable application entity with one or more bounded observations.

                                              +
                                              +
                                              + +
                                              +
                                              diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphInputSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphInputSchema.html new file mode 100644 index 000000000..8a5dca352 --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphInputSchema.html @@ -0,0 +1,35 @@ +javascriptApplicationGraphInputSchema | rea-agents - v1.6.0
                                              +
                                              rea-agents - v1.6.0 + +
                                                +
                                                +
                                                Preparing search index...
                                                +
                                                +
                                                +
                                                + +

                                                Variable javascriptApplicationGraphInputSchemaConst

                                                +
                                                javascriptApplicationGraphInputSchema: ZodObject<
                                                    {
                                                        coverage: ZodObject<
                                                            {
                                                                limits: ZodArray<
                                                                    ZodObject<
                                                                        {
                                                                            name: ZodString;
                                                                            unit: ZodEnum<
                                                                                {
                                                                                    bytes: "bytes";
                                                                                    characters: "characters";
                                                                                    depth: "depth";
                                                                                    instructions: "instructions";
                                                                                    items: "items";
                                                                                    milliseconds: "milliseconds";
                                                                                    other: "other";
                                                                                },
                                                                            >;
                                                                            value: ZodNumber;
                                                                        },
                                                                        $strict,
                                                                    >,
                                                                >;
                                                                omitted_count: ZodNullable<ZodNumber>;
                                                                status: ZodEnum<
                                                                    {
                                                                        complete: "complete";
                                                                        partial: "partial";
                                                                        unavailable: "unavailable";
                                                                        unknown: "unknown";
                                                                    },
                                                                >;
                                                                truncated: ZodBoolean;
                                                            },
                                                            $strict,
                                                        >;
                                                        edges: ZodArray<
                                                            ZodObject<
                                                                {
                                                                    edge_id: ZodString;
                                                                    evidence: ZodObject<
                                                                        {
                                                                            artifact: ZodDiscriminatedUnion<
                                                                                [
                                                                                    ZodObject<
                                                                                        { artifact_id: ...; available: ...; sha256: ... },
                                                                                        $strict,
                                                                                    >,
                                                                                    ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                                ],
                                                                                "available",
                                                                            >;
                                                                            authority: ZodEnum<
                                                                                {
                                                                                    "artifact-bytes": "artifact-bytes";
                                                                                    "ast-static-analysis": "ast-static-analysis";
                                                                                    "controlled-replay": "controlled-replay";
                                                                                    "historical-reference": "historical-reference";
                                                                                    "native-analysis-provider": "native-analysis-provider";
                                                                                    "passive-cdp-runtime": "passive-cdp-runtime";
                                                                                    "static-relationship-inference": "static-relationship-inference";
                                                                                    unknown: "unknown";
                                                                                    "user-assertion": "user-assertion";
                                                                                },
                                                                            >;
                                                                            confidence: ZodEnum<
                                                                                {
                                                                                    exact: "exact";
                                                                                    high: "high";
                                                                                    low: "low";
                                                                                    medium: "medium";
                                                                                    unknown: "unknown";
                                                                                },
                                                                            >;
                                                                            coverage: ZodObject<
                                                                                {
                                                                                    limits: ZodArray<ZodObject<(...), (...)>>;
                                                                                    omitted_count: ZodNullable<ZodNumber>;
                                                                                    status: ZodEnum<
                                                                                        { complete: ...; partial: ...; unavailable: ...; unknown: ... },
                                                                                    >;
                                                                                    truncated: ZodBoolean;
                                                                                },
                                                                                $strict,
                                                                            >;
                                                                            evidence_ids: ZodArray<ZodString>;
                                                                            extractor: ZodObject<
                                                                                {
                                                                                    executable_sha256: ZodNullable<ZodString>;
                                                                                    name: ZodString;
                                                                                    operation: ZodString;
                                                                                    version: ZodString;
                                                                                },
                                                                                $strict,
                                                                            >;
                                                                            limitations: ZodArray<ZodString>;
                                                                            location: ZodDiscriminatedUnion<
                                                                                [
                                                                                    ZodObject<{ available: ...; value: ... }, $strict>,
                                                                                    ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                                ],
                                                                                "available",
                                                                            >;
                                                                            state: ZodEnum<
                                                                                {
                                                                                    inferred: "inferred";
                                                                                    observed: "observed";
                                                                                    unavailable: "unavailable";
                                                                                    unknown: "unknown";
                                                                                },
                                                                            >;
                                                                        },
                                                                        $strict,
                                                                    >;
                                                                    identifier_strategy: ZodObject<
                                                                        {
                                                                            stability: ZodLiteral<"relationship-exact">;
                                                                            strategy: ZodLiteral<"semantic-content-sha256">;
                                                                        },
                                                                        $strict,
                                                                    >;
                                                                    properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                                    relation: ZodEnum<
                                                                        {
                                                                            calls: "calls";
                                                                            changed_from: "changed_from";
                                                                            contains: "contains";
                                                                            exposes: "exposes";
                                                                            handles: "handles";
                                                                            imports: "imports";
                                                                            invokes: "invokes";
                                                                            loads: "loads";
                                                                            maps_to: "maps_to";
                                                                            observed_as: "observed_as";
                                                                            persists_to: "persists_to";
                                                                            sends: "sends";
                                                                        },
                                                                    >;
                                                                    source_node_id: ZodString;
                                                                    target_node_id: ZodString;
                                                                },
                                                                $strict,
                                                            >,
                                                        >;
                                                        limitations: ZodArray<ZodString>;
                                                        nodes: ZodArray<
                                                            ZodObject<
                                                                {
                                                                    identity: ZodDiscriminatedUnion<
                                                                        [
                                                                            ZodObject<
                                                                                {
                                                                                    sha256: ZodString;
                                                                                    stability: ZodLiteral<"global-exact">;
                                                                                    strategy: ZodLiteral<"content-digest">;
                                                                                },
                                                                                $strict,
                                                                            >,
                                                                            ZodObject<
                                                                                {
                                                                                    original_source: ZodString;
                                                                                    source_map_sha256: ZodString;
                                                                                    source_sha256: ZodNullable<ZodString>;
                                                                                    stability: ZodLiteral<"source-map-exact">;
                                                                                    strategy: ZodLiteral<"source-map-original">;
                                                                                },
                                                                                $strict,
                                                                            >,
                                                                            ZodObject<
                                                                                {
                                                                                    artifact_sha256: ZodString;
                                                                                    path: ZodString;
                                                                                    stability: ZodLiteral<"artifact-version">;
                                                                                    strategy: ZodLiteral<"canonical-path">;
                                                                                },
                                                                                $strict,
                                                                            >,
                                                                        ],
                                                                        "strategy",
                                                                    >;
                                                                    kind: ZodEnum<
                                                                        {
                                                                            artifact: "artifact";
                                                                            "asar-entry": "asar-entry";
                                                                            "browser-window": "browser-window";
                                                                            "context-bridge-api": "context-bridge-api";
                                                                            "electron-main": "electron-main";
                                                                            "electron-preload": "electron-preload";
                                                                            "electron-renderer": "electron-renderer";
                                                                            "electron-utility": "electron-utility";
                                                                            endpoint: "endpoint";
                                                                            frame: "frame";
                                                                            installer: "installer";
                                                                            "ipc-channel": "ipc-channel";
                                                                            "ipc-handler": "ipc-handler";
                                                                            "javascript-asset": "javascript-asset";
                                                                            "javascript-chunk": "javascript-chunk";
                                                                            "javascript-module": "javascript-module";
                                                                            "native-addon": "native-addon";
                                                                            "native-export": "native-export";
                                                                            package: "package";
                                                                            "runtime-script-instance": "runtime-script-instance";
                                                                            "service-worker": "service-worker";
                                                                            "source-map": "source-map";
                                                                            "source-module": "source-module";
                                                                            storage: "storage";
                                                                            target: "target";
                                                                            unknown: "unknown";
                                                                            worker: "worker";
                                                                        },
                                                                    >;
                                                                    node_id: ZodString;
                                                                    observations: ZodArray<
                                                                        ZodObject<
                                                                            {
                                                                                evidence: ZodObject<
                                                                                    {
                                                                                        artifact: ZodDiscriminatedUnion<(...), (...)>;
                                                                                        authority: ZodEnum<(...)>;
                                                                                        confidence: ZodEnum<(...)>;
                                                                                        coverage: ZodObject<(...), (...)>;
                                                                                        evidence_ids: ZodArray<(...)>;
                                                                                        extractor: ZodObject<(...), (...)>;
                                                                                        limitations: ZodArray<(...)>;
                                                                                        location: ZodDiscriminatedUnion<(...), (...)>;
                                                                                        state: ZodEnum<(...)>;
                                                                                    },
                                                                                    $strict,
                                                                                >;
                                                                                identifier_strategy: ZodObject<
                                                                                    { stability: ZodLiteral<(...)>; strategy: ZodLiteral<(...)> },
                                                                                    $strict,
                                                                                >;
                                                                                label: ZodNullable<ZodString>;
                                                                                observation_id: ZodString;
                                                                                properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                                            },
                                                                            $strict,
                                                                        >,
                                                                    >;
                                                                },
                                                                $strict,
                                                            >,
                                                        >;
                                                        root_node_ids: ZodArray<ZodString>;
                                                        schema: ZodLiteral<"JavaScriptApplicationGraph">;
                                                        schema_version: ZodLiteral<1>;
                                                    },
                                                    $strict,
                                                > = ...
                                                +

                                                Graph content before its top-level semantic identifier is derived.

                                                +
                                                +
                                                + +
                                                +
                                                diff --git a/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphRecordSchema.html b/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphRecordSchema.html new file mode 100644 index 000000000..d8049fc0d --- /dev/null +++ b/docs/api/variables/domain_javascriptApplicationGraphSchemas.javascriptApplicationGraphRecordSchema.html @@ -0,0 +1,35 @@ +javascriptApplicationGraphRecordSchema | rea-agents - v1.6.0
                                                +
                                                rea-agents - v1.6.0 + +
                                                  +
                                                  +
                                                  Preparing search index...
                                                  +
                                                  +
                                                  +
                                                  + +

                                                  Variable javascriptApplicationGraphRecordSchemaConst

                                                  +
                                                  javascriptApplicationGraphRecordSchema: ZodObject<
                                                      {
                                                          coverage: ZodObject<
                                                              {
                                                                  limits: ZodArray<
                                                                      ZodObject<
                                                                          {
                                                                              name: ZodString;
                                                                              unit: ZodEnum<
                                                                                  {
                                                                                      bytes: "bytes";
                                                                                      characters: "characters";
                                                                                      depth: "depth";
                                                                                      instructions: "instructions";
                                                                                      items: "items";
                                                                                      milliseconds: "milliseconds";
                                                                                      other: "other";
                                                                                  },
                                                                              >;
                                                                              value: ZodNumber;
                                                                          },
                                                                          $strict,
                                                                      >,
                                                                  >;
                                                                  omitted_count: ZodNullable<ZodNumber>;
                                                                  status: ZodEnum<
                                                                      {
                                                                          complete: "complete";
                                                                          partial: "partial";
                                                                          unavailable: "unavailable";
                                                                          unknown: "unknown";
                                                                      },
                                                                  >;
                                                                  truncated: ZodBoolean;
                                                              },
                                                              $strict,
                                                          >;
                                                          edges: ZodArray<
                                                              ZodObject<
                                                                  {
                                                                      edge_id: ZodString;
                                                                      evidence: ZodObject<
                                                                          {
                                                                              artifact: ZodDiscriminatedUnion<
                                                                                  [
                                                                                      ZodObject<
                                                                                          { artifact_id: ...; available: ...; sha256: ... },
                                                                                          $strict,
                                                                                      >,
                                                                                      ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                                  ],
                                                                                  "available",
                                                                              >;
                                                                              authority: ZodEnum<
                                                                                  {
                                                                                      "artifact-bytes": "artifact-bytes";
                                                                                      "ast-static-analysis": "ast-static-analysis";
                                                                                      "controlled-replay": "controlled-replay";
                                                                                      "historical-reference": "historical-reference";
                                                                                      "native-analysis-provider": "native-analysis-provider";
                                                                                      "passive-cdp-runtime": "passive-cdp-runtime";
                                                                                      "static-relationship-inference": "static-relationship-inference";
                                                                                      unknown: "unknown";
                                                                                      "user-assertion": "user-assertion";
                                                                                  },
                                                                              >;
                                                                              confidence: ZodEnum<
                                                                                  {
                                                                                      exact: "exact";
                                                                                      high: "high";
                                                                                      low: "low";
                                                                                      medium: "medium";
                                                                                      unknown: "unknown";
                                                                                  },
                                                                              >;
                                                                              coverage: ZodObject<
                                                                                  {
                                                                                      limits: ZodArray<ZodObject<(...), (...)>>;
                                                                                      omitted_count: ZodNullable<ZodNumber>;
                                                                                      status: ZodEnum<
                                                                                          { complete: ...; partial: ...; unavailable: ...; unknown: ... },
                                                                                      >;
                                                                                      truncated: ZodBoolean;
                                                                                  },
                                                                                  $strict,
                                                                              >;
                                                                              evidence_ids: ZodArray<ZodString>;
                                                                              extractor: ZodObject<
                                                                                  {
                                                                                      executable_sha256: ZodNullable<ZodString>;
                                                                                      name: ZodString;
                                                                                      operation: ZodString;
                                                                                      version: ZodString;
                                                                                  },
                                                                                  $strict,
                                                                              >;
                                                                              limitations: ZodArray<ZodString>;
                                                                              location: ZodDiscriminatedUnion<
                                                                                  [
                                                                                      ZodObject<{ available: ...; value: ... }, $strict>,
                                                                                      ZodObject<{ available: ...; detail: ...; reason: ... }, $strict>,
                                                                                  ],
                                                                                  "available",
                                                                              >;
                                                                              state: ZodEnum<
                                                                                  {
                                                                                      inferred: "inferred";
                                                                                      observed: "observed";
                                                                                      unavailable: "unavailable";
                                                                                      unknown: "unknown";
                                                                                  },
                                                                              >;
                                                                          },
                                                                          $strict,
                                                                      >;
                                                                      identifier_strategy: ZodObject<
                                                                          {
                                                                              stability: ZodLiteral<"relationship-exact">;
                                                                              strategy: ZodLiteral<"semantic-content-sha256">;
                                                                          },
                                                                          $strict,
                                                                      >;
                                                                      properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                                      relation: ZodEnum<
                                                                          {
                                                                              calls: "calls";
                                                                              changed_from: "changed_from";
                                                                              contains: "contains";
                                                                              exposes: "exposes";
                                                                              handles: "handles";
                                                                              imports: "imports";
                                                                              invokes: "invokes";
                                                                              loads: "loads";
                                                                              maps_to: "maps_to";
                                                                              observed_as: "observed_as";
                                                                              persists_to: "persists_to";
                                                                              sends: "sends";
                                                                          },
                                                                      >;
                                                                      source_node_id: ZodString;
                                                                      target_node_id: ZodString;
                                                                  },
                                                                  $strict,
                                                              >,
                                                          >;
                                                          graph_id: ZodString;
                                                          limitations: ZodArray<ZodString>;
                                                          nodes: ZodArray<
                                                              ZodObject<
                                                                  {
                                                                      identity: ZodDiscriminatedUnion<
                                                                          [
                                                                              ZodObject<
                                                                                  {
                                                                                      sha256: ZodString;
                                                                                      stability: ZodLiteral<"global-exact">;
                                                                                      strategy: ZodLiteral<"content-digest">;
                                                                                  },
                                                                                  $strict,
                                                                              >,
                                                                              ZodObject<
                                                                                  {
                                                                                      original_source: ZodString;
                                                                                      source_map_sha256: ZodString;
                                                                                      source_sha256: ZodNullable<ZodString>;
                                                                                      stability: ZodLiteral<"source-map-exact">;
                                                                                      strategy: ZodLiteral<"source-map-original">;
                                                                                  },
                                                                                  $strict,
                                                                              >,
                                                                              ZodObject<
                                                                                  {
                                                                                      artifact_sha256: ZodString;
                                                                                      path: ZodString;
                                                                                      stability: ZodLiteral<"artifact-version">;
                                                                                      strategy: ZodLiteral<"canonical-path">;
                                                                                  },
                                                                                  $strict,
                                                                              >,
                                                                          ],
                                                                          "strategy",
                                                                      >;
                                                                      kind: ZodEnum<
                                                                          {
                                                                              artifact: "artifact";
                                                                              "asar-entry": "asar-entry";
                                                                              "browser-window": "browser-window";
                                                                              "context-bridge-api": "context-bridge-api";
                                                                              "electron-main": "electron-main";
                                                                              "electron-preload": "electron-preload";
                                                                              "electron-renderer": "electron-renderer";
                                                                              "electron-utility": "electron-utility";
                                                                              endpoint: "endpoint";
                                                                              frame: "frame";
                                                                              installer: "installer";
                                                                              "ipc-channel": "ipc-channel";
                                                                              "ipc-handler": "ipc-handler";
                                                                              "javascript-asset": "javascript-asset";
                                                                              "javascript-chunk": "javascript-chunk";
                                                                              "javascript-module": "javascript-module";
                                                                              "native-addon": "native-addon";
                                                                              "native-export": "native-export";
                                                                              package: "package";
                                                                              "runtime-script-instance": "runtime-script-instance";
                                                                              "service-worker": "service-worker";
                                                                              "source-map": "source-map";
                                                                              "source-module": "source-module";
                                                                              storage: "storage";
                                                                              target: "target";
                                                                              unknown: "unknown";
                                                                              worker: "worker";
                                                                          },
                                                                      >;
                                                                      node_id: ZodString;
                                                                      observations: ZodArray<
                                                                          ZodObject<
                                                                              {
                                                                                  evidence: ZodObject<
                                                                                      {
                                                                                          artifact: ZodDiscriminatedUnion<(...), (...)>;
                                                                                          authority: ZodEnum<(...)>;
                                                                                          confidence: ZodEnum<(...)>;
                                                                                          coverage: ZodObject<(...), (...)>;
                                                                                          evidence_ids: ZodArray<(...)>;
                                                                                          extractor: ZodObject<(...), (...)>;
                                                                                          limitations: ZodArray<(...)>;
                                                                                          location: ZodDiscriminatedUnion<(...), (...)>;
                                                                                          state: ZodEnum<(...)>;
                                                                                      },
                                                                                      $strict,
                                                                                  >;
                                                                                  identifier_strategy: ZodObject<
                                                                                      { stability: ZodLiteral<(...)>; strategy: ZodLiteral<(...)> },
                                                                                      $strict,
                                                                                  >;
                                                                                  label: ZodNullable<ZodString>;
                                                                                  observation_id: ZodString;
                                                                                  properties: ZodRecord<ZodString, ZodJSONSchema>;
                                                                              },
                                                                              $strict,
                                                                          >,
                                                                      >;
                                                                  },
                                                                  $strict,
                                                              >,
                                                          >;
                                                          root_node_ids: ZodArray<ZodString>;
                                                          schema: ZodLiteral<"JavaScriptApplicationGraph">;
                                                          schema_version: ZodLiteral<1>;
                                                      },
                                                      $strict,
                                                  > = ...
                                                  +

                                                  Strict stored shape for JavaScript Application Graph v1.

                                                  +
                                                  +
                                                  + +
                                                  +
                                                  diff --git a/docs/architecture.mermaid b/docs/architecture.mermaid index ee14f3b4f..a6b5fce6e 100644 --- a/docs/architecture.mermaid +++ b/docs/architecture.mermaid @@ -35,7 +35,7 @@ graph TD end subgraph "Domain Layer" - DOMAIN["src/domain/
                                                  Pure side-effect-free modules
                                                  evidence, comparisons, workspace commitments"] + DOMAIN["src/domain/
                                                  Pure side-effect-free modules
                                                  evidence, comparisons, application graphs, workspace commitments"] end subgraph "Configuration" diff --git a/docs/javascript-application-graph.md b/docs/javascript-application-graph.md new file mode 100644 index 000000000..17c4dfd27 --- /dev/null +++ b/docs/javascript-application-graph.md @@ -0,0 +1,179 @@ +# JavaScript Application Graph + +JavaScript Application Graph v1 is REA's provider-neutral domain model for +connecting shipped application bytes, JavaScript structure, Electron process +boundaries, passive browser observations, and native add-ons. It is a durable, +canonical data contract; it is not an extractor or a new CLI/MCP tool. + +The implementation is pure and side-effect free. It validates caller-supplied +facts, derives semantic identifiers, enforces graph integrity, and serializes +verified graphs as RFC 8785 canonical JSON. It performs no filesystem or CDP +I/O, does not evaluate JavaScript, and has no application-specific node kinds. + +## Layer boundary + +The graph complements existing REA models instead of replacing them: + +| Existing model | Responsibility | Application Graph use | +| ---------------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| Artifact graph | Content-addressed containers, byte occurrences, and extraction boundaries | Supplies artifact identities and exact paths | +| Web bundle analysis | Bounded AST, chunk, route, endpoint, and source-map observations | Supplies static nodes and relationships | +| Browser/Electron observation | Authorized passive CDP metadata and runtime captures | Supplies runtime instances and `observed_as` relationships | +| Native analysis | Provider-qualified binary functions, symbols, and references | Supplies native add-on/export observations | +| JavaScript Application Graph | Cross-layer entity identity, evidence-bearing relationships, and canonical commitments | Preserves the combined application model | + +An application-layer extractor may project results from those models into this +graph later. The domain module itself never reaches outward to obtain them. + +## Versioned record + +A stored graph has this top-level shape: + +```text +schema: "JavaScriptApplicationGraph" +schema_version: 1 +graph_id: jag_ +root_node_ids: jag_node_[] +nodes: application entities with one or more observations +edges: directed evidence-bearing relationships +coverage: complete, partial, unknown, or unavailable +limitations: explicit graph-wide constraints +``` + +Parsing rejects unknown fields, unsupported versions, non-canonical ordering, +duplicate IDs, stale semantic commitments, missing roots, dangling endpoints, +self-edges, and `changed_from` edges between unlike node kinds. Constructors +normalize set-like arrays before deriving their IDs. + +## Entities and relationships + +The v1 node vocabulary covers: + +- package, installer, and artifact; +- ASAR entry; +- Electron main, preload, renderer, and utility process code; +- JavaScript asset, chunk, and module; +- source map and original source module; +- BrowserWindow, frame, and target; +- contextBridge API, IPC channel, and IPC handler; +- worker and service worker; +- endpoint and storage; +- native add-on and native export; +- runtime script instance; +- an explicit `unknown` kind when classification is not justified. + +The directed relation vocabulary is `contains`, `loads`, `imports`, `maps_to`, +`exposes`, `sends`, `invokes`, `handles`, `calls`, `persists_to`, `observed_as`, +and `changed_from`. Provider names are deliberately absent from both +vocabularies. + +For example, a source-owned synthetic fixture proves this path without using a +third-party application: + +```text +package contains app.asar +app.asar contains preload +preload exposes contextBridge API +contextBridge API invokes IPC channel +IPC channel handles main-process handler +handler loads native add-on and calls native export +native add-on contains native export +preload observed_as runtime script instance +``` + +The `invokes` and `calls` facts in that fixture remain static inferences. The +runtime correspondence is a separately identified passive observation. + +## Evidence and authority + +Every observation and edge carries all of the following: + +- an authority, such as artifact bytes, AST analysis, static relationship + inference, passive CDP runtime, controlled replay, native analysis, + historical reference, or user assertion; +- an epistemic state: `observed`, `inferred`, `unknown`, or `unavailable`; +- confidence independently bounded as exact, high, medium, low, or unknown; +- an explicit content-addressed artifact reference or an unavailable reason; +- an explicit artifact, source, URL, runtime, native, or package-export + location, or an unavailable reason; +- extractor name, version, operation, and optional executable digest; +- coverage status, truncation, omitted count, and named limits; +- limitations and links to existing Evidence v2 records; +- a content-derived identifier and its declared stability strategy. + +Authority and epistemic state are separate fields. An AST observation does not +become a runtime fact, and a passive runtime fact does not prove which static +module produced it. In particular: + +- `static-relationship-inference` can only produce `inferred` facts; +- unknown or unavailable facts require unknown confidence and a limitation; +- inferred facts require an explicit limitation; +- exact confidence is reserved for observations; +- all observations require an actionable location, and artifact-backed facts + require a digest; +- static/native authorities cannot claim runtime locations; +- truncated coverage must be partial, name the limiting bound, and not claim + zero omissions; +- complete coverage cannot be truncated or omit items. + +Unavailable values are represented explicitly rather than as missing fields, +so absence of evidence cannot silently become evidence of absence. + +## Entity identity + +Nodes separate stable entity identity from individual observations. Changing a +label, extractor, or evidence record changes the observation ID without +necessarily changing the node ID. + +| Strategy | Stability scope | Intended use | +| ------------------------- | -------------------------------- | ----------------------------------------------------------------- | +| `content-digest` | Globally exact bytes | Artifacts and byte-identical assets | +| `source-map-original` | One source-map commitment | Recovered original source modules | +| `canonical-path` | One artifact version | ASAR entries and assets at exact normalized paths | +| `artifact-local-key` | One artifact version | IPC channels, handlers, exports, and other named entities | +| `structural-fingerprint` | Explicit cross-version inference | Modules whose relationship is hypothesized from bounded structure | +| `runtime-instance` | One capture only | Targets, frames, and runtime scripts | +| `observation-fingerprint` | One observation scope | Facts with no stronger justified identity | + +Every strategy states its stability scope. Runtime identities commit the +capture digest and runtime key; canonical-path and artifact-local identities +commit the containing artifact digest. Structural fingerprints require an +inferred supporting observation and never claim exact cross-version identity. +Content-digest and source-map identities require an observation of the same +artifact digest. + +Observation IDs use `semantic-content-sha256` with `observation-exact` +stability. Edge IDs use the same derivation with `relationship-exact` +stability. Node, observation, edge, and graph IDs are recomputed during parsing, +so callers cannot preserve a stale ID after changing semantic content. + +## Bounds + +The v1 boundary admits at most 1,000 roots, 100,000 nodes, 200,000 edges, and 64 +observations per node. Each properties object is valid bounded JSON with at most +64 keys, depth 6, 512 structural nodes, and 4,096 characters per string. Arrays +of evidence links, limits, and limitations have independent caps. + +These are admission limits, not completeness claims. When an extractor reaches +a limit, it must record partial coverage and the exact named limit. It must not +return a bounded prefix labeled complete. + +## Domain API + +The public domain functions are: + +- `createJavaScriptApplicationNode` to normalize an entity and derive node and + observation IDs; +- `createJavaScriptApplicationEdge` to normalize a relationship and derive its + ID; +- `createJavaScriptApplicationGraph` to sort complete graph content and derive + its graph ID; +- `parseJavaScriptApplicationGraph` to verify a stored graph and every + commitment; +- `serializeJavaScriptApplicationGraph` for canonical JSON; +- `computeJavaScriptApplicationGraphSha256` for a byte-stable verified graph + digest. + +Schema evolution is explicit. A future incompatible shape receives a new +`schema_version`; v1 parsing fails with an unsupported-version diagnostic rather +than guessing how to reinterpret it. diff --git a/docs/product-catalog.json b/docs/product-catalog.json index 3f8731857..a8cdabfb5 100644 --- a/docs/product-catalog.json +++ b/docs/product-catalog.json @@ -332,6 +332,10 @@ "id": "investigation_workspace", "version": 1 }, + { + "id": "javascript_application_graph", + "version": 1 + }, { "id": "process_capture", "version": 4 diff --git a/scripts/lib/product-catalog.mjs b/scripts/lib/product-catalog.mjs index 1101baeb7..b3713e362 100644 --- a/scripts/lib/product-catalog.mjs +++ b/scripts/lib/product-catalog.mjs @@ -119,6 +119,7 @@ const SOURCE_PATHS = { webCaptureDiff: "dist/domain/webCaptureDiff.js", webMcpDiscovery: "dist/domain/webMcpDiscovery.js", webScreenshot: "dist/domain/webScreenshot.js", + javascriptApplicationGraph: "dist/domain/javascriptApplicationGraph.js", reconstructionVerification: "dist/domain/reconstructionVerificationSchemas.js", residualUnknown: "dist/domain/residualUnknown.js", @@ -261,6 +262,11 @@ const durableSchemaDefinitions = (sources) => [ sources.investigationWorkspace.investigationWorkspaceSchema, ["workspace_version"], ], + [ + "javascript_application_graph", + sources.javascriptApplicationGraph.javascriptApplicationGraphSchema, + ["schema_version"], + ], [ "process_capture", sources.processCapture.processCaptureSchema, diff --git a/src/domain/javascriptApplicationEvidenceSchemas.ts b/src/domain/javascriptApplicationEvidenceSchemas.ts new file mode 100644 index 000000000..919a2e8e3 --- /dev/null +++ b/src/domain/javascriptApplicationEvidenceSchemas.ts @@ -0,0 +1,435 @@ +import { z } from "zod"; + +const digestSchema = z.string().regex(/^[a-f0-9]{64}$/u); +const boundedTextSchema = z.string().min(1).max(4_096); +const boundedKeySchema = z.string().min(1).max(512); +const unsafePathSegments = new Set(["", ".", ".."]); +const isSafeRelativePath = (path: string): boolean => { + if (path.startsWith("/") || path.includes("\\")) return false; + return path.split("/").every((part) => !unsafePathSegments.has(part)); +}; +const relativePathSchema = z + .string() + .min(1) + .max(4_096) + .refine( + isSafeRelativePath, + "Expected a normalized relative POSIX path without traversal", + ); + +/** Authority that produced one node observation or relationship. */ +const applicationEvidenceAuthoritySchema = z.enum([ + "artifact-bytes", + "ast-static-analysis", + "static-relationship-inference", + "passive-cdp-runtime", + "controlled-replay", + "native-analysis-provider", + "historical-reference", + "user-assertion", + "unknown", +]); + +/** Epistemic state kept separate from the evidence source. */ +const applicationFactStateSchema = z.enum([ + "observed", + "inferred", + "unknown", + "unavailable", +]); + +/** Confidence assigned without promoting inference into observation. */ +const applicationConfidenceSchema = z.enum([ + "exact", + "high", + "medium", + "low", + "unknown", +]); + +/** Why an artifact or source location was not available to an extractor. */ +const applicationUnavailableReasonSchema = z.enum([ + "not-applicable", + "not-observed", + "not-approved", + "truncated", + "provider-unavailable", + "unresolved", + "unknown", +]); + +const unavailableFactSchema = z.strictObject({ + available: z.literal(false), + reason: applicationUnavailableReasonSchema, + detail: boundedTextSchema, +}); + +const availableArtifactSchema = z + .strictObject({ + available: z.literal(true), + artifact_id: z.string().regex(/^art_[a-f0-9]{64}$/u), + sha256: digestSchema, + }) + .superRefine((artifact, context) => { + if (artifact.artifact_id !== `art_${artifact.sha256}`) + context.addIssue({ + code: "custom", + path: ["artifact_id"], + message: "Artifact identifier must commit the same SHA-256 digest", + }); + }); + +/** Explicit content-addressed artifact availability for one graph fact. */ +const applicationArtifactReferenceSchema = z.discriminatedUnion("available", [ + availableArtifactSchema, + unavailableFactSchema, +]); + +const sourceRangeSchema = z + .strictObject({ + kind: z.literal("source-range"), + source: boundedTextSchema, + start: z.strictObject({ + line: z.number().int().min(1), + column: z.number().int().min(0), + }), + end: z.strictObject({ + line: z.number().int().min(1), + column: z.number().int().min(0), + }), + }) + .superRefine((location, context) => { + if ( + location.end.line < location.start.line || + (location.end.line === location.start.line && + location.end.column < location.start.column) + ) + context.addIssue({ + code: "custom", + path: ["end"], + message: "Source range end must not precede its start", + }); + }); + +const fileOffsetRangeSchema = z + .strictObject({ + kind: z.literal("file-offset-range"), + start: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER), + end: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER), + }) + .superRefine((location, context) => { + if (location.end < location.start) + context.addIssue({ + code: "custom", + path: ["end"], + message: "File offset range end must not precede its start", + }); + }); + +/** A deterministic artifact, source, runtime, package, or native location. */ +const applicationLocationSchema = z.discriminatedUnion("kind", [ + z.strictObject({ + kind: z.literal("artifact-path"), + path: relativePathSchema, + }), + sourceRangeSchema, + fileOffsetRangeSchema, + z.strictObject({ + kind: z.literal("url"), + url: z.string().min(1).max(16_384), + }), + z.strictObject({ + kind: z.literal("runtime"), + capture_sha256: digestSchema, + target_key: boundedKeySchema, + frame_key: boundedKeySchema.nullable(), + script_key: boundedKeySchema.nullable(), + }), + z.strictObject({ + kind: z.literal("native-address"), + address: boundedKeySchema, + symbol: boundedTextSchema.nullable(), + }), + z.strictObject({ + kind: z.literal("package-export"), + package_name: boundedKeySchema, + export_path: boundedTextSchema, + }), +]); + +/** Explicit source-location availability for one graph fact. */ +const applicationLocationReferenceSchema = z.discriminatedUnion("available", [ + z.strictObject({ + available: z.literal(true), + value: applicationLocationSchema, + }), + unavailableFactSchema, +]); + +/** Versioned extractor coordinates attached to every graph fact. */ +const applicationExtractorSchema = z.strictObject({ + name: z.string().min(1).max(128), + version: z.string().min(1).max(128), + operation: z.string().min(1).max(256), + executable_sha256: digestSchema.nullable(), +}); + +const applicationLimitSchema = z.strictObject({ + name: z.string().min(1).max(128), + value: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER), + unit: z.enum([ + "items", + "bytes", + "milliseconds", + "depth", + "characters", + "instructions", + "other", + ]), +}); + +/** Bounded collection coverage without treating omission as absence. */ +export const applicationCoverageSchema = z + .strictObject({ + status: z.enum(["complete", "partial", "unknown", "unavailable"]), + truncated: z.boolean(), + omitted_count: z + .number() + .int() + .min(0) + .max(Number.MAX_SAFE_INTEGER) + .nullable(), + limits: z.array(applicationLimitSchema).max(32), + }) + .superRefine((coverage, context) => { + if ( + coverage.status === "complete" && + (coverage.truncated || coverage.omitted_count !== 0) + ) + context.addIssue({ + code: "custom", + message: "Complete coverage cannot be truncated or omit items", + }); + if ( + coverage.truncated && + (coverage.status !== "partial" || + coverage.limits.length === 0 || + coverage.omitted_count === 0) + ) + context.addIssue({ + code: "custom", + message: + "Truncated coverage must be partial, name a limit, and not claim zero omissions", + }); + if ( + ["unknown", "unavailable"].includes(coverage.status) && + (coverage.truncated || coverage.omitted_count !== null) + ) + context.addIssue({ + code: "custom", + message: + "Unknown or unavailable coverage cannot invent truncation counts", + }); + }); + +const applicationGraphEvidenceBaseSchema = z.strictObject({ + authority: applicationEvidenceAuthoritySchema, + state: applicationFactStateSchema, + confidence: applicationConfidenceSchema, + artifact: applicationArtifactReferenceSchema, + location: applicationLocationReferenceSchema, + extractor: applicationExtractorSchema, + coverage: applicationCoverageSchema, + limitations: z.array(boundedTextSchema).max(100), + evidence_ids: z.array(z.string().regex(/^ev_[a-f0-9]{64}$/u)).max(100), +}); + +type EvidenceValue = z.infer; + +const checkAuthorityState = ( + evidence: EvidenceValue, + context: z.RefinementCtx, +): void => { + if ( + evidence.authority === "static-relationship-inference" && + evidence.state !== "inferred" + ) + context.addIssue({ + code: "custom", + path: ["state"], + message: "Static relationship authority must remain inferred", + }); + if ( + evidence.authority === "unknown" && + !["unknown", "unavailable"].includes(evidence.state) + ) + context.addIssue({ + code: "custom", + path: ["state"], + message: "Unknown authority cannot claim an observed fact", + }); +}; + +const checkStateConfidence = ( + evidence: EvidenceValue, + context: z.RefinementCtx, +): void => { + if ( + ["unknown", "unavailable"].includes(evidence.state) && + (evidence.confidence !== "unknown" || evidence.limitations.length === 0) + ) + context.addIssue({ + code: "custom", + message: + "Unknown and unavailable facts require unknown confidence and an explicit limitation", + }); + if (evidence.state === "observed" && evidence.confidence === "unknown") + context.addIssue({ + code: "custom", + path: ["confidence"], + message: "Observed facts require a bounded non-unknown confidence", + }); + if ( + evidence.state === "inferred" && + !["high", "medium", "low"].includes(evidence.confidence) + ) + context.addIssue({ + code: "custom", + path: ["confidence"], + message: "Inferred facts require high, medium, or low confidence", + }); + if (evidence.confidence === "exact" && evidence.state !== "observed") + context.addIssue({ + code: "custom", + path: ["confidence"], + message: "Exact confidence is reserved for observed facts", + }); +}; + +const checkTraceability = ( + evidence: EvidenceValue, + context: z.RefinementCtx, +): void => { + if (evidence.state === "observed" && !evidence.location.available) + context.addIssue({ + code: "custom", + path: ["location"], + message: "Observed facts require an actionable location", + }); + if (evidence.state === "inferred" && evidence.limitations.length === 0) + context.addIssue({ + code: "custom", + path: ["limitations"], + message: "Inferred facts require an explicit limitation", + }); + if ( + evidence.coverage.status !== "complete" && + evidence.limitations.length === 0 + ) + context.addIssue({ + code: "custom", + path: ["limitations"], + message: "Non-complete coverage requires an explicit limitation", + }); +}; + +const checkArtifactBacking = ( + evidence: EvidenceValue, + context: z.RefinementCtx, +): void => { + const artifactBacked = [ + "artifact-bytes", + "ast-static-analysis", + "controlled-replay", + "native-analysis-provider", + ].includes(evidence.authority); + if ( + artifactBacked && + evidence.state !== "unavailable" && + !evidence.artifact.available + ) + context.addIssue({ + code: "custom", + path: ["artifact"], + message: "Artifact-backed facts require a content digest", + }); +}; + +/** Provenance, authority, uncertainty, and bounds for one graph fact. */ +export const applicationGraphEvidenceSchema = + applicationGraphEvidenceBaseSchema.superRefine((evidence, context) => { + checkAuthorityState(evidence, context); + checkStateConfidence(evidence, context); + checkTraceability(evidence, context); + checkArtifactBacking(evidence, context); + }); + +/** Stable node identifier strategies and their explicit scope. */ +export const applicationNodeIdentitySchema = z.discriminatedUnion("strategy", [ + z.strictObject({ + strategy: z.literal("content-digest"), + stability: z.literal("global-exact"), + sha256: digestSchema, + }), + z.strictObject({ + strategy: z.literal("source-map-original"), + stability: z.literal("source-map-exact"), + source_map_sha256: digestSchema, + original_source: boundedTextSchema, + source_sha256: digestSchema.nullable(), + }), + z.strictObject({ + strategy: z.literal("canonical-path"), + stability: z.literal("artifact-version"), + artifact_sha256: digestSchema, + path: relativePathSchema, + }), + z.strictObject({ + strategy: z.literal("structural-fingerprint"), + stability: z.literal("cross-version-inference"), + algorithm: z.string().min(1).max(128), + fingerprint_sha256: digestSchema, + basis: z + .array( + z.enum([ + "syntax-tree", + "control-flow", + "imports", + "exports", + "literals", + "api-usage", + ]), + ) + .min(1) + .max(6), + }), + z.strictObject({ + strategy: z.literal("artifact-local-key"), + stability: z.literal("artifact-version"), + artifact_sha256: digestSchema, + namespace: boundedKeySchema, + key: boundedTextSchema, + }), + z.strictObject({ + strategy: z.literal("runtime-instance"), + stability: z.literal("capture-only"), + capture_sha256: digestSchema, + runtime_key: boundedTextSchema, + }), + z.strictObject({ + strategy: z.literal("observation-fingerprint"), + stability: z.literal("observation-only"), + observation_sha256: digestSchema, + scope: boundedTextSchema, + }), +]); + +/** Evidence coordinates attached to one graph observation or edge. */ +export type ApplicationGraphEvidence = z.infer< + typeof applicationGraphEvidenceSchema +>; + +/** Explicit stable identity strategy for one application entity. */ +export type ApplicationNodeIdentity = z.infer< + typeof applicationNodeIdentitySchema +>; diff --git a/src/domain/javascriptApplicationGraph.ts b/src/domain/javascriptApplicationGraph.ts new file mode 100644 index 000000000..6e37dc21c --- /dev/null +++ b/src/domain/javascriptApplicationGraph.ts @@ -0,0 +1,495 @@ +import { createHash } from "node:crypto"; + +import canonicalize from "canonicalize"; +import { z } from "zod"; + +import type { + ApplicationGraphEvidence, + ApplicationNodeIdentity, +} from "./javascriptApplicationEvidenceSchemas.js"; +import { + applicationEdgeInputSchema, + applicationEdgeSchema, + applicationNodeInputSchema, + applicationNodeObservationSchema, + applicationNodeSchema, + javascriptApplicationGraphInputSchema, + javascriptApplicationGraphRecordSchema, + type ApplicationEdge, + type ApplicationNode, + type JavaScriptApplicationGraphInput, +} from "./javascriptApplicationGraphSchemas.js"; + +const compareCodePoints = (left: string, right: string): number => + left < right ? -1 : left > right ? 1 : 0; + +const canonicalJson = (value: unknown): string => { + const encoded = canonicalize(value); + if (encoded === undefined) + throw new TypeError( + "JavaScript Application Graph could not canonicalize data", + ); + return encoded; +}; + +const digestCanonical = (value: unknown): string => + createHash("sha256").update(canonicalJson(value)).digest("hex"); + +const OBSERVATION_IDENTIFIER_STRATEGY = { + strategy: "semantic-content-sha256" as const, + stability: "observation-exact" as const, +}; +const EDGE_IDENTIFIER_STRATEGY = { + strategy: "semantic-content-sha256" as const, + stability: "relationship-exact" as const, +}; + +const uniqueSorted = ( + values: readonly Value[], +): Value[] => [...new Set(values)].sort(compareCodePoints); + +const limitKey = ( + limit: ApplicationGraphEvidence["coverage"]["limits"][number], +) => canonicalJson(limit); + +const normalizeLimits = ( + limits: ApplicationGraphEvidence["coverage"]["limits"], +): ApplicationGraphEvidence["coverage"]["limits"] => + [...new Map(limits.map((limit) => [limitKey(limit), limit])).values()].sort( + (left, right) => compareCodePoints(limitKey(left), limitKey(right)), + ); + +const normalizeEvidence = ( + evidence: ApplicationGraphEvidence, +): ApplicationGraphEvidence => ({ + ...evidence, + coverage: { + ...evidence.coverage, + limits: normalizeLimits(evidence.coverage.limits), + }, + limitations: uniqueSorted(evidence.limitations), + evidence_ids: uniqueSorted(evidence.evidence_ids), +}); + +const normalizeIdentity = ( + identity: ApplicationNodeIdentity, +): ApplicationNodeIdentity => + identity.strategy === "structural-fingerprint" + ? { ...identity, basis: uniqueSorted(identity.basis) } + : identity; + +const nodeSemantic = (node: Pick) => ({ + kind: node.kind, + identity: node.identity, +}); + +const nodeId = (node: Pick): string => + `jag_node_${digestCanonical(nodeSemantic(node))}`; + +const observationSemantic = ( + nodeIdentifier: string, + observation: Omit< + z.infer, + "observation_id" + >, +) => ({ node_id: nodeIdentifier, ...observation }); + +const observationId = ( + nodeIdentifier: string, + observation: Omit< + z.infer, + "observation_id" + >, +): string => + `jag_observation_${digestCanonical( + observationSemantic(nodeIdentifier, observation), + )}`; + +type EdgeSemantic = Omit; + +const edgeId = (edge: EdgeSemantic): string => + `jag_edge_${digestCanonical(edge)}`; + +const sortedUniqueIssue = ( + values: readonly string[], + path: PropertyKey[], + label: string, + context: z.RefinementCtx, +): void => { + for (let index = 1; index < values.length; index += 1) { + if (compareCodePoints(values[index - 1] ?? "", values[index] ?? "") < 0) + continue; + context.addIssue({ + code: "custom", + message: `${label} must be sorted and unique by Unicode code point`, + path: [...path, index], + }); + return; + } +}; + +const checkEvidenceNormalization = ( + evidence: ApplicationGraphEvidence, + path: PropertyKey[], + context: z.RefinementCtx, +): void => { + sortedUniqueIssue( + evidence.limitations, + [...path, "limitations"], + "Evidence limitations", + context, + ); + sortedUniqueIssue( + evidence.evidence_ids, + [...path, "evidence_ids"], + "Evidence identifiers", + context, + ); + sortedUniqueIssue( + evidence.coverage.limits.map(limitKey), + [...path, "coverage", "limits"], + "Evidence limits", + context, + ); + + const runtimeLocation = + evidence.location.available && evidence.location.value.kind === "runtime"; + const staticAuthority = [ + "artifact-bytes", + "ast-static-analysis", + "static-relationship-inference", + "native-analysis-provider", + ].includes(evidence.authority); + if (runtimeLocation && staticAuthority) + context.addIssue({ + code: "custom", + message: "Static and native authorities cannot claim a runtime location", + path: [...path, "location"], + }); +}; + +const observationMatchesIdentity = ( + node: ApplicationNode, + observation: ApplicationNode["observations"][number], +): boolean => { + const { identity } = node; + const { evidence } = observation; + if (identity.strategy === "content-digest") + return ( + evidence.state === "observed" && + evidence.artifact.available && + evidence.artifact.sha256 === identity.sha256 + ); + if (identity.strategy === "source-map-original") + return ( + evidence.state === "observed" && + evidence.artifact.available && + evidence.artifact.sha256 === identity.source_map_sha256 + ); + if (identity.strategy === "canonical-path") + return ( + evidence.artifact.available && + evidence.artifact.sha256 === identity.artifact_sha256 && + evidence.location.available && + evidence.location.value.kind === "artifact-path" && + evidence.location.value.path === identity.path + ); + if (identity.strategy === "artifact-local-key") + return ( + evidence.artifact.available && + evidence.artifact.sha256 === identity.artifact_sha256 + ); + if (identity.strategy === "runtime-instance") { + if ( + !["passive-cdp-runtime", "controlled-replay"].includes( + evidence.authority, + ) || + !evidence.location.available || + evidence.location.value.kind !== "runtime" + ) + return false; + const location = evidence.location.value; + return ( + location.capture_sha256 === identity.capture_sha256 && + [location.target_key, location.frame_key, location.script_key].includes( + identity.runtime_key, + ) + ); + } + if (identity.strategy === "structural-fingerprint") + return evidence.state === "inferred"; + return evidence.state === "observed"; +}; + +const checkNode = ( + node: ApplicationNode, + index: number, + context: z.RefinementCtx, +): void => { + if (node.node_id !== nodeId(node)) + context.addIssue({ + code: "custom", + message: "Node identifier does not match its kind and identity", + path: ["nodes", index, "node_id"], + }); + if ( + node.identity.strategy === "structural-fingerprint" && + canonicalJson(node.identity.basis) !== + canonicalJson(uniqueSorted(node.identity.basis)) + ) + context.addIssue({ + code: "custom", + message: "Structural fingerprint basis must be sorted and unique", + path: ["nodes", index, "identity", "basis"], + }); + + sortedUniqueIssue( + node.observations.map(({ observation_id: id }) => id), + ["nodes", index, "observations"], + "Node observations", + context, + ); + for (const [observationIndex, observation] of node.observations.entries()) { + const { observation_id: identifier, ...semantic } = observation; + if (identifier !== observationId(node.node_id, semantic)) + context.addIssue({ + code: "custom", + message: "Observation identifier does not match its semantic content", + path: [ + "nodes", + index, + "observations", + observationIndex, + "observation_id", + ], + }); + checkEvidenceNormalization( + observation.evidence, + ["nodes", index, "observations", observationIndex, "evidence"], + context, + ); + } + if ( + !node.observations.some((observation) => + observationMatchesIdentity(node, observation), + ) + ) + context.addIssue({ + code: "custom", + message: "Node identity is not supported by a compatible observation", + path: ["nodes", index, "identity"], + }); +}; + +type GraphRecord = z.infer; + +const checkGraphInvariants = ( + graph: GraphRecord, + context: z.RefinementCtx, +): void => { + sortedUniqueIssue( + graph.root_node_ids, + ["root_node_ids"], + "Root nodes", + context, + ); + sortedUniqueIssue( + graph.nodes.map(({ node_id: id }) => id), + ["nodes"], + "Nodes", + context, + ); + sortedUniqueIssue( + graph.edges.map(({ edge_id: id }) => id), + ["edges"], + "Edges", + context, + ); + sortedUniqueIssue( + graph.limitations, + ["limitations"], + "Graph limitations", + context, + ); + sortedUniqueIssue( + graph.coverage.limits.map(limitKey), + ["coverage", "limits"], + "Graph limits", + context, + ); + if (graph.coverage.status !== "complete" && graph.limitations.length === 0) + context.addIssue({ + code: "custom", + message: "Non-complete graph coverage requires an explicit limitation", + path: ["limitations"], + }); + + const nodesById = new Map(graph.nodes.map((node) => [node.node_id, node])); + for (const root of graph.root_node_ids) + if (!nodesById.has(root)) + context.addIssue({ + code: "custom", + message: "Root identifier must name a graph node", + path: ["root_node_ids"], + }); + for (const [index, node] of graph.nodes.entries()) + checkNode(node, index, context); + for (const [index, edge] of graph.edges.entries()) { + const { edge_id: identifier, ...semantic } = edge; + if (identifier !== edgeId(semantic)) + context.addIssue({ + code: "custom", + message: "Edge identifier does not match its semantic content", + path: ["edges", index, "edge_id"], + }); + if ( + !nodesById.has(edge.source_node_id) || + !nodesById.has(edge.target_node_id) + ) + context.addIssue({ + code: "custom", + message: "Edge endpoints must name graph nodes", + path: ["edges", index], + }); + if (edge.source_node_id === edge.target_node_id) + context.addIssue({ + code: "custom", + message: "Application graph edges cannot be self-referential", + path: ["edges", index], + }); + if ( + edge.relation === "changed_from" && + nodesById.get(edge.source_node_id)?.kind !== + nodesById.get(edge.target_node_id)?.kind + ) + context.addIssue({ + code: "custom", + message: "changed_from endpoints must have the same node kind", + path: ["edges", index, "relation"], + }); + checkEvidenceNormalization( + edge.evidence, + ["edges", index, "evidence"], + context, + ); + } + + const { graph_id: identifier, ...semantic } = graph; + if (identifier !== `jag_${digestCanonical(semantic)}`) + context.addIssue({ + code: "custom", + message: "Graph identifier does not match its semantic content", + path: ["graph_id"], + }); +}; + +/** Strict versioned JavaScript Application Graph with verified commitments. */ +export const javascriptApplicationGraphSchema = + javascriptApplicationGraphRecordSchema.superRefine(checkGraphInvariants); + +/** Fully validated JavaScript Application Graph v1. */ +export type JavaScriptApplicationGraph = z.infer< + typeof javascriptApplicationGraphSchema +>; + +/** Build one normalized application entity and derive all semantic IDs. */ +export const createJavaScriptApplicationNode = ( + input: unknown, +): ApplicationNode => { + const parsed = applicationNodeInputSchema.parse(input); + const identity = normalizeIdentity(parsed.identity); + const identifier = nodeId({ kind: parsed.kind, identity }); + const observations = parsed.observations + .map((observation) => { + const semantic = { + ...observation, + evidence: normalizeEvidence(observation.evidence), + identifier_strategy: OBSERVATION_IDENTIFIER_STRATEGY, + }; + return applicationNodeObservationSchema.parse({ + ...semantic, + observation_id: observationId(identifier, semantic), + }); + }) + .sort((left, right) => + compareCodePoints(left.observation_id, right.observation_id), + ); + return applicationNodeSchema.parse({ + node_id: identifier, + kind: parsed.kind, + identity, + observations, + }); +}; + +/** Build one normalized directed relationship and derive its semantic ID. */ +export const createJavaScriptApplicationEdge = ( + input: unknown, +): ApplicationEdge => { + const parsed = applicationEdgeInputSchema.parse(input); + const semantic = { + ...parsed, + evidence: normalizeEvidence(parsed.evidence), + identifier_strategy: EDGE_IDENTIFIER_STRATEGY, + }; + return applicationEdgeSchema.parse({ + ...semantic, + edge_id: edgeId(semantic), + }); +}; + +/** Normalize a complete graph and derive its top-level semantic ID. */ +export const createJavaScriptApplicationGraph = ( + input: unknown, +): JavaScriptApplicationGraph => { + const parsed = javascriptApplicationGraphInputSchema.parse(input); + const semantic: JavaScriptApplicationGraphInput = { + ...parsed, + root_node_ids: uniqueSorted(parsed.root_node_ids), + nodes: [...parsed.nodes].sort((left, right) => + compareCodePoints(left.node_id, right.node_id), + ), + edges: [...parsed.edges].sort((left, right) => + compareCodePoints(left.edge_id, right.edge_id), + ), + coverage: { + ...parsed.coverage, + limits: normalizeLimits(parsed.coverage.limits), + }, + limitations: uniqueSorted(parsed.limitations), + }; + return javascriptApplicationGraphSchema.parse({ + ...semantic, + graph_id: `jag_${digestCanonical(semantic)}`, + }); +}; + +/** Parse a stored graph, rejecting unsupported versions and stale IDs. */ +export const parseJavaScriptApplicationGraph = ( + input: unknown, +): JavaScriptApplicationGraph => { + const envelope = z + .object({ schema: z.string(), schema_version: z.number() }) + .passthrough() + .safeParse(input); + if ( + envelope.success && + envelope.data.schema === "JavaScriptApplicationGraph" && + envelope.data.schema_version !== 1 + ) + throw new TypeError( + `Unsupported JavaScript Application Graph schema version: ${String(envelope.data.schema_version)}`, + ); + return javascriptApplicationGraphSchema.parse(input); +}; + +/** Compute the byte-stable SHA-256 commitment of a verified graph. */ +export const computeJavaScriptApplicationGraphSha256 = ( + input: unknown, +): string => digestCanonical(parseJavaScriptApplicationGraph(input)); + +/** Serialize a verified graph as RFC 8785 canonical JSON. */ +export const serializeJavaScriptApplicationGraph = (input: unknown): string => + canonicalJson(parseJavaScriptApplicationGraph(input)); + +export type { ApplicationEdge, ApplicationGraphEvidence, ApplicationNode }; diff --git a/src/domain/javascriptApplicationGraphSchemas.ts b/src/domain/javascriptApplicationGraphSchemas.ts new file mode 100644 index 000000000..e10f4df61 --- /dev/null +++ b/src/domain/javascriptApplicationGraphSchemas.ts @@ -0,0 +1,164 @@ +import { z } from "zod"; + +import { + applicationCoverageSchema, + applicationGraphEvidenceSchema, + applicationNodeIdentitySchema, +} from "./javascriptApplicationEvidenceSchemas.js"; +import { isJsonWithinLimits } from "./jsonLimits.js"; +import { jsonValueSchema } from "./jsonValue.js"; + +const boundedTextSchema = z.string().min(1).max(4_096); + +/** Node kinds admitted by JavaScript Application Graph v1. */ +export const JAVASCRIPT_APPLICATION_NODE_KINDS = [ + "package", + "installer", + "artifact", + "asar-entry", + "electron-main", + "electron-preload", + "electron-renderer", + "electron-utility", + "javascript-asset", + "javascript-chunk", + "javascript-module", + "source-map", + "source-module", + "browser-window", + "frame", + "target", + "context-bridge-api", + "ipc-channel", + "ipc-handler", + "worker", + "service-worker", + "endpoint", + "storage", + "native-addon", + "native-export", + "runtime-script-instance", + "unknown", +] as const; + +/** Provider-neutral application entity categories. */ +const applicationNodeKindSchema = z.enum(JAVASCRIPT_APPLICATION_NODE_KINDS); + +/** Directed relations admitted by JavaScript Application Graph v1. */ +export const JAVASCRIPT_APPLICATION_RELATIONS = [ + "contains", + "loads", + "imports", + "maps_to", + "exposes", + "sends", + "invokes", + "handles", + "calls", + "persists_to", + "observed_as", + "changed_from", +] as const; + +/** Provider-neutral relation categories. */ +const applicationRelationSchema = z.enum(JAVASCRIPT_APPLICATION_RELATIONS); + +const applicationPropertiesSchema = z + .record(z.string().min(1).max(128), jsonValueSchema) + .superRefine((properties, context) => { + if (Object.keys(properties).length > 64) + context.addIssue({ + code: "custom", + message: "Application graph properties exceed 64 keys", + }); + if ( + !isJsonWithinLimits(properties, { + maxDepth: 6, + maxNodes: 512, + maxStringLength: 4_096, + }) + ) + context.addIssue({ + code: "custom", + message: "Application graph properties exceed structural limits", + }); + }); + +/** One node observation before its semantic identifier is derived. */ +const applicationNodeObservationInputSchema = z.strictObject({ + label: z.string().min(1).max(1_024).nullable(), + properties: applicationPropertiesSchema, + evidence: applicationGraphEvidenceSchema, +}); + +/** One immutable, evidence-bearing observation attached to an entity. */ +export const applicationNodeObservationSchema = + applicationNodeObservationInputSchema.extend({ + observation_id: z.string().regex(/^jag_observation_[a-f0-9]{64}$/u), + identifier_strategy: z.strictObject({ + strategy: z.literal("semantic-content-sha256"), + stability: z.literal("observation-exact"), + }), + }); + +/** One application entity before its stable identifier is derived. */ +export const applicationNodeInputSchema = z.strictObject({ + kind: applicationNodeKindSchema, + identity: applicationNodeIdentitySchema, + observations: z.array(applicationNodeObservationInputSchema).min(1).max(64), +}); + +/** One stable application entity with one or more bounded observations. */ +export const applicationNodeSchema = z.strictObject({ + node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u), + kind: applicationNodeKindSchema, + identity: applicationNodeIdentitySchema, + observations: z.array(applicationNodeObservationSchema).min(1).max(64), +}); + +/** One directed relationship before its semantic identifier is derived. */ +export const applicationEdgeInputSchema = z.strictObject({ + source_node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u), + target_node_id: z.string().regex(/^jag_node_[a-f0-9]{64}$/u), + relation: applicationRelationSchema, + properties: applicationPropertiesSchema, + evidence: applicationGraphEvidenceSchema, +}); + +/** One directed, evidence-bearing application relationship. */ +export const applicationEdgeSchema = applicationEdgeInputSchema.extend({ + edge_id: z.string().regex(/^jag_edge_[a-f0-9]{64}$/u), + identifier_strategy: z.strictObject({ + strategy: z.literal("semantic-content-sha256"), + stability: z.literal("relationship-exact"), + }), +}); + +/** Graph content before its top-level semantic identifier is derived. */ +export const javascriptApplicationGraphInputSchema = z.strictObject({ + schema: z.literal("JavaScriptApplicationGraph"), + schema_version: z.literal(1), + root_node_ids: z + .array(z.string().regex(/^jag_node_[a-f0-9]{64}$/u)) + .min(1) + .max(1_000), + nodes: z.array(applicationNodeSchema).min(1).max(100_000), + edges: z.array(applicationEdgeSchema).max(200_000), + coverage: applicationCoverageSchema, + limitations: z.array(boundedTextSchema).max(1_000), +}); + +/** Strict stored shape for JavaScript Application Graph v1. */ +export const javascriptApplicationGraphRecordSchema = + javascriptApplicationGraphInputSchema.extend({ + graph_id: z.string().regex(/^jag_[a-f0-9]{64}$/u), + }); + +/** Immutable entity in a JavaScript Application Graph. */ +export type ApplicationNode = z.infer; +/** Immutable relationship in a JavaScript Application Graph. */ +export type ApplicationEdge = z.infer; +/** Complete v1 graph content before its graph identifier is derived. */ +export type JavaScriptApplicationGraphInput = z.infer< + typeof javascriptApplicationGraphInputSchema +>; diff --git a/tests/fixtures/javascriptApplicationGraph.ts b/tests/fixtures/javascriptApplicationGraph.ts new file mode 100644 index 000000000..c22f2163f --- /dev/null +++ b/tests/fixtures/javascriptApplicationGraph.ts @@ -0,0 +1,403 @@ +import { + createJavaScriptApplicationEdge, + createJavaScriptApplicationGraph, + createJavaScriptApplicationNode, + type ApplicationGraphEvidence, + type JavaScriptApplicationGraph, +} from "../../src/domain/javascriptApplicationGraph.js"; + +export const APPLICATION_GRAPH_DIGESTS = { + package: "1".repeat(64), + asar: "2".repeat(64), + nativeAddon: "3".repeat(64), + capture: "4".repeat(64), +} as const; + +const completeCoverage = { + status: "complete" as const, + truncated: false, + omitted_count: 0, + limits: [], +}; + +const extractor = (operation: string) => ({ + name: "rea-test-fixture", + version: "1.0.0", + operation, + executable_sha256: null, +}); + +export const artifactEvidence = ( + sha256: string, + path: string, + authority: + | "artifact-bytes" + | "ast-static-analysis" + | "native-analysis-provider" = "artifact-bytes", +): ApplicationGraphEvidence => ({ + authority, + state: "observed", + confidence: "exact", + artifact: { + available: true, + artifact_id: `art_${sha256}`, + sha256, + }, + location: { available: true, value: { kind: "artifact-path", path } }, + extractor: extractor(`observe-${authority}`), + coverage: completeCoverage, + limitations: [], + evidence_ids: [], +}); + +export const inferredArtifactEvidence = ( + sha256: string, + path: string, +): ApplicationGraphEvidence => ({ + authority: "static-relationship-inference", + state: "inferred", + confidence: "high", + artifact: { + available: true, + artifact_id: `art_${sha256}`, + sha256, + }, + location: { available: true, value: { kind: "artifact-path", path } }, + extractor: extractor("infer-static-relationship"), + coverage: completeCoverage, + limitations: ["Relationship is inferred from static syntax."], + evidence_ids: [], +}); + +export const runtimeEvidence = ( + runtimeKey: string, +): ApplicationGraphEvidence => ({ + authority: "passive-cdp-runtime", + state: "observed", + confidence: "exact", + artifact: { + available: false, + reason: "not-observed", + detail: "Passive CDP metadata did not expose backing artifact bytes.", + }, + location: { + available: true, + value: { + kind: "runtime", + capture_sha256: APPLICATION_GRAPH_DIGESTS.capture, + target_key: "target-main", + frame_key: "frame-main", + script_key: runtimeKey, + }, + }, + extractor: extractor("observe-passive-cdp"), + coverage: completeCoverage, + limitations: ["Only passive CDP metadata was observed."], + evidence_ids: [], +}); + +/** Build a synthetic cross-layer Electron graph without proprietary artifacts. */ +export const buildSyntheticJavaScriptApplicationGraph = + (): JavaScriptApplicationGraph => { + const packageNode = createJavaScriptApplicationNode({ + kind: "package", + identity: { + strategy: "content-digest", + stability: "global-exact", + sha256: APPLICATION_GRAPH_DIGESTS.package, + }, + observations: [ + { + label: "Synthetic desktop package", + properties: { format: "directory" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.package, + "package.json", + ), + }, + ], + }); + const asarNode = createJavaScriptApplicationNode({ + kind: "artifact", + identity: { + strategy: "content-digest", + stability: "global-exact", + sha256: APPLICATION_GRAPH_DIGESTS.asar, + }, + observations: [ + { + label: "resources/app.asar", + properties: { format: "asar" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "resources/app.asar", + ), + }, + ], + }); + const preloadNode = createJavaScriptApplicationNode({ + kind: "electron-preload", + identity: { + strategy: "canonical-path", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + path: "dist/preload.js", + }, + observations: [ + { + label: "desktop preload", + properties: { sandboxed: true }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + "ast-static-analysis", + ), + }, + ], + }); + const bridgeNode = createJavaScriptApplicationNode({ + kind: "context-bridge-api", + identity: { + strategy: "artifact-local-key", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + namespace: "contextBridge", + key: "desktopApi", + }, + observations: [ + { + label: "desktopApi", + properties: { methods: ["openProject"] }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + "ast-static-analysis", + ), + }, + ], + }); + const channelNode = createJavaScriptApplicationNode({ + kind: "ipc-channel", + identity: { + strategy: "artifact-local-key", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + namespace: "electron-ipc", + key: "project:open", + }, + observations: [ + { + label: "project:open", + properties: { mode: "invoke" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + "ast-static-analysis", + ), + }, + ], + }); + const handlerNode = createJavaScriptApplicationNode({ + kind: "ipc-handler", + identity: { + strategy: "artifact-local-key", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + namespace: "ipcMain.handle", + key: "project:open", + }, + observations: [ + { + label: "project open handler", + properties: { process: "main" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/main.js", + "ast-static-analysis", + ), + }, + ], + }); + const addonNode = createJavaScriptApplicationNode({ + kind: "native-addon", + identity: { + strategy: "content-digest", + stability: "global-exact", + sha256: APPLICATION_GRAPH_DIGESTS.nativeAddon, + }, + observations: [ + { + label: "synthetic.node", + properties: { abi: "napi" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.nativeAddon, + "native/synthetic.node", + "native-analysis-provider", + ), + }, + ], + }); + const exportNode = createJavaScriptApplicationNode({ + kind: "native-export", + identity: { + strategy: "artifact-local-key", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.nativeAddon, + namespace: "napi-export", + key: "openProject", + }, + observations: [ + { + label: "openProject", + properties: { calling_convention: "napi" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.nativeAddon, + "native/synthetic.node", + "native-analysis-provider", + ), + }, + ], + }); + const runtimeNode = createJavaScriptApplicationNode({ + kind: "runtime-script-instance", + identity: { + strategy: "runtime-instance", + stability: "capture-only", + capture_sha256: APPLICATION_GRAPH_DIGESTS.capture, + runtime_key: "script-preload", + }, + observations: [ + { + label: "preload runtime script", + properties: { url: "file:///synthetic/dist/preload.js" }, + evidence: runtimeEvidence("script-preload"), + }, + ], + }); + + const observedEdge = ( + sourceNodeId: string, + targetNodeId: string, + relation: "contains" | "exposes" | "handles", + evidence: ApplicationGraphEvidence, + ) => + createJavaScriptApplicationEdge({ + source_node_id: sourceNodeId, + target_node_id: targetNodeId, + relation, + properties: {}, + evidence, + }); + const inferredEdge = ( + sourceNodeId: string, + targetNodeId: string, + relation: "invokes" | "calls" | "loads", + path: string, + ) => + createJavaScriptApplicationEdge({ + source_node_id: sourceNodeId, + target_node_id: targetNodeId, + relation, + properties: {}, + evidence: inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + path, + ), + }); + + const nodes = [ + packageNode, + asarNode, + preloadNode, + bridgeNode, + channelNode, + handlerNode, + addonNode, + exportNode, + runtimeNode, + ]; + const edges = [ + observedEdge( + packageNode.node_id, + asarNode.node_id, + "contains", + artifactEvidence( + APPLICATION_GRAPH_DIGESTS.package, + "resources/app.asar", + ), + ), + observedEdge( + asarNode.node_id, + preloadNode.node_id, + "contains", + artifactEvidence(APPLICATION_GRAPH_DIGESTS.asar, "dist/preload.js"), + ), + observedEdge( + preloadNode.node_id, + bridgeNode.node_id, + "exposes", + artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + "ast-static-analysis", + ), + ), + inferredEdge( + bridgeNode.node_id, + channelNode.node_id, + "invokes", + "dist/preload.js", + ), + observedEdge( + channelNode.node_id, + handlerNode.node_id, + "handles", + artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/main.js", + "ast-static-analysis", + ), + ), + inferredEdge( + handlerNode.node_id, + addonNode.node_id, + "loads", + "dist/main.js", + ), + inferredEdge( + handlerNode.node_id, + exportNode.node_id, + "calls", + "dist/main.js", + ), + observedEdge( + addonNode.node_id, + exportNode.node_id, + "contains", + artifactEvidence( + APPLICATION_GRAPH_DIGESTS.nativeAddon, + "native/synthetic.node", + "native-analysis-provider", + ), + ), + createJavaScriptApplicationEdge({ + source_node_id: preloadNode.node_id, + target_node_id: runtimeNode.node_id, + relation: "observed_as", + properties: {}, + evidence: runtimeEvidence("script-preload"), + }), + ]; + + return createJavaScriptApplicationGraph({ + schema: "JavaScriptApplicationGraph", + schema_version: 1, + root_node_ids: [packageNode.node_id], + nodes, + edges, + coverage: completeCoverage, + limitations: [ + "Synthetic fixture demonstrates identity and authority boundaries only.", + ], + }); + }; diff --git a/tests/javascriptApplicationGraph.test.ts b/tests/javascriptApplicationGraph.test.ts new file mode 100644 index 000000000..55ade3832 --- /dev/null +++ b/tests/javascriptApplicationGraph.test.ts @@ -0,0 +1,829 @@ +import { describe, expect, it } from "vitest"; + +import { + computeJavaScriptApplicationGraphSha256, + createJavaScriptApplicationEdge, + createJavaScriptApplicationGraph, + createJavaScriptApplicationNode, + javascriptApplicationGraphSchema, + parseJavaScriptApplicationGraph, + serializeJavaScriptApplicationGraph, + type ApplicationGraphEvidence, + type ApplicationNode, + type JavaScriptApplicationGraph, +} from "../src/domain/javascriptApplicationGraph.js"; +import { + JAVASCRIPT_APPLICATION_NODE_KINDS, + JAVASCRIPT_APPLICATION_RELATIONS, +} from "../src/domain/javascriptApplicationGraphSchemas.js"; +import { + APPLICATION_GRAPH_DIGESTS, + artifactEvidence, + buildSyntheticJavaScriptApplicationGraph, + inferredArtifactEvidence, + runtimeEvidence, +} from "./fixtures/javascriptApplicationGraph.js"; + +const completeCoverage = { + status: "complete" as const, + truncated: false, + omitted_count: 0, + limits: [], +}; + +const unknownEvidence = ( + limitations: string[] = ["The extractor could not classify this fact."], +): ApplicationGraphEvidence => ({ + authority: "unknown", + state: "unknown", + confidence: "unknown", + artifact: { + available: false, + reason: "unknown", + detail: "Artifact provenance is unknown.", + }, + location: { + available: false, + reason: "unknown", + detail: "Source location is unknown.", + }, + extractor: { + name: "test", + version: "1", + operation: "unknown", + executable_sha256: null, + }, + coverage: { + status: "unknown", + truncated: false, + omitted_count: null, + limits: [], + }, + limitations, + evidence_ids: [], +}); + +const nodeByLabel = ( + graph: JavaScriptApplicationGraph, + label: string, +): ApplicationNode => { + const node = graph.nodes.find(({ observations }) => + observations.some((observation) => observation.label === label), + ); + if (node === undefined) throw new TypeError(`Missing fixture node: ${label}`); + return node; +}; + +const firstOf = (values: readonly Value[], label: string): Value => { + const value = values[0]; + if (value === undefined) throw new TypeError(`Missing fixture ${label}`); + return value; +}; + +const graphForNode = (node: ApplicationNode): JavaScriptApplicationGraph => + createJavaScriptApplicationGraph({ + schema: "JavaScriptApplicationGraph", + schema_version: 1, + root_node_ids: [node.node_id], + nodes: [node], + edges: [], + coverage: completeCoverage, + limitations: [], + }); + +const contentNode = ( + evidence: ApplicationGraphEvidence, + properties: Record = {}, +): ApplicationNode => + createJavaScriptApplicationNode({ + kind: "javascript-module", + identity: { + strategy: "content-digest", + stability: "global-exact", + sha256: APPLICATION_GRAPH_DIGESTS.asar, + }, + observations: [{ label: "module", properties, evidence }], + }); + +describe("JavaScript Application Graph", () => { + it("defines the complete provider-neutral v1 node and relation vocabulary", () => { + expect(JAVASCRIPT_APPLICATION_NODE_KINDS).toEqual([ + "package", + "installer", + "artifact", + "asar-entry", + "electron-main", + "electron-preload", + "electron-renderer", + "electron-utility", + "javascript-asset", + "javascript-chunk", + "javascript-module", + "source-map", + "source-module", + "browser-window", + "frame", + "target", + "context-bridge-api", + "ipc-channel", + "ipc-handler", + "worker", + "service-worker", + "endpoint", + "storage", + "native-addon", + "native-export", + "runtime-script-instance", + "unknown", + ]); + expect(JAVASCRIPT_APPLICATION_RELATIONS).toEqual([ + "contains", + "loads", + "imports", + "maps_to", + "exposes", + "sends", + "invokes", + "handles", + "calls", + "persists_to", + "observed_as", + "changed_from", + ]); + }); + + it("round-trips one canonical, versioned, byte-stable graph", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + const serialized = serializeJavaScriptApplicationGraph(graph); + const decoded: unknown = JSON.parse(serialized); + + expect(parseJavaScriptApplicationGraph(decoded)).toEqual(graph); + expect(javascriptApplicationGraphSchema.parse(decoded)).toEqual(graph); + expect(serializeJavaScriptApplicationGraph(decoded)).toBe(serialized); + expect(computeJavaScriptApplicationGraphSha256(decoded)).toMatch( + /^[a-f0-9]{64}$/u, + ); + + const { graph_id: _graphId, ...semantic } = graph; + expect( + createJavaScriptApplicationGraph({ + ...semantic, + nodes: semantic.nodes.toReversed(), + edges: semantic.edges.toReversed(), + }), + ).toEqual(graph); + }); + + it("represents the synthetic ASAR to preload to IPC to native chain", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + const labels = [ + "resources/app.asar", + "desktop preload", + "desktopApi", + "project:open", + "project open handler", + "synthetic.node", + "openProject", + ]; + const chain = labels.map((label) => nodeByLabel(graph, label)); + const expectedRelations = [ + "contains", + "exposes", + "invokes", + "handles", + "loads", + "contains", + ]; + + for (let index = 0; index < expectedRelations.length; index += 1) + expect(graph.edges).toContainEqual( + expect.objectContaining({ + source_node_id: chain[index]?.node_id, + target_node_id: chain[index + 1]?.node_id, + relation: expectedRelations[index], + }), + ); + expect(chain.at(-2)?.kind).toBe("native-addon"); + expect(chain.at(-1)?.kind).toBe("native-export"); + }); + + it("keeps static observations, static inferences, runtime facts, and native facts distinct", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + const preload = nodeByLabel(graph, "desktop preload"); + const runtime = nodeByLabel(graph, "preload runtime script"); + const nativeExport = nodeByLabel(graph, "openProject"); + const invoke = graph.edges.find(({ relation }) => relation === "invokes"); + const observedAs = graph.edges.find( + ({ relation }) => relation === "observed_as", + ); + + expect(preload.observations[0]?.evidence).toMatchObject({ + authority: "ast-static-analysis", + state: "observed", + }); + expect(invoke?.evidence).toMatchObject({ + authority: "static-relationship-inference", + state: "inferred", + }); + expect(runtime.observations[0]?.evidence).toMatchObject({ + authority: "passive-cdp-runtime", + state: "observed", + }); + expect(observedAs?.evidence.authority).toBe("passive-cdp-runtime"); + expect(observedAs?.identifier_strategy).toEqual({ + strategy: "semantic-content-sha256", + stability: "relationship-exact", + }); + expect(runtime.observations[0]?.identifier_strategy).toEqual({ + strategy: "semantic-content-sha256", + stability: "observation-exact", + }); + expect(nativeExport.observations[0]?.evidence.authority).toBe( + "native-analysis-provider", + ); + expect(preload.node_id).not.toBe(runtime.node_id); + }); + + it("retains explicit unknown observations without using them as identity proof", () => { + const node = createJavaScriptApplicationNode({ + kind: "javascript-module", + identity: { + strategy: "content-digest", + stability: "global-exact", + sha256: APPLICATION_GRAPH_DIGESTS.asar, + }, + observations: [ + { + label: "observed module", + properties: {}, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ), + }, + { + label: null, + properties: { question: "runtime correspondence" }, + evidence: unknownEvidence(), + }, + ], + }); + + const graph = graphForNode(node); + expect( + graph.nodes[0]?.observations.find( + ({ evidence }) => evidence.state === "unknown", + )?.evidence, + ).toMatchObject({ authority: "unknown", confidence: "unknown" }); + }); + + it("separates stable entity identity from changing observations", () => { + const identity = { + strategy: "canonical-path" as const, + stability: "artifact-version" as const, + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + path: "dist/chunk.js", + }; + const first = createJavaScriptApplicationNode({ + kind: "javascript-chunk", + identity, + observations: [ + { + label: "first label", + properties: { modules: 10 }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/chunk.js", + "ast-static-analysis", + ), + }, + ], + }); + const second = createJavaScriptApplicationNode({ + kind: "javascript-chunk", + identity, + observations: [ + { + label: "renamed chunk", + properties: { modules: 11 }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/chunk.js", + "ast-static-analysis", + ), + }, + ], + }); + + expect(first.node_id).toBe(second.node_id); + expect(first.observations[0]?.observation_id).not.toBe( + second.observations[0]?.observation_id, + ); + }); + + it("normalizes structural identity and evidence set ordering", () => { + const evidence = inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + evidence.limitations = ["z limitation", "a limitation", "a limitation"]; + evidence.evidence_ids = [ + `ev_${"b".repeat(64)}`, + `ev_${"a".repeat(64)}`, + `ev_${"a".repeat(64)}`, + ]; + evidence.coverage.limits = [ + { name: "modules", value: 100, unit: "items" }, + { name: "modules", value: 100, unit: "items" }, + ]; + const node = createJavaScriptApplicationNode({ + kind: "javascript-module", + identity: { + strategy: "structural-fingerprint", + stability: "cross-version-inference", + algorithm: "synthetic-v1", + fingerprint_sha256: "5".repeat(64), + basis: ["syntax-tree", "imports", "syntax-tree"], + }, + observations: [{ label: "module", properties: {}, evidence }], + }); + + expect(node.identity).toMatchObject({ basis: ["imports", "syntax-tree"] }); + expect(node.observations[0]?.evidence.limitations).toEqual([ + "a limitation", + "z limitation", + ]); + expect(node.observations[0]?.evidence.evidence_ids).toEqual([ + `ev_${"a".repeat(64)}`, + `ev_${"b".repeat(64)}`, + ]); + expect(node.observations[0]?.evidence.coverage.limits).toEqual([ + { name: "modules", value: 100, unit: "items" }, + ]); + expect(graphForNode(node).nodes).toEqual([node]); + }); + + it("scopes runtime identities to a capture and artifact paths to a version", () => { + const runtime = nodeByLabel( + buildSyntheticJavaScriptApplicationGraph(), + "preload runtime script", + ); + const differentCapture = createJavaScriptApplicationNode({ + kind: "runtime-script-instance", + identity: { + strategy: "runtime-instance", + stability: "capture-only", + capture_sha256: "6".repeat(64), + runtime_key: "script-preload", + }, + observations: [ + { + label: "other capture", + properties: {}, + evidence: { + ...runtimeEvidence("script-preload"), + location: { + available: true, + value: { + kind: "runtime", + capture_sha256: "6".repeat(64), + target_key: "target-main", + frame_key: "frame-main", + script_key: "script-preload", + }, + }, + }, + }, + ], + }); + expect(differentCapture.node_id).not.toBe(runtime.node_id); + + const firstArtifact = createJavaScriptApplicationNode({ + kind: "javascript-asset", + identity: { + strategy: "canonical-path", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + path: "dist/app.js", + }, + observations: [ + { + label: null, + properties: {}, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/app.js", + ), + }, + ], + }); + const secondArtifact = createJavaScriptApplicationNode({ + kind: "javascript-asset", + identity: { + strategy: "canonical-path", + stability: "artifact-version", + artifact_sha256: "7".repeat(64), + path: "dist/app.js", + }, + observations: [ + { + label: null, + properties: {}, + evidence: artifactEvidence("7".repeat(64), "dist/app.js"), + }, + ], + }); + expect(firstArtifact.node_id).not.toBe(secondArtifact.node_id); + }); + + it("admits source-map and observation-scoped identities only with supporting observations", () => { + const sourceModule = createJavaScriptApplicationNode({ + kind: "source-module", + identity: { + strategy: "source-map-original", + stability: "source-map-exact", + source_map_sha256: APPLICATION_GRAPH_DIGESTS.asar, + original_source: "webpack:///src/editor.ts", + source_sha256: null, + }, + observations: [ + { + label: "src/editor.ts", + properties: { recovered_from: "source-map" }, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/app.js.map", + "ast-static-analysis", + ), + }, + ], + }); + const observationScoped = createJavaScriptApplicationNode({ + kind: "unknown", + identity: { + strategy: "observation-fingerprint", + stability: "observation-only", + observation_sha256: "8".repeat(64), + scope: "synthetic static inventory", + }, + observations: [ + { + label: "unclassified entity", + properties: {}, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/app.js", + ), + }, + ], + }); + + expect(graphForNode(sourceModule).nodes).toEqual([sourceModule]); + expect(graphForNode(observationScoped).nodes).toEqual([observationScoped]); + }); + + it("rejects unsupported versions, unknown fields, and stale commitments", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + expect(() => + parseJavaScriptApplicationGraph({ ...graph, schema_version: 2 }), + ).toThrow(/Unsupported JavaScript Application Graph schema version: 2/u); + expect(() => + parseJavaScriptApplicationGraph({ ...graph, surprise: true }), + ).toThrow(); + + const staleGraph = structuredClone(graph); + staleGraph.graph_id = `jag_${"f".repeat(64)}`; + expect(() => parseJavaScriptApplicationGraph(staleGraph)).toThrow( + /Graph identifier/u, + ); + + const staleNode = structuredClone(graph); + firstOf(staleNode.nodes, "node").node_id = `jag_node_${"f".repeat(64)}`; + expect(() => parseJavaScriptApplicationGraph(staleNode)).toThrow( + /Node identifier/u, + ); + + const staleObservation = structuredClone(graph); + firstOf( + firstOf(staleObservation.nodes, "node").observations, + "observation", + ).observation_id = `jag_observation_${"f".repeat(64)}`; + expect(() => parseJavaScriptApplicationGraph(staleObservation)).toThrow( + /Observation identifier/u, + ); + + const staleEdge = structuredClone(graph); + firstOf(staleEdge.edges, "edge").edge_id = `jag_edge_${"f".repeat(64)}`; + expect(() => parseJavaScriptApplicationGraph(staleEdge)).toThrow( + /Edge identifier/u, + ); + }); + + it("rejects duplicate nodes, missing roots, dangling edges, and self edges", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + const { graph_id: _graphId, ...semantic } = graph; + const source = firstOf(semantic.nodes, "node"); + expect(() => + createJavaScriptApplicationGraph({ + ...semantic, + nodes: [...semantic.nodes, source], + }), + ).toThrow(/Nodes must be sorted and unique/u); + expect(() => + createJavaScriptApplicationGraph({ + ...semantic, + root_node_ids: [`jag_node_${"9".repeat(64)}`], + }), + ).toThrow(/Root identifier/u); + + const missingId = `jag_node_${"9".repeat(64)}`; + const dangling = createJavaScriptApplicationEdge({ + source_node_id: source.node_id, + target_node_id: missingId, + relation: "loads", + properties: {}, + evidence: inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/main.js", + ), + }); + expect(() => + createJavaScriptApplicationGraph({ + ...semantic, + edges: [...semantic.edges, dangling], + }), + ).toThrow(/endpoints must name graph nodes/u); + + const selfEdge = createJavaScriptApplicationEdge({ + source_node_id: source.node_id, + target_node_id: source.node_id, + relation: "imports", + properties: {}, + evidence: inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/main.js", + ), + }); + expect(() => + createJavaScriptApplicationGraph({ + ...semantic, + edges: [...semantic.edges, selfEdge], + }), + ).toThrow(/self-referential/u); + }); + + it("allows changed_from only between entities of the same kind", () => { + const graph = buildSyntheticJavaScriptApplicationGraph(); + const preload = nodeByLabel(graph, "desktop preload"); + const runtime = nodeByLabel(graph, "preload runtime script"); + const earlierPreload = createJavaScriptApplicationNode({ + kind: "electron-preload", + identity: { + strategy: "canonical-path", + stability: "artifact-version", + artifact_sha256: "7".repeat(64), + path: "dist/preload.js", + }, + observations: [ + { + label: "earlier preload", + properties: {}, + evidence: artifactEvidence("7".repeat(64), "dist/preload.js"), + }, + ], + }); + const changedFrom = createJavaScriptApplicationEdge({ + source_node_id: preload.node_id, + target_node_id: earlierPreload.node_id, + relation: "changed_from", + properties: {}, + evidence: inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + ), + }); + expect( + createJavaScriptApplicationGraph({ + schema: "JavaScriptApplicationGraph", + schema_version: 1, + root_node_ids: [preload.node_id], + nodes: [preload, earlierPreload], + edges: [changedFrom], + coverage: completeCoverage, + limitations: [], + }).edges, + ).toEqual([changedFrom]); + + const invalid = createJavaScriptApplicationEdge({ + source_node_id: preload.node_id, + target_node_id: runtime.node_id, + relation: "changed_from", + properties: {}, + evidence: inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + ), + }); + expect(() => + createJavaScriptApplicationGraph({ + schema: "JavaScriptApplicationGraph", + schema_version: 1, + root_node_ids: [preload.node_id], + nodes: [preload, runtime], + edges: [invalid], + coverage: completeCoverage, + limitations: [], + }), + ).toThrow(/changed_from endpoints must have the same node kind/u); + }); + + it("requires every identity strategy to have compatible supporting evidence", () => { + const mismatchedPath = createJavaScriptApplicationNode({ + kind: "javascript-asset", + identity: { + strategy: "canonical-path", + stability: "artifact-version", + artifact_sha256: APPLICATION_GRAPH_DIGESTS.asar, + path: "dist/expected.js", + }, + observations: [ + { + label: null, + properties: {}, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/other.js", + ), + }, + ], + }); + expect(() => graphForNode(mismatchedPath)).toThrow( + /identity is not supported/u, + ); + + const runtimeWithStaticEvidence = createJavaScriptApplicationNode({ + kind: "runtime-script-instance", + identity: { + strategy: "runtime-instance", + stability: "capture-only", + capture_sha256: APPLICATION_GRAPH_DIGESTS.capture, + runtime_key: "script-preload", + }, + observations: [ + { + label: null, + properties: {}, + evidence: artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/preload.js", + "ast-static-analysis", + ), + }, + ], + }); + expect(() => graphForNode(runtimeWithStaticEvidence)).toThrow( + /identity is not supported/u, + ); + + const mismatchedDigest = contentNode( + artifactEvidence("7".repeat(64), "dist/module.js"), + ); + expect(() => graphForNode(mismatchedDigest)).toThrow( + /identity is not supported/u, + ); + }); + + it("prevents static authorities from claiming runtime locations", () => { + const evidence = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + "ast-static-analysis", + ); + evidence.location = runtimeEvidence("script-module").location; + expect(() => graphForNode(contentNode(evidence))).toThrow( + /cannot claim a runtime location/u, + ); + }); + + it("enforces epistemic truthfulness and content-addressed artifacts", () => { + const inferredAsObserved = inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + inferredAsObserved.state = "observed"; + inferredAsObserved.confidence = "exact"; + expect(() => contentNode(inferredAsObserved)).toThrow( + /must remain inferred/u, + ); + + const inferenceWithoutLimit = inferredArtifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + inferenceWithoutLimit.limitations = []; + expect(() => contentNode(inferenceWithoutLimit)).toThrow( + /Inferred facts require an explicit limitation/u, + ); + + const unknownWithoutLimit = unknownEvidence([]); + expect(() => contentNode(unknownWithoutLimit)).toThrow( + /require unknown confidence and an explicit limitation/u, + ); + + const missingArtifact = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + missingArtifact.artifact = { + available: false, + reason: "not-observed", + detail: "Bytes were not observed.", + }; + expect(() => contentNode(missingArtifact)).toThrow( + /require a content digest/u, + ); + + const mismatchedArtifact = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + if (mismatchedArtifact.artifact.available) + mismatchedArtifact.artifact.artifact_id = `art_${"8".repeat(64)}`; + expect(() => contentNode(mismatchedArtifact)).toThrow( + /same SHA-256 digest/u, + ); + + const unlocatedObservation = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + unlocatedObservation.location = { + available: false, + reason: "not-observed", + detail: "The exact location was not recorded.", + }; + expect(() => contentNode(unlocatedObservation)).toThrow( + /Observed facts require an actionable location/u, + ); + }); + + it("rejects false truncation claims and unbounded properties", () => { + const truncated = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + truncated.coverage = { + status: "partial", + truncated: true, + omitted_count: 0, + limits: [], + }; + expect(() => contentNode(truncated)).toThrow( + /must be partial, name a limit, and not claim zero omissions/u, + ); + + const nonComplete = artifactEvidence( + APPLICATION_GRAPH_DIGESTS.asar, + "dist/module.js", + ); + nonComplete.coverage = { + status: "partial", + truncated: false, + omitted_count: null, + limits: [], + }; + expect(() => contentNode(nonComplete)).toThrow( + /Non-complete coverage requires an explicit limitation/u, + ); + + const validNode = contentNode( + artifactEvidence(APPLICATION_GRAPH_DIGESTS.asar, "dist/module.js"), + ); + expect(() => + createJavaScriptApplicationGraph({ + schema: "JavaScriptApplicationGraph", + schema_version: 1, + root_node_ids: [validNode.node_id], + nodes: [validNode], + edges: [], + coverage: { + status: "partial", + truncated: false, + omitted_count: null, + limits: [], + }, + limitations: [], + }), + ).toThrow(/Non-complete graph coverage requires an explicit limitation/u); + + const properties = Object.fromEntries( + Array.from({ length: 65 }, (_, index) => [`key-${String(index)}`, index]), + ); + expect(() => + contentNode( + artifactEvidence(APPLICATION_GRAPH_DIGESTS.asar, "dist/module.js"), + properties, + ), + ).toThrow(/exceed 64 keys/u); + }); +});