@symerian/symi 3.5.19 → 3.5.21

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.
Files changed (261) hide show
  1. package/dist/{agent-D0Z4r5fr.js → agent-DgVWcnlD.js} +1 -1
  2. package/dist/{agent-DCDT-MPE.js → agent-NT0EKnK_.js} +18 -18
  3. package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
  4. package/dist/{agents-CdkBeP0d.js → agents-Dlcpc1K3.js} +3 -3
  5. package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
  6. package/dist/{audit-B7deV4Lp.js → audit-CPloCzEZ.js} +2 -2
  7. package/dist/{audit-BCStg-Hv.js → audit-CXIXYDRx.js} +20 -20
  8. package/dist/{auth-choice-BIGcxSzP.js → auth-choice--DymOp5O.js} +2 -2
  9. package/dist/{auth-choice-B3DU-aBr.js → auth-choice-BtXIQPTU.js} +11 -11
  10. package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
  11. package/dist/{auth-token-Cr28IDKY.js → auth-token-fgnCQEHT.js} +3 -3
  12. package/dist/{banner-ChNdzPjD.js → banner-CY_9VW7E.js} +1 -1
  13. package/dist/{browser-cli-C9xaKW8l.js → browser-cli-C5VVk6C9.js} +3 -3
  14. package/dist/{browser-cli-BTg8SVs-.js → browser-cli-DOTM7UBC.js} +9 -9
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +4 -4
  17. package/dist/bundled/session-memory/handler.js +4 -4
  18. package/dist/{call-BccaLPi8.js → call-Bpjj5p7I.js} +9 -9
  19. package/dist/{call-DZg43vv8.js → call-C2urR5Fj.js} +1 -1
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-CUptVX8c.js → channel-options-XRJiHUm5.js} +1 -1
  22. package/dist/{channel-options-LLmAnD_L.js → channel-options-rFgJaKzJ.js} +1 -1
  23. package/dist/{channels-cli-xoromnio.js → channels-cli-CQ4M05oy.js} +57 -57
  24. package/dist/{channels-cli-B0OQvVUL.js → channels-cli-QMHCRAb5.js} +9 -9
  25. package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
  26. package/dist/{chrome-CmQwGAuL.js → chrome-3jl2ulOE.js} +4 -4
  27. package/dist/{chrome-DNssqQJs.js → chrome-OTJg3QKn.js} +4 -4
  28. package/dist/{cli-C7v-sID8.js → cli-B-uoiYP2.js} +45 -45
  29. package/dist/{cli-CMNR7ULk.js → cli-BafqEuaj.js} +6 -6
  30. package/dist/{client-k0MT6NBw.js → client-CTrfpKT3.js} +7 -2
  31. package/dist/{client-DCxeV1bw.js → client-yVTJ5jx5.js} +6 -1
  32. package/dist/{command-registry-CXcvXjUR.js → command-registry-CLm8TAH3.js} +11 -11
  33. package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
  34. package/dist/{completion-cli-DJ1YCeSg.js → completion-cli-Cn_81QBb.js} +12 -12
  35. package/dist/{completion-cli-B1Fg6Lmg.js → completion-cli-DOBXkVwG.js} +2 -2
  36. package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
  37. package/dist/{config-cli-D5DlWt6T.js → config-cli-B1cPkJ4p.js} +4 -4
  38. package/dist/{config-cli-CQ1FAvY_.js → config-cli-BgHYqFH1.js} +1 -1
  39. package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
  40. package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
  41. package/dist/{configure-bhJB2Dti.js → configure-C7zmSgvC.js} +14 -14
  42. package/dist/{configure-DG1lf0Ld.js → configure-DmzM0S7L.js} +6 -6
  43. package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
  44. package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
  45. package/dist/control-ui/css/style.css +478 -80
  46. package/dist/control-ui/index.html +54 -127
  47. package/dist/control-ui/js/render.js +11 -227
  48. package/dist/control-ui/js/scheduling.js +85 -224
  49. package/dist/control-ui/js/subagents.js +78 -394
  50. package/dist/control-ui/js/symframe-awaiting.js +301 -0
  51. package/dist/control-ui/js/symframe-pin-store.js +104 -0
  52. package/dist/control-ui/js/symframe-substrate.js +395 -0
  53. package/dist/control-ui/js/symframe.js +244 -6
  54. package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
  55. package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
  56. package/dist/{cron-cli-8RaBr1CM.js → cron-cli-BNBs3zue.js} +3 -3
  57. package/dist/{cron-cli-fW3wtftG.js → cron-cli-otPeKxmi.js} +7 -7
  58. package/dist/{daemon-cli-Y6clFgva.js → daemon-cli-DDqeG2nd.js} +2 -2
  59. package/dist/{daemon-cli-0EiZTQ2A.js → daemon-cli-qDdMg615.js} +11 -11
  60. package/dist/daemon-cli.js +6 -1
  61. package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
  62. package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
  63. package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
  64. package/dist/{deliver-q23ar_Pm.js → deliver-f3cIWxXT.js} +4 -4
  65. package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
  66. package/dist/{devices-cli-C2gQTsB0.js → devices-cli-BJ3rVWOw.js} +2 -2
  67. package/dist/{devices-cli-DfiSkZ7k.js → devices-cli-DDPwF2Nx.js} +6 -6
  68. package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
  69. package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
  70. package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
  71. package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
  72. package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
  73. package/dist/{doctor-completion-CfF0J8fs.js → doctor-completion-CL7MyXlo.js} +2 -2
  74. package/dist/{doctor-completion-ScxFfN93.js → doctor-completion-k0HiL05o.js} +1 -1
  75. package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
  76. package/dist/entry.js +1 -1
  77. package/dist/{exec-approvals-cli-Cl-vWA1q.js → exec-approvals-cli-Cau1vPQI.js} +4 -4
  78. package/dist/{exec-approvals-cli-BaKWIf56.js → exec-approvals-cli-DsBoQu5H.js} +13 -13
  79. package/dist/extensionAPI.js +4 -4
  80. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  81. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  82. package/dist/{gateway-cli-kq5EWlnF.js → gateway-cli-DG_2YZ8B.js} +98 -98
  83. package/dist/{gateway-cli-CK-5nguV.js → gateway-cli-DgmGygc6.js} +16 -16
  84. package/dist/{gateway-rpc-Bzg_TTKP.js → gateway-rpc-Kv0-8W2E.js} +1 -1
  85. package/dist/{gateway-rpc-D12UaJS5.js → gateway-rpc-gaoD882s.js} +1 -1
  86. package/dist/{glass-ui-ws-B6p0iPsO.js → glass-ui-ws-Bof7krDJ.js} +67 -67
  87. package/dist/{glass-ui-ws-CVr0_1gT.js → glass-ui-ws-Dl45d7eU.js} +13 -13
  88. package/dist/{health-CPU9rQGj.js → health-CMbUI4aN.js} +4 -4
  89. package/dist/{health-CJb2CYtg.js → health-znS85U-F.js} +1 -1
  90. package/dist/{hooks-cli-DbgVZaP4.js → hooks-cli-Cb9BzCOY.js} +7 -7
  91. package/dist/{hooks-cli-13HCu5Xs.js → hooks-cli-Cgjor7F-.js} +59 -59
  92. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  93. package/dist/index.js +52 -52
  94. package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
  95. package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
  96. package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
  97. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  98. package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.js} +5 -5
  99. package/dist/llm-slug-generator.js +4 -4
  100. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  101. package/dist/{logs-cli-R16VTptK.js → logs-cli-Kr145PO_.js} +7 -7
  102. package/dist/{logs-cli-CQeK5fn7.js → logs-cli-LiAjkog2.js} +3 -3
  103. package/dist/{manager-CxFs8Z_F.js → manager-CceVgXHV.js} +1 -1
  104. package/dist/{manager-B2SWSuad.js → manager-Cv4xI8sP.js} +1 -1
  105. package/dist/{manager-CHLdCC6u.js → manager-DG6PODgu.js} +15 -15
  106. package/dist/{manager-BhEbaYDa.js → manager-V4UCf0Av.js} +1 -1
  107. package/dist/{memory-DFpqcIst.js → memory-A2D5e8dL.js} +2 -2
  108. package/dist/{memory-DavRjdTi.js → memory-BFnx3v3_.js} +5 -5
  109. package/dist/{memory-cli-DZnq3S6s.js → memory-cli-1zjVJITN.js} +2 -2
  110. package/dist/{memory-cli-B-Cp1Sb1.js → memory-cli-CHNghdrm.js} +12 -12
  111. package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
  112. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  113. package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
  114. package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
  115. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  116. package/dist/{models-Cht7Mzvs.js → models-BYev6YAG.js} +3 -3
  117. package/dist/{models-cli-B_motPDX.js → models-cli-BbK8HMKa.js} +55 -55
  118. package/dist/{models-cli-DXswzgUR.js → models-cli-Fa5r1QYP.js} +9 -9
  119. package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
  120. package/dist/{node-cli-D-gsjRXY.js → node-cli-BPnBosC4.js} +27 -27
  121. package/dist/{node-cli-VmKhIXuP.js → node-cli-Cv7x1gGu.js} +1 -1
  122. package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
  123. package/dist/{nodes-cli-BMvxQGCp.js → nodes-cli-CN_m6PO5.js} +10 -10
  124. package/dist/{nodes-cli-D199d74o.js → nodes-cli-DaHOBbd4.js} +3 -3
  125. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  126. package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
  127. package/dist/{onboard-DFJcbABp.js → onboard-B2IcTMv-.js} +15 -15
  128. package/dist/{onboard-CdRA8BRG.js → onboard-D-m6WTZl.js} +3 -3
  129. package/dist/{onboard-channels-fadyQGBK.js → onboard-channels-Z-Jkrk5-.js} +1 -1
  130. package/dist/{onboard-channels-Ca7ZFQ2Y.js → onboard-channels-wfGO5Zlh.js} +4 -4
  131. package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
  132. package/dist/{onboard-helpers-CQBpac8h.js → onboard-helpers-BKejzolA.js} +8 -8
  133. package/dist/{onboard-helpers-BcLPSb5N.js → onboard-helpers-Dhr98nj8.js} +1 -1
  134. package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
  135. package/dist/{onboard-remote-Bo3tpC9N.js → onboard-remote-DZdMxd1Q.js} +1 -1
  136. package/dist/{onboard-remote-BWK5Ths4.js → onboard-remote-y3ZmP90U.js} +1 -1
  137. package/dist/{onboard-skills-BLl8HPJO.js → onboard-skills-2SUv-W7i.js} +1 -1
  138. package/dist/{onboard-skills-DvacccqZ.js → onboard-skills-BFhHfrt9.js} +3 -3
  139. package/dist/{onboarding-ojb2rFkA.js → onboarding-BckHLQMV.js} +7 -7
  140. package/dist/{onboarding-BywueA1d.js → onboarding-DqlPV372.js} +12 -12
  141. package/dist/{onboarding.finalize-DdxBQpUU.js → onboarding.finalize-Bwjv3jew.js} +31 -31
  142. package/dist/{onboarding.finalize-DHvlZi9G.js → onboarding.finalize-CbH_ShIW.js} +9 -9
  143. package/dist/{onboarding.gateway-config-DPBNWNV6.js → onboarding.gateway-config-CiRo9EMt.js} +8 -8
  144. package/dist/{onboarding.gateway-config-ZK9517uR.js → onboarding.gateway-config-sNSeEykB.js} +3 -3
  145. package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
  146. package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.js} +5 -5
  147. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  148. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  149. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  150. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  151. package/dist/{pi-embedded-DJE9TMwq.js → pi-embedded-B9rtlNMc.js} +32 -16
  152. package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
  153. package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
  154. package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
  155. package/dist/{plugin-registry-tG7NXc3Y.js → plugin-registry-B43UosQh.js} +3 -3
  156. package/dist/{plugin-registry-Tlmjr-LX.js → plugin-registry-CS4WgHbu.js} +1 -1
  157. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -1
  158. package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +18 -6
  159. package/dist/{plugins-cli-CRKD8aho.js → plugins-cli-BV2wbjfI.js} +54 -54
  160. package/dist/{plugins-cli-Cm0G_-Y5.js → plugins-cli-BY42hyHP.js} +7 -7
  161. package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
  162. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  163. package/dist/{program-DEmAlwmD.js → program-P9F1DxBa.js} +12 -12
  164. package/dist/{program-context-DRCRbDpu.js → program-context-BmXxHUKe.js} +40 -40
  165. package/dist/{prompt-select-styled-pomsR-zf.js → prompt-select-styled-B2ah467m.js} +7 -7
  166. package/dist/{prompt-select-styled-B41Tx9aC.js → prompt-select-styled-BlQZX6pK.js} +38 -38
  167. package/dist/{provider-auth-helpers-rKWs_r7a.js → provider-auth-helpers-Bgb_Bfp9.js} +1 -1
  168. package/dist/{provider-auth-helpers-CdQwOam7.js → provider-auth-helpers-WLwb6tL4.js} +6 -6
  169. package/dist/{push-apns-eCM0qmrY.js → push-apns-CBGvXev_.js} +4 -4
  170. package/dist/{push-apns-CZPUHftn.js → push-apns-DnSCjFu7.js} +1 -1
  171. package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
  172. package/dist/{pw-ai-v__CyAlM.js → pw-ai-DOAsQ5NX.js} +1 -1
  173. package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
  174. package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
  175. package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
  176. package/dist/{register.agent-BQPvYYdn.js → register.agent-BuEcmVg0.js} +12 -12
  177. package/dist/{register.agent-N1hoqMFR.js → register.agent-CXdTiqyP.js} +67 -67
  178. package/dist/{register.configure-BHHZ44xB.js → register.configure-DVcn-gCO.js} +70 -70
  179. package/dist/{register.configure-BAc3P4Z-.js → register.configure-YDKJ-KQg.js} +14 -14
  180. package/dist/{register.maintenance-lX0a3Hzl.js → register.maintenance-BiGvpEj-.js} +13 -13
  181. package/dist/{register.maintenance-DDgy5Iyy.js → register.maintenance-cpspl8D6.js} +67 -67
  182. package/dist/{register.message-Br-IH_0z.js → register.message-BIuLbESM.js} +7 -7
  183. package/dist/{register.message-B4lDhHpE.js → register.message-BjcYy5UG.js} +47 -47
  184. package/dist/{register.onboard-B-GoYJIc.js → register.onboard-C4vIASed.js} +6 -6
  185. package/dist/{register.onboard-Bv0s2_KV.js → register.onboard-D4RN92s2.js} +25 -25
  186. package/dist/{register.setup-DQ6KLkAI.js → register.setup-BvoXF0xl.js} +28 -28
  187. package/dist/{register.setup-4lNdC98i.js → register.setup-D-Jt2e1d.js} +6 -6
  188. package/dist/{register.status-health-sessions-Cg7bK5K2.js → register.status-health-sessions-BY9hMD1s.js} +8 -8
  189. package/dist/{register.status-health-sessions-ByGn71_M.js → register.status-health-sessions-DjDvCXBn.js} +41 -41
  190. package/dist/{register.subclis-FMlcLBX0.js → register.subclis-Cibmeapc.js} +20 -20
  191. package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
  192. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  193. package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
  194. package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
  195. package/dist/{rpc-Dk1Az_d8.js → rpc-BnAKPQDB.js} +1 -1
  196. package/dist/{rpc-JAmDaTYt.js → rpc-CwxSZZOx.js} +1 -1
  197. package/dist/{run-main-DSyeVDsT.js → run-main-BhEQjKtM.js} +20 -20
  198. package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
  199. package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
  200. package/dist/{security-cli-DmgGLP83.js → security-cli-CS-ZT1LE.js} +3 -3
  201. package/dist/{security-cli-D47LQbpf.js → security-cli-DJd7Fcdy.js} +29 -29
  202. package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
  203. package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
  204. package/dist/{server-methods-DGBBt49x.js → server-methods-CWxr5b-w.js} +19 -13
  205. package/dist/{server-methods-BkHB2MOW.js → server-methods-DfVfzYqq.js} +68 -62
  206. package/dist/{server-node-events-C186LRm0.js → server-node-events-B0yC6hi1.js} +48 -48
  207. package/dist/{server-node-events-D-Akk3uq.js → server-node-events-ClDEcUTJ.js} +8 -8
  208. package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
  209. package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
  210. package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
  211. package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
  212. package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
  213. package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
  214. package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
  215. package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
  216. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  217. package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
  218. package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
  219. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  220. package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
  221. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  222. package/dist/{status-CFgCSaDq.js → status-BWxLtb3D.js} +23 -23
  223. package/dist/{status-poPDyC8O.js → status-Doq8T1zj.js} +3 -3
  224. package/dist/{status-Bahhq7OQ.js → status-K1k4g3Ai.js} +1 -1
  225. package/dist/{status-D9LC5P_Y.js → status-ojZB_Lrf.js} +5 -5
  226. package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
  227. package/dist/{subagent-registry-V2o45tIn.js → subagent-registry-BOt7g9hn.js} +21 -10
  228. package/dist/{symframe-cli-bxdpivve.js → symframe-cli-CrUtJw_7.js} +31 -7
  229. package/dist/{symframe-cli-ppdMo15M.js → symframe-cli-D1CtN3pf.js} +37 -13
  230. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  231. package/dist/{synthesis-B2EyHFXy.js → synthesis-BIQLrbys.js} +6 -6
  232. package/dist/{synthesis-BlJyO1E_.js → synthesis-Bc2QkGvt.js} +4 -4
  233. package/dist/{synthesis-CPSq83PP.js → synthesis-VZNnlUTf.js} +45 -45
  234. package/dist/{synthesis-C2WbvLOI.js → synthesis-yl24Ovw4.js} +4 -4
  235. package/dist/{system-cli-nPyjUPBH.js → system-cli-CvN-Wq9U.js} +3 -3
  236. package/dist/{system-cli-BroqLjZ6.js → system-cli-r7WJj0Xh.js} +7 -7
  237. package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
  238. package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
  239. package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
  240. package/dist/{tui-Bp9k5skv.js → tui-BxgdImL_.js} +2 -2
  241. package/dist/{tui-DzROrE20.js → tui-J7Jxp-FF.js} +7 -7
  242. package/dist/{tui-cli-BHBF8O-3.js → tui-cli-DR48dU_C.js} +19 -19
  243. package/dist/{tui-cli-Dv4hBFdc.js → tui-cli-DqvgN5ng.js} +3 -3
  244. package/dist/{unified-runner-CIQIkbvi.js → unified-runner-BV5TdNFv.js} +32 -16
  245. package/dist/{unified-runner-CduaBH_0.js → unified-runner-DXjH-prv.js} +117 -106
  246. package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
  247. package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
  248. package/dist/{update-cli-WcLxjBiY.js → update-cli-CKpjWtlv.js} +77 -77
  249. package/dist/{update-cli-BKnHBe8a.js → update-cli-Dn6QQZLd.js} +14 -14
  250. package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
  251. package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
  252. package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
  253. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  254. package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.js} +2 -2
  255. package/extensions/memory-core/package.json +1 -1
  256. package/extensions/msteams/CHANGELOG.md +12 -0
  257. package/extensions/msteams/package.json +1 -1
  258. package/extensions/open-prose/package.json +1 -1
  259. package/extensions/outlook/package.json +1 -1
  260. package/extensions/slack/package.json +1 -1
  261. package/package.json +1 -1
