@symerian/symi 3.4.30 → 3.4.32

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 (422) hide show
  1. package/dist/{agent-O3PihJOY.js → agent-BaSGoKPq.js} +17 -17
  2. package/dist/{agent-tdS4G7e8.js → agent-C8IIjDyn.js} +21 -21
  3. package/dist/{agent-scope-Ck_TLGsV.js → agent-scope-B6p555mP.js} +1 -1
  4. package/dist/{agent-scope-DJI5ijOw.js → agent-scope-DIjW66iO.js} +3 -3
  5. package/dist/{agents-C2MpIr16.js → agents-D6Ygz9ED.js} +12 -12
  6. package/dist/{agents.config-PPeqGzAc.js → agents.config-D1nFwU81.js} +1 -1
  7. package/dist/{agents.config-LRW5SZoE.js → agents.config-D7cHU-OU.js} +1 -1
  8. package/dist/{audit-TmPjr_wD.js → audit-BI8Rbs5q.js} +19 -19
  9. package/dist/{audit-yf3H4Y1h.js → audit-nqP-JeOr.js} +17 -17
  10. package/dist/{auth-BSmNj-Lv.js → auth-BbwD4lRX.js} +1 -1
  11. package/dist/{auth-choice-Bw2Kd6RM.js → auth-choice-BBrEzoy2.js} +8 -8
  12. package/dist/{auth-choice-CyBcsQ9T.js → auth-choice-Bx4Duu6u.js} +8 -8
  13. package/dist/{auth-profiles-C1lvfaCM.js → auth-profiles-BFSVvFKy.js} +6 -6
  14. package/dist/{auth-profiles-BG_wMJz6.js → auth-profiles-Bs5D0GUv.js} +4 -4
  15. package/dist/{auth-token-C0-TDuag.js → auth-token-Brb1Askz.js} +2 -2
  16. package/dist/{auth-token-BwQ5Nv4O.js → auth-token-SebYuqfR.js} +2 -2
  17. package/dist/{banner-D7__HlM-.js → banner-l9GjW5Rm.js} +2 -2
  18. package/dist/{bindings-D5s2VRjL.js → bindings-9LSA3Jr1.js} +1 -1
  19. package/dist/{bonjour-discovery-YoubCASb.js → bonjour-discovery-BTpm6P8H.js} +1 -1
  20. package/dist/{bonjour-discovery-CPzedvdf.js → bonjour-discovery-CU1mz7AC.js} +2 -2
  21. package/dist/{browser-cli-R6JagRCf.js → browser-cli-BAxOL41p.js} +22 -22
  22. package/dist/{browser-cli-B_6WWHm_.js → browser-cli-Bk8DxxeA.js} +13 -13
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +4 -4
  25. package/dist/bundled/session-memory/handler.js +4 -4
  26. package/dist/{call-IfleM0ap.js → call-5IE9ycvm.js} +3 -4
  27. package/dist/{call-sikajorp.js → call-BPJn2_th.js} +5 -6
  28. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  29. package/dist/{catalog-DgsRZ5Yu.js → catalog-CJzUbDcX.js} +2 -2
  30. package/dist/{catalog-Bc0hKvgn.js → catalog-CSgSg5Gp.js} +2 -2
  31. package/dist/{channel-options-DrHwfPTb.js → channel-options-COanIUoQ.js} +5 -5
  32. package/dist/{channel-options-B5974x-7.js → channel-options-DGUqfnbP.js} +2 -2
  33. package/dist/{channel-selection-Cc4Pvn6b.js → channel-selection-BvIcXQLj.js} +2 -2
  34. package/dist/{channels-cli-D50PQAPc.js → channels-cli-B1zmnm5a.js} +83 -83
  35. package/dist/{channels-cli-C6Nv9mzy.js → channels-cli-CZ3M3yE1.js} +62 -62
  36. package/dist/{channels-status-issues-VZcSU4qT.js → channels-status-issues-DC8vgOMo.js} +1 -1
  37. package/dist/{chrome-DJCkCRLf.js → chrome-B0wRtBRB.js} +3 -3
  38. package/dist/{chrome-DT1fIVG1.js → chrome-B4P7ycw5.js} +7 -7
  39. package/dist/{chrome-CPSDqbK6.js → chrome-CQn8fDIy.js} +7 -7
  40. package/dist/{chrome-BM8HZu2p.js → chrome-VbDUdW0_.js} +4 -4
  41. package/dist/{chunk-D2_aCcvs.js → chunk-DQGU0F8t.js} +1 -1
  42. package/dist/{clack-prompter-BwhCW0Jc.js → clack-prompter-CWQQn_CK.js} +5 -5
  43. package/dist/cli-C7I5uEFC.js +128 -0
  44. package/dist/{cli-DZoms4qg.js → cli-CC5GrdTI.js} +52 -52
  45. package/dist/{client-Bcz3rG5V.js → client-Dp8LUTmF.js} +3 -5
  46. package/dist/{client-BzacpVvW.js → client-qjXXRKCO.js} +5 -7
  47. package/dist/{clipboard-Dz-Ob0yt.js → clipboard-McRwF3r0.js} +1 -1
  48. package/dist/{command-format-6B5tP-i9.js → command-format-Xm6vX3qJ.js} +1 -1
  49. package/dist/{command-registry--D98SJ6k.js → command-registry-D8fj6th4.js} +12 -12
  50. package/dist/{commands-DgyiLrAe.js → commands-B3UrgxIz.js} +2 -2
  51. package/dist/{commands-BN08daX-.js → commands-CHkx0oTl.js} +1 -1
  52. package/dist/{commands-registry-Bbs_ugoi.js → commands-registry-BNCcZy2y.js} +5 -5
  53. package/dist/{commands-registry-QB7xD3bc.js → commands-registry-Bccp0eH5.js} +3 -3
  54. package/dist/{completion-cli-CHYvpIPw.js → completion-cli-BxspmuYm.js} +3 -3
  55. package/dist/{completion-cli-QxWULepB.js → completion-cli-C-85b5b8.js} +4 -4
  56. package/dist/{config-vtCLkS2w.js → config-DqMsGcSQ.js} +7 -21
  57. package/dist/{config-cli-CcZo2229.js → config-cli-BqzjDmIH.js} +13 -13
  58. package/dist/{config-cli-DstpcB33.js → config-cli-DSDGwckX.js} +12 -12
  59. package/dist/{config-guard-CC-lFWDU.js → config-guard-CJcSKMuP.js} +21 -21
  60. package/dist/{config-guard-CCJrDmON.js → config-guard-Cu-dwAgi.js} +4 -4
  61. package/dist/{config-BTSBEAnk.js → config-igdtSRrZ.js} +10 -24
  62. package/dist/{config-validation-DSnQNdDO.js → config-validation-Bp2wJ610.js} +1 -1
  63. package/dist/{config-validation-YCrMlM9Z.js → config-validation-Bs1Gp2oG.js} +2 -2
  64. package/dist/{configure-B-UvSZZ7.js → configure-BazJdwKU.js} +14 -14
  65. package/dist/{configure-C4Qjzxdq.js → configure-Dl1f1Den.js} +25 -25
  66. package/dist/{consolidate-CPVaVTv0.js → consolidate-7Usm-b2g.js} +4 -4
  67. package/dist/{control-service-CwRG4M_O.js → control-service-DO8FjrS6.js} +4 -4
  68. package/dist/{control-service--TrXUUt_.js → control-service-Fn3d9AlH.js} +5 -5
  69. package/dist/{control-ui-assets-DI1jLkM6.js → control-ui-assets-DUhvOLUL.js} +2 -2
  70. package/dist/{cron-cli-DUETe3Of.js → cron-cli-DXgI5Lid.js} +10 -10
  71. package/dist/{cron-cli-BfUM5_Kw.js → cron-cli-DZyH2BfZ.js} +19 -19
  72. package/dist/{daemon-cli-DRDkDw_M.js → daemon-cli-C6FSROt1.js} +18 -18
  73. package/dist/{daemon-cli-Dy5eY4M7.js → daemon-cli-DmMYx5Uf.js} +10 -10
  74. package/dist/daemon-cli.js +0 -3
  75. package/dist/{daemon-runtime-ChztAKDA.js → daemon-runtime-2Y9RfgcP.js} +2 -2
  76. package/dist/{daemon-runtime-CqMnoGym.js → daemon-runtime-BpfA4d6Q.js} +2 -2
  77. package/dist/{deliver-59sRVaYQ.js → deliver-BkCYBlzi.js} +4 -4
  78. package/dist/{deliver-Mqq3tgqB.js → deliver-DvW5xHHr.js} +4 -4
  79. package/dist/{deliver-fvcQPsBc.js → deliver-RwovDEDy.js} +8 -8
  80. package/dist/{deliver-BHmK4isn.js → deliver-izdrXPr4.js} +5 -5
  81. package/dist/{delivery-queue-Du1ukE9B.js → delivery-queue-DDs84baU.js} +1 -1
  82. package/dist/{delivery-queue-Bqja5xKq.js → delivery-queue-nheCYaMd.js} +1 -1
  83. package/dist/{deps-CeHgkkO6.js → deps-bCHNuszw.js} +1 -1
  84. package/dist/{devices-cli-DV8wT4cj.js → devices-cli-D6xXc9Ym.js} +17 -17
  85. package/dist/{devices-cli-BCZ2HHjT.js → devices-cli-IMv-0zor.js} +9 -9
  86. package/dist/{diagnostic-Db9MI5bh.js → diagnostic-CwF3MnBL.js} +1 -1
  87. package/dist/{diagnostics-B9e2Kvx8.js → diagnostics-DxdqTfpW.js} +1 -1
  88. package/dist/{directory-cli-BVGd0l0T.js → directory-cli-3wlYB9In.js} +7 -7
  89. package/dist/{directory-cli-B6Ja7314.js → directory-cli-ClbYhd6z.js} +17 -17
  90. package/dist/{dm-policy-shared-Bjdk2L7B.js → dm-policy-shared-5HLej1br.js} +2 -2
  91. package/dist/{dm-policy-shared-BBTioONS.js → dm-policy-shared-CSF4Tw_F.js} +1 -1
  92. package/dist/{dns-cli-MEjZBWpL.js → dns-cli-CY2voLuR.js} +14 -14
  93. package/dist/{dns-cli-DH-ksmiI.js → dns-cli-CoVIqRWx.js} +8 -8
  94. package/dist/{dock-CSF4Y7tm.js → dock-CnGWTXL4.js} +2 -2
  95. package/dist/{docs-cli-BuX8FDdh.js → docs-cli-CFklWCND.js} +5 -5
  96. package/dist/{docs-cli-Cc3Rhfkx.js → docs-cli-DjQ3SvBq.js} +8 -8
  97. package/dist/{doctor-completion-rBc-f29C.js → doctor-completion-BwHbIZjF.js} +2 -2
  98. package/dist/{doctor-completion-C4Sf8CFV.js → doctor-completion-CX7LjkOD.js} +2 -2
  99. package/dist/{doctor-config-flow-CrnteetS.js → doctor-config-flow-CYDx1U0Z.js} +7 -7
  100. package/dist/{doctor-config-flow-BhmF6EAq.js → doctor-config-flow-wvoEFNeZ.js} +8 -8
  101. package/dist/entry.js +4 -7
  102. package/dist/{env-DoZWjLUy.js → env-B97Ms861.js} +1 -1
  103. package/dist/{exec-BcMHopF9.js → exec-DKyLtSjm.js} +2 -2
  104. package/dist/{exec-approvals-BndOYKTM.js → exec-approvals-B8n8es8o.js} +1 -1
  105. package/dist/{exec-approvals-BZBjOrJL.js → exec-approvals-CZOc8M5w.js} +1 -1
  106. package/dist/{exec-approvals-cli-Bqh3x_d1.js → exec-approvals-cli-B_P-1zVp.js} +24 -24
  107. package/dist/{exec-approvals-cli-CyXTXgft.js → exec-approvals-cli-Dy1jvh2M.js} +16 -16
  108. package/dist/extensionAPI.js +4 -4
  109. package/dist/{fetch-guard-BuQQKfW1.js → fetch-guard-DG6T0ZdL.js} +1 -1
  110. package/dist/{frontmatter-BH3ExkUY.js → frontmatter-B4levtVg.js} +2 -2
  111. package/dist/{gateway-cli-BrcMZGyF.js → gateway-cli-CTcK1Az2.js} +113 -114
  112. package/dist/{gateway-cli-fT43bqlv.js → gateway-cli-CW-Z71cE.js} +88 -89
  113. package/dist/{gateway-rpc-BEqCo2JK.js → gateway-rpc-C1xjWlxu.js} +1 -1
  114. package/dist/{gateway-rpc-cpgRv0Yq.js → gateway-rpc-DD_aXogj.js} +3 -3
  115. package/dist/{github-copilot-token-DIIEouRg.js → github-copilot-token-BTNK6Tcd.js} +1 -1
  116. package/dist/{github-copilot-token-CrM1aEWo.js → github-copilot-token-a6a53zx_.js} +1 -1
  117. package/dist/{glass-ui-ws-dERcmtve.js → glass-ui-ws-BNJkhJrL.js} +96 -96
  118. package/dist/{glass-ui-ws-BfMKuf9v.js → glass-ui-ws-BZvH4MBO.js} +68 -68
  119. package/dist/{gmail-setup-utils-Cz9Tb30q.js → gmail-setup-utils-B1BYpISg.js} +2 -2
  120. package/dist/{gmail-setup-utils-5bVmaBiu.js → gmail-setup-utils-fA1VaWLv.js} +3 -3
  121. package/dist/{health-Bpjd5_Oq.js → health-D8cKia4i.js} +10 -10
  122. package/dist/{health-DDxrkioj.js → health-DdzNc1yA.js} +5 -5
  123. package/dist/{health-format-BQcmGV4C.js → health-format-39e76m9p.js} +1 -1
  124. package/dist/{help-format-Bm9CoBSa.js → help-format-BI_G2p1e.js} +1 -1
  125. package/dist/{hooks-cli-Bkp-j7h6.js → hooks-cli-DkP3Y4ou.js} +76 -76
  126. package/dist/{hooks-cli-Btgk__9z.js → hooks-cli-qO421UdO.js} +59 -59
  127. package/dist/{hooks-status-BjjfBQnp.js → hooks-status-COU9Cw9_.js} +2 -2
  128. package/dist/{hooks-status-BaV4_YaJ.js → hooks-status-uaFS2SUa.js} +3 -3
  129. package/dist/{image-ops-CiGlXf65.js → image-ops-C-gIIp7Q.js} +1 -1
  130. package/dist/index.js +81 -81
  131. package/dist/{inspect-B_hklr0u.js → inspect-BDzd6yBs.js} +1 -1
  132. package/dist/{installs-DjzewzNC.js → installs-DhSLZRT7.js} +2 -2
  133. package/dist/{installs-B7y-N4mr.js → installs-cPraL4Dg.js} +2 -2
  134. package/dist/{lifecycle-core-CHB-QdED.js → lifecycle-core-BEmljRfh.js} +7 -7
  135. package/dist/{lifecycle-core-B0tG8ERp.js → lifecycle-core-uN2bsrZs.js} +3 -3
  136. package/dist/{links-Bmkpld9F.js → links-CSaUKNKm.js} +1 -1
  137. package/dist/{links-D4w-tJYZ.js → links-Db3Rw0Tg.js} +1 -1
  138. package/dist/llm-slug-generator.js +4 -4
  139. package/dist/{local-roots-DSeNuIW-.js → local-roots-Bk3321gv.js} +2 -2
  140. package/dist/{local-roots-lknhM9c3.js → local-roots-BnDnugq3.js} +3 -3
  141. package/dist/{logging-miJdTAeb.js → logging-B96FQvnn.js} +2 -2
  142. package/dist/{logging-DrqPd0Fg.js → logging-BeA4q4J_.js} +1 -1
  143. package/dist/{logs-cli-CUhZrDw7.js → logs-cli-BB0Mq8D1.js} +11 -11
  144. package/dist/{logs-cli-CGcdfvBo.js → logs-cli-Dbmzz8m_.js} +18 -18
  145. package/dist/{manager-BeNnzSJv.js → manager-BD_cpL9b.js} +1 -1
  146. package/dist/{manager-Di9qtuZF.js → manager-BQaZlWzK.js} +6 -6
  147. package/dist/{manager-uBAL1G42.js → manager-D0NIHMuQ.js} +1 -1
  148. package/dist/{manager-DqMx0qDw.js → manager-DOiW-Koo.js} +9 -9
  149. package/dist/{manifest-registry-0FO1WTmC.js → manifest-registry-DJcKcUQ9.js} +1 -1
  150. package/dist/{manifest-registry-DYQQ9Cci.js → manifest-registry-D_LsBSyt.js} +1 -1
  151. package/dist/{markdown-tables-Ca1j7TYS.js → markdown-tables-GTLvbzuR.js} +1 -1
  152. package/dist/{memory-BDeydRz3.js → memory-Cl4I_45k.js} +6 -6
  153. package/dist/{memory-cli-D4hZiGr5.js → memory-cli-CszP57Ee.js} +8 -8
  154. package/dist/{memory-cli-BXclq7qt.js → memory-cli-DkD_OD70.js} +13 -13
  155. package/dist/{memory-BXoRMmVn.js → memory-kIYeV9aO.js} +7 -7
  156. package/dist/{message-channel-BqrA0uMO.js → message-channel-C_V8IAYx.js} +1 -1
  157. package/dist/{model-DibfNW71.js → model-BRcKPW49.js} +1 -1
  158. package/dist/{model-Czbmn47-.js → model-DgN15006.js} +1 -1
  159. package/dist/{model-catalog-DPnCNs5N.js → model-catalog-C2rNhRI4.js} +4 -4
  160. package/dist/{model-catalog-Ds0dg_ob.js → model-catalog-CaGfL-2g.js} +4 -4
  161. package/dist/{model-picker-DuPommMc.js → model-picker-4NUXHy8M.js} +3 -3
  162. package/dist/{model-picker-BbaEgNir.js → model-picker-CV56GE8A.js} +3 -3
  163. package/dist/{models-B0wNKA18.js → models-BYi0Fo1a.js} +21 -21
  164. package/dist/{models-cli-CZY5Me88.js → models-cli-Bn9M1TgO.js} +83 -83
  165. package/dist/{models-cli-CL5K06Wu.js → models-cli-EdjvkvFO.js} +59 -59
  166. package/dist/{models-config-Box19p27.js → models-config-Unnduxgs.js} +3 -3
  167. package/dist/{models-config-CPlvO1b0.js → models-config-yKxNCn4V.js} +3 -3
  168. package/dist/{node-cli-BFBfD3vK.js → node-cli-39H0MZ8q.js} +36 -36
  169. package/dist/{node-cli-CWWMajKF.js → node-cli-C8FYMIjN.js} +21 -21
  170. package/dist/{node-service-CkP4-uRI.js → node-service-tPO_yUk7.js} +1 -1
  171. package/dist/{nodes-cli-BY4Ppctn.js → nodes-cli-C-03nIJ0.js} +22 -22
  172. package/dist/{nodes-cli-YmE7S-JB.js → nodes-cli-CqxQexTU.js} +14 -14
  173. package/dist/{nodes-screen-BfQScwqX.js → nodes-screen-Bkq2kswx.js} +2 -2
  174. package/dist/{nodes-screen-BMUoHTPZ.js → nodes-screen-JELuBMBi.js} +1 -1
  175. package/dist/{note-C4Pc_hIl.js → note-CHrtEumO.js} +2 -2
  176. package/dist/{npm-registry-spec-C8W7KCAB.js → npm-registry-spec-BXw_6vF6.js} +2 -2
  177. package/dist/{npm-registry-spec-s-9OX2Kw.js → npm-registry-spec-NLo2PCol.js} +1 -1
  178. package/dist/{onboard-DjlI4mIw.js → onboard-C8IQnigm.js} +19 -19
  179. package/dist/{onboard-HqUZVKyD.js → onboard-CAIujkV7.js} +13 -13
  180. package/dist/{onboard-channels-BbF5-N3g.js → onboard-channels-B2l6OoMg.js} +7 -7
  181. package/dist/{onboard-channels-C5EUFcLq.js → onboard-channels-D_uUQbem.js} +9 -9
  182. package/dist/{onboard-custom-C-6Cooq5.js → onboard-custom-B2fJvyxt.js} +3 -3
  183. package/dist/{onboard-custom-63SI3jrk.js → onboard-custom-DcZ2SEUv.js} +3 -3
  184. package/dist/{onboard-helpers-Cb3WFLl9.js → onboard-helpers-Bm-oyLWy.js} +5 -5
  185. package/dist/{onboard-helpers-Bpa6_3vl.js → onboard-helpers-CHfdRdZR.js} +9 -9
  186. package/dist/{onboard-hooks-ggR6fsQs.js → onboard-hooks-DBYkemjF.js} +8 -8
  187. package/dist/{onboard-hooks-DXXg3YH9.js → onboard-hooks-DgRzMz0E.js} +5 -5
  188. package/dist/{onboard-remote-Cnxe89N8.js → onboard-remote-ecyetiyL.js} +3 -3
  189. package/dist/{onboard-remote-CqtCrqtm.js → onboard-remote-z8XLK4M0.js} +3 -3
  190. package/dist/{onboard-skills-D5Ww8pwO.js → onboard-skills-BLvL0KPR.js} +4 -4
  191. package/dist/{onboard-skills-CS3l5fhH.js → onboard-skills-C53RGq_5.js} +5 -5
  192. package/dist/{onboarding-BPmsmDud.js → onboarding-4v9LJueP.js} +18 -18
  193. package/dist/{onboarding-Be_HJIFA.js → onboarding-BIq5BxG0.js} +16 -16
  194. package/dist/{onboarding.finalize-QwO5yuPm.js → onboarding.finalize-Bkcwe5RS.js} +51 -51
  195. package/dist/{onboarding.finalize-dsCUTKCQ.js → onboarding.finalize-CXAQzVXM.js} +32 -32
  196. package/dist/{onboarding.gateway-config-BZDShYzP.js → onboarding.gateway-config-3JMN1xRf.js} +22 -22
  197. package/dist/{onboarding.gateway-config-Ctd1_QW4.js → onboarding.gateway-config-Ft3f6Jba.js} +11 -11
  198. package/dist/{openai-model-default-Dxlm7Pvs.js → openai-model-default-BVPmAuXK.js} +3 -3
  199. package/dist/{openai-model-default-DT9-42Xb.js → openai-model-default-CDDFpxUr.js} +3 -3
  200. package/dist/{outbound-send-deps-DPsU_Xdy.js → outbound-send-deps-Dmc3B-LK.js} +1 -1
  201. package/dist/{pairing-cli-PtlNv7Gr.js → pairing-cli-B_icqS8Y.js} +9 -9
  202. package/dist/{pairing-cli-C1TeY-2m.js → pairing-cli-CJGA4j6G.js} +15 -15
  203. package/dist/{pairing-store-5oyzSW2X.js → pairing-store-BGf29nPx.js} +4 -4
  204. package/dist/{pairing-store-B9MEud_Y.js → pairing-store-CtBnCGHZ.js} +2 -2
  205. package/dist/{pairing-token-Cup-49D-.js → pairing-token-Bnr7QjVF.js} +1 -1
  206. package/dist/{pairing-token-BaZLnDjo.js → pairing-token-CURbSHdi.js} +1 -1
  207. package/dist/{path-env-C8hRAfiL.js → path-env-DuQralyy.js} +1 -1
  208. package/dist/{paths-By0XjHBk.js → paths-BSzKwaxE.js} +1 -4
  209. package/dist/{paths-BldkKgCk.js → paths-CJcw9nbZ.js} +1 -1
  210. package/dist/{paths-gcw23t43.js → paths-CNexk5_o.js} +1 -1
  211. package/dist/{paths-7zaGPdLp.js → paths-CsQkeUQ3.js} +1 -1
  212. package/dist/{paths-DeDKrl27.js → paths-Dc6A9_vI.js} +1 -1
  213. package/dist/{pi-auth-json-BOXWkXms.js → pi-auth-json-CUZ7IgY7.js} +1 -1
  214. package/dist/{pi-auth-json-DVUJqaKg.js → pi-auth-json-SHGGQzOL.js} +1 -1
  215. package/dist/{pi-embedded-Cp7d6jtB.js → pi-embedded-CGebiST2.js} +10 -13
  216. package/dist/{pi-embedded-helpers-CVKIHnFv.js → pi-embedded-helpers-BwBjqJM5.js} +2 -2
  217. package/dist/{pi-embedded-helpers-DMVyRPBT.js → pi-embedded-helpers-CAdI9wJ5.js} +4 -4
  218. package/dist/{pi-tools.policy-8_wTu7v2.js → pi-tools.policy-BaRznBvu.js} +3 -3
  219. package/dist/{pi-tools.policy-C5aC-K5q.js → pi-tools.policy-Dyx3nBmp.js} +5 -5
  220. package/dist/{plugin-auto-enable-CYoZQPJO.js → plugin-auto-enable-D2TNEv3x.js} +4 -4
  221. package/dist/{plugin-auto-enable-BWd5lJQf.js → plugin-auto-enable-DSliW8o4.js} +3 -3
  222. package/dist/{plugin-registry-BG51uZOA.js → plugin-registry-D7ACpV2Y.js} +3 -3
  223. package/dist/{plugin-registry-BouuQy-X.js → plugin-registry-d4hMhLLZ.js} +5 -5
  224. package/dist/plugin-sdk/gateway/protocol/index.d.ts +2 -5
  225. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +0 -1
  226. package/dist/{plugins-CypN_04v.js → plugins-DuuHorqi.js} +1 -1
  227. package/dist/{plugins-cli-Bk7Al8u3.js → plugins-cli-CPf1hMaZ.js} +76 -76
  228. package/dist/{plugins-cli-B-zVOiQN.js → plugins-cli-D1gd8p9T.js} +58 -58
  229. package/dist/{ports-BgvsHTN5.js → ports-BAzQoIw0.js} +2 -2
  230. package/dist/{ports-YkSuli-C.js → ports-Cv4kt1bT.js} +1 -1
  231. package/dist/{ports-BxtK6PMH.js → ports-DRHSHvqY.js} +2 -2
  232. package/dist/{ports-CduvYJlk.js → ports-DqxP-bXz.js} +3 -3
  233. package/dist/{program-BOh0XGsA.js → program-C19G7o-Q.js} +63 -63
  234. package/dist/{program-context-D73fzUUe.js → program-context-BSUkEz3n.js} +39 -39
  235. package/dist/{progress-B3rWk9lR.js → progress-CyPyGCDn.js} +2 -2
  236. package/dist/{prompt-select-styled-Bz1VV3Qu.js → prompt-select-styled-B5wlPYN5.js} +40 -40
  237. package/dist/{prompt-select-styled-Bj-hrPCx.js → prompt-select-styled-CnYM7W0j.js} +24 -24
  238. package/dist/{prompt-style-LtRrtcTi.js → prompt-style-Cad0BDRS.js} +1 -1
  239. package/dist/{provider-auth-helpers-BK6NFk2Q.js → provider-auth-helpers-BUC4xGK9.js} +5 -5
  240. package/dist/{provider-auth-helpers-D3hXI6HN.js → provider-auth-helpers-DpRoNr_8.js} +7 -7
  241. package/dist/{push-apns-C1guJr4R.js → push-apns-Bm39oOO9.js} +5 -5
  242. package/dist/{push-apns-CMxk3Hxf.js → push-apns-DqmFEcqh.js} +3 -3
  243. package/dist/{pw-ai-CE2TBGif.js → pw-ai-B0-pgbYu.js} +9 -9
  244. package/dist/{pw-ai-EtT_bBJY.js → pw-ai-B2NuWIL7.js} +13 -13
  245. package/dist/{pw-ai-w6Qalz1W.js → pw-ai-BB1pJj9_.js} +1 -1
  246. package/dist/{pw-ai-C5MJKzUM.js → pw-ai-BsEf8C15.js} +1 -1
  247. package/dist/{qmd-manager--xIse9H_.js → qmd-manager--kGuC39q.js} +4 -4
  248. package/dist/{qmd-manager-DgCmfS8D.js → qmd-manager-358OTDns.js} +8 -8
  249. package/dist/{qr-cli-BeHlC33g.js → qr-cli-Cx7DYTSk.js} +5 -5
  250. package/dist/{qr-cli-zto9YWnY.js → qr-cli-hPIeUYAT.js} +11 -11
  251. package/dist/{redact-identifier-B1VHIbnd.js → redact-identifier-Cm1VfV7E.js} +4 -4
  252. package/dist/{register.agent-CNhg2KUt.js → register.agent-CCKcgAXs.js} +91 -91
  253. package/dist/{register.agent-COv5OPLQ.js → register.agent-DZuxoC0a.js} +71 -71
  254. package/dist/register.configure-CJErdFO_.js +129 -0
  255. package/dist/register.configure-JT8T7HO5.js +125 -0
  256. package/dist/{register.maintenance-BAK-DiQY.js → register.maintenance-CKsv0lok.js} +70 -70
  257. package/dist/{register.maintenance-B_slxJa6.js → register.maintenance-DDzKUGYJ.js} +98 -98
  258. package/dist/{register.message-Bbtej3vy.js → register.message-CpOXi1rz.js} +74 -74
  259. package/dist/{register.message-CCBmn5ja.js → register.message-_bfhetTg.js} +55 -55
  260. package/dist/{register.onboard-Cu2KnArg.js → register.onboard-BHtTh0b_.js} +42 -42
  261. package/dist/{register.onboard-B3jO_Goy.js → register.onboard-CkIM3hU7.js} +24 -24
  262. package/dist/{register.setup-Ca6zdWpf.js → register.setup-CLhdFQHW.js} +42 -42
  263. package/dist/{register.setup-CYSISTDO.js → register.setup-CYtYDKMU.js} +27 -27
  264. package/dist/{register.status-health-sessions-D9p0ClqJ.js → register.status-health-sessions-DZnebsxZ.js} +60 -60
  265. package/dist/{register.status-health-sessions-CGbg9k6d.js → register.status-health-sessions-DmX0DLAt.js} +39 -39
  266. package/dist/{register.subclis-loifbhVx.js → register.subclis-CnDo2jzv.js} +29 -29
  267. package/dist/{registry-Sbac4a4z.js → registry-DKJLAPDB.js} +2 -2
  268. package/dist/{replies-PetyGT0p.js → replies-B2O2eRh6.js} +3 -3
  269. package/dist/{replies-Dj640LxQ.js → replies-DIHkSwoW.js} +2 -2
  270. package/dist/{reply-prefix-CXsO5E1Z.js → reply-prefix-B7pYEiW_.js} +1 -1
  271. package/dist/{reply-prefix-DKeEUCUp.js → reply-prefix-BOdARKaY.js} +1 -1
  272. package/dist/{resolve-route-8JoEBwi6.js → resolve-route-CRWE36h5.js} +4 -4
  273. package/dist/{resolve-route-BcYnh5es.js → resolve-route-DNKcB7Q9.js} +1 -1
  274. package/dist/{routes-CJ4en0jL.js → routes-BMShi_eY.js} +7 -7
  275. package/dist/{routes-B5y-oAKp.js → routes-Cio8is5Y.js} +5 -5
  276. package/dist/{rpc-qWm1bRo5.js → rpc-CEhoSTGo.js} +1 -1
  277. package/dist/{rpc-ElDiKzq4.js → rpc-D0Ldc6Hv.js} +3 -3
  278. package/dist/{run-main-B7Ria3zD.js → run-main-BIRbWKyA.js} +73 -73
  279. package/dist/{runtime-guard-oeRbIq84.js → runtime-guard-BZ3_1QqS.js} +1 -1
  280. package/dist/{sandbox-BJgHc4Vu.js → sandbox-B4RfQ7k1.js} +9 -9
  281. package/dist/{sandbox-C8Gh5iJW.js → sandbox-C-UeHmuJ.js} +11 -11
  282. package/dist/{sandbox-cli-CSudrHYL.js → sandbox-cli-B43FqqPT.js} +17 -17
  283. package/dist/{sandbox-cli-DkMmnojU.js → sandbox-cli-CNAPNXJ4.js} +29 -29
  284. package/dist/{security-cli-pLoqKkfb.js → security-cli-BSd8_Gsq.js} +38 -38
  285. package/dist/{security-cli-B2lCR2xX.js → security-cli-DDM0Z6IW.js} +27 -27
  286. package/dist/{send-DuYvWRLE.js → send-DSK6O8SC.js} +9 -9
  287. package/dist/{send-CY9na-Jw.js → send-EluKytgO.js} +3 -3
  288. package/dist/{server-context-DdWWaDf6.js → server-context-CDTuNR-O.js} +5 -5
  289. package/dist/{server-context-CJFU_WfI.js → server-context-DFO6o83F.js} +8 -8
  290. package/dist/{server-methods-Dk_EnINI.js → server-methods-Dz6NGEg3.js} +35 -59
  291. package/dist/{server-methods-RhVqtIqB.js → server-methods-vp5zi6v5.js} +41 -65
  292. package/dist/{server-node-events-BHegSgG9.js → server-node-events-4ufB_olv.js} +55 -55
  293. package/dist/{server-node-events-UQx561GA.js → server-node-events-B7UtUhkC.js} +74 -74
  294. package/dist/{service-BCu0FBzN.js → service-AP9pR9R5.js} +1 -1
  295. package/dist/{session-cost-usage-5VmVPhKy.js → session-cost-usage-Cj3vd7lZ.js} +1 -1
  296. package/dist/{session-cost-usage-XhPrxXSs.js → session-cost-usage-DYcv40ss.js} +1 -1
  297. package/dist/{session-utils-DFJztVrF.js → session-utils-CgGDr4eh.js} +12 -12
  298. package/dist/{session-utils-CAVPV2Hh.js → session-utils-D1VcHni_.js} +7 -7
  299. package/dist/{sessions-CqLQkkWg.js → sessions-BNEDanZO.js} +4 -4
  300. package/dist/{sessions-BsGGoTdl.js → sessions-Dh88Kqd6.js} +9 -9
  301. package/dist/{sessions-BDM9kNY0.js → sessions-iLfSd6VD.js} +5 -5
  302. package/dist/{shared-CpwtQRJB.js → shared-CIeW3aWF.js} +4 -4
  303. package/dist/{shared-D7tsGdxc.js → shared-DP6YX7_w.js} +1 -1
  304. package/dist/{shared-B7nP44vU.js → shared-DmYHvtn2.js} +2 -2
  305. package/dist/{shared-CbUpEKXt.js → shared-_wwqvx84.js} +3 -3
  306. package/dist/{skill-commands-B45w-suH.js → skill-commands-5QB5E8bv.js} +4 -4
  307. package/dist/{skill-commands-CRQniaHy.js → skill-commands-CcCCVblU.js} +4 -4
  308. package/dist/{skills-CTcjFd_F.js → skills-BP6p7GnN.js} +3 -3
  309. package/dist/{skills-haW9gU7e.js → skills-Bmjf5nFv.js} +3 -3
  310. package/dist/{skills-cli-9Mlb7VRg.js → skills-cli-BJDvUT_e.js} +13 -13
  311. package/dist/{skills-cli-CV_42wby.js → skills-cli-Byp9MfZh.js} +17 -17
  312. package/dist/{skills-install-B4JPO_Np.js → skills-install-BB27sD4d.js} +4 -4
  313. package/dist/{skills-install-D5ikt72d.js → skills-install-BzqoHn0x.js} +3 -3
  314. package/dist/{skills-remote-BW2GvG2l.js → skills-remote-CqwR3Zvp.js} +5 -5
  315. package/dist/{skills-remote-BASG1Doo.js → skills-remote-DHfuS68n.js} +4 -4
  316. package/dist/{skills-status-1iVfuVIG.js → skills-status-01KNlWUS.js} +3 -3
  317. package/dist/{skills-status-C9lLJu0B.js → skills-status-BNDqwHkP.js} +3 -3
  318. package/dist/{sqlite-DL_ZWVN-.js → sqlite-DBEvS-Ne.js} +2 -2
  319. package/dist/{sqlite-67BqaVPd.js → sqlite-l3CZYU6t.js} +1 -1
  320. package/dist/{status-CrddsMfu.js → status-B0HecH1s.js} +4 -4
  321. package/dist/{status-D5RhVO0A.js → status-BD8gFYKH.js} +18 -18
  322. package/dist/{status-DPu7qNXE.js → status-DEXnB1sw.js} +27 -27
  323. package/dist/{status-Bci6O3aA.js → status-MMLxoRgQ.js} +3 -3
  324. package/dist/{status.update-D5CachQ_.js → status.update-Be8PuHCh.js} +2 -2
  325. package/dist/{status.update-Dfd0eZOH.js → status.update-CB9e3eWW.js} +2 -2
  326. package/dist/{subagent-registry-CsXaK_sy.js → subagent-registry-C57PFGHU.js} +61 -61
  327. package/dist/{subsystem-CHbO_DkH.js → subsystem-CtH6J8AV.js} +1 -1
  328. package/dist/{synthesis-BwcfS9jt.js → synthesis-CQdzrLFL.js} +4 -4
  329. package/dist/{synthesis-CU_MR7nV.js → synthesis-CjsIBd8X.js} +71 -71
  330. package/dist/{synthesis-dplLmFIP.js → synthesis-DSdF0vsi.js} +4 -4
  331. package/dist/{synthesis-BoZf8BeO.js → synthesis-j_kjlFo1.js} +52 -52
  332. package/dist/{system-cli-CCn-08Zm.js → system-cli-BM8KbtUc.js} +18 -18
  333. package/dist/{system-cli-D5FffFX5.js → system-cli-CQFH_HwX.js} +10 -10
  334. package/dist/{systemd-bkj5giUQ.js → systemd-9LEEqibe.js} +2 -2
  335. package/dist/{systemd-hints-UeG2BDXq.js → systemd-hints-A1W3AdVo.js} +3 -3
  336. package/dist/{systemd-hints-CufcSfMk.js → systemd-hints-BejQ6J2Y.js} +2 -2
  337. package/dist/{systemd-linger-DVkUgWAi.js → systemd-linger-PqG8iGCt.js} +2 -2
  338. package/dist/{table-Sfrx6RZ-.js → table-CSEp22Mk.js} +1 -1
  339. package/dist/{table-B4DunWtf.js → table-DkAQzCOR.js} +2 -2
  340. package/dist/{tailscale-G_tEEN9T.js → tailscale-D7dC-5EX.js} +3 -3
  341. package/dist/{tokens-BdVB8KXo.js → tokens-BKbemuIk.js} +1 -1
  342. package/dist/{tokens-h4i8ww8n.js → tokens-K3kGchJA.js} +1 -1
  343. package/dist/{tool-display-BngPYwnR.js → tool-display-Dr6VaTg5.js} +1 -1
  344. package/dist/{tool-display-DccYrlOh.js → tool-display-wSdT0Ynz.js} +1 -1
  345. package/dist/{tool-loop-detection-ckNnHN4a.js → tool-loop-detection-CLDr_JBu.js} +1 -1
  346. package/dist/{tool-loop-detection-DldKffR8.js → tool-loop-detection-CSSq5kkt.js} +4 -4
  347. package/dist/{trash-S6FbJcDo.js → trash-BjVrPcAx.js} +1 -1
  348. package/dist/{tui-DZ8gksSZ.js → tui-D0j61PXx.js} +8 -8
  349. package/dist/{tui-DroW8IOb.js → tui-DFuScHlA.js} +10 -10
  350. package/dist/{tui-cli-CyBJYh9u.js → tui-cli-25xTveHh.js} +24 -24
  351. package/dist/{tui-cli-1SpmbQMM.js → tui-cli-C3dXNtPo.js} +36 -36
  352. package/dist/{unified-runner-BFLLzEHE.js → unified-runner-BNt7TQKM.js} +10 -13
  353. package/dist/{unified-runner-CSPkKZHX.js → unified-runner-DCiPB--z.js} +73 -73
  354. package/dist/{update-BITFZPr2.js → update-C1rkPV1C.js} +3 -3
  355. package/dist/{update-OkPZ3jjl.js → update-CjZgU686.js} +3 -3
  356. package/dist/{update-check-CMbKkelk.js → update-check-CZxZhEXr.js} +2 -2
  357. package/dist/{update-cli-Dh5dvdv-.js → update-cli-CWufRpkr.js} +104 -104
  358. package/dist/{update-cli-yW6Xl6fs.js → update-cli-Dl_QbjXc.js} +77 -77
  359. package/dist/{update-runner-BI8ZSR1b.js → update-runner-Dq5UYQbo.js} +5 -5
  360. package/dist/{update-runner-CIgLduhH.js → update-runner-ENJw0Mco.js} +2 -2
  361. package/dist/{utils-CTPsqyE_.js → utils-BU8jVQFM.js} +1 -1
  362. package/dist/{webhooks-cli-Cwhu9vyD.js → webhooks-cli-Clx8DGfA.js} +14 -14
  363. package/dist/{webhooks-cli-4bmyKzwb.js → webhooks-cli-UfO_WffC.js} +11 -11
  364. package/dist/{widearea-dns-BZ7fV_kq.js → widearea-dns-C5NqCQ3L.js} +1 -1
  365. package/dist/{widearea-dns-D9KXb2gb.js → widearea-dns-drOINmDM.js} +1 -1
  366. package/dist/{with-timeout-D_FOTx48.js → with-timeout-BE7lxhxW.js} +2 -2
  367. package/dist/{with-timeout-bWr6yBeX.js → with-timeout-BcL6qAbd.js} +2 -2
  368. package/dist/{workspace-DxscDsm6.js → workspace-B3sO7QlN.js} +2 -2
  369. package/dist/{workspace-BHDa_VCi.js → workspace-Bb1HX2I0.js} +1 -1
  370. package/dist/{workspace-dirs-2xcWGse3.js → workspace-dirs-23IYtZj2.js} +1 -1
  371. package/dist/{workspace-dirs-aYEM1rQE.js → workspace-dirs-D5OnUmvw.js} +1 -1
  372. package/extensions/memory-core/node_modules/.bin/symi +0 -0
  373. package/extensions/msteams/node_modules/.bin/symi +0 -0
  374. package/extensions/outlook/node_modules/.bin/symi +0 -0
  375. package/extensions/slack/node_modules/.bin/symi +0 -0
  376. package/package.json +108 -79
  377. package/dist/cli-CK62Eh_9.js +0 -128
  378. package/dist/control-ui/css/revert-red-theme.md +0 -141
  379. package/dist/control-ui/css/style.css +0 -5843
  380. package/dist/control-ui/css/style.css.backup-2026-03-03-162525 +0 -3546
  381. package/dist/control-ui/css/style.css.backup-before-red-2026-03-03-162525 +0 -3546
  382. package/dist/control-ui/css/style.css.backup-before-red-theme-2026-03-03-162530 +0 -3546
  383. package/dist/control-ui/css/style.css.pre-2row +0 -2165
  384. package/dist/control-ui/css/style.css.pre-brand +0 -1776
  385. package/dist/control-ui/css/style.css.pre-history +0 -1974
  386. package/dist/control-ui/css/style.css.pre-nav +0 -2264
  387. package/dist/control-ui/css/style.css.pre-newsession +0 -1898
  388. package/dist/control-ui/css/style.css.pre-queue +0 -2195
  389. package/dist/control-ui/css/style.css.pre-red-prompt +0 -2524
  390. package/dist/control-ui/css/style.css.pre-stop +0 -2239
  391. package/dist/control-ui/css/style.css.pre-textarea +0 -2184
  392. package/dist/control-ui/css/style.css.pre-watchdog +0 -1848
  393. package/dist/control-ui/css/style.css.red-theme +0 -2999
  394. package/dist/control-ui/index.html +0 -1042
  395. package/dist/control-ui/js/app.js +0 -1304
  396. package/dist/control-ui/js/app.js.pre-2row +0 -463
  397. package/dist/control-ui/js/app.js.pre-heartbeat-filter +0 -595
  398. package/dist/control-ui/js/app.js.pre-newsession +0 -408
  399. package/dist/control-ui/js/app.js.pre-queue +0 -476
  400. package/dist/control-ui/js/app.js.pre-stop +0 -564
  401. package/dist/control-ui/js/app.js.pre-textarea +0 -467
  402. package/dist/control-ui/js/app.js.pre-watchdog +0 -293
  403. package/dist/control-ui/js/connections.js +0 -438
  404. package/dist/control-ui/js/gateway.js +0 -233
  405. package/dist/control-ui/js/gateway.js.pre-stop +0 -110
  406. package/dist/control-ui/js/history.js +0 -732
  407. package/dist/control-ui/js/logs.js +0 -238
  408. package/dist/control-ui/js/menu.js +0 -230
  409. package/dist/control-ui/js/menu.js.pre-nav +0 -66
  410. package/dist/control-ui/js/metrics.js +0 -53
  411. package/dist/control-ui/js/models.js +0 -138
  412. package/dist/control-ui/js/render.js +0 -882
  413. package/dist/control-ui/js/render.test.js +0 -112
  414. package/dist/control-ui/js/scheduling.js +0 -461
  415. package/dist/control-ui/js/settings.js +0 -909
  416. package/dist/control-ui/js/slash-autocomplete.js +0 -168
  417. package/dist/control-ui/js/subagents.js +0 -560
  418. package/dist/control-ui/js/utils.js +0 -29
  419. package/dist/control-ui/vendor/highlight.min.js +0 -2518
  420. package/dist/control-ui/vendor/marked.min.js +0 -69
  421. package/dist/register.configure-RhKVlfWH.js +0 -125
  422. package/dist/register.configure-q33027ym.js +0 -129
