synabun 2.0.0 → 2.0.5

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 (334) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/NOTICE +5 -0
  3. package/README.md +1 -1
  4. package/THIRD-PARTY-LICENSES.md +46 -0
  5. package/benchmarks/fixtures/browser/README.md +1 -1
  6. package/benchmarks/fixtures/desktop/README.md +1 -1
  7. package/docs/whatsapp.md +2 -2
  8. package/hooks/claude-code/pre-compact.mjs +11 -0
  9. package/hooks/claude-code/prompt-submit.mjs +60 -184
  10. package/hooks/claude-code/session-start.mjs +73 -16
  11. package/hooks/claude-code/shared.mjs +20 -0
  12. package/hooks/claude-code/stop.mjs +5 -5
  13. package/lib/start-launcher.js +88 -1
  14. package/mcp-server/package-lock.json +2 -2
  15. package/mcp-server/package.json +1 -3
  16. package/neural-interface/i18n/en.json +1500 -153
  17. package/neural-interface/i18n/pt-BR.json +1498 -152
  18. package/neural-interface/lib/assistant-api.js +62 -6
  19. package/neural-interface/lib/assistant-brains/claude.js +4 -0
  20. package/neural-interface/lib/assistant-catalog.js +179 -27
  21. package/neural-interface/lib/assistant-config.js +31 -2
  22. package/neural-interface/lib/assistant-dispatch.js +62 -13
  23. package/neural-interface/lib/assistant-hidden-models.js +393 -66
  24. package/neural-interface/lib/assistant-memory.js +24 -10
  25. package/neural-interface/lib/assistant-persona.js +6 -2
  26. package/neural-interface/lib/assistant-pricing.js +21 -6
  27. package/neural-interface/lib/assistant-runtime.js +181 -12
  28. package/neural-interface/lib/assistant-task-prompt.js +13 -3
  29. package/neural-interface/lib/assistant-test-density.js +142 -0
  30. package/neural-interface/lib/assistant-user-context-budgets.js +123 -0
  31. package/neural-interface/lib/assistant-user-context.js +908 -0
  32. package/neural-interface/lib/assistant-user-knowledge.js +328 -0
  33. package/neural-interface/lib/assistant-user-learn.js +404 -0
  34. package/neural-interface/lib/assistant-user-threads.js +226 -0
  35. package/neural-interface/lib/assistant-user-writer.js +181 -0
  36. package/neural-interface/lib/browser-background-tab.js +134 -0
  37. package/neural-interface/lib/browser-screenshot.js +678 -61
  38. package/neural-interface/lib/claude-agent-bridge.js +33 -6
  39. package/neural-interface/lib/claude-model-catalog.js +30 -2
  40. package/neural-interface/lib/claude-temporary.js +46 -7
  41. package/neural-interface/lib/cloudflared/install.js +533 -0
  42. package/neural-interface/lib/cloudflared/manager.js +545 -0
  43. package/neural-interface/lib/cloudflared/pins.js +115 -0
  44. package/neural-interface/lib/cloudflared/pins.json +63 -0
  45. package/neural-interface/lib/cloudflared/tunnel.js +265 -0
  46. package/neural-interface/lib/editor-completion-endpoint.js +264 -0
  47. package/neural-interface/lib/editor-completion-opencode.js +436 -0
  48. package/neural-interface/lib/editor-completion.js +714 -0
  49. package/neural-interface/lib/editor-config.js +149 -0
  50. package/neural-interface/lib/editor-files-api.js +268 -0
  51. package/neural-interface/lib/editor-git-api.js +134 -0
  52. package/neural-interface/lib/file-explorer-api.js +1039 -0
  53. package/neural-interface/lib/file-explorer-system.js +355 -0
  54. package/neural-interface/lib/file-explorer-trash.ps1 +85 -0
  55. package/neural-interface/lib/file-explorer-watch.js +239 -0
  56. package/neural-interface/lib/git-diff-api.js +103 -0
  57. package/neural-interface/lib/git-read.js +202 -0
  58. package/neural-interface/lib/greeting/api.js +89 -0
  59. package/neural-interface/lib/greeting/budgets.js +90 -0
  60. package/neural-interface/lib/greeting/engine.js +461 -0
  61. package/neural-interface/lib/greeting/facts.js +320 -0
  62. package/neural-interface/lib/greeting/sources.js +252 -0
  63. package/neural-interface/lib/greeting/writer.js +139 -0
  64. package/neural-interface/lib/http-guards.js +189 -13
  65. package/neural-interface/lib/machine-names.js +88 -0
  66. package/neural-interface/lib/memory-api.js +31 -7
  67. package/neural-interface/lib/native-loop-providers.js +10 -5
  68. package/neural-interface/lib/plugin-installer.js +4 -2
  69. package/neural-interface/lib/project-storage.js +5 -7
  70. package/neural-interface/lib/request-gate.js +589 -0
  71. package/neural-interface/lib/ui-blob-api.js +108 -0
  72. package/neural-interface/lib/ui-blob-store.js +68 -0
  73. package/neural-interface/package-lock.json +701 -2
  74. package/neural-interface/package.json +13 -2
  75. package/neural-interface/public/install-app.html +9 -6
  76. package/neural-interface/public/offline.html +3 -2
  77. package/neural-interface/public/onboarding.html +12 -1
  78. package/neural-interface/public/shared/agent-runtime-options.js +22 -6
  79. package/neural-interface/public/shared/assistant/asst-automation.js +286 -0
  80. package/neural-interface/public/shared/assistant/asst-brain-picker.js +312 -62
  81. package/neural-interface/public/shared/assistant/asst-composer.js +11 -1
  82. package/neural-interface/public/shared/assistant/asst-mascot.js +18 -58
  83. package/neural-interface/public/shared/assistant/asst-menu.js +12 -8
  84. package/neural-interface/public/shared/assistant/asst-panel.js +150 -28
  85. package/neural-interface/public/shared/assistant/asst-render.js +162 -19
  86. package/neural-interface/public/shared/assistant/asst-route-models.js +108 -0
  87. package/neural-interface/public/shared/assistant/asst-route.js +23 -329
  88. package/neural-interface/public/shared/assistant/asst-routes-editor.js +495 -0
  89. package/neural-interface/public/shared/assistant/asst-sanitize.js +8 -1
  90. package/neural-interface/public/shared/assistant/asst-sidepanel.js +31 -9
  91. package/neural-interface/public/shared/assistant/asst-state.js +185 -1
  92. package/neural-interface/public/shared/assistant/asst-styles.js +158 -4
  93. package/neural-interface/public/shared/blob-store.js +111 -22
  94. package/neural-interface/public/shared/cdx/cdx-panel.js +32 -11
  95. package/neural-interface/public/shared/cdx/cdx-render.js +25 -89
  96. package/neural-interface/public/shared/cdx/cdx-styles.js +36 -0
  97. package/neural-interface/public/shared/cdx/cdx-tabs.js +87 -4
  98. package/neural-interface/public/shared/constants.js +6 -1
  99. package/neural-interface/public/shared/cp/cp-rehydrate.js +2 -1
  100. package/neural-interface/public/shared/cp/cp-styles.js +15 -0
  101. package/neural-interface/public/shared/editor/editor-ai-logic.js +409 -0
  102. package/neural-interface/public/shared/editor/editor-ai.js +619 -0
  103. package/neural-interface/public/shared/editor/editor-commands.js +212 -0
  104. package/neural-interface/public/shared/editor/editor-compare.js +103 -0
  105. package/neural-interface/public/shared/editor/editor-completion-list.js +172 -0
  106. package/neural-interface/public/shared/editor/editor-doc.js +257 -0
  107. package/neural-interface/public/shared/editor/editor-git-logic.js +131 -0
  108. package/neural-interface/public/shared/editor/editor-git.js +95 -0
  109. package/neural-interface/public/shared/editor/editor-languages.js +156 -0
  110. package/neural-interface/public/shared/editor/editor-lint.js +229 -0
  111. package/neural-interface/public/shared/editor/editor-loader.js +51 -0
  112. package/neural-interface/public/shared/editor/editor-markdown.js +90 -0
  113. package/neural-interface/public/shared/editor/editor-menu.js +233 -0
  114. package/neural-interface/public/shared/editor/editor-minimap.js +371 -0
  115. package/neural-interface/public/shared/editor/editor-palette-logic.js +192 -0
  116. package/neural-interface/public/shared/editor/editor-palette.js +125 -0
  117. package/neural-interface/public/shared/editor/editor-panel-logic.js +288 -0
  118. package/neural-interface/public/shared/editor/editor-panel.js +2099 -0
  119. package/neural-interface/public/shared/editor/editor-prefs.js +224 -0
  120. package/neural-interface/public/shared/editor/editor-safety.js +500 -0
  121. package/neural-interface/public/shared/editor/editor-search.js +352 -0
  122. package/neural-interface/public/shared/editor/editor-statusbar.js +144 -0
  123. package/neural-interface/public/shared/editor/editor-tabs-logic.js +331 -0
  124. package/neural-interface/public/shared/editor/editor-tabs.js +233 -0
  125. package/neural-interface/public/shared/editor/editor-theme.js +244 -0
  126. package/neural-interface/public/shared/editor/editor-view.js +332 -0
  127. package/neural-interface/public/shared/explorer/fx-api.js +216 -0
  128. package/neural-interface/public/shared/explorer/fx-links.js +204 -0
  129. package/neural-interface/public/shared/explorer/fx-logic.js +537 -0
  130. package/neural-interface/public/shared/explorer/fx-main.js +865 -0
  131. package/neural-interface/public/shared/explorer/fx-names.js +87 -0
  132. package/neural-interface/public/shared/explorer/fx-ops.js +370 -0
  133. package/neural-interface/public/shared/explorer/fx-popups.js +490 -0
  134. package/neural-interface/public/shared/explorer/fx-tree.js +790 -0
  135. package/neural-interface/public/shared/file-links.js +339 -0
  136. package/neural-interface/public/shared/greeting/greeting-card.js +178 -0
  137. package/neural-interface/public/shared/greeting/greeting-view.js +148 -0
  138. package/neural-interface/public/shared/html-shell.js +160 -165
  139. package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +4 -0
  140. package/neural-interface/public/shared/ocp-v2/ocp-v2-greeting.js +47 -0
  141. package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +99 -17
  142. package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +7 -1
  143. package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +5 -0
  144. package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +40 -0
  145. package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +3 -2
  146. package/neural-interface/public/shared/pwa-install-page.js +29 -1
  147. package/neural-interface/public/shared/pwa-install.css +3 -3
  148. package/neural-interface/public/shared/pwa-install.js +100 -1
  149. package/neural-interface/public/shared/settings/settings-code-editor-pane.js +412 -0
  150. package/neural-interface/public/shared/settings/settings-code-editor.js +328 -0
  151. package/neural-interface/public/shared/settings/settings-greeting.js +133 -0
  152. package/neural-interface/public/shared/settings/settings-ia.js +18 -4
  153. package/neural-interface/public/shared/settings/settings-user-context.js +154 -0
  154. package/neural-interface/public/shared/start-bridge.js +238 -19
  155. package/neural-interface/public/shared/styles.css +1414 -721
  156. package/neural-interface/public/shared/synabun-mascot.js +20 -56
  157. package/neural-interface/public/shared/tunnel-view.js +167 -0
  158. package/neural-interface/public/shared/ui-claude-panel.js +157 -16
  159. package/neural-interface/public/shared/ui-detail.js +15 -0
  160. package/neural-interface/public/shared/ui-explorer.js +22 -0
  161. package/neural-interface/public/shared/ui-file-explorer.js +481 -2496
  162. package/neural-interface/public/shared/ui-file-links.js +103 -0
  163. package/neural-interface/public/shared/ui-help.js +26 -0
  164. package/neural-interface/public/shared/ui-invite.js +126 -116
  165. package/neural-interface/public/shared/ui-keybinds.js +4 -0
  166. package/neural-interface/public/shared/ui-loading.js +159 -15
  167. package/neural-interface/public/shared/ui-menubar.js +12 -30
  168. package/neural-interface/public/shared/ui-native-loop-router-state.js +11 -0
  169. package/neural-interface/public/shared/ui-native-loop-router.js +15 -2
  170. package/neural-interface/public/shared/ui-navbar.js +45 -21
  171. package/neural-interface/public/shared/ui-settings.js +455 -488
  172. package/neural-interface/public/shared/ui-sidepanel-runtime.js +2 -1
  173. package/neural-interface/public/shared/ui-sync.js +16 -0
  174. package/neural-interface/public/shared/ui-terminal.js +23 -5
  175. package/neural-interface/public/shared/ui-tunnel.js +130 -0
  176. package/neural-interface/public/shared/ui-tutorial-steps.js +6 -2
  177. package/neural-interface/public/shared/ui-whiteboard.js +12 -0
  178. package/neural-interface/public/shared/ui-worker-end.js +245 -0
  179. package/neural-interface/public/shared/ui-workspaces.js +41 -27
  180. package/neural-interface/public/shared/worker-end.js +251 -0
  181. package/neural-interface/public/sw.js +2 -2
  182. package/neural-interface/public/vendor/codemirror/chunks/apl-CSDKT72Z.js +1 -0
  183. package/neural-interface/public/vendor/codemirror/chunks/asciiarmor-JYYPU5BM.js +1 -0
  184. package/neural-interface/public/vendor/codemirror/chunks/asn1-NRWCZDA6.js +1 -0
  185. package/neural-interface/public/vendor/codemirror/chunks/asterisk-5OU6D4ZQ.js +1 -0
  186. package/neural-interface/public/vendor/codemirror/chunks/brainfuck-ID4N4SYC.js +1 -0
  187. package/neural-interface/public/vendor/codemirror/chunks/chunk-4RZWGCS2.js +1 -0
  188. package/neural-interface/public/vendor/codemirror/chunks/chunk-ACTJM3JR.js +11 -0
  189. package/neural-interface/public/vendor/codemirror/chunks/chunk-S6BMAXLK.js +1 -0
  190. package/neural-interface/public/vendor/codemirror/chunks/chunk-TO2RDOHQ.js +3 -0
  191. package/neural-interface/public/vendor/codemirror/chunks/chunk-US2GMZZQ.js +13 -0
  192. package/neural-interface/public/vendor/codemirror/chunks/chunk-WYYO5ZAJ.js +1 -0
  193. package/neural-interface/public/vendor/codemirror/chunks/chunk-XALZTDJC.js +1 -0
  194. package/neural-interface/public/vendor/codemirror/chunks/chunk-YRNUTRDV.js +1 -0
  195. package/neural-interface/public/vendor/codemirror/chunks/chunk-Z3QOKH62.js +1 -0
  196. package/neural-interface/public/vendor/codemirror/chunks/clike-OWQBSOGL.js +1 -0
  197. package/neural-interface/public/vendor/codemirror/chunks/clojure-KV75UQWC.js +1 -0
  198. package/neural-interface/public/vendor/codemirror/chunks/cmake-GTEP5Y3C.js +1 -0
  199. package/neural-interface/public/vendor/codemirror/chunks/cobol-WCZ7QEGJ.js +1 -0
  200. package/neural-interface/public/vendor/codemirror/chunks/coffeescript-TGLBOT6B.js +1 -0
  201. package/neural-interface/public/vendor/codemirror/chunks/commonlisp-WVVI432V.js +1 -0
  202. package/neural-interface/public/vendor/codemirror/chunks/crystal-S6R6HLKQ.js +1 -0
  203. package/neural-interface/public/vendor/codemirror/chunks/css-PDA2RINP.js +1 -0
  204. package/neural-interface/public/vendor/codemirror/chunks/cypher-HL5QPL4C.js +1 -0
  205. package/neural-interface/public/vendor/codemirror/chunks/d-HHJH2HAJ.js +1 -0
  206. package/neural-interface/public/vendor/codemirror/chunks/diff-MN3A35BY.js +1 -0
  207. package/neural-interface/public/vendor/codemirror/chunks/dist-25SQLBVS.js +3 -0
  208. package/neural-interface/public/vendor/codemirror/chunks/dist-27ZGGJJS.js +1 -0
  209. package/neural-interface/public/vendor/codemirror/chunks/dist-4E52OJIF.js +1 -0
  210. package/neural-interface/public/vendor/codemirror/chunks/dist-6FT73XDC.js +2 -0
  211. package/neural-interface/public/vendor/codemirror/chunks/dist-BE6YGRMW.js +1 -0
  212. package/neural-interface/public/vendor/codemirror/chunks/dist-CJSGKW2O.js +1 -0
  213. package/neural-interface/public/vendor/codemirror/chunks/dist-CRPH2WLI.js +1 -0
  214. package/neural-interface/public/vendor/codemirror/chunks/dist-CTG7JEQN.js +1 -0
  215. package/neural-interface/public/vendor/codemirror/chunks/dist-I3FEVELX.js +1 -0
  216. package/neural-interface/public/vendor/codemirror/chunks/dist-IM5BBSWZ.js +1 -0
  217. package/neural-interface/public/vendor/codemirror/chunks/dist-KERUKTIF.js +1 -0
  218. package/neural-interface/public/vendor/codemirror/chunks/dist-LXTMWZAM.js +1 -0
  219. package/neural-interface/public/vendor/codemirror/chunks/dist-MABASSET.js +1 -0
  220. package/neural-interface/public/vendor/codemirror/chunks/dist-MJVBUZLL.js +3 -0
  221. package/neural-interface/public/vendor/codemirror/chunks/dist-MNB3WZVU.js +1 -0
  222. package/neural-interface/public/vendor/codemirror/chunks/dist-QYWXOE3U.js +7 -0
  223. package/neural-interface/public/vendor/codemirror/chunks/dist-TEBOFWLZ.js +1 -0
  224. package/neural-interface/public/vendor/codemirror/chunks/dist-UNXFROM3.js +1 -0
  225. package/neural-interface/public/vendor/codemirror/chunks/dist-XL2SLQO6.js +1 -0
  226. package/neural-interface/public/vendor/codemirror/chunks/dist-XO42Y3AP.js +6 -0
  227. package/neural-interface/public/vendor/codemirror/chunks/dist-Y2WWDWJK.js +1 -0
  228. package/neural-interface/public/vendor/codemirror/chunks/dist-YFEZKWMU.js +1 -0
  229. package/neural-interface/public/vendor/codemirror/chunks/dist-ZY7SWQO6.js +1 -0
  230. package/neural-interface/public/vendor/codemirror/chunks/dockerfile-3Y4R4NCH.js +1 -0
  231. package/neural-interface/public/vendor/codemirror/chunks/dtd-5343GJ4P.js +1 -0
  232. package/neural-interface/public/vendor/codemirror/chunks/dylan-FI2CXSW2.js +1 -0
  233. package/neural-interface/public/vendor/codemirror/chunks/ebnf-GNQ77YWA.js +1 -0
  234. package/neural-interface/public/vendor/codemirror/chunks/ecl-MRPUAE2L.js +1 -0
  235. package/neural-interface/public/vendor/codemirror/chunks/eiffel-DZROES27.js +1 -0
  236. package/neural-interface/public/vendor/codemirror/chunks/elm-4KICRFKQ.js +1 -0
  237. package/neural-interface/public/vendor/codemirror/chunks/erlang-3IHYC263.js +1 -0
  238. package/neural-interface/public/vendor/codemirror/chunks/factor-C6D3E5UK.js +1 -0
  239. package/neural-interface/public/vendor/codemirror/chunks/fcl-VYTWUJMI.js +1 -0
  240. package/neural-interface/public/vendor/codemirror/chunks/forth-ZBO2EH5M.js +1 -0
  241. package/neural-interface/public/vendor/codemirror/chunks/fortran-5NDCRWIK.js +1 -0
  242. package/neural-interface/public/vendor/codemirror/chunks/gas-SKRMOXFP.js +1 -0
  243. package/neural-interface/public/vendor/codemirror/chunks/gherkin-L45YXZLW.js +1 -0
  244. package/neural-interface/public/vendor/codemirror/chunks/groovy-GLPTLN44.js +1 -0
  245. package/neural-interface/public/vendor/codemirror/chunks/haskell-E7NF7P4Y.js +1 -0
  246. package/neural-interface/public/vendor/codemirror/chunks/haxe-K2NVDOB6.js +1 -0
  247. package/neural-interface/public/vendor/codemirror/chunks/http-Q6DRQIJB.js +1 -0
  248. package/neural-interface/public/vendor/codemirror/chunks/idl-MZYNJVLN.js +1 -0
  249. package/neural-interface/public/vendor/codemirror/chunks/javascript-6YRYK2HR.js +1 -0
  250. package/neural-interface/public/vendor/codemirror/chunks/julia-HXEL2T5G.js +1 -0
  251. package/neural-interface/public/vendor/codemirror/chunks/livescript-MV7CI2JZ.js +1 -0
  252. package/neural-interface/public/vendor/codemirror/chunks/lua-E36NHOOD.js +1 -0
  253. package/neural-interface/public/vendor/codemirror/chunks/mathematica-3XOZZCMC.js +1 -0
  254. package/neural-interface/public/vendor/codemirror/chunks/mbox-ODYGFKS7.js +1 -0
  255. package/neural-interface/public/vendor/codemirror/chunks/mirc-WB43AWF5.js +1 -0
  256. package/neural-interface/public/vendor/codemirror/chunks/mllike-ZT6ET7ZH.js +1 -0
  257. package/neural-interface/public/vendor/codemirror/chunks/modelica-LLMZPFGA.js +1 -0
  258. package/neural-interface/public/vendor/codemirror/chunks/mscgen-2OPNNYFH.js +1 -0
  259. package/neural-interface/public/vendor/codemirror/chunks/mumps-6P3HWJH6.js +1 -0
  260. package/neural-interface/public/vendor/codemirror/chunks/nginx-TCGKQTRW.js +1 -0
  261. package/neural-interface/public/vendor/codemirror/chunks/nsis-ATIGIXTJ.js +1 -0
  262. package/neural-interface/public/vendor/codemirror/chunks/ntriples-5PLBI5OV.js +1 -0
  263. package/neural-interface/public/vendor/codemirror/chunks/octave-QF2S3NL6.js +1 -0
  264. package/neural-interface/public/vendor/codemirror/chunks/oz-JFIVFFH2.js +1 -0
  265. package/neural-interface/public/vendor/codemirror/chunks/pascal-JG6SW76V.js +1 -0
  266. package/neural-interface/public/vendor/codemirror/chunks/perl-4B3IWVVO.js +1 -0
  267. package/neural-interface/public/vendor/codemirror/chunks/pig-ABEBH4MI.js +1 -0
  268. package/neural-interface/public/vendor/codemirror/chunks/powershell-H32XE7TL.js +1 -0
  269. package/neural-interface/public/vendor/codemirror/chunks/properties-NN644MMA.js +1 -0
  270. package/neural-interface/public/vendor/codemirror/chunks/protobuf-YKWQK2J3.js +1 -0
  271. package/neural-interface/public/vendor/codemirror/chunks/pug-RIYXEKFW.js +1 -0
  272. package/neural-interface/public/vendor/codemirror/chunks/puppet-JZQ5WPEV.js +1 -0
  273. package/neural-interface/public/vendor/codemirror/chunks/python-EBCGGHAC.js +1 -0
  274. package/neural-interface/public/vendor/codemirror/chunks/q-5UMH2YQY.js +1 -0
  275. package/neural-interface/public/vendor/codemirror/chunks/r-7XMGG453.js +1 -0
  276. package/neural-interface/public/vendor/codemirror/chunks/rpm-IEV7TSLR.js +1 -0
  277. package/neural-interface/public/vendor/codemirror/chunks/ruby-T4SPFPNM.js +1 -0
  278. package/neural-interface/public/vendor/codemirror/chunks/sas-GEDX67ET.js +1 -0
  279. package/neural-interface/public/vendor/codemirror/chunks/scheme-FTLOWKPC.js +1 -0
  280. package/neural-interface/public/vendor/codemirror/chunks/shell-HUFRKFSJ.js +1 -0
  281. package/neural-interface/public/vendor/codemirror/chunks/sieve-P5QUDVYO.js +1 -0
  282. package/neural-interface/public/vendor/codemirror/chunks/smalltalk-2SORJNQI.js +1 -0
  283. package/neural-interface/public/vendor/codemirror/chunks/solr-M22TGAR5.js +1 -0
  284. package/neural-interface/public/vendor/codemirror/chunks/sparql-4M3KL752.js +1 -0
  285. package/neural-interface/public/vendor/codemirror/chunks/spreadsheet-3K23LA4N.js +1 -0
  286. package/neural-interface/public/vendor/codemirror/chunks/sql-VHRFMUBI.js +1 -0
  287. package/neural-interface/public/vendor/codemirror/chunks/stex-QZDAQUY2.js +1 -0
  288. package/neural-interface/public/vendor/codemirror/chunks/stylus-7ZDKAKBD.js +1 -0
  289. package/neural-interface/public/vendor/codemirror/chunks/swift-WCLCLGMR.js +1 -0
  290. package/neural-interface/public/vendor/codemirror/chunks/tcl-JLMU6WOK.js +1 -0
  291. package/neural-interface/public/vendor/codemirror/chunks/textile-4CHDKZ4T.js +1 -0
  292. package/neural-interface/public/vendor/codemirror/chunks/tiddlywiki-DKMCZZQ4.js +1 -0
  293. package/neural-interface/public/vendor/codemirror/chunks/tiki-F4JIG36Q.js +1 -0
  294. package/neural-interface/public/vendor/codemirror/chunks/toml-BHMHTIM2.js +1 -0
  295. package/neural-interface/public/vendor/codemirror/chunks/troff-YQ2KV5NT.js +1 -0
  296. package/neural-interface/public/vendor/codemirror/chunks/ttcn-ZHRCVFJY.js +1 -0
  297. package/neural-interface/public/vendor/codemirror/chunks/ttcn-cfg-KJOVTY4X.js +1 -0
  298. package/neural-interface/public/vendor/codemirror/chunks/turtle-535P5N6I.js +1 -0
  299. package/neural-interface/public/vendor/codemirror/chunks/vb-76UMQHOT.js +1 -0
  300. package/neural-interface/public/vendor/codemirror/chunks/vbscript-CGNDTK6Z.js +1 -0
  301. package/neural-interface/public/vendor/codemirror/chunks/velocity-VSJDO5T5.js +1 -0
  302. package/neural-interface/public/vendor/codemirror/chunks/verilog-4T6ETXIP.js +1 -0
  303. package/neural-interface/public/vendor/codemirror/chunks/vhdl-T7FNAXUN.js +1 -0
  304. package/neural-interface/public/vendor/codemirror/chunks/webidl-P6MJSJ6J.js +1 -0
  305. package/neural-interface/public/vendor/codemirror/chunks/xquery-UOVILRGN.js +1 -0
  306. package/neural-interface/public/vendor/codemirror/chunks/yacas-CV2APROL.js +1 -0
  307. package/neural-interface/public/vendor/codemirror/chunks/z80-3KFNVM4M.js +1 -0
  308. package/neural-interface/public/vendor/codemirror/codemirror-6.43.14-75f05e67.min.js +2 -0
  309. package/neural-interface/public/vendor/codemirror/manifest.json +60 -0
  310. package/neural-interface/scripts/build-vendor.mjs +78 -2
  311. package/neural-interface/scripts/vendor-codemirror-entry.js +121 -0
  312. package/neural-interface/server.js +873 -1028
  313. package/neural-interface/templates/rulesets/README.md +1 -1
  314. package/package.json +2 -8
  315. package/setup.js +44 -7
  316. package/benchmarks/browser-live-results.json +0 -79
  317. package/benchmarks/browser-v2-results.json +0 -258
  318. package/neural-interface/lib/codex-capabilities.d.ts +0 -41
  319. package/neural-interface/public/category-logos/claude.svg +0 -1
  320. package/neural-interface/public/category-logos/gemini-color.svg +0 -1
  321. package/neural-interface/public/category-logos/openai.svg +0 -1
  322. package/neural-interface/public/category-logos/synabun.png +0 -0
  323. package/neural-interface/public/claude.svg +0 -1
  324. package/neural-interface/public/gallery.svg +0 -6
  325. package/neural-interface/public/leonardoai.svg +0 -1
  326. package/neural-interface/public/mcp.svg +0 -4
  327. package/neural-interface/public/opencode-logo-dark-square.svg +0 -1
  328. package/neural-interface/public/pin-svgrepo-com.svg +0 -25
  329. package/neural-interface/public/sessionicon.svg +0 -8
  330. package/neural-interface/public/toolbar-album.svg +0 -8
  331. package/neural-interface/public/toolbar-question.svg +0 -6
  332. package/neural-interface/public/toolbar-sessions.svg +0 -6
  333. package/neural-interface/scripts/codex-protocol-fixture.mjs +0 -83
  334. package/skills/synabun/synabunicon.png +0 -0
