fix(dotnet): admit real CLI GUID and fat CIL bodies

This commit is contained in:
N0zoM1z0 2026-07-16 23:37:06 +08:00 committed by N0zoM1z0
parent aa200ce8ca
commit 735973b08b
69 changed files with 583 additions and 202 deletions

View File

@ -1 +1 @@
window.hierarchyData = "eJytmV1T5CgUhv9LrplsAuTLO6fLddyaWi17przYsixMsKVMQ5bQul1T/vcpEluJIQbi3rRJzHvOAxwO5PArkEKoNjj6BxUYAoxRkgKMcZSANEN5ClCRIgwSiKIYJEWMIoCjOMsAxEWKAI5SlAFY5LC4BoGkdzUtFRO8DY5+Bdqi/svJlgZHwTEn9b5l7YmUQgYgeGC8Co5imINgJ+vgKChr0ra0/aMSW8L4DdXvteFAFt6rbR2A/tXgKFBt9UXb+dI/AEF5z+pKUt41KMEaX7chywEqikyz6wZADHCE9E+SAxxl+iovAI4jCHAMU4DjBAMcp/oq0/8oIMAwzQGGeaR/coBRjABGKAYZTJLo+hkE2qPR4G+iaaj0bK4h8mkshhECGGokCGOAoW4dxBo4KXq2NLUMxoUUSpSiXjgoA/kMbweR5RaIM97s1EKCN62L+yKzuD/fqeX+DfE8gA4/C8CKNOSW1Uztf3LySFhNbmu6kGfalgsexFY8XtK6ptViJFPvgoFsGD/YlorF42SqXRASM1AvpHhkFZVr+pLfPCHseheMDFswjivSKO/MYlO7IOSFgfBViqeWyvPblspHsqArJgw4gMTRYDWRit2RUp03VC7hsOtdMKCZR090l/KSnnFFN5KpvSeGXe+V+WOUX3dgKLeAXdI7KvXFQrCh3qV/Bmvgwcx3tmW+U3esdXGf2obnT+adUEdSF+eZOVfO+CNtFdt04XUl5EPbEO9x+MCIC1Bhzpmf/IGLJ35JN6xV0jdUbWoHBBih0Z5oWSofa13cx2P3Sxc0m9oFAcYjhIX7LovYBQCNt6WXdCuUbzCOpC7OcW5rfUlb3y+BsdbFfVKM3K8VkcuC703p4jo1W74S/I5tdosWq7HWxX1u7jX/Fl8ZJ3J/3lBf7yOpk3Oz7b3+B5Eb6tvvI6mDczSY8xdUblnbMsEv6b87Jr2n/YQBFxBkzvxL2tRkf1ETvlbEez2yqecRus90a2esS9HQV/cwSQ/uGVdU3pHyjaB5FV2ImpX78J2VSYxXU8MtC8RFFusKQh5f94xZPDlgtFWfpnyx48DZ4+R2nFNJ+OdhOiuOKLqwYqBc0Vu9H+BKyP0lbcVO6p1js3OEejLk4aQt79Escgyve9pBwWet9LfnFb09mF9AObLh1nGoSGE2+Gxh1YZ+Jzte3s9Q3HeJ/sZUUBmat84Ig2V3aPDTEHR68k+MEypSnL+Ugixr8nHT1KzsVpgRpCU52QknTTnVhrLMtlPoPlodUIaC8N2tS21msF6f3rNKEqeQ2XSv3pgKKkPz1i1kusrqBMJsyMxD+IcMjuICXfdkBRqRfaOkqmnbusTLR3jv7ThVqgab6t6OS7AMOF6j492tg/8UmSN1UL5sTp2ipunfvXmnDa22Fkx22JW70744EGWpmZpXVfNSiHHps9v+1ZuxKrQ8ctgWwcFH+qpqTnRdTAruSfNeFtqezfPoQw9bXfhQGroQcm6FJW8p78YojvcEVoPecxGjFAJcZEm32Ha3tmJtzejsJsWJtrfkmLn0iZH9eGE4np/gmR3QiY5LklyfVGHcH9J0Fx+grgivWEXU3G7Fi/nVqH8G1sc53drYwadFDkcfVmvabSw/mjQm7UAUDu/mJ4sOwCkCz4ky0objJ779pTtI91R3Yvlh4doX1mrAUs9ehK3zc4etg3VQNdg2omWKumRGE3ckDMdPZge7O/A1y6kvuXV5L05YCKee+/ajXlp0P3aH1+Ysb9VJtXH6WDJx/yKPZF1K1qjDecGpJM39SnBF/1OhadUXNc3SPpN3F4Oy8aHi/v8Dj2275ffuiHu439F7kxVp1E7OVzJMQos0tD2bCc7n599QEC52"
window.hierarchyData = "eJytmV1v3CgUhv+Lr6nXBvyVuzbKtl1VmyjTKherKCI2maB6wIuZdEdV/3uFnUlwwDE4ezOxHb/nPMDhgA8/IymE6qOTf1CFIcAYZQXAGCc5yAtUFgBVOcpABlECQValKAU4SYsSQFzlGOAkRyWAVYmSaxBJetfSWjHB++jkZ6Qt6r+c7Gh0Er3npD30rD+TUsgIRN8Zb6KTFJYg2ss2OonqlvQ97f9oxI4wfkP1e308kcX3atdGYHw1OolU37zTdt6ND0BU37O2kZQPDcqwxs8BqooSoKoqNHsCcAI1OdI/WQlwUuirsgI4TSDAKcwBTjMMcJrrq0L/o4IAw7wEGJaJ/ikBRikCGKEUFDDL0utfINIejQZ/El1HZWBzDVFIYzFMEMBQI0GYAgx16yDWwFk1suW5YzAupFCiFu3KQZnIF3gHiKJ0QHzm3V6tJHjW+rivCof7871a798QLwPo8HMAnJKO3LKWqcM3Th4Ia8ltS1fyzNvywYPYicdr2ra0WY1k6n0wkAvjK9tRsXqcTLUPQmYG6oUUD6yhckMf81sghFvvg1FgB8b7hnQqOLO41D4IZWUgfJDiR0/l+W1P5QNZ0RUzBjxA0mSymkjF7kitzjsq13C49T4Y0MyjZ7pLeU0/c0W3kqlDIIZbH5T5U1ReD2CodIBd0jsq9cVKsKnep38ma+DRzBe2Y6FT19b6uM9dw/MnC06oltTHeWHOlc/8gfaKbYfwuhLye9+R4HF4xYgPUGXOmW/8Oxc/+CXdsl7J0FB1qT0QYIKsPdG6VG5rfdyntvu1C5pL7YMAUwth5b7LIfYBQPa29JLuhAoNRkvq4xyXrtbXtA/9ErC1Pu6zynK/UUSuC75npY/r3Gz5qeB3bLtftVjZWh/3pbnX/Ft8YJzIw3lHQ71bUi/nZttH/VcitzS03y2ph3M0mfMXVO5Y3zPBL+m/eyaDp/2MAR8QZM78S9q15HDREr5RJHg9cqmXEYbPdGdnbGrR0Sf3MMuP7hlXVN6R+pmgexJdiJbVh/iFlVmMJ1PTLQvEVQF1BaGE1yNjAWcHjPbqzZSPdjw4R5zSjfNREv52mMGKJ4ourBgoV/RW7we4EvJwSXuxl3rn2O09oX4Y8njWVvBoViVG1yMtNifeRulvzyt6ezS/gtKy4ddxqMrhJAFJ1mzpF7Ln9f0Cxf2Q6G9MBZWxeeuNgLIZBCrfDEHnJ//MOKEqx8dSELYXxfdd17J6WGEsSEdychPOmvKqDRXOncLw0eqBMhXEL259ajO52Ssf71kjiVfIbIdXb0wFlbF56xcyQ2V1BmExZJYhwkMGJ2mFr0eyCltknyhpWtr3PvHyGt5LO16VKggtHp9gmXA8RceLWw//OXIViB43p15R043v3rzQxk5bKyY71KXtNK/G8StyMzWfNt1jIcanz27HV29sVex45LEtgnkxhTnTdTEpeCDNS1nserbMow89XHXhY2noQsilFZY8p7wbozg+EjgNBs9FjHIEcFVkw2I73LqKtS2ji5sUL9rRkmfm0idG7uOF6Xi+gWdxQGc6LstKfVKF8XhIM1y8gnpKeMMaopZ2K0HMT0bDMzCEEAxr4wCfVyWyPqw2dNhYvjZpTNqJKJ7eLU8WHYBzBIETxdLG9pPQ/tIdpHtqOLF8tXAdCus04Khnr8LW+XnA1sE6qRrsOtEzRX0yo4lrCWP7yeJgDwe+Zjn1Mbeu78UZC/Hc89B+1EuL7sfh8Nqc5b06a7ZeH0sm7l/kgWxqyTp1PC/4KEl3fyq4ov+p2LQaipoX+ZjJh4tJ2fhYcf//gW3bfvl9OOKe7nf03uSUdGovlysZJqFDGrueLQTnr1+/AYlqLpw="

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Failure to establish a filesystem object's canonical authorization identity.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="72344">
<section class="tsd-panel tsd-hierarchy" data-refl="72345">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Typed application failure produced by controlled process capture.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="72550">
<section class="tsd-panel tsd-hierarchy" data-refl="72551">
<h4>Hierarchy (<a href="../hierarchy.html#application/ProcessCaptureError.ProcessCaptureError">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="domain_errors.AnalysisError.html" class="tsd-signature-type tsd-kind-class">AnalysisError</a>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Owner-only project policy persistence failure.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="74129">
<section class="tsd-panel tsd-hierarchy" data-refl="74130">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>A proposed grant exceeds the administrator-owned maximum authority.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="25005">
<section class="tsd-panel tsd-hierarchy" data-refl="25006">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Local launch failure retained as the cause of a provider-neutral error.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="40184">
<section class="tsd-panel tsd-hierarchy" data-refl="40185">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Provider-owned failure with bounded, token-redacted local diagnostics.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="40357">
<section class="tsd-panel tsd-hierarchy" data-refl="40358">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

View File

@ -14,7 +14,7 @@
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Expected operation failure returned by the authenticated Java bridge.</p>
</div></section>
<section class="tsd-panel tsd-hierarchy" data-refl="40437">
<section class="tsd-panel tsd-hierarchy" data-refl="40438">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -42,56 +42,56 @@
<li data-refl="4288" id="domain/errors.BinaryTargetError"><a href="classes/domain_errors.BinaryTargetError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BinaryTargetError</a></li>
<li data-refl="4313" id="domain/errors.PermissionRequiredError"><a href="classes/domain_errors.PermissionRequiredError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PermissionRequiredError</a></li>
<li data-refl="4331" id="domain/errors.ReplayPlanStaleError"><a href="classes/domain_errors.ReplayPlanStaleError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ReplayPlanStaleError</a></li>
<li data-refl="72550" id="application/ProcessCaptureError.ProcessCaptureError"><a href="classes/application_ProcessCaptureError.ProcessCaptureError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ProcessCaptureError</a></li></ul></li></ul>
<li data-refl="72551" id="application/ProcessCaptureError.ProcessCaptureError"><a href="classes/application_ProcessCaptureError.ProcessCaptureError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ProcessCaptureError</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="44356" id="application/AnalysisProvider.AnalysisOperationPort"><a href="interfaces/application_AnalysisProvider.AnalysisOperationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisOperationPort</a>
<li data-refl="44357" id="application/AnalysisProvider.AnalysisOperationPort"><a href="interfaces/application_AnalysisProvider.AnalysisOperationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisOperationPort</a>
<ul>
<li data-refl="44362" id="application/AnalysisProvider.AnalysisClient"><a href="interfaces/application_AnalysisProvider.AnalysisClient.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisClient</a></li>
<li data-refl="49752" id="application/BinarySessionPort.BinarySessionPort"><a href="interfaces/application_BinarySessionPort.BinarySessionPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BinarySessionPort</a>
<li data-refl="44363" id="application/AnalysisProvider.AnalysisClient"><a href="interfaces/application_AnalysisProvider.AnalysisClient.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisClient</a></li>
<li data-refl="49753" id="application/BinarySessionPort.BinarySessionPort"><a href="interfaces/application_BinarySessionPort.BinarySessionPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BinarySessionPort</a>
<ul>
<li data-refl="46982" id="application/BinarySession.BinarySession"><a href="classes/application_BinarySession.BinarySession.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BinarySession</a></li></ul></li></ul></li></ul>
<li data-refl="46983" id="application/BinarySession.BinarySession"><a href="classes/application_BinarySession.BinarySession.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BinarySession</a></li></ul></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="44405" id="application/AnalysisProvider.AnalysisProvider"><a href="interfaces/application_AnalysisProvider.AnalysisProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisProvider</a>
<li data-refl="44406" id="application/AnalysisProvider.AnalysisProvider"><a href="interfaces/application_AnalysisProvider.AnalysisProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisProvider</a>
<ul>
<li data-refl="55863" id="application/CompositeProvider.CompositeProvider"><a href="classes/application_CompositeProvider.CompositeProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CompositeProvider</a></li>
<li data-refl="44450" id="application/AnalysisProvider.AnalysisProviderCandidate"><a href="interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisProviderCandidate</a>
<li data-refl="55864" id="application/CompositeProvider.CompositeProvider"><a href="classes/application_CompositeProvider.CompositeProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CompositeProvider</a></li>
<li data-refl="44451" id="application/AnalysisProvider.AnalysisProviderCandidate"><a href="interfaces/application_AnalysisProvider.AnalysisProviderCandidate.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisProviderCandidate</a>
<ul>
<li data-refl="40221" id="ghidra/GhidraProvider.GhidraProvider"><a href="classes/ghidra_GhidraProvider.GhidraProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GhidraProvider</a></li>
<li data-refl="39777" id="hopper/HopperProvider.HopperProvider"><a href="classes/hopper_HopperProvider.HopperProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>HopperProvider</a></li></ul></li></ul></li></ul>
<li data-refl="40222" id="ghidra/GhidraProvider.GhidraProvider"><a href="classes/ghidra_GhidraProvider.GhidraProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GhidraProvider</a></li>
<li data-refl="39778" id="hopper/HopperProvider.HopperProvider"><a href="classes/hopper_HopperProvider.HopperProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>HopperProvider</a></li></ul></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="67386" id="application/JavaScriptArtifactGraphContext.AstEdgeInput"><a href="interfaces/application_JavaScriptArtifactGraphContext.AstEdgeInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AstEdgeInput</a>
<li data-refl="67387" id="application/JavaScriptArtifactGraphContext.AstEdgeInput"><a href="interfaces/application_JavaScriptArtifactGraphContext.AstEdgeInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AstEdgeInput</a>
<ul>
<li data-refl="67652" id="application/JavaScriptArtifactGraphContext.InferenceEdgeInput"><a href="interfaces/application_JavaScriptArtifactGraphContext.InferenceEdgeInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>InferenceEdgeInput</a></li></ul></li></ul>
<li data-refl="67653" id="application/JavaScriptArtifactGraphContext.InferenceEdgeInput"><a href="interfaces/application_JavaScriptArtifactGraphContext.InferenceEdgeInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>InferenceEdgeInput</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="39634" id="hopper/BridgeLauncher.BridgeLauncher"><a href="interfaces/hopper_BridgeLauncher.BridgeLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BridgeLauncher</a>
<li data-refl="39635" id="hopper/BridgeLauncher.BridgeLauncher"><a href="interfaces/hopper_BridgeLauncher.BridgeLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BridgeLauncher</a>
<ul>
<li data-refl="39648" id="hopper/BridgeLauncher.HopperApplicationLauncher"><a href="classes/hopper_BridgeLauncher.HopperApplicationLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>HopperApplicationLauncher</a></li></ul></li></ul>
<li data-refl="39649" id="hopper/BridgeLauncher.HopperApplicationLauncher"><a href="classes/hopper_BridgeLauncher.HopperApplicationLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>HopperApplicationLauncher</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="52301" id="application/BrowserObservationPort.BrowserObservationPort"><a href="interfaces/application_BrowserObservationPort.BrowserObservationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BrowserObservationPort</a>
<li data-refl="52302" id="application/BrowserObservationPort.BrowserObservationPort"><a href="interfaces/application_BrowserObservationPort.BrowserObservationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BrowserObservationPort</a>
<ul>
<li data-refl="40762" id="browser/CdpBrowserProvider.CdpBrowserProvider"><a href="classes/browser_CdpBrowserProvider.CdpBrowserProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CdpBrowserProvider</a></li></ul></li></ul>
<li data-refl="40763" id="browser/CdpBrowserProvider.CdpBrowserProvider"><a href="classes/browser_CdpBrowserProvider.CdpBrowserProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CdpBrowserProvider</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="59130" id="application/ElectronObservationPort.ElectronObservationPort"><a href="interfaces/application_ElectronObservationPort.ElectronObservationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ElectronObservationPort</a>
<li data-refl="59131" id="application/ElectronObservationPort.ElectronObservationPort"><a href="interfaces/application_ElectronObservationPort.ElectronObservationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ElectronObservationPort</a>
<ul>
<li data-refl="43266" id="browser/CdpElectronProvider.CdpElectronProvider"><a href="classes/browser_CdpElectronProvider.CdpElectronProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CdpElectronProvider</a></li></ul></li></ul>
<li data-refl="43267" id="browser/CdpElectronProvider.CdpElectronProvider"><a href="classes/browser_CdpElectronProvider.CdpElectronProvider.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CdpElectronProvider</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="40177" id="ghidra/GhidraLauncher.GhidraLauncher"><a href="interfaces/ghidra_GhidraLauncher.GhidraLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GhidraLauncher</a>
<li data-refl="40178" id="ghidra/GhidraLauncher.GhidraLauncher"><a href="interfaces/ghidra_GhidraLauncher.GhidraLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GhidraLauncher</a>
<ul>
<li data-refl="40193" id="ghidra/GhidraLauncher.GhidraHeadlessLauncher"><a href="classes/ghidra_GhidraLauncher.GhidraHeadlessLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GhidraHeadlessLauncher</a></li></ul></li></ul>
<li data-refl="40194" id="ghidra/GhidraLauncher.GhidraHeadlessLauncher"><a href="classes/ghidra_GhidraLauncher.GhidraHeadlessLauncher.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GhidraHeadlessLauncher</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="24963" id="domain/permissionPolicy.PermissionScope"><a href="interfaces/domain_permissionPolicy.PermissionScope.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionScope</a>
<li data-refl="24964" id="domain/permissionPolicy.PermissionScope"><a href="interfaces/domain_permissionPolicy.PermissionScope.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionScope</a>
<ul>
<li data-refl="24971" id="domain/permissionPolicy.PermissionRequest"><a href="interfaces/domain_permissionPolicy.PermissionRequest.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionRequest</a></li>
<li data-refl="24981" id="domain/permissionPolicy.PermissionGrant"><a href="interfaces/domain_permissionPolicy.PermissionGrant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionGrant</a></li></ul></li></ul>
<li data-refl="24972" id="domain/permissionPolicy.PermissionRequest"><a href="interfaces/domain_permissionPolicy.PermissionRequest.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionRequest</a></li>
<li data-refl="24982" id="domain/permissionPolicy.PermissionGrant"><a href="interfaces/domain_permissionPolicy.PermissionGrant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>PermissionGrant</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="40637" id="process/ProviderProcess.ProviderProcessLaunch"><a href="interfaces/process_ProviderProcess.ProviderProcessLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ProviderProcessLaunch</a>
<li data-refl="40638" id="process/ProviderProcess.ProviderProcessLaunch"><a href="interfaces/process_ProviderProcess.ProviderProcessLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ProviderProcessLaunch</a>
<ul>
<li data-refl="39627" id="hopper/BridgeLauncher.BridgeLaunch"><a href="interfaces/hopper_BridgeLauncher.BridgeLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BridgeLaunch</a></li>
<li data-refl="40168" id="ghidra/GhidraLauncher.GhidraLaunch"><a href="interfaces/ghidra_GhidraLauncher.GhidraLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GhidraLaunch</a></li></ul></li></ul>
<li data-refl="39628" id="hopper/BridgeLauncher.BridgeLaunch"><a href="interfaces/hopper_BridgeLauncher.BridgeLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BridgeLaunch</a></li>
<li data-refl="40169" id="ghidra/GhidraLauncher.GhidraLaunch"><a href="interfaces/ghidra_GhidraLauncher.GhidraLaunch.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GhidraLaunch</a></li></ul></li></ul>
<ul class="tsd-full-hierarchy">
<li data-refl="29829" id="domain/webInventory.WebInventoryResourceInput"><a href="interfaces/domain_webInventory.WebInventoryResourceInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WebInventoryResourceInput</a>
<li data-refl="29830" id="domain/webInventory.WebInventoryResourceInput"><a href="interfaces/domain_webInventory.WebInventoryResourceInput.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>WebInventoryResourceInput</a>
<ul>
<li data-refl="29842" id="domain/webInventory.StableWebResource"><a href="interfaces/domain_webInventory.StableWebResource.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>StableWebResource</a></li></ul></li></ul></div>
<li data-refl="29843" id="domain/webInventory.StableWebResource"><a href="interfaces/domain_webInventory.StableWebResource.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>StableWebResource</a></li></ul></li></ul></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider session bound to exactly one parsed artifact.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">AnalysisClient</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-call-signature" href="#close-1">close</a><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-call-signature" href="#execute-1">execute</a><span class="tsd-signature-symbol">(</span><br/>        <span class="tsd-kind-parameter">operation</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_AnalysisProvider.AnalysisOperation.html" class="tsd-signature-type tsd-kind-type-alias">AnalysisOperation</a><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-kind-parameter">parameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/domain_jsonValue.JsonValue.html" class="tsd-signature-type tsd-kind-type-alias">JsonValue</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="application_AnalysisProvider.ExecutionOptions.html" class="tsd-signature-type tsd-kind-interface">ExecutionOptions</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/domain_result.Result.html" class="tsd-signature-type tsd-kind-type-alias">Result</a><span class="tsd-signature-symbol">&lt;</span><a href="application_AnalysisProvider.AnalysisExecution.html" class="tsd-signature-type tsd-kind-interface">AnalysisExecution</a><span class="tsd-signature-symbol">,</span> <a href="../classes/domain_errors.AnalysisError.html" class="tsd-signature-type tsd-kind-class">AnalysisError</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="44362">
<section class="tsd-panel tsd-hierarchy" data-refl="44363">
<h4>Hierarchy (<a href="../hierarchy.html#application/AnalysisProvider.AnalysisClient">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="application_AnalysisProvider.AnalysisOperationPort.html" class="tsd-signature-type tsd-kind-interface">AnalysisOperationPort</a>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider-neutral application capability for one analysis operation.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">AnalysisOperationPort</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-call-signature" href="#execute-1">execute</a><span class="tsd-signature-symbol">(</span><br/>        <span class="tsd-kind-parameter">operation</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_AnalysisProvider.AnalysisOperation.html" class="tsd-signature-type tsd-kind-type-alias">AnalysisOperation</a><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-kind-parameter">parameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/domain_jsonValue.JsonValue.html" class="tsd-signature-type tsd-kind-type-alias">JsonValue</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="application_AnalysisProvider.ExecutionOptions.html" class="tsd-signature-type tsd-kind-interface">ExecutionOptions</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/domain_result.Result.html" class="tsd-signature-type tsd-kind-type-alias">Result</a><span class="tsd-signature-symbol">&lt;</span><a href="application_AnalysisProvider.AnalysisExecution.html" class="tsd-signature-type tsd-kind-interface">AnalysisExecution</a><span class="tsd-signature-symbol">,</span> <a href="../classes/domain_errors.AnalysisError.html" class="tsd-signature-type tsd-kind-class">AnalysisError</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="44356">
<section class="tsd-panel tsd-hierarchy" data-refl="44357">
<h4>Hierarchy (<a href="../hierarchy.html#application/AnalysisProvider.AnalysisOperationPort">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">AnalysisOperationPort</span>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Authority issued beneath the administrator ceiling.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">PermissionGrant</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#capability">capability</a><span class="tsd-signature-symbol">:</span> <a href="../types/domain_permissionPolicy.PermissionCapability.html" class="tsd-signature-type tsd-kind-type-alias">PermissionCapability</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#environment_names">environment_names</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#executables">executables</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#expires_at">expires_at</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#grant_id">grant_id</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lifetime">lifetime</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;once&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;session&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;project&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;administrator&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mount">mount</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#network">network</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PermissionNetwork</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#operation_identity">operation_identity</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#origins">origins</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#roots">roots</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="24981">
<section class="tsd-panel tsd-hierarchy" data-refl="24982">
<h4>Hierarchy (<a href="../hierarchy.html#domain/permissionPolicy.PermissionGrant">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="domain_permissionPolicy.PermissionScope.html" class="tsd-signature-type tsd-kind-interface">PermissionScope</a>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>A request identity associates one-shot grants with exactly one operation.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">PermissionRequest</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#capability">capability</a><span class="tsd-signature-symbol">:</span> <a href="../types/domain_permissionPolicy.PermissionCapability.html" class="tsd-signature-type tsd-kind-type-alias">PermissionCapability</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#environment_names">environment_names</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#executables">executables</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mount">mount</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#network">network</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PermissionNetwork</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#operation_identity">operation_identity</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#origins">origins</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#roots">roots</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="24971">
<section class="tsd-panel tsd-hierarchy" data-refl="24972">
<h4>Hierarchy (<a href="../hierarchy.html#domain/permissionPolicy.PermissionRequest">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="domain_permissionPolicy.PermissionScope.html" class="tsd-signature-type tsd-kind-interface">PermissionScope</a>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Exact normalized scope requested by one local operation.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">PermissionScope</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#capability">capability</a><span class="tsd-signature-symbol">:</span> <a href="../types/domain_permissionPolicy.PermissionCapability.html" class="tsd-signature-type tsd-kind-type-alias">PermissionCapability</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#environment_names">environment_names</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#executables">executables</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mount">mount</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#network">network</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PermissionNetwork</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#origins">origins</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#roots">roots</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="24963">
<section class="tsd-panel tsd-hierarchy" data-refl="24964">
<h4>Hierarchy (<a href="../hierarchy.html#domain/permissionPolicy.PermissionScope">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">PermissionScope</span>

View File

@ -12,7 +12,7 @@
<li><a href="" aria-current="page">StableWebResource</a></li></ul>
<h1>Interface StableWebResource</h1></div>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">StableWebResource</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#content_size">content_size</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mime_type">mime_type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#origin">origin</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#resource_key">resource_key</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#type">type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#url">url</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="29842">
<section class="tsd-panel tsd-hierarchy" data-refl="29843">
<h4>Hierarchy (<a href="../hierarchy.html#domain/webInventory.StableWebResource">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="domain_webInventory.WebInventoryResourceInput.html" class="tsd-signature-type tsd-kind-interface">WebInventoryResourceInput</a>

View File

@ -12,7 +12,7 @@
<li><a href="" aria-current="page">WebInventoryResourceInput</a></li></ul>
<h1>Interface WebInventoryResourceInput</h1></div>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">WebInventoryResourceInput</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#content_size">content_size</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mime_type">mime_type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#origin">origin</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#type">type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#url">url</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="29829">
<section class="tsd-panel tsd-hierarchy" data-refl="29830">
<h4>Hierarchy (<a href="../hierarchy.html#domain/webInventory.WebInventoryResourceInput">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">WebInventoryResourceInput</span>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Process plus private log coordinates returned by a Ghidra launcher.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">GhidraLaunch</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#cleanup">cleanup</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/process_ProcessOwnership.ProcessCleanupResult.html" class="tsd-signature-type tsd-kind-type-alias">ProcessCleanupResult</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#ghidralogpath">ghidraLogPath</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#ownsprocesslifetime">ownsProcessLifetime</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#process">process</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ChildProcess</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#projectroot">projectRoot</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#scriptlogpath">scriptLogPath</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="40168">
<section class="tsd-panel tsd-hierarchy" data-refl="40169">
<h4>Hierarchy (<a href="../hierarchy.html#ghidra/GhidraLauncher.GhidraLaunch">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="process_ProviderProcess.ProviderProcessLaunch.html" class="tsd-signature-type tsd-kind-interface">ProviderProcessLaunch</a>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Additional structured context for a Ghidra session failure.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">GhidraSessionErrorOptions</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#remotecode">remoteCode</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#timeoutms">timeoutMs</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="40354">
<section class="tsd-panel tsd-hierarchy" data-refl="40355">
<h4>Hierarchy</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">ErrorOptions</span>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Process handle returned by a bridge launcher.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">BridgeLaunch</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#cleanup">cleanup</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/process_ProcessOwnership.ProcessCleanupResult.html" class="tsd-signature-type tsd-kind-type-alias">ProcessCleanupResult</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#ownsprocesslifetime">ownsProcessLifetime</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#process">process</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ChildProcess</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#shutdownbycleanup">shutdownByCleanup</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="39627">
<section class="tsd-panel tsd-hierarchy" data-refl="39628">
<h4>Hierarchy (<a href="../hierarchy.html#hopper/BridgeLauncher.BridgeLaunch">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><a href="process_ProviderProcess.ProviderProcessLaunch.html" class="tsd-signature-type tsd-kind-interface">ProviderProcessLaunch</a>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Process handle returned by a provider-specific launcher.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProviderProcessLaunch</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#cleanup">cleanup</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/process_ProcessOwnership.ProcessCleanupResult.html" class="tsd-signature-type tsd-kind-type-alias">ProcessCleanupResult</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#ownsprocesslifetime">ownsProcessLifetime</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#process">process</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ChildProcess</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
<section class="tsd-panel tsd-hierarchy" data-refl="40637">
<section class="tsd-panel tsd-hierarchy" data-refl="40638">
<h4>Hierarchy (<a href="../hierarchy.html#process/ProviderProcess.ProviderProcessLaunch">View Summary</a>)</h4>
<ul class="tsd-hierarchy">
<li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">ProviderProcessLaunch</span>

View File

@ -13,7 +13,7 @@
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="managedartifactinspection"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/domain_managedArtifact.ManagedArtifactInspection.html">ManagedArtifactInspection</a><a href="#managedartifactinspection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managedmemberinspection"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/domain_managedArtifact.ManagedMemberInspection.html">ManagedMemberInspection</a><a href="#managedmemberinspection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managednativeboundaryinspection"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/domain_managedArtifact.ManagedNativeBoundaryInspection.html">ManagedNativeBoundaryInspection</a><a href="#managednativeboundaryinspection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managedparseissue"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/domain_managedArtifact.ManagedParseIssue.html">ManagedParseIssue</a><a href="#managedparseissue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
<h2 class="tsd-anchor-link" id="variables">Variables<a href="#variables" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="managedartifactinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedArtifactInspectionSchema.html">managedArtifactInspectionSchema</a><a href="#managedartifactinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managedmemberinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedMemberInspectionSchema.html">managedMemberInspectionSchema</a><a href="#managedmemberinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managednativeboundaryinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedNativeBoundaryInspectionSchema.html">managedNativeBoundaryInspectionSchema</a><a href="#managednativeboundaryinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
<h2 class="tsd-anchor-link" id="variables">Variables<a href="#variables" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="climetadataguidschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.cliMetadataGuidSchema.html">cliMetadataGuidSchema</a><a href="#climetadataguidschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managedartifactinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedArtifactInspectionSchema.html">managedArtifactInspectionSchema</a><a href="#managedartifactinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managedmemberinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedMemberInspectionSchema.html">managedMemberInspectionSchema</a><a href="#managedmemberinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="managednativeboundaryinspectionschema"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/domain_managedArtifact.managedNativeBoundaryInspectionSchema.html">managedNativeBoundaryInspectionSchema</a><a href="#managednativeboundaryinspectionschema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
@ -31,7 +31,7 @@
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
<div><a href="#managedartifactinspection"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Managed<wbr/>Artifact<wbr/>Inspection</span></a><a href="#managedmemberinspection"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Managed<wbr/>Member<wbr/>Inspection</span></a><a href="#managednativeboundaryinspection"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Managed<wbr/>Native<wbr/>Boundary<wbr/>Inspection</span></a><a href="#managedparseissue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Managed<wbr/>Parse<wbr/>Issue</span></a></div></details>
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Variables</summary>
<div><a href="#managedartifactinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Artifact<wbr/>Inspection<wbr/>Schema</span></a><a href="#managedmemberinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Member<wbr/>Inspection<wbr/>Schema</span></a><a href="#managednativeboundaryinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Native<wbr/>Boundary<wbr/>Inspection<wbr/>Schema</span></a></div></details></div></details></div>
<div><a href="#climetadataguidschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>cli<wbr/>Metadata<wbr/>Guid<wbr/>Schema</span></a><a href="#managedartifactinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Artifact<wbr/>Inspection<wbr/>Schema</span></a><a href="#managedmemberinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Member<wbr/>Inspection<wbr/>Schema</span></a><a href="#managednativeboundaryinspectionschema"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>managed<wbr/>Native<wbr/>Boundary<wbr/>Inspection<wbr/>Schema</span></a></div></details></div></details></div>
<div class="site-menu">
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedArtifactInspection</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedArtifactInspection</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedArtifact.managedArtifactInspectionSchema.html" class="tsd-signature-type tsd-kind-variable">managedArtifactInspectionSchema</a><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L483">src/domain/managedArtifact.ts:483</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L488">src/domain/managedArtifact.ts:488</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedMemberInspection</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedMemberInspection</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedArtifact.managedMemberInspectionSchema.html" class="tsd-signature-type tsd-kind-variable">managedMemberInspectionSchema</a><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L486">src/domain/managedArtifact.ts:486</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L491">src/domain/managedArtifact.ts:491</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedNativeBoundaryInspection</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedNativeBoundaryInspection</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedArtifact.managedNativeBoundaryInspectionSchema.html" class="tsd-signature-type tsd-kind-variable">managedNativeBoundaryInspectionSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L489">src/domain/managedArtifact.ts:489</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L494">src/domain/managedArtifact.ts:494</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedParseIssue</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedParseIssue</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">managedParseIssueSchema</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L492">src/domain/managedArtifact.ts:492</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L497">src/domain/managedArtifact.ts:497</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias CompareManagedMembersInput</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">CompareManagedMembersInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedMemberComparison.compareManagedMembersInputSchema.html" class="tsd-signature-type tsd-kind-variable">compareManagedMembersInputSchema</a><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L170">src/domain/managedMemberComparison.ts:170</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L171">src/domain/managedMemberComparison.ts:171</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedMemberComparisonResult</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedMemberComparisonResult</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedMemberComparison.managedMemberComparisonResultSchema.html" class="tsd-signature-type tsd-kind-variable">managedMemberComparisonResultSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L173">src/domain/managedMemberComparison.ts:173</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L174">src/domain/managedMemberComparison.ts:174</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedNativeVerificationInput</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedNativeVerificationInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedNativeVerification.managedNativeVerificationInputSchema.html" class="tsd-signature-type tsd-kind-variable">managedNativeVerificationInputSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L163">src/domain/managedNativeVerification.ts:163</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L164">src/domain/managedNativeVerification.ts:164</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedNativeVerificationResult</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedNativeVerificationResult</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedNativeVerification.managedNativeVerificationResultSchema.html" class="tsd-signature-type tsd-kind-variable">managedNativeVerificationResultSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L166">src/domain/managedNativeVerification.ts:166</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L167">src/domain/managedNativeVerification.ts:167</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedReconstructionImportInput</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedReconstructionImportInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedReconstruction.managedReconstructionImportInputSchema.html" class="tsd-signature-type tsd-kind-variable">managedReconstructionImportInputSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedReconstruction.ts#L104">src/domain/managedReconstruction.ts:104</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedReconstruction.ts#L107">src/domain/managedReconstruction.ts:107</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedReconstructionImportResult</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedReconstructionImportResult</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedReconstruction.managedReconstructionImportResultSchema.html" class="tsd-signature-type tsd-kind-variable">managedReconstructionImportResultSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedReconstruction.ts#L107">src/domain/managedReconstruction.ts:107</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedReconstruction.ts#L110">src/domain/managedReconstruction.ts:110</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedRuntimeCorrelationInput</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedRuntimeCorrelationInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedRuntimeCorrelation.managedRuntimeCorrelationInputSchema.html" class="tsd-signature-type tsd-kind-variable">managedRuntimeCorrelationInputSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedRuntimeCorrelation.ts#L108">src/domain/managedRuntimeCorrelation.ts:108</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedRuntimeCorrelation.ts#L111">src/domain/managedRuntimeCorrelation.ts:111</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -13,7 +13,7 @@
<h1>Type Alias ManagedRuntimeCorrelationResult</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ManagedRuntimeCorrelationResult</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">z.infer</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-keyword">typeof</span> <a href="../variables/domain_managedRuntimeCorrelation.managedRuntimeCorrelationResultSchema.html" class="tsd-signature-type tsd-kind-variable">managedRuntimeCorrelationResultSchema</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedRuntimeCorrelation.ts#L111">src/domain/managedRuntimeCorrelation.ts:111</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedRuntimeCorrelation.ts#L114">src/domain/managedRuntimeCorrelation.ts:114</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -0,0 +1,35 @@
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cliMetadataGuidSchema | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
<ul role="listbox" id="tsd-search-results"></ul>
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
<div class="container container-main">
<div class="col-content">
<div class="tsd-page-title">
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
<li><a href="../modules/domain_managedArtifact.html">domain/managedArtifact</a></li>
<li><a href="" aria-current="page">cliMetadataGuidSchema</a></li></ul>
<h1>Variable cliMetadataGuidSchema<code class="tsd-tag">Const</code></h1></div>
<div class="tsd-signature"><span class="tsd-kind-variable">cliMetadataGuidSchema</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ZodString</span><span class="tsd-signature-symbol"> = ...</span></div>
<div class="tsd-comment tsd-typography"><p>A 16-byte CLI metadata GUID without RFC 4122 version/variant restrictions.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L8">src/domain/managedArtifact.ts:8</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
<h3>Settings</h3></summary>
<div class="tsd-accordion-details">
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
<ul id="tsd-filter-options">
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
<div class="site-menu">
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
<li>Loading...</li></ul></nav></div></div></div><footer>
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
<div class="overlay"></div></body></html>

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider-neutral, execution-free PE/CLI triage and identity result.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L303">src/domain/managedArtifact.ts:303</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L308">src/domain/managedArtifact.ts:308</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider-neutral, execution-free metadata/signature/IL member inspection.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L399">src/domain/managedArtifact.ts:399</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L404">src/domain/managedArtifact.ts:404</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider-neutral managed/native boundary observations from PE/CLI metadata.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L435">src/domain/managedArtifact.ts:435</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedArtifact.ts#L440">src/domain/managedArtifact.ts:440</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Two authenticated managed member observations and deterministic bounds.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L25">src/domain/managedMemberComparison.ts:25</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L26">src/domain/managedMemberComparison.ts:26</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Obfuscation-resistant, execution-free managed member comparison.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L115">src/domain/managedMemberComparison.ts:115</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedMemberComparison.ts#L116">src/domain/managedMemberComparison.ts:116</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Authenticated managed boundary Evidence plus native observations.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L27">src/domain/managedNativeVerification.ts:27</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L28">src/domain/managedNativeVerification.ts:28</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -15,7 +15,7 @@
<div class="tsd-comment tsd-typography"><p>Provider-neutral managed/native verification result.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L116">src/domain/managedNativeVerification.ts:116</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/managedNativeVerification.ts#L117">src/domain/managedNativeVerification.ts:117</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -93,6 +93,10 @@ commitment groups:
locations;
- parser/provider version, profile schema, limits, and profile digest.
CLI `#GUID` heap values are committed as their exact 16-byte GUID text. REA
does not impose RFC 4122 UUID version or variant bits on MVID, EncId, or
EncBaseId because ECMA-335 metadata does not require those bit patterns.
### Entity commitment
- table kind and build-local token;
@ -294,6 +298,7 @@ absolute or relative to the manifest file. A compact manifest contains:
"token": "0x06000000",
"signature_sha256": "<raw signature blob digest>",
"il_size": 0,
"il_sha256": "<raw CIL byte digest>",
"normalized_il_sha256": "<digest>"
}
],
@ -324,7 +329,8 @@ assembly name, runtime-family, and managed-architecture mismatches whenever the
manifest supplies those fields. It then pages each declared MethodDef token
directly by row, so selected methods do not need to appear in the first member
page of a large application. `il_length` remains accepted as a legacy alias for
`il_size`.
`il_size`; optional `il_sha256` locks the exact raw CIL bytes in addition to
REA's schema-versioned normalized instruction digest.
The optional `application_graph` block reuses those exact-build method
commitments. For each referenced MethodDef token, the verifier builds a bounded

View File

@ -554,10 +554,10 @@
"mcp_resource_templates": 7
},
"digests": {
"tools_sha256": "ba702b4ae9cb9ced5eb06e1ebe5c3c787d489547abe3ce5f7c5e36bb8af1f83c",
"tools_sha256": "4372faa54a281e28731f66e49af0860ba8737a4439c20ef06aa143e13282e836",
"prompts_sha256": "f6da3ad38a1000c11364d1710f122ac4990551f04efd8c53ffb2e819b5cf5707",
"resources_sha256": "e603aad57a79479004fbdc267644092e8365dd64d94ad772b9da4425a49abd73",
"combined_sha256": "bdf382596e1a00ffc9d59de287b2ad647eeebe629c48a8f8cf158b300363ce53"
"combined_sha256": "a2f9a66207730ca05cfa8a5d60d9cfeb7cadfb6b11665a58d404de2e86bb2457"
}
}
}

View File

@ -600,6 +600,7 @@ async function runManagedAppManifestSelfTest() {
token: method.token,
signature_sha256: method.signature.raw_sha256,
il_size: method.body.il_size,
il_sha256: method.body.il_sha256,
normalized_il_sha256: method.body.normalized_il_sha256,
},
],
@ -884,11 +885,16 @@ async function verifyManagedAppManifest(rawManifest, manifestPath) {
method.body.il_size === expectedMethod.il_size,
`method ${expectedMethod.token} IL size mismatch: expected ${String(expectedMethod.il_size)}, observed ${String(method.body.il_size)}`,
);
if (expectedMethod.il_sha256 !== undefined)
ensure(
method.body.il_sha256 === expectedMethod.il_sha256,
`method ${expectedMethod.token} IL sha256 mismatch: expected ${expectedMethod.il_sha256}, observed ${method.body.il_sha256 ?? "null"}`,
);
ensure(
method.body.normalized_il_sha256 === expectedMethod.normalized_il_sha256,
`method ${expectedMethod.token} normalized IL sha256 mismatch: expected ${expectedMethod.normalized_il_sha256}, observed ${method.body.normalized_il_sha256 ?? "null"}`,
);
assertions += 4;
assertions += expectedMethod.il_sha256 === undefined ? 4 : 5;
inspectedMethods.set(expectedMethod.token, method);
methods.push({
label: expectedMethod.label ?? null,
@ -897,6 +903,7 @@ async function verifyManagedAppManifest(rawManifest, manifestPath) {
name: method.name,
signature_sha256: method.signature.raw_sha256,
il_size: method.body.il_size,
il_sha256: method.body.il_sha256,
normalized_il_sha256: method.body.normalized_il_sha256,
});
}
@ -1103,7 +1110,7 @@ function parseManagedAppManifest(rawManifest) {
target: {
path: string(target.path, "manifest.target.path"),
sha256: digest(target.sha256, "manifest.target.sha256"),
mvid: optionalUuid(target.mvid, "manifest.target.mvid"),
mvid: optionalCliMetadataGuid(target.mvid, "manifest.target.mvid"),
assembly_name: optionalString(
target.assembly_name,
"manifest.target.assembly_name",
@ -1196,6 +1203,10 @@ function parseManagedAppManifestMethod(rawMethod, index) {
`${prefix}.signature_sha256`,
),
il_size: ilSize(method, prefix),
il_sha256:
method.il_sha256 === undefined
? undefined
: digest(method.il_sha256, `${prefix}.il_sha256`),
normalized_il_sha256: digest(
method.normalized_il_sha256,
`${prefix}.normalized_il_sha256`,
@ -1255,7 +1266,7 @@ function digest(value, name) {
return text;
}
function optionalUuid(value, name) {
function optionalCliMetadataGuid(value, name) {
if (value === undefined) return undefined;
if (value === null) return null;
const text = string(value, name);

View File

@ -4,7 +4,7 @@ description: Reverse engineer native, Electron/JavaScript, and web applications
metadata:
version: "20"
tool_count: 91
catalog_digest: "bdf382596e1a00ffc9d59de287b2ad647eeebe629c48a8f8cf158b300363ce53"
catalog_digest: "a2f9a66207730ca05cfa8a5d60d9cfeb7cadfb6b11665a58d404de2e86bb2457"
---
# REA

View File

@ -4,6 +4,11 @@ const digestSchema = z.string().regex(/^[a-f0-9]{64}$/u);
const tokenSchema = z.string().regex(/^0x[0-9a-f]{8}$/u);
const offsetSchema = z.number().int().min(0);
/** A 16-byte CLI metadata GUID without RFC 4122 version/variant restrictions. */
export const cliMetadataGuidSchema = z
.string()
.regex(/^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$/u);
const managedPage = <Item extends z.ZodType>(item: Item) =>
z.object({
items: z.array(item),
@ -39,9 +44,9 @@ const assemblyIdentitySchema = z.object({
const moduleIdentitySchema = z.object({
name: z.string(),
generation: z.number().int().min(0).max(0xffff),
mvid: z.string().uuid().nullable(),
enc_id: z.string().uuid().nullable(),
enc_base_id: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
enc_id: cliMetadataGuidSchema.nullable(),
enc_base_id: cliMetadataGuidSchema.nullable(),
token: tokenSchema,
row_offset: offsetSchema,
});
@ -416,7 +421,7 @@ export const managedMemberInspectionSchema = z.object({
identity_scope: z.object({
token_identity: z.literal("build-local"),
requires_artifact_sha256: digestSchema,
requires_mvid: z.string().uuid().nullable(),
requires_mvid: cliMetadataGuidSchema.nullable(),
}),
types: managedPage(managedTypeSchema),
fields: managedPage(managedFieldSchema),
@ -452,7 +457,7 @@ export const managedNativeBoundaryInspectionSchema = z.object({
identity_scope: z.object({
token_identity: z.literal("build-local"),
requires_artifact_sha256: digestSchema,
requires_mvid: z.string().uuid().nullable(),
requires_mvid: cliMetadataGuidSchema.nullable(),
}),
cli_native: z.object({
il_only: z.boolean(),

View File

@ -5,6 +5,7 @@ import { z } from "zod";
import { evidenceSchema, parseEvidence } from "./evidence.js";
import {
cliMetadataGuidSchema,
managedMemberInspectionSchema,
type ManagedMemberInspection,
} from "./managedArtifact.js";
@ -124,7 +125,7 @@ export const managedMemberComparisonResultSchema = z.strictObject({
left: z.strictObject({
evidence_id: evidenceIdSchema,
artifact_sha256: digestSchema,
mvid: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
module_name: z.string().nullable(),
metadata_status: z.enum(["absent", "complete", "partial", "malformed"]),
methods_total: z.number().int().min(0),
@ -133,7 +134,7 @@ export const managedMemberComparisonResultSchema = z.strictObject({
right: z.strictObject({
evidence_id: evidenceIdSchema,
artifact_sha256: digestSchema,
mvid: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
module_name: z.string().nullable(),
metadata_status: z.enum(["absent", "complete", "partial", "malformed"]),
methods_total: z.number().int().min(0),

View File

@ -7,6 +7,7 @@ import { z } from "zod";
import { evidenceSchema, parseEvidence } from "./evidence.js";
import { functionDossierSchema } from "./hopperValues.js";
import {
cliMetadataGuidSchema,
managedNativeBoundaryInspectionSchema,
type ManagedNativeBoundaryInspection,
} from "./managedArtifact.js";
@ -126,7 +127,7 @@ export const managedNativeVerificationResultSchema = z.strictObject({
evidence_id: evidenceIdSchema,
artifact_sha256: digestSchema,
artifact_path: z.string().min(1),
mvid: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
metadata_status: z.enum(["absent", "complete", "partial", "malformed"]),
pinvoke_imports_total: z.number().int().min(0),
native_implementations_total: z.number().int().min(0),

View File

@ -4,7 +4,10 @@ import canonicalize from "canonicalize";
import { z } from "zod";
import { evidenceSchema, parseEvidence } from "./evidence.js";
import { managedMemberInspectionSchema } from "./managedArtifact.js";
import {
cliMetadataGuidSchema,
managedMemberInspectionSchema,
} from "./managedArtifact.js";
import type { JsonValue } from "./jsonValue.js";
const digestSchema = z.string().regex(/^[a-f0-9]{64}$/u);
@ -82,7 +85,7 @@ export const managedReconstructionImportResultSchema = z.strictObject({
artifact_path: z.string().min(1),
byte_length: z.number().int().min(0),
module_name: z.string().nullable(),
mvid: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
metadata_status: z.enum(["absent", "complete", "partial", "malformed"]),
}),
decompiler: decompilerSchema.extend({

View File

@ -4,7 +4,10 @@ import canonicalize from "canonicalize";
import { z } from "zod";
import { evidenceSchema, parseEvidence } from "./evidence.js";
import { managedMemberInspectionSchema } from "./managedArtifact.js";
import {
cliMetadataGuidSchema,
managedMemberInspectionSchema,
} from "./managedArtifact.js";
import type { JsonValue } from "./jsonValue.js";
const digestSchema = z.string().regex(/^[a-f0-9]{64}$/u);
@ -70,7 +73,7 @@ export const managedRuntimeCorrelationResultSchema = z.strictObject({
artifact_path: z.string().min(1),
byte_length: z.number().int().min(0),
module_name: z.string().nullable(),
mvid: z.string().uuid().nullable(),
mvid: cliMetadataGuidSchema.nullable(),
metadata_status: z.enum(["absent", "complete", "partial", "malformed"]),
}),
method_lock: z.strictObject({

View File

@ -497,6 +497,7 @@ const OPCODES = new Map<
{ readonly name: string; readonly operand: string }
>([
[0x00, { name: "nop", operand: "none" }],
[0x01, { name: "break", operand: "none" }],
[0x02, { name: "ldarg.0", operand: "none" }],
[0x03, { name: "ldarg.1", operand: "none" }],
[0x04, { name: "ldarg.2", operand: "none" }],
@ -511,7 +512,9 @@ const OPCODES = new Map<
[0x0d, { name: "stloc.3", operand: "none" }],
[0x0e, { name: "ldarg.s", operand: "short-var" }],
[0x0f, { name: "ldarga.s", operand: "short-var" }],
[0x10, { name: "starg.s", operand: "short-var" }],
[0x11, { name: "ldloc.s", operand: "short-var" }],
[0x12, { name: "ldloca.s", operand: "short-var" }],
[0x13, { name: "stloc.s", operand: "short-var" }],
[0x14, { name: "ldnull", operand: "none" }],
[0x15, { name: "ldc.i4.m1", operand: "none" }],
@ -526,43 +529,191 @@ const OPCODES = new Map<
[0x1e, { name: "ldc.i4.8", operand: "none" }],
[0x1f, { name: "ldc.i4.s", operand: "short-i" }],
[0x20, { name: "ldc.i4", operand: "i" }],
[0x21, { name: "ldc.i8", operand: "i8" }],
[0x22, { name: "ldc.r4", operand: "r4" }],
[0x23, { name: "ldc.r8", operand: "r8" }],
[0x25, { name: "dup", operand: "none" }],
[0x26, { name: "pop", operand: "none" }],
[0x27, { name: "jmp", operand: "method" }],
[0x28, { name: "call", operand: "method" }],
[0x29, { name: "calli", operand: "signature" }],
[0x2a, { name: "ret", operand: "none" }],
[0x2b, { name: "br.s", operand: "short-branch" }],
[0x2c, { name: "brfalse.s", operand: "short-branch" }],
[0x2d, { name: "brtrue.s", operand: "short-branch" }],
[0x2e, { name: "beq.s", operand: "short-branch" }],
[0x2f, { name: "bge.s", operand: "short-branch" }],
[0x30, { name: "bgt.s", operand: "short-branch" }],
[0x31, { name: "ble.s", operand: "short-branch" }],
[0x32, { name: "blt.s", operand: "short-branch" }],
[0x33, { name: "bne.un.s", operand: "short-branch" }],
[0x34, { name: "bge.un.s", operand: "short-branch" }],
[0x35, { name: "bgt.un.s", operand: "short-branch" }],
[0x36, { name: "ble.un.s", operand: "short-branch" }],
[0x37, { name: "blt.un.s", operand: "short-branch" }],
[0x38, { name: "br", operand: "branch" }],
[0x39, { name: "brfalse", operand: "branch" }],
[0x3a, { name: "brtrue", operand: "branch" }],
[0x3b, { name: "beq", operand: "branch" }],
[0x3c, { name: "bge", operand: "branch" }],
[0x3d, { name: "bgt", operand: "branch" }],
[0x3e, { name: "ble", operand: "branch" }],
[0x3f, { name: "blt", operand: "branch" }],
[0x40, { name: "bne.un", operand: "branch" }],
[0x41, { name: "bge.un", operand: "branch" }],
[0x42, { name: "bgt.un", operand: "branch" }],
[0x43, { name: "ble.un", operand: "branch" }],
[0x44, { name: "blt.un", operand: "branch" }],
[0x45, { name: "switch", operand: "switch" }],
[0x46, { name: "ldind.i1", operand: "none" }],
[0x47, { name: "ldind.u1", operand: "none" }],
[0x48, { name: "ldind.i2", operand: "none" }],
[0x49, { name: "ldind.u2", operand: "none" }],
[0x4a, { name: "ldind.i4", operand: "none" }],
[0x4b, { name: "ldind.u4", operand: "none" }],
[0x4c, { name: "ldind.i8", operand: "none" }],
[0x4d, { name: "ldind.i", operand: "none" }],
[0x4e, { name: "ldind.r4", operand: "none" }],
[0x4f, { name: "ldind.r8", operand: "none" }],
[0x50, { name: "ldind.ref", operand: "none" }],
[0x51, { name: "stind.ref", operand: "none" }],
[0x52, { name: "stind.i1", operand: "none" }],
[0x53, { name: "stind.i2", operand: "none" }],
[0x54, { name: "stind.i4", operand: "none" }],
[0x55, { name: "stind.i8", operand: "none" }],
[0x56, { name: "stind.r4", operand: "none" }],
[0x57, { name: "stind.r8", operand: "none" }],
[0x58, { name: "add", operand: "none" }],
[0x59, { name: "sub", operand: "none" }],
[0x5a, { name: "mul", operand: "none" }],
[0x5b, { name: "div", operand: "none" }],
[0x5c, { name: "div.un", operand: "none" }],
[0x5d, { name: "rem", operand: "none" }],
[0x5e, { name: "rem.un", operand: "none" }],
[0x5f, { name: "and", operand: "none" }],
[0x60, { name: "or", operand: "none" }],
[0x61, { name: "xor", operand: "none" }],
[0x62, { name: "shl", operand: "none" }],
[0x63, { name: "shr", operand: "none" }],
[0x64, { name: "shr.un", operand: "none" }],
[0x65, { name: "neg", operand: "none" }],
[0x66, { name: "not", operand: "none" }],
[0x67, { name: "conv.i1", operand: "none" }],
[0x68, { name: "conv.i2", operand: "none" }],
[0x69, { name: "conv.i4", operand: "none" }],
[0x6a, { name: "conv.i8", operand: "none" }],
[0x6b, { name: "conv.r4", operand: "none" }],
[0x6c, { name: "conv.r8", operand: "none" }],
[0x6d, { name: "conv.u4", operand: "none" }],
[0x6e, { name: "conv.u8", operand: "none" }],
[0x6f, { name: "callvirt", operand: "method" }],
[0x70, { name: "cpobj", operand: "type" }],
[0x71, { name: "ldobj", operand: "type" }],
[0x72, { name: "ldstr", operand: "string" }],
[0x73, { name: "newobj", operand: "method" }],
[0x74, { name: "castclass", operand: "type" }],
[0x75, { name: "isinst", operand: "type" }],
[0x76, { name: "conv.r.un", operand: "none" }],
[0x79, { name: "unbox", operand: "type" }],
[0x7a, { name: "throw", operand: "none" }],
[0x7b, { name: "ldfld", operand: "field" }],
[0x7c, { name: "ldflda", operand: "field" }],
[0x7d, { name: "stfld", operand: "field" }],
[0x7e, { name: "ldsfld", operand: "field" }],
[0x7f, { name: "ldsflda", operand: "field" }],
[0x80, { name: "stsfld", operand: "field" }],
[0x81, { name: "stobj", operand: "type" }],
[0x82, { name: "conv.ovf.i1.un", operand: "none" }],
[0x83, { name: "conv.ovf.i2.un", operand: "none" }],
[0x84, { name: "conv.ovf.i4.un", operand: "none" }],
[0x85, { name: "conv.ovf.i8.un", operand: "none" }],
[0x86, { name: "conv.ovf.u1.un", operand: "none" }],
[0x87, { name: "conv.ovf.u2.un", operand: "none" }],
[0x88, { name: "conv.ovf.u4.un", operand: "none" }],
[0x89, { name: "conv.ovf.u8.un", operand: "none" }],
[0x8a, { name: "conv.ovf.i.un", operand: "none" }],
[0x8b, { name: "conv.ovf.u.un", operand: "none" }],
[0x8c, { name: "box", operand: "type" }],
[0x8d, { name: "newarr", operand: "type" }],
[0x8e, { name: "ldlen", operand: "none" }],
[0x8f, { name: "ldelema", operand: "type" }],
[0x90, { name: "ldelem.i1", operand: "none" }],
[0x91, { name: "ldelem.u1", operand: "none" }],
[0x92, { name: "ldelem.i2", operand: "none" }],
[0x93, { name: "ldelem.u2", operand: "none" }],
[0x94, { name: "ldelem.i4", operand: "none" }],
[0x95, { name: "ldelem.u4", operand: "none" }],
[0x96, { name: "ldelem.i8", operand: "none" }],
[0x97, { name: "ldelem.i", operand: "none" }],
[0x98, { name: "ldelem.r4", operand: "none" }],
[0x99, { name: "ldelem.r8", operand: "none" }],
[0x9a, { name: "ldelem.ref", operand: "none" }],
[0x9b, { name: "stelem.i", operand: "none" }],
[0x9c, { name: "stelem.i1", operand: "none" }],
[0x9d, { name: "stelem.i2", operand: "none" }],
[0x9e, { name: "stelem.i4", operand: "none" }],
[0x9f, { name: "stelem.i8", operand: "none" }],
[0xa0, { name: "stelem.r4", operand: "none" }],
[0xa1, { name: "stelem.r8", operand: "none" }],
[0xa2, { name: "stelem.ref", operand: "none" }],
[0xa3, { name: "ldelem", operand: "type" }],
[0xa4, { name: "stelem", operand: "type" }],
[0xa5, { name: "unbox.any", operand: "type" }],
[0xb3, { name: "conv.ovf.i1", operand: "none" }],
[0xb4, { name: "conv.ovf.u1", operand: "none" }],
[0xb5, { name: "conv.ovf.i2", operand: "none" }],
[0xb6, { name: "conv.ovf.u2", operand: "none" }],
[0xb7, { name: "conv.ovf.i4", operand: "none" }],
[0xb8, { name: "conv.ovf.u4", operand: "none" }],
[0xb9, { name: "conv.ovf.i8", operand: "none" }],
[0xba, { name: "conv.ovf.u8", operand: "none" }],
[0xc2, { name: "refanyval", operand: "type" }],
[0xc3, { name: "ckfinite", operand: "none" }],
[0xc6, { name: "mkrefany", operand: "type" }],
[0xd0, { name: "ldtoken", operand: "token" }],
[0xd1, { name: "conv.u2", operand: "none" }],
[0xd2, { name: "conv.u1", operand: "none" }],
[0xd3, { name: "conv.i", operand: "none" }],
[0xd4, { name: "conv.ovf.i", operand: "none" }],
[0xd5, { name: "conv.ovf.u", operand: "none" }],
[0xd6, { name: "add.ovf", operand: "none" }],
[0xd7, { name: "add.ovf.un", operand: "none" }],
[0xd8, { name: "mul.ovf", operand: "none" }],
[0xd9, { name: "mul.ovf.un", operand: "none" }],
[0xda, { name: "sub.ovf", operand: "none" }],
[0xdb, { name: "sub.ovf.un", operand: "none" }],
[0xdc, { name: "endfinally", operand: "none" }],
[0xdd, { name: "leave", operand: "branch" }],
[0xde, { name: "leave.s", operand: "short-branch" }],
[0xdf, { name: "stind.i", operand: "none" }],
[0xe0, { name: "conv.u", operand: "none" }],
[0xfe00, { name: "arglist", operand: "none" }],
[0xfe01, { name: "ceq", operand: "none" }],
[0xfe02, { name: "cgt", operand: "none" }],
[0xfe03, { name: "cgt.un", operand: "none" }],
[0xfe04, { name: "clt", operand: "none" }],
[0xfe05, { name: "clt.un", operand: "none" }],
[0xfe06, { name: "ldftn", operand: "method" }],
[0xfe07, { name: "ldvirtftn", operand: "method" }],
[0xfe09, { name: "ldarg", operand: "var" }],
[0xfe0a, { name: "ldarga", operand: "var" }],
[0xfe0b, { name: "starg", operand: "var" }],
[0xfe0c, { name: "ldloc", operand: "var" }],
[0xfe0d, { name: "ldloca", operand: "var" }],
[0xfe0e, { name: "stloc", operand: "var" }],
[0xfe0f, { name: "localloc", operand: "none" }],
[0xfe11, { name: "endfilter", operand: "none" }],
[0xfe12, { name: "unaligned.", operand: "short-i" }],
[0xfe13, { name: "volatile.", operand: "none" }],
[0xfe14, { name: "tail.", operand: "none" }],
[0xfe15, { name: "initobj", operand: "type" }],
[0xfe16, { name: "constrained.", operand: "type" }],
[0xfe17, { name: "cpblk", operand: "none" }],
[0xfe18, { name: "initblk", operand: "none" }],
[0xfe1a, { name: "rethrow", operand: "none" }],
[0xfe1c, { name: "sizeof", operand: "type" }],
[0xfe1d, { name: "refanytype", operand: "none" }],
[0xfe1e, { name: "readonly.", operand: "none" }],
]);
const tokenKind = (token: string): ManagedInstructionAnchor["operand_kind"] => {
@ -584,78 +735,127 @@ const tokenKind = (token: string): ManagedInstructionAnchor["operand_kind"] => {
return "token";
};
type OperandResult = {
readonly next: number;
readonly anchorKind: ManagedInstructionAnchor["operand_kind"];
readonly value: string | null;
};
type OperandReader = (il: Buffer, offset: number) => OperandResult;
const FIXED_OPERAND_READERS = new Map<string, OperandReader>([
[
"none",
(_il, offset) => ({ next: offset, anchorKind: "none", value: null }),
],
[
"short-var",
(il, offset) => ({
next: offset + 1,
anchorKind: "variable",
value: String(il.readUInt8(offset)),
}),
],
[
"var",
(il, offset) => ({
next: offset + 2,
anchorKind: "variable",
value: String(il.readUInt16LE(offset)),
}),
],
[
"short-i",
(il, offset) => ({
next: offset + 1,
anchorKind: "constant",
value: String(il.readInt8(offset)),
}),
],
[
"i",
(il, offset) => ({
next: offset + 4,
anchorKind: "constant",
value: String(il.readInt32LE(offset)),
}),
],
[
"i8",
(il, offset) => ({
next: offset + 8,
anchorKind: "constant",
value: il.readBigInt64LE(offset).toString(),
}),
],
[
"r4",
(il, offset) => ({
next: offset + 4,
anchorKind: "constant",
value: String(il.readFloatLE(offset)),
}),
],
[
"r8",
(il, offset) => ({
next: offset + 8,
anchorKind: "constant",
value: String(il.readDoubleLE(offset)),
}),
],
[
"short-branch",
(il, offset) => ({
next: offset + 1,
anchorKind: "branch",
value: String(offset + 1 + il.readInt8(offset)),
}),
],
[
"branch",
(il, offset) => ({
next: offset + 4,
anchorKind: "branch",
value: String(offset + 4 + il.readInt32LE(offset)),
}),
],
]);
const TOKEN_OPERAND_KINDS = new Map<
string,
ManagedInstructionAnchor["operand_kind"]
>([
["method", "method"],
["field", "field"],
["type", "type"],
["string", "string"],
["signature", "signature"],
]);
const readOperand = (
il: Buffer,
offset: number,
kind: string,
): {
readonly next: number;
readonly anchorKind: ManagedInstructionAnchor["operand_kind"];
readonly value: string | null;
} => {
switch (kind) {
case "none":
return { next: offset, anchorKind: "none", value: null };
case "short-var":
return {
next: offset + 1,
anchorKind: "variable",
value: String(il.readUInt8(offset)),
};
case "var":
return {
next: offset + 2,
anchorKind: "variable",
value: String(il.readUInt16LE(offset)),
};
case "short-i":
return {
next: offset + 1,
anchorKind: "constant",
value: String(il.readInt8(offset)),
};
case "i":
return {
next: offset + 4,
anchorKind: "constant",
value: String(il.readInt32LE(offset)),
};
case "short-branch":
return {
next: offset + 1,
anchorKind: "branch",
value: String(offset + 1 + il.readInt8(offset)),
};
case "branch":
return {
next: offset + 4,
anchorKind: "branch",
value: String(offset + 4 + il.readInt32LE(offset)),
};
case "switch": {
const count = il.readUInt32LE(offset);
return {
next: offset + 4 + count * 4,
anchorKind: "switch",
value: String(count),
};
}
case "method":
case "field":
case "type":
case "string":
case "token": {
const raw = il.readUInt32LE(offset);
const token = `0x${raw.toString(16).padStart(8, "0")}`;
return {
next: offset + 4,
anchorKind: kind === "token" ? tokenKind(token) : kind,
value: token,
};
}
default:
return { next: offset, anchorKind: "unknown", value: null };
): OperandResult => {
const fixed = FIXED_OPERAND_READERS.get(kind);
if (fixed !== undefined) return fixed(il, offset);
if (kind === "switch") {
const count = il.readUInt32LE(offset);
return {
next: offset + 4 + count * 4,
anchorKind: "switch",
value: String(count),
};
}
const raw = il.readUInt32LE(offset);
const token = `0x${raw.toString(16).padStart(8, "0")}`;
const tokenOperandKind = TOKEN_OPERAND_KINDS.get(kind);
if (tokenOperandKind !== undefined)
return { next: offset + 4, anchorKind: tokenOperandKind, value: token };
if (kind === "token")
return { next: offset + 4, anchorKind: tokenKind(token), value: token };
return { next: offset, anchorKind: "unknown", value: null };
};
const decodeInstructions = (
@ -676,10 +876,11 @@ const decodeInstructions = (
const first = il.readUInt8(offset);
offset += 1;
const code = first === 0xfe ? 0xfe00 + il.readUInt8(offset++) : first;
const descriptor = opcode(code) ?? {
name: `unknown.0x${code.toString(16)}`,
operand: "none",
};
const descriptor = opcode(code);
if (descriptor === undefined) {
issue = `Unsupported CIL opcode 0x${code.toString(16)} at IL offset ${String(start)}`;
break;
}
const operand = readOperand(il, offset, descriptor.operand);
if (operand.next < offset || operand.next > il.length) {
issue = `Instruction ${descriptor.name} at IL offset ${String(start)} leaves method body`;
@ -751,6 +952,49 @@ const parseExceptionRegions = (
return regions;
};
interface MethodBodyHeader {
readonly format: "tiny" | "fat";
readonly size: number;
readonly flags: number;
readonly maxStack: number;
readonly ilSize: number;
readonly localSig: number;
}
const readMethodBodyHeader = (
bytes: Buffer,
offset: number,
): MethodBodyHeader => {
const first = bytes.readUInt8(offset);
if ((first & 3) === 2)
return {
format: "tiny",
size: 1,
flags: 0,
maxStack: 8,
ilSize: first >> 2,
localSig: 0,
};
if ((first & 3) !== 3) throw new RangeError("Unsupported method body header");
if (offset > bytes.length - 12)
throw new RangeError("Fat method body header leaves artifact");
const flagsAndSize = bytes.readUInt16LE(offset);
const headerDwords = flagsAndSize >>> 12;
if (headerDwords < 3)
throw new RangeError("Fat method body header is smaller than 12 bytes");
const size = headerDwords * 4;
if (offset > bytes.length - size)
throw new RangeError("Method body header leaves artifact");
return {
format: "fat",
size,
flags: flagsAndSize & 0x0fff,
maxStack: bytes.readUInt16LE(offset + 2),
ilSize: bytes.readUInt32LE(offset + 4),
localSig: bytes.readUInt32LE(offset + 8),
};
};
const methodBody = (
bytes: Buffer,
pe: ManagedPeLayout,
@ -779,26 +1023,20 @@ const methodBody = (
};
try {
const offset = pe.rvaToOffset(rva, 1, "method.body");
const first = bytes.readUInt8(offset);
const tiny = (first & 3) === 2;
const fat = (first & 3) === 3;
if (!tiny && !fat) throw new RangeError("Unsupported method body header");
const headerSize = tiny ? 1 : (first >> 4) * 4;
const flags = tiny ? 0 : bytes.readUInt16LE(offset);
const maxStack = tiny ? 8 : bytes.readUInt16LE(offset + 2);
const ilSize = tiny ? first >> 2 : bytes.readUInt32LE(offset + 4);
const localSig = tiny ? 0 : bytes.readUInt32LE(offset + 8);
if (ilSize > limits.maxMethodBodyBytes)
const header = readMethodBodyHeader(bytes, offset);
if (header.ilSize > limits.maxMethodBodyBytes)
return {
status: "too-large",
header_format: tiny ? "tiny" : "fat",
header_format: header.format,
rva,
file_offset: offset,
max_stack: maxStack,
init_locals: tiny ? false : (flags & 0x10) !== 0,
max_stack: header.maxStack,
init_locals: (header.flags & 0x10) !== 0,
local_var_sig_token:
localSig === 0 ? null : `0x${localSig.toString(16).padStart(8, "0")}`,
il_size: ilSize,
header.localSig === 0
? null
: `0x${header.localSig.toString(16).padStart(8, "0")}`,
il_size: header.ilSize,
il_sha256: null,
normalized_il_sha256: null,
instruction_count: 0,
@ -809,10 +1047,10 @@ const methodBody = (
exception_regions: [],
issue: `Method body exceeds max_method_body_bytes ${String(limits.maxMethodBodyBytes)}`,
};
const ilOffset = offset + headerSize;
if (ilOffset > bytes.length - ilSize)
const ilOffset = offset + header.size;
if (ilOffset > bytes.length - header.ilSize)
throw new RangeError("Method IL bytes leave artifact");
const il = bytes.subarray(ilOffset, ilOffset + ilSize);
const il = bytes.subarray(ilOffset, ilOffset + header.ilSize);
const decoded = decodeInstructions(il, limits.maxMethodInstructions);
const opcodeCounts: Record<string, number> = {};
for (const instruction of decoded.parsed)
@ -838,18 +1076,20 @@ const methodBody = (
),
"utf8",
);
const methodEnd = ilOffset + ilSize;
const methodEnd = ilOffset + header.ilSize;
const sectionOffset = (methodEnd + 3) & ~3;
return {
status: decoded.issue === null ? "present" : "malformed",
header_format: tiny ? "tiny" : "fat",
header_format: header.format,
rva,
file_offset: offset,
max_stack: maxStack,
init_locals: tiny ? false : (flags & 0x10) !== 0,
max_stack: header.maxStack,
init_locals: (header.flags & 0x10) !== 0,
local_var_sig_token:
localSig === 0 ? null : `0x${localSig.toString(16).padStart(8, "0")}`,
il_size: ilSize,
header.localSig === 0
? null
: `0x${header.localSig.toString(16).padStart(8, "0")}`,
il_size: header.ilSize,
il_sha256: sha256Bytes(il),
normalized_il_sha256: sha256Bytes(normalized),
instruction_count: decoded.count,
@ -858,7 +1098,7 @@ const methodBody = (
opcode_counts: opcodeCounts,
anchors,
exception_regions:
fat && (flags & 8) !== 0
header.format === "fat" && (header.flags & 8) !== 0
? parseExceptionRegions(bytes, sectionOffset, bytes.length)
: [],
issue: decoded.issue,

View File

@ -131,6 +131,82 @@ describe("managed PE/CLI static provider", () => {
expect(result.coverage.issues).toEqual([]);
});
it("accepts CLI metadata GUIDs without RFC UUID version or variant bits", () => {
const bytes = buildManagedPeFixture({
mvid: Buffer.from("3aebc60edc4a544b1f458b4ed40b33b1", "hex"),
});
const result = inspectManagedArtifactBytes(bytes, target(bytes), limits);
const members = inspectManagedMembersBytes(
bytes,
target(bytes),
memberLimits,
);
const boundaries = inspectManagedNativeBoundariesBytes(
bytes,
target(bytes),
nativeBoundaryLimits,
);
expect(result.module?.mvid).toBe("0ec6eb3a-4adc-4b54-1f45-8b4ed40b33b1");
expect(result.classification.status).toBe("managed");
expect(members.identity_scope.requires_mvid).toBe(result.module?.mvid);
expect(boundaries.identity_scope.requires_mvid).toBe(result.module?.mvid);
});
it("reads fat method header size from the full flags-and-size word", () => {
const il = Buffer.from([
0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x22, 0x00,
0x00, 0x80, 0x3f, 0x26, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
0x3f, 0x26, 0xfe, 0x06, 0x01, 0x00, 0x00, 0x06, 0x26, 0x2a,
]);
const header = Buffer.alloc(12);
header.writeUInt16LE(0x3013, 0);
header.writeUInt16LE(8, 2);
header.writeUInt32LE(il.length, 4);
const bytes = buildManagedPeFixture({
ilBody: Buffer.concat([header, il]),
});
const result = inspectManagedMembersBytes(
bytes,
target(bytes),
memberLimits,
);
expect(result.methods.items[0]?.body).toMatchObject({
status: "present",
header_format: "fat",
il_size: il.length,
il_sha256: createHash("sha256").update(il).digest("hex"),
opcode_counts: {
"ldc.i8": 1,
pop: 4,
"ldc.r4": 1,
"ldc.r8": 1,
ldftn: 1,
ret: 1,
},
issue: null,
});
});
it("does not normalize reserved CIL opcodes as operand-free instructions", () => {
const bytes = buildManagedPeFixture({
ilBody: Buffer.from([0x0a, 0x24, 0x2a]),
});
const result = inspectManagedMembersBytes(
bytes,
target(bytes),
memberLimits,
);
expect(result.methods.items[0]?.body).toMatchObject({
status: "malformed",
il_size: 2,
decoded_instruction_count: 0,
issue: "Unsupported CIL opcode 0x24 at IL offset 0",
});
});
it("inspects metadata members, signatures, CIL hashes, call edges, and field anchors", () => {
const bytes = buildManagedPeFixture();
const result = inspectManagedMembersBytes(