docs(process): preserve capture invariants

This commit is contained in:
morluto 2026-07-13 17:15:22 +08:00
parent ba15d16c58
commit 841990bde1
33 changed files with 214 additions and 128 deletions

View File

@ -80,7 +80,7 @@
</div>
<h4 class="tsd-returns-title">Returns <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></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessCheckpoints.ts#L130">src/application/ProcessCheckpoints.ts:130</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessCheckpoints.ts#L133">src/application/ProcessCheckpoints.ts:133</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="finish"><span>finish</span><a href="#finish" 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></h3>
<ul class="tsd-signatures">
@ -95,7 +95,7 @@
<li><span><span class="tsd-kind-parameter">after</span>: <a href="../interfaces/application_FilesystemSnapshot.SnapshotResult.html" class="tsd-signature-type tsd-kind-interface">SnapshotResult</a></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/domain_processCapture.FilesystemCheckpoint.html" class="tsd-signature-type tsd-kind-interface">FilesystemCheckpoint</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessCheckpoints.ts#L113">src/application/ProcessCheckpoints.ts:113</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessCheckpoints.ts#L116">src/application/ProcessCheckpoints.ts:116</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="observeterminal"><span>observe<wbr/>Terminal</span><a href="#observeterminal" 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></h3>
<ul class="tsd-signatures">

View File

@ -12,10 +12,13 @@
<li><a href="" aria-current="page">TerminalRenderer</a></li></ul>
<h1>Class TerminalRenderer</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Owns one headless terminal and serializes writes into deterministic frames.</p>
<div class="tsd-comment tsd-typography"><p>Reconstructs bounded terminal states while raw PTY chunks remain authoritative.</p>
<p>Rendered frames answer what an operator saw after control-sequence handling;
raw frames preserve byte/chunk differences that can render identically.
Comparisons retain both because neither representation subsumes the other.</p>
</div></section><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L23">src/application/TerminalRenderer.ts:23</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L30">src/application/TerminalRenderer.ts:30</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -48,7 +51,7 @@
<li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">TerminalRendererOptions</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">TerminalRenderer</a></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L31">src/application/TerminalRenderer.ts:31</a></li></ul></aside></div></li></ul></section></section></details>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L38">src/application/TerminalRenderer.ts:38</a></li></ul></aside></div></li></ul></section></section></details>
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><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="methods-1">Methods<a href="#methods-1" 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>
<section>
@ -62,7 +65,7 @@
</div>
<h4 class="tsd-returns-title">Returns <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></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L74">src/application/TerminalRenderer.ts:74</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L81">src/application/TerminalRenderer.ts:81</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="frames"><span>frames</span><a href="#frames" 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></h3>
<ul class="tsd-signatures">
@ -73,7 +76,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/domain_processCapture.RenderedTerminalFrame.html" class="tsd-signature-type tsd-kind-interface">RenderedTerminalFrame</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L63">src/application/TerminalRenderer.ts:63</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L70">src/application/TerminalRenderer.ts:70</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="resize"><span>resize</span><a href="#resize" 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></h3>
<ul class="tsd-signatures">
@ -90,7 +93,7 @@
<li><span><span class="tsd-kind-parameter">atMs</span>: <span class="tsd-signature-type">number</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L55">src/application/TerminalRenderer.ts:55</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L62">src/application/TerminalRenderer.ts:62</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="truncated"><span>truncated</span><a href="#truncated" 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></h3>
<ul class="tsd-signatures">
@ -101,7 +104,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L69">src/application/TerminalRenderer.ts:69</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L76">src/application/TerminalRenderer.ts:76</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="write"><span>write</span><a href="#write" 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></h3>
<ul class="tsd-signatures">
@ -117,7 +120,7 @@
<li><span><span class="tsd-kind-parameter">atMs</span>: <span class="tsd-signature-type">number</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L42">src/application/TerminalRenderer.ts:42</a></li></ul></aside></div></li></ul></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/TerminalRenderer.ts#L49">src/application/TerminalRenderer.ts:49</a></li></ul></aside></div></li></ul></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

File diff suppressed because one or more lines are too long

View File