@@ -5,5 +5,5 @@ One source, rendered per host by `neural-interface/lib/rulesets/render.js`.
5
5
  - `core.md` is the text every host gets. A line ending in `<!-- except: codex -->` is dropped for the hosts it names; the line `<!-- host -->` is where the host's own file goes.
6
6
  - `claude.md`, `codex.md`, `opencode.md`, `gemini.md`, `cursor.md` hold at most two bullets each.
7
7
  - `coexistence.md` is a snippet people copy by hand. It is never installed.
8
- - `manifest.json` carries the version and one hash per host. A text change without a new version and new hashes fails `tests/rulesets-render.test.mjs`, which prints the hashes to paste.
8
+ - `manifest.json` carries the version and one hash per host. A text change needs a new version and new hashes; the render test (not published with this repository) fails without them and prints the hashes to paste.
9
9
  - `legacy-hashes.json` lists every ruleset SynaBun ever served, so the installer can recognise a copy someone pasted. `node scripts/gen-ruleset-legacy-hashes.mjs` adds to it and never drops an entry.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synabun",
3
- "version": "2.0.0",
3
+ "version": "2.0.5",
4
4
  "description": "Local-first persistent vector memory, MCP tooling, and multi-agent workflows for AI assistants",
5
5
  "license": "Apache-2.0",