@@ -835,20 +835,27 @@ body {
835
835
  }
836
836
 
837
837
  /* ── Symframe (right-column dynamic display) ──────────────────────── */
838
- /* Phase 1: shell + the 3 existing panels reframed as cards. The aside
839
- itself stays positioned by .metrics-right; symframe just adds a
840
- header band on top and unified card chrome around each child panel.
841
- No JS plumbing yet Phase 2 introduces the registry + dynamic
842
- add/update/remove semantics. */
838
+ /* Stage B (3.5.20): the column is now layered. .symframe-stack holds
839
+ the substrate (ambient reasoning behind everything) and the cards
840
+ (foreground artifacts) in a single CSS grid cell via grid-area, so
841
+ they overlap. Cards have backdrop-filter so the substrate breathes
842
+ THROUGH them. Header floats on top, unchanged.
843
+
844
+ The "reasoning live dot" (id="reasoning-live-dot") moved from inside
845
+ the now-removed reasoning panel up into the header row, where it
846
+ still pulses on agent activity (app.js:840-845 untouched, single id
847
+ continues to bind that semantic). */
843
848
  .symframe {
844
849
  display: flex;
845
850
  flex-direction: column;
846
851
  gap: 8px;
852
+ height: 100%;
847
853
  }
848
854
  .symframe-header {
849
855
  padding: 8px 10px 10px;
850
856
  border-bottom: 1px solid rgba(0, 212, 255, 0.12);
851
857
  margin-bottom: 4px;
858
+ flex-shrink: 0;
852
859
  }