@@ -1,1848 +0,0 @@
1
- /* ── Reset & Base ─────────────────────────────────────────────────── */
2
- *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
3
-
4
- :root {
5
- --bg: #07070f;
6
- --glass-bg: rgba(255,255,255,0.04);
7
- --glass-bg-hover: rgba(255,255,255,0.07);
8
- --glass-border: rgba(255,255,255,0.08);
9
- --glass-border-strong: rgba(255,255,255,0.14);
10
- --text: rgba(255,255,255,0.92);
11
- --text-muted: rgba(255,255,255,0.45);
12
- --text-dim: rgba(255,255,255,0.25);
13
- --accent-cyan: #00d4ff;
14
- --accent-purple: #8b5cf6;
15
- --accent-pink: #f472b6;
16
- --accent-green: #34d399;
17
- --accent-blue: #60a5fa;
18
- --shadow: 0 8px 32px rgba(0,0,0,0.5);
19
- --blur: blur(24px) saturate(160%);
20
- --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
21
- --font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace;
22
- }
23
-
24
- html, body {
25
- height: 100%;
26
- width: 100%;
27
- overflow: hidden;
28
- background: var(--bg);
29
- color: var(--text);
30
- font-family: var(--font);
31
- font-size: 13px;
32
- line-height: 1.5;
33
- -webkit-font-smoothing: antialiased;
34
- }
35
-
36
- /* ── Background ───────────────────────────────────────────────────── */
37
- .bg-orbs {
38
- position: fixed;
39
- inset: 0;
40
- pointer-events: none;
41
- z-index: 0;
42
- overflow: hidden;
43
- }
44
-
45
- .orb {
46
- position: absolute;
47
- border-radius: 50%;
48
- filter: blur(120px);
49
- opacity: 0.18;
50
- animation: drift 20s ease-in-out infinite alternate;
51
- }
52
-
53
- .orb-1 {
54
- width: 700px; height: 700px;
55
- background: radial-gradient(circle, var(--accent-cyan), transparent 70%);
56
- top: -200px; left: -150px;
57
- animation-duration: 25s;
58
- }
59
-
60
- .orb-2 {
61
- width: 600px; height: 600px;
62
- background: radial-gradient(circle, var(--accent-purple), transparent 70%);
63
- bottom: -100px; right: -100px;
64
- animation-duration: 30s;
65
- animation-delay: -8s;
66
- }
67
-
68
- .orb-3 {
69
- width: 500px; height: 500px;
70
- background: radial-gradient(circle, var(--accent-pink), transparent 70%);
71
- top: 40%; left: 45%;
72
- animation-duration: 22s;
73
- animation-delay: -4s;
74
- opacity: 0.1;
75
- }
76
-
77
- @keyframes drift {
78
- 0% { transform: translate(0, 0) scale(1); }
79
- 33% { transform: translate(60px, -40px) scale(1.05); }
80
- 66% { transform: translate(-40px, 60px) scale(0.95); }
81
- 100% { transform: translate(30px, 20px) scale(1.02); }
82
- }
83
-
84
- .bg-grid {
85
- position: fixed;
86
- inset: 0;
87
- z-index: 0;
88
- pointer-events: none;
89
- background-image:
90
- linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
91
- linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
92
- background-size: 48px 48px;
93
- mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
94
- }
95
-
96
- /* ── Glass Panel ──────────────────────────────────────────────────── */
97
- .glass-panel {
98
- position: relative;
99
- background: var(--glass-bg);
100
- backdrop-filter: var(--blur);
101
- -webkit-backdrop-filter: var(--blur);
102
- border: 1px solid var(--glass-border);
103
- border-radius: 14px;
104
- padding: 14px;
105
- box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.06);
106
- transition: border-color 0.3s, box-shadow 0.3s;
107
- }
108
-
109
- .glass-panel:hover {
110
- border-color: var(--glass-border-strong);
111
- box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.1), 0 0 0 1px rgba(0,212,255,0.05);
112
- }
113
-
114
- .glass-panel::before {
115
- content: '';
116
- position: absolute;
117
- inset: 0;
118
- border-radius: 16px;
119
- background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 60%);
120
- pointer-events: none;
121
- }
122
-
123
- .panel-sm { padding: 10px 12px; }
124
-
125
- .panel-label {
126
- font-size: 10px;
127
- font-family: var(--font-mono);
128
- font-weight: 600;
129
- letter-spacing: 0.18em;
130
- color: var(--accent-cyan);
131
- margin-bottom: 12px;
132
- opacity: 0.9;
133
- }
134
-
135
- /* ── Brand Panel ─────────────────────────────────────────────────── */
136
- .brand-panel {
137
- display: flex;
138
- align-items: center;
139
- gap: 14px;
140
- padding: 14px 16px;
141
- overflow: hidden;
142
- }
143
-
144
- .brand-panel::after {
145
- content: '';
146
- position: absolute;
147
- inset: 0;
148
- border-radius: 14px;
149
- background: linear-gradient(
150
- 120deg,
151
- rgba(0,212,255,0.06) 0%,
152
- rgba(139,92,246,0.06) 50%,
153
- rgba(0,212,255,0.03) 100%
154
- );
155
- pointer-events: none;
156
- }
157
-
158
- .brand-mark {
159
- flex-shrink: 0;
160
- width: 36px;
161
- height: 36px;
162
- border-radius: 10px;
163
- background: linear-gradient(135deg, rgba(0,212,255,0.15), rgba(139,92,246,0.15));
164
- border: 1px solid rgba(0,212,255,0.2);
165
- display: flex;
166
- align-items: center;
167
- justify-content: center;
168
- font-size: 16px;
169
- box-shadow: 0 0 16px rgba(0,212,255,0.1), inset 0 1px 0 rgba(255,255,255,0.1);
170
- }
171
-
172
- .brand-text {
173
- display: flex;
174
- flex-direction: column;
175
- gap: 2px;
176
- min-width: 0;
177
- }
178
-
179
- .brand-name {
180
- font-family: var(--font-mono);
181
- font-size: 18px;
182
- font-weight: 700;
183
- letter-spacing: 0.22em;
184
- background: linear-gradient(90deg, #00d4ff 0%, #a78bfa 60%, #00d4ff 120%);
185
- background-size: 200% auto;
186
- -webkit-background-clip: text;
187
- -webkit-text-fill-color: transparent;
188
- background-clip: text;
189
- animation: brand-shimmer 6s linear infinite;
190
- line-height: 1;
191
- }
192
-
193
- .brand-sub {
194
- font-family: var(--font-mono);
195
- font-size: 9px;
196
- letter-spacing: 0.16em;
197
- color: var(--text-dim);
198
- opacity: 0.6;
199
- text-transform: uppercase;
200
- }
201
-
202
- @keyframes brand-shimmer {
203
- 0% { background-position: 0% center; }
204
- 100% { background-position: 200% center; }
205
- }
206
-
207
- /* ── Metric Rows ──────────────────────────────────────────────────── */
208
- .metric-row {
209
- display: flex;
210
- align-items: center;
211
- gap: 8px;
212
- margin-bottom: 7px;
213
- }
214
-
215
- .metric-row:last-child { margin-bottom: 0; }
216
-
217
- .metric-name {
218
- font-family: var(--font-mono);
219
- font-size: 10px;
220
- color: var(--text-muted);
221
- width: 38px;
222
- flex-shrink: 0;
223
- }
224
-
225
- .metric-bar {
226
- flex: 1;
227
- height: 3px;
228
- background: rgba(255,255,255,0.08);
229
- border-radius: 99px;
230
- overflow: hidden;
231
- }
232
-
233
- .metric-fill {
234
- --accent: var(--accent-cyan);
235
- height: 100%;
236
- width: 0%;
237
- border-radius: 99px;
238
- background: var(--accent);
239
- box-shadow: 0 0 6px var(--accent);
240
- transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
241
- }
242
-
243
- .metric-val {
244
- font-family: var(--font-mono);
245
- font-size: 10px;
246
- color: var(--text-muted);
247
- width: 40px;
248
- text-align: right;
249
- flex-shrink: 0;
250
- }
251
-
252
- /* ── Network / Status Rows ────────────────────────────────────────── */
253
- .net-row {
254
- display: flex;
255
- align-items: center;
256
- gap: 7px;
257
- margin-bottom: 8px;
258
- min-height: 20px;
259
- }
260
- .net-row:last-child { margin-bottom: 0; }
261
-
262
- .net-name {
263
- font-size: 12px;
264
- color: var(--text);
265
- flex: 1;
266
- }
267
- .net-name.muted { color: var(--text-muted); }
268
-
269
- .net-ip {
270
- font-family: var(--font-mono);
271
- font-size: 11px;
272
- color: var(--text-muted);
273
- }
274
-
275
- .status-dot {
276
- width: 7px; height: 7px;
277
- border-radius: 50%;
278
- flex-shrink: 0;
279
- }
280
- .dot-green { background: var(--accent-green); box-shadow: 0 0 6px var(--accent-green); }
281
- .dot-blue { background: var(--accent-blue); box-shadow: 0 0 6px var(--accent-blue); }
282
- .dot-yellow { background: #fbbf24; box-shadow: 0 0 6px #fbbf24; }
283
-
284
- .pulse {
285
- animation: pulse-glow 2s ease-in-out infinite;
286
- }
287
- @keyframes pulse-glow {
288
- 0%, 100% { opacity: 1; box-shadow: 0 0 6px var(--accent-green); }
289
- 50% { opacity: 0.5; box-shadow: 0 0 12px var(--accent-green), 0 0 24px var(--accent-green); }
290
- }
291
-
292
- .divider {
293
- height: 1px;
294
- background: var(--glass-border);
295
- margin: 8px 0;
296
- }
297
-
298
- .badge {
299
- font-family: var(--font-mono);
300
- font-size: 9px;
301
- font-weight: 700;
302
- letter-spacing: 0.08em;
303
- padding: 2px 7px;
304
- border-radius: 99px;
305
- }
306
- .badge-green { background: rgba(52,211,153,0.12); color: var(--accent-green); border: 1px solid rgba(52,211,153,0.2); }
307
- .badge-blue { background: rgba(96,165,250,0.12); color: var(--accent-blue); border: 1px solid rgba(96,165,250,0.2); }
308
- .badge-cyan { background: rgba(0,212,255,0.10); color: var(--accent-cyan); border: 1px solid rgba(0,212,255,0.2); }
309
-
310
- /* ── Big Stats ────────────────────────────────────────────────────── */
311
- .big-stat {
312
- font-family: var(--font-mono);
313
- font-size: 15px;
314
- font-weight: 600;
315
- color: var(--text);
316
- letter-spacing: 0.02em;
317
- margin: 2px 0 2px;
318
- }
319
- .stat-sub {
320
- font-size: 10px;
321
- color: var(--text-dim);
322
- letter-spacing: 0.05em;
323
- }
324
-
325
- /* ── Model rows ───────────────────────────────────────────────────── */
326
- .model-row {
327
- display: flex;
328
- align-items: center;
329
- gap: 8px;
330
- margin-bottom: 8px;
331
- }
332
- .model-row:last-child { margin-bottom: 0; }
333
-
334
- .model-icon {
335
- font-size: 15px;
336
- color: var(--accent-cyan);
337
- flex-shrink: 0;
338
- text-shadow: 0 0 8px var(--accent-cyan);
339
- }
340
- .model-icon.dim { color: var(--text-dim); text-shadow: none; }
341
-
342
- .model-name {
343
- font-family: var(--font-mono);
344
- font-size: 12px;
345
- color: var(--text);
346
- }
347
- .model-name.dim { color: var(--text-dim); }
348
-
349
- .model-sub {
350
- font-size: 10px;
351
- color: var(--text-dim);
352
- letter-spacing: 0.06em;
353
- margin-top: 2px;
354
- }
355
-
356
- .active-model .model-name { color: var(--accent-cyan); }
357
-
358
- /* ── Agent Status Orb ─────────────────────────────────────────────── */
359
- .agent-status-panel { text-align: center; }
360
-
361
- .aso-orb-wrap {
362
- width: 120px;
363
- height: 120px;
364
- margin: 10px auto 14px;
365
- }
366
-
367
- .aso-svg {
368
- width: 100%;
369
- height: 100%;
370
- overflow: visible;
371
- }
372
-
373
- /* Orbit guide tracks — faint rings */
374
- .aso-track {
375
- fill: none;
376
- stroke: rgba(255,255,255,0.07);
377
- stroke-width: 1;
378
- }
379
-
380
- /* Arc segments */
381
- .aso-arc {
382
- fill: none;
383
- stroke: var(--aso-color);
384
- stroke-width: 1.8;
385
- stroke-linecap: round;
386
- filter: drop-shadow(0 0 3px var(--aso-color));
387
- }
388
- .aso-arc-dim { opacity: 0.5; }
389
-
390
- /* Core halo */
391
- .aso-core-halo {
392
- fill: var(--aso-color);
393
- opacity: 0.12;
394
- filter: blur(6px);
395
- }
396
-
397
- /* Core dot */
398
- .aso-core {
399
- fill: var(--aso-color);
400
- filter: drop-shadow(0 0 5px var(--aso-color));
401
- }
402
-
403
- /* Rotation groups — transform-origin at SVG center (50,50) */
404
- .aso-rot {
405
- transform-box: fill-box;
406
- transform-origin: center;
407
- }
408
-
409
- /* ── State: idle — slow cyan ── */
410
- #agent-status-panel[data-state="idle"] { --aso-color: rgba(0,212,255,0.75); }
411
- #agent-status-panel[data-state="idle"] .aso-rot1 { animation: aso-spin 8s linear infinite; }
412
- #agent-status-panel[data-state="idle"] .aso-rot2 { animation: aso-spin 13s linear infinite reverse; }
413
- #agent-status-panel[data-state="idle"] .aso-rot3 { animation: aso-spin 10s linear infinite; }
414
- #agent-status-panel[data-state="idle"] .aso-rot4 { animation: aso-spin 17s linear infinite reverse; }
415
- #agent-status-panel[data-state="idle"] .aso-rot5 { animation: aso-spin 12s linear infinite; }
416
- #agent-status-panel[data-state="idle"] .aso-core { animation: aso-breathe 3.5s ease-in-out infinite; }
417
-
418
- /* ── State: waiting — amber, a bit faster ── */
419
- #agent-status-panel[data-state="waiting"] { --aso-color: #f59e0b; }
420
- #agent-status-panel[data-state="waiting"] .aso-rot1 { animation: aso-spin 4s linear infinite; }
421
- #agent-status-panel[data-state="waiting"] .aso-rot2 { animation: aso-spin 6s linear infinite reverse; }
422
- #agent-status-panel[data-state="waiting"] .aso-rot3 { animation: aso-spin 5s linear infinite; }
423
- #agent-status-panel[data-state="waiting"] .aso-rot4 { animation: aso-spin 9s linear infinite reverse; }
424
- #agent-status-panel[data-state="waiting"] .aso-rot5 { animation: aso-spin 6s linear infinite; }
425
- #agent-status-panel[data-state="waiting"] .aso-core { animation: aso-pulse 1s ease-in-out infinite; }
426
-
427
- /* ── State: thinking — violet, fast spin ── */
428
- #agent-status-panel[data-state="thinking"] { --aso-color: #a78bfa; }
429
- #agent-status-panel[data-state="thinking"] .aso-rot1 { animation: aso-spin 1.1s linear infinite; }
430
- #agent-status-panel[data-state="thinking"] .aso-rot2 { animation: aso-spin 0.7s linear infinite reverse; }
431
- #agent-status-panel[data-state="thinking"] .aso-rot3 { animation: aso-spin 1.4s linear infinite; }
432
- #agent-status-panel[data-state="thinking"] .aso-rot4 { animation: aso-spin 0.5s linear infinite reverse; }
433
- #agent-status-panel[data-state="thinking"] .aso-rot5 { animation: aso-spin 1.8s linear infinite; }
434
- #agent-status-panel[data-state="thinking"] .aso-core { animation: aso-pulse 0.45s ease-in-out infinite; }
435
-
436
- /* ── State: streaming — green, medium flow ── */
437
- #agent-status-panel[data-state="streaming"] { --aso-color: #34d399; }
438
- #agent-status-panel[data-state="streaming"] .aso-rot1 { animation: aso-spin 2.2s linear infinite; }
439
- #agent-status-panel[data-state="streaming"] .aso-rot2 { animation: aso-spin 3.5s linear infinite reverse; }
440
- #agent-status-panel[data-state="streaming"] .aso-rot3 { animation: aso-spin 2.8s linear infinite; }
441
- #agent-status-panel[data-state="streaming"] .aso-rot4 { animation: aso-spin 4.5s linear infinite reverse; }
442
- #agent-status-panel[data-state="streaming"] .aso-rot5 { animation: aso-spin 3.2s linear infinite; }
443
- #agent-status-panel[data-state="streaming"] .aso-core { animation: aso-pulse 0.7s ease-in-out infinite; }
444
-
445
- /* ── State: done — brief flash, stays green ── */
446
- #agent-status-panel[data-state="done"] { --aso-color: #34d399; }
447
- #agent-status-panel[data-state="done"] .aso-rot1 { animation: aso-spin 0.4s linear infinite; }
448
- #agent-status-panel[data-state="done"] .aso-rot2 { animation: aso-spin 0.3s linear infinite reverse; }
449
- #agent-status-panel[data-state="done"] .aso-rot3 { animation: aso-spin 0.5s linear infinite; }
450
- #agent-status-panel[data-state="done"] .aso-rot4 { animation: aso-spin 0.25s linear infinite reverse; }
451
- #agent-status-panel[data-state="done"] .aso-rot5 { animation: aso-spin 0.6s linear infinite; }
452
- #agent-status-panel[data-state="done"] .aso-core { animation: aso-flash 0.4s ease-out forwards; }
453
-
454
- /* ── Keyframes ── */
455
- @keyframes aso-spin {
456
- from { transform: rotate(0deg); }
457
- to { transform: rotate(360deg); }
458
- }
459
- @keyframes aso-breathe {
460
- 0%, 100% { transform: scale(1); opacity: 0.75; }
461
- 50% { transform: scale(1.45); opacity: 1; }
462
- }
463
- @keyframes aso-pulse {
464
- 0%, 100% { transform: scale(1); }
465
- 50% { transform: scale(1.6); }
466
- }
467
- @keyframes aso-flash {
468
- 0% { transform: scale(2.5); opacity: 1; }
469
- 60% { transform: scale(1.2); opacity: 1; }
470
- 100% { transform: scale(1); opacity: 1; }
471
- }
472
-
473
- /* ── Status label & sub-text ── */
474
- .aso-label {
475
- font-family: var(--font-mono);
476
- font-size: 11px;
477
- font-weight: 700;
478
- letter-spacing: 0.22em;
479
- color: var(--aso-color);
480
- margin-bottom: 5px;
481
- text-shadow: 0 0 8px var(--aso-color);
482
- transition: color 0.4s ease, text-shadow 0.4s ease;
483
- }
484
- .aso-sub {
485
- font-size: 10px;
486
- color: var(--text-dim);
487
- letter-spacing: 0.04em;
488
- }
489
-
490
- /* ── Layout columns ───────────────────────────────────────────────── */
491
- .metrics-col {
492
- position: fixed;
493
- top: 24px;
494
- bottom: 120px;
495
- width: 360px;
496
- display: flex;
497
- flex-direction: column;
498
- gap: 12px;
499
- z-index: 10;
500
- overflow-y: auto;
501
- scrollbar-width: none;
502
- padding-bottom: 8px;
503
- }
504
- .metrics-col::-webkit-scrollbar { display: none; }
505
-
506
- /* Anchor panels adjacent to the centered 740px chat column, 16px gap */
507
- .metrics-left { left: calc(50% - 370px - 16px - 360px); }
508
- .metrics-right { right: calc(50% - 370px - 16px - 360px); }
509
-
510
- /* ── Response Area ────────────────────────────────────────────────── */
511
- .response-area {
512
- position: fixed;
513
- top: 0;
514
- left: calc(50% - 370px);
515
- right: calc(50% - 370px);
516
- bottom: 110px;
517
- z-index: 5;
518
- display: flex;
519
- flex-direction: column;
520
- justify-content: flex-start;
521
- padding: 32px 0 16px;
522
- overflow-y: auto;
523
- overflow-x: hidden;
524
- pointer-events: none;
525
- }
526
-
527
- /* Constrain all response content to a readable column, centered */
528
- .response-area > * {
529
- width: 100%;
530
- max-width: 740px;
531
- margin-left: auto;
532
- margin-right: auto;
533
- flex-shrink: 0;
534
- pointer-events: auto;
535
- }
536
-
537
- /* ── Message Bubbles ──────────────────────────────────────────────── */
538
- .message {
539
- pointer-events: auto;
540
- width: 100%;
541
- max-width: 740px;
542
- margin-bottom: 16px;
543
- animation: waterfall 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
544
- opacity: 0;
545
- transform: translateY(-20px);
546
- /* Allow bubble to fit content — don't impose a forced width on the child */
547
- display: block;
548
- }
549
-
550
- @keyframes waterfall {
551
- to { opacity: 1; transform: translateY(0); }
552
- }
553
-
554
- .message.user-msg .bubble {
555
- background: rgba(0,212,255,0.07);
556
- border: 1px solid rgba(0,212,255,0.18);
557
- border-radius: 12px 12px 4px 12px;
558
- padding: 10px 14px;
559
- display: inline-block;
560
- float: right;
561
- max-width: 75%;
562
- backdrop-filter: blur(12px);
563
- color: var(--text);
564
- font-size: 14.5px;
565
- clear: both;
566
- }
567
-
568
- .message.symi-msg .bubble {
569
- background: var(--glass-bg);
570
- border: 1px solid var(--glass-border);
571
- border-radius: 4px 12px 12px 12px;
572
- padding: 12px 16px;
573
- backdrop-filter: var(--blur);
574
- -webkit-backdrop-filter: var(--blur);
575
- box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.04);
576
- font-size: 14.5px;
577
- line-height: 1.75;
578
- color: var(--text);
579
- position: relative;
580
- clear: both;
581
- display: inline-block;
582
- width: fit-content;
583
- max-width: 100%;
584
- box-sizing: border-box;
585
- overflow: visible;
586
- }
587
-
588
- .message.symi-msg .bubble::before {
589
- content: '';
590
- position: absolute;
591
- top: 0; left: 0; right: 0;
592
- height: 1px;
593
- background: linear-gradient(90deg, transparent, rgba(0,212,255,0.3), transparent);
594
- }
595
-
596
- .message-clearfix { clear: both; }
597
-
598
- .typing-cursor {
599
- display: inline-block;
600
- width: 2px;
601
- height: 1em;
602
- background: var(--accent-cyan);
603
- margin-left: 2px;
604
- vertical-align: text-bottom;
605
- animation: blink 1s step-end infinite;
606
- box-shadow: 0 0 4px var(--accent-cyan);
607
- }
608
- @keyframes blink {
609
- 0%, 100% { opacity: 1; }
610
- 50% { opacity: 0; }
611
- }
612
-
613
- /* ── Floating Prompt Bar ──────────────────────────────────────────── */
614
- .prompt-wrap {
615
- position: fixed;
616
- bottom: 28px;
617
- left: calc(50% - 370px);
618
- right: calc(50% - 370px);
619
- z-index: 20;
620
- display: flex;
621
- justify-content: center;
622
- }
623
-
624
- .prompt-bar {
625
- width: 100%;
626
- max-width: 720px;
627
- display: flex;
628
- align-items: center;
629
- gap: 12px;
630
- background: rgba(255,255,255,0.05);
631
- backdrop-filter: blur(32px) saturate(200%);
632
- -webkit-backdrop-filter: blur(32px) saturate(200%);
633
- border: 1px solid rgba(255,255,255,0.12);
634
- border-radius: 99px;
635
- padding: 12px 16px;
636
- box-shadow:
637
- 0 0 0 1px rgba(0,212,255,0.08),
638
- 0 8px 40px rgba(0,0,0,0.6),
639
- 0 0 60px rgba(0,212,255,0.04),
640
- inset 0 1px 0 rgba(255,255,255,0.08);
641
- transition: border-color 0.3s, box-shadow 0.3s;
642
- cursor: text;
643
- }
644
-
645
- .prompt-bar:focus-within {
646
- border-color: rgba(0,212,255,0.3);
647
- box-shadow:
648
- 0 0 0 1px rgba(0,212,255,0.15),
649
- 0 8px 40px rgba(0,0,0,0.6),
650
- 0 0 80px rgba(0,212,255,0.08),
651
- inset 0 1px 0 rgba(255,255,255,0.1);
652
- }
653
-
654
- .prompt-icon {
655
- color: var(--accent-cyan);
656
- opacity: 0.7;
657
- flex-shrink: 0;
658
- display: flex;
659
- align-items: center;
660
- filter: drop-shadow(0 0 4px var(--accent-cyan));
661
- }
662
-
663
- .prompt-bar input {
664
- flex: 1;
665
- background: transparent;
666
- border: none;
667
- outline: none;
668
- color: var(--text);
669
- font-family: var(--font);
670
- font-size: 14px;
671
- letter-spacing: 0.01em;
672
- caret-color: var(--accent-cyan);
673
- }
674
-
675
- .prompt-bar input::placeholder {
676
- color: var(--text-dim);
677
- }
678
-
679
- .send-btn {
680
- background: rgba(0,212,255,0.12);
681
- border: 1px solid rgba(0,212,255,0.2);
682
- border-radius: 50%;
683
- width: 32px;
684
- height: 32px;
685
- display: flex;
686
- align-items: center;
687
- justify-content: center;
688
- color: var(--accent-cyan);
689
- cursor: pointer;
690
- flex-shrink: 0;
691
- transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
692
- }
693
-
694
- .send-btn:hover {
695
- background: rgba(0,212,255,0.22);
696
- box-shadow: 0 0 16px rgba(0,212,255,0.25);
697
- transform: scale(1.05);
698
- }
699
-
700
- .send-btn:active {
701
- transform: scale(0.95);
702
- }
703
-
704
- /* ── Thinking Bubble ──────────────────────────────────────────────── */
705
- .thinking-bubble {
706
- background: rgba(0,212,255,0.04) !important;
707
- border-color: rgba(0,212,255,0.15) !important;
708
- padding: 10px 16px !important;
709
- }
710
-
711
- .think-header {
712
- display: flex;
713
- align-items: center;
714
- gap: 10px;
715
- margin-bottom: 8px;
716
- }
717
-
718
- .think-badge {
719
- font-family: var(--font-mono);
720
- font-size: 9px;
721
- font-weight: 700;
722
- letter-spacing: 0.15em;
723
- color: var(--accent-cyan);
724
- text-shadow: 0 0 8px var(--accent-cyan);
725
- }
726
-
727
- .think-dots span {
728
- display: inline-block;
729
- color: var(--accent-cyan);
730
- animation: dot-pulse 1.2s ease-in-out infinite;
731
- font-size: 14px;
732
- opacity: 0;
733
- }
734
- .think-dots span:nth-child(1) { animation-delay: 0s; }
735
- .think-dots span:nth-child(2) { animation-delay: 0.2s; }
736
- .think-dots span:nth-child(3) { animation-delay: 0.4s; }
737
-
738
- @keyframes dot-pulse {
739
- 0%, 100% { opacity: 0; transform: translateY(0); }
740
- 50% { opacity: 1; transform: translateY(-3px); }
741
- }
742
-
743
- .think-bar-wrap {
744
- height: 2px;
745
- background: rgba(255,255,255,0.06);
746
- border-radius: 99px;
747
- overflow: hidden;
748
- }
749
-
750
- .think-bar {
751
- height: 100%;
752
- width: 0%;
753
- background: linear-gradient(90deg, transparent, var(--accent-cyan), transparent);
754
- border-radius: 99px;
755
- animation: think-scan 1s ease-in-out infinite;
756
- }
757
-
758
- @keyframes think-scan {
759
- 0% { width: 0%; margin-left: 0%; opacity: 1; }
760
- 50% { width: 60%; margin-left: 20%; opacity: 1; }
761
- 100% { width: 0%; margin-left: 100%; opacity: 0; }
762
- }
763
-
764
- /* ── Streaming Bubble ─────────────────────────────────────────────── */
765
- .stream-bubble {
766
- position: relative;
767
- }
768
-
769
- .stream-bubble.streaming {
770
- width: 100% !important;
771
- border-color: rgba(0,212,255,0.25) !important;
772
- box-shadow:
773
- 0 8px 32px rgba(0,0,0,0.5),
774
- 0 0 20px rgba(0,212,255,0.06),
775
- inset 0 1px 0 rgba(255,255,255,0.06) !important;
776
- animation: stream-pulse 1.8s ease-in-out infinite;
777
- }
778
-
779
- @keyframes stream-pulse {
780
- 0%, 100% { box-shadow: 0 8px 32px rgba(0,0,0,0.5), 0 0 20px rgba(0,212,255,0.06), inset 0 1px 0 rgba(255,255,255,0.06); }
781
- 50% { box-shadow: 0 8px 32px rgba(0,0,0,0.5), 0 0 40px rgba(0,212,255,0.12), inset 0 1px 0 rgba(255,255,255,0.06); }
782
- }
783
-
784
- .stream-bubble.streaming::after {
785
- content: '';
786
- position: absolute;
787
- top: 0; left: 0; right: 0;
788
- height: 1px;
789
- background: linear-gradient(90deg, transparent, var(--accent-cyan), transparent);
790
- opacity: 0.6;
791
- animation: top-scan 2s linear infinite;
792
- }
793
-
794
- @keyframes top-scan {
795
- 0% { transform: scaleX(0); transform-origin: left; opacity: 0.8; }
796
- 50% { transform: scaleX(1); transform-origin: left; opacity: 0.6; }
797
- 100% { transform: scaleX(0); transform-origin: right; opacity: 0; }
798
- }
799
-
800
- .stream-bubble.done {
801
- width: fit-content;
802
- max-width: 100%;
803
- border-color: rgba(255,255,255,0.1) !important;
804
- transition: border-color 0.8s, box-shadow 0.8s, width 0.3s ease;
805
- }
806
-
807
- /* ── Character spawn animation ────────────────────────────────────── */
808
- .char-spawn {
809
- display: inline;
810
- color: transparent;
811
- text-shadow: none;
812
- transition: color 0.12s ease, text-shadow 0.2s ease;
813
- }
814
-
815
- .char-spawn.char-visible {
816
- color: var(--text);
817
- text-shadow: 0 0 8px rgba(0,212,255,0.4);
818
- animation: char-settle 0.4s ease forwards;
819
- }
820
-
821
- @keyframes char-settle {
822
- 0% { color: var(--accent-cyan); text-shadow: 0 0 12px var(--accent-cyan), 0 0 24px rgba(0,212,255,0.3); }
823
- 40% { color: rgba(200,240,255,0.95); text-shadow: 0 0 6px rgba(0,212,255,0.2); }
824
- 100% { color: var(--text); text-shadow: none; }
825
- }
826
-
827
- /* ── Telemetry footer ─────────────────────────────────────────────── */
828
- .telemetry {
829
- display: flex;
830
- align-items: center;
831
- gap: 6px;
832
- margin-top: 10px;
833
- padding-top: 8px;
834
- border-top: 1px solid rgba(255,255,255,0.05);
835
- opacity: 0;
836
- transform: translateY(4px);
837
- transition: opacity 0.5s ease 0.2s, transform 0.5s ease 0.2s;
838
- }
839
-
840
- .telemetry.tele-visible {
841
- opacity: 1;
842
- transform: translateY(0);
843
- }
844
-
845
- .tele-item {
846
- font-family: var(--font-mono);
847
- font-size: 9px;
848
- color: var(--text-dim);
849
- letter-spacing: 0.06em;
850
- }
851
-
852
- .tele-sep {
853
- color: rgba(255,255,255,0.12);
854
- font-size: 9px;
855
- }
856
-
857
- /* ── Send button loading state ────────────────────────────────────── */
858
- .send-btn.btn-loading {
859
- animation: btn-spin 1s linear infinite;
860
- }
861
- @keyframes btn-spin {
862
- to { transform: rotate(360deg); }
863
- }
864
-
865
- /* ── Connection status ────────────────────────────────────────────── */
866
- .conn-status {
867
- position: fixed;
868
- top: 16px;
869
- left: 50%;
870
- transform: translateX(-50%);
871
- z-index: 30;
872
- display: flex;
873
- align-items: center;
874
- gap: 7px;
875
- background: var(--glass-bg);
876
- backdrop-filter: var(--blur);
877
- -webkit-backdrop-filter: var(--blur);
878
- border: 1px solid var(--glass-border);
879
- border-radius: 99px;
880
- padding: 5px 12px;
881
- pointer-events: none;
882
- }
883
-
884
- .conn-label {
885
- font-family: var(--font-mono);
886
- font-size: 9px;
887
- letter-spacing: 0.1em;
888
- color: var(--text-dim);
889
- }
890
-
891
- .dot-red { background: #f87171; box-shadow: 0 0 6px #f87171; }
892
-
893
- /* ── UI Toggle button ─────────────────────────────────────────────── */
894
- .ui-toggle {
895
- position: fixed;
896
- top: 16px;
897
- right: 24px;
898
- z-index: 30;
899
- display: flex;
900
- align-items: center;
901
- gap: 7px;
902
- background: var(--glass-bg);
903
- backdrop-filter: var(--blur);
904
- -webkit-backdrop-filter: var(--blur);
905
- border: 1px solid var(--glass-border);
906
- border-radius: 99px;
907
- padding: 6px 14px;
908
- color: var(--text-muted);
909
- font-size: 11px;
910
- font-family: var(--font-mono);
911
- letter-spacing: 0.05em;
912
- text-decoration: none;
913
- transition: border-color 0.2s, color 0.2s, box-shadow 0.2s;
914
- }
915
-
916
- .ui-toggle:hover {
917
- border-color: var(--glass-border-strong);
918
- color: var(--text);
919
- box-shadow: 0 0 16px rgba(0,212,255,0.08);
920
- }
921
-
922
- /* ── Scrollbar ────────────────────────────────────────────────────── */
923
- .response-area::-webkit-scrollbar { display: none; }
924
- .response-area { scrollbar-width: none; }
925
-
926
- /* ═══════════════════════════════════════════════════════════════════
927
- CONTENT TYPES — Markdown, Thinking, Tool Cards, Code
928
- ═══════════════════════════════════════════════════════════════════ */
929
-
930
- /* ── Markdown prose ────────────────────────────────────────────────── */
931
- .msg-text {
932
- font-size: 14.5px;
933
- line-height: 1.75;
934
- color: var(--text);
935
- word-wrap: break-word;
936
- overflow-wrap: anywhere;
937
- word-break: break-word;
938
- }
939
-
940
- /* Paragraph spacing */
941
- .msg-text :where(p, ul, ol, pre, blockquote, table) { margin: 0; }
942
- .msg-text :where(p + p,
943
- p + ul, p + ol, p + pre, p + blockquote, p + table,
944
- ul + p, ol + p, pre + p, blockquote + p, table + p) { margin-top: 0.75em; }
945
- .msg-text :where(li + li) { margin-top: 0.25em; }
946
-
947
- /* Headings */
948
- .msg-text :where(h1, h2, h3, h4, h5, h6) {
949
- font-weight: 600;
950
- line-height: 1.3;
951
- color: rgba(255,255,255,0.96);
952
- margin: 1.1em 0 0.4em;
953
- }
954
- .msg-text :where(h1) { font-size: 1.35em; border-bottom: 1px solid var(--glass-border); padding-bottom: 0.3em; }
955
- .msg-text :where(h2) { font-size: 1.18em; border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 0.2em; }
956
- .msg-text :where(h3) { font-size: 1.06em; }
957
- .msg-text :where(h4, h5, h6) { font-size: 1em; color: rgba(255,255,255,0.8); }
958
- .msg-text :where(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0.3em; }
959
-
960
- /* Lists */
961
- .msg-text :where(ul, ol) { padding-left: 1.4em; }
962
- .msg-text :where(ul) { list-style-type: disc; }
963
- .msg-text :where(ol) { list-style-type: decimal; }
964
- .msg-text :where(ul ul) { list-style-type: circle; margin-top: 0.25em; }
965
-
966
- /* Text formatting */
967
- .msg-text :where(strong) { font-weight: 600; color: rgba(255,255,255,0.97); }
968
- .msg-text :where(em) { font-style: italic; color: rgba(255,255,255,0.82); }
969
- .msg-text :where(del) { text-decoration: line-through; opacity: 0.6; }
970
- .msg-text :where(mark) { background: rgba(251,191,36,0.2); color: #fbbf24; border-radius: 2px; padding: 0 3px; }
971
- .msg-text :where(sup) { font-size: 0.75em; vertical-align: super; }
972
- .msg-text :where(sub) { font-size: 0.75em; vertical-align: sub; }
973
-
974
- /* Links */
975
- .msg-text :where(a) { color: var(--accent-cyan); text-decoration: none; border-bottom: 1px solid rgba(0,212,255,0.3); }
976
- .msg-text :where(a:hover) { border-bottom-color: var(--accent-cyan); }
977
-
978
- /* Horizontal rule */
979
- .msg-text :where(hr) {
980
- border: none;
981
- border-top: 1px solid var(--glass-border);
982
- margin: 1em 0;
983
- }
984
-
985
- /* Blockquote */
986
- .msg-text :where(blockquote) {
987
- border-left: 2px solid rgba(0,212,255,0.3);
988
- margin: 0.6em 0;
989
- padding: 6px 14px;
990
- background: rgba(0,212,255,0.03);
991
- color: var(--text-muted);
992
- border-radius: 0 6px 6px 0;
993
- }
994
- .msg-text :where(blockquote blockquote) {
995
- border-left-color: rgba(139,92,246,0.4);
996
- background: rgba(139,92,246,0.03);
997
- margin-top: 6px;
998
- }
999
-
1000
- /* ── Tables ─────────────────────────────────────────────────────────── */
1001
- .msg-text :where(table) {
1002
- width: 100%;
1003
- border-collapse: collapse;
1004
- font-size: 13px;
1005
- margin-top: 0.75em;
1006
- border: 1px solid var(--glass-border);
1007
- border-radius: 8px;
1008
- overflow: hidden;
1009
- }
1010
-
1011
- .msg-text :where(thead) {
1012
- background: rgba(0,212,255,0.06);
1013
- }
1014
-
1015
- .msg-text :where(th) {
1016
- font-family: var(--font-mono);
1017
- font-size: 10.5px;
1018
- font-weight: 600;
1019
- letter-spacing: 0.08em;
1020
- text-transform: uppercase;
1021
- color: var(--accent-cyan);
1022
- border: 1px solid var(--glass-border);
1023
- padding: 8px 12px;
1024
- text-align: left;
1025
- background: rgba(0,0,0,0.15);
1026
- }
1027
-
1028
- .msg-text :where(td) {
1029
- border: 1px solid var(--glass-border);
1030
- padding: 7px 12px;
1031
- vertical-align: top;
1032
- color: var(--text);
1033
- line-height: 1.5;
1034
- }
1035
-
1036
- .msg-text :where(tr:nth-child(even) td) {
1037
- background: rgba(255,255,255,0.015);
1038
- }
1039
-
1040
- .msg-text :where(tr:hover td) {
1041
- background: rgba(0,212,255,0.03);
1042
- }
1043
-
1044
- /* ── Inline code ────────────────────────────────────────────────────── */
1045
- .inline-code,
1046
- .msg-text :where(:not(pre) > code) {
1047
- font-family: var(--font-mono);
1048
- font-size: 0.875em;
1049
- background: rgba(255,255,255,0.08);
1050
- border: 1px solid rgba(255,255,255,0.1);
1051
- border-radius: 4px;
1052
- padding: 0.1em 0.4em;
1053
- color: var(--accent-cyan);
1054
- }
1055
-
1056
- /* ── Code blocks — full-featured ────────────────────────────────────── */
1057
- .code-block {
1058
- margin: 0.75em 0;
1059
- border: 1px solid var(--glass-border);
1060
- border-radius: 10px;
1061
- overflow: hidden;
1062
- background: rgba(0,0,0,0.45);
1063
- font-family: var(--font-mono);
1064
- }
1065
-
1066
- /* Full-width breakout — code gets the whole column regardless of bubble */
1067
- .code-block-full {
1068
- width: 100%;
1069
- max-width: 100%;
1070
- }
1071
-
1072
- /* ── Header ── */
1073
- .code-header {
1074
- display: flex;
1075
- align-items: center;
1076
- justify-content: space-between;
1077
- padding: 7px 12px;
1078
- background: rgba(255,255,255,0.04);
1079
- border-bottom: 1px solid var(--glass-border);
1080
- gap: 10px;
1081
- }
1082
-
1083
- .code-header-left { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
1084
- .code-header-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
1085
-
1086
- /* Language badge with per-language color */
1087
- .code-lang-badge {
1088
- font-family: var(--font-mono);
1089
- font-size: 10px;
1090
- font-weight: 700;
1091
- letter-spacing: 0.06em;
1092
- text-transform: uppercase;
1093
- color: var(--lang-color, var(--accent-cyan));
1094
- display: flex;
1095
- align-items: center;
1096
- gap: 2px;
1097
- flex-shrink: 0;
1098
- text-shadow: 0 0 8px var(--lang-color, var(--accent-cyan));
1099
- }
1100
-
1101
- /* Filename */
1102
- .code-filename {
1103
- font-family: var(--font-mono);
1104
- font-size: 11px;
1105
- color: var(--text-muted);
1106
- background: rgba(255,255,255,0.05);
1107
- border: 1px solid var(--glass-border);
1108
- border-radius: 4px;
1109
- padding: 1px 7px;
1110
- white-space: nowrap;
1111
- overflow: hidden;
1112
- text-overflow: ellipsis;
1113
- max-width: 200px;
1114
- }
1115
-
1116
- /* Line count */
1117
- .code-lines-count {
1118
- font-family: var(--font-mono);
1119
- font-size: 9.5px;
1120
- color: var(--text-dim);
1121
- white-space: nowrap;
1122
- }
1123
-
1124
- /* Expand button */
1125
- .code-expand-btn {
1126
- font-size: 14px;
1127
- background: transparent;
1128
- border: none;
1129
- color: var(--text-dim);
1130
- cursor: pointer;
1131
- padding: 0 4px;
1132
- line-height: 1;
1133
- transition: color 0.2s;
1134
- }
1135
- .code-expand-btn:hover { color: var(--text); }
1136
-
1137
- /* Copy button */
1138
- .code-copy {
1139
- display: flex;
1140
- align-items: center;
1141
- gap: 5px;
1142
- font-family: var(--font-mono);
1143
- font-size: 10px;
1144
- color: var(--text-dim);
1145
- background: transparent;
1146
- border: none;
1147
- cursor: pointer;
1148
- padding: 3px 8px;
1149
- border-radius: 4px;
1150
- transition: color 0.2s, background 0.2s;
1151
- white-space: nowrap;
1152
- }
1153
- .code-copy:hover { color: var(--text); background: rgba(255,255,255,0.06); }
1154
- .code-copy.copied { color: var(--accent-green); }
1155
-
1156
- /* ── Code body ── */
1157
- .code-body { overflow: hidden; }
1158
- .code-body-collapsed { max-height: 400px; overflow: hidden; position: relative; }
1159
- .code-body-collapsed::after {
1160
- content: '';
1161
- position: absolute;
1162
- bottom: 0; left: 0; right: 0;
1163
- height: 80px;
1164
- background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.8));
1165
- pointer-events: none;
1166
- }
1167
- .code-expanded .code-body-collapsed { max-height: none; overflow: auto; }
1168
- .code-expanded .code-body-collapsed::after { display: none; }
1169
-
1170
- /* Show more button */
1171
- .code-show-more {
1172
- display: block;
1173
- width: 100%;
1174
- padding: 8px;
1175
- background: rgba(255,255,255,0.03);
1176
- border: none;
1177
- border-top: 1px solid var(--glass-border);
1178
- color: var(--text-dim);
1179
- font-family: var(--font-mono);
1180
- font-size: 10px;
1181
- cursor: pointer;
1182
- letter-spacing: 0.06em;
1183
- transition: background 0.2s, color 0.2s;
1184
- text-align: center;
1185
- }
1186
- .code-show-more:hover { background: rgba(255,255,255,0.06); color: var(--text); }
1187
-
1188
- /* ── Line numbers ── */
1189
- .code-pre {
1190
- margin: 0;
1191
- padding: 12px 0;
1192
- overflow-x: auto;
1193
- font-size: 12.5px;
1194
- line-height: 1.65;
1195
- }
1196
-
1197
- .code-numbered { display: block; }
1198
-
1199
- .code-line {
1200
- display: flex;
1201
- min-height: 1.65em;
1202
- }
1203
-
1204
- .code-line:hover { background: rgba(255,255,255,0.03); }
1205
-
1206
- .line-num {
1207
- display: inline-block;
1208
- min-width: 44px;
1209
- padding: 0 12px 0 14px;
1210
- color: rgba(255,255,255,0.2);
1211
- text-align: right;
1212
- user-select: none;
1213
- border-right: 1px solid rgba(255,255,255,0.06);
1214
- flex-shrink: 0;
1215
- font-size: 11px;
1216
- line-height: inherit;
1217
- }
1218
-
1219
- .line-content {
1220
- display: inline-block;
1221
- padding: 0 16px;
1222
- white-space: pre;
1223
- flex: 1;
1224
- }
1225
-
1226
- .hljs { background: transparent !important; padding: 0 !important; }
1227
-
1228
- /* ── Thinking block ─────────────────────────────────────────────────── */
1229
- .msg-thinking { margin: 4px 0 8px; }
1230
-
1231
- .thinking-toggle {
1232
- display: flex;
1233
- align-items: center;
1234
- gap: 7px;
1235
- background: transparent;
1236
- border: none;
1237
- cursor: pointer;
1238
- padding: 4px 0;
1239
- color: var(--text-dim);
1240
- font-size: 11px;
1241
- font-family: var(--font-mono);
1242
- letter-spacing: 0.05em;
1243
- transition: color 0.2s;
1244
- }
1245
- .thinking-toggle:hover { color: var(--text-muted); }
1246
- .thinking-icon { color: var(--accent-purple); }
1247
- .thinking-chevron { font-size: 9px; transition: transform 0.2s; }
1248
-
1249
- .thinking-body {
1250
- max-height: 0;
1251
- overflow: hidden;
1252
- transition: max-height 0.35s ease;
1253
- }
1254
- .thinking-body.thinking-open { max-height: 600px; overflow-y: auto; }
1255
-
1256
- .thinking-text {
1257
- margin-top: 6px;
1258
- padding: 10px 14px;
1259
- border: 1px dashed rgba(139,92,246,0.25);
1260
- border-radius: 8px;
1261
- background: rgba(139,92,246,0.04);
1262
- font-size: 12px;
1263
- line-height: 1.65;
1264
- color: var(--text-muted);
1265
- white-space: pre-wrap;
1266
- font-family: var(--font-mono);
1267
- }
1268
-
1269
- /* ── Tool call card ─────────────────────────────────────────────────── */
1270
- .msg-tool-card {
1271
- margin: 4px 0;
1272
- border: 1px solid var(--glass-border);
1273
- border-radius: 8px;
1274
- overflow: hidden;
1275
- background: rgba(255,255,255,0.02);
1276
- }
1277
-
1278
- .tool-header {
1279
- display: flex;
1280
- align-items: center;
1281
- gap: 8px;
1282
- width: 100%;
1283
- padding: 8px 12px;
1284
- background: transparent;
1285
- border: none;
1286
- cursor: pointer;
1287
- text-align: left;
1288
- color: var(--text-muted);
1289
- font-size: 12px;
1290
- transition: background 0.2s;
1291
- }
1292
- .tool-header:hover { background: rgba(255,255,255,0.03); }
1293
- .tool-icon { font-size: 13px; flex-shrink: 0; }
1294
- .tool-name { flex: 1; font-family: var(--font-mono); font-size: 11px; color: var(--text); }
1295
- .tool-chevron { font-size: 9px; color: var(--text-dim); }
1296
-
1297
- .tool-body {
1298
- max-height: 0;
1299
- overflow: hidden;
1300
- transition: max-height 0.3s ease;
1301
- border-top: 0 solid var(--glass-border);
1302
- }
1303
- .tool-body.tool-open { max-height: 320px; overflow-y: auto; border-top-width: 1px; }
1304
-
1305
- .tool-input {
1306
- margin: 0;
1307
- padding: 10px 14px;
1308
- font-family: var(--font-mono);
1309
- font-size: 11.5px;
1310
- line-height: 1.5;
1311
- color: var(--text-muted);
1312
- white-space: pre-wrap;
1313
- word-break: break-all;
1314
- background: rgba(0,0,0,0.25);
1315
- }
1316
-
1317
- /* ── Tool result ────────────────────────────────────────────────────── */
1318
- .msg-tool-result {
1319
- margin: 2px 0 6px;
1320
- border: 1px solid rgba(52,211,153,0.14);
1321
- border-radius: 8px;
1322
- overflow: hidden;
1323
- background: rgba(52,211,153,0.02);
1324
- }
1325
-
1326
- .result-header {
1327
- display: flex;
1328
- align-items: center;
1329
- gap: 8px;
1330
- padding: 6px 12px;
1331
- font-size: 11px;
1332
- color: var(--text-dim);
1333
- }
1334
- .result-icon { color: var(--accent-green); font-size: 12px; }
1335
- .result-label { font-family: var(--font-mono); letter-spacing: 0.06em; flex: 1; }
1336
-
1337
- .result-expand {
1338
- font-family: var(--font-mono);
1339
- font-size: 9px;
1340
- background: transparent;
1341
- border: 1px solid var(--glass-border);
1342
- border-radius: 4px;
1343
- color: var(--text-dim);
1344
- cursor: pointer;
1345
- padding: 2px 8px;
1346
- transition: color 0.2s;
1347
- }
1348
- .result-expand:hover { color: var(--text); }
1349
-
1350
- .result-preview { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; border-top: 0 solid rgba(52,211,153,0.14); }
1351
- .result-open { max-height: 260px; overflow-y: auto; border-top-width: 1px; }
1352
-
1353
- .result-text {
1354
- margin: 0;
1355
- padding: 8px 14px;
1356
- font-family: var(--font-mono);
1357
- font-size: 11.5px;
1358
- line-height: 1.5;
1359
- color: var(--text-muted);
1360
- white-space: pre-wrap;
1361
- word-break: break-all;
1362
- background: rgba(0,0,0,0.2);
1363
- }
1364
-
1365
- /* ── Message image ──────────────────────────────────────────────────── */
1366
- .msg-image img {
1367
- max-width: 100%;
1368
- border-radius: 8px;
1369
- border: 1px solid var(--glass-border);
1370
- margin: 4px 0;
1371
- }
1372
-
1373
- /* ── Copy button ────────────────────────────────────────────────────── */
1374
- .msg-copy-btn {
1375
- position: absolute;
1376
- top: 8px;
1377
- right: 8px;
1378
- background: rgba(255,255,255,0.06);
1379
- border: 1px solid var(--glass-border);
1380
- border-radius: 6px;
1381
- color: var(--text-dim);
1382
- cursor: pointer;
1383
- padding: 5px 6px;
1384
- opacity: 0;
1385
- transition: opacity 0.2s, color 0.2s, background 0.2s;
1386
- display: flex;
1387
- align-items: center;
1388
- line-height: 1;
1389
- }
1390
- .stream-bubble:hover .msg-copy-btn,
1391
- .msg-copy-visible { opacity: 1; }
1392
- .msg-copy-btn:hover { color: var(--text); background: rgba(255,255,255,0.1); }
1393
- .msg-copy-btn.copied { color: var(--accent-green); }
1394
-
1395
- /* ── Timestamp ──────────────────────────────────────────────────────── */
1396
- .msg-timestamp {
1397
- font-family: var(--font-mono);
1398
- font-size: 9.5px;
1399
- color: var(--text-dim);
1400
- margin-top: 10px;
1401
- letter-spacing: 0.05em;
1402
- }
1403
-
1404
-
1405
- /* ── Task lists ─────────────────────────────────────────────────────── */
1406
- .msg-text :where(li.task-item) {
1407
- list-style: none;
1408
- margin-left: -1.4em;
1409
- padding-left: 0.2em;
1410
- display: flex;
1411
- align-items: baseline;
1412
- gap: 7px;
1413
- }
1414
-
1415
- .task-cb {
1416
- appearance: none;
1417
- -webkit-appearance: none;
1418
- width: 14px;
1419
- height: 14px;
1420
- border: 1.5px solid var(--glass-border-strong);
1421
- border-radius: 3px;
1422
- background: transparent;
1423
- flex-shrink: 0;
1424
- position: relative;
1425
- top: 2px;
1426
- cursor: default;
1427
- }
1428
-
1429
- .task-cb:checked {
1430
- background: var(--accent-cyan);
1431
- border-color: var(--accent-cyan);
1432
- }
1433
-
1434
- .task-cb:checked::after {
1435
- content: '';
1436
- position: absolute;
1437
- top: 1px; left: 3px;
1438
- width: 5px; height: 8px;
1439
- border: 2px solid #000;
1440
- border-top: none;
1441
- border-left: none;
1442
- transform: rotate(45deg);
1443
- }
1444
-
1445
- .task-done > * { opacity: 0.55; }
1446
- .task-done .task-cb + span,
1447
- .task-done .task-cb ~ * { text-decoration: line-through; }
1448
-
1449
- /* ── Table overflow wrapper ──────────────────────────────────────────── */
1450
- .msg-text :where(table) {
1451
- display: block;
1452
- overflow-x: auto;
1453
- white-space: nowrap;
1454
- }
1455
- /* Allow cells to wrap when content isn't too wide */
1456
- .msg-text :where(th, td) {
1457
- white-space: normal;
1458
- min-width: 80px;
1459
- }
1460
-
1461
- /* ── Details / Summary (collapsible sections) ─────────────────────────── */
1462
- .msg-text :where(details) {
1463
- border: 1px solid var(--glass-border);
1464
- border-radius: 8px;
1465
- padding: 0;
1466
- margin: 0.6em 0;
1467
- overflow: hidden;
1468
- background: rgba(255,255,255,0.02);
1469
- }
1470
-
1471
- .msg-text :where(summary) {
1472
- padding: 8px 14px;
1473
- cursor: pointer;
1474
- font-weight: 600;
1475
- font-size: 13px;
1476
- color: var(--text-muted);
1477
- list-style: none;
1478
- display: flex;
1479
- align-items: center;
1480
- gap: 8px;
1481
- user-select: none;
1482
- transition: background 0.2s;
1483
- }
1484
- .msg-text :where(summary):hover { background: rgba(255,255,255,0.03); }
1485
- .msg-text :where(summary)::before {
1486
- content: '▸';
1487
- font-size: 9px;
1488
- color: var(--accent-cyan);
1489
- transition: transform 0.2s;
1490
- }
1491
- .msg-text :where(details[open] summary)::before {
1492
- transform: rotate(90deg);
1493
- }
1494
- .msg-text :where(details) > *:not(summary) {
1495
- padding: 0 14px 10px;
1496
- }
1497
-
1498
- /* ── Spacing improvements ────────────────────────────────────────────── */
1499
- .bubble-content + .bubble-content { margin-top: 0.5em; }
1500
-
1501
- .msg-text :where(h1 + p, h2 + p, h3 + p) { margin-top: 0.4em; }
1502
- .msg-text :where(p:last-child, ul:last-child, ol:last-child) { margin-bottom: 0; }
1503
-
1504
- /* Separator after heading when followed by block content */
1505
- .msg-text :where(h2, h3) {
1506
- padding-top: 0.3em;
1507
- }
1508
-
1509
- /* Better nested list indent */
1510
- .msg-text :where(ul ul, ol ol, ul ol, ol ul) {
1511
- margin-top: 0.25em;
1512
- margin-bottom: 0.25em;
1513
- padding-left: 1.2em;
1514
- }
1515
-
1516
- /* ── Keyboard shortcut styling ───────────────────────────────────────── */
1517
- .msg-text :where(kbd) {
1518
- font-family: var(--font-mono);
1519
- font-size: 0.8em;
1520
- background: rgba(255,255,255,0.1);
1521
- border: 1px solid rgba(255,255,255,0.2);
1522
- border-bottom: 2px solid rgba(255,255,255,0.15);
1523
- border-radius: 4px;
1524
- padding: 1px 5px;
1525
- color: var(--text);
1526
- }
1527
-
1528
- /* ── Abbr tooltip ────────────────────────────────────────────────────── */
1529
- .msg-text :where(abbr[title]) {
1530
- border-bottom: 1px dotted var(--text-muted);
1531
- cursor: help;
1532
- text-decoration: none;
1533
- }
1534
-
1535
- /* ── Scrollbar ────────────────────────────────────────────────────── */
1536
- .response-area::-webkit-scrollbar { display: none; }
1537
- .response-area { scrollbar-width: none; }
1538
-
1539
- /* ══════════════════════════════════════════════════════════════════════
1540
- COMMAND MENU SYSTEM
1541
- ══════════════════════════════════════════════════════════════════════ */
1542
-
1543
- /* ── Group accent colours ─────────────────────────────────────────── */
1544
- :root {
1545
- --cmd-chat: #00d4ff;
1546
- --cmd-control: #60a5fa;
1547
- --cmd-agent: #a78bfa;
1548
- --cmd-settings: #f59e0b;
1549
- --cmd-resources: #34d399;
1550
- }
1551
-
1552
- /* ── Menu Trigger Button ──────────────────────────────────────────── */
1553
- .menu-trigger {
1554
- position: fixed;
1555
- top: 20px;
1556
- left: 20px;
1557
- z-index: 50;
1558
- width: 38px;
1559
- height: 38px;
1560
- display: flex;
1561
- align-items: center;
1562
- justify-content: center;
1563
- background: var(--glass-bg);
1564
- backdrop-filter: var(--blur);
1565
- -webkit-backdrop-filter: var(--blur);
1566
- border: 1px solid var(--glass-border);
1567
- border-radius: 10px;
1568
- color: var(--text-muted);
1569
- cursor: pointer;
1570
- transition: color 0.2s, border-color 0.2s, box-shadow 0.2s, transform 0.2s;
1571
- }
1572
- .menu-trigger:hover {
1573
- color: var(--accent-cyan);
1574
- border-color: rgba(0,212,255,0.35);
1575
- box-shadow: 0 0 12px rgba(0,212,255,0.15);
1576
- }
1577
- .menu-trigger:active { transform: scale(0.93); }
1578
-
1579
- /* Icon swap: grid → close */
1580
- .menu-icon-close { display: none; }
1581
- .menu-trigger.menu-open .menu-icon-grid { display: none; }
1582
- .menu-trigger.menu-open .menu-icon-close { display: block; color: var(--accent-cyan); }
1583
- .menu-trigger.menu-open {
1584
- color: var(--accent-cyan);
1585
- border-color: rgba(0,212,255,0.4);
1586
- box-shadow: 0 0 16px rgba(0,212,255,0.2);
1587
- }
1588
-
1589
- /* ── Full-Screen Overlay ──────────────────────────────────────────── */
1590
- .cmd-overlay {
1591
- position: fixed;
1592
- inset: 0;
1593
- z-index: 40;
1594
- display: flex;
1595
- align-items: center;
1596
- justify-content: center;
1597
- /* Hidden state */
1598
- opacity: 0;
1599
- pointer-events: none;
1600
- transform: scale(0.97);
1601
- transition: opacity 0.28s ease, transform 0.28s ease;
1602
- }
1603
- .cmd-overlay.open {
1604
- opacity: 1;
1605
- pointer-events: auto;
1606
- transform: scale(1);
1607
- }
1608
-
1609
- /* Dark glass backdrop */
1610
- .cmd-backdrop {
1611
- position: absolute;
1612
- inset: 0;
1613
- background: rgba(6, 8, 14, 0.9);
1614
- backdrop-filter: blur(24px);
1615
- -webkit-backdrop-filter: blur(24px);
1616
- }
1617
-
1618
- /* Shell (content on top of backdrop) */
1619
- .cmd-shell {
1620
- position: relative;
1621
- z-index: 1;
1622
- width: 100%;
1623
- max-width: 1080px;
1624
- padding: 0 32px;
1625
- display: flex;
1626
- flex-direction: column;
1627
- gap: 24px;
1628
- }
1629
-
1630
- /* ── Header Bar ───────────────────────────────────────────────────── */
1631
- .cmd-header {
1632
- display: flex;
1633
- align-items: center;
1634
- justify-content: space-between;
1635
- padding-bottom: 16px;
1636
- border-bottom: 1px solid var(--glass-border);
1637
- }
1638
- .cmd-brand {
1639
- display: flex;
1640
- align-items: center;
1641
- gap: 10px;
1642
- }
1643
- .cmd-brand-glyph {
1644
- font-size: 22px;
1645
- color: var(--accent-cyan);
1646
- text-shadow: 0 0 12px var(--accent-cyan);
1647
- animation: aso-breathe 3s ease-in-out infinite;
1648
- }
1649
- .cmd-brand-name {
1650
- font-family: var(--font-mono);
1651
- font-size: 18px;
1652
- font-weight: 700;
1653
- color: var(--text);
1654
- letter-spacing: 0.15em;
1655
- }
1656
- .cmd-brand-sep {
1657
- font-size: 16px;
1658
- color: var(--text-dim);
1659
- margin: 0 2px;
1660
- }
1661
- .cmd-brand-sub {
1662
- font-family: var(--font-mono);
1663
- font-size: 11px;
1664
- color: var(--text-dim);
1665
- letter-spacing: 0.22em;
1666
- padding-top: 2px;
1667
- }
1668
- .cmd-esc-hint {
1669
- font-size: 11px;
1670
- color: var(--text-dim);
1671
- display: flex;
1672
- align-items: center;
1673
- gap: 5px;
1674
- }
1675
- .cmd-kbd {
1676
- font-family: var(--font-mono);
1677
- font-size: 10px;
1678
- padding: 2px 6px;
1679
- background: rgba(255,255,255,0.07);
1680
- border: 1px solid rgba(255,255,255,0.12);
1681
- border-radius: 4px;
1682
- color: var(--text-muted);
1683
- }
1684
-
1685
- /* ── Command Grid ─────────────────────────────────────────────────── */
1686
- .cmd-grid {
1687
- display: grid;
1688
- grid-template-columns: 200px 1fr 200px;
1689
- grid-template-rows: auto auto;
1690
- gap: 14px;
1691
- width: 100%;
1692
- }
1693
-
1694
- .cmd-group--chat { grid-column: 1; grid-row: 1 / 3; }
1695
- .cmd-group--control { grid-column: 2; grid-row: 1; }
1696
- .cmd-group--agent { grid-column: 3; grid-row: 1; }
1697
- .cmd-group--settings { grid-column: 2; grid-row: 2; }
1698
- .cmd-group--resources { grid-column: 3; grid-row: 2; }
1699
-
1700
- /* ── Group Card ───────────────────────────────────────────────────── */
1701
- .cmd-group {
1702
- background: var(--glass-bg);
1703
- border: 1px solid var(--glass-border);
1704
- border-radius: 16px;
1705
- padding: 18px;
1706
- display: flex;
1707
- flex-direction: column;
1708
- gap: 14px;
1709
- /* Stagger-reveal when overlay opens */
1710
- opacity: 0;
1711
- transform: translateY(14px);
1712
- transition: border-color 0.25s, box-shadow 0.25s;
1713
- }
1714
- .cmd-overlay.open .cmd-group {
1715
- animation: cmd-card-in 0.32s ease forwards;
1716
- }
1717
- .cmd-overlay.open .cmd-group:nth-child(1) { animation-delay: 30ms; }
1718
- .cmd-overlay.open .cmd-group:nth-child(2) { animation-delay: 80ms; }
1719
- .cmd-overlay.open .cmd-group:nth-child(3) { animation-delay: 130ms; }
1720
- .cmd-overlay.open .cmd-group:nth-child(4) { animation-delay: 180ms; }
1721
- .cmd-overlay.open .cmd-group:nth-child(5) { animation-delay: 230ms; }
1722
-
1723
- @keyframes cmd-card-in {
1724
- from { opacity: 0; transform: translateY(14px); }
1725
- to { opacity: 1; transform: translateY(0); }
1726
- }
1727
-
1728
- /* Per-group accent borders & hover glow */
1729
- .cmd-group--chat:hover { border-color: rgba(0,212,255,0.35); box-shadow: 0 0 20px rgba(0,212,255,0.06); }
1730
- .cmd-group--control:hover { border-color: rgba(96,165,250,0.35); box-shadow: 0 0 20px rgba(96,165,250,0.06); }
1731
- .cmd-group--agent:hover { border-color: rgba(167,139,250,0.35); box-shadow: 0 0 20px rgba(167,139,250,0.06); }
1732
- .cmd-group--settings:hover { border-color: rgba(245,158,11,0.35); box-shadow: 0 0 20px rgba(245,158,11,0.06); }
1733
- .cmd-group--resources:hover { border-color: rgba(52,211,153,0.35); box-shadow: 0 0 20px rgba(52,211,153,0.06); }
1734
-
1735
- /* ── Group Header ─────────────────────────────────────────────────── */
1736
- .cmd-group-hd {
1737
- display: flex;
1738
- align-items: center;
1739
- gap: 9px;
1740
- padding-bottom: 10px;
1741
- border-bottom: 1px solid var(--glass-border);
1742
- }
1743
- .cmd-group-svg {
1744
- width: 16px;
1745
- height: 16px;
1746
- flex-shrink: 0;
1747
- }
1748
- .cmd-group-label {
1749
- font-family: var(--font-mono);
1750
- font-size: 10px;
1751
- font-weight: 700;
1752
- letter-spacing: 0.2em;
1753
- }
1754
-
1755
- /* Accent colours on group labels and icons */
1756
- .cmd-group--chat .cmd-group-hd { color: var(--cmd-chat); }
1757
- .cmd-group--control .cmd-group-hd { color: var(--cmd-control); }
1758
- .cmd-group--agent .cmd-group-hd { color: var(--cmd-agent); }
1759
- .cmd-group--settings .cmd-group-hd { color: var(--cmd-settings); }
1760
- .cmd-group--resources .cmd-group-hd { color: var(--cmd-resources); }
1761
-
1762
- /* ── Items List ───────────────────────────────────────────────────── */
1763
- .cmd-items {
1764
- display: flex;
1765
- flex-direction: column;
1766
- gap: 6px;
1767
- flex: 1;
1768
- }
1769
-
1770
- /* 3-column sub-grid for CONTROL (6 items) */
1771
- .cmd-items--grid {
1772
- display: grid;
1773
- grid-template-columns: 1fr 1fr 1fr;
1774
- gap: 8px;
1775
- }
1776
-
1777
- /* ── Individual Item ──────────────────────────────────────────────── */
1778
- .cmd-item {
1779
- display: flex;
1780
- align-items: center;
1781
- gap: 10px;
1782
- padding: 10px 12px;
1783
- border-radius: 10px;
1784
- border: 1px solid transparent;
1785
- background: rgba(255,255,255,0.025);
1786
- text-decoration: none;
1787
- cursor: pointer;
1788
- transition: background 0.18s, border-color 0.18s, transform 0.15s;
1789
- }
1790
- .cmd-item:hover {
1791
- background: rgba(255,255,255,0.06);
1792
- transform: translateY(-1px);
1793
- }
1794
- /* Per-group item hover accent */
1795
- .cmd-group--chat .cmd-item:hover { border-color: rgba(0,212,255,0.3); }
1796
- .cmd-group--control .cmd-item:hover { border-color: rgba(96,165,250,0.3); }
1797
- .cmd-group--agent .cmd-item:hover { border-color: rgba(167,139,250,0.3); }
1798
- .cmd-group--settings .cmd-item:hover { border-color: rgba(245,158,11,0.3); }
1799
- .cmd-group--resources .cmd-item:hover { border-color: rgba(52,211,153,0.3); }
1800
-
1801
- .cmd-item-icon {
1802
- font-size: 16px;
1803
- flex-shrink: 0;
1804
- width: 20px;
1805
- text-align: center;
1806
- opacity: 0.7;
1807
- }
1808
- .cmd-group--chat .cmd-item-icon { color: var(--cmd-chat); }
1809
- .cmd-group--control .cmd-item-icon { color: var(--cmd-control); }
1810
- .cmd-group--agent .cmd-item-icon { color: var(--cmd-agent); }
1811
- .cmd-group--settings .cmd-item-icon { color: var(--cmd-settings); }
1812
- .cmd-group--resources .cmd-item-icon { color: var(--cmd-resources); }
1813
-
1814
- .cmd-item-body {
1815
- display: flex;
1816
- flex-direction: column;
1817
- gap: 2px;
1818
- min-width: 0;
1819
- flex: 1;
1820
- }
1821
- .cmd-item-name {
1822
- font-family: var(--font-mono);
1823
- font-size: 12px;
1824
- font-weight: 600;
1825
- color: var(--text);
1826
- white-space: nowrap;
1827
- overflow: hidden;
1828
- text-overflow: ellipsis;
1829
- }
1830
- .cmd-item-desc {
1831
- font-size: 10px;
1832
- color: var(--text-dim);
1833
- white-space: nowrap;
1834
- overflow: hidden;
1835
- text-overflow: ellipsis;
1836
- }
1837
- .cmd-item-badge {
1838
- font-family: var(--font-mono);
1839
- font-size: 8px;
1840
- font-weight: 700;
1841
- letter-spacing: 0.1em;
1842
- padding: 2px 6px;
1843
- border-radius: 99px;
1844
- background: rgba(0,212,255,0.12);
1845
- color: var(--accent-cyan);
1846
- border: 1px solid rgba(0,212,255,0.25);
1847
- flex-shrink: 0;
1848
- }