feat(cli): improve setup onboarding
This commit is contained in:
parent
7bccb7c6ae
commit
16002ff3c2
23
README.md
23
README.md
|
|
@ -92,10 +92,31 @@ npm install --global rea-agents
|
|||
rea setup
|
||||
```
|
||||
|
||||
Installing the CLI does not update Homebrew, Node.js, npm, Hopper, or agent configuration. `rea setup` detects what is already present, prints every proposed change, and asks before applying it.
|
||||
Installing the CLI does not update Homebrew, Node.js, npm, Hopper, or agent
|
||||
configuration. `rea setup` opens with the work it enables: investigate local
|
||||
apps from an agent, recover evidence through a deep-analysis provider, and
|
||||
reuse REA's guided workflow. It summarizes the detected agents, then offers
|
||||
**Set up all available capabilities (recommended)**, **Customize**, or
|
||||
**No thanks**. Customize shows every concrete target with an `MCP`, `provider`,
|
||||
or `skill` label.
|
||||
|
||||
REA keeps the journey inline so its history remains in the terminal. Before
|
||||
anything changes, it validates existing configuration, prints exact paths and
|
||||
external effects, and asks for final approval with **No** as the default. The
|
||||
screen keeps the available keys visible while you choose; Ctrl-C and declining
|
||||
leave the system unchanged.
|
||||
|
||||
REA detects Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, and Devin. It configures the first six when detected; Devin is reported but left unchanged because it has no documented local MCP configuration boundary. Registrations are additive, backup-first, and read back after writing. You can safely rerun setup.
|
||||
|
||||
Use `rea setup --dry-run` to inspect the plan, repeat `--client` to select exact
|
||||
agents, and `--accessible` for sequential vertical prompts. Machine output
|
||||
remains available through `--json`; prompt UI and progress go to stderr.
|
||||
|
||||
After a successful setup, REA reports the capabilities now ready to use and a
|
||||
concrete next step, such as restarting a configured agent before asking it to
|
||||
investigate an application. It does not claim an integration or provider is
|
||||
ready unless setup and its final diagnostic check verified it.
|
||||
|
||||
An optional curl wrapper installs the same CLI package and starts setup only when a terminal is available:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
window.hierarchyData = "eJytmlFv3CgQx7+Ln6nPNtjYeWtXuTan6hJlW/XhFEVkTTaoXvBhNr1V1e9egXcTHOMYnHtJbMf/mZ8HGGDIz0gKobro7B9YoQLkSY4TkCdFWgGcV0kOUI7zEhQJwhAUGCYFQAVMU4DLNC1BhjOYAlSUaQkgzHN8AyJJ7xu6UUzwLjr7GWm7+jcnOxqdRe85aQ4d686lFDIC0XfG6+gszUoQ7WUTnUWbhnQd7f6oxY4wfkv1e108kMUPatdEoH81OotUV7/Tdt71D0C0eWBNLSk3n5WXAFY4AbAqM4CSJAUoSRFASVYClED9o9B/wPqqggCl+iNTmACU5iVAKdZXpf5DVQCU4QygrEQAZVUGEEwxQBDmoEzTtLj5BSLt0frgT6JtqQz8XEsU8rEoSzBAmUbKshygTH9dlmvgAvZsOHE0xpUUSmxEs7BRBvIZXgNRZg6IC97u1UKCZ+28e90FHO4v92q5f0vsA5AiB8CKtOSONUwdvnLySFhD7hq6kGfalg9eVjrx+IY2Da0XI9l6HwzowvjCdlQsbidb7YNQ2B31SopHVlO5psf8Fgjh1vtg4NKB8b4mrQrOLC61D0IFLYQPUvzoqLy866h8JAtCMWHAAyRNBrOJVOyebNRlS+USDrfeBwPaefRch5Rv6AVXdCuZOgRiuPVBmT9F2Y0BQ5kD7JreU6kvFoIN9T7xGcyBJzOf2Y6FDt2x1sc9djXPnyw4oY6kPs5Le6xc8EfaKbY13eubkN+7lgS3wytGfIAqe8x85d+5+MGv6ZZ1SoZ2VZfaAyFL8GhNtCyVj7U+7tOx+6UTmkvtg5DlI4SF6y6H2AcAjpel13QnVGhnHEl9nOeZ6+s3tAvdCYy1Pu4LOHK/VkQu63zPSh/X2P7yleD3bLtfNFmNtT7uS3ut+bf4wDiRh8uWhnofSX2cV/a39/ovRG5paNxHUg/ncDDmr6jcsa5jgl/Tf/dMBg/7CQM+INAe+de0bcjhqiF8rUjwfORSzyOYbbozGOuNaOmT+ywvTu4ZV1Tek80zQfskuhIN2xziF1YmMZ5MDZcsGqrSFQRU3RwZq8kGo516M+XRjgdnj4PcOB8l4W+HMVb8UExhxUL5Ru/0eoArIQ/XtBN7qVeO7d4T6ocljydthbYmhDlObnraweJrrfTe8xu9O5lfQDmy4Rc4XbtKB9sWVm/pZ7Lnm4cZigeT6G9tBZWxfeuPUE4gUPlmCDo9+CfaCeUY9zsFfTGaFN+3bcM2ZoYZQTqSk5tw0pRHssyrQXXmabY3m1YPlKEgfnE777+AiR2Vjw+slsSry2zNq7e2gsrYvvXsMrq+OoEw22XmIRZ0mQJmJkWbixHZJ0rqhnadT395De+lHa/GKsoRj09nGXA89Y4Xtx7+y9RVmTkuTr16Tdu/e/tCGzttLRjsuS7Pw6Qf8kWF7Z3gqm6PhRifmN31r96OVbHj0XzwKlQmQ5hzXReTggfSvJTFrmezPObow1UXPpWGroScm2HJc8q7tYrjPYHTYGiLasoC5Dgp0c0R2nW6smoYnV2keNH2lvwylzk3ch8vDNvzDTyzDToRuAIlMNcnW8UxcEXhKsKfzK8Ir1lN1NxqJYj5yeiCDFyUwMyNBh4OKzr97mhNzcLytUFj0w5E8fBufrDoDjhFEDhQRtp4/CR0lOgA6UiZc8tXC9ehsE4Djnr2EmyTnw227qyDqsGuFR1T1Ccz2rgjYTx+MtvY5tjXLqcec+vyKE5YiKeeh8ZRTy06jjgZFr0ueKfkfke5ovVf5JGsN5K1qt9TfxLWFnMmrHN24tkXZoNuTt/tBNWp83rrtc+zSZ+dn446PkrSPqwEV/Q/FdtWQ6OMixSbdGQuBlE+HRb8/8Bj235Tk/l3BYvx1dYPoXwuyHDGt3FQY08FVvdaHVjzLwXD9aVeC65Iq/ZyvnJkAzuksevZTL/89es3DrCyGw=="
|
||||
window.hierarchyData = "eJytml1vnDgUhv8L1y4L2GDIXTvKtllVmyjTqherKHIGZ2KVsVnjSXdU9b9XNjOJCSbYZG8SILznPBwffx3nZySFUF109g+sUAHyJMcJyJMirQDOqyQHKMd5CYoEYQgKDJMCoAKmKcBlmpYgwxlMASrKtAQQ5jm+AZGk9w3dKCZ4F539jLRd/ZuTHY3OovecNIeOdedSChmB6DvjdXSWZiWI9rKJzqJNQ7qOdn/UYkcYv6X6vS4eyOIHtWsi0L8anUWqq99pO+/6ByDaPLCmlpSbz8pLACucAFiVGUBJkgKUpAigJCsBSqD+Ueg/YH1VQYBS/ZEpTABK8xKgFOurUv+hKgDKcAZQViKAsioDCKYYIAhzUKZpVt38ApH2aH3wJ9G2VAZ+riUK+ViUJRigTCNlWQ5Qpr8uyzVwAXs2nDga40oKJTaiWdgoA/kMr4EoMwfEBW/3aiHBs3bevU4Bh/vLvVru3xL7AKTIAbAiLbljDVOHr5w8EtaQu4Yu5Jm25YOXlU48vqFNQ+vFSLbeBwO6ML6wHRWL28lW+yAUdqJeSfHIairX9Di+BUK49T4YuHRgvK9Jq4JHFpfaB6GCFsIHKX50VF7edVQ+kgWhmDDgAZImg9lEKnZPNuqypXIJh1vvgwHtcfRch5Rv6AVXdCuZOgRiuPVBI3+KshsDhjIH2DW9p1JfLAQb6n3iM5gDT2Y+sx0L7bpjrY977GqeP1nwgDqS+jgv7b5ywR9pp9jWpNc3Ib93LQluh1eM+ABVdp/5yr9z8YNf0y3rlAxNVZfaAyFL8GhNtGwoH2t93Kdj90snNJfaByHLRwgL110OsQ8AHC9Lr+lOqNBkHEl9nOeZ6+s3tAvdCYy1Pu4LOHK/VkQuS75npY9rbH/5SvB7tt0vmqzGWh/3pb3W/Ft8YJzIw2VLQ72PpD7OK/vbe/0XIrc0NO4jqYdzOOjzV1TuWNcxwa/pv3smg7v9hAEfEGj3/GvaNuRw1RC+ViR4PnKp5xHMNt0ZjPVGtPTJfZYXJ/eMKyrvyeaZoH0SXYmGbQ7xCyuTGE+mhksWDVXpCgIy22ZzO9lgtFNvpjza8eDscZAb56Mk/O0wxoofiimsWCjf6J1eD3Al5OGadmIv9cqx3XtC/bDk8aSt0NaEMMfJTU87WHytld57fqN3J/MLKEc2/AKna1fpYNvC6i39TPZ88zBD8WAG+ltbQWVs3/ojlBMIVL4Zgk53/ol2QjnG/U5BX4wmxfdt27CNmWFGkI7ByU04acpjsMyrQXXmabY3m1YPlKEgfnE777+AiR2Vjw+slsQrZbbm1VtbQWVs33qmjK6vTiDMpsw8xIKUKWBf2TQXI7JPlNQN7TqffHkN76Udr8YqyhGPT7IMOJ6y48Wth/8ydVVmjotTr6xp+3dvX2hjp60FnT3X5XmY9F2+qLC9E1zV7bEQ4xOzu/7V27EqdjyaD16FymQIc67rYlLwQJqXstj1bJbHHH246sKn0tCVkHMzLHke8m6t4nhP4DQY2qKasgA5Tkp0c4R2na6sGkZnFyletL0lv5HLnBu5jxeG7fkGntkGnQhcgRKY65Ot4hi4onAV4U/mV4TXrCZqbrUSxPxkdMEIXJTAzI0GHg4rOv3uaE3NwvK1TmPTDkTx8G6+s+gEnCII7CgjbTx+EtpLdIB0pMy55auF61BYpwFHPXsJthmfDbZO1kHVYNeKjinqMzLauCNhPH4y29jm2Ncupx7H1uVRnLAQTz0PjaOeWnQccTIsel3wTsn9jnJF67/II1lvJGtVv6f+JKwt5kxY5+zEsy/MBt2cvtsDVKfO663XPs8mfXZ+Our4KEn7sBJc0f9UbFsNjTIuUmyGI3MxiPLpsOD/Bx7b9puazL8rWIyvtn4I5XNBhjO+jYMaeyqwOmt1YM2/FAzXl3otuCKt2sv5ypEN7JDGrmczefnr12+UfrIj"
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -14,7 +14,7 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Failure to establish a filesystem object's canonical authorization identity.</p>
|
||||
</div></section>
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="80910">
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="80923">
|
||||
<h4>Hierarchy</h4>
|
||||
<ul class="tsd-hierarchy">
|
||||
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Typed application failure produced by controlled process capture.</p>
|
||||
</div></section>
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="81116">
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="81129">
|
||||
<h4>Hierarchy (<a href="../hierarchy.html#application/ProcessCaptureError.ProcessCaptureError">View Summary</a>)</h4>
|
||||
<ul class="tsd-hierarchy">
|
||||
<li class="tsd-hierarchy-item"><a href="domain_errors.AnalysisError.html" class="tsd-signature-type tsd-kind-class">AnalysisError</a>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Owner-only project policy persistence failure.</p>
|
||||
</div></section>
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="82695">
|
||||
<section class="tsd-panel tsd-hierarchy" data-refl="82708">
|
||||
<h4>Hierarchy</h4>
|
||||
<ul class="tsd-hierarchy">
|
||||
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">options</span>: <a href="../interfaces/application_Doctor.SystemDoctorHostOptions.html" class="tsd-signature-type tsd-kind-interface">SystemDoctorHostOptions</a><span class="tsd-signature-symbol"> = {}</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <a href="../interfaces/application_Doctor.DoctorHost.html" class="tsd-signature-type tsd-kind-interface">DoctorHost</a></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Doctor.ts#L388">src/application/Doctor.ts:388</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Doctor.ts#L389">src/application/Doctor.ts:389</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">releases</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">LinuxHopperRelease</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">signal</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">AbortSignal</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = {}</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/application_LinuxHopper.LinuxHopperInstallResult.html" class="tsd-signature-type tsd-kind-type-alias">LinuxHopperInstallResult</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L134">src/application/LinuxHopper.ts:134</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L160">src/application/LinuxHopper.ts:160</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L218">src/application/LinuxHopper.ts:218</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L244">src/application/LinuxHopper.ts:244</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>linuxHopperInstallDisclosure | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_LinuxHopper.html">application/LinuxHopper</a></li>
|
||||
<li><a href="" aria-current="page">linuxHopperInstallDisclosure</a></li></ul>
|
||||
<h1>Function linuxHopperInstallDisclosure</h1></div>
|
||||
<section class="tsd-panel">
|
||||
<ul class="tsd-signatures">
|
||||
<li class="">
|
||||
<div class="tsd-signature tsd-anchor-link" id="linuxhopperinstalldisclosure"><span class="tsd-kind-call-signature">linuxHopperInstallDisclosure</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">family</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">isRoot</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> <a href="../interfaces/application_LinuxHopper.LinuxHopperInstallDisclosure.html" class="tsd-signature-type tsd-kind-interface">LinuxHopperInstallDisclosure</a><a href="#linuxhopperinstalldisclosure" 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>Describe the release and package-manager commands without downloading or writing.</p>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameter-list">
|
||||
<li><span><span class="tsd-kind-parameter">family</span>: <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a></span></li>
|
||||
<li><span><span class="tsd-kind-parameter">isRoot</span>: <span class="tsd-signature-type">boolean</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <a href="../interfaces/application_LinuxHopper.LinuxHopperInstallDisclosure.html" class="tsd-signature-type tsd-kind-interface">LinuxHopperInstallDisclosure</a></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L50">src/application/LinuxHopper.ts:50</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">home</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L183">src/application/LinuxHopper.ts:183</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L209">src/application/LinuxHopper.ts:209</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">isRoot</span>: <span class="tsd-signature-type">boolean</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">args</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><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">executable</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L252">src/application/LinuxHopper.ts:252</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L278">src/application/LinuxHopper.ts:278</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">output</span>: <span class="tsd-signature-type">string</span></span></li></ul></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/LinuxHopper.ts#L231">src/application/LinuxHopper.ts:231</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L257">src/application/LinuxHopper.ts:257</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">text</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <a href="../interfaces/application_LinuxHopper.LinuxDistribution.html" class="tsd-signature-type tsd-kind-interface">LinuxDistribution</a></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L93">src/application/LinuxHopper.ts:93</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L119">src/application/LinuxHopper.ts:119</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
</div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/application_LinuxHopper.LinuxDistribution.html" class="tsd-signature-type tsd-kind-interface">LinuxDistribution</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L123">src/application/LinuxHopper.ts:123</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L149">src/application/LinuxHopper.ts:149</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">host</span>: <a href="../interfaces/application_MacHopper.MacHopperInstallHost.html" class="tsd-signature-type tsd-kind-interface">MacHopperInstallHost</a><span class="tsd-signature-symbol"> = ...</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/application_MacHopper.MacHopperInstallResult.html" class="tsd-signature-type tsd-kind-type-alias">MacHopperInstallResult</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/MacHopper.ts#L67">src/application/MacHopper.ts:67</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/MacHopper.ts#L78">src/application/MacHopper.ts:78</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">command</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></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L402">src/application/Setup.ts:402</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L595">src/application/Setup.ts:595</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">command</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></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L480">src/application/Setup.ts:480</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L673">src/application/Setup.ts:673</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">home</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L391">src/application/Setup.ts:391</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L584">src/application/Setup.ts:584</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ unattended options authorize only the actions represented in the result.</p>
|
|||
<li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">confirm</span>: <a href="../types/application_Setup.SetupConfirmation.html" class="tsd-signature-type tsd-kind-type-alias">SetupConfirmation</a></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/application_Setup.SetupResult.html" class="tsd-signature-type tsd-kind-interface">SetupResult</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L137">src/application/Setup.ts:137</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L179">src/application/Setup.ts:179</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">doctorHost</span>: <a href="../interfaces/application_Doctor.DoctorHost.html" class="tsd-signature-type tsd-kind-interface">DoctorHost</a><span class="tsd-signature-symbol"> = ...</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <a href="../interfaces/application_Setup.SetupHost.html" class="tsd-signature-type tsd-kind-interface">SetupHost</a></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L347">src/application/Setup.ts:347</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L539">src/application/Setup.ts:539</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -14,17 +14,17 @@
|
|||
<section class="tsd-panel">
|
||||
<ul class="tsd-signatures">
|
||||
<li class="">
|
||||
<div class="tsd-signature tsd-anchor-link" id="configuredetectedclients"><span class="tsd-kind-call-signature">configureDetectedClients</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">appliedActions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">command</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><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">detectedClients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">host</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupHost.html" class="tsd-signature-type tsd-kind-interface">SetupHost</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><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"><</span><span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span><a href="#configuredetectedclients" 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-signature tsd-anchor-link" id="configuredetectedclients"><span class="tsd-kind-call-signature">configureDetectedClients</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">appliedActions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">command</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><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">detectedClients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">host</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupHost.html" class="tsd-signature-type tsd-kind-interface">SetupHost</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">onProgress</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupProgressEvent.html" class="tsd-signature-type tsd-kind-interface">SetupProgressEvent</a><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-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><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"><</span><span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span><a href="#configuredetectedclients" 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>Configure every detected agent and report the first failed transaction.</p>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameter-list">
|
||||
<li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">appliedActions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">command</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><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">detectedClients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">host</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupHost.html" class="tsd-signature-type tsd-kind-interface">SetupHost</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></span></li></ul></div>
|
||||
<li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">appliedActions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <a href="../types/application_Setup.ClientConfigurationResult.html" class="tsd-signature-type tsd-kind-type-alias">ClientConfigurationResult</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">command</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><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">detectedClients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">host</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupHost.html" class="tsd-signature-type tsd-kind-interface">SetupHost</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">onProgress</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_Setup.SetupProgressEvent.html" class="tsd-signature-type tsd-kind-interface">SetupProgressEvent</a><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-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</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">undefined</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SetupClients.ts#L21">src/application/SetupClients.ts:21</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SetupClients.ts#L22">src/application/SetupClients.ts:22</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -14,21 +14,17 @@
|
|||
<section class="tsd-panel">
|
||||
<ul class="tsd-signatures">
|
||||
<li class="">
|
||||
<div class="tsd-signature tsd-anchor-link" id="setupplan"><span class="tsd-kind-call-signature">setupPlan</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">platform</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Platform</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">installHopper</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">installSkill</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</span><a href="#setupplan" 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-signature tsd-anchor-link" id="setupplan"><span class="tsd-kind-call-signature">setupPlan</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">input</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">backupPath</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">client</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">operation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"create"</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">installHopper</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">installSkill</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">linuxPackageFamily</span><span class="tsd-signature-symbol">?:</span> <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">platform</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Platform</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</span><a href="#setupplan" 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>Build the complete setup mutation plan before approval.</p>
|
||||
</div>
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameter-list">
|
||||
<li><span><span class="tsd-kind-parameter">platform</span>: <span class="tsd-signature-type">Platform</span></span></li>
|
||||
<li><span><span class="tsd-kind-parameter">installHopper</span>: <span class="tsd-signature-type">boolean</span></span></li>
|
||||
<li><span><span class="tsd-kind-parameter">installSkill</span>: <span class="tsd-signature-type">boolean</span></span></li>
|
||||
<li><span><span class="tsd-kind-parameter">clients</span>: <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span></span></li>
|
||||
<li><span><span class="tsd-kind-parameter">providerEnvironment</span>: <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a></span></li></ul></div>
|
||||
<li><span><span class="tsd-kind-parameter">input</span>: <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">clients</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">backupPath</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">client</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">operation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"create"</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">installHopper</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">installSkill</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">linuxPackageFamily</span><span class="tsd-signature-symbol">?:</span> <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">platform</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Platform</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">providerEnvironment</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_Setup.SetupProviderEnvironment.html" class="tsd-signature-type tsd-kind-type-alias">SetupProviderEnvironment</a><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SetupPlan.ts#L9">src/application/SetupPlan.ts:9</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SetupPlan.ts#L23">src/application/SetupPlan.ts:23</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<li><span><span class="tsd-kind-parameter">home</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L70">src/application/SupportedClients.ts:70</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L71">src/application/SupportedClients.ts:71</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ Analysis commands acquire and close their own sessions; bare <code>mcp</code> an
|
|||
</div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Cli</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/cli.ts#L56">src/cli.ts:56</a></li></ul></aside></div></li></ul></section></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/cli.ts#L57">src/cli.ts:57</a></li></ul></aside></div></li></ul></section></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
<li data-refl="4292" id="domain/errors.BinaryTargetError"><a href="classes/domain_errors.BinaryTargetError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BinaryTargetError</a></li>
|
||||
<li data-refl="4317" id="domain/errors.PermissionRequiredError"><a href="classes/domain_errors.PermissionRequiredError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>PermissionRequiredError</a></li>
|
||||
<li data-refl="4335" id="domain/errors.ReplayPlanStaleError"><a href="classes/domain_errors.ReplayPlanStaleError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ReplayPlanStaleError</a></li>
|
||||
<li data-refl="81116" id="application/ProcessCaptureError.ProcessCaptureError"><a href="classes/application_ProcessCaptureError.ProcessCaptureError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ProcessCaptureError</a></li></ul></li></ul>
|
||||
<li data-refl="81129" id="application/ProcessCaptureError.ProcessCaptureError"><a href="classes/application_ProcessCaptureError.ProcessCaptureError.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ProcessCaptureError</a></li></ul></li></ul>
|
||||
<ul class="tsd-full-hierarchy">
|
||||
<li data-refl="50570" id="application/AnalysisProvider.AnalysisOperationPort"><a href="interfaces/application_AnalysisProvider.AnalysisOperationPort.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>AnalysisOperationPort</a>
|
||||
<ul>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SystemDoctorHostOptions</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#javascriptreplaycheck">javascriptReplayCheck</a><span class="tsd-signature-symbol">?:</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"><</span><a href="application_Doctor.DoctorCheck.html" class="tsd-signature-type tsd-kind-interface">DoctorCheck</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#providerinspections">providerInspections</a><span class="tsd-signature-symbol">?:</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"><</span><span class="tsd-signature-keyword">readonly</span> <a href="application_Doctor.DoctorProviderInspection.html" class="tsd-signature-type tsd-kind-interface">DoctorProviderInspection</a><span class="tsd-signature-symbol">[]</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/application/Doctor.ts#L380">src/application/Doctor.ts:380</a></li></ul></aside>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Doctor.ts#L381">src/application/Doctor.ts:381</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>
|
||||
|
|
@ -34,12 +34,12 @@
|
|||
<h3 class="tsd-anchor-link" id="javascriptreplaycheck"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>javascript<wbr/>Replay<wbr/>Check</span><a href="#javascriptreplaycheck" 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">javascriptReplayCheck</span><span class="tsd-signature-symbol">?:</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"><</span><a href="application_Doctor.DoctorCheck.html" class="tsd-signature-type tsd-kind-interface">DoctorCheck</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/application/Doctor.ts#L384">src/application/Doctor.ts:384</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Doctor.ts#L385">src/application/Doctor.ts:385</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="providerinspections"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>provider<wbr/>Inspections</span><a href="#providerinspections" 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">providerInspections</span><span class="tsd-signature-symbol">?:</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"><</span><span class="tsd-signature-keyword">readonly</span> <a href="application_Doctor.DoctorProviderInspection.html" class="tsd-signature-type tsd-kind-interface">DoctorProviderInspection</a><span class="tsd-signature-symbol">[]</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/application/Doctor.ts#L381">src/application/Doctor.ts:381</a></li></ul></aside></section></section></details></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Doctor.ts#L382">src/application/Doctor.ts:382</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">LinuxDistribution</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#id">id</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#packagefamily">packageFamily</a><span class="tsd-signature-symbol">:</span> <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#supported">supported</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="#versionid">versionId</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/LinuxHopper.ts#L42">src/application/LinuxHopper.ts:42</a></li></ul></aside>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L68">src/application/LinuxHopper.ts:68</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,22 +36,22 @@
|
|||
<h3 class="tsd-anchor-link" id="id"><code class="tsd-tag">Readonly</code><span>id</span><a href="#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">id</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/LinuxHopper.ts#L43">src/application/LinuxHopper.ts:43</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L69">src/application/LinuxHopper.ts:69</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="packagefamily"><code class="tsd-tag">Readonly</code><span>package<wbr/>Family</span><a href="#packagefamily" 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">packageFamily</span><span class="tsd-signature-symbol">:</span> <a href="../types/application_LinuxHopper.LinuxPackageFamily.html" class="tsd-signature-type tsd-kind-type-alias">LinuxPackageFamily</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L45">src/application/LinuxHopper.ts:45</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L71">src/application/LinuxHopper.ts:71</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="supported"><code class="tsd-tag">Readonly</code><span>supported</span><a href="#supported" 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">supported</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/application/LinuxHopper.ts#L46">src/application/LinuxHopper.ts:46</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L72">src/application/LinuxHopper.ts:72</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="versionid"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>version<wbr/>Id</span><a href="#versionid" 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">versionId</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/LinuxHopper.ts#L44">src/application/LinuxHopper.ts:44</a></li></ul></aside></section></section></details></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L70">src/application/LinuxHopper.ts:70</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">LinuxHopperDownload</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#bytes">bytes</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#ok">ok</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/application/LinuxHopper.ts#L50">src/application/LinuxHopper.ts:50</a></li></ul></aside>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L76">src/application/LinuxHopper.ts:76</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>
|
||||
|
|
@ -34,12 +34,12 @@
|
|||
<h3 class="tsd-anchor-link" id="bytes"><code class="tsd-tag">Readonly</code><span>bytes</span><a href="#bytes" 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">bytes</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Uint8Array</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L52">src/application/LinuxHopper.ts:52</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L78">src/application/LinuxHopper.ts:78</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="ok"><code class="tsd-tag">Readonly</code><span>ok</span><a href="#ok" 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">ok</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/application/LinuxHopper.ts#L51">src/application/LinuxHopper.ts:51</a></li></ul></aside></section></section></details></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L77">src/application/LinuxHopper.ts:77</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>LinuxHopperInstallDisclosure | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_LinuxHopper.html">application/LinuxHopper</a></li>
|
||||
<li><a href="" aria-current="page">LinuxHopperInstallDisclosure</a></li></ul>
|
||||
<h1>Interface LinuxHopperInstallDisclosure</h1></div>
|
||||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Exact stable external effects disclosed before a Linux Hopper installation.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">LinuxHopperInstallDisclosure</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#commands">commands</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="#downloadurl">downloadUrl</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="#expectedbytes">expectedBytes</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="#expectedsha1">expectedSha1</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/LinuxHopper.ts#L42">src/application/LinuxHopper.ts:42</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>
|
||||
<h5 class="tsd-index-heading uppercase">Index</h5></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#commands" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>commands</span></a>
|
||||
<a href="#downloadurl" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>download<wbr/>Url</span></a>
|
||||
<a href="#expectedbytes" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>expected<wbr/>Bytes</span></a>
|
||||
<a href="#expectedsha1" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>expected<wbr/>Sha1</span></a>
|
||||
</div></section></div></details></section></section>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><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="properties-1">Properties<a href="#properties-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>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="commands"><code class="tsd-tag">Readonly</code><span>commands</span><a href="#commands" 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">commands</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/application/LinuxHopper.ts#L46">src/application/LinuxHopper.ts:46</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="downloadurl"><code class="tsd-tag">Readonly</code><span>download<wbr/>Url</span><a href="#downloadurl" 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">downloadUrl</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/LinuxHopper.ts#L43">src/application/LinuxHopper.ts:43</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="expectedbytes"><code class="tsd-tag">Readonly</code><span>expected<wbr/>Bytes</span><a href="#expectedbytes" 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">expectedBytes</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/LinuxHopper.ts#L44">src/application/LinuxHopper.ts:44</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="expectedsha1"><code class="tsd-tag">Readonly</code><span>expected<wbr/>Sha1</span><a href="#expectedsha1" 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">expectedSha1</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/LinuxHopper.ts#L45">src/application/LinuxHopper.ts:45</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
|
||||
<details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#commands"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>commands</span></a><a href="#downloadurl"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>download<wbr/>Url</span></a><a href="#expectedbytes"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>expected<wbr/>Bytes</span></a><a href="#expectedsha1"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>expected<wbr/>Sha1</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -14,9 +14,9 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>One concrete setup mutation disclosed before approval.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupAction</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#detail">detail</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="#external">external</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="#kind">kind</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"install_hopper"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"install_skill"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"configure_client"</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#target">target</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">
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupAction</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#backuppath">backupPath</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="#commands">commands</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="#detail">detail</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="#external">external</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="#id">id</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#integrity">integrity</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="#kind">kind</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"install_hopper"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"install_skill"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"configure_client"</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#label">label</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="#networkorigins">networkOrigins</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="#operation">operation</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"install"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"create"</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#target">target</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/Setup.ts#L113">src/application/Setup.ts:113</a></li></ul></aside>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L130">src/application/Setup.ts:130</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>
|
||||
|
|
@ -24,34 +24,76 @@
|
|||
<div class="tsd-accordion-details">
|
||||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#detail" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail</span></a>
|
||||
<div class="tsd-index-list"><a href="#backuppath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>backup<wbr/>Path?</span></a>
|
||||
<a href="#commands" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>commands?</span></a>
|
||||
<a href="#detail" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail</span></a>
|
||||
<a href="#external" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>external</span></a>
|
||||
<a href="#id" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>id</span></a>
|
||||
<a href="#integrity" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>integrity?</span></a>
|
||||
<a href="#kind" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>kind</span></a>
|
||||
<a href="#label" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>label</span></a>
|
||||
<a href="#networkorigins" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>network<wbr/>Origins?</span></a>
|
||||
<a href="#operation" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>operation</span></a>
|
||||
<a href="#target" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>target</span></a>
|
||||
</div></section></div></details></section></section>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><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="properties-1">Properties<a href="#properties-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>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="backuppath"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>backup<wbr/>Path</span><a href="#backuppath" 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">backupPath</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/Setup.ts#L138">src/application/Setup.ts:138</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="commands"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>commands</span><a href="#commands" 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">commands</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/application/Setup.ts#L140">src/application/Setup.ts:140</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="detail"><code class="tsd-tag">Readonly</code><span>detail</span><a href="#detail" 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">detail</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/Setup.ts#L116">src/application/Setup.ts:116</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L135">src/application/Setup.ts:135</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="external"><code class="tsd-tag">Readonly</code><span>external</span><a href="#external" 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">external</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/application/Setup.ts#L117">src/application/Setup.ts:117</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L136">src/application/Setup.ts:136</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="id"><code class="tsd-tag">Readonly</code><span>id</span><a href="#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">id</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/Setup.ts#L131">src/application/Setup.ts:131</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="integrity"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>integrity</span><a href="#integrity" 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">integrity</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/Setup.ts#L141">src/application/Setup.ts:141</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="kind"><code class="tsd-tag">Readonly</code><span>kind</span><a href="#kind" 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">kind</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"install_hopper"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"install_skill"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"configure_client"</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L114">src/application/Setup.ts:114</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L132">src/application/Setup.ts:132</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="label"><code class="tsd-tag">Readonly</code><span>label</span><a href="#label" 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">label</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/Setup.ts#L133">src/application/Setup.ts:133</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="networkorigins"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>network<wbr/>Origins</span><a href="#networkorigins" 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">networkOrigins</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/application/Setup.ts#L139">src/application/Setup.ts:139</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="operation"><code class="tsd-tag">Readonly</code><span>operation</span><a href="#operation" 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">operation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"update"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"install"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"create"</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L137">src/application/Setup.ts:137</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="target"><code class="tsd-tag">Readonly</code><span>target</span><a href="#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">target</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/Setup.ts#L115">src/application/Setup.ts:115</a></li></ul></aside></section></section></details></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L134">src/application/Setup.ts:134</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
@ -67,7 +109,7 @@
|
|||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#detail"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail</span></a><a href="#external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>external</span></a><a href="#kind"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>kind</span></a><a href="#target"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>target</span></a></div></details></div></details></div>
|
||||
<div><a href="#backuppath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>backup<wbr/>Path</span></a><a href="#commands"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>commands</span></a><a href="#detail"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail</span></a><a href="#external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>external</span></a><a href="#id"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>id</span></a><a href="#integrity"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>integrity</span></a><a href="#kind"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>kind</span></a><a href="#label"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>label</span></a><a href="#networkorigins"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>network<wbr/>Origins</span></a><a href="#operation"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>operation</span></a><a href="#target"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>target</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SetupConfirmationDecision | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_Setup.html">application/Setup</a></li>
|
||||
<li><a href="" aria-current="page">SetupConfirmationDecision</a></li></ul>
|
||||
<h1>Interface SetupConfirmationDecision</h1></div>
|
||||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Interactive selection and final consent returned by the CLI adapter.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupConfirmationDecision</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#approved">approved</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="#selectedactionids">selectedActionIds</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/application/Setup.ts#L164">src/application/Setup.ts:164</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>
|
||||
<h5 class="tsd-index-heading uppercase">Index</h5></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#approved" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>approved</span></a>
|
||||
<a href="#selectedactionids" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>selected<wbr/>Action<wbr/>Ids</span></a>
|
||||
</div></section></div></details></section></section>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><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="properties-1">Properties<a href="#properties-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>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="approved"><code class="tsd-tag">Readonly</code><span>approved</span><a href="#approved" 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">approved</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/application/Setup.ts#L165">src/application/Setup.ts:165</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="selectedactionids"><code class="tsd-tag">Readonly</code><span>selected<wbr/>Action<wbr/>Ids</span><a href="#selectedactionids" 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">selectedActionIds</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/application/Setup.ts#L166">src/application/Setup.ts:166</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
|
||||
<details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#approved"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>approved</span></a><a href="#selectedactionids"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>selected<wbr/>Action<wbr/>Ids</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -14,9 +14,9 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>Explicit authorization supplied by an interactive or unattended CLI adapter.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupOptions</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#approved">approved</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="#installhopper">installHopper</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="#structured">structured</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">
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupOptions</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#approved">approved</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="#clientids">clientIds</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="#installhopper">installHopper</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="#installskill">installSkill</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="#onprogress">onProgress</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <a href="application_Setup.SetupProgressEvent.html" class="tsd-signature-type tsd-kind-interface">SetupProgressEvent</a><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/> <a class="tsd-kind-property" href="#proposehopper">proposeHopper</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="#structured">structured</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/application/Setup.ts#L121">src/application/Setup.ts:121</a></li></ul></aside>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L145">src/application/Setup.ts:145</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>
|
||||
|
|
@ -25,7 +25,11 @@
|
|||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#approved" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>approved</span></a>
|
||||
<a href="#clientids" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>client<wbr/>Ids?</span></a>
|
||||
<a href="#installhopper" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>install<wbr/>Hopper</span></a>
|
||||
<a href="#installskill" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>install<wbr/>Skill?</span></a>
|
||||
<a href="#onprogress" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>on<wbr/>Progress?</span></a>
|
||||
<a href="#proposehopper" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>propose<wbr/>Hopper?</span></a>
|
||||
<a href="#structured" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>structured</span></a>
|
||||
</div></section></div></details></section></section>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><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 +39,37 @@
|
|||
<h3 class="tsd-anchor-link" id="approved"><code class="tsd-tag">Readonly</code><span>approved</span><a href="#approved" 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">approved</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/application/Setup.ts#L122">src/application/Setup.ts:122</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L146">src/application/Setup.ts:146</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="clientids"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>client<wbr/>Ids</span><a href="#clientids" 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">clientIds</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/application/Setup.ts#L150">src/application/Setup.ts:150</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="installhopper"><code class="tsd-tag">Readonly</code><span>install<wbr/>Hopper</span><a href="#installhopper" 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">installHopper</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/application/Setup.ts#L123">src/application/Setup.ts:123</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L147">src/application/Setup.ts:147</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="installskill"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>install<wbr/>Skill</span><a href="#installskill" 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">installSkill</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/application/Setup.ts#L151">src/application/Setup.ts:151</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="onprogress"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>on<wbr/>Progress</span><a href="#onprogress" 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">onProgress</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">:</span> <a href="application_Setup.SetupProgressEvent.html" class="tsd-signature-type tsd-kind-interface">SetupProgressEvent</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L152">src/application/Setup.ts:152</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="proposehopper"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>propose<wbr/>Hopper</span><a href="#proposehopper" 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">proposeHopper</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/application/Setup.ts#L149">src/application/Setup.ts:149</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="structured"><code class="tsd-tag">Readonly</code><span>structured</span><a href="#structured" 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">structured</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/application/Setup.ts#L124">src/application/Setup.ts:124</a></li></ul></aside></section></section></details></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L148">src/application/Setup.ts:148</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
@ -61,7 +85,7 @@
|
|||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#approved"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>approved</span></a><a href="#installhopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>install<wbr/>Hopper</span></a><a href="#structured"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>structured</span></a></div></details></div></details></div>
|
||||
<div><a href="#approved"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>approved</span></a><a href="#clientids"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>client<wbr/>Ids</span></a><a href="#installhopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>install<wbr/>Hopper</span></a><a href="#installskill"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>install<wbr/>Skill</span></a><a href="#onprogress"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>on<wbr/>Progress</span></a><a href="#proposehopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>propose<wbr/>Hopper</span></a><a href="#structured"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>structured</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SetupProgressEvent | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_Setup.html">application/Setup</a></li>
|
||||
<li><a href="" aria-current="page">SetupProgressEvent</a></li></ul>
|
||||
<h1>Interface SetupProgressEvent</h1></div>
|
||||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>One settled or active setup operation projected to the interactive adapter.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupProgressEvent</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#actionid">actionId</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="#detail">detail</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="#label">label</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="#state">state</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"failed"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"completed"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"warning"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"started"</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/Setup.ts#L156">src/application/Setup.ts:156</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>
|
||||
<h5 class="tsd-index-heading uppercase">Index</h5></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#actionid" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>action<wbr/>Id</span></a>
|
||||
<a href="#detail" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail?</span></a>
|
||||
<a href="#label" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>label</span></a>
|
||||
<a href="#state" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>state</span></a>
|
||||
</div></section></div></details></section></section>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><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="properties-1">Properties<a href="#properties-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>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="actionid"><code class="tsd-tag">Readonly</code><span>action<wbr/>Id</span><a href="#actionid" 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">actionId</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/Setup.ts#L157">src/application/Setup.ts:157</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="detail"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>detail</span><a href="#detail" 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">detail</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/Setup.ts#L160">src/application/Setup.ts:160</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="label"><code class="tsd-tag">Readonly</code><span>label</span><a href="#label" 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">label</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/Setup.ts#L158">src/application/Setup.ts:158</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="state"><code class="tsd-tag">Readonly</code><span>state</span><a href="#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">state</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"failed"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"completed"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"warning"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"started"</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L159">src/application/Setup.ts:159</a></li></ul></aside></section></section></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
|
||||
<details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#actionid"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>action<wbr/>Id</span></a><a href="#detail"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>detail</span></a><a href="#label"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>label</span></a><a href="#state"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>state</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -14,7 +14,7 @@
|
|||
<section class="tsd-panel tsd-comment">
|
||||
<div class="tsd-comment tsd-typography"><p>One supported client configuration location.</p>
|
||||
</div></section>
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupClient</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#configpath">configPath</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="#format">format</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">"json"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"unsupported"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"toml"</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#markerpath">markerPath</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="#name">name</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">
|
||||
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SetupClient</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#configpath">configPath</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="#displayname">displayName</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="#format">format</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">"json"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"unsupported"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"toml"</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#markerpath">markerPath</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="#name">name</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/SupportedClients.ts#L4">src/application/SupportedClients.ts:4</a></li></ul></aside>
|
||||
<section class="tsd-panel-group tsd-index-group">
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
<section class="tsd-index-section">
|
||||
<h3 class="tsd-index-heading tsd-anchor-link" id="properties">Properties<a href="#properties" 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-index-list"><a href="#configpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config<wbr/>Path</span></a>
|
||||
<a href="#displayname" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>display<wbr/>Name?</span></a>
|
||||
<a href="#format" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>format?</span></a>
|
||||
<a href="#markerpath" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>marker<wbr/>Path?</span></a>
|
||||
<a href="#name" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a>
|
||||
|
|
@ -36,17 +37,22 @@
|
|||
<h3 class="tsd-anchor-link" id="configpath"><code class="tsd-tag">Readonly</code><span>config<wbr/>Path</span><a href="#configpath" 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">configPath</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/SupportedClients.ts#L7">src/application/SupportedClients.ts:7</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="displayname"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>display<wbr/>Name</span><a href="#displayname" 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">displayName</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/SupportedClients.ts#L6">src/application/SupportedClients.ts:6</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="format"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>format</span><a href="#format" 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">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">"json"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"unsupported"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"toml"</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L8">src/application/SupportedClients.ts:8</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L9">src/application/SupportedClients.ts:9</a></li></ul></aside></section>
|
||||
<section class="tsd-panel tsd-member">
|
||||
<h3 class="tsd-anchor-link" id="markerpath"><code class="tsd-tag">Optional</code> <code class="tsd-tag">Readonly</code><span>marker<wbr/>Path</span><a href="#markerpath" 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">markerPath</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/SupportedClients.ts#L7">src/application/SupportedClients.ts:7</a></li></ul></aside></section>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L8">src/application/SupportedClients.ts:8</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">
|
||||
|
|
@ -67,7 +73,7 @@
|
|||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
||||
<div><a href="#configpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config<wbr/>Path</span></a><a href="#format"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>format</span></a><a href="#markerpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>marker<wbr/>Path</span></a><a href="#name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a></div></details></div></details></div>
|
||||
<div><a href="#configpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>config<wbr/>Path</span></a><a href="#displayname"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>display<wbr/>Name</span></a><a href="#format"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>format</span></a><a href="#markerpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>marker<wbr/>Path</span></a><a href="#name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>name</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@
|
|||
<li><a href="" aria-current="page">application/LinuxHopper</a></li></ul>
|
||||
<h1>Module application/LinuxHopper</h1></div>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><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="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="linuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxDistribution.html">LinuxDistribution</a><a href="#linuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperdownload"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxHopperDownload.html">LinuxHopperDownload</a><a href="#linuxhopperdownload" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperinstallhost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxHopperInstallHost.html">LinuxHopperInstallHost</a><a href="#linuxhopperinstallhost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<h2 class="tsd-anchor-link" id="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="linuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxDistribution.html">LinuxDistribution</a><a href="#linuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperdownload"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxHopperDownload.html">LinuxHopperDownload</a><a href="#linuxhopperdownload" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperinstalldisclosure"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxHopperInstallDisclosure.html">LinuxHopperInstallDisclosure</a><a href="#linuxhopperinstalldisclosure" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperinstallhost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_LinuxHopper.LinuxHopperInstallHost.html">LinuxHopperInstallHost</a><a href="#linuxhopperinstallhost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="linuxhopperinstallresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_LinuxHopper.LinuxHopperInstallResult.html">LinuxHopperInstallResult</a><a href="#linuxhopperinstallresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperlauncherstatus"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_LinuxHopper.LinuxHopperLauncherStatus.html">LinuxHopperLauncherStatus</a><a href="#linuxhopperlauncherstatus" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxpackagefamily"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_LinuxHopper.LinuxPackageFamily.html">LinuxPackageFamily</a><a href="#linuxpackagefamily" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><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="functions">Functions<a href="#functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="installlinuxhopper"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.installLinuxHopper.html">installLinuxHopper</a><a href="#installlinuxhopper" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperbinarysupported"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxHopperBinarySupported.html">linuxHopperBinarySupported</a><a href="#linuxhopperbinarysupported" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperlauncherpath"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxHopperLauncherPath.html">linuxHopperLauncherPath</a><a href="#linuxhopperlauncherpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxpackagemanagercommands"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxPackageManagerCommands.html">linuxPackageManagerCommands</a><a href="#linuxpackagemanagercommands" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxsharedlibrariesavailable"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxSharedLibrariesAvailable.html">linuxSharedLibrariesAvailable</a><a href="#linuxsharedlibrariesavailable" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="parselinuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.parseLinuxDistribution.html">parseLinuxDistribution</a><a href="#parselinuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="readlinuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.readLinuxDistribution.html">readLinuxDistribution</a><a href="#readlinuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
|
||||
<h2 class="tsd-anchor-link" id="functions">Functions<a href="#functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="installlinuxhopper"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.installLinuxHopper.html">installLinuxHopper</a><a href="#installlinuxhopper" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperbinarysupported"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxHopperBinarySupported.html">linuxHopperBinarySupported</a><a href="#linuxhopperbinarysupported" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperinstalldisclosure-1"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxHopperInstallDisclosure.html">linuxHopperInstallDisclosure</a><a href="#linuxhopperinstalldisclosure-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></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxhopperlauncherpath"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxHopperLauncherPath.html">linuxHopperLauncherPath</a><a href="#linuxhopperlauncherpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxpackagemanagercommands"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxPackageManagerCommands.html">linuxPackageManagerCommands</a><a href="#linuxpackagemanagercommands" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="linuxsharedlibrariesavailable"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.linuxSharedLibrariesAvailable.html">linuxSharedLibrariesAvailable</a><a href="#linuxsharedlibrariesavailable" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="parselinuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.parseLinuxDistribution.html">parseLinuxDistribution</a><a href="#parselinuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="readlinuxdistribution"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_LinuxHopper.readLinuxDistribution.html">readLinuxDistribution</a><a href="#readlinuxdistribution" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
@ -31,11 +31,11 @@
|
|||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary>
|
||||
<div><a href="#linuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Distribution</span></a><a href="#linuxhopperdownload"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Hopper<wbr/>Download</span></a><a href="#linuxhopperinstallhost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Hopper<wbr/>Install<wbr/>Host</span></a></div></details>
|
||||
<div><a href="#linuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Distribution</span></a><a href="#linuxhopperdownload"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Hopper<wbr/>Download</span></a><a href="#linuxhopperinstalldisclosure"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Hopper<wbr/>Install<wbr/>Disclosure</span></a><a href="#linuxhopperinstallhost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Linux<wbr/>Hopper<wbr/>Install<wbr/>Host</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
|
||||
<div><a href="#linuxhopperinstallresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Linux<wbr/>Hopper<wbr/>Install<wbr/>Result</span></a><a href="#linuxhopperlauncherstatus"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Linux<wbr/>Hopper<wbr/>Launcher<wbr/>Status</span></a><a href="#linuxpackagefamily"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Linux<wbr/>Package<wbr/>Family</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary>
|
||||
<div><a href="#installlinuxhopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>install<wbr/>Linux<wbr/>Hopper</span></a><a href="#linuxhopperbinarysupported"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Hopper<wbr/>Binary<wbr/>Supported</span></a><a href="#linuxhopperlauncherpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Hopper<wbr/>Launcher<wbr/>Path</span></a><a href="#linuxpackagemanagercommands"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Package<wbr/>Manager<wbr/>Commands</span></a><a href="#linuxsharedlibrariesavailable"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Shared<wbr/>Libraries<wbr/>Available</span></a><a href="#parselinuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>parse<wbr/>Linux<wbr/>Distribution</span></a><a href="#readlinuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>read<wbr/>Linux<wbr/>Distribution</span></a></div></details></div></details></div>
|
||||
<div><a href="#installlinuxhopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>install<wbr/>Linux<wbr/>Hopper</span></a><a href="#linuxhopperbinarysupported"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Hopper<wbr/>Binary<wbr/>Supported</span></a><a href="#linuxhopperinstalldisclosure-1"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Hopper<wbr/>Install<wbr/>Disclosure</span></a><a href="#linuxhopperlauncherpath"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Hopper<wbr/>Launcher<wbr/>Path</span></a><a href="#linuxpackagemanagercommands"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Package<wbr/>Manager<wbr/>Commands</span></a><a href="#linuxsharedlibrariesavailable"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>linux<wbr/>Shared<wbr/>Libraries<wbr/>Available</span></a><a href="#parselinuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>parse<wbr/>Linux<wbr/>Distribution</span></a><a href="#readlinuxdistribution"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>read<wbr/>Linux<wbr/>Distribution</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
<h2 class="tsd-anchor-link" id="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="machopperinstallhost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_MacHopper.MacHopperInstallHost.html">MacHopperInstallHost</a><a href="#machopperinstallhost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="machopperinstallresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_MacHopper.MacHopperInstallResult.html">MacHopperInstallResult</a><a href="#machopperinstallresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h2 class="tsd-anchor-link" id="variables">Variables<a href="#variables" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="machopperinstalldisclosure"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/application_MacHopper.macHopperInstallDisclosure.html">macHopperInstallDisclosure</a><a href="#machopperinstalldisclosure" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><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="functions">Functions<a href="#functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="installmachopper"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_MacHopper.installMacHopper.html">installMacHopper</a><a href="#installmachopper" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
|
||||
<div class="col-sidebar">
|
||||
|
|
@ -34,6 +36,8 @@
|
|||
<div><a href="#machopperinstallhost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Mac<wbr/>Hopper<wbr/>Install<wbr/>Host</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
|
||||
<div><a href="#machopperinstallresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Mac<wbr/>Hopper<wbr/>Install<wbr/>Result</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Variables</summary>
|
||||
<div><a href="#machopperinstalldisclosure"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>mac<wbr/>Hopper<wbr/>Install<wbr/>Disclosure</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary>
|
||||
<div><a href="#installmachopper"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>install<wbr/>Mac<wbr/>Hopper</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@
|
|||
<li><a href="" aria-current="page">application/Setup</a></li></ul>
|
||||
<h1>Module application/Setup</h1></div>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><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="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="setupaction"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupAction.html">SetupAction</a><a href="#setupaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setuphost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupHost.html">SetupHost</a><a href="#setuphost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupOptions.html">SetupOptions</a><a href="#setupoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupResult.html">SetupResult</a><a href="#setupresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<h2 class="tsd-anchor-link" id="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="setupaction"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupAction.html">SetupAction</a><a href="#setupaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupconfirmationdecision"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupConfirmationDecision.html">SetupConfirmationDecision</a><a href="#setupconfirmationdecision" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setuphost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupHost.html">SetupHost</a><a href="#setuphost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupOptions.html">SetupOptions</a><a href="#setupoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupprogressevent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupProgressEvent.html">SetupProgressEvent</a><a href="#setupprogressevent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/application_Setup.SetupResult.html">SetupResult</a><a href="#setupresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="clientconfigurationresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.ClientConfigurationResult.html">ClientConfigurationResult</a><a href="#clientconfigurationresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupconfirmation"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.SetupConfirmation.html">SetupConfirmation</a><a href="#setupconfirmation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupproviderenvironment"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.SetupProviderEnvironment.html">SetupProviderEnvironment</a><a href="#setupproviderenvironment" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="clientconfigurationinspection"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.ClientConfigurationInspection.html">ClientConfigurationInspection</a><a href="#clientconfigurationinspection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="clientconfigurationresult"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.ClientConfigurationResult.html">ClientConfigurationResult</a><a href="#clientconfigurationresult" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupconfirmation"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.SetupConfirmation.html">SetupConfirmation</a><a href="#setupconfirmation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="setupproviderenvironment"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_Setup.SetupProviderEnvironment.html">SetupProviderEnvironment</a><a href="#setupproviderenvironment" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><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="functions">Functions<a href="#functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="configurejsonclient"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_Setup.configureJsonClient.html">configureJsonClient</a><a href="#configurejsonclient" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="configuretomlclient"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_Setup.configureTomlClient.html">configureTomlClient</a><a href="#configuretomlclient" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="detectclients"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_Setup.detectClients.html">detectClients</a><a href="#detectclients" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="runsetup"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_Setup.runSetup.html">runSetup</a><a href="#runsetup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="systemsetuphost"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_Setup.systemSetupHost.html">systemSetupHost</a><a href="#systemsetuphost" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-References"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
|
|
@ -33,9 +33,9 @@
|
|||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary>
|
||||
<div><a href="#setupaction"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Action</span></a><a href="#setuphost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Host</span></a><a href="#setupoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Options</span></a><a href="#setupresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Result</span></a></div></details>
|
||||
<div><a href="#setupaction"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Action</span></a><a href="#setupconfirmationdecision"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Confirmation<wbr/>Decision</span></a><a href="#setuphost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Host</span></a><a href="#setupoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Options</span></a><a href="#setupprogressevent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Progress<wbr/>Event</span></a><a href="#setupresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>Setup<wbr/>Result</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
|
||||
<div><a href="#clientconfigurationresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Client<wbr/>Configuration<wbr/>Result</span></a><a href="#setupconfirmation"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Setup<wbr/>Confirmation</span></a><a href="#setupproviderenvironment"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Setup<wbr/>Provider<wbr/>Environment</span></a></div></details>
|
||||
<div><a href="#clientconfigurationinspection"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Client<wbr/>Configuration<wbr/>Inspection</span></a><a href="#clientconfigurationresult"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Client<wbr/>Configuration<wbr/>Result</span></a><a href="#setupconfirmation"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Setup<wbr/>Confirmation</span></a><a href="#setupproviderenvironment"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Setup<wbr/>Provider<wbr/>Environment</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary>
|
||||
<div><a href="#configurejsonclient"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>configure<wbr/>Json<wbr/>Client</span></a><a href="#configuretomlclient"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>configure<wbr/>Toml<wbr/>Client</span></a><a href="#detectclients"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>detect<wbr/>Clients</span></a><a href="#runsetup"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>run<wbr/>Setup</span></a><a href="#systemsetuphost"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>system<wbr/>Setup<wbr/>Host</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-References"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>References</summary>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="" aria-current="page">application/SetupPlan</a></li></ul>
|
||||
<h1>Module application/SetupPlan</h1></div>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="setupclientplan"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/application_SetupPlan.SetupClientPlan.html">SetupClientPlan</a><a href="#setupclientplan" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
|
||||
<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><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="functions">Functions<a href="#functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="setupplan"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/application_SetupPlan.setupPlan.html">setupPlan</a><a href="#setupplan" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
|
||||
<div class="col-sidebar">
|
||||
|
|
@ -26,6 +28,8 @@
|
|||
<details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>On This Page</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
|
||||
<div><a href="#setupclientplan"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Setup<wbr/>Client<wbr/>Plan</span></a></div></details>
|
||||
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary>
|
||||
<div><a href="#setupplan"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>setup<wbr/>Plan</span></a></div></details></div></details></div>
|
||||
<div class="site-menu">
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<div class="tsd-comment tsd-typography"><p>Structured outcome for every expected Linux installation failure.</p>
|
||||
</div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L70">src/application/LinuxHopper.ts:70</a></li></ul></aside></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L96">src/application/LinuxHopper.ts:96</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<h1>Type Alias LinuxHopperLauncherStatus</h1></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-type-alias">LinuxHopperLauncherStatus</span><span class="tsd-signature-symbol">:</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"ready"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"missing"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"runtime_dependencies"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"unsupported_hopper_build"</span></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L86">src/application/LinuxHopper.ts:86</a></li></ul></aside></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/LinuxHopper.ts#L112">src/application/LinuxHopper.ts:112</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<div class="tsd-comment tsd-typography"><p>Result of installing the official Hopper macOS application.</p>
|
||||
</div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/MacHopper.ts#L26">src/application/MacHopper.ts:26</a></li></ul></aside></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/MacHopper.ts#L37">src/application/MacHopper.ts:37</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ClientConfigurationInspection | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_Setup.html">application/Setup</a></li>
|
||||
<li><a href="" aria-current="page">ClientConfigurationInspection</a></li></ul>
|
||||
<h1>Type Alias ClientConfigurationInspection</h1></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-type-alias">ClientConfigurationInspection</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">status</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"already_current"</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">backupPath</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">status</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"create"</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"update"</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">remediation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">status</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"invalid"</span> <span class="tsd-signature-symbol">}</span></div>
|
||||
<div class="tsd-comment tsd-typography"><p>Read-only state used to block unsafe setup plans before any mutation.</p>
|
||||
</div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L71">src/application/Setup.ts:71</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<li><a href="../modules/application_Setup.html">application/Setup</a></li>
|
||||
<li><a href="" aria-current="page">SetupConfirmation</a></li></ul>
|
||||
<h1>Type Alias SetupConfirmation</h1></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-type-alias">SetupConfirmation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">actions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</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"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-type-alias">SetupConfirmation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">actions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</span><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"><</span><span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <a href="../interfaces/application_Setup.SetupConfirmationDecision.html" class="tsd-signature-type tsd-kind-interface">SetupConfirmationDecision</a><span class="tsd-signature-symbol">></span></div>
|
||||
<div class="tsd-comment tsd-typography"><p>Adapter-owned interactive confirmation for a fully discovered setup plan.</p>
|
||||
</div>
|
||||
<div class="tsd-type-declaration">
|
||||
|
|
@ -19,15 +19,15 @@
|
|||
<ul class="tsd-parameters">
|
||||
<li class="tsd-parameter-signature">
|
||||
<ul class="tsd-signatures">
|
||||
<li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">actions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</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"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></li>
|
||||
<li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">actions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</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"><</span><span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <a href="../interfaces/application_Setup.SetupConfirmationDecision.html" class="tsd-signature-type tsd-kind-interface">SetupConfirmationDecision</a><span class="tsd-signature-symbol">></span></li>
|
||||
<li class="tsd-description">
|
||||
<div class="tsd-parameters">
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameter-list">
|
||||
<li><span><span class="tsd-kind-parameter">actions</span>: <span class="tsd-signature-keyword">readonly</span> <a href="../interfaces/application_Setup.SetupAction.html" class="tsd-signature-type tsd-kind-interface">SetupAction</a><span class="tsd-signature-symbol">[]</span></span></li></ul></div>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4></li></ul></li></ul></div><aside class="tsd-sources">
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">|</span> <a href="../interfaces/application_Setup.SetupConfirmationDecision.html" class="tsd-signature-type tsd-kind-interface">SetupConfirmationDecision</a><span class="tsd-signature-symbol">></span></h4></li></ul></li></ul></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L128">src/application/Setup.ts:128</a></li></ul></aside></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/Setup.ts#L170">src/application/Setup.ts:170</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SetupClientPlan | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_SetupPlan.html">application/SetupPlan</a></li>
|
||||
<li><a href="" aria-current="page">SetupClientPlan</a></li></ul>
|
||||
<h1>Type Alias SetupClientPlan</h1></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-type-alias">SetupClientPlan</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol"><</span><br/> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">backupPath</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">client</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/application_SupportedClients.SetupClient.html" class="tsd-signature-type tsd-kind-interface">SetupClient</a><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">operation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"create"</span><br/> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">"update"</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">></span></div>
|
||||
<div class="tsd-comment tsd-typography"><p>Preflighted client mutation admitted into the setup plan.</p>
|
||||
</div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SetupPlan.ts#L16">src/application/SetupPlan.ts:16</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>macHopperInstallDisclosure | rea-agents - v2.0.0</title><meta name="description" content="Documentation for rea-agents"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
|
||||
<div class="tsd-toolbar-contents container"><a href="../index.html" class="title">rea-agents - v2.0.0</a>
|
||||
<div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
|
||||
<ul role="listbox" id="tsd-search-results"></ul>
|
||||
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
|
||||
<div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
|
||||
<div class="container container-main">
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<ul class="tsd-breadcrumb" aria-label="Breadcrumb">
|
||||
<li><a href="../modules/application_MacHopper.html">application/MacHopper</a></li>
|
||||
<li><a href="" aria-current="page">macHopperInstallDisclosure</a></li></ul>
|
||||
<h1>Variable macHopperInstallDisclosure<code class="tsd-tag">Const</code></h1></div>
|
||||
<div class="tsd-signature"><span class="tsd-kind-variable">macHopperInstallDisclosure</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/> <span class="tsd-kind-property">commands</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-symbol">[</span><br/> <span class="tsd-signature-type">"hdiutil attach -readonly -nobrowse -mountpoint <private-mount> <verified-hopper.dmg>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"codesign --verify --deep --strict <mounted-hopper.app>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"ditto <mounted-hopper.app> <user-Applications-stage>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"open <installed-hopper.app>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">;</span><br/> <span class="tsd-kind-property">networkOrigins</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-symbol">[</span><br/> <span class="tsd-signature-type">"https://www.hopperapp.com/include/files-api.php?request=releases&public=true"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"https://www.hopperapp.com:443/downloader/public/"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div>
|
||||
<div class="tsd-comment tsd-typography"><p>Stable network and command effects disclosed before macOS Hopper setup.</p>
|
||||
</div>
|
||||
<div class="tsd-type-declaration">
|
||||
<h4>Type Declaration</h4>
|
||||
<ul class="tsd-parameters">
|
||||
<li class="tsd-parameter">
|
||||
<h5 id="commands"><span class="tsd-kind-property">commands</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-symbol">[</span><br/> <span class="tsd-signature-type">"hdiutil attach -readonly -nobrowse -mountpoint <private-mount> <verified-hopper.dmg>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"codesign --verify --deep --strict <mounted-hopper.app>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"ditto <mounted-hopper.app> <user-Applications-stage>"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"open <installed-hopper.app>"</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">]</span></h5></li>
|
||||
<li class="tsd-parameter">
|
||||
<h5 id="networkorigins"><span class="tsd-kind-property">networkOrigins</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">readonly</span> <span class="tsd-signature-symbol">[</span><br/> <span class="tsd-signature-type">"https://www.hopperapp.com/include/files-api.php?request=releases&public=true"</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-signature-type">"https://www.hopperapp.com:443/downloader/public/"</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">]</span></h5></li></ul></div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/MacHopper.ts#L26">src/application/MacHopper.ts:26</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
<details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
|
||||
<h3>Settings</h3></summary>
|
||||
<div class="tsd-accordion-details">
|
||||
<div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
|
||||
<ul id="tsd-filter-options">
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
|
||||
<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div>
|
||||
<div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
|
||||
<div class="site-menu">
|
||||
<nav class="tsd-navigation"><a href="../index.html">rea-agents - v2.0.0</a>
|
||||
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
||||
<li>Loading...</li></ul></nav></div></div></div><footer>
|
||||
<p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer>
|
||||
<div class="overlay"></div></body></html>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<div class="tsd-comment tsd-typography"><p>Stable product metadata used to derive setup discovery and documentation.</p>
|
||||
</div><aside class="tsd-sources">
|
||||
<ul>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L12">src/application/SupportedClients.ts:12</a></li></ul></aside></div>
|
||||
<li>Defined in <a href="https://github.com/morluto/rea/blob/main/src/application/SupportedClients.ts#L13">src/application/SupportedClients.ts:13</a></li></ul></aside></div>
|
||||
<div class="col-sidebar">
|
||||
<div class="page-menu">
|
||||
<div class="tsd-navigation settings">
|
||||
|
|
|
|||
|
|
@ -37,19 +37,72 @@ Supported options are `--version <semver>`, `--dry-run`, `--no-setup`, `--no-pro
|
|||
|
||||
## Review setup changes
|
||||
|
||||
`rea setup` discovers the current state, prints one plan, and asks `Continue? [Y/n]`. The plan identifies:
|
||||
`rea setup` uses an inline, scroll-preserving journey inspired by the clarity of
|
||||
PostHog's CLI wizard. It begins with the outcome instead of the installer
|
||||
mechanics:
|
||||
|
||||
- investigate local applications from a supported agent;
|
||||
- recover evidence through an available deep-analysis provider;
|
||||
- use the bundled skill for a repeatable investigation workflow.
|
||||
|
||||
REA then summarizes the detected clients and presents one gateway:
|
||||
|
||||
- **Set up all available capabilities (recommended)** selects the complete
|
||||
resolved plan;
|
||||
- **Customize** opens the concrete action picker;
|
||||
- **No thanks** exits without making changes.
|
||||
|
||||
The custom picker labels each target by its role: `MCP` for an agent
|
||||
registration, `provider` for Hopper or a validated bring-your-own provider, and
|
||||
`skill` for the REA investigation skill. These labels describe different setup
|
||||
modalities rather than suggesting that every target is an MCP registration.
|
||||
The picker keeps its navigation, selection, confirmation, and cancellation keys
|
||||
visible instead of relying on a transient hint.
|
||||
|
||||
Both recommended and custom paths converge on the same exact preflight. REA
|
||||
validates the current state, prints the proposed effects, and asks for final
|
||||
approval with **No** as the default. Selection alone never authorizes a
|
||||
mutation. The plan identifies:
|
||||
|
||||
- an existing Hopper installation, a validated bring-your-own Ghidra environment, or the official Hopper package it proposes to install;
|
||||
- each detected agent configuration path;
|
||||
- the REA skill destination;
|
||||
- external software and package-manager effects.
|
||||
- external software, network origins, integrity evidence, and package-manager
|
||||
commands.
|
||||
|
||||
Declining makes no changes. Agent configuration writes preserve unrelated entries, create backups, use atomic replacement, and verify their result.
|
||||
Malformed or unsafe existing configuration blocks the whole transaction before
|
||||
Hopper installation or any file write. Declining, pressing Ctrl-C, or selecting
|
||||
nothing makes no changes. Agent configuration writes preserve unrelated
|
||||
entries, create backups, use atomic replacement, and verify their result.
|
||||
|
||||
For automation, `rea setup --json` reports the plan without applying it. `rea setup --yes` applies user-owned registrations and the skill. Installing missing Hopper non-interactively additionally requires `--install-hopper`:
|
||||
Progress remains append-only so completed and failed operations stay visible in
|
||||
terminal history. After a successful run, the completion message names the
|
||||
verified capabilities now available—for example configured MCP clients, the
|
||||
selected analysis provider, and the installed skill—and gives the corresponding
|
||||
next action. When an agent must restart to load its registration, REA says so;
|
||||
otherwise it suggests beginning an investigation. It does not advertise a
|
||||
capability that the final diagnostic check did not verify.
|
||||
|
||||
Select exact clients in scripts with repeatable `--client` flags, or retain
|
||||
automatic discovery explicitly with `--all-detected`. Use `--skill=false` to
|
||||
omit the bundled skill and `--dry-run` for a read-only plan:
|
||||
|
||||
```bash
|
||||
rea setup --yes --install-hopper --json
|
||||
rea setup --client codex --client cursor --skill=false --dry-run
|
||||
```
|
||||
|
||||
Prompt UI and progress are written to stderr so stdout remains available for
|
||||
structured results and pipelines. `NO_COLOR=1` disables color. Use
|
||||
`--accessible` for sequential, vertically rendered yes/no prompts.
|
||||
|
||||
For automation, `rea setup --json` reports the plan without applying it.
|
||||
Prefer pairing `--yes` with explicit scope such as `--client codex`,
|
||||
`--all-detected`, or `--skill`. Legacy unscoped `--yes` remains compatible for
|
||||
this release but emits a deprecation warning. Installing missing Hopper
|
||||
non-interactively additionally requires `--install-hopper`:
|
||||
|
||||
```bash
|
||||
rea setup --yes --all-detected --install-hopper --json
|
||||
```
|
||||
|
||||
## Hopper
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
"dependencies": {
|
||||
"@babel/parser": "8.0.4",
|
||||
"@babel/types": "8.0.4",
|
||||
"@clack/prompts": "1.7.0",
|
||||
"@electron/asar": "4.2.0",
|
||||
"@jridgewell/trace-mapping": "0.3.31",
|
||||
"@lydell/node-pty": "1.1.0",
|
||||
|
|
@ -120,6 +121,34 @@
|
|||
"integrity": "sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@clack/core": {
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz",
|
||||
"integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-wrap-ansi": "^0.2.0",
|
||||
"sisteransi": "^1.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@clack/prompts": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz",
|
||||
"integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@clack/core": "1.4.3",
|
||||
"fast-string-width": "^3.0.2",
|
||||
"fast-wrap-ansi": "^0.2.0",
|
||||
"sisteransi": "^1.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@electron/asar": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@electron/asar/-/asar-4.2.0.tgz",
|
||||
|
|
@ -2599,6 +2628,30 @@
|
|||
"node": ">=12.17.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-string-truncated-width": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz",
|
||||
"integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-string-width": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz",
|
||||
"integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-string-truncated-width": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-wrap-ansi": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz",
|
||||
"integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-string-width": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/fd-package-json": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz",
|
||||
|
|
@ -4563,6 +4616,12 @@
|
|||
"simple-concat": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sisteransi": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
||||
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/slice-ansi": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz",
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@
|
|||
"dependencies": {
|
||||
"@babel/parser": "8.0.4",
|
||||
"@babel/types": "8.0.4",
|
||||
"@clack/prompts": "1.7.0",
|
||||
"@electron/asar": "4.2.0",
|
||||
"@jridgewell/trace-mapping": "0.3.31",
|
||||
"@lydell/node-pty": "1.1.0",
|
||||
|
|
|
|||
|
|
@ -772,6 +772,12 @@ try {
|
|||
);
|
||||
const planned = json(plannedExecution.stdout);
|
||||
if (supportedSetupHost) {
|
||||
const scopedExecution = await runWithStatus(
|
||||
cli,
|
||||
["setup", "--client", "codex", "--dry-run", "--json"],
|
||||
environment,
|
||||
);
|
||||
const scoped = json(scopedExecution.stdout);
|
||||
const plannedClaudeConfig = await readFile(claudeConfig, "utf8");
|
||||
const plannedCodexConfig = await readFile(codexTarget, "utf8");
|
||||
const plannedCursorConfig = await readFile(cursorConfig, "utf8");
|
||||
|
|
@ -788,6 +794,14 @@ try {
|
|||
throw new Error(
|
||||
`packaged setup plan was not read-only: ${JSON.stringify({ status: planned.status, exitCode: plannedExecution.status, plannedKinds: planned.plannedActions.map(({ kind }) => kind), appliedKinds: planned.appliedActions.map(({ kind }) => kind), claudeConfig: plannedClaudeConfig, codexConfig: plannedCodexConfig, cursorConfig: plannedCursorConfig })}`,
|
||||
);
|
||||
if (
|
||||
scopedExecution.status !== 1 ||
|
||||
scoped.plannedActions.length !== 1 ||
|
||||
scoped.plannedActions[0]?.id !== "configure_client:codex"
|
||||
)
|
||||
throw new Error(
|
||||
`packaged explicit setup scope admitted implicit actions: ${JSON.stringify(scoped)}`,
|
||||
);
|
||||
}
|
||||
const firstExecution = await runWithStatus(
|
||||
cli,
|
||||
|
|
@ -888,15 +902,13 @@ try {
|
|||
if (
|
||||
failed.status !== "needs_human" ||
|
||||
failedExecution.status !== 1 ||
|
||||
failed.clients?.claude_desktop?.status !== "failed" ||
|
||||
failed.clients?.cursor?.status !== "configured" ||
|
||||
!failed.appliedActions.includes("configured_cursor") ||
|
||||
Object.keys(failed.clients ?? {}).length !== 0 ||
|
||||
failed.appliedActions.length !== 0 ||
|
||||
(await readFile(claudeConfig, "utf8")) !== "malformed" ||
|
||||
json(await readFile(cursorConfig, "utf8")).mcpServers?.rea?.command !==
|
||||
cli
|
||||
json(await readFile(cursorConfig, "utf8")).mcpServers?.rea !== undefined
|
||||
)
|
||||
throw new Error(
|
||||
`packaged setup did not continue after an earlier client failure: ${JSON.stringify(failed)}`,
|
||||
`packaged setup did not block all mutation after malformed preflight: ${JSON.stringify(failed)}`,
|
||||
);
|
||||
await writeFile(claudeConfig, "{}\n");
|
||||
const recoveredExecution = await runWithStatus(
|
||||
|
|
@ -924,8 +936,8 @@ try {
|
|||
if (
|
||||
dangling.status !== "needs_human" ||
|
||||
danglingExecution.status !== 1 ||
|
||||
dangling.clients?.gemini_cli?.status !== "failed" ||
|
||||
dangling.clients?.gemini_cli?.reason !== "path" ||
|
||||
Object.keys(dangling.clients ?? {}).length !== 0 ||
|
||||
dangling.appliedActions.length !== 0 ||
|
||||
!(await lstat(geminiConfig)).isSymbolicLink() ||
|
||||
(await pathExists(`${geminiConfig}.rea.backup`))
|
||||
)
|
||||
|
|
|
|||
|
|
@ -195,15 +195,16 @@ export const runDoctor = async (
|
|||
SYSTEM_LINUX_HOPPER,
|
||||
linuxHopperLauncherPath(homedir()),
|
||||
...(await host.manualHopperPaths()),
|
||||
await host.brewHopperPath(),
|
||||
].filter((value): value is string => value !== undefined)
|
||||
]
|
||||
: [host.configuredHopperPath];
|
||||
let hopperPath: string | undefined;
|
||||
for (const candidate of new Set(candidates))
|
||||
if (await host.executable(candidate)) {
|
||||
hopperPath = candidate;
|
||||
break;
|
||||
}
|
||||
let hopperPath = await firstExecutable(host, candidates);
|
||||
if (hopperPath === undefined && host.configuredHopperPath === undefined) {
|
||||
const brewCandidate = await host.brewHopperPath();
|
||||
hopperPath = await firstExecutable(
|
||||
host,
|
||||
brewCandidate === undefined ? [] : [brewCandidate],
|
||||
);
|
||||
}
|
||||
checks.push(
|
||||
check(
|
||||
"hopper",
|
||||
|
|
@ -562,6 +563,15 @@ const uniqueLines = (value: string): string[] => [
|
|||
),
|
||||
];
|
||||
|
||||
const firstExecutable = async (
|
||||
host: DoctorHost,
|
||||
candidates: readonly string[],
|
||||
): Promise<string | undefined> => {
|
||||
for (const candidate of new Set(candidates))
|
||||
if (await host.executable(candidate)) return candidate;
|
||||
return undefined;
|
||||
};
|
||||
|
||||
const firstIlspyVersionLine = (value: string): string | undefined =>
|
||||
uniqueLines(value).find((line) => line.startsWith("ilspycmd:"));
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,32 @@ const SUPPORTED_RELEASES: Readonly<
|
|||
|
||||
export type LinuxPackageFamily = "deb" | "rpm" | "arch";
|
||||
|
||||
/** Exact stable external effects disclosed before a Linux Hopper installation. */
|
||||
export interface LinuxHopperInstallDisclosure {
|
||||
readonly downloadUrl: string;
|
||||
readonly expectedBytes: number;
|
||||
readonly expectedSha1: string;
|
||||
readonly commands: readonly string[];
|
||||
}
|
||||
|
||||
/** Describe the release and package-manager commands without downloading or writing. */
|
||||
export const linuxHopperInstallDisclosure = (
|
||||
family: LinuxPackageFamily,
|
||||
isRoot: boolean,
|
||||
): LinuxHopperInstallDisclosure => {
|
||||
const release = SUPPORTED_RELEASES[family];
|
||||
return {
|
||||
downloadUrl: release.filename,
|
||||
expectedBytes: Number(release.file_length),
|
||||
expectedSha1: release.file_hash,
|
||||
commands: linuxPackageManagerCommands(
|
||||
family,
|
||||
`<verified-hopper.${family}>`,
|
||||
isRoot,
|
||||
).map(({ executable, args }) => `${executable} ${args.join(" ")}`),
|
||||
};
|
||||
};
|
||||
|
||||
/** Parsed Linux distribution information used for support and package selection. */
|
||||
export interface LinuxDistribution {
|
||||
readonly id: string;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,17 @@ const DOWNLOAD_PREFIX = "https://www.hopperapp.com:443/downloader/public/";
|
|||
const MAX_PACKAGE_BYTES = 100_000_000;
|
||||
const BUNDLE_IDENTIFIER = "com.cryptic-apps.hopper-web-4";
|
||||
|
||||
/** Stable network and command effects disclosed before macOS Hopper setup. */
|
||||
export const macHopperInstallDisclosure = {
|
||||
networkOrigins: [RELEASES_URL, DOWNLOAD_PREFIX] as const,
|
||||
commands: [
|
||||
"hdiutil attach -readonly -nobrowse -mountpoint <private-mount> <verified-hopper.dmg>",
|
||||
"codesign --verify --deep --strict <mounted-hopper.app>",
|
||||
"ditto <mounted-hopper.app> <user-Applications-stage>",
|
||||
"open <installed-hopper.app>",
|
||||
] as const,
|
||||
};
|
||||
|
||||
/** Result of installing the official Hopper macOS application. */
|
||||
export type MacHopperInstallResult =
|
||||
| { readonly status: "installed"; readonly launcherPath: string }
|
||||
|
|
|
|||
|
|
@ -66,6 +66,18 @@ export type ClientConfigurationResult =
|
|||
readonly status: "failed";
|
||||
readonly reason: "path" | "backup" | "write" | "readback";
|
||||
};
|
||||
|
||||
/** Read-only state used to block unsafe setup plans before any mutation. */
|
||||
export type ClientConfigurationInspection =
|
||||
| { readonly status: "already_current" }
|
||||
| {
|
||||
readonly status: "create" | "update";
|
||||
readonly backupPath?: string;
|
||||
}
|
||||
| {
|
||||
readonly status: "invalid";
|
||||
readonly remediation: string;
|
||||
};
|
||||
/**
|
||||
* Effects required by the idempotent setup workflow.
|
||||
* Implementations report interrupted installers as values: setup must not wait
|
||||
|
|
@ -90,6 +102,11 @@ export interface SetupHost {
|
|||
providerEnvironment: SetupProviderEnvironment,
|
||||
command: readonly string[],
|
||||
): Promise<boolean>;
|
||||
inspectClientConfiguration?(
|
||||
client: SetupClient,
|
||||
providerEnvironment: SetupProviderEnvironment,
|
||||
command: readonly string[],
|
||||
): Promise<ClientConfigurationInspection>;
|
||||
skillNeedsInstall(): Promise<boolean>;
|
||||
installSkill(): Promise<"installed" | "unchanged" | "failed">;
|
||||
doctor(): Promise<Awaited<ReturnType<typeof runDoctor>>>;
|
||||
|
|
@ -111,10 +128,17 @@ export interface SetupResult {
|
|||
|
||||
/** One concrete setup mutation disclosed before approval. */
|
||||
export interface SetupAction {
|
||||
readonly id: string;
|
||||
readonly kind: "install_hopper" | "configure_client" | "install_skill";
|
||||
readonly label: string;
|
||||
readonly target: string;
|
||||
readonly detail: string;
|
||||
readonly external: boolean;
|
||||
readonly operation: "create" | "update" | "install";
|
||||
readonly backupPath?: string;
|
||||
readonly networkOrigins?: readonly string[];
|
||||
readonly commands?: readonly string[];
|
||||
readonly integrity?: string;
|
||||
}
|
||||
|
||||
/** Explicit authorization supplied by an interactive or unattended CLI adapter. */
|
||||
|
|
@ -122,12 +146,30 @@ export interface SetupOptions {
|
|||
readonly approved: boolean;
|
||||
readonly installHopper: boolean;
|
||||
readonly structured: boolean;
|
||||
readonly proposeHopper?: boolean;
|
||||
readonly clientIds?: readonly string[];
|
||||
readonly installSkill?: boolean;
|
||||
readonly onProgress?: (event: SetupProgressEvent) => void;
|
||||
}
|
||||
|
||||
/** One settled or active setup operation projected to the interactive adapter. */
|
||||
export interface SetupProgressEvent {
|
||||
readonly actionId: string;
|
||||
readonly label: string;
|
||||
readonly state: "started" | "completed" | "warning" | "failed";
|
||||
readonly detail?: string;
|
||||
}
|
||||
|
||||
/** Interactive selection and final consent returned by the CLI adapter. */
|
||||
export interface SetupConfirmationDecision {
|
||||
readonly approved: boolean;
|
||||
readonly selectedActionIds: readonly string[];
|
||||
}
|
||||
|
||||
/** Adapter-owned interactive confirmation for a fully discovered setup plan. */
|
||||
export type SetupConfirmation = (
|
||||
actions: readonly SetupAction[],
|
||||
) => Promise<boolean>;
|
||||
) => Promise<boolean | SetupConfirmationDecision>;
|
||||
|
||||
/**
|
||||
* Install prerequisites and configure detected clients idempotently.
|
||||
|
|
@ -154,19 +196,40 @@ export const runSetup = async (
|
|||
if (unsupported !== undefined) return fail(unsupported);
|
||||
let hopperPath = await host.hopperPath();
|
||||
let providerEnvironment = await initialProviderEnvironment(host, hopperPath);
|
||||
const discovery = await discoverSetupActions(
|
||||
const discovery = await discoverSetupActions({
|
||||
host,
|
||||
providerEnvironment,
|
||||
options.installHopper,
|
||||
);
|
||||
const { installHopper, installSkill } = discovery;
|
||||
let { detectedClients } = discovery;
|
||||
forceHopperInstall: options.installHopper,
|
||||
proposeHopper: options.proposeHopper ?? true,
|
||||
selectedClientIds: options.clientIds,
|
||||
installSkillSelection: options.installSkill,
|
||||
});
|
||||
if (discovery.blocker !== undefined) return fail(discovery.blocker);
|
||||
let { installHopper, installSkill } = discovery;
|
||||
let detectedClients: readonly SetupClient[] = discovery.detectedClients;
|
||||
plannedActions = discovery.plannedActions;
|
||||
let approved = options.approved || plannedActions.length === 0;
|
||||
let interactiveApproval = false;
|
||||
if (!approved && confirm !== undefined && !options.structured) {
|
||||
interactiveApproval = await confirm(plannedActions);
|
||||
approved = interactiveApproval;
|
||||
const decision = await confirm(plannedActions);
|
||||
if (typeof decision === "boolean") {
|
||||
interactiveApproval = decision;
|
||||
approved = decision;
|
||||
} else {
|
||||
const selected = new Set(decision.selectedActionIds);
|
||||
plannedActions = plannedActions.filter(({ id }) => selected.has(id));
|
||||
installHopper = plannedActions.some(
|
||||
({ kind }) => kind === "install_hopper",
|
||||
);
|
||||
installSkill = plannedActions.some(
|
||||
({ kind }) => kind === "install_skill",
|
||||
);
|
||||
detectedClients = detectedClients.filter((client) =>
|
||||
selected.has(`configure_client:${client.name}`),
|
||||
);
|
||||
interactiveApproval = decision.approved;
|
||||
approved = decision.approved || plannedActions.length === 0;
|
||||
}
|
||||
}
|
||||
if (!approved)
|
||||
return {
|
||||
|
|
@ -180,8 +243,21 @@ export const runSetup = async (
|
|||
};
|
||||
|
||||
if (installHopper && (interactiveApproval || options.installHopper)) {
|
||||
emitProgress(
|
||||
options,
|
||||
"install_hopper",
|
||||
"Hopper deep-analysis provider",
|
||||
"started",
|
||||
);
|
||||
const installed = await host.installHopper(options.installHopper);
|
||||
if (installed.status === "failed")
|
||||
if (installed.status === "failed") {
|
||||
emitProgress(
|
||||
options,
|
||||
"install_hopper",
|
||||
"Hopper deep-analysis provider",
|
||||
"failed",
|
||||
installed.remediation,
|
||||
);
|
||||
return {
|
||||
status: "needs_human",
|
||||
plannedActions,
|
||||
|
|
@ -191,12 +267,20 @@ export const runSetup = async (
|
|||
code: installed.code,
|
||||
remediation: installed.remediation,
|
||||
};
|
||||
}
|
||||
hopperPath = installed.launcherPath;
|
||||
providerEnvironment = {
|
||||
...providerEnvironment,
|
||||
HOPPER_LAUNCHER_PATH: installed.launcherPath,
|
||||
};
|
||||
appliedActions.push("installed_hopper");
|
||||
emitProgress(
|
||||
options,
|
||||
"install_hopper",
|
||||
"Hopper deep-analysis provider",
|
||||
"completed",
|
||||
installed.launcherPath,
|
||||
);
|
||||
detectedClients = await filterClientsNeedingConfigure(
|
||||
host,
|
||||
detectedClients,
|
||||
|
|
@ -211,15 +295,38 @@ export const runSetup = async (
|
|||
command: registrationCommand(),
|
||||
clients,
|
||||
appliedActions,
|
||||
...(options.onProgress === undefined
|
||||
? {}
|
||||
: { onProgress: options.onProgress }),
|
||||
});
|
||||
if (clientFailure !== undefined) return fail(clientFailure);
|
||||
if (installSkill) {
|
||||
emitProgress(
|
||||
options,
|
||||
"install_skill",
|
||||
"REA reverse-engineering skill",
|
||||
"started",
|
||||
);
|
||||
const skill = await host.installSkill();
|
||||
if (skill === "failed")
|
||||
if (skill === "failed") {
|
||||
emitProgress(
|
||||
options,
|
||||
"install_skill",
|
||||
"REA reverse-engineering skill",
|
||||
"failed",
|
||||
);
|
||||
return fail(
|
||||
"REA analysis skill could not be installed or verified. Check permissions for `~/.agents/skills`, then rerun setup.",
|
||||
);
|
||||
}
|
||||
if (skill === "installed") appliedActions.push("installed_skill");
|
||||
emitProgress(
|
||||
options,
|
||||
"install_skill",
|
||||
"REA reverse-engineering skill",
|
||||
skill === "installed" ? "completed" : "warning",
|
||||
skill === "unchanged" ? "Already current" : undefined,
|
||||
);
|
||||
}
|
||||
const doctor = await host.doctor();
|
||||
const remediation = finalSetupRemediation(
|
||||
|
|
@ -238,11 +345,15 @@ export const runSetup = async (
|
|||
};
|
||||
};
|
||||
|
||||
const discoverSetupActions = async (
|
||||
host: SetupHost,
|
||||
providerEnvironment: SetupProviderEnvironment,
|
||||
forceHopperInstall: boolean,
|
||||
) => {
|
||||
const discoverSetupActions = async (input: {
|
||||
readonly host: SetupHost;
|
||||
readonly providerEnvironment: SetupProviderEnvironment;
|
||||
readonly forceHopperInstall: boolean;
|
||||
readonly proposeHopper: boolean;
|
||||
readonly selectedClientIds: readonly string[] | undefined;
|
||||
readonly installSkillSelection: boolean | undefined;
|
||||
}) => {
|
||||
const { host, providerEnvironment } = input;
|
||||
const initialDoctor = await host.doctor();
|
||||
const linuxHopperRepairNeeded = initialDoctor.checks.some(
|
||||
({ name, ok, detail }) =>
|
||||
|
|
@ -251,13 +362,24 @@ const discoverSetupActions = async (
|
|||
(name === "hopper-version" && detail === "/opt/hopper/bin/Hopper")),
|
||||
);
|
||||
const installHopper =
|
||||
forceHopperInstall ||
|
||||
Object.keys(providerEnvironment).length === 0 ||
|
||||
linuxHopperRepairNeeded;
|
||||
const [detectedClients, installSkill] = await Promise.all([
|
||||
input.forceHopperInstall ||
|
||||
(input.proposeHopper &&
|
||||
(Object.keys(providerEnvironment).length === 0 ||
|
||||
linuxHopperRepairNeeded));
|
||||
const [allDetectedClients, skillNeedsInstall] = await Promise.all([
|
||||
host.detectedClients(),
|
||||
host.skillNeedsInstall(),
|
||||
]);
|
||||
const selectedClientIdSet =
|
||||
input.selectedClientIds === undefined
|
||||
? undefined
|
||||
: new Set(input.selectedClientIds);
|
||||
const detectedClients = allDetectedClients.filter(
|
||||
({ name }) =>
|
||||
selectedClientIdSet === undefined || selectedClientIdSet.has(name),
|
||||
);
|
||||
const installSkill =
|
||||
input.installSkillSelection === false ? false : skillNeedsInstall;
|
||||
const command = registrationCommand();
|
||||
const clients = installHopper
|
||||
? detectedClients
|
||||
|
|
@ -267,21 +389,91 @@ const discoverSetupActions = async (
|
|||
providerEnvironment,
|
||||
command,
|
||||
);
|
||||
const plannedActions = setupPlan(
|
||||
host.platform,
|
||||
installHopper,
|
||||
installSkill,
|
||||
const inspections = await inspectClients(
|
||||
host,
|
||||
clients,
|
||||
providerEnvironment,
|
||||
command,
|
||||
);
|
||||
const invalid = inspections.find(
|
||||
({ inspection }) => inspection.status === "invalid",
|
||||
);
|
||||
const blocker =
|
||||
invalid?.inspection.status === "invalid"
|
||||
? `${invalid.client.displayName ?? invalid.client.name}: ${invalid.inspection.remediation}`
|
||||
: undefined;
|
||||
const clientPlans = inspections.flatMap(({ client, inspection }) =>
|
||||
inspection.status === "create" ||
|
||||
inspection.status === "update" ||
|
||||
(installHopper && inspection.status === "already_current")
|
||||
? [
|
||||
{
|
||||
client,
|
||||
operation:
|
||||
inspection.status === "already_current"
|
||||
? ("update" as const)
|
||||
: inspection.status,
|
||||
...(inspection.status !== "already_current" &&
|
||||
inspection.backupPath !== undefined
|
||||
? { backupPath: inspection.backupPath }
|
||||
: {}),
|
||||
},
|
||||
]
|
||||
: [],
|
||||
);
|
||||
const linuxDistribution =
|
||||
host.platform === "linux" ? await host.linuxDistribution() : undefined;
|
||||
const plannedActions = setupPlan({
|
||||
platform: host.platform,
|
||||
installHopper,
|
||||
installSkill,
|
||||
clients: clientPlans,
|
||||
providerEnvironment,
|
||||
...(linuxDistribution?.packageFamily === undefined
|
||||
? {}
|
||||
: { linuxPackageFamily: linuxDistribution.packageFamily }),
|
||||
});
|
||||
return {
|
||||
installHopper,
|
||||
installSkill,
|
||||
detectedClients: clients,
|
||||
detectedClients: clientPlans.map(({ client }) => client),
|
||||
plannedActions,
|
||||
blocker,
|
||||
};
|
||||
};
|
||||
|
||||
const inspectClients = async (
|
||||
host: SetupHost,
|
||||
clients: readonly SetupClient[],
|
||||
providerEnvironment: SetupProviderEnvironment,
|
||||
command: readonly string[],
|
||||
) =>
|
||||
Promise.all(
|
||||
clients.map(async (client) => ({
|
||||
client,
|
||||
inspection:
|
||||
(await host.inspectClientConfiguration?.(
|
||||
client,
|
||||
providerEnvironment,
|
||||
command,
|
||||
)) ?? ({ status: "update" } as const),
|
||||
})),
|
||||
);
|
||||
|
||||
const emitProgress = (
|
||||
options: SetupOptions,
|
||||
actionId: string,
|
||||
label: string,
|
||||
state: SetupProgressEvent["state"],
|
||||
detail?: string,
|
||||
): void =>
|
||||
options.onProgress?.({
|
||||
actionId,
|
||||
label,
|
||||
state,
|
||||
...(detail === undefined ? {} : { detail }),
|
||||
});
|
||||
|
||||
const filterClientsNeedingConfigure = async (
|
||||
host: SetupHost,
|
||||
detectedClients: readonly SetupClient[],
|
||||
|
|
@ -381,6 +573,7 @@ export const systemSetupHost = (
|
|||
clientConfigurationAligned(client, providerEnvironment, command).then(
|
||||
(aligned) => !aligned,
|
||||
),
|
||||
inspectClientConfiguration: inspectClientConfiguration,
|
||||
skillNeedsInstall: () => canonicalSkillNeedsInstall(homedir()),
|
||||
installSkill: () => installCanonicalSkill(homedir()),
|
||||
doctor: () => runDoctor(undefined, doctorHost),
|
||||
|
|
@ -636,6 +829,59 @@ const clientConfigurationAligned = async (
|
|||
}
|
||||
};
|
||||
|
||||
const inspectClientConfiguration = async (
|
||||
client: SetupClient,
|
||||
providerEnvironment: SetupProviderEnvironment,
|
||||
command: readonly string[],
|
||||
): Promise<ClientConfigurationInspection> => {
|
||||
if (client.format === "unsupported") return { status: "already_current" };
|
||||
const transactionPath = await resolveClientConfigTransactionPath(
|
||||
client.configPath,
|
||||
);
|
||||
if (transactionPath === undefined)
|
||||
return {
|
||||
status: "invalid",
|
||||
remediation:
|
||||
"The configuration path is unsafe or unresolved. Check ownership and symbolic links before rerunning setup.",
|
||||
};
|
||||
let original: string;
|
||||
try {
|
||||
original = await readFile(transactionPath, "utf8");
|
||||
} catch (cause: unknown) {
|
||||
if (isMissing(cause)) return { status: "create" };
|
||||
return {
|
||||
status: "invalid",
|
||||
remediation:
|
||||
"The configuration file could not be read. Check its permissions before rerunning setup.",
|
||||
};
|
||||
}
|
||||
const desired = clientConfigurationDesired(providerEnvironment, command);
|
||||
try {
|
||||
const document =
|
||||
client.format === "toml"
|
||||
? objectSchema.parse(parseToml(original))
|
||||
: parseObject(original);
|
||||
const servers = parseOptionalObject(
|
||||
client.format === "toml" ? document.mcp_servers : document.mcpServers,
|
||||
);
|
||||
if (
|
||||
JSON.stringify(servers[PRODUCT_IDENTITY.mcpServerKey]) ===
|
||||
JSON.stringify(desired)
|
||||
)
|
||||
return { status: "already_current" };
|
||||
} catch {
|
||||
return {
|
||||
status: "invalid",
|
||||
remediation:
|
||||
"The existing configuration is malformed. Repair it before setup applies any other changes.",
|
||||
};
|
||||
}
|
||||
return {
|
||||
status: "update",
|
||||
backupPath: `${client.configPath}.rea.backup`,
|
||||
};
|
||||
};
|
||||
|
||||
const normalizeProviderEnvironment = (
|
||||
environment: SetupProviderEnvironment | string,
|
||||
): SetupProviderEnvironment =>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import type {
|
|||
SetupClient,
|
||||
SetupHost,
|
||||
SetupProviderEnvironment,
|
||||
SetupProgressEvent,
|
||||
} from "./Setup.js";
|
||||
|
||||
const failedConfigurationMessage = (
|
||||
|
|
@ -25,19 +26,41 @@ export const configureDetectedClients = async (options: {
|
|||
readonly command: readonly string[];
|
||||
readonly clients: Record<string, ClientConfigurationResult>;
|
||||
readonly appliedActions: string[];
|
||||
readonly onProgress?: (event: SetupProgressEvent) => void;
|
||||
}): Promise<string | undefined> => {
|
||||
let failure: string | undefined;
|
||||
for (const client of options.detectedClients) {
|
||||
const actionId = `configure_client:${client.name}`;
|
||||
const label = client.displayName ?? client.name;
|
||||
options.onProgress?.({ actionId, label, state: "started" });
|
||||
const result = await options.host.configureClient(
|
||||
client,
|
||||
options.providerEnvironment,
|
||||
options.command,
|
||||
);
|
||||
options.clients[client.name] = result;
|
||||
if (result.status === "failed")
|
||||
if (result.status === "failed") {
|
||||
failure ??= failedConfigurationMessage(result.reason);
|
||||
else if (result.status === "configured")
|
||||
options.onProgress?.({
|
||||
actionId,
|
||||
label,
|
||||
state: "failed",
|
||||
detail: failedConfigurationMessage(result.reason),
|
||||
});
|
||||
} else if (result.status === "configured") {
|
||||
options.appliedActions.push(`configured_${client.name}`);
|
||||
options.onProgress?.({ actionId, label, state: "completed" });
|
||||
} else {
|
||||
options.onProgress?.({
|
||||
actionId,
|
||||
label,
|
||||
state: "warning",
|
||||
detail:
|
||||
result.status === "unchanged"
|
||||
? "Already current"
|
||||
: "Manual configuration required",
|
||||
});
|
||||
}
|
||||
}
|
||||
return failure;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,54 +4,107 @@ import type {
|
|||
SetupProviderEnvironment,
|
||||
} from "./Setup.js";
|
||||
import { PRODUCT_IDENTITY } from "../identity.js";
|
||||
import { homedir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import {
|
||||
linuxHopperInstallDisclosure,
|
||||
type LinuxPackageFamily,
|
||||
} from "./LinuxHopper.js";
|
||||
import { macHopperInstallDisclosure } from "./MacHopper.js";
|
||||
|
||||
/** Preflighted client mutation admitted into the setup plan. */
|
||||
export type SetupClientPlan = Readonly<{
|
||||
client: SetupClient;
|
||||
operation: "create" | "update";
|
||||
backupPath?: string;
|
||||
}>;
|
||||
|
||||
/** Build the complete setup mutation plan before approval. */
|
||||
export const setupPlan = (
|
||||
platform: NodeJS.Platform,
|
||||
installHopper: boolean,
|
||||
installSkill: boolean,
|
||||
clients: readonly SetupClient[],
|
||||
providerEnvironment: SetupProviderEnvironment,
|
||||
): readonly SetupAction[] => [
|
||||
...(installHopper
|
||||
export const setupPlan = (input: {
|
||||
readonly platform: NodeJS.Platform;
|
||||
readonly installHopper: boolean;
|
||||
readonly installSkill: boolean;
|
||||
readonly clients: readonly SetupClientPlan[];
|
||||
readonly providerEnvironment: SetupProviderEnvironment;
|
||||
readonly linuxPackageFamily?: LinuxPackageFamily;
|
||||
}): readonly SetupAction[] => [
|
||||
...(input.installHopper
|
||||
? [
|
||||
{
|
||||
id: "install_hopper",
|
||||
kind: "install_hopper" as const,
|
||||
label: "Hopper deep-analysis provider",
|
||||
target:
|
||||
platform === "darwin"
|
||||
? "~/Applications/Hopper Disassembler.app"
|
||||
input.platform === "darwin"
|
||||
? join(homedir(), "Applications/Hopper Disassembler.app")
|
||||
: "system package manager",
|
||||
detail:
|
||||
platform === "linux"
|
||||
input.platform === "linux"
|
||||
? "Download, verify, and install Hopper plus its Xvfb demo-session dependencies. For the supported demo build, REA uses a private display and selects Hopper's offered demo mode for each analysis session."
|
||||
: "Download the official Hopper package, verify it, and install it. Hopper may show its demo or license prompt when first opened.",
|
||||
external: true,
|
||||
operation: "install" as const,
|
||||
...(input.platform === "linux"
|
||||
? input.linuxPackageFamily === undefined
|
||||
? {}
|
||||
: linuxDisclosure(input.linuxPackageFamily)
|
||||
: {
|
||||
networkOrigins: macHopperInstallDisclosure.networkOrigins,
|
||||
commands: macHopperInstallDisclosure.commands,
|
||||
}),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
...clients
|
||||
.filter(({ format }) => format !== "unsupported")
|
||||
...input.clients
|
||||
.filter(({ client }) => client.format !== "unsupported")
|
||||
.map(
|
||||
(client): SetupAction => ({
|
||||
({ client, operation, backupPath }): SetupAction => ({
|
||||
id: `configure_client:${client.name}`,
|
||||
kind: "configure_client",
|
||||
label: client.displayName ?? client.name,
|
||||
target: client.configPath,
|
||||
detail: clientConfigurationDetail(client.name, providerEnvironment),
|
||||
detail: clientConfigurationDetail(
|
||||
client.displayName ?? client.name,
|
||||
input.providerEnvironment,
|
||||
),
|
||||
external: false,
|
||||
operation,
|
||||
...(backupPath === undefined ? {} : { backupPath }),
|
||||
}),
|
||||
),
|
||||
...(installSkill
|
||||
...(input.installSkill
|
||||
? [
|
||||
{
|
||||
id: "install_skill",
|
||||
kind: "install_skill" as const,
|
||||
target: `~/.agents/skills/${PRODUCT_IDENTITY.skillName}/SKILL.md`,
|
||||
label: "REA reverse-engineering skill",
|
||||
target: join(
|
||||
homedir(),
|
||||
".agents/skills",
|
||||
PRODUCT_IDENTITY.skillName,
|
||||
"SKILL.md",
|
||||
),
|
||||
detail:
|
||||
"Install or update the bundled REA reverse-engineering skill.",
|
||||
external: false,
|
||||
operation: "install" as const,
|
||||
},
|
||||
]
|
||||
: []),
|
||||
];
|
||||
|
||||
const linuxDisclosure = (family: LinuxPackageFamily) => {
|
||||
const disclosure = linuxHopperInstallDisclosure(
|
||||
family,
|
||||
process.getuid?.() === 0,
|
||||
);
|
||||
return {
|
||||
networkOrigins: [disclosure.downloadUrl],
|
||||
commands: disclosure.commands,
|
||||
integrity: `${String(disclosure.expectedBytes)} bytes · SHA-1 ${disclosure.expectedSha1}`,
|
||||
};
|
||||
};
|
||||
|
||||
const clientConfigurationDetail = (
|
||||
client: string,
|
||||
environment: SetupProviderEnvironment,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { join } from "node:path";
|
|||
/** One supported client configuration location. */
|
||||
export interface SetupClient {
|
||||
readonly name: string;
|
||||
readonly displayName?: string;
|
||||
readonly configPath: string;
|
||||
readonly markerPath?: string;
|
||||
readonly format?: "json" | "toml" | "unsupported";
|
||||
|
|
@ -70,6 +71,7 @@ export const SUPPORTED_CLIENT_DEFINITIONS = [
|
|||
export const supportedClients = (home: string): readonly SetupClient[] =>
|
||||
SUPPORTED_CLIENT_DEFINITIONS.map((definition) => ({
|
||||
name: definition.name,
|
||||
displayName: definition.displayName,
|
||||
configPath: join(home, ...definition.configPath),
|
||||
markerPath: join(home, ...definition.markerPath),
|
||||
format: definition.format,
|
||||
|
|
|
|||
127
src/cli.ts
127
src/cli.ts
|
|
@ -1,6 +1,5 @@
|
|||
import { Cli, z } from "incur";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { createInterface } from "node:readline/promises";
|
||||
|
||||
import { runDoctor } from "./application/Doctor.js";
|
||||
import {
|
||||
|
|
@ -13,11 +12,7 @@ import { projectManagedApplicationGraphEvidence } from "./application/ManagedApp
|
|||
import { verifyManagedNativeBoundariesEvidence } from "./application/ManagedNativeVerificationService.js";
|
||||
import { importManagedReconstructionEvidence } from "./application/ManagedReconstructionService.js";
|
||||
import { planManagedRuntimeCorrelationEvidence } from "./application/ManagedRuntimeCorrelationService.js";
|
||||
import {
|
||||
runSetup,
|
||||
systemSetupHost,
|
||||
type SetupAction,
|
||||
} from "./application/Setup.js";
|
||||
import { runSetup, systemSetupHost } from "./application/Setup.js";
|
||||
import { runUninstall } from "./application/Uninstall.js";
|
||||
import { runUpgrade, systemUpgradeHost } from "./application/Upgrade.js";
|
||||
import { PRODUCT_IDENTITY } from "./identity.js";
|
||||
|
|
@ -47,6 +42,12 @@ import {
|
|||
type AnalysisProviderSelector,
|
||||
} from "./contracts/providerSelection.js";
|
||||
import { createSystemDoctorHost } from "./doctorRuntime.js";
|
||||
import {
|
||||
conciseSetupResult,
|
||||
confirmInteractiveSetup,
|
||||
renderInteractiveSetupResult,
|
||||
renderSetupProgress,
|
||||
} from "./cliSetup.js";
|
||||
|
||||
/**
|
||||
* Build the one-shot Incur CLI without starting Hopper at import time.
|
||||
|
|
@ -188,6 +189,7 @@ const registerSetupCommands = (
|
|||
): void => {
|
||||
cli.command(CLI_COMMANDS.setup, {
|
||||
description: "Install requirements and configure agents",
|
||||
outputPolicy: "agent-only",
|
||||
options: z.object({
|
||||
yes: z
|
||||
.boolean()
|
||||
|
|
@ -197,21 +199,42 @@ const registerSetupCommands = (
|
|||
.boolean()
|
||||
.default(false)
|
||||
.describe("Also approve Hopper installation with --yes"),
|
||||
client: z
|
||||
.array(
|
||||
z.enum([
|
||||
"claude_code",
|
||||
"claude_desktop",
|
||||
"codex",
|
||||
"cursor",
|
||||
"gemini_cli",
|
||||
"windsurf",
|
||||
]),
|
||||
)
|
||||
.default([])
|
||||
.describe("Agent integration to configure; repeat for multiple agents"),
|
||||
allDetected: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.describe("Configure every detected supported agent"),
|
||||
skill: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.describe("Install or skip the bundled REA skill"),
|
||||
dryRun: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.describe("Print the resolved plan without applying it"),
|
||||
accessible: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.describe("Use sequential accessible setup prompts"),
|
||||
}),
|
||||
alias: { yes: "y", installHopper: "install-hopper" },
|
||||
run: ({ options, formatExplicit }) =>
|
||||
alias: {
|
||||
yes: "y",
|
||||
},
|
||||
run: ({ options, formatExplicit, agent }) =>
|
||||
logCliCommand(logger, "setup", () =>
|
||||
runSetup(
|
||||
{
|
||||
approved: options.yes,
|
||||
installHopper: options.installHopper,
|
||||
structured: formatExplicit,
|
||||
},
|
||||
systemSetupHost(createSystemDoctorHost()),
|
||||
options.yes || formatExplicit || process.stdin.isTTY !== true
|
||||
? undefined
|
||||
: confirmSetup,
|
||||
),
|
||||
runSetupCommand({ options, formatExplicit, agent }),
|
||||
),
|
||||
});
|
||||
cli.command(CLI_COMMANDS.doctor, {
|
||||
|
|
@ -249,26 +272,54 @@ const registerSetupCommands = (
|
|||
});
|
||||
};
|
||||
|
||||
const confirmSetup = async (
|
||||
actions: readonly SetupAction[],
|
||||
): Promise<boolean> => {
|
||||
process.stdout.write("\nREA setup plan\n");
|
||||
for (const action of actions)
|
||||
process.stdout.write(
|
||||
` - ${action.detail}\n ${action.target}${action.external ? " (external software)" : ""}\n`,
|
||||
const runSetupCommand = async (input: {
|
||||
readonly options: {
|
||||
readonly yes: boolean;
|
||||
readonly installHopper: boolean;
|
||||
readonly client: readonly string[];
|
||||
readonly allDetected: boolean;
|
||||
readonly skill?: boolean | undefined;
|
||||
readonly dryRun: boolean;
|
||||
readonly accessible: boolean;
|
||||
};
|
||||
readonly formatExplicit: boolean;
|
||||
readonly agent: boolean;
|
||||
}) => {
|
||||
const { options } = input;
|
||||
const interactive =
|
||||
!options.yes &&
|
||||
!options.dryRun &&
|
||||
!input.formatExplicit &&
|
||||
process.stdin.isTTY === true &&
|
||||
process.stderr.isTTY === true;
|
||||
const hasExplicitScope =
|
||||
options.allDetected ||
|
||||
options.client.length > 0 ||
|
||||
options.skill !== undefined ||
|
||||
options.installHopper;
|
||||
if (options.yes && !hasExplicitScope)
|
||||
process.stderr.write(
|
||||
"! Implicit `rea setup --yes` scope is deprecated; use `--all-detected --skill` to retain it.\n",
|
||||
);
|
||||
const prompt = createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
});
|
||||
try {
|
||||
const answer = (await prompt.question("Continue? [Y/n] "))
|
||||
.trim()
|
||||
.toLowerCase();
|
||||
return answer === "" || answer === "y" || answer === "yes";
|
||||
} finally {
|
||||
prompt.close();
|
||||
}
|
||||
const result = await runSetup(
|
||||
{
|
||||
approved: options.yes && !options.dryRun,
|
||||
installHopper: options.installHopper,
|
||||
structured: input.formatExplicit || options.dryRun,
|
||||
proposeHopper: !hasExplicitScope || options.installHopper,
|
||||
...(!hasExplicitScope || options.allDetected
|
||||
? {}
|
||||
: { clientIds: options.client }),
|
||||
...(!hasExplicitScope ? {} : { installSkill: options.skill ?? false }),
|
||||
...(interactive ? { onProgress: renderSetupProgress } : {}),
|
||||
},
|
||||
systemSetupHost(createSystemDoctorHost()),
|
||||
interactive
|
||||
? (actions) => confirmInteractiveSetup(actions, options.accessible)
|
||||
: undefined,
|
||||
);
|
||||
if (interactive) renderInteractiveSetupResult(result);
|
||||
return input.formatExplicit ? result : conciseSetupResult(result);
|
||||
};
|
||||
|
||||
const registerXrefsCommand = (
|
||||
|
|
|
|||
|
|
@ -0,0 +1,360 @@
|
|||
import {
|
||||
cancel,
|
||||
confirm,
|
||||
intro,
|
||||
isCancel,
|
||||
multiselect,
|
||||
outro,
|
||||
select,
|
||||
} from "@clack/prompts";
|
||||
|
||||
import type {
|
||||
SetupAction,
|
||||
SetupConfirmationDecision,
|
||||
SetupProgressEvent,
|
||||
SetupResult,
|
||||
} from "./application/Setup.js";
|
||||
import { SUPPORTED_CLIENT_DEFINITIONS } from "./application/SupportedClients.js";
|
||||
|
||||
const clientDisplayNames: ReadonlyMap<string, string> = new Map(
|
||||
SUPPORTED_CLIENT_DEFINITIONS.map(({ name, displayName }) => [
|
||||
name,
|
||||
displayName,
|
||||
]),
|
||||
);
|
||||
|
||||
const promptStreams = {
|
||||
input: process.stdin,
|
||||
output: process.stderr,
|
||||
withGuide: true,
|
||||
} as const;
|
||||
|
||||
type SetupMode = "recommended" | "custom" | "skip";
|
||||
|
||||
/** Run the inline setup picker, exact preflight, and default-No consent. */
|
||||
export const confirmInteractiveSetup = async (
|
||||
actions: readonly SetupAction[],
|
||||
accessible: boolean,
|
||||
): Promise<SetupConfirmationDecision> => {
|
||||
intro("REA setup", promptStreams);
|
||||
renderValueIntroduction();
|
||||
renderDetectedSummary(actions);
|
||||
renderKeyboardHelp(accessible);
|
||||
const mode = await selectSetupMode(actions, accessible);
|
||||
if (mode === undefined) return cancelledDecision(actions);
|
||||
if (mode === "skip") {
|
||||
cancel("No changes were made.", promptStreams);
|
||||
return {
|
||||
approved: false,
|
||||
selectedActionIds: actions.map(({ id }) => id),
|
||||
};
|
||||
}
|
||||
const selectedActionIds =
|
||||
mode === "recommended"
|
||||
? actions.map(({ id }) => id)
|
||||
: accessible
|
||||
? await selectActionsAccessibly(actions)
|
||||
: await selectActions(actions);
|
||||
if (selectedActionIds === undefined) return cancelledDecision(actions);
|
||||
if (selectedActionIds.length === 0) {
|
||||
cancel("Nothing selected. No changes were made.", promptStreams);
|
||||
return { approved: false, selectedActionIds };
|
||||
}
|
||||
const selected = new Set(selectedActionIds);
|
||||
const selectedActions = actions.filter(({ id }) => selected.has(id));
|
||||
renderPreflight(selectedActions);
|
||||
const approved = await confirm({
|
||||
...promptStreams,
|
||||
message:
|
||||
selectedActions.length === 1
|
||||
? "Apply this change?"
|
||||
: `Apply these ${String(selectedActions.length)} changes?`,
|
||||
initialValue: false,
|
||||
active: "Yes, apply",
|
||||
inactive: "No, cancel",
|
||||
});
|
||||
if (isCancel(approved) || !approved) {
|
||||
cancel("Setup cancelled. No changes were made.", promptStreams);
|
||||
return { approved: false, selectedActionIds };
|
||||
}
|
||||
return { approved: true, selectedActionIds };
|
||||
};
|
||||
|
||||
/** Render stable, append-only progress for real setup operations. */
|
||||
export const renderSetupProgress = (event: SetupProgressEvent): void => {
|
||||
const symbol =
|
||||
event.state === "started"
|
||||
? "◇"
|
||||
: event.state === "completed"
|
||||
? "◆"
|
||||
: event.state === "warning"
|
||||
? "!"
|
||||
: "✗";
|
||||
const suffix = event.detail === undefined ? "" : ` · ${event.detail}`;
|
||||
writeLine(`${symbol} ${event.label}${suffix}`);
|
||||
};
|
||||
|
||||
/** Finish an interactive setup journey without exposing the full doctor catalog. */
|
||||
export const renderInteractiveSetupResult = (result: SetupResult): void => {
|
||||
if (result.status === "ready") {
|
||||
const changedClients = Object.entries(result.clients)
|
||||
.filter(([, client]) => client.status === "configured")
|
||||
.map(([client]) => clientDisplayNames.get(client) ?? client);
|
||||
const readyClients = readyAgentClients(result, changedClients);
|
||||
renderReadyCapabilities(result, readyClients);
|
||||
outro(
|
||||
changedClients.length === 0
|
||||
? "REA is ready for local app analysis."
|
||||
: `Restart ${changedClients.join(", ")} to load REA.`,
|
||||
promptStreams,
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (result.status === "planned") return;
|
||||
writeLine(`! ${result.remediation ?? "Setup needs attention."}`);
|
||||
outro("Run `rea doctor` for the remaining checks.", promptStreams);
|
||||
};
|
||||
|
||||
/** Keep default non-TTY output actionable without emitting the full catalog. */
|
||||
export const conciseSetupResult = (result: SetupResult) => ({
|
||||
status: result.status,
|
||||
plannedActions: result.plannedActions,
|
||||
appliedActions: result.appliedActions,
|
||||
clients: result.clients,
|
||||
doctor: {
|
||||
healthy: result.doctor.healthy,
|
||||
checks: result.doctor.checks.filter(({ ok }) => !ok),
|
||||
},
|
||||
...(result.code === undefined ? {} : { code: result.code }),
|
||||
...(result.remediation === undefined
|
||||
? {}
|
||||
: { remediation: result.remediation }),
|
||||
});
|
||||
|
||||
const selectActions = async (
|
||||
actions: readonly SetupAction[],
|
||||
): Promise<readonly string[] | undefined> => {
|
||||
const selection = await multiselect({
|
||||
...promptStreams,
|
||||
message: "Choose what REA should configure",
|
||||
options: actions.map((action) => ({
|
||||
value: action.id,
|
||||
label: `${action.label} (${actionModality(action)})`,
|
||||
hint: `${action.operation} · ${action.target}`,
|
||||
})),
|
||||
initialValues: actions.map(({ id }) => id),
|
||||
required: false,
|
||||
maxItems: Math.max(
|
||||
3,
|
||||
Math.min(actions.length, (process.stderr.rows ?? 24) - 8),
|
||||
),
|
||||
showInstructions: true,
|
||||
});
|
||||
return isCancel(selection) ? undefined : selection;
|
||||
};
|
||||
|
||||
const selectActionsAccessibly = async (
|
||||
actions: readonly SetupAction[],
|
||||
): Promise<readonly string[] | undefined> => {
|
||||
const selected: string[] = [];
|
||||
for (const action of actions) {
|
||||
const included = await confirm({
|
||||
...promptStreams,
|
||||
message: `Include ${action.label} (${actionModality(action)})? ${action.target}`,
|
||||
initialValue: true,
|
||||
vertical: true,
|
||||
});
|
||||
if (isCancel(included)) return undefined;
|
||||
if (included) selected.push(action.id);
|
||||
}
|
||||
return selected;
|
||||
};
|
||||
|
||||
const selectSetupMode = async (
|
||||
actions: readonly SetupAction[],
|
||||
accessible: boolean,
|
||||
): Promise<SetupMode | undefined> => {
|
||||
if (accessible) return selectSetupModeAccessibly();
|
||||
const mode = await select<SetupMode>({
|
||||
...promptStreams,
|
||||
message: "Choose a setup",
|
||||
options: [
|
||||
{
|
||||
value: "recommended",
|
||||
label: "Set up all available capabilities",
|
||||
hint: `recommended · ${actionCount(actions.length)}`,
|
||||
},
|
||||
{
|
||||
value: "custom",
|
||||
label: "Customize setup",
|
||||
hint: "choose integrations and components",
|
||||
},
|
||||
{
|
||||
value: "skip",
|
||||
label: "No thanks",
|
||||
hint: "make no changes",
|
||||
},
|
||||
],
|
||||
initialValue: "recommended",
|
||||
});
|
||||
return isCancel(mode) ? undefined : mode;
|
||||
};
|
||||
|
||||
const selectSetupModeAccessibly = async (): Promise<SetupMode | undefined> => {
|
||||
const recommended = await confirm({
|
||||
...promptStreams,
|
||||
message: "Use the recommended complete setup?",
|
||||
initialValue: true,
|
||||
vertical: true,
|
||||
});
|
||||
if (isCancel(recommended)) return undefined;
|
||||
if (recommended) return "recommended";
|
||||
const customize = await confirm({
|
||||
...promptStreams,
|
||||
message: "Customize integrations and components?",
|
||||
initialValue: true,
|
||||
vertical: true,
|
||||
});
|
||||
if (isCancel(customize)) return undefined;
|
||||
return customize ? "custom" : "skip";
|
||||
};
|
||||
|
||||
const renderValueIntroduction = (): void => {
|
||||
writeLine("│ Understand local apps and binaries from your coding agent.");
|
||||
writeLine("│");
|
||||
writeLine("│ • Trace how a feature works with local evidence.");
|
||||
writeLine(
|
||||
"│ • Use the same analysis capabilities from REA's CLI and supported agents.",
|
||||
);
|
||||
writeLine(
|
||||
"│ • Keep analyzed targets on this machine instead of uploading them to a hosted service.",
|
||||
);
|
||||
};
|
||||
|
||||
const renderDetectedSummary = (actions: readonly SetupAction[]): void => {
|
||||
const clients = actions.filter(({ kind }) => kind === "configure_client");
|
||||
writeLine("│");
|
||||
if (clients.length === 0) {
|
||||
writeLine("◆ No agent integrations need configuration");
|
||||
} else {
|
||||
writeLine(`◆ Detected ${humanList(clients.map(({ label }) => label))}`);
|
||||
for (const client of clients) {
|
||||
writeLine(
|
||||
`│ ${client.label} · ${actionModality(client)} · ${client.operation}`,
|
||||
);
|
||||
writeLine(`│ ${client.target}`);
|
||||
}
|
||||
}
|
||||
const components = actions.filter(({ kind }) => kind !== "configure_client");
|
||||
if (components.length > 0) {
|
||||
writeLine("│");
|
||||
writeLine(
|
||||
`│ Also available: ${components.map((action) => `${action.label} (${actionModality(action)})`).join(", ")}`,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const renderKeyboardHelp = (accessible: boolean): void => {
|
||||
writeLine("│");
|
||||
writeLine(
|
||||
accessible
|
||||
? "│ Keys: Enter answer · Ctrl-C cancel"
|
||||
: "│ Keys: ↑/↓ navigate · Space toggle · Enter confirm · Ctrl-C cancel",
|
||||
);
|
||||
};
|
||||
|
||||
const renderReadyCapabilities = (
|
||||
result: SetupResult,
|
||||
readyClients: readonly string[],
|
||||
): void => {
|
||||
writeLine("◆ What you can do now");
|
||||
const providers = readyProviders(result);
|
||||
if (providers.length > 0)
|
||||
writeLine(`│ Deep analysis: ${humanList(providers)}`);
|
||||
if (readyClients.length > 0)
|
||||
writeLine(`│ Agent access: ${humanList(readyClients)}`);
|
||||
if (result.doctor.identity?.skill.state === "aligned")
|
||||
writeLine("│ Guided reverse-engineering workflows: installed");
|
||||
if (providers.length > 0) writeLine("│ CLI: rea analyze /path/to/app");
|
||||
const firstClient = readyClients[0];
|
||||
if (firstClient !== undefined)
|
||||
writeLine(
|
||||
`│ Try in ${firstClient}: "Use REA to explain how a feature works in /path/to/app."`,
|
||||
);
|
||||
};
|
||||
|
||||
const readyAgentClients = (
|
||||
result: SetupResult,
|
||||
changedClients: readonly string[],
|
||||
): readonly string[] => {
|
||||
const alignedClients = (result.doctor.identity?.registrations ?? [])
|
||||
.filter(({ state }) => state === "aligned")
|
||||
.map(({ client }) => clientDisplayNames.get(client) ?? client);
|
||||
return [...new Set([...alignedClients, ...changedClients])];
|
||||
};
|
||||
|
||||
const readyProviders = (result: SetupResult): readonly string[] => {
|
||||
const providers = [
|
||||
...(result.doctor.hopperPath === undefined ? [] : ["Hopper"]),
|
||||
...(result.doctor.providerInspections ?? [])
|
||||
.filter(({ available }) => available)
|
||||
.map(({ id }) => displayProviderId(id)),
|
||||
];
|
||||
return [...new Set(providers)];
|
||||
};
|
||||
|
||||
const displayProviderId = (id: string): string =>
|
||||
id.length === 0 ? id : `${id[0]?.toUpperCase() ?? ""}${id.slice(1)}`;
|
||||
|
||||
const actionModality = (action: SetupAction): string => {
|
||||
if (action.kind === "configure_client") return "MCP";
|
||||
if (action.kind === "install_hopper") return "provider";
|
||||
return "skill";
|
||||
};
|
||||
|
||||
const actionCount = (count: number): string =>
|
||||
`${String(count)} ${count === 1 ? "change" : "changes"}`;
|
||||
|
||||
const humanList = (values: readonly string[]): string => {
|
||||
if (values.length < 2) return values[0] ?? "";
|
||||
if (values.length === 2) return `${values[0]} and ${values[1]}`;
|
||||
return `${values.slice(0, -1).join(", ")}, and ${values.at(-1)}`;
|
||||
};
|
||||
|
||||
const renderPreflight = (actions: readonly SetupAction[]): void => {
|
||||
writeLine("│");
|
||||
writeLine("◆ Ready to review");
|
||||
for (const action of actions) {
|
||||
writeLine("│");
|
||||
writeLine(`│ ${action.operation.toUpperCase()} ${action.label}`);
|
||||
writeLine(`│ ${action.target}`);
|
||||
if (action.backupPath !== undefined)
|
||||
writeLine(`│ backup: ${action.backupPath}`);
|
||||
for (const origin of action.networkOrigins ?? [])
|
||||
writeLine(`│ network: ${origin}`);
|
||||
if (action.integrity !== undefined)
|
||||
writeLine(`│ integrity: ${action.integrity}`);
|
||||
for (const command of action.commands ?? [])
|
||||
writeLine(`│ command: ${command}`);
|
||||
writeLine(`│ ${action.detail}`);
|
||||
if (action.external) writeLine("│ external software");
|
||||
}
|
||||
writeLine("│");
|
||||
writeLine(
|
||||
"│ REA will preserve unrelated configuration and will not install or upgrade Node.js, npm, Homebrew, Java, or Ghidra.",
|
||||
);
|
||||
};
|
||||
|
||||
const cancelledDecision = (
|
||||
actions: readonly SetupAction[],
|
||||
): SetupConfirmationDecision => {
|
||||
cancel("Setup cancelled. No changes were made.", promptStreams);
|
||||
return {
|
||||
approved: false,
|
||||
selectedActionIds: actions.map(({ id }) => id),
|
||||
};
|
||||
};
|
||||
|
||||
const writeLine = (line: string): void => {
|
||||
process.stderr.write(`${line}\n`);
|
||||
};
|
||||
|
|
@ -0,0 +1,254 @@
|
|||
import { execFile } from "node:child_process";
|
||||
import { mkdtemp, rm } from "node:fs/promises";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { promisify } from "node:util";
|
||||
|
||||
import { spawn } from "@lydell/node-pty";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const execute = promisify(execFile);
|
||||
const decisionMarker = "REA_SETUP_DECISION:";
|
||||
|
||||
const actions = [
|
||||
{
|
||||
id: "configure_client:codex",
|
||||
kind: "configure_client",
|
||||
label: "Codex",
|
||||
target: "/isolated/.codex/config.toml",
|
||||
detail: "Add the REA MCP registration for Codex.",
|
||||
external: false,
|
||||
operation: "create",
|
||||
},
|
||||
{
|
||||
id: "install_skill",
|
||||
kind: "install_skill",
|
||||
label: "REA reverse-engineering skill",
|
||||
target: "/isolated/.agents/skills/reverse-engineering/SKILL.md",
|
||||
detail: "Install the bundled reverse-engineering skill.",
|
||||
external: false,
|
||||
operation: "install",
|
||||
},
|
||||
{
|
||||
id: "install_hopper",
|
||||
kind: "install_hopper",
|
||||
label: "Hopper deep-analysis provider",
|
||||
target: "/isolated/Applications/Hopper Disassembler.app",
|
||||
detail: "Install the verified Hopper package.",
|
||||
external: true,
|
||||
operation: "install",
|
||||
},
|
||||
] as const;
|
||||
|
||||
describe("interactive setup journey", () => {
|
||||
it("leads with value, detected targets, modality labels, and durable key help", async () => {
|
||||
const result = await runJourney([step("Choose a setup", "\u0003")]);
|
||||
|
||||
expect(result.output).toContain(
|
||||
"Understand local apps and binaries from your coding agent.",
|
||||
);
|
||||
expect(result.output).toContain(
|
||||
"Trace how a feature works with local evidence.",
|
||||
);
|
||||
expect(result.output).toContain("Detected Codex");
|
||||
expect(result.output).toContain("Codex · MCP · create");
|
||||
expect(result.output).toContain("Hopper deep-analysis provider (provider)");
|
||||
expect(result.output).toContain("REA reverse-engineering skill (skill)");
|
||||
expect(result.output).toContain(
|
||||
"Keys: ↑/↓ navigate · Space toggle · Enter confirm · Ctrl-C cancel",
|
||||
);
|
||||
expect(result.decision.approved).toBe(false);
|
||||
});
|
||||
|
||||
it("offers recommended, custom, and no-thanks intent before choosing targets", async () => {
|
||||
const result = await runJourney([
|
||||
step("Choose a setup", "\u001b[B\u001b[B\r"),
|
||||
]);
|
||||
|
||||
expect(result.output).toContain("Set up all available capabilities");
|
||||
expect(result.output).toContain("recommended · 3 changes");
|
||||
expect(result.output).toContain("Customize setup");
|
||||
expect(result.output).toContain("No thanks");
|
||||
expect(result.output).not.toContain("Ready to review");
|
||||
expect(result.decision).toMatchObject({ approved: false });
|
||||
});
|
||||
|
||||
it("lets custom mode reach the modality-labelled target picker and cancel safely", async () => {
|
||||
const result = await runJourney([
|
||||
step("Choose a setup", "\u001b[B\r"),
|
||||
step("Choose what REA should configure", "\u0003"),
|
||||
]);
|
||||
|
||||
expect(result.output).toContain("Choose what REA should configure");
|
||||
expect(result.output).toContain("Codex (MCP)");
|
||||
expect(result.output).toContain("Hopper deep-analysis provider (provider)");
|
||||
expect(result.output).toContain("Setup cancelled. No changes were made.");
|
||||
expect(result.decision.approved).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps the recommended path subject to a default-No exact preflight", async () => {
|
||||
const result = await runJourney([
|
||||
step("Choose a setup", "\r"),
|
||||
step("Apply these 3 changes?", "\r"),
|
||||
]);
|
||||
|
||||
expect(result.output).toContain("Ready to review");
|
||||
expect(result.output).toContain("CREATE Codex");
|
||||
expect(result.output).toContain("/isolated/.codex/config.toml");
|
||||
expect(result.output).toContain("No, cancel");
|
||||
expect(result.output).toContain("Setup cancelled. No changes were made.");
|
||||
expect(result.decision).toEqual({
|
||||
approved: false,
|
||||
selectedActionIds: actions.map(({ id }) => id),
|
||||
});
|
||||
});
|
||||
|
||||
it("frames completion around the capabilities that are now ready", async () => {
|
||||
const { stderr } = await execute(
|
||||
process.execPath,
|
||||
[
|
||||
"--input-type=module",
|
||||
"--eval",
|
||||
[
|
||||
'import { renderInteractiveSetupResult } from "./dist/cliSetup.js";',
|
||||
"renderInteractiveSetupResult({",
|
||||
' status: "ready",',
|
||||
" plannedActions: [],",
|
||||
" appliedActions: [],",
|
||||
' clients: { codex: { status: "configured" } },',
|
||||
" doctor: {",
|
||||
" healthy: true,",
|
||||
' hopperPath: "/Applications/Hopper",',
|
||||
" checks: [],",
|
||||
' providerInspections: [{ id: "ghidra", available: true }],',
|
||||
' identity: { skill: { state: "aligned" }, registrations: [{ client: "codex", state: "aligned" }] },',
|
||||
" },",
|
||||
"});",
|
||||
].join("\n"),
|
||||
],
|
||||
{
|
||||
cwd: process.cwd(),
|
||||
env: { ...process.env, NO_COLOR: "1" },
|
||||
},
|
||||
);
|
||||
|
||||
expect(stderr).toContain("What you can do now");
|
||||
expect(stderr).toContain("Deep analysis: Hopper and Ghidra");
|
||||
expect(stderr).toContain("Agent access: Codex");
|
||||
expect(stderr).toContain("Guided reverse-engineering workflows: installed");
|
||||
expect(stderr).toContain("CLI: rea analyze /path/to/app");
|
||||
expect(stderr).toContain(
|
||||
'Try in Codex: "Use REA to explain how a feature works in /path/to/app."',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
interface JourneyStep {
|
||||
readonly prompt: string;
|
||||
readonly input: string;
|
||||
}
|
||||
|
||||
interface JourneyResult {
|
||||
readonly output: string;
|
||||
readonly decision: {
|
||||
readonly approved: boolean;
|
||||
readonly selectedActionIds: readonly string[];
|
||||
};
|
||||
}
|
||||
|
||||
const step = (prompt: string, input: string): JourneyStep => ({
|
||||
prompt,
|
||||
input,
|
||||
});
|
||||
|
||||
const runJourney = async (
|
||||
steps: readonly JourneyStep[],
|
||||
): Promise<JourneyResult> => {
|
||||
const isolatedHome = await mkdtemp(join(tmpdir(), "rea-cli-setup-test-"));
|
||||
const script = [
|
||||
'import { confirmInteractiveSetup } from "./dist/cliSetup.js";',
|
||||
`const actions = ${JSON.stringify(actions)};`,
|
||||
"const decision = await confirmInteractiveSetup(actions, false);",
|
||||
`process.stdout.write(${JSON.stringify(`\n${decisionMarker}`)} + JSON.stringify(decision) + "\\n");`,
|
||||
].join("\n");
|
||||
|
||||
return new Promise<JourneyResult>((resolvePromise, reject) => {
|
||||
let output = "";
|
||||
let nextStep = 0;
|
||||
let settled = false;
|
||||
const terminal = spawn(
|
||||
process.execPath,
|
||||
["--input-type=module", "--eval", script],
|
||||
{
|
||||
cwd: process.cwd(),
|
||||
env: {
|
||||
...process.env,
|
||||
HOME: isolatedHome,
|
||||
NO_COLOR: "1",
|
||||
TERM: "xterm-256color",
|
||||
},
|
||||
name: "xterm-256color",
|
||||
cols: 120,
|
||||
rows: 40,
|
||||
},
|
||||
);
|
||||
const timeout = setTimeout(() => {
|
||||
terminal.kill();
|
||||
finish(new Error(`Timed out after output:\n${output}`));
|
||||
}, 10_000);
|
||||
|
||||
terminal.onData((data) => {
|
||||
output += data;
|
||||
const pending = steps[nextStep];
|
||||
if (pending !== undefined && output.includes(pending.prompt)) {
|
||||
nextStep += 1;
|
||||
terminal.write(pending.input);
|
||||
}
|
||||
});
|
||||
terminal.onExit(({ exitCode }) => {
|
||||
if (exitCode !== 0) {
|
||||
finish(
|
||||
new Error(`Setup journey exited ${String(exitCode)}:\n${output}`),
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (nextStep !== steps.length) {
|
||||
finish(new Error(`Setup journey missed an interaction:\n${output}`));
|
||||
return;
|
||||
}
|
||||
const markerIndex = output.lastIndexOf(decisionMarker);
|
||||
if (markerIndex === -1) {
|
||||
finish(new Error(`Setup journey returned no decision:\n${output}`));
|
||||
return;
|
||||
}
|
||||
const serialized = output
|
||||
.slice(markerIndex + decisionMarker.length)
|
||||
.split(/\r?\n/u, 1)[0];
|
||||
if (serialized === undefined) {
|
||||
finish(
|
||||
new Error(`Setup journey returned an empty decision:\n${output}`),
|
||||
);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
finish(undefined, {
|
||||
output,
|
||||
decision: JSON.parse(serialized) as JourneyResult["decision"],
|
||||
});
|
||||
} catch (cause: unknown) {
|
||||
finish(cause instanceof Error ? cause : new Error(String(cause)));
|
||||
}
|
||||
});
|
||||
|
||||
function finish(error?: Error, result?: JourneyResult): void {
|
||||
if (settled) return;
|
||||
settled = true;
|
||||
clearTimeout(timeout);
|
||||
void rm(isolatedHome, { recursive: true, force: true }).finally(() => {
|
||||
if (error !== undefined) reject(error);
|
||||
else if (result !== undefined) resolvePromise(result);
|
||||
else reject(new Error("Setup journey completed without a result"));
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -88,15 +88,21 @@ describe("doctor", () => {
|
|||
});
|
||||
});
|
||||
it("detects a manual configured Hopper before Homebrew", async () => {
|
||||
let brewProbes = 0;
|
||||
const result = await runDoctor(
|
||||
undefined,
|
||||
host({
|
||||
configuredHopperPath: "/manual/Hopper",
|
||||
executable: (path) => Promise.resolve(path === "/manual/Hopper"),
|
||||
brewHopperPath: () => {
|
||||
brewProbes += 1;
|
||||
return Promise.resolve(undefined);
|
||||
},
|
||||
}),
|
||||
);
|
||||
expect(result.hopperPath).toBe("/manual/Hopper");
|
||||
expect(result.healthy).toBe(true);
|
||||
expect(brewProbes).toBe(0);
|
||||
});
|
||||
|
||||
it("reports optional BYO ilspycmd diagnostics only when configured", async () => {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { describe, expect, it } from "vitest";
|
|||
|
||||
import {
|
||||
installLinuxHopper,
|
||||
linuxHopperInstallDisclosure,
|
||||
linuxPackageManagerCommands,
|
||||
linuxSharedLibrariesAvailable,
|
||||
parseLinuxDistribution,
|
||||
|
|
@ -92,6 +93,18 @@ describe("Linux Hopper host classification", () => {
|
|||
});
|
||||
|
||||
describe("Linux Hopper installation", () => {
|
||||
it("discloses the exact download, integrity evidence, and privileged command", () => {
|
||||
expect(linuxHopperInstallDisclosure("deb", false)).toEqual({
|
||||
downloadUrl:
|
||||
"https://www.hopperapp.com:443/downloader/public/Hopper-6.4.2-Linux-demo.deb",
|
||||
expectedBytes: 35_755_772,
|
||||
expectedSha1: "e4f79dff602648a8ff4a88b773875b6bfac0dc65",
|
||||
commands: [
|
||||
"pkexec apt-get install -y <verified-hopper.deb> xvfb xauth python3 libx11-6 libxtst6",
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it.each([
|
||||
["deb", "apt-get"],
|
||||
["rpm", "dnf"],
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { describe, expect, it } from "vitest";
|
|||
|
||||
import {
|
||||
installMacHopper,
|
||||
macHopperInstallDisclosure,
|
||||
type MacHopperInstallHost,
|
||||
} from "../src/application/MacHopper.js";
|
||||
|
||||
|
|
@ -74,6 +75,18 @@ class FakeMacHopperHost implements MacHopperInstallHost {
|
|||
}
|
||||
|
||||
describe("macOS Hopper installation", () => {
|
||||
it("discloses network and command boundaries before installation", () => {
|
||||
expect(macHopperInstallDisclosure).toMatchObject({
|
||||
networkOrigins: [
|
||||
"https://www.hopperapp.com/include/files-api.php?request=releases&public=true",
|
||||
"https://www.hopperapp.com:443/downloader/public/",
|
||||
],
|
||||
});
|
||||
expect(macHopperInstallDisclosure.commands).toContain(
|
||||
"hdiutil attach -readonly -nobrowse -mountpoint <private-mount> <verified-hopper.dmg>",
|
||||
);
|
||||
});
|
||||
|
||||
it("installs, verifies, opens, and cleans the official package", async () => {
|
||||
const host = new FakeMacHopperHost();
|
||||
await expect(installMacHopper({}, host)).resolves.toEqual({
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ import { describe, expect, it } from "vitest";
|
|||
|
||||
import {
|
||||
runSetup,
|
||||
type ClientConfigurationInspection,
|
||||
type ClientConfigurationResult,
|
||||
type SetupClient,
|
||||
type SetupHost,
|
||||
type SetupOptions,
|
||||
type SetupHopperInstallResult,
|
||||
type SetupProgressEvent,
|
||||
type SetupProviderEnvironment,
|
||||
} from "../src/application/Setup.js";
|
||||
import type { DoctorCheck } from "../src/application/Doctor.js";
|
||||
|
|
@ -24,6 +26,7 @@ class FakeSetupHost implements SetupHost {
|
|||
skill: "installed" | "unchanged" | "failed" = "installed";
|
||||
clients: readonly SetupClient[] = [];
|
||||
clientResults = new Map<string, ClientConfigurationResult>();
|
||||
clientInspections = new Map<string, ClientConfigurationInspection>();
|
||||
hopperInstalls = 0;
|
||||
hopperReplaceRequests: boolean[] = [];
|
||||
configurations = 0;
|
||||
|
|
@ -91,6 +94,12 @@ class FakeSetupHost implements SetupHost {
|
|||
this.clientResults.get(client.name)?.status !== "unchanged",
|
||||
);
|
||||
};
|
||||
inspectClientConfiguration = (
|
||||
client: SetupClient,
|
||||
): Promise<ClientConfigurationInspection> =>
|
||||
Promise.resolve(
|
||||
this.clientInspections.get(client.name) ?? { status: "update" },
|
||||
);
|
||||
skillNeedsInstall = (): Promise<boolean> =>
|
||||
Promise.resolve(this.skill !== "unchanged");
|
||||
installSkill = (): Promise<"installed" | "unchanged" | "failed"> => {
|
||||
|
|
@ -251,6 +260,41 @@ describe("setup workflow", () => {
|
|||
expect(host.hopperInstalls).toBe(0);
|
||||
});
|
||||
|
||||
it("reports append-only lifecycle progress for each selected action", async () => {
|
||||
const host = new FakeSetupHost();
|
||||
host.hopper = "/Applications/Hopper";
|
||||
host.clients = [
|
||||
{
|
||||
name: "codex",
|
||||
displayName: "Codex",
|
||||
configPath: "/codex.toml",
|
||||
},
|
||||
];
|
||||
const progress: SetupProgressEvent[] = [];
|
||||
await runSetup(
|
||||
{ ...options(true), onProgress: (event) => progress.push(event) },
|
||||
host,
|
||||
);
|
||||
expect(progress).toEqual([
|
||||
{ actionId: "configure_client:codex", label: "Codex", state: "started" },
|
||||
{
|
||||
actionId: "configure_client:codex",
|
||||
label: "Codex",
|
||||
state: "completed",
|
||||
},
|
||||
{
|
||||
actionId: "install_skill",
|
||||
label: "REA reverse-engineering skill",
|
||||
state: "started",
|
||||
},
|
||||
{
|
||||
actionId: "install_skill",
|
||||
label: "REA reverse-engineering skill",
|
||||
state: "completed",
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it("plans and propagates BYO Ghidra without installing software", async () => {
|
||||
const host = new FakeSetupHost("linux");
|
||||
host.distribution = {
|
||||
|
|
@ -373,6 +417,98 @@ describe("setup workflow", () => {
|
|||
expect(host.configurations).toBe(0);
|
||||
});
|
||||
|
||||
it("blocks malformed client configuration before Hopper or file mutation", async () => {
|
||||
const host = new FakeSetupHost();
|
||||
host.clients = [
|
||||
{ name: "codex", displayName: "Codex", configPath: "/codex.toml" },
|
||||
];
|
||||
host.clientInspections.set("codex", {
|
||||
status: "invalid",
|
||||
remediation: "Repair the existing TOML.",
|
||||
});
|
||||
|
||||
const result = await runSetup(options(true, true), host);
|
||||
|
||||
expect(result.status).toBe("needs_human");
|
||||
expect(result.remediation).toBe("Codex: Repair the existing TOML.");
|
||||
expect(host.hopperInstalls).toBe(0);
|
||||
expect(host.configurations).toBe(0);
|
||||
expect(host.skillInstalls).toBe(0);
|
||||
});
|
||||
|
||||
it("blocks malformed configuration before unrelated writes with an existing provider", async () => {
|
||||
const host = new FakeSetupHost();
|
||||
host.hopper = "/Applications/Hopper";
|
||||
host.clients = [
|
||||
{
|
||||
name: "claude_desktop",
|
||||
displayName: "Claude Desktop",
|
||||
configPath: "/claude.json",
|
||||
},
|
||||
{ name: "cursor", displayName: "Cursor", configPath: "/cursor.json" },
|
||||
];
|
||||
host.clientInspections.set("claude_desktop", {
|
||||
status: "invalid",
|
||||
remediation: "Repair the existing JSON.",
|
||||
});
|
||||
|
||||
const result = await runSetup(options(true), host);
|
||||
|
||||
expect(result.status).toBe("needs_human");
|
||||
expect(result.remediation).toBe(
|
||||
"Claude Desktop: Repair the existing JSON.",
|
||||
);
|
||||
expect(host.configurations).toBe(0);
|
||||
expect(host.skillInstalls).toBe(0);
|
||||
});
|
||||
|
||||
it("plans a client update when Hopper installation changes its desired environment", async () => {
|
||||
const host = new FakeSetupHost();
|
||||
host.clients = [
|
||||
{ name: "codex", displayName: "Codex", configPath: "/codex.toml" },
|
||||
];
|
||||
host.clientInspections.set("codex", { status: "already_current" });
|
||||
|
||||
const result = await runSetup(options(false), host);
|
||||
|
||||
expect(
|
||||
result.plannedActions.map(({ id, operation }) => ({
|
||||
id,
|
||||
operation,
|
||||
})),
|
||||
).toContainEqual({
|
||||
id: "configure_client:codex",
|
||||
operation: "update",
|
||||
});
|
||||
expect(host.configurations).toBe(0);
|
||||
});
|
||||
|
||||
it("executes only actions selected by the interactive adapter", async () => {
|
||||
const host = new FakeSetupHost();
|
||||
host.hopper = "/Applications/Hopper";
|
||||
host.clients = [
|
||||
{ name: "codex", displayName: "Codex", configPath: "/codex.toml" },
|
||||
{ name: "cursor", displayName: "Cursor", configPath: "/cursor.json" },
|
||||
];
|
||||
|
||||
const result = await runSetup(
|
||||
{ ...options(false), structured: false },
|
||||
host,
|
||||
() =>
|
||||
Promise.resolve({
|
||||
approved: true,
|
||||
selectedActionIds: ["configure_client:codex"],
|
||||
}),
|
||||
);
|
||||
|
||||
expect(result.plannedActions.map(({ id }) => id)).toEqual([
|
||||
"configure_client:codex",
|
||||
]);
|
||||
expect(result.clients).toEqual({ codex: { status: "configured" } });
|
||||
expect(host.configurations).toBe(1);
|
||||
expect(host.skillInstalls).toBe(0);
|
||||
});
|
||||
|
||||
it.each([
|
||||
[
|
||||
"path",
|
||||
|
|
|
|||
Loading…
Reference in New Issue