@ -26,7 +26,7 @@
<li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">signal</span>: <span class="tsd-signature-type">AbortSignal</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <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="../interfaces/domain_processCapture.ProcessCapture.html" class="tsd-signature-type tsd-kind-interface">ProcessCapture</a><span class="tsd-signature-symbol">,</span> <a href="../classes/application_ProcessHarness.ProcessCaptureError.html" class="tsd-signature-type tsd-kind-class">ProcessCaptureError</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessHarness.ts#L668">src/application/ProcessHarness.ts:668</a></li></ul></aside></div></li></ul></section></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessHarness.ts#L675">src/application/ProcessHarness.ts:675</a></li></ul></aside></div></li></ul></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -17,6 +17,9 @@
<div class="tsd-signature tsd-anchor-link" id="cleanupownedprocessgroup"><span class="tsd-kind-call-signature">cleanupOwnedProcessGroup</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">ownership</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_ProcessOwnership.OwnedProcessGroup.html" class="tsd-signature-type tsd-kind-interface">OwnedProcessGroup</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">host</span><span class="tsd-signature-symbol">?:</span> <a href="../interfaces/application_ProcessOwnership.ProcessOwnershipHost.html" class="tsd-signature-type tsd-kind-interface">ProcessOwnershipHost</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/application_ProcessOwnership.ProcessCleanupResult.html" class="tsd-signature-type tsd-kind-type-alias">ProcessCleanupResult</a><span class="tsd-signature-symbol">&gt;</span><a href="#cleanupownedprocessgroup" 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></div>
<div class="tsd-description">
<div class="tsd-comment tsd-typography"><p>Verify run-token ownership before signaling a POSIX process group.</p>
<p>Process IDs and group IDs can be reused. REA therefore re-reads every live
member's environment immediately before signaling and fails closed if any
member cannot be inspected or lacks the per-capture run token.</p>
</div>
<div class="tsd-parameters">
<h4 class="tsd-parameters-title">Parameters</h4>
@ -25,7 +28,7 @@
<li><span><span class="tsd-kind-parameter">host</span>: <a href="../interfaces/application_ProcessOwnership.ProcessOwnershipHost.html" class="tsd-signature-type tsd-kind-interface">ProcessOwnershipHost</a><span class="tsd-signature-symbol"> = systemHost</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/application_ProcessOwnership.ProcessCleanupResult.html" class="tsd-signature-type tsd-kind-type-alias">ProcessCleanupResult</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L82">src/application/ProcessOwnership.ts:82</a></li></ul></aside></div></li></ul></section></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L91">src/application/ProcessOwnership.ts:91</a></li></ul></aside></div></li></ul></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -25,7 +25,7 @@
<li><span><span class="tsd-kind-parameter">policy</span>: <a href="../interfaces/domain_processCapture.ProcessExecutionPolicy.html" class="tsd-signature-type tsd-kind-interface">ProcessExecutionPolicy</a></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="../types/domain_processCapture.ProcessPolicyDecision.html" class="tsd-signature-type tsd-kind-type-alias">ProcessPolicyDecision</a></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L340">src/domain/processCapture.ts:340</a></li></ul></aside></div></li></ul></section></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L347">src/domain/processCapture.ts:347</a></li></ul></aside></div></li></ul></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -11,9 +11,12 @@
<li><a href="../modules/application_ProcessOwnership.html">application/ProcessOwnership</a></li>
<li><a href="" aria-current="page">OwnedProcessGroup</a></li></ul>
<h1>Interface OwnedProcessGroup</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Identity proof required before REA may signal a captured process group.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">OwnedProcessGroup</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#expectedcommand">expectedCommand</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="#expectedparentpid">expectedParentPid</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#leaderpid">leaderPid</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#processgroupid">processGroupId</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#runid">runId</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L7">src/application/ProcessOwnership.ts:7</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L8">src/application/ProcessOwnership.ts:8</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -36,29 +39,29 @@
<div class="tsd-comment tsd-typography"><p>Expected launcher identity, checked only while the leader exists.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L12">src/application/ProcessOwnership.ts:12</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L13">src/application/ProcessOwnership.ts:13</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="expectedparentpid"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>expected<wbr/>Parent<wbr/>Pid</span><a href="#expectedparentpid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">expectedParentPid</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span></div>
<div class="tsd-comment tsd-typography"><p>Expected launcher parent, checked only while the leader exists.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L14">src/application/ProcessOwnership.ts:14</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L15">src/application/ProcessOwnership.ts:15</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="leaderpid"><code class="tsd-tag">Readonly</code><span>leader<wbr/>Pid</span><a href="#leaderpid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">leaderPid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L9">src/application/ProcessOwnership.ts:9</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L10">src/application/ProcessOwnership.ts:10</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="processgroupid"><code class="tsd-tag">Readonly</code><span>process<wbr/>Group<wbr/>Id</span><a href="#processgroupid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">processGroupId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L10">src/application/ProcessOwnership.ts:10</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L11">src/application/ProcessOwnership.ts:11</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="runid"><code class="tsd-tag">Readonly</code><span>run<wbr/>Id</span><a href="#runid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">runId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L8">src/application/ProcessOwnership.ts:8</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L9">src/application/ProcessOwnership.ts:9</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -11,9 +11,12 @@
<li><a href="../modules/application_ProcessOwnership.html">application/ProcessOwnership</a></li>
<li><a href="" aria-current="page">ProcessOwnershipHost</a></li></ul>
<h1>Interface ProcessOwnershipHost</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Narrow operating-system seam used to inspect and signal process groups.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProcessOwnershipHost</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-call-signature" href="#environment-1">environment</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">pid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><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">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> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-call-signature" href="#listmembers-1">listMembers</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">processGroupId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><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-keyword">readonly</span> <span class="tsd-signature-type">ProcessGroupMember</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-call-signature" href="#signalgroup-1">signalGroup</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">processGroupId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">signal</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Signals</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L24">src/application/ProcessOwnership.ts:24</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L26">src/application/ProcessOwnership.ts:26</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -40,7 +43,7 @@
<li><span><span class="tsd-kind-parameter">pid</span>: <span class="tsd-signature-type">number</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</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> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L26">src/application/ProcessOwnership.ts:26</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L28">src/application/ProcessOwnership.ts:28</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="listmembers"><span>list<wbr/>Members</span><a href="#listmembers" 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></h3>
<ul class="tsd-signatures">
@ -53,7 +56,7 @@
<li><span><span class="tsd-kind-parameter">processGroupId</span>: <span class="tsd-signature-type">number</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">ProcessGroupMember</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L25">src/application/ProcessOwnership.ts:25</a></li></ul></aside></div></li></ul></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L27">src/application/ProcessOwnership.ts:27</a></li></ul></aside></div></li></ul></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="signalgroup"><span>signal<wbr/>Group</span><a href="#signalgroup" 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></h3>
<ul class="tsd-signatures">
@ -67,7 +70,7 @@
<li><span><span class="tsd-kind-parameter">signal</span>: <span class="tsd-signature-type">Signals</span></span></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L27">src/application/ProcessOwnership.ts:27</a></li></ul></aside></div></li></ul></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L29">src/application/ProcessOwnership.ts:29</a></li></ul></aside></div></li></ul></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -16,7 +16,7 @@
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">FileState</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#mode">mode</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#path">path</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="#sha256">sha256</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="#size">size</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#symlink_target">symlink_target</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">&quot;file&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;directory&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;symlink&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;other&quot;</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L422">src/domain/processCapture.ts:422</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L432">src/domain/processCapture.ts:432</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -38,32 +38,32 @@
<h3 class="tsd-anchor-link" id="mode"><code class="tsd-tag">Readonly</code><span>mode</span><a href="#mode" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">mode</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L425">src/domain/processCapture.ts:425</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L435">src/domain/processCapture.ts:435</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="path"><code class="tsd-tag">Readonly</code><span>path</span><a href="#path" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L423">src/domain/processCapture.ts:423</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L433">src/domain/processCapture.ts:433</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sha256"><code class="tsd-tag">Readonly</code><span>sha256</span><a href="#sha256" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sha256</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L427">src/domain/processCapture.ts:427</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L437">src/domain/processCapture.ts:437</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="size"><code class="tsd-tag">Readonly</code><span>size</span><a href="#size" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">size</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L426">src/domain/processCapture.ts:426</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L436">src/domain/processCapture.ts:436</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="symlink_target"><code class="tsd-tag">Readonly</code><span>symlink_<wbr/>target</span><a href="#symlink_target" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">symlink_target</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L428">src/domain/processCapture.ts:428</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L438">src/domain/processCapture.ts:438</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="type"><code class="tsd-tag">Readonly</code><span>type</span><a href="#type" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;file&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;directory&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;symlink&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;other&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L424">src/domain/processCapture.ts:424</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L434">src/domain/processCapture.ts:434</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">FilesystemCheckpoint</a></li></ul>
<h1>Interface FilesystemCheckpoint</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>A named filesystem observation captured during a process lifecycle.</p>
<div class="tsd-comment tsd-typography"><p>Named filesystem state whose effects are relative to the prior checkpoint.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">FilesystemCheckpoint</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#effects">effects</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">FileEffect</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#files">files</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="domain_processCapture.FileState.html" class="tsd-signature-type tsd-kind-interface">FileState</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#name">name</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="#truncated">truncated</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L449">src/domain/processCapture.ts:449</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L462">src/domain/processCapture.ts:462</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -37,27 +37,27 @@
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L451">src/domain/processCapture.ts:451</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L464">src/domain/processCapture.ts:464</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="effects"><code class="tsd-tag">Readonly</code><span>effects</span><a href="#effects" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">effects</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">FileEffect</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L453">src/domain/processCapture.ts:453</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L466">src/domain/processCapture.ts:466</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="files"><code class="tsd-tag">Readonly</code><span>files</span><a href="#files" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">files</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="domain_processCapture.FileState.html" class="tsd-signature-type tsd-kind-interface">FileState</a><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L452">src/domain/processCapture.ts:452</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L465">src/domain/processCapture.ts:465</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="name"><code class="tsd-tag">Readonly</code><span>name</span><a href="#name" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L450">src/domain/processCapture.ts:450</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L463">src/domain/processCapture.ts:463</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="truncated"><code class="tsd-tag">Readonly</code><span>truncated</span><a href="#truncated" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">truncated</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L454">src/domain/processCapture.ts:454</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L467">src/domain/processCapture.ts:467</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">InteractionEvent</a></li></ul>
<h1>Interface InteractionEvent</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>One attempted scripted interaction with the PTY.</p>
<div class="tsd-comment tsd-typography"><p>Scheduled input, resize, or signal with its observed dispatch outcome.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">InteractionEvent</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#data">data</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="#dispatched_at_ms">dispatched_at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#outcome">outcome</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;failed&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;dispatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;target_exited&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#scheduled_at_ms">scheduled_at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#sequence">sequence</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</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">&quot;signal&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;input&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;resize&quot;</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L412">src/domain/processCapture.ts:412</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L422">src/domain/processCapture.ts:422</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -38,32 +38,32 @@
<h3 class="tsd-anchor-link" id="data"><code class="tsd-tag">Readonly</code><span>data</span><a href="#data" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L417">src/domain/processCapture.ts:417</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L427">src/domain/processCapture.ts:427</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="dispatched_at_ms"><code class="tsd-tag">Readonly</code><span>dispatched_<wbr/>at_<wbr/>ms</span><a href="#dispatched_at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">dispatched_at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L415">src/domain/processCapture.ts:415</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L425">src/domain/processCapture.ts:425</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="outcome"><code class="tsd-tag">Readonly</code><span>outcome</span><a href="#outcome" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">outcome</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;failed&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;dispatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;target_exited&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L418">src/domain/processCapture.ts:418</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L428">src/domain/processCapture.ts:428</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="scheduled_at_ms"><code class="tsd-tag">Readonly</code><span>scheduled_<wbr/>at_<wbr/>ms</span><a href="#scheduled_at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">scheduled_at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L414">src/domain/processCapture.ts:414</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L424">src/domain/processCapture.ts:424</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sequence"><code class="tsd-tag">Readonly</code><span>sequence</span><a href="#sequence" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sequence</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L413">src/domain/processCapture.ts:413</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L423">src/domain/processCapture.ts:423</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="type"><code class="tsd-tag">Readonly</code><span>type</span><a href="#type" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;signal&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;input&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;resize&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L416">src/domain/processCapture.ts:416</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L426">src/domain/processCapture.ts:426</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

