@howarewoo/pi-subagents 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +265 -94
- package/docs/advanced-policies.md +4 -2
- package/docs/delegation-contract.md +57 -28
- package/docs/images/subagent-hub.svg +1 -1
- package/docs/images/subagent-profiles.svg +1 -1
- package/docs/images/subagent-widget.svg +1 -1
- package/docs/releases.md +111 -23
- package/docs/verification.md +1 -1
- package/package.json +4 -4
- package/src/child-execution.ts +459 -0
- package/src/coordinator.ts +608 -664
- package/src/delegation-types.ts +111 -0
- package/src/hub.ts +38 -267
- package/src/pi-extended-subagents.ts +83 -189
- package/src/profile-viewer.ts +109 -38
- package/src/scheduling.ts +1 -1
- package/src/subagent-widget.ts +115 -0
- package/src/supported-host.ts +26 -0
- package/src/task-input.ts +3 -2
- package/src/task-presentation.ts +165 -0
- package/src/tool-schemas.ts +165 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1050" height="580" viewBox="0 0 1050 580" role="img" aria-labelledby="title desc"><title id="title">Subagent Profiles — native renderer illustration</title><desc id="desc">Production component render at 120 columns with synthetic bundled data and neutral palette, typeset as SVG. Not a terminal screenshot.</desc><rect width="100%" height="100%" rx="8" fill="#202020"/><text x="20" y="28" fill="#aaaaaa" font-family="Menlo, monospace" font-size="12">ILLUSTRATION · synthetic native-component output · not a screenshot</text><text x="20" y="62" xml:space="preserve" fill="#b4a2df" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ Subagent Profiles · resolved · read-only │</text><text x="20" y="84" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ > general │ general │</text><text x="20" y="106" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ scout │ Description │</text><text x="20" y="128" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ review │ General delegation with restricted parent capabilities │</text><text x="20" y="150" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ implementation │ Prompt │</text><text x="20" y="172" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Complete the assigned analysis and report the evidence and limitations. │</text><text x="20" y="194" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Tools ceiling: read, grep, find, ls, write, edit, bash │</text><text x="20" y="216" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Callable tools: unknown in command context; inspect admitted task tools. │</text><text x="20" y="238" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Skills (exact paths): none │</text><text x="20" y="260" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Inheritance: available parent skills and callable builtins; no parent │</text><text x="20" y="282" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ instructions/history. │</text><text x="20" y="304" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Reviewed leaf ceiling: none (writer lease; trusted code, not sandboxed) │</text><text x="20" y="326" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Spawn ceiling: scout, review │</text><text x="20" y="348" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Coordination: none │</text><text x="20" y="370" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Model default: selected parent model │</text><text x="20" y="392" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Models grant: no explicit override grant │</text><text x="20" y="414" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Prewalk: off │</text><text x="20" y="436" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ Admission also applies parent/ancestry, model availability, capacity and writer │</text><text x="20" y="458" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ checks. This viewer grants nothing. │</text><text x="20" y="480" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ │ │</text><text x="20" y="502" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ 1/4 · detail 1–18/18 │</text><text x="20" y="524" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ ↑↓ select · j/k scroll · PgUp/Dn · Home/End │</text><text x="20" y="546" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="1008" lengthAdjust="spacingAndGlyphs">│ escape: close · callable tools unknown here │</text></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1048" height="590" viewBox="0 0 1048 590" role="img" aria-labelledby="title desc"><title id="title">Subagent Profiles — renderer illustration</title><desc id="desc">Production profile viewer with bundled profiles and no inherited skills. Synthetic offline data; not a terminal screenshot.</desc><rect width="100%" height="100%" rx="8" fill="#181818"/><text x="20" y="28" fill="#aaaaaa" font-family="Menlo, monospace" font-size="12">ILLUSTRATION · Subagent Profiles · offline synthetic demo</text><rect x="20" y="48" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="64" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">╭</text><rect x="28.4" y="48" width="159.6" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="64" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="159.6" lengthAdjust="spacingAndGlyphs"> Subagent Profiles </text><rect x="188" y="48" width="840" height="22" fill="rgb(55,55,55)"/><text x="188" y="64" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="840" lengthAdjust="spacingAndGlyphs">───────────────────────────────────────────────────────────────────────────────────────────────────╮</text><rect x="20" y="70" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="86" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="70" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="86" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="70" width="75.60000000000001" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="86" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="75.60000000000001" lengthAdjust="spacingAndGlyphs">> general</text><rect x="112.4" y="70" width="159.6" height="22" fill="rgb(55,55,55)"/><text x="112.4" y="86" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="159.6" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="70" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="86" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="70" width="58.800000000000004" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="86" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="58.800000000000004" lengthAdjust="spacingAndGlyphs">general</text><rect x="356" y="70" width="663.6" height="22" fill="rgb(55,55,55)"/><text x="356" y="86" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="663.6" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="70" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="86" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="92" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="108" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="92" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="108" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="92" width="58.800000000000004" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="108" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="58.800000000000004" lengthAdjust="spacingAndGlyphs"> scout</text><rect x="95.60000000000001" y="92" width="176.4" height="22" fill="rgb(55,55,55)"/><text x="95.60000000000001" y="108" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="176.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="92" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="108" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="92" width="168" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="108" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="168" lengthAdjust="spacingAndGlyphs">resolved · read-only</text><rect x="465.20000000000005" y="92" width="554.4" height="22" fill="rgb(55,55,55)"/><text x="465.20000000000005" y="108" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="554.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="92" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="108" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="114" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="130" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="114" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="130" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="114" width="67.2" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="130" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="67.2" lengthAdjust="spacingAndGlyphs"> review</text><rect x="104" y="114" width="168" height="22" fill="rgb(55,55,55)"/><text x="104" y="130" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="168" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="114" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="130" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="114" width="92.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="130" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="92.4" lengthAdjust="spacingAndGlyphs">Description</text><rect x="389.6" y="114" width="630" height="22" fill="rgb(55,55,55)"/><text x="389.6" y="130" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="630" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="114" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="130" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="136" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="152" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="136" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="152" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="136" width="134.4" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="152" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="134.4" lengthAdjust="spacingAndGlyphs"> implementation</text><rect x="171.20000000000002" y="136" width="100.80000000000001" height="22" fill="rgb(55,55,55)"/><text x="171.20000000000002" y="152" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="100.80000000000001" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="136" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="152" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="136" width="453.6" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="152" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="453.6" lengthAdjust="spacingAndGlyphs">General delegation with restricted parent capabilities</text><rect x="750.8000000000001" y="136" width="268.8" height="22" fill="rgb(55,55,55)"/><text x="750.8000000000001" y="152" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="268.8" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="136" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="152" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="158" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="174" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="158" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="174" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="158" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="174" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="158" width="722.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="174" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="722.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="158" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="174" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="180" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="196" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="180" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="196" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="180" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="196" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="180" width="50.400000000000006" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="196" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="50.400000000000006" lengthAdjust="spacingAndGlyphs">Prompt</text><rect x="347.6" y="180" width="672" height="22" fill="rgb(55,55,55)"/><text x="347.6" y="196" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="672" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="180" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="196" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="202" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="218" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="202" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="218" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="202" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="218" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="202" width="596.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="218" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="596.4" lengthAdjust="spacingAndGlyphs">Complete the assigned analysis and report the evidence and limitations.</text><rect x="893.6" y="202" width="126" height="22" fill="rgb(55,55,55)"/><text x="893.6" y="218" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="126" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="202" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="218" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="224" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="240" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="224" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="240" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="224" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="240" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="224" width="722.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="240" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="722.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="224" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="240" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="246" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="262" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="246" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="262" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="246" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="262" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="246" width="176.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="262" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="176.4" lengthAdjust="spacingAndGlyphs">Tools and permissions</text><rect x="473.6" y="246" width="546" height="22" fill="rgb(55,55,55)"/><text x="473.6" y="262" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="546" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="246" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="262" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="268" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="284" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="268" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="284" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="268" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="284" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="268" width="453.6" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="284" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="453.6" lengthAdjust="spacingAndGlyphs">Tools ceiling: read, grep, find, ls, write, edit, bash</text><rect x="750.8000000000001" y="268" width="268.8" height="22" fill="rgb(55,55,55)"/><text x="750.8000000000001" y="284" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="268.8" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="268" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="284" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="290" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="306" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="290" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="306" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="290" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="306" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="290" width="604.8000000000001" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="306" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="604.8000000000001" lengthAdjust="spacingAndGlyphs">Callable tools: unknown in command context; inspect admitted task tools.</text><rect x="902" y="290" width="117.60000000000001" height="22" fill="rgb(55,55,55)"/><text x="902" y="306" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="117.60000000000001" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="290" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="306" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="312" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="328" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="312" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="328" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="312" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="328" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="312" width="579.6" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="328" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="579.6" lengthAdjust="spacingAndGlyphs">Inheritance: available parent skills and callable builtins; no parent</text><rect x="876.8000000000001" y="312" width="142.8" height="22" fill="rgb(55,55,55)"/><text x="876.8000000000001" y="328" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="142.8" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="312" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="328" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="334" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="350" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="334" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="350" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="334" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="350" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="334" width="176.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="350" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="176.4" lengthAdjust="spacingAndGlyphs">instructions/history.</text><rect x="473.6" y="334" width="546" height="22" fill="rgb(55,55,55)"/><text x="473.6" y="350" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="546" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="334" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="350" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="356" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="372" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="356" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="372" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="356" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="372" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="356" width="596.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="372" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="596.4" lengthAdjust="spacingAndGlyphs">Reviewed leaf ceiling: none (writer lease; trusted code, not sandboxed)</text><rect x="893.6" y="356" width="126" height="22" fill="rgb(55,55,55)"/><text x="893.6" y="372" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="126" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="356" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="372" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="378" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="394" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="378" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="394" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="378" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="394" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="378" width="235.20000000000002" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="394" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="235.20000000000002" lengthAdjust="spacingAndGlyphs">Spawn ceiling: scout, review</text><rect x="532.4" y="378" width="487.20000000000005" height="22" fill="rgb(55,55,55)"/><text x="532.4" y="394" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="487.20000000000005" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="378" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="394" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="400" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="416" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="400" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="416" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="400" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="416" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="400" width="151.20000000000002" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="416" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="151.20000000000002" lengthAdjust="spacingAndGlyphs">Coordination: none</text><rect x="448.40000000000003" y="400" width="571.2" height="22" fill="rgb(55,55,55)"/><text x="448.40000000000003" y="416" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="571.2" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="400" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="416" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="422" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="438" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="422" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="438" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="422" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="438" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="422" width="722.4" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="438" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="722.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="422" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="438" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="444" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="460" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="444" width="243.60000000000002" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="460" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="243.60000000000002" lengthAdjust="spacingAndGlyphs"> </text><rect x="272" y="444" width="25.200000000000003" height="22" fill="rgb(55,55,55)"/><text x="272" y="460" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs"> │ </text><rect x="297.2" y="444" width="168" height="22" fill="rgb(55,55,55)"/><text x="297.2" y="460" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="168" lengthAdjust="spacingAndGlyphs">1/4 · detail 1–15/25</text><rect x="465.20000000000005" y="444" width="554.4" height="22" fill="rgb(55,55,55)"/><text x="465.20000000000005" y="460" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="554.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="444" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="460" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="466" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="482" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">├</text><rect x="28.4" y="466" width="999.6" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="482" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="999.6" lengthAdjust="spacingAndGlyphs">──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤</text><rect x="20" y="488" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="504" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="488" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="504" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="488" width="361.2" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="504" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="361.2" lengthAdjust="spacingAndGlyphs">↑↓ select · j/k scroll · PgUp/Dn · Home/End</text><rect x="398" y="488" width="621.6" height="22" fill="rgb(55,55,55)"/><text x="398" y="504" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="621.6" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="488" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="504" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="510" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="526" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="28.4" y="510" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="526" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs"> </text><rect x="36.8" y="510" width="361.2" height="22" fill="rgb(55,55,55)"/><text x="36.8" y="526" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="361.2" lengthAdjust="spacingAndGlyphs">escape: close · callable tools unknown here</text><rect x="398" y="510" width="621.6" height="22" fill="rgb(55,55,55)"/><text x="398" y="526" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="621.6" lengthAdjust="spacingAndGlyphs"> </text><rect x="1019.6" y="510" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="1019.6" y="526" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">│</text><rect x="20" y="532" width="8.4" height="22" fill="rgb(55,55,55)"/><text x="20" y="548" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="8.4" lengthAdjust="spacingAndGlyphs">╰</text><rect x="28.4" y="532" width="999.6" height="22" fill="rgb(55,55,55)"/><text x="28.4" y="548" xml:space="preserve" fill="rgb(95,168,204)" font-family="Menlo, monospace" font-size="14" textLength="999.6" lengthAdjust="spacingAndGlyphs">──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="1048" height="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1048" height="172" viewBox="0 0 1048 172" role="img" aria-labelledby="title desc"><title id="title">Pinned Subagents widget — renderer illustration</title><desc id="desc">Production pinned widget with task counts and live activity. Synthetic offline fleet data; not a terminal screenshot.</desc><rect width="100%" height="100%" rx="8" fill="#181818"/><text x="20" y="28" fill="#aaaaaa" font-family="Menlo, monospace" font-size="12">ILLUSTRATION · Pinned Subagents widget · offline synthetic demo</text><text x="20" y="64" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="109.2" lengthAdjust="spacingAndGlyphs">● Subagents 4</text><text x="129.2" y="64" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="310.8" lengthAdjust="spacingAndGlyphs"> · 1 queued · 2 running · 1 cancelled</text><text x="20" y="86" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs">├─ </text><text x="45.2" y="86" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="16.8" lengthAdjust="spacingAndGlyphs">● </text><text x="62" y="86" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="50.400000000000006" lengthAdjust="spacingAndGlyphs">scout </text><text x="112.4" y="86" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="260.40000000000003" lengthAdjust="spacingAndGlyphs">Reader alpha: inspect input.txt</text><text x="372.8" y="86" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="210" lengthAdjust="spacingAndGlyphs"> · running · 1s · 1 tools</text><text x="20" y="108" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="134.4" lengthAdjust="spacingAndGlyphs">│ └ Tool: read</text><text x="20" y="130" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="25.200000000000003" lengthAdjust="spacingAndGlyphs">└─ </text><text x="45.2" y="130" xml:space="preserve" fill="rgb(167,152,215)" font-family="Menlo, monospace" font-size="14" textLength="16.8" lengthAdjust="spacingAndGlyphs">● </text><text x="62" y="130" xml:space="preserve" fill="#dddddd" font-family="Menlo, monospace" font-size="14" textLength="126" lengthAdjust="spacingAndGlyphs">implementation </text><text x="188" y="130" xml:space="preserve" fill="rgb(222,224,225)" font-family="Menlo, monospace" font-size="14" textLength="260.40000000000003" lengthAdjust="spacingAndGlyphs">Writer: create fleet-output.txt</text><text x="448.40000000000003" y="130" xml:space="preserve" fill="rgb(157,165,169)" font-family="Menlo, monospace" font-size="14" textLength="210" lengthAdjust="spacingAndGlyphs"> · running · 1s · 1 tools</text></svg>
|
package/docs/releases.md
CHANGED
|
@@ -15,10 +15,18 @@ The repository workflows do not publish on ordinary main-branch pushes.
|
|
|
15
15
|
user-facing contracts. A small implementation change can still require a breaking release.
|
|
16
16
|
- This pipeline publishes stable versions to npm's `latest` channel. Prerelease versions
|
|
17
17
|
are rejected until a separate channel policy is added.
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
- Delegated execution requires **stable Pi 1.5.2 or newer**, including newer stable patch,
|
|
19
|
+
minor and major versions. Standard build metadata has equal precedence. **Tested host:
|
|
20
|
+
Pi 1.5.2**; allowing future stable versions is not a tested compatibility guarantee.
|
|
21
|
+
Below-minimum, prerelease, malformed and unknown hosts fail closed at execution boundaries, not extension registration. Root status,
|
|
22
|
+
stop/cleanup and diagnostics remain available if the host can load the module; arbitrary
|
|
23
|
+
ancient SDK module-load compatibility is not promised. Wildcard host peer dependencies
|
|
24
|
+
remain required by Pi's packaging format, not an execution compatibility promise.
|
|
25
|
+
- Version 0.2.0 introduces this breaking host restriction during 0.x. Migration from 0.1.x:
|
|
26
|
+
drain active tasks, install stable Pi 1.5.2 or newer, update the extension to 0.2.0 and restart Pi.
|
|
27
|
+
Keep host development dependencies pinned and
|
|
28
|
+
verify SDK/CLI lifecycle, permission, cancellation/drain and native rendering behavior
|
|
29
|
+
before changing the minimum or claiming another tested Pi version.
|
|
22
30
|
- Never move a release tag, reuse a published version or overwrite retained user artifacts.
|
|
23
31
|
|
|
24
32
|
## One-time setup
|
|
@@ -29,7 +37,8 @@ by the local setup scripts.
|
|
|
29
37
|
1. Confirm your npm account can publish `@howarewoo/pi-subagents` in the `@howarewoo` scope.
|
|
30
38
|
The old unscoped `pi-extended-subagents@0.1.0` is already published; this is a new npm package.
|
|
31
39
|
2. Enable GitHub Actions for this repository. Create a GitHub environment named `npm`.
|
|
32
|
-
|
|
40
|
+
Require human approval by `howarewoo`, allow self-approval, and restrict deployment refs
|
|
41
|
+
to release tags (`v*`). Do not run a release until this protection is configured.
|
|
33
42
|
Protect `main` with the two CI matrix checks and restrict creation/deletion of `v*` tags
|
|
34
43
|
to release maintainers using repository rulesets.
|
|
35
44
|
3. Bootstrap the package with the first manual npm publish below. A trusted publisher is
|
|
@@ -38,12 +47,12 @@ by the local setup scripts.
|
|
|
38
47
|
4. In **`@howarewoo/pi-subagents` → Settings → Trusted publishing**, add GitHub Actions with:
|
|
39
48
|
The old package's trusted publisher does not carry over to the new scoped package.
|
|
40
49
|
|
|
41
|
-
| Field | Value
|
|
42
|
-
| -------------------- |
|
|
43
|
-
| Organization or user | `howarewoo`
|
|
44
|
-
| Repository | `pi-
|
|
45
|
-
| Workflow filename | `release.yml`
|
|
46
|
-
| Environment name | `npm`
|
|
50
|
+
| Field | Value |
|
|
51
|
+
| -------------------- | -------------- |
|
|
52
|
+
| Organization or user | `howarewoo` |
|
|
53
|
+
| Repository | `pi-subagents` |
|
|
54
|
+
| Workflow filename | `release.yml` |
|
|
55
|
+
| Environment name | `npm` |
|
|
47
56
|
|
|
48
57
|
Permit direct `npm publish` if npm presents an allowed-actions selector. The workflow uses
|
|
49
58
|
GitHub-hosted runners and `id-token: write`; no `NPM_TOKEN` secret is needed. Use npm
|
|
@@ -58,19 +67,70 @@ See [npm's trusted publishing documentation](https://docs.npmjs.com/trusted-publ
|
|
|
58
67
|
current account requirements and troubleshooting. Do not use `npm whoami` to test OIDC: it does
|
|
59
68
|
not validate trusted publishing permissions.
|
|
60
69
|
|
|
70
|
+
The environment, required reviewer/tag restrictions, and repository rulesets are owner
|
|
71
|
+
prerequisites, not settings created by this change. Read-only inspection found no configured
|
|
72
|
+
environments or rulesets; npm trusted-publisher account configuration remains unverified.
|
|
73
|
+
Do not treat the workflow's `environment: npm` declaration as an approval rule: GitHub can
|
|
74
|
+
create an unprotected environment when a job references a new name. Confirm these settings
|
|
75
|
+
before any tag push or manual workflow dispatch.
|
|
76
|
+
|
|
77
|
+
## Repository rename cutover
|
|
78
|
+
|
|
79
|
+
These file changes prepare the rename from `howarewoo/pi-extended-subagents` to
|
|
80
|
+
`howarewoo/pi-subagents`; they do not rename the GitHub repository or configure npm.
|
|
81
|
+
The npm package remains `@howarewoo/pi-subagents`, and the production entrypoint remains
|
|
82
|
+
`src/pi-extended-subagents.ts`. Existing npm installations need no migration.
|
|
83
|
+
|
|
84
|
+
A repository owner must coordinate the following before the next release:
|
|
85
|
+
|
|
86
|
+
1. Rename the GitHub repository to `pi-subagents` and ensure the rename changes are on
|
|
87
|
+
`main`. Do not push release tags or dispatch Release between those steps: the workflow
|
|
88
|
+
guard accepts only `howarewoo/pi-subagents`, and `package.json` must identify the actual
|
|
89
|
+
repository for npm publishing. Do not dispatch old release tags whose workflow still
|
|
90
|
+
checks the previous repository name.
|
|
91
|
+
2. An npm package owner must inspect **`@howarewoo/pi-subagents` → Settings → Trusted
|
|
92
|
+
publishing** and verify the connection for `howarewoo/pi-subagents`, `release.yml` and
|
|
93
|
+
environment `npm`. If the connection needs changing, follow npm's current procedure
|
|
94
|
+
to replace it and its validation/expiry rules. Do not assume GitHub URL redirects prove
|
|
95
|
+
OIDC authorization; the account binding remains unverified until checked and exercised
|
|
96
|
+
by an intentionally authorized release. Retain the protected GitHub `npm` environment
|
|
97
|
+
and release-tag restrictions.
|
|
98
|
+
3. Update local clones after the rename:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
git remote set-url origin https://github.com/howarewoo/pi-subagents.git
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
GitHub redirects the previous web and Git URLs, but do not reuse the old repository
|
|
105
|
+
name: doing so removes those redirects. For Pi Git installations, use the source URL
|
|
106
|
+
actually registered when updating or removing it. If switching to the new URL, let tasks
|
|
107
|
+
drain, remove the old registration, install the new source at the desired version, and
|
|
108
|
+
restart Pi; never load both registrations. Pi's old-source update path is not verified
|
|
109
|
+
by local package checks.
|
|
110
|
+
|
|
111
|
+
4. For the next deliberate release, use a new version and tag containing these changes.
|
|
112
|
+
Run the normal release gates and verify registry integrity, provenance and the GitHub
|
|
113
|
+
release afterward. Do not republish an existing version just to update its repository
|
|
114
|
+
metadata; previously published versions remain unchanged.
|
|
115
|
+
|
|
116
|
+
See [GitHub's rename documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/renaming-a-repository)
|
|
117
|
+
and [npm's trusted publishing documentation](https://docs.npmjs.com/trusted-publishers/).
|
|
118
|
+
Preparing or merging this PR does not establish the external rename, account setup or a
|
|
119
|
+
successful publish.
|
|
120
|
+
|
|
61
121
|
## Prepare each release
|
|
62
122
|
|
|
63
123
|
1. Start from current `main`, with no unrelated local changes. Review the changes being released.
|
|
64
124
|
2. On a release-preparation branch, update the manifest and lockfile without creating a tag:
|
|
65
125
|
|
|
66
126
|
```sh
|
|
67
|
-
npm version 0.
|
|
127
|
+
npm version 0.2.0 --no-git-tag-version
|
|
68
128
|
```
|
|
69
129
|
|
|
70
|
-
Choose the actual next version; `0.
|
|
71
|
-
Preserve
|
|
130
|
+
Choose the actual next version; `0.2.0` includes the breaking minimum-host restriction.
|
|
131
|
+
Preserve existing release tags and historical changelog entries.
|
|
72
132
|
|
|
73
|
-
3. Add a nonempty `## [0.
|
|
133
|
+
3. Add a nonempty `## [0.2.0]` entry to the root changelog, using the selected version. Include
|
|
74
134
|
changes, migrations, Pi compatibility, and relevant permission/lifecycle changes. Do not
|
|
75
135
|
promise verification that has not run. Keep the README's installation and migration examples
|
|
76
136
|
current.
|
|
@@ -95,6 +155,9 @@ CI runs all checks and the package smoke test on Node 22.19.0 and Node 24. It us
|
|
|
95
155
|
|
|
96
156
|
## First scoped npm publish only
|
|
97
157
|
|
|
158
|
+
Historical bootstrap for 0.1.1, which is already published. Do not repeat it for 0.2.0;
|
|
159
|
+
use the tag-triggered workflow after verifying the owner prerequisites above.
|
|
160
|
+
|
|
98
161
|
After the scoped-package release PR is merged, check out its exact clean commit and run the local gates
|
|
99
162
|
above. Use an npm account with publishing rights and two-factor authentication:
|
|
100
163
|
|
|
@@ -103,7 +166,7 @@ npm login
|
|
|
103
166
|
release_dir="$(mktemp -d)"
|
|
104
167
|
npm pack --pack-destination "$release_dir"
|
|
105
168
|
npm run test:package -- "$release_dir/howarewoo-pi-subagents-0.1.1.tgz"
|
|
106
|
-
npm publish "$release_dir/howarewoo-pi-subagents-0.1.1.tgz" --access public
|
|
169
|
+
npm publish "$release_dir/howarewoo-pi-subagents-0.1.1.tgz" --access public --ignore-scripts
|
|
107
170
|
```
|
|
108
171
|
|
|
109
172
|
Inspect the result with `npm view @howarewoo/pi-subagents@0.1.1 version dist.integrity`.
|
|
@@ -117,15 +180,40 @@ registry SHA-512 integrity matches the newly verified tarball byte for byte.
|
|
|
117
180
|
From the exact merged release commit (replace the example version as needed):
|
|
118
181
|
|
|
119
182
|
```sh
|
|
120
|
-
git tag -a v0.
|
|
121
|
-
git push origin v0.
|
|
183
|
+
git tag -a v0.2.0 -m "Release v0.2.0"
|
|
184
|
+
git push origin v0.2.0
|
|
122
185
|
```
|
|
123
186
|
|
|
124
|
-
`release.yml`
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
187
|
+
`release.yml` accepts tag pushes and manual dispatch on an existing `v*` tag, not branch
|
|
188
|
+
dispatch. Its three GitHub-hosted jobs run in order:
|
|
189
|
+
|
|
190
|
+
1. **validation** has only `contents: read`, no OIDC permission or publishing environment.
|
|
191
|
+
It checks main ancestry, tag/manifest/lockfile versions and changelog, installs dependencies
|
|
192
|
+
with `npm ci --ignore-scripts`, runs the existing checks, packs once, and smoke-tests that
|
|
193
|
+
exact tarball. It uploads package/metadata and notes as separate immutable artifacts.
|
|
194
|
+
2. **publish** depends on validation and requires the protected `npm` environment approval.
|
|
195
|
+
Only this job has `id-token: write`; it has `contents: read`, never `contents: write`.
|
|
196
|
+
It selects the package artifact by validation's exact artifact ID from the current run.
|
|
197
|
+
Before any registry request, the reviewed checked-out, dependency-free publish helper
|
|
198
|
+
requires regular metadata/tarball files, checks the fixed package name, stable version,
|
|
199
|
+
tag, commit and fixed tarball filename, and recomputes SHA-512 against validation's job
|
|
200
|
+
output. A missing or mismatched download is fatal; download-action digest warnings are
|
|
201
|
+
not the publication gate. It neither installs dependencies nor extracts/executes archive
|
|
202
|
+
content, runs tests, or repacks. `npm publish --ignore-scripts` suppresses lifecycle scripts.
|
|
203
|
+
3. **github-release** depends on npm success. It has `contents: write` but no OIDC permission,
|
|
204
|
+
downloads only the selected notes artifact, and creates the GitHub release without checking
|
|
205
|
+
out or executing package code. An existing release remains unchanged.
|
|
206
|
+
|
|
207
|
+
Releases serialize; a later tag does not cancel an active publish. Artifact retention is seven
|
|
208
|
+
days. If artifacts expire, rerun validation and all downstream jobs on the same immutable tag
|
|
209
|
+
rather than substituting an artifact from another run. No executable helper comes from the
|
|
210
|
+
transferred artifact. Separation limits credential exposure during tests/builds; it does not
|
|
211
|
+
prove that a compromised validation job produced trustworthy package bytes. Review the release
|
|
212
|
+
commit and approval evidence before authorizing publication.
|
|
213
|
+
|
|
214
|
+
The artifact behavior follows [GitHub's artifact documentation](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts).
|
|
215
|
+
OIDC still requires the actual npm account setup described above; documentation and job
|
|
216
|
+
permissions alone do not prove that account binding exists.
|
|
129
217
|
|
|
130
218
|
Verify both the npm version/integrity and the GitHub release before announcing it. Test a clean
|
|
131
219
|
Pi install, then `/subagent-profiles`, and confirm the documented update path. No tag, registry publish,
|
package/docs/verification.md
CHANGED
|
@@ -269,7 +269,7 @@ Observed local acceptance:
|
|
|
269
269
|
- Multiple implementation children serialize writer leases. Actual parent dispatcher permissions deny writes with no created files; separate real JSONL transcripts retain denials. Existing parent sibling preflight mutation/blocked-tool cleanup protections remain green.
|
|
270
270
|
- Explicit operator grant enables actual SDK child-local **model-only** `delegate_task` → grandchild. Real parent read permission hooks still run; real parentId/depth, separate transcripts, direct dispatch counts and no duplicate parent tool usage are asserted. Default recursive spawn remains denied. Operator/project/request cannot mint or restore removed roles; target/ancestor tools and skills remain subset-only.
|
|
271
271
|
- Capacity/depth/role/ancestor-grant/spawn/writer-under-writer adversarial patterns reject before descendant setup. Nested parents retain permits; insufficient immediate nested capacity rejects instead of borrowing/overcommitting. Request depth/spawn narrowing is enforced.
|
|
272
|
-
- Admission
|
|
272
|
+
- Admission deadlines produce a drained retained-session pause; direct registry dispatch and executable tool hard limits produce one cancellation/disposal with stable reasons. A deliberately blocked **real parent tool permission hook** proves the active writer/permit is retained until drain, and the next writer cannot start early. A blocked public auth preflight proves deadline pausing cannot pretend to stop unabortable setup or release its capacity early; it never dispatches after setup returns.
|
|
273
273
|
- Subtree stop drains actual grandchild before ancestor. Reload cancels queued/active batch work with no queued transcript and no late old-runtime final message. Shutdown at queued admission and atomic queue-set cancellation protect reentrant observer/dequeue races.
|
|
274
274
|
- Existing core behaviors remain meaningful: SDK streaming/steering/prompt acceptance/transcript reopen, complete deny-ambient loader, selected model/public auth forwarding, permission enforcement, generation-safe controls, manual-shell exclusion, actual CLI exit lifecycle, native widget/Hub surface, and reload drain. The former second-writer rejection test now asserts queued serialization; no regression is hidden by preserving the obsolete rejection expectation.
|
|
275
275
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@howarewoo/pi-subagents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Pi-native single-assignment delegation with explicit profiles and parent-owned SDK children",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package"
|
|
7
7
|
],
|
|
8
|
-
"homepage": "https://github.com/howarewoo/pi-
|
|
8
|
+
"homepage": "https://github.com/howarewoo/pi-subagents#readme",
|
|
9
9
|
"bugs": {
|
|
10
|
-
"url": "https://github.com/howarewoo/pi-
|
|
10
|
+
"url": "https://github.com/howarewoo/pi-subagents/issues"
|
|
11
11
|
},
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "git+https://github.com/howarewoo/pi-
|
|
15
|
+
"url": "git+https://github.com/howarewoo/pi-subagents.git"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"src",
|