6
6
  "author": "The SynaBun Authors",
@@ -77,8 +77,6 @@
77
77
  "docs/judgments.md",
78
78
  "docs/style-guide.md",
79
79
  "docs/whatsapp.md",
80
- "benchmarks/browser-v2-results.json",
81
- "benchmarks/browser-live-results.json",
82
80
  "benchmarks/fixtures/browser/",
83
81
  "benchmarks/fixtures/desktop/",
84
82
  "README.md",
@@ -88,9 +86,6 @@
88
86
  "start": "node --disable-warning=ExperimentalWarning setup.js",
89
87
  "server": "node --disable-warning=ExperimentalWarning neural-interface/server.js",
90
88
  "mcp:build": "npm --prefix mcp-server run build",
91
- "test": "npm run test:mcp && npm run test:neural",
92
- "test:mcp": "npm --prefix mcp-server test",
93
- "test:neural": "npm --prefix neural-interface test",
94
89
  "pack:check": "npm pack --dry-run --json --ignore-scripts",
95
90
  "build:targets": "node packaging/build.mjs targets",
96
91
  "build:mac:arm": "node packaging/build.mjs build --target macos-arm64",
@@ -98,10 +93,9 @@
98
93
  "build:linux:x64": "node packaging/build.mjs build --target linux-x64",