File diff suppressed because one or more lines are too long

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">ProcessExecutionPolicy</a></li></ul>
<h1>Interface ProcessExecutionPolicy</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>Operator-owned policy for process capture.</p>
<div class="tsd-comment tsd-typography"><p>Operator-owned ceiling applied in addition to per-scenario approval.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProcessExecutionPolicy</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#allowedenvironment">allowedEnvironment</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="#allowexternalnetwork">allowExternalNetwork</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="#enabled">enabled</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="#executableroots">executableRoots</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="#workingroots">workingRoots</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L320">src/domain/processCapture.ts:320</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L326">src/domain/processCapture.ts:326</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -37,27 +37,27 @@
<h3 class="tsd-anchor-link" id="allowedenvironment"><code class="tsd-tag">Readonly</code><span>allowed<wbr/>Environment</span><a href="#allowedenvironment" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">allowedEnvironment</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L324">src/domain/processCapture.ts:324</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L330">src/domain/processCapture.ts:330</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="allowexternalnetwork"><code class="tsd-tag">Readonly</code><span>allow<wbr/>External<wbr/>Network</span><a href="#allowexternalnetwork" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">allowExternalNetwork</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L325">src/domain/processCapture.ts:325</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L331">src/domain/processCapture.ts:331</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="enabled"><code class="tsd-tag">Readonly</code><span>enabled</span><a href="#enabled" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">enabled</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L321">src/domain/processCapture.ts:321</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L327">src/domain/processCapture.ts:327</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="executableroots"><code class="tsd-tag">Readonly</code><span>executable<wbr/>Roots</span><a href="#executableroots" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">executableRoots</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L322">src/domain/processCapture.ts:322</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L328">src/domain/processCapture.ts:328</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="workingroots"><code class="tsd-tag">Readonly</code><span>working<wbr/>Roots</span><a href="#workingroots" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">workingRoots</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L323">src/domain/processCapture.ts:323</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L329">src/domain/processCapture.ts:329</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -16,7 +16,7 @@
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProcessSample</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#command">command</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="#parent_pid">parent_pid</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#pid">pid</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#process_group_id">process_group_id</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="#session_id">session_id</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/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L439">src/domain/processCapture.ts:439</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L449">src/domain/processCapture.ts:449</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -38,32 +38,32 @@
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L440">src/domain/processCapture.ts:440</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L450">src/domain/processCapture.ts:450</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="command"><code class="tsd-tag">Readonly</code><span>command</span><a href="#command" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">command</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L443">src/domain/processCapture.ts:443</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L453">src/domain/processCapture.ts:453</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="parent_pid"><code class="tsd-tag">Readonly</code><span>parent_<wbr/>pid</span><a href="#parent_pid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">parent_pid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L442">src/domain/processCapture.ts:442</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L452">src/domain/processCapture.ts:452</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="pid"><code class="tsd-tag">Readonly</code><span>pid</span><a href="#pid" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">pid</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L441">src/domain/processCapture.ts:441</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L451">src/domain/processCapture.ts:451</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="process_group_id"><code class="tsd-tag">Readonly</code><span>process_<wbr/>group_<wbr/>id</span><a href="#process_group_id" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">process_group_id</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L444">src/domain/processCapture.ts:444</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L454">src/domain/processCapture.ts:454</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="session_id"><code class="tsd-tag">Readonly</code><span>session_<wbr/>id</span><a href="#session_id" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">session_id</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L445">src/domain/processCapture.ts:445</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L455">src/domain/processCapture.ts:455</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -16,7 +16,7 @@
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProtocolEvent</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#data">data</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="#direction">direction</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;request&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;response&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;received&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;sent&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#method">method</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="#outcome">outcome</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;matched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unmatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;script_exhausted&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;disconnected&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#path">path</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="#protocol">protocol</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;http&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;websocket&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#sequence">sequence</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L468">src/domain/processCapture.ts:468</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L482">src/domain/processCapture.ts:482</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -40,42 +40,42 @@
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L470">src/domain/processCapture.ts:470</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L484">src/domain/processCapture.ts:484</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="data"><code class="tsd-tag">Readonly</code><span>data</span><a href="#data" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L475">src/domain/processCapture.ts:475</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L489">src/domain/processCapture.ts:489</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="direction"><code class="tsd-tag">Readonly</code><span>direction</span><a href="#direction" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">direction</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;request&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;response&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;received&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;sent&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L472">src/domain/processCapture.ts:472</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L486">src/domain/processCapture.ts:486</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="method"><code class="tsd-tag">Readonly</code><span>method</span><a href="#method" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">method</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L473">src/domain/processCapture.ts:473</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L487">src/domain/processCapture.ts:487</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="outcome"><code class="tsd-tag">Readonly</code><span>outcome</span><a href="#outcome" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">outcome</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;matched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unmatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;script_exhausted&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;disconnected&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L476">src/domain/processCapture.ts:476</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L490">src/domain/processCapture.ts:490</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="path"><code class="tsd-tag">Readonly</code><span>path</span><a href="#path" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">path</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L474">src/domain/processCapture.ts:474</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L488">src/domain/processCapture.ts:488</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="protocol"><code class="tsd-tag">Readonly</code><span>protocol</span><a href="#protocol" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">protocol</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;http&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;websocket&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L471">src/domain/processCapture.ts:471</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L485">src/domain/processCapture.ts:485</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sequence"><code class="tsd-tag">Readonly</code><span>sequence</span><a href="#sequence" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sequence</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L469">src/domain/processCapture.ts:469</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L483">src/domain/processCapture.ts:483</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">RenderedTerminalFrame</a></li></ul>
<h1>Interface RenderedTerminalFrame</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>One rendered terminal state after xterm has parsed a PTY chunk or resize.</p>
<div class="tsd-comment tsd-typography"><p>Serialized terminal state after interpreting control and resize sequences.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">RenderedTerminalFrame</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#active_buffer">active_buffer</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;normal&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;alternate&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#columns">columns</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#cursor_x">cursor_x</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#cursor_y">cursor_y</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lines">lines</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="#rows">rows</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#sequence">sequence</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#serialized_state">serialized_state</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L399">src/domain/processCapture.ts:399</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L408">src/domain/processCapture.ts:408</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -41,47 +41,47 @@
<h3 class="tsd-anchor-link" id="active_buffer"><code class="tsd-tag">Readonly</code><span>active_<wbr/>buffer</span><a href="#active_buffer" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">active_buffer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;normal&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;alternate&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L406">src/domain/processCapture.ts:406</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L415">src/domain/processCapture.ts:415</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L401">src/domain/processCapture.ts:401</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L410">src/domain/processCapture.ts:410</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="columns"><code class="tsd-tag">Readonly</code><span>columns</span><a href="#columns" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">columns</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L402">src/domain/processCapture.ts:402</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L411">src/domain/processCapture.ts:411</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="cursor_x"><code class="tsd-tag">Readonly</code><span>cursor_<wbr/>x</span><a href="#cursor_x" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">cursor_x</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L404">src/domain/processCapture.ts:404</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L413">src/domain/processCapture.ts:413</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="cursor_y"><code class="tsd-tag">Readonly</code><span>cursor_<wbr/>y</span><a href="#cursor_y" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">cursor_y</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L405">src/domain/processCapture.ts:405</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L414">src/domain/processCapture.ts:414</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="lines"><code class="tsd-tag">Readonly</code><span>lines</span><a href="#lines" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">lines</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L407">src/domain/processCapture.ts:407</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L416">src/domain/processCapture.ts:416</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="rows"><code class="tsd-tag">Readonly</code><span>rows</span><a href="#rows" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">rows</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L403">src/domain/processCapture.ts:403</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L412">src/domain/processCapture.ts:412</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sequence"><code class="tsd-tag">Readonly</code><span>sequence</span><a href="#sequence" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sequence</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L400">src/domain/processCapture.ts:400</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L409">src/domain/processCapture.ts:409</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="serialized_state"><code class="tsd-tag">Readonly</code><span>serialized_<wbr/>state</span><a href="#serialized_state" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">serialized_state</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L408">src/domain/processCapture.ts:408</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L417">src/domain/processCapture.ts:417</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">ShimEvent</a></li></ul>
<h1>Interface ShimEvent</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>One invocation observed by the declarative command-shim replay adapter.</p>
<div class="tsd-comment tsd-typography"><p>Recorded deterministic dependency invocation and route-match outcome.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ShimEvent</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#arguments">arguments</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="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#command">command</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="#outcome">outcome</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;matched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unmatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;exhausted&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#sequence">sequence</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#working_directory">working_directory</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L458">src/domain/processCapture.ts:458</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L472">src/domain/processCapture.ts:472</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -38,32 +38,32 @@
<h3 class="tsd-anchor-link" id="arguments"><code class="tsd-tag">Readonly</code><span>arguments</span><a href="#arguments" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">arguments</span><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></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L462">src/domain/processCapture.ts:462</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L476">src/domain/processCapture.ts:476</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L460">src/domain/processCapture.ts:460</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L474">src/domain/processCapture.ts:474</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="command"><code class="tsd-tag">Readonly</code><span>command</span><a href="#command" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">command</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L461">src/domain/processCapture.ts:461</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L475">src/domain/processCapture.ts:475</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="outcome"><code class="tsd-tag">Readonly</code><span>outcome</span><a href="#outcome" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">outcome</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;matched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unmatched&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;exhausted&quot;</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L464">src/domain/processCapture.ts:464</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L478">src/domain/processCapture.ts:478</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sequence"><code class="tsd-tag">Readonly</code><span>sequence</span><a href="#sequence" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sequence</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L459">src/domain/processCapture.ts:459</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L473">src/domain/processCapture.ts:473</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="working_directory"><code class="tsd-tag">Readonly</code><span>working_<wbr/>directory</span><a href="#working_directory" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">working_directory</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L463">src/domain/processCapture.ts:463</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L477">src/domain/processCapture.ts:477</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,11 +12,11 @@
<li><a href="" aria-current="page">TerminalFrame</a></li></ul>
<h1>Interface TerminalFrame</h1></div>
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography"><p>One bounded terminal observation.</p>
<div class="tsd-comment tsd-typography"><p>Normalized raw PTY chunk, preserving transport-level output differences.</p>
</div></section>
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">TerminalFrame</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#at_ms">at_ms</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#data">data</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="#sequence">sequence</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><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L392">src/domain/processCapture.ts:392</a></li></ul></aside>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L400">src/domain/processCapture.ts:400</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-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>
@ -35,17 +35,17 @@
<h3 class="tsd-anchor-link" id="at_ms"><code class="tsd-tag">Readonly</code><span>at_<wbr/>ms</span><a href="#at_ms" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">at_ms</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L394">src/domain/processCapture.ts:394</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L402">src/domain/processCapture.ts:402</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="data"><code class="tsd-tag">Readonly</code><span>data</span><a href="#data" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L395">src/domain/processCapture.ts:395</a></li></ul></aside></section>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L403">src/domain/processCapture.ts:403</a></li></ul></aside></section>
<section class="tsd-panel tsd-member">
<h3 class="tsd-anchor-link" id="sequence"><code class="tsd-tag">Readonly</code><span>sequence</span><a href="#sequence" 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></h3>
<div class="tsd-signature"><span class="tsd-kind-property">sequence</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L393">src/domain/processCapture.ts:393</a></li></ul></aside></section></section></details></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L401">src/domain/processCapture.ts:401</a></li></ul></aside></section></section></details></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -11,9 +11,11 @@
<li><a href="../modules/application_ProcessOwnership.html">application/ProcessOwnership</a></li>
<li><a href="" aria-current="page">ProcessCleanupResult</a></li></ul>
<h1>Type Alias ProcessCleanupResult</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ProcessCleanupResult</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">cleaned</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">signaled</span><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> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">cleaned</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">reason</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
<div class="tsd-signature"><span class="tsd-kind-type-alias">ProcessCleanupResult</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">cleaned</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">signaled</span><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> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">cleaned</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">reason</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></div>
<div class="tsd-comment tsd-typography"><p>Cleanup succeeds only when the group is absent or every member is owned.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L30">src/application/ProcessOwnership.ts:30</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/ProcessOwnership.ts#L33">src/application/ProcessOwnership.ts:33</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,10 +12,10 @@
<li><a href="" aria-current="page">ProcessPolicyDecision</a></li></ul>
<h1>Type Alias ProcessPolicyDecision</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ProcessPolicyDecision</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">allowed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">false</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">reason</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></div>
<div class="tsd-comment tsd-typography"><p>A safe, caller-visible process-policy decision.</p>
<div class="tsd-comment tsd-typography"><p>Explicit authorization result; denial reasons are safe to show callers.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L329">src/domain/processCapture.ts:329</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L336">src/domain/processCapture.ts:336</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