853
860
  .symframe-header-row {
854
861
  display: flex;
@@ -880,10 +887,185 @@ body {
880
887
  margin-top: 4px;
881
888
  line-height: 1.4;
882
889
  }
890
+
891
+ /* The stack — substrate + cards share a single grid cell so they
892
+ overlap on the z-axis. Cards on top (z:1) with backdrop-filter let
893
+ the substrate (z:0) show through. */
894
+ .symframe-stack {
895
+ position: relative;
896
+ flex: 1 1 auto;
897
+ min-height: 280px;
898
+ display: grid;
899
+ grid-template-areas: "overlay";
900
+ }
883
901
  .symframe-cards {
902
+ grid-area: overlay;
903
+ z-index: 1;
884
904
  display: flex;
885
905
  flex-direction: column;
886
906
  gap: 10px;
907
+ overflow-y: auto;
908
+ scrollbar-width: thin;
909
+ scrollbar-color: rgba(0, 212, 255, 0.12) transparent;
910
+ /* Let scroll/click events fall through the empty space between cards
911
+ down to the substrate, so the user can scroll reasoning even when
912
+ foreground cards are foregrounded. Cards themselves re-enable
913
+ pointer-events on their own root. */
914
+ pointer-events: none;
915
+ }
916
+ .symframe-cards > * {
917
+ pointer-events: auto;
918
+ }
919
+ .symframe-cards::-webkit-scrollbar {
920
+ width: 3px;
921
+ }
922
+ .symframe-cards::-webkit-scrollbar-thumb {
923
+ background: rgba(0, 212, 255, 0.12);
924
+ border-radius: 2px;
925
+ }
926
+
927
+ /* ── Substrate (ambient reasoning layer, Stage B) ──────────────────── */
928
+ /* Lives behind the cards in the same grid cell. Independently
929
+ scrollable. Newest entries prepend at the top; live entry pinned at
930
+ index 0 with no decay; older entries fade per DECAY_TIERS (see
931
+ glass-ui/js/symframe-substrate.js). */
932
+ .symframe-substrate {
933
+ grid-area: overlay;
934
+ z-index: 0;
935
+ overflow-y: auto;
936
+ display: flex;
937
+ flex-direction: column;
938
+ gap: 6px;
939
+ padding: 2px 4px 4px;
940
+ scrollbar-width: thin;
941
+ scrollbar-color: rgba(0, 212, 255, 0.18) transparent;
942
+ }
943
+ .symframe-substrate::-webkit-scrollbar {
944
+ width: 3px;
945
+ }
946
+ .symframe-substrate::-webkit-scrollbar-thumb {
947
+ background: rgba(0, 212, 255, 0.18);
948
+ border-radius: 2px;
949
+ }
950
+
951
+ /* Substrate entry — decay-driven visual. Custom properties are written
952
+ per-entry by the JS tick; CSS just consumes them with a transition
953
+ so changes ease rather than snap. */
954
+ .substrate-entry {
955
+ opacity: var(--substrate-opacity, 1);
956
+ filter: blur(var(--substrate-blur, 0));
957
+ transform: scale(var(--substrate-scale, 1));
958
+ transform-origin: top left;
959
+ transition:
960
+ opacity 1.2s ease,
961
+ filter 1.2s ease,
962
+ transform 1.2s ease,
963
+ max-height 0.6s ease;
964
+ }
965
+
966
+ /* Live trace — pinned at top, exempt from decay, with a pulsing dot. */
967
+ .substrate-entry.substrate-live {
968
+ opacity: 1;
969
+ filter: none;
970
+ transform: none;
971
+ border-color: rgba(0, 212, 255, 0.32);
972
+ box-shadow: 0 0 12px rgba(0, 212, 255, 0.08);
973
+ }
974
+ .substrate-live-dot {
975
+ display: inline-block;
976
+ width: 6px;
977
+ height: 6px;
978
+ border-radius: 50%;
979
+ background: var(--accent-cyan);
980
+ margin-right: 6px;
981
+ animation: pulse 1.2s ease-in-out infinite;
982
+ flex-shrink: 0;
983
+ }
984
+
985
+ /* Texture tier — oldest entries collapse to thin horizontal strokes
986
+ that read as panel texture rather than content. Hover restores
987
+ readability. */
988
+ .substrate-entry.substrate-texture {
989
+ max-height: 2px;
990
+ padding: 0;
991
+ border-width: 0;
992
+ border-top: 1px solid rgba(0, 212, 255, 0.06);
993
+ overflow: hidden;
994
+ }
995
+ .substrate-entry.substrate-texture:hover {
996
+ max-height: 200px;
997
+ padding: 6px 8px;
998
+ border: 1px solid rgba(0, 212, 255, 0.18);
999
+ opacity: 0.7;
1000
+ filter: none;
1001
+ }
1002
+
1003
+ /* Run separator — survives decay better than entries (a structural
1004
+ landmark), but still respects the substrate-entry transitions. */
1005
+ .substrate-run-sep {
1006
+ border-color: transparent !important;
1007
+ background: transparent !important;
1008
+ padding: 0 !important;
1009
+ }
1010
+
1011
+ /* Quiet mind — empty state. A slow-pulsing dot with a label, centered
1012
+ in the substrate. CSS-only animation. Visible when no reasoning has
1013
+ happened yet (or has been cleared); foreground cards float over it. */
1014
+ .substrate-empty {
1015
+ display: flex;
1016
+ flex-direction: column;
1017
+ align-items: center;
1018
+ justify-content: center;
1019
+ gap: 10px;
1020
+ padding: 40px 0;
1021
+ margin: auto;
1022
+ opacity: 0.85;
1023
+ }
1024
+ .substrate-quiet-dot {
1025
+ width: 14px;
1026
+ height: 14px;
1027
+ border-radius: 50%;
1028
+ background: radial-gradient(
1029
+ circle at center,
1030
+ rgba(0, 212, 255, 0.45) 0%,
1031
+ rgba(0, 212, 255, 0) 70%
1032
+ );
1033
+ animation: quiet-pulse 3.2s ease-in-out infinite;
1034
+ }
1035
+ .substrate-quiet-label {
1036
+ font-family: var(--font-mono);
1037
+ font-size: 9px;
1038
+ letter-spacing: 0.18em;
1039
+ text-transform: uppercase;
1040
+ color: var(--text-dim);
1041
+ opacity: 0.5;
1042
+ }
1043
+ @keyframes quiet-pulse {
1044
+ 0%,
1045
+ 100% {
1046
+ transform: scale(0.85);
1047
+ opacity: 0.45;
1048
+ }
1049
+ 50% {
1050
+ transform: scale(1.18);
1051
+ opacity: 0.85;
1052
+ }
1053
+ }
1054
+
1055
+ /* Reduced motion — collapse decay transitions to opacity-only at 200ms
1056
+ and freeze quiet-pulse on the midpoint frame. The substrate stays
1057
+ informative; the panel stays still. */
1058
+ @media (prefers-reduced-motion: reduce) {
1059
+ .substrate-entry {
1060
+ transition: opacity 0.2s ease;
1061
+ filter: none !important;
1062
+ transform: none !important;
1063
+ }
1064
+ .substrate-live-dot,
1065
+ .substrate-quiet-dot {
1066
+ animation: none;
1067
+ opacity: 0.85;
1068
+ }
887
1069
  }
888
1070
  /* Card chrome — overrides the per-panel transparent treatment from the
889
1071
  floating-panels arc (3.4.10/11/12/13) for the panels that now live
@@ -891,13 +1073,19 @@ body {
891
1073
  wins over the panel-specific class selectors. */
892
1074
  .symframe .symframe-card {
893
1075
  position: relative;
894
- background: rgba(255, 255, 255, 0.02);
895
- border: 1px solid rgba(0, 212, 255, 0.1);
1076
+ /* Stage B: cards need enough opacity to stay readable WHILE letting
1077
+ the substrate breathe through. The backdrop-filter blurs whatever
1078
+ substrate texture is behind, so even at moderate transparency the
1079
+ card body stays crisp. */
1080
+ background: rgba(10, 16, 26, 0.62);
1081
+ backdrop-filter: blur(10px) saturate(140%);
1082
+ -webkit-backdrop-filter: blur(10px) saturate(140%);
1083
+ border: 1px solid rgba(0, 212, 255, 0.12);
896
1084
  border-radius: 10px;
897
1085
  padding: 10px 12px;
898
1086
  box-shadow:
899
- inset 0 1px 0 rgba(255, 255, 255, 0.03),
900
- 0 2px 8px rgba(0, 0, 0, 0.15);
1087
+ inset 0 1px 0 rgba(255, 255, 255, 0.04),
1088
+ 0 4px 12px rgba(0, 0, 0, 0.25);
901
1089
  }
902
1090
  .symframe .symframe-card::before,
903
1091
  .symframe .symframe-card::after {
@@ -940,6 +1128,276 @@ body {
940
1128
  color: var(--accent-cyan);
941
1129
  background: rgba(0, 212, 255, 0.08);
942
1130
  }
1131
+
1132
+ /* Stage C: pin glyph — replaces dismiss button on pinned cards. Click
1133
+ to unpin. The card's persistence is user-curated, so the affordance
1134
+ sits in the same slot as the dismiss × but with a different glyph
1135
+ and tooltip. */
1136
+ .symframe-card-pin {
1137
+ background: transparent;
1138
+ border: none;
1139
+ color: var(--accent-cyan);
1140
+ font-size: 13px;
1141
+ line-height: 1;
1142
+ width: 18px;
1143
+ height: 18px;
1144
+ border-radius: 4px;
1145
+ cursor: pointer;
1146
+ opacity: 0.8;
1147
+ padding: 0;
1148
+ display: flex;
1149
+ align-items: center;
1150
+ justify-content: center;
1151
+ transition:
1152
+ opacity 0.15s ease,
1153
+ background 0.15s ease;
1154
+ }
1155
+ .symframe-card-pin:hover {
1156
+ opacity: 1;
1157
+ background: rgba(0, 212, 255, 0.08);
1158
+ }
1159
+
1160
+ /* Stage C: dwell pulse — 600ms cyan border + glow then return. */
1161
+ .symframe-card.symframe-dwelling {
1162
+ animation: symframe-dwell 600ms ease-out;
1163
+ }
1164
+ @keyframes symframe-dwell {
1165
+ 0% {
1166
+ border-color: var(--accent-cyan);
1167
+ box-shadow:
1168
+ 0 0 0 0 rgba(0, 212, 255, 0.55),
1169
+ inset 0 1px 0 rgba(255, 255, 255, 0.04),
1170
+ 0 4px 12px rgba(0, 0, 0, 0.25);
1171
+ }
1172
+ 60% {
1173
+ border-color: rgba(0, 212, 255, 0.6);
1174
+ box-shadow:
1175
+ 0 0 0 6px rgba(0, 212, 255, 0),
1176
+ inset 0 1px 0 rgba(255, 255, 255, 0.04),
1177
+ 0 4px 12px rgba(0, 0, 0, 0.25);
1178
+ }
1179
+ 100% {
1180
+ border-color: rgba(0, 212, 255, 0.12);
1181
+ box-shadow:
1182
+ inset 0 1px 0 rgba(255, 255, 255, 0.04),
1183
+ 0 4px 12px rgba(0, 0, 0, 0.25);
1184
+ }
1185
+ }
1186
+
1187
+ /* Stage C: release fade-out — animated dismissal that's softer than
1188
+ the instant remove. The JS cleanup (cards.delete + DOM remove) fires
1189
+ on transitionend or after a 900ms fail-safe timeout. */
1190
+ .symframe-card.symframe-releasing {
1191
+ transition:
1192
+ opacity 800ms cubic-bezier(0.4, 0, 0.6, 1),
1193
+ transform 800ms cubic-bezier(0.4, 0, 0.6, 1),
1194
+ max-height 800ms cubic-bezier(0.4, 0, 0.6, 1),
1195
+ margin 800ms ease;
1196
+ opacity: 0;
1197
+ transform: scale(0.92);
1198
+ max-height: 0;
1199
+ margin-top: 0;
1200
+ margin-bottom: 0;
1201
+ overflow: hidden;
1202
+ pointer-events: none;
1203
+ }
1204
+
1205
+ /* Reduced-motion: skip elaborate animations. */
1206
+ @media (prefers-reduced-motion: reduce) {
1207
+ .symframe-card.symframe-dwelling {
1208
+ animation: none;
1209
+ border-color: var(--accent-cyan);
1210
+ }
1211
+ .symframe-card.symframe-releasing {
1212
+ transition: opacity 200ms ease;
1213
+ transform: none;
1214
+ max-height: none;
1215
+ }
1216
+ }
1217
+
1218
+ /* ── AWAITING footer (Stage C) ───────────────────────────────────── */
1219
+ /* Always-present footer (when there's anything pending) below the
1220
+ substrate+cards stack. Merges in-flight sub-agents and scheduled
1221
+ cron jobs into one list, sorted by in-flight-first then ETA.
1222
+ Click a sub-agent row → no-op (future: open a detail view).
1223
+ Click a schedule row → existing schedule edit modal.
1224
+ Click [+ Add] → menu with "Spawn subagent" / "Add scheduled task". */
1225
+ .symframe-awaiting {
1226
+ flex-shrink: 0;
1227
+ position: relative;
1228
+ border-top: 1px solid rgba(0, 212, 255, 0.12);
1229
+ margin-top: 8px;
1230
+ padding: 8px 6px 4px;
1231
+ display: flex;
1232
+ flex-direction: column;
1233
+ gap: 4px;
1234
+ }
1235
+ .awaiting-header {
1236
+ display: flex;
1237
+ align-items: baseline;
1238
+ gap: 8px;
1239
+ padding: 0 4px 4px;
1240
+ }
1241
+ .awaiting-title {
1242
+ font-family: var(--font-mono);
1243
+ font-size: 10px;
1244
+ font-weight: 600;
1245
+ letter-spacing: 0.14em;
1246
+ color: var(--accent-cyan);
1247
+ }
1248
+ .awaiting-count {
1249
+ font-family: var(--font-mono);
1250
+ font-size: 9px;
1251
+ letter-spacing: 0.04em;
1252
+ color: var(--text-dim);
1253
+ opacity: 0.6;
1254
+ text-transform: uppercase;
1255
+ }
1256
+ .awaiting-list {
1257
+ display: flex;
1258
+ flex-direction: column;
1259
+ gap: 2px;
1260
+ max-height: 200px;
1261
+ overflow-y: auto;
1262
+ scrollbar-width: thin;
1263
+ scrollbar-color: rgba(0, 212, 255, 0.18) transparent;
1264
+ }
1265
+ .awaiting-list::-webkit-scrollbar {
1266
+ width: 3px;
1267
+ }
1268
+ .awaiting-list::-webkit-scrollbar-thumb {
1269
+ background: rgba(0, 212, 255, 0.18);
1270
+ border-radius: 2px;
1271
+ }
1272
+ .awaiting-item {
1273
+ display: grid;
1274
+ grid-template-columns: 18px 1fr auto;
1275
+ align-items: center;
1276
+ gap: 6px;
1277
+ padding: 5px 8px;
1278
+ border-radius: 6px;
1279
+ background: rgba(255, 255, 255, 0.02);
1280
+ border: 1px solid transparent;
1281
+ font-family: var(--font-mono);
1282
+ font-size: 10px;
1283
+ cursor: pointer;
1284
+ transition:
1285
+ background 0.15s ease,
1286
+ border-color 0.15s ease;
1287
+ }
1288
+ .awaiting-item:hover {
1289
+ background: rgba(0, 212, 255, 0.06);
1290
+ border-color: rgba(0, 212, 255, 0.15);
1291
+ }
1292
+ .awaiting-item-disabled {
1293
+ opacity: 0.45;
1294
+ }
1295
+ .awaiting-glyph {
1296
+ width: 14px;
1297
+ height: 14px;
1298
+ display: inline-flex;
1299
+ align-items: center;
1300
+ justify-content: center;
1301
+ font-size: 11px;
1302
+ line-height: 1;
1303
+ }
1304
+ .awaiting-glyph-subagent {
1305
+ color: var(--accent-purple, #8b5cf6);
1306
+ }
1307
+ .awaiting-glyph-schedule {
1308
+ color: var(--accent-cyan);
1309
+ cursor: pointer;
1310
+ }
1311
+ .awaiting-glyph-schedule:hover {
1312
+ color: var(--text);
1313
+ }
1314
+ .awaiting-label {
1315
+ color: var(--text);
1316
+ white-space: nowrap;
1317
+ overflow: hidden;
1318
+ text-overflow: ellipsis;
1319
+ }
1320
+ .awaiting-meta {
1321
+ color: var(--text-dim);
1322
+ opacity: 0.75;
1323
+ font-size: 9px;
1324
+ letter-spacing: 0.04em;
1325
+ text-transform: lowercase;
1326
+ white-space: nowrap;
1327
+ }
1328
+
1329
+ /* Add button + menu */
1330
+ .awaiting-add-btn {
1331
+ display: inline-flex;
1332
+ align-items: center;
1333
+ gap: 6px;
1334
+ margin-top: 4px;
1335
+ align-self: flex-start;
1336
+ padding: 4px 10px;
1337
+ background: transparent;
1338
+ border: 1px dashed rgba(0, 212, 255, 0.25);
1339
+ border-radius: 6px;
1340
+ color: var(--text-dim);
1341
+ font-family: var(--font-mono);
1342
+ font-size: 10px;
1343
+ letter-spacing: 0.04em;
1344
+ cursor: pointer;
1345
+ transition:
1346
+ color 0.15s ease,
1347
+ border-color 0.15s ease,
1348
+ background 0.15s ease;
1349
+ }
1350
+ .awaiting-add-btn:hover {
1351
+ color: var(--accent-cyan);
1352
+ border-color: var(--accent-cyan);
1353
+ background: rgba(0, 212, 255, 0.04);
1354
+ }
1355
+ .awaiting-add-btn svg {
1356
+ width: 12px;
1357
+ height: 12px;
1358
+ }
1359
+ .awaiting-add-menu {
1360
+ position: absolute;
1361
+ left: 10px;
1362
+ bottom: 100%;
1363
+ margin-bottom: 6px;
1364
+ background: rgba(10, 16, 26, 0.95);
1365
+ backdrop-filter: blur(12px) saturate(140%);
1366
+ -webkit-backdrop-filter: blur(12px) saturate(140%);
1367
+ border: 1px solid rgba(0, 212, 255, 0.2);
1368
+ border-radius: 8px;
1369
+ padding: 4px;
1370
+ display: flex;
1371
+ flex-direction: column;
1372
+ gap: 2px;
1373
+ min-width: 180px;
1374
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
1375
+ z-index: 20;
1376
+ }
1377
+ .awaiting-add-item {
1378
+ display: flex;
1379
+ align-items: center;
1380
+ gap: 8px;
1381
+ padding: 6px 10px;
1382
+ background: transparent;
1383
+ border: none;
1384
+ border-radius: 5px;
1385
+ color: var(--text);
1386
+ font-family: var(--font-mono);
1387
+ font-size: 11px;
1388
+ cursor: pointer;
1389
+ text-align: left;
1390
+ }
1391
+ .awaiting-add-item:hover {
1392
+ background: rgba(0, 212, 255, 0.08);
1393
+ color: var(--accent-cyan);
1394
+ }
1395
+ .awaiting-add-glyph {
1396
+ display: inline-flex;
1397
+ width: 14px;
1398
+ justify-content: center;
1399
+ }
1400
+
943
1401
  .symframe-card-body {
944
1402
  font-family: var(--font-mono);
945
1403
  font-size: 11px;
@@ -5717,31 +6175,11 @@ body {
5717
6175
  border-color: rgba(52, 211, 153, 0.5);
5718
6176
  }
5719
6177
 
5720
- /* ── Reasoning Panel ───────────────────────────────────────────────── */
5721
- .reasoning-panel {
5722
- display: flex;
5723
- flex-direction: column;
5724
- min-height: 120px;
5725
- max-height: 420px;
5726
- flex-shrink: 0;
5727
- /* Override .glass-panel so the reasoning stream floats without a card background. */
5728
- background: transparent;
5729
- backdrop-filter: none;
5730
- -webkit-backdrop-filter: none;
5731
- border: none;
5732
- box-shadow: none;
5733
- }
5734
-
5735
- .reasoning-panel:hover {
5736
- border: none;
5737
- box-shadow: none;
5738
- }
5739
-
5740
- .reasoning-panel::before,
5741
- .reasoning-panel::after {
5742
- display: none;
5743
- }
5744
-
6178
+ /* ── Reasoning live-dot (used in symframe header, Stage B+) ────────── */
6179
+ /* Stage B (3.5.20): The reasoning panel was removed; reasoning now flows
6180
+ to the substrate. The live-dot id is retained in the symframe header
6181
+ so app.js:840-845 continues to bind a single semantic ("agent is
6182
+ active") to a single element without code change. */
5745
6183
  .reasoning-live-dot {
5746
6184
  display: inline-block;
5747
6185
  width: 6px;
@@ -5752,58 +6190,18 @@ body {
5752
6190
  vertical-align: middle;
5753
6191
  opacity: 0;
5754
6192
  transition: opacity 0.3s ease;
6193
+ flex-shrink: 0;
5755
6194
  }
5756
6195
  .reasoning-live-dot.active {
5757
6196
  opacity: 1;
5758
6197
  animation: pulse 1.2s ease-in-out infinite;
5759
6198
  }
5760
6199
 
5761
- .reasoning-feed {
5762
- flex: 1;
5763
- overflow-y: auto;
5764
- scrollbar-width: thin;
5765
- scrollbar-color: rgba(0, 212, 255, 0.2) transparent;
5766
- display: flex;
5767
- flex-direction: column;
5768
- gap: 6px;
5769
- padding-right: 2px;
5770
- }
5771
- .reasoning-feed::-webkit-scrollbar {
5772
- width: 3px;
5773
- }
5774
- .reasoning-feed::-webkit-scrollbar-track {
5775
- background: transparent;
5776
- }
5777
- .reasoning-feed::-webkit-scrollbar-thumb {
5778
- background: rgba(0, 212, 255, 0.2);
5779
- border-radius: 2px;
5780
- }
5781
-
5782
- /* Empty state */
5783
- .reasoning-empty {
5784
- display: flex;
5785
- flex-direction: column;
5786
- align-items: center;
5787
- justify-content: center;
5788
- gap: 8px;
5789
- padding: 20px 0 12px;
5790
- color: var(--text-dim);
5791
- }
5792
- .reasoning-empty-icon {
5793
- width: 28px;
5794
- height: 28px;
5795
- opacity: 0.4;
5796
- }
5797
- .reasoning-empty-icon svg {
5798
- width: 100%;
5799
- height: 100%;
5800
- }
5801
- .reasoning-empty-text {
5802
- font-size: 11px;
5803
- font-family: var(--font-mono);
5804
- opacity: 0.5;
5805
- text-align: center;
5806
- }
6200
+ /* The .reasoning-panel / .reasoning-feed / .reasoning-empty* rules were
6201
+ removed in Stage B — their DOM is gone. The .reasoning-entry / badge
6202
+ / body / preview / result-meta rules below ARE still in use: the
6203
+ substrate's buildEntryForBlock writes the same class names so existing
6204
+ entry visuals carry forward unchanged. */
5807
6205
 
5808
6206
  /* Run separator */
5809
6207
  .reasoning-run-sep {