99
94
  "build:windows:x64": "node packaging/build.mjs build --target windows-x64",
100
95
  "build:windows:x86": "node packaging/build.mjs build --target windows-x86",
101
- "test:packaging": "node --test packaging/tests/*.test.mjs",
102
96
  "postinstall": "node postinstall.js",
103
97
  "preuninstall": "node preuninstall.js",
104
- "prepublishOnly": "npm --prefix mcp-server ci --ignore-scripts && npm --prefix neural-interface ci --ignore-scripts && npm run mcp:build && npm test && node -e \"const fs = require('node:fs'); for (const path of ['mcp-server/dist/index.js', 'NOTICE', 'THIRD-PARTY-LICENSES.md']) fs.accessSync(path)\" && npm run pack:check"
98
+ "prepublishOnly": "npm --prefix mcp-server ci --ignore-scripts && npm --prefix neural-interface ci --ignore-scripts && npm run mcp:build && node -e \"const fs = require('node:fs'); for (const path of ['mcp-server/dist/index.js', 'NOTICE', 'THIRD-PARTY-LICENSES.md']) fs.accessSync(path)\" && npm run pack:check"
105
99
  },
106
100
  "keywords": [
107
101
  "ai-agents",
package/setup.js CHANGED
@@ -44,7 +44,9 @@ import {
44
44
  protectFirstLaunchAfterUpdate,
45
45
  recordLauncherFailure,
46
46
  } from './lib/first-launch-protection.js';
47
- import { noteSupervisorFailure, openSupervisorRecord, registerStartLauncher } from './lib/start-launcher.js';
47
+ import {
48
+ RESTART_REPORT_ENV, noteSupervisorFailure, openRestartReport, openSupervisorRecord, registerStartLauncher, resolvePort,
49
+ } from './lib/start-launcher.js';
48
50
  import { packagedRuntime } from './lib/packaged-runtime.js';
49
51
 
50
52
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -83,7 +85,18 @@ process.env.MEMORY_DATA_DIR = resolve(DATA_HOME, 'mcp-data');
83
85
  // has no server to ask, and shows these phases instead of a guess. Each phase
84
86
  // is noted when it begins. Opened in main(), once the data home is settled.
85
87
  let supervisor = null;
86
- const startPhase = (name, detail) => { try { supervisor?.phase(name, detail); } catch {} };
88
+ // A restart reports the same phases on the start beacon while the server is
89
+ // away (lib/start-launcher.js openRestartReport): the page that asked for it
90
+ // is waiting, with no server to ask. Open only while a restart lasts.
91
+ let restartReport = null;
92
+ // Set by a server that had no supervisor, on the one it starts to take its
93
+ // place after a restart. This process only: nothing it starts inherits it.
94
+ const STARTED_FOR_RESTART = !!process.env[RESTART_REPORT_ENV];
95
+ delete process.env[RESTART_REPORT_ENV];
96
+ const startPhase = (name, detail) => {
97
+ try { supervisor?.phase(name, detail); } catch {}
98
+ try { restartReport?.phase(); } catch {}
99
+ };
87
100
  const startFailed = (code, message, extra = {}) => { try { supervisor?.fail({ code, message, ...extra }); } catch {} };
88
101
 
89
102
  // ── Migration: move legacy in-repository state to the platform data home ──
@@ -470,10 +483,20 @@ function startServer() {
470
483
  let firstLaunch = true;
471
484
  let currentChild = null;
472
485
  let shuttingDown = false;
486
+ // The port the server last said it listens on: where a restart's report is read.
487
+ let listenPort = null;
473
488
  const restartLog = [];
474
489
  const CRASH_WINDOW_MS = 60_000;
475
490
  const CRASH_LIMIT = 5;
476
491
 
492
+ // A restart that ends without a server keeps saying why until the page that
493
+ // waits for it has read it (a moment; 20 s at the most when nobody reads).
494
+ const exitAfterReport = (code, error) => {
495
+ const report = restartReport;
496
+ if (!report?.open) { process.exit(code); return; }
497
+ report.failed(error).finally(() => process.exit(code));
498
+ };
499
+
477
500
  function spawnOnce() {
478
501
  const child = spawn(process.execPath, ['--disable-warning=ExperimentalWarning', '--max-old-space-size=6144', serverPath], {
479
502
  cwd: niDir,
@@ -491,7 +514,7 @@ function startServer() {
491
514
  child.on('error', (error) => {
492
515
  fail(`Could not start the server: ${error.message}`);
493
516
  startFailed('SERVER_SPAWN_FAILED', `the server could not be started: ${error.message}`);
494
- process.exit(1);
517
+ exitAfterReport(1, { code: 'SERVER_SPAWN_FAILED', message: `the server could not be started: ${error.message}` });
495
518
  });
496
519
 
497
520
  let opened = !firstLaunch;
@@ -503,7 +526,9 @@ function startServer() {
503
526
  // The server prints its address from its listen callback: it is up.
504
527
  if (!announced && s.includes('Server:')) {
505
528
  announced = true;
506
- startPhase('listening', { port: Number(s.match(/Server:\s+http:\/\/localhost:(\d+)/)?.[1]) || undefined });
529
+ const port = Number(s.match(/Server:\s+http:\/\/localhost:(\d+)/)?.[1]) || undefined;
530
+ if (port) listenPort = port;
531
+ startPhase('listening', { port });
507
532
  }
508
533
  if (!opened && s.includes('Server:')) {
509
534
  opened = true;
@@ -538,10 +563,16 @@ function startServer() {
538
563
  const now = Date.now();
539
564
  restartLog.push(now);
540
565
  while (restartLog.length && now - restartLog[0] > CRASH_WINDOW_MS) restartLog.shift();
566
+ // The page that asked for this has no server to ask now: from here
567
+ // until the new one is listening, this supervisor says what happens.
568
+ try { restartReport?.close(); } catch {}
569
+ restartReport = openRestartReport({ port: listenPort || resolvePort({ dataHome: DATA_HOME }), dataHome: DATA_HOME, exited: true });
541
570
  if (restartLog.length > CRASH_LIMIT) {
571
+ const message = `the server restarted ${restartLog.length} times in ${Math.round(CRASH_WINDOW_MS / 1000)} s`;
542
572
  fail(`Server restarted ${restartLog.length} times in ${Math.round(CRASH_WINDOW_MS / 1000)}s — aborting supervisor.`);
543
- startFailed('RESTART_LOOP', `the server restarted ${restartLog.length} times in ${Math.round(CRASH_WINDOW_MS / 1000)} s`);
544
- process.exit(1);
573
+ startFailed('RESTART_LOOP', message);
574
+ exitAfterReport(1, { code: 'RESTART_LOOP', message });
575
+ return;
545
576
  }
546
577
  firstLaunch = false;
547
578
  setTimeout(spawnOnce, 250);
@@ -551,7 +582,8 @@ function startServer() {
551
582
  if (code !== 0 && code !== null) {
552
583
  fail(`Server exited with code ${code}`);
553
584
  startFailed('SERVER_EXITED', `the server exited with code ${code}`, { exitCode: code });
554
- process.exit(code);
585
+ exitAfterReport(code, { code: 'SERVER_EXITED', message: `the server exited with code ${code}`, exitCode: code });
586
+ return;
555
587
  }
556
588
  process.exit(0);
557
589
  });
@@ -798,6 +830,11 @@ async function main() {
798
830
  // and passes what it says on to the page that is waiting.
799
831
  supervisor = openSupervisorRecord(DATA_HOME);
800
832
  process.on('exit', supervisor.release);
833
+ // Taking the place of a server that restarted without a supervisor: the
834
+ // pages that asked are waiting, so this start says what it is doing.
835
+ if (STARTED_FOR_RESTART) {
836
+ restartReport = openRestartReport({ port: resolvePort({ dataHome: DATA_HOME }), dataHome: DATA_HOME });
837
+ }
801
838
 
802
839
  // Prerequisites
803
840
  checkNodeVersion();
@@ -1,79 +0,0 @@
1
- {
2
- "generatedAt": "2026-09-08T03:59:21.092Z",
3
- "transport": "configured SynaBun browser HTTP engine",
4
- "scope": "Updated snapshot/content/extraction algorithms over SynaBun engine adapter; read-only live pages. New route wiring covered separately by local Express tests.",
5
- "results": [
6
- {
7
- "group": "general",
8
- "url": "https://example.com/",
9
- "status": "passed",
10
- "finalUrl": "https://example.com/",
11
- "title": "Example Domain",
12
- "snapshotChars": 298,
13
- "captures": 1,
14
- "scopedHtmlChars": 220,
15
- "extractedLinks": 1,
16
- "durationMs": 8361
17
- },
18
- {
19
- "group": "general",
20
- "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
21
- "status": "passed",
22
- "finalUrl": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
23
- "title": "Array - JavaScript | MDN",
24
- "snapshotChars": 5965,
25
- "captures": 2,
26
- "scopedHtmlChars": 91581,
27
- "extractedLinks": 10,
28
- "durationMs": 8384
29
- },
30
- {
31
- "group": "general",
32
- "url": "https://en.wikipedia.org/wiki/Web_browser",
33
- "status": "passed",
34
- "finalUrl": "https://en.wikipedia.org/wiki/Web_browser",
35
- "title": "Web browser - Wikipedia",
36
- "snapshotChars": 5982,
37
- "captures": 2,
38
- "scopedHtmlChars": 403828,
39
- "extractedLinks": 10,
40
- "durationMs": 3207
41
- },
42
- {
43
- "group": "social",
44
- "url": "https://bsky.app/",
45
- "status": "passed",
46
- "finalUrl": "https://bsky.app/",
47
- "title": "Discover — Bluesky",
48
- "snapshotChars": 1823,
49
- "captures": 1,
50
- "scopedHtmlChars": 87619,
51
- "extractedLinks": 10,
52
- "durationMs": 2596
53
- },
54
- {
55
- "group": "social",
56
- "url": "https://www.youtube.com/",
57
- "status": "passed",
58
- "finalUrl": "https://www.youtube.com/",
59
- "title": "YouTube",
60
- "snapshotChars": 5999,
61
- "captures": 2,
62
- "scopedHtmlChars": 576986,
63
- "extractedLinks": 10,
64
- "durationMs": 4583
65
- },
66
- {
67
- "group": "social",
68
- "url": "https://x.com/explore",
69
- "status": "passed",
70
- "finalUrl": "https://x.com/explore",
71
- "title": "Explorar / X",
72
- "snapshotChars": 318,
73
- "captures": 1,
74
- "scopedHtmlChars": 4936,
75
- "extractedLinks": 1,
76
- "durationMs": 1802
77
- }
78
- ]
79
- }
@@ -1,258 +0,0 @@
1
- {
2
- "generatedAt": "2026-09-08T03:42:40.330Z",
3
- "runsPerVariant": 20,
4
- "coldLaunchMs": 139.725417,
5
- "benchmarkType": "local browser components; not full MCP/provider end-to-end",
6
- "comparison": "Same required task data. Legacy performance path versus V2; article adds explicit selector, extraction adds explicit field projection. Both snapshot paths include correctness fixes.",
7
- "limitations": [
8
- "Intentional social write spacing excluded; no real publishing.",
9
- "HTTP counts derived from component algorithm, not measured network requests.",
10
- "Text token counts are character estimates, not provider usage.",
11
- "Fixture results alone do not authorize default rollout or establish real-site accuracy."
12
- ],
13
- "processingReduction": 0.7819843114275185,
14
- "estimatedTokenReduction": 0.23104780299372285,
15
- "satisfiesOriginalOutputTokenTarget": false,
16
- "results": [
17
- {
18
- "name": "article",
19
- "group": "general",
20
- "cold": {
21
- "legacy": {
22
- "durationMs": 29.35145799999998,
23
- "bytes": 102,
24
- "estimatedTokens": 26,
25
- "captures": 0,
26
- "componentHttpCalls": 1,
27
- "success": true
28
- },
29
- "improved": {
30
- "durationMs": 4.151542000000006,
31
- "bytes": 102,
32
- "estimatedTokens": 26,
33
- "captures": 0,
34
- "componentHttpCalls": 1,
35
- "success": true
36
- }
37
- },
38
- "legacy": {
39
- "medianMs": 1.4932909999999993,
40
- "p95Ms": 3.069416999999987,
41
- "medianEstimatedTokens": 26,
42
- "medianBytes": 102,
43
- "medianCaptures": 0,
44
- "medianComponentHttpCalls": 1,
45
- "successful": 20
46
- },
47
- "improved": {
48
- "medianMs": 1.8262080000000083,
49
- "p95Ms": 2.4752920000000245,
50
- "medianEstimatedTokens": 26,
51
- "medianBytes": 102,
52
- "medianCaptures": 0,
53
- "medianComponentHttpCalls": 1,
54
- "successful": 20
55
- }
56
- },
57
- {
58
- "name": "search",
59
- "group": "general",
60
- "cold": {
61
- "legacy": {
62
- "durationMs": 52.18983400000002,
63
- "bytes": 5927,
64
- "estimatedTokens": 1482,
65
- "captures": 4,
66
- "componentHttpCalls": 1,
67
- "success": true
68
- },
69
- "improved": {
70
- "durationMs": 21.844041999999945,
71
- "bytes": 5968,
72
- "estimatedTokens": 1492,
73
- "captures": 2,
74
- "componentHttpCalls": 1,
75
- "success": true
76
- }
77
- },
78
- "legacy": {
79
- "medianMs": 41.34229200000004,
80
- "p95Ms": 48.7930409999999,
81
- "medianEstimatedTokens": 1491,
82
- "medianBytes": 5962,
83
- "medianCaptures": 4,
84
- "medianComponentHttpCalls": 1,
85
- "successful": 20
86
- },
87
- "improved": {
88
- "medianMs": 21.11720800000012,
89
- "p95Ms": 27.33666600000015,
90
- "medianEstimatedTokens": 1491,
91
- "medianBytes": 5962,
92
- "medianCaptures": 2,
93
- "medianComponentHttpCalls": 1,
94
- "successful": 20
95
- }
96
- },
97
- {
98
- "name": "dynamic-form",
99
- "group": "general",
100
- "cold": {
101
- "legacy": {
102
- "durationMs": 128.6755830000002,
103
- "bytes": 200,
104
- "estimatedTokens": 50,
105
- "captures": 1,
106
- "componentHttpCalls": 1,
107
- "success": true
108
- },
109
- "improved": {
110
- "durationMs": 101.52687500000002,
111
- "bytes": 200,
112
- "estimatedTokens": 50,
113
- "captures": 1,
114
- "componentHttpCalls": 1,
115
- "success": true
116
- }
117
- },
118
- "legacy": {
119
- "medianMs": 99.1424590000006,
120
- "p95Ms": 99.58995899999991,
121
- "medianEstimatedTokens": 50,
122
- "medianBytes": 200,
123
- "medianCaptures": 1,
124
- "medianComponentHttpCalls": 1,
125
- "successful": 20
126
- },
127
- "improved": {
128
- "medianMs": 99.46520800000008,
129
- "p95Ms": 115.59787500000039,
130
- "medianEstimatedTokens": 50,
131
- "medianBytes": 200,
132
- "medianCaptures": 1,
133
- "medianComponentHttpCalls": 1,
134
- "successful": 20
135
- }
136
- },
137
- {
138
- "name": "feed",
139
- "group": "social",
140
- "cold": {
141
- "legacy": {
142
- "durationMs": 74.53483299999971,
143
- "bytes": 5982,
144
- "estimatedTokens": 1496,
145
- "captures": 4,
146
- "componentHttpCalls": 1,
147
- "success": true
148
- },
149
- "improved": {
150
- "durationMs": 34.15445799999998,
151
- "bytes": 5982,
152
- "estimatedTokens": 1496,
153
- "captures": 2,
154
- "componentHttpCalls": 1,
155
- "success": true
156
- }
157
- },
158
- "legacy": {
159
- "medianMs": 48.56779099999949,
160
- "p95Ms": 69.0288330000003,
161
- "medianEstimatedTokens": 1496,
162
- "medianBytes": 5982,
163
- "medianCaptures": 4,
164
- "medianComponentHttpCalls": 1,
165
- "successful": 20
166
- },
167
- "improved": {
168
- "medianMs": 25.403291999999965,
169
- "p95Ms": 42.17279100000087,
170
- "medianEstimatedTokens": 1496,
171
- "medianBytes": 5982,
172
- "medianCaptures": 2,
173
- "medianComponentHttpCalls": 1,
174
- "successful": 20
175
- }
176
- },
177
- {
178
- "name": "composer",
179
- "group": "social",
180
- "cold": {
181
- "legacy": {
182
- "durationMs": 110.75312499999927,
183
- "bytes": 206,
184
- "estimatedTokens": 52,
185
- "captures": 1,
186
- "componentHttpCalls": 1,
187
- "success": true
188
- },
189
- "improved": {
190
- "durationMs": 96.46404099999927,
191
- "bytes": 206,
192
- "estimatedTokens": 52,
193
- "captures": 1,
194
- "componentHttpCalls": 1,
195
- "success": true
196
- }
197
- },
198
- "legacy": {
199
- "medianMs": 99.20062499999949,
200
- "p95Ms": 100.52170800000022,
201
- "medianEstimatedTokens": 52,
202
- "medianBytes": 206,
203
- "medianCaptures": 1,
204
- "medianComponentHttpCalls": 1,
205
- "successful": 20
206
- },
207
- "improved": {
208
- "medianMs": 99.04683299999851,
209
- "p95Ms": 100.07870899999944,
210
- "medianEstimatedTokens": 52,
211
- "medianBytes": 206,
212
- "medianCaptures": 1,
213
- "medianComponentHttpCalls": 1,
214
- "successful": 20
215
- }
216
- },
217
- {
218
- "name": "virtualized-feed",
219
- "group": "social",
220
- "cold": {
221
- "legacy": {
222
- "durationMs": 1812.5526250000003,
223
- "bytes": 4105,
224
- "estimatedTokens": 1027,
225
- "captures": 0,
226
- "componentHttpCalls": 5,
227
- "success": true
228
- },
229
- "improved": {
230
- "durationMs": 210.59279200000128,
231
- "bytes": 277,
232
- "estimatedTokens": 70,
233
- "captures": 0,
234
- "componentHttpCalls": 1,
235
- "success": true
236
- }
237
- },
238
- "legacy": {
239
- "medianMs": 1805.112334000005,
240
- "p95Ms": 1811.6639170000053,
241
- "medianEstimatedTokens": 1027,
242
- "medianBytes": 4105,
243
- "medianCaptures": 0,
244
- "medianComponentHttpCalls": 5,
245
- "successful": 20
246
- },
247
- "improved": {
248
- "medianMs": 209.8533329999991,
249
- "p95Ms": 213.98037499999919,
250
- "medianEstimatedTokens": 70,
251
- "medianBytes": 277,
252
- "medianCaptures": 0,
253
- "medianComponentHttpCalls": 1,
254
- "successful": 20
255
- }
256
- }
257
- ]
258
- }
@@ -1,41 +0,0 @@
1
- export interface CodexRuntime {
2
- cliVersion?: string | null;
3
- sdkVersion?: string | null;
4
- codexBin?: string;
5
- codexBinSource?: string;
6
- accountId?: string;
7
- codexHome?: string;
8
- protocolBaseline: string;
9
- experimentalApi: boolean;
10
- serverInfo?: Record<string, unknown>;
11
- }
12
- export interface CodexCapability {
13
- method: string;
14
- supported: boolean;
15
- experimental: boolean;
16
- reason: string | null;
17
- }
18
- export interface CodexCapabilityPacket {
19
- type: 'capabilities';
20
- requestId?: string | null;
21
- capabilities: Record<string, CodexCapability>;
22
- runtime: CodexRuntime;
23
- sessionId?: string;
24
- connectionEpoch?: string;
25
- }
26
- export const CODEX_PROTOCOL_BASELINE: '0.160.0';
27
- export const CODEX_CAPABILITY_METHODS: Readonly<Record<string, { method: string; experimental: boolean; unavailable?: string }>>;
28
- export function parseCodexVersion(value: unknown): string | null;
29
- export function isCodexUnsupportedMethod(error: unknown): boolean;
30
- export function classifyCodexRpcError(error: unknown, methodName?: string): { code: string | number | null; category: 'unsupported' | 'invalid_request' | 'authentication' | 'restricted' | 'transient' | 'runtime'; message: string };
31
- export function validateCodexConfigRequirements<T extends Record<string, unknown>>(config: T, requirements: unknown): T;
32
- export class CodexCapabilityRegistry {
33
- constructor(runtime?: Partial<CodexRuntime>);
34
- runtime: CodexRuntime;
35
- requirements: Record<string, unknown> | null;
36
- reset(runtime?: Partial<CodexRuntime>): void;
37
- updateRequirements(result: unknown): void;
38
- observe(method: string, error?: unknown): boolean;
39
- snapshot(): Record<string, CodexCapability>;
40
- assertAvailable(name: string): void;
41
- }
@@ -1 +0,0 @@
1
- <svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"></path></svg>
@@ -1 +0,0 @@
1
- <svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"></path></svg>
@@ -1 +0,0 @@
1
- <svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>OpenAI</title><path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path></svg>
@@ -1 +0,0 @@
1
- <svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"></path></svg>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
- <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <path d="M13 7L15 9L20 4" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4
- <path d="M2 12.5001L3.75159 10.9675C4.66286 10.1702 6.03628 10.2159 6.89249 11.0721L11.1822 15.3618C11.8694 16.0491 12.9512 16.1428 13.7464 15.5839L14.0446 15.3744C15.1888 14.5702 16.7369 14.6634 17.7765 15.599L21 18.5001" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
5
- <path d="M22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 10.8717 2 9.87835 2.02008 9M12 2C7.28595 2 4.92893 2 3.46447 3.46447C3.03965 3.88929 2.73806 4.38921 2.52396 5" stroke="#1C274C" stroke-width="1.5" stroke-linecap="round"/>
6
- </svg>