synabun 2.0.7 → 2.0.10

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 (565) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +1 -1
  3. package/THIRD-PARTY-LICENSES.md +46 -4
  4. package/hooks/claude-code/post-plan.mjs +6 -30
  5. package/hooks/claude-code/session-start.mjs +1 -4
  6. package/hooks/claude-code/shared.mjs +106 -72
  7. package/launcher.mjs +9 -3
  8. package/lib/package-processes.js +670 -0
  9. package/lib/runtime-dependencies.js +225 -0
  10. package/lib/start-launcher.js +6 -1
  11. package/mcp-server/dist/services/browser-bench.d.ts +1 -1
  12. package/mcp-server/dist/services/browser-bench.d.ts.map +1 -1
  13. package/mcp-server/dist/services/browser-bench.js +1 -1
  14. package/mcp-server/dist/services/browser-bench.js.map +1 -1
  15. package/mcp-server/dist/services/categories.d.ts +35 -2
  16. package/mcp-server/dist/services/categories.d.ts.map +1 -1
  17. package/mcp-server/dist/services/categories.js +77 -33
  18. package/mcp-server/dist/services/categories.js.map +1 -1
  19. package/mcp-server/dist/services/desktop-bench.d.ts +7 -7
  20. package/mcp-server/dist/services/desktop-bench.d.ts.map +1 -1
  21. package/mcp-server/dist/services/desktop-bench.js +1 -1
  22. package/mcp-server/dist/services/desktop-bench.js.map +1 -1
  23. package/mcp-server/dist/tools/agents.d.ts +1 -1
  24. package/mcp-server/dist/tools/agents.d.ts.map +1 -1
  25. package/mcp-server/dist/tools/agents.js +1 -1
  26. package/mcp-server/dist/tools/agents.js.map +1 -1
  27. package/mcp-server/dist/tools/bluesky.js +1 -1
  28. package/mcp-server/dist/tools/bluesky.js.map +1 -1
  29. package/mcp-server/dist/tools/browser-advanced.d.ts +1 -1
  30. package/mcp-server/dist/tools/browser-advanced.d.ts.map +1 -1
  31. package/mcp-server/dist/tools/browser-advanced.js +1 -1
  32. package/mcp-server/dist/tools/browser-advanced.js.map +1 -1
  33. package/mcp-server/dist/tools/browser-batch.d.ts +1 -1
  34. package/mcp-server/dist/tools/browser-batch.d.ts.map +1 -1
  35. package/mcp-server/dist/tools/browser-batch.js +1 -1
  36. package/mcp-server/dist/tools/browser-batch.js.map +1 -1
  37. package/mcp-server/dist/tools/browser-cheatsheet.d.ts +1 -1
  38. package/mcp-server/dist/tools/browser-cheatsheet.d.ts.map +1 -1
  39. package/mcp-server/dist/tools/browser-cheatsheet.js +1 -1
  40. package/mcp-server/dist/tools/browser-cheatsheet.js.map +1 -1
  41. package/mcp-server/dist/tools/browser-interact.d.ts +1 -1
  42. package/mcp-server/dist/tools/browser-interact.d.ts.map +1 -1
  43. package/mcp-server/dist/tools/browser-interact.js +1 -1
  44. package/mcp-server/dist/tools/browser-interact.js.map +1 -1
  45. package/mcp-server/dist/tools/browser-navigate.d.ts +1 -1
  46. package/mcp-server/dist/tools/browser-navigate.d.ts.map +1 -1
  47. package/mcp-server/dist/tools/browser-navigate.js +1 -1
  48. package/mcp-server/dist/tools/browser-navigate.js.map +1 -1
  49. package/mcp-server/dist/tools/browser-observe.d.ts +1 -1
  50. package/mcp-server/dist/tools/browser-observe.d.ts.map +1 -1
  51. package/mcp-server/dist/tools/browser-observe.js +1 -1
  52. package/mcp-server/dist/tools/browser-observe.js.map +1 -1
  53. package/mcp-server/dist/tools/card-tools.d.ts +1 -1
  54. package/mcp-server/dist/tools/card-tools.d.ts.map +1 -1
  55. package/mcp-server/dist/tools/card-tools.js +1 -1
  56. package/mcp-server/dist/tools/card-tools.js.map +1 -1
  57. package/mcp-server/dist/tools/category.d.ts +1 -1
  58. package/mcp-server/dist/tools/category.d.ts.map +1 -1
  59. package/mcp-server/dist/tools/category.js +5 -1
  60. package/mcp-server/dist/tools/category.js.map +1 -1
  61. package/mcp-server/dist/tools/choice.d.ts +1 -1
  62. package/mcp-server/dist/tools/choice.d.ts.map +1 -1
  63. package/mcp-server/dist/tools/choice.js +1 -1
  64. package/mcp-server/dist/tools/choice.js.map +1 -1
  65. package/mcp-server/dist/tools/computer.d.ts +1 -1
  66. package/mcp-server/dist/tools/computer.d.ts.map +1 -1
  67. package/mcp-server/dist/tools/computer.js +1 -1
  68. package/mcp-server/dist/tools/computer.js.map +1 -1
  69. package/mcp-server/dist/tools/discord-channel.d.ts +1 -1
  70. package/mcp-server/dist/tools/discord-channel.d.ts.map +1 -1
  71. package/mcp-server/dist/tools/discord-channel.js +1 -1
  72. package/mcp-server/dist/tools/discord-channel.js.map +1 -1
  73. package/mcp-server/dist/tools/discord-guild.d.ts +1 -1
  74. package/mcp-server/dist/tools/discord-guild.d.ts.map +1 -1
  75. package/mcp-server/dist/tools/discord-guild.js +1 -1
  76. package/mcp-server/dist/tools/discord-guild.js.map +1 -1
  77. package/mcp-server/dist/tools/discord-member.d.ts +1 -1
  78. package/mcp-server/dist/tools/discord-member.d.ts.map +1 -1
  79. package/mcp-server/dist/tools/discord-member.js +1 -1
  80. package/mcp-server/dist/tools/discord-member.js.map +1 -1
  81. package/mcp-server/dist/tools/discord-message.d.ts +1 -1
  82. package/mcp-server/dist/tools/discord-message.d.ts.map +1 -1
  83. package/mcp-server/dist/tools/discord-message.js +1 -1
  84. package/mcp-server/dist/tools/discord-message.js.map +1 -1
  85. package/mcp-server/dist/tools/discord-onboarding.d.ts +1 -1
  86. package/mcp-server/dist/tools/discord-onboarding.d.ts.map +1 -1
  87. package/mcp-server/dist/tools/discord-onboarding.js +1 -1
  88. package/mcp-server/dist/tools/discord-onboarding.js.map +1 -1
  89. package/mcp-server/dist/tools/discord-role.d.ts +1 -1
  90. package/mcp-server/dist/tools/discord-role.d.ts.map +1 -1
  91. package/mcp-server/dist/tools/discord-role.js +1 -1
  92. package/mcp-server/dist/tools/discord-role.js.map +1 -1
  93. package/mcp-server/dist/tools/discord-thread.d.ts +1 -1
  94. package/mcp-server/dist/tools/discord-thread.d.ts.map +1 -1
  95. package/mcp-server/dist/tools/discord-thread.js +1 -1
  96. package/mcp-server/dist/tools/discord-thread.js.map +1 -1
  97. package/mcp-server/dist/tools/discord-webhook.d.ts +1 -1
  98. package/mcp-server/dist/tools/discord-webhook.d.ts.map +1 -1
  99. package/mcp-server/dist/tools/discord-webhook.js +1 -1
  100. package/mcp-server/dist/tools/discord-webhook.js.map +1 -1
  101. package/mcp-server/dist/tools/fb-groups.d.ts +1 -1
  102. package/mcp-server/dist/tools/fb-groups.d.ts.map +1 -1
  103. package/mcp-server/dist/tools/fb-groups.js +1 -1
  104. package/mcp-server/dist/tools/fb-groups.js.map +1 -1
  105. package/mcp-server/dist/tools/forget.d.ts +1 -1
  106. package/mcp-server/dist/tools/forget.d.ts.map +1 -1
  107. package/mcp-server/dist/tools/forget.js +1 -1
  108. package/mcp-server/dist/tools/forget.js.map +1 -1
  109. package/mcp-server/dist/tools/git-tools.d.ts +1 -1
  110. package/mcp-server/dist/tools/git-tools.d.ts.map +1 -1
  111. package/mcp-server/dist/tools/git-tools.js +1 -1
  112. package/mcp-server/dist/tools/git-tools.js.map +1 -1
  113. package/mcp-server/dist/tools/gsc/experience.d.ts +1 -1
  114. package/mcp-server/dist/tools/gsc/experience.d.ts.map +1 -1
  115. package/mcp-server/dist/tools/gsc/experience.js +1 -1
  116. package/mcp-server/dist/tools/gsc/experience.js.map +1 -1
  117. package/mcp-server/dist/tools/gsc/indexing.d.ts +1 -1
  118. package/mcp-server/dist/tools/gsc/indexing.d.ts.map +1 -1
  119. package/mcp-server/dist/tools/gsc/indexing.js +1 -1
  120. package/mcp-server/dist/tools/gsc/indexing.js.map +1 -1
  121. package/mcp-server/dist/tools/gsc/inspect.d.ts +1 -1
  122. package/mcp-server/dist/tools/gsc/inspect.d.ts.map +1 -1
  123. package/mcp-server/dist/tools/gsc/inspect.js +1 -1
  124. package/mcp-server/dist/tools/gsc/inspect.js.map +1 -1
  125. package/mcp-server/dist/tools/gsc/navigate.d.ts +1 -1
  126. package/mcp-server/dist/tools/gsc/navigate.d.ts.map +1 -1
  127. package/mcp-server/dist/tools/gsc/navigate.js +1 -1
  128. package/mcp-server/dist/tools/gsc/navigate.js.map +1 -1
  129. package/mcp-server/dist/tools/gsc/performance.d.ts +1 -1
  130. package/mcp-server/dist/tools/gsc/performance.d.ts.map +1 -1
  131. package/mcp-server/dist/tools/gsc/performance.js +1 -1
  132. package/mcp-server/dist/tools/gsc/performance.js.map +1 -1
  133. package/mcp-server/dist/tools/gsc/settings.d.ts +1 -1
  134. package/mcp-server/dist/tools/gsc/settings.d.ts.map +1 -1
  135. package/mcp-server/dist/tools/gsc/settings.js +1 -1
  136. package/mcp-server/dist/tools/gsc/settings.js.map +1 -1
  137. package/mcp-server/dist/tools/image-tools.d.ts +1 -1
  138. package/mcp-server/dist/tools/image-tools.d.ts.map +1 -1
  139. package/mcp-server/dist/tools/image-tools.js +1 -1
  140. package/mcp-server/dist/tools/image-tools.js.map +1 -1
  141. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +1 -1
  142. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +1 -1
  143. package/mcp-server/dist/tools/leonardo-browser-tools.js +1 -1
  144. package/mcp-server/dist/tools/leonardo-browser-tools.js.map +1 -1
  145. package/mcp-server/dist/tools/loop.d.ts +1 -1
  146. package/mcp-server/dist/tools/loop.d.ts.map +1 -1
  147. package/mcp-server/dist/tools/loop.js +1 -1
  148. package/mcp-server/dist/tools/loop.js.map +1 -1
  149. package/mcp-server/dist/tools/memories.d.ts +1 -1
  150. package/mcp-server/dist/tools/memories.d.ts.map +1 -1
  151. package/mcp-server/dist/tools/memories.js +1 -1
  152. package/mcp-server/dist/tools/memories.js.map +1 -1
  153. package/mcp-server/dist/tools/morelogin.d.ts +1 -1
  154. package/mcp-server/dist/tools/morelogin.d.ts.map +1 -1
  155. package/mcp-server/dist/tools/morelogin.js +1 -1
  156. package/mcp-server/dist/tools/morelogin.js.map +1 -1
  157. package/mcp-server/dist/tools/profile.d.ts +1 -1
  158. package/mcp-server/dist/tools/profile.d.ts.map +1 -1
  159. package/mcp-server/dist/tools/profile.js +1 -1
  160. package/mcp-server/dist/tools/profile.js.map +1 -1
  161. package/mcp-server/dist/tools/recall.d.ts +1 -1
  162. package/mcp-server/dist/tools/recall.d.ts.map +1 -1
  163. package/mcp-server/dist/tools/recall.js +1 -1
  164. package/mcp-server/dist/tools/recall.js.map +1 -1
  165. package/mcp-server/dist/tools/reflect.d.ts +1 -1
  166. package/mcp-server/dist/tools/reflect.d.ts.map +1 -1
  167. package/mcp-server/dist/tools/reflect.js +1 -1
  168. package/mcp-server/dist/tools/reflect.js.map +1 -1
  169. package/mcp-server/dist/tools/remember.d.ts +1 -1
  170. package/mcp-server/dist/tools/remember.d.ts.map +1 -1
  171. package/mcp-server/dist/tools/remember.js +13 -11
  172. package/mcp-server/dist/tools/remember.js.map +1 -1
  173. package/mcp-server/dist/tools/restore.d.ts +1 -1
  174. package/mcp-server/dist/tools/restore.d.ts.map +1 -1
  175. package/mcp-server/dist/tools/restore.js +1 -1
  176. package/mcp-server/dist/tools/restore.js.map +1 -1
  177. package/mcp-server/dist/tools/style-guide-tools.d.ts +1 -1
  178. package/mcp-server/dist/tools/style-guide-tools.d.ts.map +1 -1
  179. package/mcp-server/dist/tools/style-guide-tools.js +1 -1
  180. package/mcp-server/dist/tools/style-guide-tools.js.map +1 -1
  181. package/mcp-server/dist/tools/sync.d.ts +1 -1
  182. package/mcp-server/dist/tools/sync.d.ts.map +1 -1
  183. package/mcp-server/dist/tools/sync.js +1 -1
  184. package/mcp-server/dist/tools/sync.js.map +1 -1
  185. package/mcp-server/dist/tools/tictactoe-tools.d.ts +1 -1
  186. package/mcp-server/dist/tools/tictactoe-tools.d.ts.map +1 -1
  187. package/mcp-server/dist/tools/tictactoe-tools.js +1 -1
  188. package/mcp-server/dist/tools/tictactoe-tools.js.map +1 -1
  189. package/mcp-server/dist/tools/utils.d.ts +1 -1
  190. package/mcp-server/dist/tools/utils.d.ts.map +1 -1
  191. package/mcp-server/dist/tools/utils.js +1 -1
  192. package/mcp-server/dist/tools/utils.js.map +1 -1
  193. package/mcp-server/dist/tools/whatsapp-send-file.d.ts +1 -1
  194. package/mcp-server/dist/tools/whatsapp-send-file.d.ts.map +1 -1
  195. package/mcp-server/dist/tools/whatsapp-send-file.js +1 -1
  196. package/mcp-server/dist/tools/whatsapp-send-file.js.map +1 -1
  197. package/mcp-server/dist/tools/whiteboard-tools.d.ts +3 -3
  198. package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -1
  199. package/mcp-server/dist/tools/whiteboard-tools.js +1 -1
  200. package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -1
  201. package/mcp-server/dist/tools/youtube/analytics.d.ts +1 -1
  202. package/mcp-server/dist/tools/youtube/analytics.d.ts.map +1 -1
  203. package/mcp-server/dist/tools/youtube/analytics.js +1 -1
  204. package/mcp-server/dist/tools/youtube/analytics.js.map +1 -1
  205. package/mcp-server/dist/tools/youtube/download.d.ts +1 -1
  206. package/mcp-server/dist/tools/youtube/download.d.ts.map +1 -1
  207. package/mcp-server/dist/tools/youtube/download.js +1 -1
  208. package/mcp-server/dist/tools/youtube/download.js.map +1 -1
  209. package/mcp-server/dist/tools/youtube/media.d.ts +1 -1
  210. package/mcp-server/dist/tools/youtube/media.d.ts.map +1 -1
  211. package/mcp-server/dist/tools/youtube/media.js +1 -1
  212. package/mcp-server/dist/tools/youtube/media.js.map +1 -1
  213. package/mcp-server/dist/tools/youtube/metadata.d.ts +1 -1
  214. package/mcp-server/dist/tools/youtube/metadata.d.ts.map +1 -1
  215. package/mcp-server/dist/tools/youtube/metadata.js +1 -1
  216. package/mcp-server/dist/tools/youtube/metadata.js.map +1 -1
  217. package/mcp-server/dist/tools/youtube/navigate.d.ts +1 -1
  218. package/mcp-server/dist/tools/youtube/navigate.d.ts.map +1 -1
  219. package/mcp-server/dist/tools/youtube/navigate.js +1 -1
  220. package/mcp-server/dist/tools/youtube/navigate.js.map +1 -1
  221. package/mcp-server/dist/tools/youtube/playlist.d.ts +1 -1
  222. package/mcp-server/dist/tools/youtube/playlist.d.ts.map +1 -1
  223. package/mcp-server/dist/tools/youtube/playlist.js +1 -1
  224. package/mcp-server/dist/tools/youtube/playlist.js.map +1 -1
  225. package/mcp-server/dist/tools/youtube/schedule.d.ts +1 -1
  226. package/mcp-server/dist/tools/youtube/schedule.d.ts.map +1 -1
  227. package/mcp-server/dist/tools/youtube/schedule.js +1 -1
  228. package/mcp-server/dist/tools/youtube/schedule.js.map +1 -1
  229. package/mcp-server/dist/tools/youtube/source.d.ts +1 -1
  230. package/mcp-server/dist/tools/youtube/source.d.ts.map +1 -1
  231. package/mcp-server/dist/tools/youtube/source.js +1 -1
  232. package/mcp-server/dist/tools/youtube/source.js.map +1 -1
  233. package/mcp-server/dist/tools/youtube/upload.d.ts +1 -1
  234. package/mcp-server/dist/tools/youtube/upload.d.ts.map +1 -1
  235. package/mcp-server/dist/tools/youtube/upload.js +4 -9
  236. package/mcp-server/dist/tools/youtube/upload.js.map +1 -1
  237. package/mcp-server/dist/tui.js +16 -4
  238. package/mcp-server/dist/tui.js.map +1 -1
  239. package/mcp-server/package-lock.json +3 -3
  240. package/mcp-server/package.json +3 -3
  241. package/mcp-server/src/services/browser-bench.ts +1 -1
  242. package/mcp-server/src/services/categories.ts +77 -32
  243. package/mcp-server/src/services/desktop-bench.ts +1 -1
  244. package/mcp-server/src/tools/agents.ts +1 -1
  245. package/mcp-server/src/tools/bluesky.ts +1 -1
  246. package/mcp-server/src/tools/browser-advanced.ts +1 -1
  247. package/mcp-server/src/tools/browser-batch.ts +1 -1
  248. package/mcp-server/src/tools/browser-cheatsheet.ts +1 -1
  249. package/mcp-server/src/tools/browser-interact.ts +1 -1
  250. package/mcp-server/src/tools/browser-navigate.ts +1 -1
  251. package/mcp-server/src/tools/browser-observe.ts +1 -1
  252. package/mcp-server/src/tools/card-tools.ts +1 -1
  253. package/mcp-server/src/tools/category.ts +6 -1
  254. package/mcp-server/src/tools/choice.ts +1 -1
  255. package/mcp-server/src/tools/computer.ts +1 -1
  256. package/mcp-server/src/tools/discord-channel.ts +1 -1
  257. package/mcp-server/src/tools/discord-guild.ts +1 -1
  258. package/mcp-server/src/tools/discord-member.ts +1 -1
  259. package/mcp-server/src/tools/discord-message.ts +1 -1
  260. package/mcp-server/src/tools/discord-onboarding.ts +1 -1
  261. package/mcp-server/src/tools/discord-role.ts +1 -1
  262. package/mcp-server/src/tools/discord-thread.ts +1 -1
  263. package/mcp-server/src/tools/discord-webhook.ts +1 -1
  264. package/mcp-server/src/tools/fb-groups.ts +1 -1
  265. package/mcp-server/src/tools/forget.ts +1 -1
  266. package/mcp-server/src/tools/git-tools.ts +1 -1
  267. package/mcp-server/src/tools/gsc/experience.ts +1 -1
  268. package/mcp-server/src/tools/gsc/indexing.ts +1 -1
  269. package/mcp-server/src/tools/gsc/inspect.ts +1 -1
  270. package/mcp-server/src/tools/gsc/navigate.ts +1 -1
  271. package/mcp-server/src/tools/gsc/performance.ts +1 -1
  272. package/mcp-server/src/tools/gsc/settings.ts +1 -1
  273. package/mcp-server/src/tools/image-tools.ts +1 -1
  274. package/mcp-server/src/tools/leonardo-browser-tools.ts +1 -1
  275. package/mcp-server/src/tools/loop.ts +1 -1
  276. package/mcp-server/src/tools/memories.ts +1 -1
  277. package/mcp-server/src/tools/morelogin.ts +1 -1
  278. package/mcp-server/src/tools/profile.ts +1 -1
  279. package/mcp-server/src/tools/recall.ts +1 -1
  280. package/mcp-server/src/tools/reflect.ts +1 -1
  281. package/mcp-server/src/tools/remember.ts +13 -12
  282. package/mcp-server/src/tools/restore.ts +1 -1
  283. package/mcp-server/src/tools/style-guide-tools.ts +1 -1
  284. package/mcp-server/src/tools/sync.ts +1 -1
  285. package/mcp-server/src/tools/tictactoe-tools.ts +1 -1
  286. package/mcp-server/src/tools/utils.ts +1 -1
  287. package/mcp-server/src/tools/whatsapp-send-file.ts +1 -1
  288. package/mcp-server/src/tools/whiteboard-tools.ts +1 -1
  289. package/mcp-server/src/tools/youtube/analytics.ts +1 -1
  290. package/mcp-server/src/tools/youtube/download.ts +1 -1
  291. package/mcp-server/src/tools/youtube/media.ts +1 -1
  292. package/mcp-server/src/tools/youtube/metadata.ts +1 -1
  293. package/mcp-server/src/tools/youtube/navigate.ts +1 -1
  294. package/mcp-server/src/tools/youtube/playlist.ts +1 -1
  295. package/mcp-server/src/tools/youtube/schedule.ts +1 -1
  296. package/mcp-server/src/tools/youtube/source.ts +1 -1
  297. package/mcp-server/src/tools/youtube/upload.ts +4 -12
  298. package/mcp-server/src/tui.ts +22 -9
  299. package/neural-interface/i18n/en.json +236 -7
  300. package/neural-interface/i18n/pt-BR.json +238 -9
  301. package/neural-interface/lib/account-usage.js +5 -3
  302. package/neural-interface/lib/agent-sandbox-elevation.js +102 -0
  303. package/neural-interface/lib/agent-sandbox-setting.js +57 -0
  304. package/neural-interface/lib/app-controls-api.js +161 -0
  305. package/neural-interface/lib/assistant-api.js +40 -7
  306. package/neural-interface/lib/assistant-brains/opencode.js +13 -1
  307. package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +44 -0
  308. package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +57 -0
  309. package/neural-interface/lib/assistant-catalog.js +17 -2
  310. package/neural-interface/lib/assistant-dispatch.js +3 -0
  311. package/neural-interface/lib/assistant-envelope.js +19 -1
  312. package/neural-interface/lib/assistant-route-gate-codex.js +3 -1
  313. package/neural-interface/lib/assistant-runtime.js +131 -8
  314. package/neural-interface/lib/claude-model-catalog.js +64 -14
  315. package/neural-interface/lib/codex-account-auth.js +4 -2
  316. package/neural-interface/lib/codex-accounts.js +14 -1
  317. package/neural-interface/lib/codex-settings-schema.js +111 -47
  318. package/neural-interface/lib/editor-completion-opencode.js +132 -35
  319. package/neural-interface/lib/exec-loop-command.js +11 -2
  320. package/neural-interface/lib/install-details.js +23 -5
  321. package/neural-interface/lib/launch-cache.js +293 -0
  322. package/neural-interface/lib/login-start.js +524 -0
  323. package/neural-interface/lib/native-loop-providers.js +24 -4
  324. package/neural-interface/lib/native-loop-runtime.js +19 -0
  325. package/neural-interface/lib/opencode-db-schema.js +75 -0
  326. package/neural-interface/lib/opencode-history.js +16 -1
  327. package/neural-interface/lib/opencode-protocol.js +173 -0
  328. package/neural-interface/lib/opencode-provider-view.js +81 -0
  329. package/neural-interface/lib/opencode-runtime-config.js +10 -3
  330. package/neural-interface/lib/opencode-serve-records.js +606 -0
  331. package/neural-interface/lib/opencode-v2-client.js +33 -6
  332. package/neural-interface/lib/opencode-v2-ws-requests.js +19 -5
  333. package/neural-interface/lib/opencode-worker-activity.js +229 -0
  334. package/neural-interface/lib/opencode2-client.js +760 -0
  335. package/neural-interface/lib/opencode2-proxy.js +116 -0
  336. package/neural-interface/lib/opencode2-translate.js +1008 -0
  337. package/neural-interface/lib/process-identity.js +361 -0
  338. package/neural-interface/lib/provider-panel-terminal-auth.js +3 -2
  339. package/neural-interface/lib/session-cache-builder.js +26 -5
  340. package/neural-interface/lib/session-indexer.js +3 -1
  341. package/neural-interface/lib/session-title-generator.js +20 -0
  342. package/neural-interface/lib/style-guide/api.js +4 -3
  343. package/neural-interface/lib/untrusted-file-headers.js +27 -0
  344. package/neural-interface/package-lock.json +1342 -44
  345. package/neural-interface/package.json +5 -1
  346. package/neural-interface/public/index.html +2 -2
  347. package/neural-interface/public/shared/account-menu.js +4 -1
  348. package/neural-interface/public/shared/account-usage.js +62 -2
  349. package/neural-interface/public/shared/account-view.js +2 -1
  350. package/neural-interface/public/shared/agent-runtime-options.js +55 -11
  351. package/neural-interface/public/shared/assistant/asst-account-menu.js +298 -0
  352. package/neural-interface/public/shared/assistant/asst-agents-dock.js +172 -17
  353. package/neural-interface/public/shared/assistant/asst-api.js +18 -3
  354. package/neural-interface/public/shared/assistant/asst-brain-picker.js +424 -152
  355. package/neural-interface/public/shared/assistant/asst-composer.js +1 -1
  356. package/neural-interface/public/shared/assistant/asst-hosts.js +49 -2
  357. package/neural-interface/public/shared/assistant/asst-menu.js +275 -77
  358. package/neural-interface/public/shared/assistant/asst-model-chip.js +135 -0
  359. package/neural-interface/public/shared/assistant/asst-panel.js +236 -35
  360. package/neural-interface/public/shared/assistant/asst-rack-styles.js +28 -10
  361. package/neural-interface/public/shared/assistant/asst-redact.js +186 -0
  362. package/neural-interface/public/shared/assistant/asst-render.js +382 -36
  363. package/neural-interface/public/shared/assistant/asst-run-stage.js +231 -0
  364. package/neural-interface/public/shared/assistant/asst-sanitize.js +193 -3
  365. package/neural-interface/public/shared/assistant/asst-scene-styles.js +273 -0
  366. package/neural-interface/public/shared/assistant/asst-scenes.js +528 -0
  367. package/neural-interface/public/shared/assistant/asst-sidepanel-styles.js +3 -15
  368. package/neural-interface/public/shared/assistant/asst-state.js +14 -0
  369. package/neural-interface/public/shared/assistant/asst-styles.js +109 -17
  370. package/neural-interface/public/shared/assistant/asst-tool-kinds.js +13 -1
  371. package/neural-interface/public/shared/cc-dropdown.js +480 -0
  372. package/neural-interface/public/shared/cdx/cdx-panel.js +14 -2
  373. package/neural-interface/public/shared/cdx/cdx-render.js +15 -3
  374. package/neural-interface/public/shared/cdx/cdx-styles.js +49 -5
  375. package/neural-interface/public/shared/cdx/cdx-tabs.js +152 -35
  376. package/neural-interface/public/shared/cp/cp-markdown.js +4 -57
  377. package/neural-interface/public/shared/data-cache.js +223 -0
  378. package/neural-interface/public/shared/desktop-bridge.js +11 -0
  379. package/neural-interface/public/shared/desktop-titlebar-view.js +78 -1
  380. package/neural-interface/public/shared/desktop-titlebar.js +214 -28
  381. package/neural-interface/public/shared/desktop-update-view.js +15 -5
  382. package/neural-interface/public/shared/file-links.js +73 -8
  383. package/neural-interface/public/shared/html-shell.js +74 -80
  384. package/neural-interface/public/shared/launch-prefetch.js +59 -0
  385. package/neural-interface/public/shared/ocp-v2/ocp-v2-caps.js +3 -2
  386. package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +11 -3
  387. package/neural-interface/public/shared/ocp-v2/ocp-v2-modelpicker.js +54 -17
  388. package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +97 -3
  389. package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +3 -2
  390. package/neural-interface/public/shared/ocp-v2/ocp-v2-providers.js +11 -9
  391. package/neural-interface/public/shared/ocp-v2/ocp-v2-rehydrate.js +15 -4
  392. package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +1 -1
  393. package/neural-interface/public/shared/ocp-v2/ocp-v2-send-logic.js +401 -0
  394. package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +16 -9
  395. package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +60 -0
  396. package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +83 -5
  397. package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +195 -19
  398. package/neural-interface/public/shared/opencode-providers.js +39 -0
  399. package/neural-interface/public/shared/schedules-view.js +318 -0
  400. package/neural-interface/public/shared/settings/settings-app-pane.js +335 -0
  401. package/neural-interface/public/shared/settings/settings-app.js +243 -0
  402. package/neural-interface/public/shared/settings/settings-data.js +88 -0
  403. package/neural-interface/public/shared/settings/settings-ia.js +17 -0
  404. package/neural-interface/public/shared/showcase-privacy.js +2 -1
  405. package/neural-interface/public/shared/sidepanel-session-status.js +49 -0
  406. package/neural-interface/public/shared/styles.css +543 -372
  407. package/neural-interface/public/shared/ui-assistant.js +27 -5
  408. package/neural-interface/public/shared/ui-automation-studio.js +67 -27
  409. package/neural-interface/public/shared/ui-bookmarks.js +2 -1
  410. package/neural-interface/public/shared/ui-claude-panel.js +126 -12
  411. package/neural-interface/public/shared/ui-codex-panel.js +1 -0
  412. package/neural-interface/public/shared/ui-detail.js +6 -6
  413. package/neural-interface/public/shared/ui-explorer.js +2 -0
  414. package/neural-interface/public/shared/ui-file-links.js +1 -0
  415. package/neural-interface/public/shared/ui-image-gallery.js +6 -5
  416. package/neural-interface/public/shared/ui-invite.js +18 -2
  417. package/neural-interface/public/shared/ui-link.js +9 -9
  418. package/neural-interface/public/shared/ui-menubar.js +232 -33
  419. package/neural-interface/public/shared/ui-native-loop-router.js +2 -0
  420. package/neural-interface/public/shared/ui-opencode-panel-v2.js +1 -0
  421. package/neural-interface/public/shared/ui-schedules-studio.js +2099 -869
  422. package/neural-interface/public/shared/ui-sessions.js +15 -4
  423. package/neural-interface/public/shared/ui-settings.js +87 -36
  424. package/neural-interface/public/shared/ui-sidebar.js +4 -4
  425. package/neural-interface/public/shared/ui-sidepanel-session-entry.js +13 -0
  426. package/neural-interface/public/shared/ui-sidepanel-sessions.js +55 -4
  427. package/neural-interface/public/shared/ui-sidepanel-tray.js +84 -8
  428. package/neural-interface/public/shared/ui-skills.js +70 -12
  429. package/neural-interface/public/shared/ui-sync.js +9 -0
  430. package/neural-interface/public/shared/ui-terminal.js +36 -20
  431. package/neural-interface/public/shared/ui-trash.js +8 -1
  432. package/neural-interface/public/shared/ui-tutorial-steps.js +7 -3
  433. package/neural-interface/public/shared/ui-tutorial.js +15 -5
  434. package/neural-interface/public/shared/ui-update.js +87 -16
  435. package/neural-interface/public/shared/ui-whiteboard.js +2 -1
  436. package/neural-interface/public/variant/2d/main.js +4 -1
  437. package/neural-interface/public/variant/3d/main.js +3 -0
  438. package/neural-interface/public/vendor/highlight/LICENSE +29 -0
  439. package/neural-interface/public/vendor/highlight/github-dark-dimmed-11.12.0.min.css +9 -0
  440. package/neural-interface/public/vendor/highlight/highlight-11.12.0.min.js +1262 -0
  441. package/neural-interface/public/vendor/highlight/manifest.json +5 -0
  442. package/neural-interface/public/vendor/html2canvas/LICENSE +22 -0
  443. package/neural-interface/public/vendor/html2canvas/html2canvas-1.4.1.min.js +20 -0
  444. package/neural-interface/public/vendor/html2canvas/manifest.json +4 -0
  445. package/neural-interface/public/vendor/marked/LICENSE.md +44 -0
  446. package/neural-interface/public/vendor/marked/manifest.json +4 -0
  447. package/neural-interface/public/vendor/marked/marked-14.1.4.esm.js +2502 -0
  448. package/neural-interface/public/vendor/mermaid/LICENSE +21 -0
  449. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/abnfDiagram-PAR5IXJI.mjs +1 -0
  450. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architecture-7GRP2DOG-M7G3SWCO.mjs +1 -0
  451. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-2PNWDENW.mjs +36 -0
  452. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-PUWGUBOA.mjs +129 -0
  453. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-3NLNHZP5.mjs +38 -0
  454. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-2NMSUPJH.mjs +1 -0
  455. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-32MCUW2P.mjs +206 -0
  456. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3NPNU5GP.mjs +1 -0
  457. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3SMGFRGC.mjs +1 -0
  458. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4CAJECRU.mjs +14 -0
  459. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4OADUZ5Q.mjs +10 -0
  460. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IMINLNL.mjs +1 -0
  461. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IQCK5RY.mjs +3 -0
  462. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5MVFYWFU.mjs +1 -0
  463. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AQ6EADP3.mjs +1 -0
  464. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AZZRMDJM.mjs +15 -0
  465. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-CLS4B6BI.mjs +168 -0
  466. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-DZP67EKU.mjs +70 -0
  467. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-EICP7K5X.mjs +1 -0
  468. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-GDY2UAB4.mjs +1 -0
  469. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-H7VHZCWX.mjs +1 -0
  470. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-IJBDOHL6.mjs +1 -0
  471. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JFFVMJIA.mjs +1 -0
  472. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JQRUD6KW.mjs +1 -0
  473. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JZGDI5JK.mjs +1 -0
  474. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-KD6SPIPN.mjs +2 -0
  475. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NF366YI6.mjs +231 -0
  476. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NUDPKBEF.mjs +32 -0
  477. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-OJINMHTS.mjs +1 -0
  478. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Q6NGPIAH.mjs +2 -0
  479. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-QJSWEUOL.mjs +132 -0
  480. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-R7JDMUKV.mjs +1 -0
  481. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RCXAM2GK.mjs +1 -0
  482. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RT4MAWR3.mjs +1 -0
  483. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SFMINX4W.mjs +1 -0
  484. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SLDQ463B.mjs +88 -0
  485. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-STOV2HOB.mjs +1 -0
  486. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-T5OCTHI4.mjs +1 -0
  487. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-TCEHX7R3.mjs +1 -0
  488. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VQC2EELJ.mjs +1 -0
  489. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VRZKL3EH.mjs +1 -0
  490. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VTHDQ7BV.mjs +1 -0
  491. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VY2OSTJR.mjs +2 -0
  492. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-WUBWJARI.mjs +1 -0
  493. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YBMQ5JGJ.mjs +2 -0
  494. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YDMLL4PJ.mjs +1 -0
  495. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Z6V44ARX.mjs +62 -0
  496. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZJJ7VQJP.mjs +339 -0
  497. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZNLK7HRR.mjs +1 -0
  498. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZQN7UHIL.mjs +1 -0
  499. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZS6VBONO.mjs +174 -0
  500. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZUNWM646.mjs +1 -0
  501. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-FGAMPOII.mjs +1 -0
  502. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-AI5RJEK4.mjs +1 -0
  503. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cose-bilkent-Q72C2OJ3.mjs +1 -0
  504. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefin-OW5HDTMX-6OCTWOGG.mjs +1 -0
  505. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefinDiagram-2OOWUY4M.mjs +62 -0
  506. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/dagre-MPVFI544.mjs +4 -0
  507. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-AE4NWXFW.mjs +24 -0
  508. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-BUJID5UG.mjs +41 -0
  509. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-C44CZ5NI.mjs +24 -0
  510. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-EYOLEXXS.mjs +30 -0
  511. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-P7B6PWOJ.mjs +3 -0
  512. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ebnfDiagram-FTPZ3PV6.mjs +1 -0
  513. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-H3ERR26V.mjs +99 -0
  514. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/eventmodeling-NTZA5JFV-WKSWQHFS.mjs +1 -0
  515. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-YHGXBVSY.mjs +1 -0
  516. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-RWFTB7ED.mjs +292 -0
  517. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-4MIJSDKK-JH2HKYUO.mjs +1 -0
  518. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-MAR6GKOP.mjs +106 -0
  519. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/info-A6RAGUB7-3TX3OFWW.mjs +1 -0
  520. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-LV547AFH.mjs +2 -0
  521. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ishikawaDiagram-PUJQGNDS.mjs +70 -0
  522. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-EW5QJT4W.mjs +139 -0
  523. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-JSQERAZB.mjs +89 -0
  524. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/katex-CZ4GXH2S.mjs +257 -0
  525. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-VBJCLQLM.mjs +96 -0
  526. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/packet-AYTQ26CC-MKII6P3Y.mjs +1 -0
  527. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pegDiagram-7WILOQTJ.mjs +1 -0
  528. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pie-WAS4IAKB-6B4OPMJ5.mjs +1 -0
  529. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-EFA7CBSB.mjs +39 -0
  530. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-WARVYA7P.mjs +7 -0
  531. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/radar-RG4KPBEZ-UPTR3XUL.mjs +1 -0
  532. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-74A4TZTK-MEFUPFMS.mjs +1 -0
  533. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-abnf-HS5TGJTU-R5YG2S5D.mjs +1 -0
  534. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-ebnf-LZEXJU2U-G5QEX2L6.mjs +1 -0
  535. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-peg-WCYAUIDC-H5I2ZRY2.mjs +1 -0
  536. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroadDiagram-5NIQVNLQ.mjs +1 -0
  537. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-SXREGOKZ.mjs +84 -0
  538. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-VV74M2VP.mjs +40 -0
  539. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-52ZFIFDL.mjs +162 -0
  540. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sizeCapture-FGA5AGYP.mjs +1 -0
  541. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-3QAKPIVI.mjs +1 -0
  542. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-HN2P4RDZ.mjs +1 -0
  543. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanes-QLVP42QD.mjs +1 -0
  544. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanesDiagram-JKPDBFCN.mjs +8 -0
  545. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-GS45XAXW.mjs +120 -0
  546. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treeView-Q6P3EWNA-ZRJGANNQ.mjs +1 -0
  547. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treemap-WGGIJYW6-K64VN5AS.mjs +1 -0
  548. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/vennDiagram-QIQU2ZRJ.mjs +34 -0
  549. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardley-WFR3VGLG-D67OWCCH.mjs +1 -0
  550. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardleyDiagram-U6YNM66N.mjs +78 -0
  551. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-XJAZEDNM.mjs +7 -0
  552. package/neural-interface/public/vendor/mermaid/manifest.json +4 -0
  553. package/neural-interface/public/vendor/mermaid/mermaid-11.17.2.esm.min.mjs +14 -0
  554. package/neural-interface/scripts/build-vendor.mjs +84 -3
  555. package/neural-interface/scripts/rebuild-pty.js +14 -2
  556. package/neural-interface/server.js +1279 -372
  557. package/npm-shrinkwrap.json +4424 -0
  558. package/package.json +54 -2
  559. package/postinstall.js +61 -47
  560. package/preuninstall.js +8 -35
  561. package/setup.js +76 -44
  562. package/skills/synabun/modules/idea.md +1 -1
  563. package/skills/synabun/modules/schedule.md +2 -2
  564. package/updater.cmd +2 -2
  565. package/updater.mjs +97 -3
