refactor(process): extract reusable provider lifecycle primitives
Introduce provider-neutral ownership, private runtime roots, absolute startup deadlines, pending-operation correlation, bounded output capture, and verified TERM-to-KILL process supervision.\n\nMigrate Hopper onto the shared lifecycle pieces while keeping its Unix-socket protocol and health/shutdown parsing adapter-specific. Preserve exact ownership checks and fail-closed cleanup, including descendant cleanup after the launcher leader exits.\n\nAdd reusable process fixtures and deterministic coverage for startup timeout, cancellation, output bounds, exit diagnostics, cleanup escalation, repeated close, spawn failure, and resource disposal. Update architecture, provider evaluation, contributor guidance, and generated API documentation.
This commit is contained in:
1 parent
a7621c2633
commit
70e1a0f532
82 files changed
+3400
-436
No files matched your search
@@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>spawnOwnedProviderProcess | rea-agents - v1.6.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 - v1.6.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/process_ProviderProcess.html">process/ProviderProcess</a></li>
|
||||
<li><a href="" aria-current="page">spawnOwnedProviderProcess</a></li></ul>
|
||||
<h1>Function spawnOwnedProviderProcess</h1></div>
|
||||
<section class="tsd-panel">
|
||||
<ul class="tsd-signatures">
|
||||
<li class="">
|
||||
<div class="tsd-signature tsd-anchor-link" id="spawnownedproviderprocess"><span class="tsd-kind-call-signature">spawnOwnedProviderProcess</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/process_ProviderProcess.OwnedProviderProcessSpawnOptions.html" class="tsd-signature-type tsd-kind-interface">OwnedProviderProcessSpawnOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/process_ProviderProcess.SpawnedOwnedProviderProcess.html" class="tsd-signature-type tsd-kind-interface">SpawnedOwnedProviderProcess</a><span class="tsd-signature-symbol">></span><a href="#spawnownedproviderprocess" 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>Spawn a provider in a dedicated POSIX process group with an ownership token.</p>
|
||||
<p>The caller remains responsible for persisting any ownership manifest and for
|
||||
selecting provider-specific command arguments or environment values.</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>: <a href="../interfaces/process_ProviderProcess.OwnedProviderProcessSpawnOptions.html" class="tsd-signature-type tsd-kind-interface">OwnedProviderProcessSpawnOptions</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/process_ProviderProcess.SpawnedOwnedProviderProcess.html" class="tsd-signature-type tsd-kind-interface">SpawnedOwnedProviderProcess</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/process/ProviderProcess.ts#L102">src/process/ProviderProcess.ts:102</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 - v1.6.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>
|
||||
Reference in new issue
Block a user