limixbot 0.2.7 → 0.2.9

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 (190) hide show
  1. package/dist/assets/{ActivityPanel-CmDCy7eZ.js → ActivityPanel-DNJrm-It.js} +1 -1
  2. package/dist/assets/{App-Dbsatjme.js → App-0-mtr0MN.js} +9 -9
  3. package/dist/assets/{AppEventEditor-B4RQnsS3.js → AppEventEditor-cxtdNROG.js} +1 -1
  4. package/dist/assets/{BotSettingsDialog-DyScwvnb.js → BotSettingsDialog-Bke-uC9C.js} +1 -1
  5. package/dist/assets/{BrowserPanel-CFFNXZUh.js → BrowserPanel-DIWnLFx0.js} +1 -1
  6. package/dist/assets/{BrowserProfilesManager-H57RKPMu.js → BrowserProfilesManager-Byg78_T6.js} +1 -1
  7. package/dist/assets/{CloudAddDialog-Bj6_HHBS.js → CloudAddDialog-DbnC3LUp.js} +1 -1
  8. package/dist/assets/{ComputerFilesPane-CZ3bEdi-.js → ComputerFilesPane-D8NwEQh2.js} +1 -1
  9. package/dist/assets/{ComputerPanel-BQUsGs4_.js → ComputerPanel-BVjkZ-QX.js} +2 -2
  10. package/dist/assets/{DataPanel-BFafyj9T.js → DataPanel-jd0L0Ng-.js} +1 -1
  11. package/dist/assets/{DesktopViewer-DuoSRrPG.js → DesktopViewer-Bj7DyfxJ.js} +1 -1
  12. package/dist/assets/{FilesView-D2WrDHpg.js → FilesView-D2dpovi2.js} +1 -1
  13. package/dist/assets/{GrokMoveDialog-Ciq95MT4.js → GrokMoveDialog-Cu9vgUWd.js} +1 -1
  14. package/dist/assets/{InspectorPanel-DP9ekeeT.js → InspectorPanel-B6Ix1Q90.js} +1 -1
  15. package/dist/assets/{KeyboardShortcutsModal-BMt7r3Va.js → KeyboardShortcutsModal-BxLj1UAT.js} +1 -1
  16. package/dist/assets/{LiveDesktop-JYitfkP5.js → LiveDesktop-IhmS_70N.js} +1 -1
  17. package/dist/assets/{LocalVmWorkspace-ZIznHPod.js → LocalVmWorkspace-Cz_8PBvO.js} +1 -1
  18. package/dist/assets/{MacLocalControl-B2mYWfM_.js → MacLocalControl-BQx0dmBY.js} +1 -1
  19. package/dist/assets/{MarkdownFilePreview-C9o8GlmR.js → MarkdownFilePreview-BvcKRvLj.js} +1 -1
  20. package/dist/assets/{MenuMotion-BVlWdNZd.js → MenuMotion-Dg_hALEl.js} +1 -1
  21. package/dist/assets/{NewBotDialog-42cdLuX9.js → NewBotDialog-AG4lwjLs.js} +1 -1
  22. package/dist/assets/{PhoneAppDialog-2HsbrbDR.js → PhoneAppDialog-DnxYDUcZ.js} +1 -1
  23. package/dist/assets/PlacesRail-C-RypDbo.js +57 -0
  24. package/dist/assets/{PluginsPanel-gMX9siqC.js → PluginsPanel-DUMsui1-.js} +1 -1
  25. package/dist/assets/{ProIntroduction-DLeyaIp4.js → ProIntroduction-DrVULNMR.js} +1 -1
  26. package/dist/assets/{RemoteAgentSettingsPanel-CI4mV7e4.js → RemoteAgentSettingsPanel-C9bAP3v4.js} +1 -1
  27. package/dist/assets/{RoomPanel-QM7b4JcY.js → RoomPanel-DjGGiSTe.js} +1 -1
  28. package/dist/assets/{RoutinesPage-9oF95jVB.js → RoutinesPage-DI6CbJ-R.js} +1 -1
  29. package/dist/assets/{SettingsModal-D-qQozfZ.js → SettingsModal-2iNaR6ei.js} +1 -1
  30. package/dist/assets/{ShareTeamDialog-BSCDpGsw.js → ShareTeamDialog-D7jlR9HK.js} +1 -1
  31. package/dist/assets/{SignedInSites-CCJy494V.js → SignedInSites-zRGAI6no.js} +1 -1
  32. package/dist/assets/{TeamLibraryPanel-VGQUqTlV.js → TeamLibraryPanel-ssb1UDr5.js} +1 -1
  33. package/dist/assets/{TeamMapPage-rjPtLGmj.js → TeamMapPage-BS05D1gH.js} +1 -1
  34. package/dist/assets/{TriggersPage-0G0do_3b.js → TriggersPage-Bnny-m5i.js} +1 -1
  35. package/dist/assets/{VisibilitySection-Gh6OTOCE.js → VisibilitySection-DYoJ1GdM.js} +1 -1
  36. package/dist/assets/{WebhookTrigger-DpcmCVTL.js → WebhookTrigger-TRl3ZXbh.js} +1 -1
  37. package/dist/assets/{WorksOnGrid-L6LFTE2_.js → WorksOnGrid-KH_NgeB8.js} +1 -1
  38. package/dist/assets/{abnfDiagram-YUKMZFIV-CUWh2GsH.js → abnfDiagram-YUKMZFIV-BJa3HT_w.js} +1 -1
  39. package/dist/assets/{activity-LHXr5xxZ.js → activity-DpguW9va.js} +1 -1
  40. package/dist/assets/{architectureDiagram-47P4ROYG-DVX8QyiO.js → architectureDiagram-47P4ROYG-C5gEKdsw.js} +1 -1
  41. package/dist/assets/{blockDiagram-E7TT5TSB-CEURT8Q8.js → blockDiagram-E7TT5TSB-CT7xbCQZ.js} +1 -1
  42. package/dist/assets/{c4Diagram-CRA5TL53-Dxo3va1-.js → c4Diagram-CRA5TL53-DSFZqTvf.js} +1 -1
  43. package/dist/assets/{calendar-days-dgtKqWUC.js → calendar-days-ASlaivsQ.js} +1 -1
  44. package/dist/assets/channel-BqGEhKY0.js +1 -0
  45. package/dist/assets/{chunk-2Q5K7J3B-Cwoh8ivv.js → chunk-2Q5K7J3B-OtLqmkVp.js} +1 -1
  46. package/dist/assets/{chunk-5VM5RSS4-D3VEPh-j.js → chunk-5VM5RSS4-Rq3LG0x-.js} +1 -1
  47. package/dist/assets/{chunk-7TKQ45FW-DkXnciwj.js → chunk-7TKQ45FW-BvOFm5yO.js} +1 -1
  48. package/dist/assets/{chunk-AW2ZBBNX-CNUnktBg.js → chunk-AW2ZBBNX-Bp8ouRZs.js} +1 -1
  49. package/dist/assets/{chunk-FVRAUYC3-DDh_Qx3V.js → chunk-FVRAUYC3-htnnltbK.js} +2 -2
  50. package/dist/assets/{chunk-HTAEGDNF-Cl-K7zHu.js → chunk-HTAEGDNF-dT7z7xQV.js} +1 -1
  51. package/dist/assets/{chunk-JWPE2WC7-BZMB3nUT.js → chunk-JWPE2WC7-BKhNCYBO.js} +1 -1
  52. package/dist/assets/{chunk-KQW6MTUR-CK00Y5Mf.js → chunk-KQW6MTUR-DeA1KhMw.js} +1 -1
  53. package/dist/assets/{chunk-XXDRQBXY-D9bXnXn1.js → chunk-XXDRQBXY-DJCz3KwB.js} +1 -1
  54. package/dist/assets/{classDiagram-v2-K4WV4PDN-vMIXHAit.js → classDiagram-v2-K4WV4PDN-BxZQcXjn.js} +1 -1
  55. package/dist/assets/{coins-C6ydDjtx.js → coins-Kra8C23v.js} +1 -1
  56. package/dist/assets/{core-PBrJFfNa.js → core-D_ShnPPB.js} +1 -1
  57. package/dist/assets/{cose-bilkent-JH36ORCC-CKEtjhno.js → cose-bilkent-JH36ORCC-DPvzbWJ-.js} +1 -1
  58. package/dist/assets/{cynefin-EF2NZ3EQ-X7332_6L.js → cynefin-EF2NZ3EQ-BU7oS4Kz.js} +1 -1
  59. package/dist/assets/{cynefinDiagram-3GCD6N5R-C3ehmT22.js → cynefinDiagram-3GCD6N5R-BGBWfDSm.js} +1 -1
  60. package/dist/assets/{dagre-W4DXFKR2-8j_7yTJf.js → dagre-W4DXFKR2-IWCaUQIb.js} +1 -1
  61. package/dist/assets/{diagram-2UJZ2QOL-Dpan5gHO.js → diagram-2UJZ2QOL-Bhk3LC2M.js} +1 -1
  62. package/dist/assets/{diagram-OVF4WLC6-84oGxj_T.js → diagram-OVF4WLC6-CuabegT5.js} +1 -1
  63. package/dist/assets/{diagram-PFPMY2P6-CtkBChQX.js → diagram-PFPMY2P6-CoS7hKtb.js} +1 -1
  64. package/dist/assets/{diagram-UMYRVEAY-BtLD2TMp.js → diagram-UMYRVEAY-BQmo6hIx.js} +1 -1
  65. package/dist/assets/{diagram-YEKJPTXX-BSsG3sMr.js → diagram-YEKJPTXX-Dn-KHH-s.js} +1 -1
  66. package/dist/assets/{diagram-ZIFT7M5P-DzGdrnet.js → diagram-ZIFT7M5P-BCWmVp3z.js} +1 -1
  67. package/dist/assets/{ebnfDiagram-VR2GEFS7-BCgvwxBO.js → ebnfDiagram-VR2GEFS7-Bb086aqc.js} +1 -1
  68. package/dist/assets/{elk-IJKZMXRS-MrcuY098.js → elk-IJKZMXRS-C0AdhTr_.js} +1 -1
  69. package/dist/assets/{erDiagram-O2IAPWRE-CkiPC10P.js → erDiagram-O2IAPWRE-CGa-MwBB.js} +1 -1
  70. package/dist/assets/{file-up-YAGDCUmC.js → file-up-XN39lGyR.js} +1 -1
  71. package/dist/assets/{flowDiagram-OXPTDLAJ-Dy30n92Z.js → flowDiagram-OXPTDLAJ-BdLF4FEb.js} +1 -1
  72. package/dist/assets/{ganttDiagram-R7TSEDQI-7aj2jc8X.js → ganttDiagram-R7TSEDQI-iXPVrTqJ.js} +1 -1
  73. package/dist/assets/{gitGraphDiagram-XJZIOB7I-C90-6xd7.js → gitGraphDiagram-XJZIOB7I-DA55YE0F.js} +1 -1
  74. package/dist/assets/{import-name-DwHxnzLo.js → import-name-CNEv8Wx8.js} +1 -1
  75. package/dist/assets/{index-Dh9vBoyU.js → index-BDVsw1Qr.js} +1 -1
  76. package/dist/assets/{index-CEBe4ppp.js → index-CnQ2pCf7.js} +2 -2
  77. package/dist/assets/{index-J6AJ8PJY.js → index-CtBcDSNT.js} +1 -1
  78. package/dist/assets/{infoDiagram-5W2HQ5XZ-JsL4Ulqu.js → infoDiagram-5W2HQ5XZ-DwwOOuPK.js} +1 -1
  79. package/dist/assets/{ishikawaDiagram-K3B6WC7H-DGvScV7R.js → ishikawaDiagram-K3B6WC7H-uOns6fyB.js} +1 -1
  80. package/dist/assets/{journeyDiagram-COXZFDF6-DLSEKXoP.js → journeyDiagram-COXZFDF6-BNlo402b.js} +1 -1
  81. package/dist/assets/{kanban-definition-P3RFRI5V-CoxK_0bl.js → kanban-definition-P3RFRI5V-rApNRuxE.js} +1 -1
  82. package/dist/assets/{mcp-servers-Dy6saID9.js → mcp-servers-DiCs_cE-.js} +1 -1
  83. package/dist/assets/{mermaid.core-73koJZWB.js → mermaid.core-UoMXw4Pf.js} +4 -4
  84. package/dist/assets/{mindmap-definition-LZFPQGKD-CbTxcgIF.js → mindmap-definition-LZFPQGKD-DMx0e0Ua.js} +1 -1
  85. package/dist/assets/{minimize-DNbi21po.js → minimize-C6tWjaQW.js} +1 -1
  86. package/dist/assets/{monitor-EYAEQme8.js → monitor-CqHNmvSo.js} +1 -1
  87. package/dist/assets/{new-bot-C2jdhFdl.js → new-bot-CpjPfYn1.js} +1 -1
  88. package/dist/assets/{org-library-BayvlLSA.js → org-library-DkWIJaGU.js} +1 -1
  89. package/dist/assets/{package-format-BvNOAJ-8.js → package-format-DQ8Q_tWB.js} +1 -1
  90. package/dist/assets/{pegDiagram-BGZESJAR-vPF7wjW0.js → pegDiagram-BGZESJAR-BGjO4xhf.js} +1 -1
  91. package/dist/assets/{pieDiagram-CAPJLFHJ-CcXS-bXc.js → pieDiagram-CAPJLFHJ-CKDnQaP9.js} +1 -1
  92. package/dist/assets/{quadrantDiagram-GDMTTRAM-ue9nAF1U.js → quadrantDiagram-GDMTTRAM-2Yd2aagw.js} +1 -1
  93. package/dist/assets/{rail-BVFx-Ggi.js → rail-DzTUJt9y.js} +1 -1
  94. package/dist/assets/{railroadDiagram-SM67HX2B-BeQYm6nT.js → railroadDiagram-SM67HX2B-2p7uXTy-.js} +1 -1
  95. package/dist/assets/{remote-desktop-panel-Bgx8ebdG.js → remote-desktop-panel-CWP7wnfp.js} +1 -1
  96. package/dist/assets/{requirementDiagram-X7JNWC4A-DZouafhW.js → requirementDiagram-X7JNWC4A-B8Tb583R.js} +1 -1
  97. package/dist/assets/{sankeyDiagram-UM26HJRW-DHon18zu.js → sankeyDiagram-UM26HJRW-uH_0e9a7.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-ZO4K6R2Y-atekCKa7.js → sequenceDiagram-ZO4K6R2Y-BL2NmEjq.js} +1 -1
  99. package/dist/assets/{sizeCapture-INFHLROL-Dt3J5cN4.js → sizeCapture-INFHLROL-CF5rj-Tn.js} +1 -1
  100. package/dist/assets/{stateDiagram-v2-TBUQTH76-Y6UtBULW.js → stateDiagram-v2-TBUQTH76-Bi8FVJmD.js} +1 -1
  101. package/dist/assets/{styles-CnQhCz_w.js → styles-3gApXdcp.js} +2 -2
  102. package/dist/assets/styles-D-yh7Z23.css +1 -0
  103. package/dist/assets/{swimlanes-N4OXWK64-BpUnlH-3.js → swimlanes-N4OXWK64-cI7SKAY4.js} +1 -1
  104. package/dist/assets/swimlanesDiagram-K3J5GTZL-D8raS3ll.js +8 -0
  105. package/dist/assets/{team-share-DkzY22CD.js → team-share-Dy8-U6dh.js} +1 -1
  106. package/dist/assets/{timeline-definition-YOQAKGHF-DhG3OlON.js → timeline-definition-YOQAKGHF-DgYVfZT2.js} +1 -1
  107. package/dist/assets/{usecaseDiagram-VIAY4XPW-DFUcbznD.js → usecaseDiagram-VIAY4XPW-DA-ohLD0.js} +1 -1
  108. package/dist/assets/{vennDiagram-BLWOH2XV-D49fiyRh.js → vennDiagram-BLWOH2XV-DvsWwQlH.js} +1 -1
  109. package/dist/assets/vi-KgT8L8Qj.js +15 -0
  110. package/dist/assets/{wardleyDiagram-YMQ3BMBF-DFVNNZPs.js → wardleyDiagram-YMQ3BMBF--20oJB2z.js} +1 -1
  111. package/dist/assets/{xychartDiagram-TAQBALBS-DiHMuK-U.js → xychartDiagram-TAQBALBS-C8j4OKSW.js} +1 -1
  112. package/dist/index.html +3 -3
  113. package/dist/rail.html +5 -5
  114. package/dist-server/index.js +87 -54
  115. package/dist-server/openmausbot.js +87 -54
  116. package/dist-server/package.json +1 -1
  117. package/dist-server/shared/mascot-bodies.js +23 -23
  118. package/package.json +1 -1
  119. package/skills/agent-reach/LICENSE +21 -0
  120. package/skills/agent-reach/SKILL.md +117 -0
  121. package/skills/agent-reach/manifest.json +41 -0
  122. package/skills/agent-reach/references/capabilities.md +31 -0
  123. package/skills/agent-reach/references/maintenance.md +13 -0
  124. package/skills/agent-reach/references/sessions.md +41 -0
  125. package/skills/rea-video/LICENSE +202 -0
  126. package/skills/rea-video/NOTICE +4 -0
  127. package/skills/rea-video/SKILL.md +124 -0
  128. package/skills/rea-video/manifest.json +32 -0
  129. package/skills/rea-video/references/audio.md +97 -0
  130. package/skills/rea-video/references/materials.md +34 -0
  131. package/skills/rea-video/references/memory.md +7 -0
  132. package/skills/rea-video/references/output-template.md +46 -0
  133. package/skills/rea-video/references/remake.md +41 -0
  134. package/skills/rea-video/references/review.md +42 -0
  135. package/skills/rea-video/references/setup.md +51 -0
  136. package/skills/rea-video/references/taxonomy.md +139 -0
  137. package/skills/ui-ux-pro-max/LICENSE +21 -0
  138. package/skills/ui-ux-pro-max/SKILL.md +221 -0
  139. package/skills/ui-ux-pro-max/data/app-interface.csv +33 -0
  140. package/skills/ui-ux-pro-max/data/catalog-summary.json +78 -0
  141. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  142. package/skills/ui-ux-pro-max/data/colors.csv +193 -0
  143. package/skills/ui-ux-pro-max/data/data-provenance.json +1396 -0
  144. package/skills/ui-ux-pro-max/data/google-font-licenses.json +20185 -0
  145. package/skills/ui-ux-pro-max/data/google-fonts.csv +1935 -0
  146. package/skills/ui-ux-pro-max/data/icons.csv +106 -0
  147. package/skills/ui-ux-pro-max/data/landing.csv +35 -0
  148. package/skills/ui-ux-pro-max/data/motion.csv +18 -0
  149. package/skills/ui-ux-pro-max/data/phosphor-icons-upstream.json +32582 -0
  150. package/skills/ui-ux-pro-max/data/products.csv +193 -0
  151. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  152. package/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
  153. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  154. package/skills/ui-ux-pro-max/data/stacks/avalonia.csv +57 -0
  155. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  156. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +60 -0
  157. package/skills/ui-ux-pro-max/data/stacks/javafx.csv +76 -0
  158. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  159. package/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
  160. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +62 -0
  161. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +84 -0
  162. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +68 -0
  163. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  164. package/skills/ui-ux-pro-max/data/stacks/react.csv +67 -0
  165. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +69 -0
  166. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +56 -0
  167. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  168. package/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
  169. package/skills/ui-ux-pro-max/data/stacks/uno.csv +60 -0
  170. package/skills/ui-ux-pro-max/data/stacks/uwp.csv +56 -0
  171. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  172. package/skills/ui-ux-pro-max/data/stacks/winui.csv +60 -0
  173. package/skills/ui-ux-pro-max/data/stacks/wpf.csv +57 -0
  174. package/skills/ui-ux-pro-max/data/styles.csv +90 -0
  175. package/skills/ui-ux-pro-max/data/typography.csv +75 -0
  176. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +193 -0
  177. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +121 -0
  178. package/skills/ui-ux-pro-max/manifest.json +34 -0
  179. package/skills/ui-ux-pro-max/references/pro-rules.md +117 -0
  180. package/skills/ui-ux-pro-max/references/quick-reference.md +257 -0
  181. package/skills/ui-ux-pro-max/scripts/core.py +1053 -0
  182. package/skills/ui-ux-pro-max/scripts/design_system.py +1668 -0
  183. package/skills/ui-ux-pro-max/scripts/reasoning_contract.py +123 -0
  184. package/skills/ui-ux-pro-max/scripts/search.py +201 -0
  185. package/skills/ui-ux-pro-max/scripts/validate_data.py +1095 -0
  186. package/dist/assets/PlacesRail-XEjyWavr.js +0 -57
  187. package/dist/assets/channel-B_-MyCfi.js +0 -1
  188. package/dist/assets/styles-D8FmJr6X.css +0 -1
  189. package/dist/assets/swimlanesDiagram-K3J5GTZL-CNvy2omc.js +0 -8
  190. package/dist/assets/vi-VlbIiohE.js +0 -6