@@ -14,12 +14,12 @@
14
14
  * look successful).
15
15
  */
16
16
 
17
- import { z } from 'zod';
17
+ import { z } from 'zod/v3';
18
18
  import { v4 as uuidv4 } from 'uuid';
19
19
  import * as ni from '../../services/neural-interface.js';
20
20
  import { generateEmbedding } from '../../services/local-embeddings.js';
21
21
  import { upsertMemory } from '../../services/sqlite.js';
22
- import { categoryExists, addCategory } from '../../services/categories.js';
22
+ import { ensureCategory, FEATURE_CATEGORIES } from '../../services/categories.js';
23
23
  import { detectProject } from '../../config.js';
24
24
  import type { MemoryPayload } from '../../types.js';
25
25
  import { text } from '../response.js';
@@ -63,17 +63,9 @@ async function ensureOnStudio(r: Resolved): Promise<string | null> {
63
63
  return ensureAuth(r);
64
64
  }
65
65
 
66
- /** Ensure the dedup-ledger category exists (so it shows in the UI and routing). */
66
+ /** Ensure the dedup-ledger category exists (so it shows in the UI and routing): made on the first upload, under "social" when that exists. */
67
67
  function ensureTrailerCategory(): void {
68
- try {
69
- if (!categoryExists(TRAILER_CATEGORY)) {
70
- addCategory(
71
- TRAILER_CATEGORY,
72
- 'One memory per uploaded YouTube trailer — the dedup ledger. Written automatically by youtube_upload; tagged with canonical source ids (igdb:/appid:/ytid:/name:) that youtube_source reads to skip already-posted trailers. Do not store anything else here.',
73
- categoryExists('social') ? 'social' : undefined,
74
- );
75
- }
76
- } catch { /* non-fatal — upsertMemory does not require a registered category */ }
68
+ ensureCategory(TRAILER_CATEGORY, FEATURE_CATEGORIES[TRAILER_CATEGORY].description, { parent: 'social' });
77
69
  }