View File

@ -12,10 +12,10 @@
<li><a href="" aria-current="page">ProcessScenario</a></li></ul>
<h1>Type Alias ProcessScenario</h1></div>
<div class="tsd-signature"><span class="tsd-kind-type-alias">ProcessScenario</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_processCapture.processScenarioSchema.html" class="tsd-signature-type tsd-kind-variable">processScenarioSchema</a><span class="tsd-signature-symbol">&gt;</span></div>
<div class="tsd-comment tsd-typography"><p>A parsed, bounded dynamic process observation scenario.</p>
<div class="tsd-comment tsd-typography"><p>Parsed instructions and resource bounds for one process experiment.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L313">src/domain/processCapture.ts:313</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L318">src/domain/processCapture.ts:318</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>Exact serialized shape of a bounded process capture.</p>
</div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L540">src/domain/processCapture.ts:540</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/domain/processCapture.ts#L560">src/domain/processCapture.ts:560</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">

File diff suppressed because one or more lines are too long

View File

@ -41,7 +41,13 @@ else process.exit(route.termination.code);
const shellQuote = (value: string): string =>
`'${value.replaceAll("'", `'\\''`)}'`;
/** Start bounded executable replay wrappers and their private invocation ledger. */
/**
* Start bounded executable replay wrappers and their private invocation ledger.
*
* Exact argument matching is deliberate: a fallback to the host executable
* would make an unmatched dependency call look authoritative. Unmatched and
* exhausted routes therefore fail visibly and remain part of the capture.
*/
export const startCommandShimReplay = async (
scenario: ProcessScenario,
temporaryRoot: string,

View File

@ -96,6 +96,9 @@ export class ProcessCheckpoints {
capture(name: string): void {
if (this.#captured.has(name)) return;
this.#captured.add(name);
// Serialize scans even when time, terminal, and lifecycle triggers fire
// together. Each effect set is intentionally relative to the immediately
// preceding checkpoint, which preserves transient create/delete behavior.
this.#pending = this.#pending.then(async () => {
const snapshot = await snapshotRoots(this.scenario, this.signal);
const previous = this.#captures.at(-1)?.files ?? [];

View File

@ -1,7 +1,7 @@
import { randomUUID } from "node:crypto";
import { mkdtemp, realpath, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { dirname, join } from "node:path";
import { join } from "node:path";
import { spawn, type IPty } from "node-pty";
import type {
FilesystemCheckpoint,
@ -139,6 +139,10 @@ const makeEnvironment = (
environment.REA_REPLAY_HTTP_URL = replay.httpUrl;
environment.REA_REPLAY_WEBSOCKET_URL = replay.websocketUrl;
environment.REA_SHIM_LEDGER_URL = shimReplay.url;
// PATH is evidence-producing input. Inheriting the host PATH here would let
// the authority and reconstruction probe different tools without recording
// that difference. Scenarios must opt in through environment or
// inherit_environment; deterministic shims always take precedence.
environment.PATH = [shimReplay.binPath, environment.PATH ?? ""]
.filter((part) => part.length > 0)
.join(":");
@ -315,6 +319,9 @@ const awaitTerminalExit = async ({
reason: "exited" | "timeout" | "idle_timeout" | "cancelled";
}> =>
new Promise((resolveExit) => {
// The kill caused by a deadline is observed later as an ordinary PTY exit.
// Keep the initiating lifecycle reason so comparisons distinguish a target
// exit from harness-owned timeout, idle-timeout, and cancellation cleanup.
let reason: "exited" | "timeout" | "idle_timeout" | "cancelled" = "exited";
terminal.onExit((exit) => {
for (const [eventIndex, event] of scenario.events.entries()) {

View File

@ -4,6 +4,7 @@ import { promisify } from "node:util";
const execFileAsync = promisify(execFile);
/** Identity proof required before REA may signal a captured process group. */
export interface OwnedProcessGroup {
readonly runId: string;
readonly leaderPid: number;
@ -21,12 +22,14 @@ interface ProcessGroupMember {
readonly command: string;
}
/** Narrow operating-system seam used to inspect and signal process groups. */
export interface ProcessOwnershipHost {
listMembers(processGroupId: number): Promise<readonly ProcessGroupMember[]>;
environment(pid: number): Promise<Readonly<Record<string, string>>>;
signalGroup(processGroupId: number, signal: NodeJS.Signals): void;
}
/** Cleanup succeeds only when the group is absent or every member is owned. */
export type ProcessCleanupResult =
| { readonly cleaned: true; readonly signaled: boolean }
| { readonly cleaned: false; readonly reason: string };
@ -78,7 +81,13 @@ const systemHost: ProcessOwnershipHost = {
},
};
/** Verify run-token ownership before signaling a POSIX process group. */
/**
* Verify run-token ownership before signaling a POSIX process group.
*
* Process IDs and group IDs can be reused. REA therefore re-reads every live
* member's environment immediately before signaling and fails closed if any
* member cannot be inspected or lacks the per-capture run token.
*/
export const cleanupOwnedProcessGroup = async (
ownership: OwnedProcessGroup,
host: ProcessOwnershipHost = systemHost,

View File

@ -20,6 +20,13 @@ interface TerminalRendererOptions {
}
/** Owns one headless terminal and serializes writes into deterministic frames. */
/**
* Reconstructs bounded terminal states while raw PTY chunks remain authoritative.
*
* Rendered frames answer what an operator saw after control-sequence handling;
* raw frames preserve byte/chunk differences that can render identically.
* Comparisons retain both because neither representation subsumes the other.
*/
export class TerminalRenderer {
readonly #terminal: InstanceType<typeof HeadlessPackage.Terminal>;
readonly #serializeAddon = new SerializePackage.SerializeAddon();

View File

@ -8,7 +8,13 @@ import {
type ArtifactReader,
} from "./ArtifactReader.js";
/** Official Electron ASAR adapter. Individual files remain caller-bounded. */
/**
* Official Electron ASAR adapter. Individual files remain caller-bounded.
*
* An entry marked `unpacked` is metadata, not an integrity exemption: Electron
* stores its bytes beside the archive in `<archive>.unpacked`, and callers must
* hash those companion bytes against the archive's declared integrity value.
*/
export class AsarArtifactReader implements ArtifactReader {
readonly format = "asar" as const;

View File

@ -37,6 +37,10 @@ const outputChunkSchema = z.object({
});
/** Exact boundary schema for bounded dynamic process scenarios. */
/**
* Boundary schema for one explicitly approved, bounded process experiment.
* Defaults are part of the evidence contract and must remain deterministic.
*/
export const processScenarioSchema = z
.object({
approved: z
@ -310,6 +314,7 @@ export const processScenarioSchema = z
});
/** A parsed, bounded dynamic process observation scenario. */
/** Parsed instructions and resource bounds for one process experiment. */
export type ProcessScenario = z.infer<typeof processScenarioSchema>;
/** Parse untrusted process scenario input and apply safe default budgets. */
@ -317,6 +322,7 @@ export const parseProcessScenario = (input: unknown): ProcessScenario =>
processScenarioSchema.parse(input);
/** Operator-owned policy for process capture. */
/** Operator-owned ceiling applied in addition to per-scenario approval. */
export interface ProcessExecutionPolicy {
readonly enabled: boolean;
readonly executableRoots: readonly string[];
@ -326,6 +332,7 @@ export interface ProcessExecutionPolicy {
}
/** A safe, caller-visible process-policy decision. */
/** Explicit authorization result; denial reasons are safe to show callers. */
export type ProcessPolicyDecision =
| { readonly allowed: true }
| { readonly allowed: false; readonly reason: string };
@ -389,6 +396,7 @@ export const authorizeProcessScenario = (
};
/** One bounded terminal observation. */
/** Normalized raw PTY chunk, preserving transport-level output differences. */
export interface TerminalFrame {
readonly sequence: number;
readonly at_ms: number;
@ -396,6 +404,7 @@ export interface TerminalFrame {
}
/** One rendered terminal state after xterm has parsed a PTY chunk or resize. */
/** Serialized terminal state after interpreting control and resize sequences. */
export interface RenderedTerminalFrame {
readonly sequence: number;
readonly at_ms: number;
@ -409,6 +418,7 @@ export interface RenderedTerminalFrame {
}
/** One attempted scripted interaction with the PTY. */
/** Scheduled input, resize, or signal with its observed dispatch outcome. */
export interface InteractionEvent {
readonly sequence: number;
readonly scheduled_at_ms: number;
@ -446,6 +456,9 @@ export interface ProcessSample {
}
/** A named filesystem observation captured during a process lifecycle. */
/**
* Named filesystem state whose effects are relative to the prior checkpoint.
*/
export interface FilesystemCheckpoint {
readonly name: string;
readonly at_ms: number;
@ -455,6 +468,7 @@ export interface FilesystemCheckpoint {
}
/** One invocation observed by the declarative command-shim replay adapter. */
/** Recorded deterministic dependency invocation and route-match outcome. */
export interface ShimEvent {
readonly sequence: number;
readonly at_ms: number;
@ -481,6 +495,12 @@ export interface ProtocolEvent {
}
/** A bounded process observation with explicit incompleteness metadata. */
/**
* Process Capture v3 observation set.
*
* `truncated` and `residual_unknowns` are semantic evidence: consumers must not
* infer equivalence from matching bounded observations when either is present.
*/
export interface ProcessCapture {
readonly schema_version: 3;
readonly normalization: z.infer<typeof normalizationSchema>;

View File

@ -197,6 +197,12 @@ const chooseFirstDivergence = (
};
/** Compare bounded captures without equating missing or incompatible evidence. */
/**
* Compare two Process Capture v3 observations without treating absence as proof.
*
* Observed differences outrank residual unknowns. A capture may therefore be
* definitively changed in one dimension while completeness remains unknown.
*/
export const compareProcessCaptures = (
left: ProcessCapture,
right: ProcessCapture,