@@ -23,10 +23,10 @@ export const MASCOT_BODIES = {
23
23
  cursor: {
24
24
  id: "cursor",
25
25
  name: "Limi",
26
- fit: "translate(-12.6967 -14.6012) scale(1.269672)",
27
- body: "<path fill=\"{{GRADIENT}}\" d=\"M62 51C70 51 75 51 83 51C88 36 101 27 122 27C134 27 145 27 156 27C178 27 190 41 190 64C190 82 190 99 190 117C190 141 176 154 153 154C143 154 132 154 121 154C116 168 104 176 84 176C71 176 58 176 44 176C21 176 10 161 10 139C10 122 10 105 10 87C10 63 26 51 49 51C53 51 58 51 62 51Z\"/>",
28
- clip: "<path d=\"M62 51C70 51 75 51 83 51C88 36 101 27 122 27C134 27 145 27 156 27C178 27 190 41 190 64C190 82 190 99 190 117C190 141 176 154 153 154C143 154 132 154 121 154C116 168 104 176 84 176C71 176 58 176 44 176C21 176 10 161 10 139C10 122 10 105 10 87C10 63 26 51 49 51C53 51 58 51 62 51Z\"/>",
29
- anchor: { x: 154.51, y: 99.16, scale: 0.83 },
26
+ fit: "translate(-37.1368 -35.6789) scale(1.514073)",
27
+ body: "<path fill=\"{{GRADIENT}}\" d=\"M121.45 37.29C124.88 42.3 128.31 47.31 131.75 52.32C133.57 54.98 136.25 56.93 139.34 57.84C145.16 59.55 150.99 61.27 156.81 62.99C174.34 68.15 181.21 89.31 170.07 103.78C166.37 108.6 162.66 113.41 158.96 118.22C156.99 120.78 155.97 123.93 156.06 127.15C156.23 133.22 156.39 139.29 156.56 145.36C157.06 163.62 139.07 176.69 121.86 170.57C116.14 168.54 110.41 166.5 104.69 164.47C101.66 163.39 98.34 163.39 95.31 164.47C89.59 166.5 83.86 168.54 78.14 170.57C60.93 176.69 42.94 163.62 43.44 145.36C43.61 139.29 43.77 133.22 43.94 127.15C44.03 123.93 43.01 120.78 41.04 118.22C37.34 113.41 33.63 108.6 29.93 103.78C18.79 89.31 25.66 68.15 43.19 62.99C49.01 61.27 54.84 59.55 60.66 57.84C63.75 56.93 66.43 54.98 68.25 52.32C71.69 47.31 75.12 42.3 78.55 37.29C88.88 22.22 111.12 22.22 121.45 37.29Z\"/>",
28
+ clip: "<path d=\"M121.45 37.29C124.88 42.3 128.31 47.31 131.75 52.32C133.57 54.98 136.25 56.93 139.34 57.84C145.16 59.55 150.99 61.27 156.81 62.99C174.34 68.15 181.21 89.31 170.07 103.78C166.37 108.6 162.66 113.41 158.96 118.22C156.99 120.78 155.97 123.93 156.06 127.15C156.23 133.22 156.39 139.29 156.56 145.36C157.06 163.62 139.07 176.69 121.86 170.57C116.14 168.54 110.41 166.5 104.69 164.47C101.66 163.39 98.34 163.39 95.31 164.47C89.59 166.5 83.86 168.54 78.14 170.57C60.93 176.69 42.94 163.62 43.44 145.36C43.61 139.29 43.77 133.22 43.94 127.15C44.03 123.93 43.01 120.78 41.04 118.22C37.34 113.41 33.63 108.6 29.93 103.78C18.79 89.31 25.66 68.15 43.19 62.99C49.01 61.27 54.84 59.55 60.66 57.84C63.75 56.93 66.43 54.98 68.25 52.32C71.69 47.31 75.12 42.3 78.55 37.29C88.88 22.22 111.12 22.22 121.45 37.29Z\"/>",
29
+ anchor: { x: 113.82, y: 113.41, scale: 1 },
30
30
  },
31
31
  blob: {
32
32
  id: "blob",
@@ -34,7 +34,7 @@ export const MASCOT_BODIES = {
34
34
  fit: "translate(-0.7217 2.9555) scale(1.134706)",
35
35
  body: "<path fill=\"{{GRADIENT}}\" d=\"M198.91052 113.12915C198.30169 121.88191 196.37668 130.37605 193.1355 138.61157C189.89431 146.84709 185.49332 154.4026 179.93252 161.27809C174.37172 168.15358 167.99976 174.1053 160.81663 179.13325C153.6335 184.1612 145.98678 188.22176 137.87645 191.31491C129.76613 194.40806 121.42581 196.55178 112.85548 197.74609C104.28516 198.94039 95.66469 199.12755 86.99407 198.30758C78.32344 197.4876 69.86713 195.54477 61.62513 192.47909C53.38313 189.41341 45.74309 185.20915 38.70501 179.86633C31.66693 174.52351 25.60941 168.25632 20.53243 161.06476C15.45546 153.87319 11.54067 146.15559 8.78808 137.91195C6.03549 129.66831 4.37316 121.28874 3.80109 112.77325C3.22902 104.25775 3.5616 95.83136 4.79882 87.49409C6.03604 79.15682 8.08364 70.99969 10.94163 63.0227C13.79962 55.04571 17.53174 47.38891 22.13799 40.0523C26.74425 32.71568 32.30193 26.0276 38.81103 19.98806C45.32014 13.94852 52.65266 9.00619 60.80862 5.16109C68.96458 1.31599 77.53546 -1.10241 86.52128 -2.09412C95.50709 -3.08583 104.37427 -2.64309 113.12282 -0.76589C121.87137 1.11131 130.09712 4.12751 137.80007 8.28271C145.50302 12.43791 152.53652 17.35515 158.90058 23.03443C165.26463 28.7137 170.969 34.91856 176.01368 41.649C181.05836 48.37944 185.3953 55.56843 189.02451 63.21597C192.65372 70.86352 195.3609 78.90607 197.14605 87.34364C198.93119 95.78121 199.51935 104.37638 198.91052 113.12915Z\"/>",
36
36
  clip: "<path d=\"M198.91052 113.12915C198.30169 121.88191 196.37668 130.37605 193.1355 138.61157C189.89431 146.84709 185.49332 154.4026 179.93252 161.27809C174.37172 168.15358 167.99976 174.1053 160.81663 179.13325C153.6335 184.1612 145.98678 188.22176 137.87645 191.31491C129.76613 194.40806 121.42581 196.55178 112.85548 197.74609C104.28516 198.94039 95.66469 199.12755 86.99407 198.30758C78.32344 197.4876 69.86713 195.54477 61.62513 192.47909C53.38313 189.41341 45.74309 185.20915 38.70501 179.86633C31.66693 174.52351 25.60941 168.25632 20.53243 161.06476C15.45546 153.87319 11.54067 146.15559 8.78808 137.91195C6.03549 129.66831 4.37316 121.28874 3.80109 112.77325C3.22902 104.25775 3.5616 95.83136 4.79882 87.49409C6.03604 79.15682 8.08364 70.99969 10.94163 63.0227C13.79962 55.04571 17.53174 47.38891 22.13799 40.0523C26.74425 32.71568 32.30193 26.0276 38.81103 19.98806C45.32014 13.94852 52.65266 9.00619 60.80862 5.16109C68.96458 1.31599 77.53546 -1.10241 86.52128 -2.09412C95.50709 -3.08583 104.37427 -2.64309 113.12282 -0.76589C121.87137 1.11131 130.09712 4.12751 137.80007 8.28271C145.50302 12.43791 152.53652 17.35515 158.90058 23.03443C165.26463 28.7137 170.969 34.91856 176.01368 41.649C181.05836 48.37944 185.3953 55.56843 189.02451 63.21597C192.65372 70.86352 195.3609 78.90607 197.14605 87.34364C198.93119 95.78121 199.51935 104.37638 198.91052 113.12915Z\"/>",
37
- anchor: { x: 111.22, y: 116.58, scale: 0.83 },
37
+ anchor: { x: 112.93, y: 121.71, scale: 1 },
38
38
  },
39
39
  circle: {
40
40
  id: "circle",
@@ -42,7 +42,7 @@ export const MASCOT_BODIES = {
42
42
  fit: "translate(0 0) scale(1.142705)",
43
43
  body: "<path fill=\"{{GRADIENT}}\" d=\"M200 100C200 155.22847 155.22847 200 100 200C44.77153 200 0 155.22847 0 100C0 44.77153 44.77153 0 100 0C155.22847 0 200 44.77153 200 100Z\"/>",
44
44
  clip: "<path d=\"M200 100C200 155.22847 155.22847 200 100 200C44.77153 200 0 155.22847 0 100C0 44.77153 44.77153 0 100 0C155.22847 0 200 44.77153 200 100Z\"/>",
45
- anchor: { x: 113.82, y: 112.05, scale: 0.83 },
45
+ anchor: { x: 113.82, y: 113.82, scale: 1 },
46
46
  },
47
47
  squircle: {
48
48
  id: "squircle",
@@ -50,7 +50,7 @@ export const MASCOT_BODIES = {
50
50
  fit: "translate(0 0) scale(1.142705)",
51
51
  body: "<path fill=\"{{GRADIENT}}\" d=\"M50 0C83.33333 0 116.66667 0 150 0C177.61424 0 200 22.38576 200 50C200 83.33333 200 116.66667 200 150C200 177.61424 177.61424 200 150 200C116.66667 200 83.33333 200 50 200C22.38576 200 0 177.61424 0 150C0 116.66667 0 83.33333 0 50C0 22.38576 22.38576 0 50 0Z\"/>",
52
52
  clip: "<path d=\"M50 0C83.33333 0 116.66667 0 150 0C177.61424 0 200 22.38576 200 50C200 83.33333 200 116.66667 200 150C200 177.61424 177.61424 200 150 200C116.66667 200 83.33333 200 50 200C22.38576 200 0 177.61424 0 150C0 116.66667 0 83.33333 0 50C0 22.38576 22.38576 0 50 0Z\"/>",
53
- anchor: { x: 111.78, y: 111.79, scale: 0.83 },
53
+ anchor: { x: 113.82, y: 113.82, scale: 1 },
54
54
  },
55
55
  capsule: {
56
56
  id: "capsule",
@@ -58,7 +58,7 @@ export const MASCOT_BODIES = {
58
58
  fit: "translate(0 0) scale(1.142705)",
59
59
  body: "<path fill=\"{{GRADIENT}}\" d=\"M100 0C141.42136 0 175 33.57864 175 75C175 91.66667 175 108.33333 175 125C175 166.42136 141.42136 200 100 200C58.57864 200 25 166.42136 25 125C25 108.33333 25 91.66667 25 75C25 33.57864 58.57864 0 100 0Z\"/>",
60
60
  clip: "<path d=\"M100 0C141.42136 0 175 33.57864 175 75C175 91.66667 175 108.33333 175 125C175 166.42136 141.42136 200 100 200C58.57864 200 25 166.42136 25 125C25 108.33333 25 91.66667 25 75C25 33.57864 58.57864 0 100 0Z\"/>",
61
- anchor: { x: 113.82, y: 131.68, scale: 0.83 },
61
+ anchor: { x: 113.82, y: 88.83, scale: 1 },
62
62
  },
63
63
  drop: {
64
64
  id: "drop",
@@ -66,7 +66,7 @@ export const MASCOT_BODIES = {
66
66
  fit: "translate(-3.5341 -3.5341) scale(1.178046)",
67
67
  body: "<path fill=\"{{GRADIENT}}\" d=\"M100 3C160.84 78.2235 178 103.298 178 119C178 162.07821 143.07821 197 100 197C56.92179 197 22 162.07821 22 119C22 103.298 39.16 78.2235 100 3Z\"/>",
68
68
  clip: "<path d=\"M100 3C160.84 78.2235 178 103.298 178 119C178 162.07821 143.07821 197 100 197C56.92179 197 22 162.07821 22 119C22 103.298 39.16 78.2235 100 3Z\"/>",
69
- anchor: { x: 112.47, y: 138.8, scale: 0.83 },
69
+ anchor: { x: 113.82, y: 141.5, scale: 1 },
70
70
  },
71
71
  shield: {
72
72
  id: "shield",
@@ -74,31 +74,31 @@ export const MASCOT_BODIES = {
74
74
  fit: "translate(-12.1611 -24.3222) scale(1.264316)",
75
75
  body: "<path fill=\"{{GRADIENT}}\" d=\"M57.25 38.475C85.75 12.825 114.25 12.825 142.75 38.475C153.89667 76.64167 165.04333 114.80833 176.19 152.975C188.73 184.325 179.325 200 147.975 200C115.99167 200 84.00833 200 52.025 200C20.675 200 11.27 184.325 23.81 152.975C34.95667 114.80833 46.10333 76.64167 57.25 38.475Z\"/>",
76
76
  clip: "<path d=\"M57.25 38.475C85.75 12.825 114.25 12.825 142.75 38.475C153.89667 76.64167 165.04333 114.80833 176.19 152.975C188.73 184.325 179.325 200 147.975 200C115.99167 200 84.00833 200 52.025 200C20.675 200 11.27 184.325 23.81 152.975C34.95667 114.80833 46.10333 76.64167 57.25 38.475Z\"/>",
77
- anchor: { x: 113.82, y: 167.74, scale: 0.83 },
77
+ anchor: { x: 113.82, y: 174.91, scale: 1 },
78
78
  },
79
79
  hexagon: {
80
80
  id: "hexagon",
81
81
  name: "Hexagon",
82
- fit: "translate(-4.1077 -4.1077) scale(1.183782)",
83
- body: "<path fill=\"{{GRADIENT}}\" d=\"M94.90777 4.94C98.30259 2.98 101.69741 2.98 105.09223 4.94C129.98757 19.31333 154.88292 33.68667 179.77826 48.06C183.17308 50.02 184.87049 52.96 184.87049 56.88C184.87049 85.62667 184.87049 114.37333 184.87049 143.12C184.87049 147.04 183.17308 149.98 179.77826 151.94C154.88292 166.31333 129.98757 180.68667 105.09223 195.06C101.69741 197.02 98.30259 197.02 94.90777 195.06C70.01243 180.68667 45.11708 166.31333 20.22174 151.94C16.82692 149.98 15.12951 147.04 15.12951 143.12C15.12951 114.37333 15.12951 85.62667 15.12951 56.88C15.12951 52.96 16.82692 50.02 20.22174 48.06C45.11708 33.68667 70.01243 19.31333 94.90777 4.94Z\"/>",
84
- clip: "<path d=\"M94.90777 4.94C98.30259 2.98 101.69741 2.98 105.09223 4.94C129.98757 19.31333 154.88292 33.68667 179.77826 48.06C183.17308 50.02 184.87049 52.96 184.87049 56.88C184.87049 85.62667 184.87049 114.37333 184.87049 143.12C184.87049 147.04 183.17308 149.98 179.77826 151.94C154.88292 166.31333 129.98757 180.68667 105.09223 195.06C101.69741 197.02 98.30259 197.02 94.90777 195.06C70.01243 180.68667 45.11708 166.31333 20.22174 151.94C16.82692 149.98 15.12951 147.04 15.12951 143.12C15.12951 114.37333 15.12951 85.62667 15.12951 56.88C15.12951 52.96 16.82692 50.02 20.22174 48.06C45.11708 33.68667 70.01243 19.31333 94.90777 4.94Z\"/>",
85
- anchor: { x: 112.26, y: 110.7, scale: 0.83 },
82
+ fit: "translate(-5.6293 -5.6293) scale(1.198998)",
83
+ body: "<path fill=\"{{GRADIENT}}\" d=\"M90.66425 7.39C96.88808 3.79667 103.11192 3.79667 109.33575 7.39C131.40208 20.13 153.46841 32.87 175.53474 45.61C181.75857 49.20333 184.87049 54.59333 184.87049 61.78C184.87049 87.26 184.87049 112.74 184.87049 138.22C184.87049 145.40667 181.75857 150.79667 175.53474 154.39C153.46841 167.13 131.40208 179.87 109.33575 192.61C103.11192 196.20333 96.88808 196.20333 90.66425 192.61C68.59792 179.87 46.53159 167.13 24.46526 154.39C18.24143 150.79667 15.12951 145.40667 15.12951 138.22C15.12951 112.74 15.12951 87.26 15.12951 61.78C15.12951 54.59333 18.24143 49.20333 24.46526 45.61C46.53159 32.87 68.59792 20.13 90.66425 7.39Z\"/>",
84
+ clip: "<path d=\"M90.66425 7.39C96.88808 3.79667 103.11192 3.79667 109.33575 7.39C131.40208 20.13 153.46841 32.87 175.53474 45.61C181.75857 49.20333 184.87049 54.59333 184.87049 61.78C184.87049 87.26 184.87049 112.74 184.87049 138.22C184.87049 145.40667 181.75857 150.79667 175.53474 154.39C153.46841 167.13 131.40208 179.87 109.33575 192.61C103.11192 196.20333 96.88808 196.20333 90.66425 192.61C68.59792 179.87 46.53159 167.13 24.46526 154.39C18.24143 150.79667 15.12951 145.40667 15.12951 138.22C15.12951 112.74 15.12951 87.26 15.12951 61.78C15.12951 54.59333 18.24143 49.20333 24.46526 45.61C46.53159 32.87 68.59792 20.13 90.66425 7.39Z\"/>",
85
+ anchor: { x: 113.82, y: 113.82, scale: 1 },
86
86
  },
87
87
  diamond: {
88
88
  id: "diamond",
89
89
  name: "Diamond",
90
- fit: "translate(-5.9383 -5.9383) scale(1.202088)",
91
- body: "<path fill=\"{{GRADIENT}}\" d=\"M94.12 7.88C98.04 3.96 101.96 3.96 105.88 7.88C134.62667 36.62667 163.37333 65.37333 192.12 94.12C196.04 98.04 196.04 101.96 192.12 105.88C163.37333 134.62667 134.62667 163.37333 105.88 192.12C101.96 196.04 98.04 196.04 94.12 192.12C65.37333 163.37333 36.62667 134.62667 7.88 105.88C3.96 101.96 3.96 98.04 7.88 94.12C36.62667 65.37333 65.37333 36.62667 94.12 7.88Z\"/>",
92
- clip: "<path d=\"M94.12 7.88C98.04 3.96 101.96 3.96 105.88 7.88C134.62667 36.62667 163.37333 65.37333 192.12 94.12C196.04 98.04 196.04 101.96 192.12 105.88C163.37333 134.62667 134.62667 163.37333 105.88 192.12C101.96 196.04 98.04 196.04 94.12 192.12C65.37333 163.37333 36.62667 134.62667 7.88 105.88C3.96 101.96 3.96 98.04 7.88 94.12C36.62667 65.37333 65.37333 36.62667 94.12 7.88Z\"/>",
93
- anchor: { x: 112.53, y: 111.23, scale: 0.83 },
90
+ fit: "translate(-9.1184 -9.1184) scale(1.233889)",
91
+ body: "<path fill=\"{{GRADIENT}}\" d=\"M89.22 12.78C96.40667 5.59333 103.59333 5.59333 110.78 12.78C136.26 38.26 161.74 63.74 187.22 89.22C194.40667 96.40667 194.40667 103.59333 187.22 110.78C161.74 136.26 136.26 161.74 110.78 187.22C103.59333 194.40667 96.40667 194.40667 89.22 187.22C63.74 161.74 38.26 136.26 12.78 110.78C5.59333 103.59333 5.59333 96.40667 12.78 89.22C38.26 63.74 63.74 38.26 89.22 12.78Z\"/>",
92
+ clip: "<path d=\"M89.22 12.78C96.40667 5.59333 103.59333 5.59333 110.78 12.78C136.26 38.26 161.74 63.74 187.22 89.22C194.40667 96.40667 194.40667 103.59333 187.22 110.78C161.74 136.26 136.26 161.74 110.78 187.22C103.59333 194.40667 96.40667 194.40667 89.22 187.22C63.74 161.74 38.26 136.26 12.78 110.78C5.59333 103.59333 5.59333 96.40667 12.78 89.22C38.26 63.74 63.74 38.26 89.22 12.78Z\"/>",
93
+ anchor: { x: 113.82, y: 113.82, scale: 1 },
94
94
  },
95
95
  star: {
96
96
  id: "star",
97
- name: "Star",
98
- fit: "translate(-8.3327 3.1407) scale(1.226032)",
99
- body: "<path fill=\"{{GRADIENT}}\" d=\"M100 2C110.56054 20.13133 121.12108 38.26266 131.68163 56.39398C152.18893 60.83477 172.69623 65.27555 193.20354 69.71633C179.22301 85.3629 165.24248 101.00946 151.26195 116.65602C153.37562 137.5319 155.48929 158.40778 157.60295 179.28367C138.40197 170.82244 119.20098 162.36122 100 153.9C80.79902 162.36122 61.59803 170.82244 42.39705 179.28367C44.51071 158.40778 46.62438 137.5319 48.73805 116.65602C34.75752 101.00946 20.77699 85.3629 6.79646 69.71633C27.30377 65.27555 47.81107 60.83477 68.31837 56.39398C78.87892 38.26266 89.43946 20.13133 100 2Z\"/>",
100
- clip: "<path d=\"M100 2C110.56054 20.13133 121.12108 38.26266 131.68163 56.39398C152.18893 60.83477 172.69623 65.27555 193.20354 69.71633C179.22301 85.3629 165.24248 101.00946 151.26195 116.65602C153.37562 137.5319 155.48929 158.40778 157.60295 179.28367C138.40197 170.82244 119.20098 162.36122 100 153.9C80.79902 162.36122 61.59803 170.82244 42.39705 179.28367C44.51071 158.40778 46.62438 137.5319 48.73805 116.65602C34.75752 101.00946 20.77699 85.3629 6.79646 69.71633C27.30377 65.27555 47.81107 60.83477 68.31837 56.39398C78.87892 38.26266 89.43946 20.13133 100 2Z\"/>",
101
- anchor: { x: 113.82, y: 125.43, scale: 0.83 },
97
+ name: "Blend",
98
+ fit: "translate(-12.6967 -14.6012) scale(1.269672)",
99
+ body: "<path fill=\"{{GRADIENT}}\" d=\"M62 51C70 51 75 51 83 51C88 36 101 27 122 27C134 27 145 27 156 27C178 27 190 41 190 64C190 82 190 99 190 117C190 141 176 154 153 154C143 154 132 154 121 154C116 168 104 176 84 176C71 176 58 176 44 176C21 176 10 161 10 139C10 122 10 105 10 87C10 63 26 51 49 51C53 51 58 51 62 51Z\"/>",
100
+ clip: "<path d=\"M62 51C70 51 75 51 83 51C88 36 101 27 122 27C134 27 145 27 156 27C178 27 190 41 190 64C190 82 190 99 190 117C190 141 176 154 153 154C143 154 132 154 121 154C116 168 104 176 84 176C71 176 58 176 44 176C21 176 10 161 10 139C10 122 10 105 10 87C10 63 26 51 49 51C53 51 58 51 62 51Z\"/>",
101
+ anchor: { x: 136.75, y: 114.39, scale: 1 },
102
102
  },
103
103
  };
104
104
  /** Runtime-safe read of an untrusted persisted or streamed body id. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "limixbot",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Run the Limix Bot server anywhere and pair your devices to it (Leox ৹ Limix AI)",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Agent Eyes
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: agent-reach
3
+ description: >
4
+ Read-only access to platform content: search, read posts, view comments, fetch subtitles, stock quotes and jobs.
5
+ Use when the user mentions or pastes a link from Xiaohongshu, Bilibili, Twitter/X, Reddit,
6
+ YouTube (subtitles, transcripts), GitHub, V2EX, Xueqiu/stock quotes, LinkedIn/Boss Zhipin jobs,
7
+ Instagram, Facebook or Xiaoyuzhou podcasts; or says "search / look up / read this link" and your built-in
8
+ web search or fetch is unavailable, fails, or misses the body;
9
+ or wants to install, add/remove a platform, log in/out, check status, update or uninstall Agent Reach.
10
+ Does not: post, comment, like, message or any other write; never logs in for the user or asks for passwords.
11
+ Prefer your own tools for public content; Reach fills the gaps.
12
+ metadata:
13
+ homepage: https://github.com/Panniantong/Agent-Reach
14
+ version: "c70ae6d"
15
+ ---
16
+
17
+ > **Limix Bot.** Python 3.12 and `uv` are bundled with Limix Bot and on PATH. If the command is missing, ask the
18
+ > person once, then install it with:
19
+ >
20
+ > ```
21
+ > uv tool install https://github.com/Panniantong/Agent-Reach/releases/latest/download/agent-reach.zip
22
+ > ```
23
+ >
24
+ > Tools installed this way land in Limix Bot's own folder (no administrator rights needed) and are on PATH from the
25
+ > next command. `<root>` is the folder named by this skill's `root`.
26
+ > Source: https://github.com/Panniantong/Agent-Reach/tree/c70ae6da5d39bc90e09ad2ae0575ccc89f31e284/agent_reach/skill (MIT).
27
+
28
+ # Agent Reach
29
+
30
+ One command for every platform: `agent-reach`. Read-only; prints one JSON object by default.
31
+
32
+ Before acting, say "using the agent-reach skill (channel X)". Once invoked, these rules apply for the whole session.
33
+
34
+ ## Choosing a route
35
+
36
+ - For public content, use your own search/read tools first (optionally `site:domain`). Check body text, comments and subtitles separately; when they are enough, answer directly without adding channels or logging in.
37
+ - Use Reach when your tools are unavailable, the result lacks what the user needs, or the user wants a site action a channel declares. Unsure of actions and params? Run `agent-reach channels`.
38
+ - An added channel (a default one, or one added with `add`) sends search/read straight to its site tool. For channels not added yet, search/read first try anonymous public web access; results mark it with `backend: public-web`. `--backend public-web` limits to public web; `--backend <backend>` picks a site tool.
39
+ - A platform name or link only identifies the source; it never triggers install or login by itself.
40
+ - Snippets, page shells, comment counts and subtitle track lists are not body text, comments or subtitles; say which you have. If the user skips login, still deliver the public results already gathered.
41
+
42
+ ```bash
43
+ agent-reach channels # actions and params per channel
44
+ agent-reach <channel> <action> [args] # e.g. agent-reach bilibili search "rust async" --limit 5
45
+ agent-reach read <url> # picks the channel from the URL
46
+ ```
47
+
48
+ ## Results and errors
49
+
50
+ - `ok: true` → content in `items`; each has `title / url / author / published_at / text`, upstream data in `raw`.
51
+ - `ok: false` → branch on `error.code` and follow `error.hint`:
52
+
53
+ | error.code | What to do |
54
+ |---|---|
55
+ | `NEED_SETUP` | Missing dependency or key. Run `agent-reach add <channel>` as hinted; for a key, the user provides it, then `agent-reach configure <key>` |
56
+ | `NEED_LOGIN` | Keep existing results and tell the user login is needed; `agent-reach login <channel>` opens the browser and the user logs in themselves. Never log in for them or ask for a password |
57
+ | `UPSTREAM_BROKEN` | This platform is temporarily not working; `message` is what was reported. Tell the user which platform is unavailable and roughly why, by platform name, without naming tools; run `agent-reach update` once, after they agree, only if the message points to an outdated tool; never retry in a loop |
58
+ | `TIMEOUT` | Check the failed stage and channel status (`agent-reach doctor --text`); do not retry or reopen windows in a loop |
59
+ | `RATE_LIMITED` | The platform rate-limited; Reach paused the channel. Wait `retry_after_seconds`; do not switch backends |
60
+ | `PLATFORM_BLOCKED` | The platform wants verification (captcha/risk check). Stop; the user resolves it on the official page. Do not switch accounts or backends |
61
+ | `BUSY` | The browser stayed full for the 2-minute wait in line, or the user has a login window open. Retry later, or after the user says they are logged in; do not close the window or switch profiles |
62
+ | `NOT_FOUND` | Content does not exist; check the link or ID |
63
+ | `BAD_INPUT` | Wrong arguments; run `agent-reach channels` for usage |
64
+
65
+ On `PLATFORM_BLOCKED`, `RATE_LIMITED`, `NEED_LOGIN` or `BUSY`, stop this attempt; do not retry with other accounts, backends or browsers. A network failure or a failure on one machine does not mean "the platform requires login".
66
+
67
+ ## Login and the dedicated browser
68
+
69
+ All browser channels share one dedicated browser (CloakBrowser preferred, falling back to installed Chrome). It runs headless by default, closes after 10 idle minutes and reopens on the next call. Calls may run in parallel, including from subagents: up to 2 per platform and 4 in total run at once, the rest wait in line, and two searches on the same platform start at least 10 seconds apart.
70
+
71
+ The first time a site is used, if the user's Chrome is connected to the OpenCLI extension, that site's login is copied once into the dedicated browser and reused afterwards; only that site is copied and the source browser is untouched. Only when the login has expired or there is no source to copy from does the user run `agent-reach login <channel>` and log in themselves. Refreshing, choosing a source and logging out are in [Sessions](references/sessions.md): read it when the user wants to log in, log out or switch accounts, or on `NEED_LOGIN`.
72
+
73
+ ## Platform notes
74
+
75
+ - Xiaohongshu read returns text descriptions only; never claim to understand the images or video.
76
+ - When a Boss Zhipin search result has `salary_encoded=true`, never guess the salary digits; read the job link for the readable salary in the detail.
77
+ - What each platform offers publicly and what Reach adds is in [Capability scope](references/capabilities.md): read it when the user asks "what can it get / is it complete" or you need to judge completeness.
78
+
79
+ ## Channels
80
+
81
+ {{CHANNEL_TABLE}}
82
+
83
+ `default` channels are installed by default and can be removed; updates never add a removed one back. The `login` column is the authentication entry point, not a prerequisite for public content.
84
+
85
+ ## After installation
86
+
87
+ After `agent-reach setup`, show `result.installation_report.markdown` to the user as is: no additions, removals, reordering, extra greeting or tables. The program generates it.
88
+
89
+ ## When the user wants to manage Agent Reach
90
+
91
+ | User says | You run |
92
+ |---|---|
93
+ | Add a platform | `agent-reach add <channel>`; dependencies install automatically. Tell the user only what they must do (log in or provide a key) |
94
+ | Remove a platform | `agent-reach remove <channel>` |
95
+ | Log in / login expired | `agent-reach login <channel>`; the user logs in themselves in the window that opens |
96
+ | Log out | `agent-reach logout <channel>` |
97
+ | Status / what works | `agent-reach doctor --text`; for a live test `agent-reach check <channel> --text` |
98
+ | Upgrade / update | `agent-reach update` |
99
+ | Uninstall | show `agent-reach uninstall --dry-run` first, then `agent-reach uninstall` once they confirm |
100
+ | Another AI should use it | `agent-reach skill link <that AI's skills folder>`; `agent-reach skill` shows where it is placed now |
101
+ | An AI should not get it user-wide (e.g. registered per project) | `agent-reach skill unlink <that AI's skills folder>`; setup and update no longer put it back |
102
+
103
+ Troubleshooting, browser maintenance and uninstall details are in [Maintenance](references/maintenance.md): read it when an update fails, the browser will not start, or the user wants to uninstall.
104
+
105
+ ## When there is a new version
106
+
107
+ Any result with `meta.update` means a newer version exists. Mention it once per conversation, in the user's language and plain words:
108
+
109
+ 1. Agent Reach has a new version (`meta.update.latest`).
110
+ 2. What changed: 1 to 3 short points from `meta.update.notes`.
111
+ 3. Ask whether to update; run `agent-reach update` only after the user agrees.
112
+
113
+ ## Red lines
114
+
115
+ - Read only. Never post, comment, like or message.
116
+ - Never log in for the user; never ask for or print passwords, cookies or other credentials.
117
+ - Ordinary queries never change dependencies or update automatically.
@@ -0,0 +1,41 @@
1
+ {
2
+ "id": "agent-reach",
3
+ "name": "Agent Reach",
4
+ "version": "1.0.0",
5
+ "description": "Read-only search and reading on X/Twitter, Reddit, YouTube (subtitles), GitHub, Bilibili, XiaoHongShu, V2EX, LinkedIn and more through the agent-reach command.",
6
+ "defaultEnabled": true,
7
+ "triggerTerms": [
8
+ "reddit.com",
9
+ "reddit",
10
+ "bilibili",
11
+ "b站",
12
+ "xiaohongshu",
13
+ "小红书",
14
+ "twitter.com",
15
+ "x.com/",
16
+ "v2ex",
17
+ "xueqiu",
18
+ "雪球",
19
+ "youtube.com",
20
+ "youtu.be",
21
+ "phụ đề youtube",
22
+ "youtube transcript",
23
+ "transcript",
24
+ "phụ đề video",
25
+ "xiaoyuzhou",
26
+ "小宇宙",
27
+ "boss直聘",
28
+ "agent-reach",
29
+ "agent reach",
30
+ "đọc link",
31
+ "đọc giúp link",
32
+ "read this link"
33
+ ],
34
+ "requiredCapabilities": [],
35
+ "source": {
36
+ "repo": "Panniantong/Agent-Reach",
37
+ "commit": "c70ae6da5d39bc90e09ad2ae0575ccc89f31e284",
38
+ "folder": "agent_reach/skill",
39
+ "license": "MIT"
40
+ }
41
+ }
@@ -0,0 +1,31 @@
1
+ # 能力边界 / Capability scope
2
+
3
+ 用户问"能查什么、查得全吗",或要判断结果完整度时读这份。下表是声明能力,不代表所有网络、账号和内容都已实测。
4
+ Read when the user asks what can be fetched or how complete a result is. Declared capabilities, not guaranteed results.
5
+
6
+ ## 三层说明
7
+
8
+ - **公开可尝试**:Agent 已有网页工具、原生工具或公开接口可能已满足任务;不要求安装浏览器、登录。按实际取得的证据回答。
9
+ - **Reach 补充**:当前发布版声明的动作,见 `agent-reach channels`。需要配置时先复用专用浏览器已保存的会话,所选路径实际要求登录时才本人登录。
10
+ - **本机已验证**:只列本机最近成功验收的具体动作;安装、保存会话和网络可达均不等于业务验收。
11
+
12
+ ## 本版渠道
13
+
14
+ | 渠道 | 公开路径可尝试 | Reach 补充与边界 |
15
+ |---|---|---|
16
+ | GitHub | 公开仓库、README、Issue/PR | 仓库搜索、仓库/Issue/PR 读取和返回的评论;私有权限另行判断 |
17
+ | YouTube | 搜索、标题、简介;原生工具可能取得部分评论及字幕正文 | search/read/subtitle/transcribe;当前没有统一 comments 动作;轨道列表不等于字幕正文,无字幕时转录依赖相应工具 |
18
+ | B 站 | 搜索、简介;部分公开接口可返回评论及父子 ID | search/read/hot/subtitle;当前没有统一 comments 动作;字幕随视频和访问路径而异 |
19
+ | Reddit | 搜索、正文、部分评论;某些公开 JSON 可含父子 ID | 浏览器 search/read/subreddit;登录依所选路径决定,不保证完整评论树、全部回复;不提供发评论 |
20
+ | X/Twitter | 搜索命中的公开单帖;部分官方公开嵌入可返回全文 | search/profile/tweets/thread;单帖可读不代表回复流可读,不保证完整评论树 |
21
+ | 小红书 | 公开列表或索引可能有笔记 ID、作者、标题,空字段不能补猜 | search/read/comments;文字描述、顶级评论及已加载回复;不保证全部评论,不声称理解图片/视频 |
22
+ | Instagram | 部分索引和主页浅层信息;HTML 应用壳不算帖文 | search 搜用户、profile 主页、posts 指定用户帖子描述;无统一评论动作,不声称理解图片/视频 |
23
+ | Facebook | 部分索引或 HTML 摘要;摘要可能被截断 | search/profile;无统一详情或评论动作,不把搜索摘要当全文 |
24
+ | LinkedIn | 搜公开职位、读公开 JD | jobs/read 先尝试公开网页;指定 opencli 才直接走站内;不保证所有职位可读 |
25
+ | BOSS | 搜索索引中可能有职位摘要 | search/read 职位列表与 JD;不能根据编码薪资猜数字;详情后备能力依渠道声明 |
26
+ | V2EX | 主题、正文及公开回复 | hot/node/read/user;返回范围以本次响应为准,不保证隐藏或缺失回复 |
27
+ | 雪球 | 部分公开行情和索引信息 | quote/search/hot_posts/hot_stocks;行情与社区路径分别验收 |
28
+ | Web | Agent 自带搜索/读取 | Reach web search/read 为匿名保底;摘要、页面壳和验证页不能当完整正文 |
29
+ | 小宇宙 | 节目页标题、简介 | transcribe 整集转文字;需要用户提供 Groq Key(`agent-reach configure groq-key`) |
30
+
31
+ 登录后的能力表述使用“可启用/尝试上述浏览器动作”,不使用“登录后支持全部评论”。用户跳过登录时交付已有公开证据。
@@ -0,0 +1,13 @@
1
+ # 维护
2
+
3
+ 更新失败、浏览器起不来、渠道报错或用户要卸载时读这份。
4
+
5
+ - 更新:`agent-reach update` 升级 Agent Reach、已加渠道的工具和 skill;`agent-reach update --check` 只查有没有新版本。只在用户同意后执行。
6
+ - 状态:`agent-reach doctor --text` 读本地状态,不联网;`agent-reach check <渠道> --text` 联网实测一次(`--search` 只测搜索/职位)。安装成功不等于实测通过。
7
+ - 浏览器:`agent-reach browser status` 看状态,`browser setup` 准备内核和扩展,`browser stop` 关闭;CloakBrowser 下载失败后修好网络可 `browser setup --retry-cloak`。
8
+ - 分清失败环节:依赖下载、浏览器连接、登录、网页加载、平台限流各是各的;网络超时不要说成登录失效。
9
+ - 上游工具出错:记下错误和版本,用户同意后 `agent-reach update` 一次;不改上游工具的安装文件,不循环重试。
10
+ - `PLATFORM_BLOCKED`、`RATE_LIMITED`、`NEED_LOGIN`、`BUSY` 停止本次尝试,等用户处理后再继续,不反复开窗。
11
+ - 密钥和代理:`agent-reach configure groq-key | openai-key | proxy | github-token`,值由用户本人提供。
12
+ - 端口冲突(`Port <n> belongs to an unmanaged browser`):别的程序占了专用浏览器端口(默认 9222)。不要关掉用户的那个程序;用户同意后 `agent-reach configure browser-port <空闲端口>`。
13
+ - 卸载:先 `agent-reach uninstall --dry-run` 给用户看范围,确认后 `agent-reach uninstall`。只删 Reach 自己装的东西,用户的其他文件和浏览器保留。
@@ -0,0 +1,41 @@
1
+ # 会话与专用浏览器
2
+
3
+ 用户要登录、退出、换账号,或结果返回 `NEED_LOGIN` 时读这份。
4
+
5
+ ## 专用浏览器
6
+
7
+ - 所有浏览器渠道共用一个专用浏览器配置,和用户日常的 Chrome 分开;程序不关闭、不修改用户的日常浏览器。
8
+ - 内核优先 CloakBrowser;下载或安装失败时用本机已装的 Chrome,并记住这个回退,不每次重下。网络修好后可 `agent-reach browser setup --retry-cloak` 重试。
9
+ - `agent-reach add <渠道>` 自动准备 Node、OpenCLI、内核和扩展。工具按本版测试过的版本安装。Windows 上用 Chrome 回退时,可能需要用户点一次"添加至 Chrome"。
10
+ - 默认无头,不弹窗。只有 `agent-reach login <渠道>` 会显示窗口;窗口开着时查询直接用这个窗口,不会收掉它,用户登录期间等用户说登好了再查。窗口关闭后,之后的查询回到无头。
11
+ - 闲置 10 分钟自动关闭,下次调用自动重开;真实页面操作和 Reach 调用会重置计时。登录期间定期保存,用户不用关窗。
12
+ - 可以并行:同一平台最多同时 2 条,所有平台合计 4 条,多出来的排队,最多等 2 分钟,等不到才返回 `BUSY`。同一平台的两次搜索之间至少隔 10 秒。打开登录窗口、退出登录、重装浏览器会等正在跑的查询结束再做。
13
+ - `agent-reach browser status` 查看状态,`browser setup` 准备内核和扩展,`browser stop` 关闭程序管理的浏览器。
14
+
15
+ ## 自动复用已有登录
16
+
17
+ 1. 第一次用某个网站时,如果用户的 Chrome 已连接 OpenCLI 扩展,程序把该站的登录(只限该站 Cookie)复制一次到专用浏览器。不复制整个浏览器目录、其他网站或密码库,也不改动来源浏览器。
18
+ 2. 复制成功后一直复用保存的会话,不按时间重新复制。Cookie 在不代表登录有效,以真实动作结果为准。
19
+ 3. 用户 Chrome 没连扩展时,不能承诺自动复用,也不能据此认定用户没登录;此时用 Reach 已保存的会话。
20
+ 4. 本机有多个浏览器都登录了该站时:`agent-reach browser profiles` 列出来源,`agent-reach browser use <ID>` 选定一个,不随机切换。
21
+ 5. `agent-reach login <渠道> --import-existing` 主动重新复制一次该站登录,不打开窗口。没找到可复制的登录,或 OpenCLI Bridge 没在运行时,返回 `NEED_SETUP`,已保存的会话不变。
22
+ 6. 用户本人在专用窗口里登录过,或执行过 `logout` / `remove`,就不再自动复制,避免已退出的登录复活。
23
+
24
+ ## 需要本人登录时
25
+
26
+ - 只有实际返回 `NEED_LOGIN`、且剩下的任务确实需要这条路径时,才请用户登录。正文旁边有个登录按钮不算要求登录。
27
+ - `agent-reach login <渠道>` 打开专用浏览器到该站登录页,用户本人完成登录。你不代登、不要密码、不输出 Cookie。
28
+ - 返回结果里的 `next` 写了后续步骤就照做;部分原生工具渠道(如雪球)登录后要再跑 `agent-reach login <渠道> --sync`。
29
+ - 用户完成后,重新执行原来的动作验证。
30
+
31
+ ## 平台差异
32
+
33
+ - Boss 直聘站内搜索走 OpenCLI,共用专用浏览器。职位详情若因上游误报要求登录,不要让用户反复登录。
34
+ - B 站只在读字幕时把已有登录交给 B 站官方命令行工具;普通搜索不准备浏览器。
35
+ - 雪球社区动作需要登录;会话几小时内过期,过期后重复登录步骤。
36
+
37
+ ## 退出和删除
38
+
39
+ - `agent-reach logout <渠道>`:清除专用浏览器里该站的登录和渠道自己的状态,其他网站保留。
40
+ - `agent-reach remove <渠道>`:去掉渠道,同时清该站登录和存储,其他网站保留。清理失败时渠道记录保留并返回错误,用户可重试。
41
+ - 两者之后都不再自动复制该站登录。