78
70
 
79
71
  /** Write the dedup-ledger memory for a just-uploaded trailer. Returns the memory id, or null on failure. */
@@ -2,11 +2,11 @@
2
2
  import { retrieveMemory } from './services/memory-retrieval.js';
3
3
 
4
4
  // Load .env from parent directory before any service imports
5
- import { readFileSync } from 'fs';
6
- import { resolve } from 'path';
7
- import { getDataHome } from '../../lib/paths.js';
8
-
9
- const envPath = process.env.DOTENV_PATH || resolve(getDataHome(), '.env');
5
+ import { readFileSync } from 'fs';
6
+ import { resolve } from 'path';
7
+ import { getDataHome } from '../../lib/paths.js';
8
+
9
+ const envPath = process.env.DOTENV_PATH || resolve(getDataHome(), '.env');
10
10
  try {
11
11
  const envContent = readFileSync(envPath, 'utf-8');
12
12
  for (const line of envContent.split('\n')) {
@@ -407,6 +407,10 @@ async function editMemory(id: string, payload: MemoryPayload): Promise<void> {
407
407
  console.log(success(` ${ICONS.check} Content updated & re-embedded.`));
408
408
  } else if (field === 'category') {
409
409
  const cats = getAllCategories();
410
+ if (cats.length === 0) {
411
+ console.log(warn(` ${ICONS.cross} No categories yet. Create one under Categories first.`));
412
+ return;
413
+ }
410
414
  const val = await safePrompt(() =>
411
415
  select({
412
416
  message: ' Category:',
@@ -608,6 +612,13 @@ async function searchScreen(): Promise<void> {
608
612
  async function createScreen(): Promise<void> {
609
613
  printScreenHeader(`${ICONS.plus} Create Memory`, 'Store a new piece of knowledge');
610
614
 
615
+ // A fresh install has no categories until a project is added or one is created.
616
+ const cats = getAllCategories();
617
+ if (cats.length === 0) {
618
+ console.log(warn(` ${ICONS.cross} No categories yet. Create one under Categories first.`));
619
+ return;
620
+ }
621
+
611
622
  // Content
612
623
  const content = await safePrompt(() =>
613
624
  input({
@@ -618,7 +629,6 @@ async function createScreen(): Promise<void> {
618
629
  if (content === null) return;
619
630
 
620
631
  // Category
621
- const cats = getAllCategories();
622
632
  const category = await safePrompt(() =>
623
633
  select({
624
634
  message: accent(` ${ICONS.folder} Category:`),
@@ -793,12 +803,15 @@ async function categoriesScreen(): Promise<void> {
793
803
  );
794
804
  if (reassign === null || !reassign) continue;
795
805
 
806
+ const others = getAllCategories().filter(c => c !== name);
807
+ if (others.length === 0) {
808
+ console.log(warn(` ${ICONS.cross} No other category to move them to. Create one first.`));
809
+ continue;
810
+ }
796
811
  const target = await safePrompt(() =>
797
812
  select({
798
813
  message: accent(' Reassign to:'),
799
- choices: getAllCategories()
800
- .filter(c => c !== name)
801
- .map(c => ({ name: ` ${colorCategory(c)}`, value: c })),
814
+ choices: others.map(c => ({ name: ` ${colorCategory(c)}`, value: c })),
802
815
  })
803
816
  );
804
817
  if (target === null) continue;
@@ -104,6 +104,7 @@
104
104
  "graph": "Graph",
105
105
  "skills": "Skills",
106
106
  "automations": "Automations",
107
+ "schedules": "Schedules",
107
108
  "games": "Games",
108
109
  "apps": "Apps",
109
110
  "bookmarks": "Bookmarks",
@@ -152,6 +153,7 @@
152
153
  "openCode": "OpenCode",
153
154
  "shell": "Shell",
154
155
  "browser": "Browser",
156
+ "browserApps": "Browser apps",
155
157
  "youtube": "YouTube",
156
158
  "showTerminal": "Show Terminal"
157
159
  }
@@ -1425,6 +1427,10 @@
1425
1427
  "about": {
1426
1428
  "label": "About",
1427
1429
  "help": "Version, links and licenses"
1430
+ },
1431
+ "app": {
1432
+ "label": "App",
1433
+ "help": "Updates, startup and the window"
1428
1434
  }
1429
1435
  },
1430
1436
  "page": {
@@ -1479,6 +1485,10 @@
1479
1485
  "about": {
1480
1486
  "title": "About",
1481
1487
  "purpose": "The version you run, what it runs on, and the open-source software SynaBun is built with."
1488
+ },
1489
+ "app": {
1490
+ "title": "App",
1491
+ "purpose": "How SynaBun updates, starts and runs on this computer."
1482
1492
  }
1483
1493
  },
1484
1494
  "section": {
@@ -1819,6 +1829,24 @@
1819
1829
  "title": "Dependencies",
1820
1830
  "purpose": "Every package SynaBun ships with, the version installed here and its license."
1821
1831
  }
1832
+ },
1833
+ "app": {
1834
+ "updates": {
1835
+ "title": "Updates",
1836
+ "purpose": "The version you run, and how SynaBun gets new ones."
1837
+ },
1838
+ "startup": {
1839
+ "title": "Startup",
1840
+ "purpose": "Whether SynaBun starts when you log in."
1841
+ },
1842
+ "window": {
1843
+ "title": "Window",
1844
+ "purpose": "What the SynaBun app's window does."
1845
+ },
1846
+ "maintenance": {
1847
+ "title": "Maintenance",
1848
+ "purpose": "SynaBun's folders, and a restart when something needs one."
1849
+ }
1822
1850
  }
1823
1851
  },
1824
1852
  "common": {
@@ -3479,6 +3507,50 @@
3479
3507
  "abt003": {
3480
3508
  "label": "Filter dependencies",
3481
3509
  "help": "Shows only the packages whose name contains what you type."
3510
+ },
3511
+ "sys001": {
3512
+ "label": "Check for updates",
3513
+ "help": "Looks for a newer version of SynaBun now."
3514
+ },
3515
+ "sys002": {
3516
+ "label": "Automatic updates",
3517
+ "help": "Looks for new versions by itself. In the desktop app it also installs them when SynaBun is idle."
3518
+ },
3519
+ "sys003": {
3520
+ "label": "Install update",
3521
+ "help": "Opens the update with its release notes, and a backup first if you want one."
3522
+ },
3523
+ "sys004": {
3524
+ "label": "Start at login",
3525
+ "help": "Starts SynaBun when you log in to this computer."
3526
+ },
3527
+ "sys005": {
3528
+ "label": "Start in the background",
3529
+ "help": "At login, SynaBun starts without opening its window. Open SynaBun to show it."
3530
+ },
3531
+ "sys006": {
3532
+ "label": "Keep running when the window closes",
3533
+ "help": "Closing the window leaves SynaBun in the tray, so your AI tools keep their memory. Off: closing the window quits SynaBun."
3534
+ },
3535
+ "sys007": {
3536
+ "label": "Hardware acceleration",
3537
+ "help": "Draws the window with the graphics card. Turn it off if the window flickers or stays blank. Applies after a restart."
3538
+ },
3539
+ "sys008": {
3540
+ "label": "Restart now",
3541
+ "help": "Quits SynaBun and opens it again."
3542
+ },
3543
+ "sys009": {
3544
+ "label": "Open data folder",
3545
+ "help": "Shows the folder with your memories, settings and backups."
3546
+ },
3547
+ "sys010": {
3548
+ "label": "Open logs folder",
3549
+ "help": "Shows the folder with SynaBun's logs, for a bug report."
3550
+ },
3551
+ "sys011": {
3552
+ "label": "Restart SynaBun",
3553
+ "help": "Restarts SynaBun's server: the same as Restart Server in the Apps menu."
3482
3554
  }
3483
3555
  },
3484
3556
  "pane": {
@@ -5729,7 +5801,8 @@
5729
5801
  "notifications": "alerts, sound, volume, banner, toast, mute, desktop notification",
5730
5802
  "appearance": "theme, dark mode, skin, color, font, text size, language, locale, icons, zoom, look",
5731
5803
  "code_editor": "editor, code, font, text size, word wrap, minimap, whitespace, indentation, tabs, autocomplete, completion, suggestions, copilot, ghost text, inline, ai, model, ollama, file",
5732
- "about": "version, GitHub, license, dependencies, Node, Electron, Chromium, system, update, credits, copyright, release notes, changelog"
5804
+ "about": "version, GitHub, license, dependencies, Node, Electron, Chromium, system, update, credits, copyright, release notes, changelog",
5805
+ "app": "updates, auto update, automatic updates, startup, start at login, launch at login, login items, boot, autostart, background, tray, menu bar, close window, quit, hardware acceleration, GPU, data folder, logs, restart, version"
5733
5806
  },
5734
5807
  "section": {
5735
5808
  "ai_connections": {
@@ -5835,6 +5908,12 @@
5835
5908
  "links": "GitHub, repository, releases, changelog, issue, bug report, website, docs, documentation, npm, license, Discord, community",
5836
5909
  "system": "version, Node, Node.js, Electron, Chromium, SQLite, operating system, OS, macOS, Windows, Linux, architecture, data folder, port, install, diagnostics",
5837
5910
  "dependencies": "packages, libraries, npm, licenses, open source, third party, versions, node_modules"
5911
+ },
5912
+ "app": {
5913
+ "updates": "update, auto update, automatic, check, version, upgrade, release, download, install, badge",
5914
+ "startup": "start at login, startup, boot, login items, autostart, launch, background, hidden, tray, minimized, LaunchAgent, systemd",
5915
+ "window": "close, tray, menu bar, quit, keep running, hardware acceleration, GPU, graphics, flicker, blank window",
5916
+ "maintenance": "data folder, logs, log files, restart, troubleshooting, diagnostics, folder, Finder, Explorer"
5838
5917
  }
5839
5918
  },
5840
5919
  "control": {
@@ -6021,6 +6100,70 @@
6021
6100
  "builtWith": "Built with open-source software"
6022
6101
  },
6023
6102
  "afterRestart": "Shown after SynaBun restarts."
6103
+ },
6104
+ "app": {
6105
+ "version": "SynaBun {version}",
6106
+ "update": {
6107
+ "checking": "Checking for updates…",
6108
+ "upToDate": "Up to date",
6109
+ "available": "Version {version} is available",
6110
+ "downloading": "Downloading version {version} ({percent}%)",
6111
+ "ready": "Version {version} is ready to install",
6112
+ "installing": "Installing version {version}",
6113
+ "failed": "The last check failed",
6114
+ "notChecked": "Not checked yet",
6115
+ "unsupported": "This copy does not update itself",
6116
+ "checkedAt": "checked at {time}",
6117
+ "autoHelpDesktop": "Downloads new versions and installs them when SynaBun is idle, after a one-minute notice. Off: SynaBun still checks and tells you, and you install with one click.",
6118
+ "autoHelpServer": "Looks for new versions when SynaBun starts and every half hour, and shows the update badge. Off: it looks only when you ask. Installing always asks first."
6119
+ },
6120
+ "startup": {
6121
+ "helpDesktop": "Opens SynaBun when you log in, so its server is ready for your AI tools.",
6122
+ "helpServer": "Starts SynaBun's server in the background when you log in, with no window or terminal.",
6123
+ "hiddenNeedsLogin": "Applies when SynaBun starts at login.",
6124
+ "requiresApproval": "macOS is waiting for you to allow SynaBun in System Settings > General > Login Items.",
6125
+ "disabledInSystem": {
6126
+ "darwin": "Turned off in System Settings > General > Login Items.",
6127
+ "win32": "Turned off in Windows Settings > Apps > Startup.",
6128
+ "linux": "Turned off in your desktop's startup applications."
6129
+ },
6130
+ "openSettings": {
6131
+ "darwin": "Open Login Items",
6132
+ "win32": "Open Startup apps"
6133
+ },
6134
+ "reason": {
6135
+ "unpackaged": "Only an installed copy of SynaBun can start at login.",
6136
+ "move-to-applications": "Move SynaBun to the Applications folder first.",
6137
+ "no-appimage": "Start SynaBun from its AppImage file to use this.",
6138
+ "not-here": "Not available in a test run or a temporary data folder.",
6139
+ "unsupported": "Not available on this system.",
6140
+ "desktop": "The SynaBun app sets this itself. Update the app to change it here."
6141
+ },
6142
+ "owner": "The SynaBun app opens at login on this data folder. Turn it off in the app first.",
6143
+ "replaced": "The npm install no longer starts at login: this app does now.",
6144
+ "error": {
6145
+ "refused": "The system did not accept the change.",
6146
+ "write-failed": "SynaBun could not write its startup entry.",
6147
+ "no-wscript": "Windows Script Host (wscript.exe) is missing, so SynaBun cannot start without a window.",
6148
+ "bad-path": "SynaBun cannot start at login from a folder whose name has % in it.",
6149
+ "desktop-app": "The SynaBun app opens at login on this data folder. Turn it off in the app first.",
6150
+ "npm-entry": "The npm install's start at login could not be removed. Turn it off there, then try again.",
6151
+ "save-failed": "SynaBun could not save this setting.",
6152
+ "network": "SynaBun did not answer. Try again."
6153
+ }
6154
+ },
6155
+ "window": {
6156
+ "desktopOnly": "Only in the SynaBun desktop app.",
6157
+ "macDock": "On macOS, SynaBun stays in the Dock when its window closes. Quit it from the menu.",
6158
+ "noTray": "This desktop shows no tray icon: open SynaBun again to show its window.",
6159
+ "restartNeeded": "Applies after SynaBun restarts."
6160
+ },
6161
+ "maintenance": {
6162
+ "openFailed": "The folder could not be opened."
6163
+ },
6164
+ "remote": "Open SynaBun on the computer it runs on to change these.",
6165
+ "serverOld": "These controls come with a restart of SynaBun's server.",
6166
+ "saveFailed": "Could not save the setting."
6024
6167
  }
6025
6168
  }
6026
6169
  },
@@ -6355,6 +6498,12 @@
6355
6498
  "left": "{percent}% left",
6356
6499
  "resets": "resets {time}"
6357
6500
  },
6501
+ "accountMenu": {
6502
+ "uses": "{label} uses",
6503
+ "workers": "Workers use",
6504
+ "workersHint": "Used when a dispatch names no account.",
6505
+ "switchNote": "Another account starts a new conversation."
6506
+ },
6358
6507
  "usage": {
6359
6508
  "task": "Current task",
6360
6509
  "tokens": "tokens",
@@ -6486,7 +6635,14 @@
6486
6635
  "sessions": {
6487
6636
  "empty": "No other sessions",
6488
6637
  "recent": "Recent",
6489
- "filter": "Filter sessions…"
6638
+ "filter": "Filter sessions…",
6639
+ "remove": "Remove session",
6640
+ "removeNamed": "Remove “{title}”",
6641
+ "removeAsk": "Remove “{title}” for good?",
6642
+ "removeStopsTurn": "Its running turn stops.",
6643
+ "removeStopsAgents": "Its running agents stop ({count}).",
6644
+ "removeConfirm": "Remove",
6645
+ "removeFailed": "Could not remove “{title}”: {error}"
6490
6646
  },
6491
6647
  "work": {
6492
6648
  "agents": "{count} agents",
@@ -7139,6 +7295,7 @@
7139
7295
  "awaitingRoute": "waiting for your model choice",
7140
7296
  "needsApproval": "needs approval",
7141
7297
  "needsInput": "needs input",
7298
+ "waitingInput": "waiting for your answer",
7142
7299
  "queued": "queued",
7143
7300
  "strongerModel": "a stronger model",
7144
7301
  "escalateTo": "Escalate to {label}",
@@ -7172,12 +7329,65 @@
7172
7329
  "showAll": "Show all",
7173
7330
  "stopAll": "Stop all",
7174
7331
  "empty": "No dispatched agents yet. Try /dispatch codex \"…\"",
7175
- "running": "{n} running",
7176
- "needsApproval": "{n} needs approval",
7177
- "done": "{n} finished",
7332
+ "running": {
7333
+ "one": "{count} running",
7334
+ "other": "{count} running"
7335
+ },
7336
+ "needsApproval": {
7337
+ "one": "{count} needs approval",
7338
+ "other": "{count} need approval"
7339
+ },
7340
+ "needsAnswer": {
7341
+ "one": "{count} waiting for your answer",
7342
+ "other": "{count} waiting for your answer"
7343
+ },
7344
+ "done": {
7345
+ "one": "{count} finished",
7346
+ "other": "{count} finished"
7347
+ },
7178
7348
  "emptyShort": "No dispatched agents yet.",
7179
7349
  "clearFinished": "Clear finished",
7180
- "idle": "{n} idle"
7350
+ "idle": {
7351
+ "one": "{count} idle",
7352
+ "other": "{count} idle"
7353
+ },
7354
+ "reveal": "{label}. Show it in the conversation",
7355
+ "working": "Agents at work",
7356
+ "more": {
7357
+ "one": "{count} more agent at work: show the list",
7358
+ "other": "{count} more agents at work: show the list"
7359
+ }
7360
+ },
7361
+ "stage": {
7362
+ "scene": {
7363
+ "quick": "Quick fix",
7364
+ "code": "Coding",
7365
+ "complex": "Complex task",
7366
+ "review": "Reviewing",
7367
+ "research": "Researching",
7368
+ "browser": "Browsing",
7369
+ "computer": "Using the computer",
7370
+ "automation": "Automating",
7371
+ "design": "Designing",
7372
+ "image_gen": "Making an image",
7373
+ "video_gen": "Making a video",
7374
+ "generic": "Working"
7375
+ },
7376
+ "doing": "{scene}…",
7377
+ "queued": "Queued",
7378
+ "queuedAt": "Queued · position {n}",
7379
+ "starting": "Starting…",
7380
+ "waitingApproval": "Waiting for your approval",
7381
+ "waitingInput": "Waiting for your answer",
7382
+ "waitingRoute": "Waiting for your model choice",
7383
+ "done": "Done",
7384
+ "failed": "Failed",
7385
+ "stopped": "Stopped",
7386
+ "underMinute": "under a minute",
7387
+ "minutes": {
7388
+ "one": "{count} min",
7389
+ "other": "{count} min"
7390
+ }
7181
7391
  },
7182
7392
  "composer": {
7183
7393
  "aria": "Message the assistant",
@@ -7315,6 +7525,8 @@
7315
7525
  "variant": "Model variant",
7316
7526
  "variantDefault": "default variant",
7317
7527
  "account": "Account profile",
7528
+ "accountShort": "Account",
7529
+ "accountAutoShort": "Auto",
7318
7530
  "accountHint": "as",
7319
7531
  "project": "Working project",
7320
7532
  "projectHint": "in",
@@ -7365,6 +7577,16 @@
7365
7577
  "thorough": "Full coverage, whole suite, live checks."
7366
7578
  }
7367
7579
  },
7580
+ "adminSandbox": {
7581
+ "group": "Every agent",
7582
+ "label": "Admin sandbox",
7583
+ "on": "On",
7584
+ "off": "Off",
7585
+ "hint": "Only changes anything when SynaBun runs on Windows. On: Codex can set up its strongest sandbox, which asks for administrator approval once per account. Off: no admin prompt; Codex uses a sandbox that needs no admin, with weaker isolation.",
7586
+ "aria": "{label}: {value}. Only changes anything when SynaBun runs on Windows.",
7587
+ "statusOn": "Admin sandbox: on. On Windows, Codex may ask for administrator approval once per account to set up its sandbox.",
7588
+ "statusOff": "Admin sandbox: off. No agent SynaBun starts asks for administrator approval for a sandbox."
7589
+ },
7368
7590
  "accounts": {
7369
7591
  "signInAccount": "Sign in to {label}…",
7370
7592
  "title": "{provider} accounts",
@@ -8563,7 +8785,7 @@
8563
8785
  },
8564
8786
  "explain-graph": {
8565
8787
  "title": "See your memory as a map",
8566
- "body": "Each memory is a point on the map, and categories form islands. The {menu} menu frames it, shows a memory's neighbours and rebuilds the layout.",
8788
+ "body": "Each memory is a point on the map, and categories form islands. The {menu} submenu of {apps} frames it, shows a memory's neighbours and rebuilds the layout.",
8567
8789
  "body2d": "Each memory is a node, linked to the memories related to it. The {menu} menu picks which links show and how many memories load, and resets the layout."
8568
8790
  },
8569
8791
  "explain-focus": {
@@ -8737,6 +8959,7 @@
8737
8959
  "tooltip": "SynaBun update available: v{current} → v{latest}",
8738
8960
  "tooltipDownloading": "Downloading SynaBun v{latest}",
8739
8961
  "tooltipReady": "SynaBun v{latest} is ready: it installs when SynaBun is idle",
8962
+ "tooltipReadyOff": "SynaBun v{latest} is ready to install",
8740
8963
  "titleAvailable": "Update available",
8741
8964
  "titleDownloading": "Downloading the update",
8742
8965
  "titleDownloaded": "Update ready",
@@ -8759,6 +8982,8 @@
8759
8982
  "hide": "Hide",
8760
8983
  "hideHint": "The download continues while this is hidden. SynaBun installs the update by itself when nothing is running.",
8761
8984
  "readyBody": "SynaBun v{version} is downloaded. It installs by itself once nothing is running: SynaBun shows a one-minute notice, then restarts into it. It also installs when you quit SynaBun.",
8985
+ "offBody": "Automatic updates are off. Install now downloads it and restarts SynaBun into it once nothing is running.",
8986
+ "readyBodyOff": "SynaBun v{version} is downloaded. Automatic updates are off: it installs when you choose Install now.",
8762
8987
  "waitingBody": "Waiting for: {list}.",
8763
8988
  "countdownBody": "SynaBun restarts into v{version} in {seconds} s.",
8764
8989
  "postponedBody": "Postponed until {time}. It also installs when you quit SynaBun.",
@@ -8775,12 +9000,14 @@
8775
9000
  "errorFallback": "SynaBun could not check for updates. Check the connection and try again.",
8776
9001
  "errorNext": "SynaBun keeps the version it runs and tries again at its next check. You can try now, or download the new version yourself.",
8777
9002
  "manualLink": "Download it yourself",
9003
+ "settingsLink": "Update settings",
8778
9004
  "close": "Close",
8779
9005
  "retry": "Try again",
8780
9006
  "testFeed": "test feed",
8781
9007
  "metaAvailable": "From the SynaBun app",
8782
9008
  "metaDownloading": "Downloading: {percent}%",
8783
9009
  "metaDownloaded": "Ready: installs when SynaBun is idle",
9010
+ "metaReadyOff": "Ready to install",
8784
9011
  "metaCountdown": "Restarting to install it",
8785
9012
  "metaPostponed": "Postponed: installs on quit or later"
8786
9013
  },
@@ -8827,6 +9054,8 @@
8827
9054
  "updateAvailableManualDetail": "This copy cannot replace itself where it is. Download the new disk image and install it the way you installed SynaBun.",
8828
9055
  "updateDownloading": "SynaBun v{version} is downloading",
8829
9056
  "updateAutoDetail": "SynaBun installs it by itself as soon as nothing is running, after a one-minute notice you can postpone. It also installs when you quit SynaBun.",
9057
+ "updateAvailableOffDetail": "Automatic updates are off. Install now downloads it and restarts SynaBun into it once nothing is running.",
9058
+ "updateReadyOffDetail": "Automatic updates are off: it installs when you choose Install now.",
8830
9059
  "installNow": "Install now",
8831
9060
  "downloadYourself": "Download it yourself",
8832
9061
  "countdownTitle": "Updating SynaBun to v{version}",