@ashx-j/lunr 0.2.21 → 0.2.22

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 (438) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +20 -4
  3. package/dist/builtin-extensions/index.d.ts.map +1 -1
  4. package/dist/builtin-extensions/index.js +1 -0
  5. package/dist/builtin-extensions/index.js.map +1 -1
  6. package/dist/builtin-extensions/lunr-browser.d.ts +3 -0
  7. package/dist/builtin-extensions/lunr-browser.d.ts.map +1 -0
  8. package/dist/builtin-extensions/lunr-browser.js +56 -0
  9. package/dist/builtin-extensions/lunr-browser.js.map +1 -0
  10. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
  11. package/dist/builtin-extensions/lunr-todos.js +15 -0
  12. package/dist/builtin-extensions/lunr-todos.js.map +1 -1
  13. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  14. package/dist/builtin-extensions/pi-intercom/index.js +3 -0
  15. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  16. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts +1 -1
  17. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts.map +1 -1
  18. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js +5 -1
  19. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js.map +1 -1
  20. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +2 -2
  21. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  22. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +18 -5
  23. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
  25. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +3 -0
  27. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/intercom/communication.d.ts +17 -0
  29. package/dist/builtin-extensions/pi-subagents/src/intercom/communication.d.ts.map +1 -0
  30. package/dist/builtin-extensions/pi-subagents/src/intercom/communication.js +45 -0
  31. package/dist/builtin-extensions/pi-subagents/src/intercom/communication.js.map +1 -0
  32. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -1
  33. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +4 -11
  34. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -1
  35. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +4 -1
  36. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  37. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +160 -51
  38. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -1
  40. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +5 -0
  41. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +2 -0
  43. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -1
  44. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +3 -2
  45. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts +1 -0
  47. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js +2 -1
  49. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +1 -0
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +2 -0
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +3 -0
  56. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +1 -0
  58. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +3 -0
  60. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1 -0
  65. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts +18 -0
  68. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts.map +1 -0
  69. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js +47 -0
  70. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js.map +1 -0
  71. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-web-access/index.js +11 -7
  73. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  74. package/dist/cli/args.d.ts.map +1 -1
  75. package/dist/cli/args.js +2 -1
  76. package/dist/cli/args.js.map +1 -1
  77. package/dist/cli/install-cli.d.ts.map +1 -1
  78. package/dist/cli/install-cli.js +15 -45
  79. package/dist/cli/install-cli.js.map +1 -1
  80. package/dist/core/agent-session-runtime.d.ts +9 -0
  81. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  82. package/dist/core/agent-session-runtime.js +126 -29
  83. package/dist/core/agent-session-runtime.js.map +1 -1
  84. package/dist/core/agent-session.d.ts +3 -0
  85. package/dist/core/agent-session.d.ts.map +1 -1
  86. package/dist/core/agent-session.js +20 -2
  87. package/dist/core/agent-session.js.map +1 -1
  88. package/dist/core/browser/network.d.ts +9 -0
  89. package/dist/core/browser/network.d.ts.map +1 -0
  90. package/dist/core/browser/network.js +146 -0
  91. package/dist/core/browser/network.js.map +1 -0
  92. package/dist/core/browser/runtime.d.ts +24 -0
  93. package/dist/core/browser/runtime.d.ts.map +1 -0
  94. package/dist/core/browser/runtime.js +289 -0
  95. package/dist/core/browser/runtime.js.map +1 -0
  96. package/dist/core/browser/schema.d.ts +16 -0
  97. package/dist/core/browser/schema.d.ts.map +1 -0
  98. package/dist/core/browser/schema.js +36 -0
  99. package/dist/core/browser/schema.js.map +1 -0
  100. package/dist/core/browser/settings.d.ts +8 -0
  101. package/dist/core/browser/settings.d.ts.map +1 -0
  102. package/dist/core/browser/settings.js +30 -0
  103. package/dist/core/browser/settings.js.map +1 -0
  104. package/dist/core/browser/setup.d.ts +2 -0
  105. package/dist/core/browser/setup.d.ts.map +1 -0
  106. package/dist/core/browser/setup.js +16 -0
  107. package/dist/core/browser/setup.js.map +1 -0
  108. package/dist/core/customize.d.ts.map +1 -1
  109. package/dist/core/customize.js +15 -14
  110. package/dist/core/customize.js.map +1 -1
  111. package/dist/core/export-html/index.d.ts.map +1 -1
  112. package/dist/core/export-html/index.js +1 -1
  113. package/dist/core/export-html/index.js.map +1 -1
  114. package/dist/core/extensions/runner.d.ts +1 -0
  115. package/dist/core/extensions/runner.d.ts.map +1 -1
  116. package/dist/core/extensions/runner.js +1 -1
  117. package/dist/core/extensions/runner.js.map +1 -1
  118. package/dist/core/extensions/types.d.ts +1 -1
  119. package/dist/core/extensions/types.d.ts.map +1 -1
  120. package/dist/core/extensions/types.js.map +1 -1
  121. package/dist/core/install-features.d.ts.map +1 -1
  122. package/dist/core/install-features.js +10 -8
  123. package/dist/core/install-features.js.map +1 -1
  124. package/dist/core/memory-cap.d.ts.map +1 -1
  125. package/dist/core/memory-cap.js +5 -3
  126. package/dist/core/memory-cap.js.map +1 -1
  127. package/dist/core/model-tiers.d.ts.map +1 -1
  128. package/dist/core/model-tiers.js +9 -6
  129. package/dist/core/model-tiers.js.map +1 -1
  130. package/dist/core/permissions.d.ts.map +1 -1
  131. package/dist/core/permissions.js +9 -0
  132. package/dist/core/permissions.js.map +1 -1
  133. package/dist/core/plan-mode.d.ts.map +1 -1
  134. package/dist/core/plan-mode.js +3 -0
  135. package/dist/core/plan-mode.js.map +1 -1
  136. package/dist/core/process-registry.d.ts.map +1 -1
  137. package/dist/core/process-registry.js +6 -4
  138. package/dist/core/process-registry.js.map +1 -1
  139. package/dist/core/runtime-scope.d.ts +11 -0
  140. package/dist/core/runtime-scope.d.ts.map +1 -0
  141. package/dist/core/runtime-scope.js +3 -0
  142. package/dist/core/runtime-scope.js.map +1 -0
  143. package/dist/core/sdk.d.ts.map +1 -1
  144. package/dist/core/sdk.js +13 -0
  145. package/dist/core/sdk.js.map +1 -1
  146. package/dist/core/session-handoff.d.ts +35 -0
  147. package/dist/core/session-handoff.d.ts.map +1 -0
  148. package/dist/core/session-handoff.js +214 -0
  149. package/dist/core/session-handoff.js.map +1 -0
  150. package/dist/core/session-manager.d.ts +20 -0
  151. package/dist/core/session-manager.d.ts.map +1 -1
  152. package/dist/core/session-manager.js +184 -22
  153. package/dist/core/session-manager.js.map +1 -1
  154. package/dist/core/session-ownership.d.ts +28 -0
  155. package/dist/core/session-ownership.d.ts.map +1 -0
  156. package/dist/core/session-ownership.js +138 -0
  157. package/dist/core/session-ownership.js.map +1 -0
  158. package/dist/core/session-retention.d.ts.map +1 -1
  159. package/dist/core/session-retention.js +11 -2
  160. package/dist/core/session-retention.js.map +1 -1
  161. package/dist/core/settings-manager.d.ts +7 -0
  162. package/dist/core/settings-manager.d.ts.map +1 -1
  163. package/dist/core/settings-manager.js +18 -0
  164. package/dist/core/settings-manager.js.map +1 -1
  165. package/dist/core/slash-commands.d.ts.map +1 -1
  166. package/dist/core/slash-commands.js +2 -0
  167. package/dist/core/slash-commands.js.map +1 -1
  168. package/dist/core/system-prompt.d.ts.map +1 -1
  169. package/dist/core/system-prompt.js +5 -2
  170. package/dist/core/system-prompt.js.map +1 -1
  171. package/dist/core/todo-settings.d.ts +5 -0
  172. package/dist/core/todo-settings.d.ts.map +1 -0
  173. package/dist/core/todo-settings.js +7 -0
  174. package/dist/core/todo-settings.js.map +1 -0
  175. package/dist/core/tools/bash.d.ts.map +1 -1
  176. package/dist/core/tools/bash.js +4 -4
  177. package/dist/core/tools/bash.js.map +1 -1
  178. package/dist/core/tools/edit.d.ts.map +1 -1
  179. package/dist/core/tools/edit.js +5 -3
  180. package/dist/core/tools/edit.js.map +1 -1
  181. package/dist/core/tools/find.d.ts.map +1 -1
  182. package/dist/core/tools/find.js +4 -4
  183. package/dist/core/tools/find.js.map +1 -1
  184. package/dist/core/tools/grep.d.ts.map +1 -1
  185. package/dist/core/tools/grep.js +4 -4
  186. package/dist/core/tools/grep.js.map +1 -1
  187. package/dist/core/tools/ls.d.ts.map +1 -1
  188. package/dist/core/tools/ls.js +4 -4
  189. package/dist/core/tools/ls.js.map +1 -1
  190. package/dist/core/tools/read.d.ts.map +1 -1
  191. package/dist/core/tools/read.js +4 -4
  192. package/dist/core/tools/read.js.map +1 -1
  193. package/dist/core/tools/render-utils.d.ts +11 -2
  194. package/dist/core/tools/render-utils.d.ts.map +1 -1
  195. package/dist/core/tools/render-utils.js +31 -4
  196. package/dist/core/tools/render-utils.js.map +1 -1
  197. package/dist/core/tools/write.d.ts.map +1 -1
  198. package/dist/core/tools/write.js +4 -4
  199. package/dist/core/tools/write.js.map +1 -1
  200. package/dist/core/usage-service.d.ts.map +1 -1
  201. package/dist/core/usage-service.js +5 -3
  202. package/dist/core/usage-service.js.map +1 -1
  203. package/dist/gateway/adapters/discord.d.ts +12 -1
  204. package/dist/gateway/adapters/discord.d.ts.map +1 -1
  205. package/dist/gateway/adapters/discord.js +112 -17
  206. package/dist/gateway/adapters/discord.js.map +1 -1
  207. package/dist/gateway/adapters/telegram.d.ts +4 -2
  208. package/dist/gateway/adapters/telegram.d.ts.map +1 -1
  209. package/dist/gateway/adapters/telegram.js +34 -11
  210. package/dist/gateway/adapters/telegram.js.map +1 -1
  211. package/dist/gateway/agent-bridge.d.ts +14 -3
  212. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  213. package/dist/gateway/agent-bridge.js +252 -60
  214. package/dist/gateway/agent-bridge.js.map +1 -1
  215. package/dist/gateway/approval.d.ts +1 -0
  216. package/dist/gateway/approval.d.ts.map +1 -1
  217. package/dist/gateway/approval.js +60 -18
  218. package/dist/gateway/approval.js.map +1 -1
  219. package/dist/gateway/authz.d.ts +2 -0
  220. package/dist/gateway/authz.d.ts.map +1 -1
  221. package/dist/gateway/authz.js +13 -0
  222. package/dist/gateway/authz.js.map +1 -1
  223. package/dist/gateway/buttons.d.ts +3 -1
  224. package/dist/gateway/buttons.d.ts.map +1 -1
  225. package/dist/gateway/buttons.js +18 -3
  226. package/dist/gateway/buttons.js.map +1 -1
  227. package/dist/gateway/command.d.ts.map +1 -1
  228. package/dist/gateway/command.js +49 -4
  229. package/dist/gateway/command.js.map +1 -1
  230. package/dist/gateway/commands.d.ts.map +1 -1
  231. package/dist/gateway/commands.js +18 -3
  232. package/dist/gateway/commands.js.map +1 -1
  233. package/dist/gateway/config.d.ts +5 -0
  234. package/dist/gateway/config.d.ts.map +1 -1
  235. package/dist/gateway/config.js +5 -0
  236. package/dist/gateway/config.js.map +1 -1
  237. package/dist/gateway/conversations.d.ts +14 -0
  238. package/dist/gateway/conversations.d.ts.map +1 -0
  239. package/dist/gateway/conversations.js +30 -0
  240. package/dist/gateway/conversations.js.map +1 -0
  241. package/dist/gateway/download.d.ts +2 -0
  242. package/dist/gateway/download.d.ts.map +1 -0
  243. package/dist/gateway/download.js +36 -0
  244. package/dist/gateway/download.js.map +1 -0
  245. package/dist/gateway/index.d.ts.map +1 -1
  246. package/dist/gateway/index.js +85 -26
  247. package/dist/gateway/index.js.map +1 -1
  248. package/dist/gateway/mobile-commands.d.ts +24 -0
  249. package/dist/gateway/mobile-commands.d.ts.map +1 -0
  250. package/dist/gateway/mobile-commands.js +422 -0
  251. package/dist/gateway/mobile-commands.js.map +1 -0
  252. package/dist/gateway/presenter.d.ts +16 -0
  253. package/dist/gateway/presenter.d.ts.map +1 -0
  254. package/dist/gateway/presenter.js +210 -0
  255. package/dist/gateway/presenter.js.map +1 -0
  256. package/dist/gateway/router.d.ts +1 -0
  257. package/dist/gateway/router.d.ts.map +1 -1
  258. package/dist/gateway/router.js +32 -3
  259. package/dist/gateway/router.js.map +1 -1
  260. package/dist/gateway/service.d.ts +46 -0
  261. package/dist/gateway/service.d.ts.map +1 -0
  262. package/dist/gateway/service.js +395 -0
  263. package/dist/gateway/service.js.map +1 -0
  264. package/dist/gateway/setup.d.ts +4 -0
  265. package/dist/gateway/setup.d.ts.map +1 -0
  266. package/dist/gateway/setup.js +146 -0
  267. package/dist/gateway/setup.js.map +1 -0
  268. package/dist/gateway/types.d.ts +4 -2
  269. package/dist/gateway/types.d.ts.map +1 -1
  270. package/dist/gateway/types.js.map +1 -1
  271. package/dist/index.d.ts +2 -0
  272. package/dist/index.d.ts.map +1 -1
  273. package/dist/index.js +2 -0
  274. package/dist/index.js.map +1 -1
  275. package/dist/main.d.ts.map +1 -1
  276. package/dist/main.js +2 -1
  277. package/dist/main.js.map +1 -1
  278. package/dist/modes/interactive/components/assistant-message.d.ts +11 -2
  279. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  280. package/dist/modes/interactive/components/assistant-message.js +53 -16
  281. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  282. package/dist/modes/interactive/components/copyable-text.d.ts +31 -0
  283. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -0
  284. package/dist/modes/interactive/components/copyable-text.js +165 -0
  285. package/dist/modes/interactive/components/copyable-text.js.map +1 -0
  286. package/dist/modes/interactive/components/custom-entry.d.ts +1 -0
  287. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  288. package/dist/modes/interactive/components/custom-entry.js +8 -0
  289. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  290. package/dist/modes/interactive/components/custom-message.d.ts +1 -0
  291. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  292. package/dist/modes/interactive/components/custom-message.js +8 -0
  293. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  294. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  295. package/dist/modes/interactive/components/session-selector.js +16 -0
  296. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  297. package/dist/modes/interactive/components/settings-selector.d.ts +5 -0
  298. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  299. package/dist/modes/interactive/components/settings-selector.js +38 -0
  300. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  301. package/dist/modes/interactive/interactive-mode.d.ts +3 -0
  302. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  303. package/dist/modes/interactive/interactive-mode.js +151 -7
  304. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  305. package/dist/node-runtime/agent-session-services-NQ6GKOIK.js +49 -0
  306. package/dist/node-runtime/{builtin-extensions-JCOPAAB5.js → builtin-extensions-GVC6IFDU.js} +6 -5
  307. package/dist/node-runtime/{chunk-LTYWTR3V.js → chunk-2MI5OPMN.js} +17 -2
  308. package/dist/node-runtime/{chunk-W3CVH5RX.js → chunk-2TKODGBZ.js} +11 -6
  309. package/dist/node-runtime/chunk-4EULYYR4.js +62 -0
  310. package/dist/node-runtime/chunk-5BNJ4JUH.js +672 -0
  311. package/dist/node-runtime/{chunk-6N22HULO.js → chunk-5D7LC2ZQ.js} +7 -2
  312. package/dist/node-runtime/{chunk-KBKMCJDU.js → chunk-5ZQXRPMC.js} +19 -4
  313. package/dist/node-runtime/{chunk-6KDIOJL3.js → chunk-6427XAWG.js} +3 -3
  314. package/dist/node-runtime/{chunk-BOHIDQT4.js → chunk-6B2POMK7.js} +1 -1
  315. package/dist/node-runtime/{chunk-RNBHABBA.js → chunk-7QWNYZDI.js} +7 -0
  316. package/dist/node-runtime/chunk-AZJHNQKQ.js +205 -0
  317. package/dist/node-runtime/{chunk-A3KMVBZV.js → chunk-BBUVIEZB.js} +1 -10
  318. package/dist/node-runtime/chunk-BFNXONG3.js +521 -0
  319. package/dist/node-runtime/{chunk-IRPJXI6U.js → chunk-BX2RB477.js} +1 -1
  320. package/dist/node-runtime/chunk-CCCN2UCX.js +14 -0
  321. package/dist/node-runtime/{chunk-25I2BHAA.js → chunk-CSUZVNYE.js} +1 -1
  322. package/dist/node-runtime/{chunk-QZMODZQ2.js → chunk-E24EO34J.js} +2 -1
  323. package/dist/node-runtime/{chunk-2BUAYZ7K.js → chunk-EQ63ANHL.js} +422 -123
  324. package/dist/node-runtime/{chunk-GB2MGFLI.js → chunk-GJSAD4AB.js} +216 -201
  325. package/dist/node-runtime/{chunk-W3SILANP.js → chunk-GMHJCCEN.js} +8 -8
  326. package/dist/node-runtime/{chunk-DDWHZ633.js → chunk-GNN7H3B7.js} +1 -1
  327. package/dist/node-runtime/chunk-GS66LV4M.js +2830 -0
  328. package/dist/node-runtime/{chunk-6BEIBLQ3.js → chunk-H3XF4UVQ.js} +1 -1
  329. package/dist/node-runtime/chunk-H4K3JDRB.js +47 -0
  330. package/dist/node-runtime/{chunk-YMEAYRBE.js → chunk-HTFRRDSF.js} +2 -7
  331. package/dist/node-runtime/chunk-IMLCWLPI.js +9 -0
  332. package/dist/node-runtime/{chunk-Y5KOEMBH.js → chunk-IQIEU7SB.js} +9 -674
  333. package/dist/node-runtime/{chunk-OPEK5RRY.js → chunk-IVXYUAJE.js} +1 -1
  334. package/dist/node-runtime/{chunk-PDNXVXMD.js → chunk-IWOWXRWU.js} +58 -48
  335. package/dist/node-runtime/chunk-KKUTQQV7.js +144 -0
  336. package/dist/node-runtime/{chunk-AWVD5IEY.js → chunk-LMBNLFXQ.js} +23 -12
  337. package/dist/node-runtime/{chunk-7NBZ5P7I.js → chunk-NAY6UUQZ.js} +1 -1
  338. package/dist/node-runtime/chunk-OAR4TYZE.js +146 -0
  339. package/dist/node-runtime/{chunk-STERBGUB.js → chunk-OFKSVRV7.js} +2 -2
  340. package/dist/node-runtime/{chunk-JZQ7F36T.js → chunk-ORH324EP.js} +19 -3
  341. package/dist/node-runtime/{chunk-2SJB2AWP.js → chunk-PC2Z5TKZ.js} +3 -3
  342. package/dist/node-runtime/{chunk-SY2TFMLO.js → chunk-QDGKKKUM.js} +46 -151
  343. package/dist/node-runtime/chunk-R3K2F5GI.js +122 -0
  344. package/dist/node-runtime/chunk-RMQZU2YU.js +117 -0
  345. package/dist/node-runtime/{chunk-XI77KVKA.js → chunk-TDL7UWJ7.js} +283 -2999
  346. package/dist/node-runtime/{chunk-G6LRAP36.js → chunk-TQGPP4SC.js} +1 -1
  347. package/dist/node-runtime/chunk-UAEOTO52.js +119 -0
  348. package/dist/node-runtime/{chunk-VZR3NCM7.js → chunk-UAFLNHSH.js} +18 -14
  349. package/dist/node-runtime/{chunk-AY6CAJSL.js → chunk-UJOCPOMX.js} +6 -3
  350. package/dist/node-runtime/chunk-UP2XBVH5.js +40 -0
  351. package/dist/node-runtime/{chunk-WJVFOIB5.js → chunk-UQUCFAJ3.js} +1 -1
  352. package/dist/node-runtime/chunk-URD2SLIT.js +1019 -0
  353. package/dist/node-runtime/chunk-US544NN6.js +13 -0
  354. package/dist/node-runtime/chunk-UWPJL22I.js +341 -0
  355. package/dist/node-runtime/chunk-V2A7CEXK.js +355 -0
  356. package/dist/node-runtime/chunk-VJPTNWAP.js +708 -0
  357. package/dist/node-runtime/{chunk-WKDK4C5P.js → chunk-VSSXXL36.js} +38 -164
  358. package/dist/node-runtime/{chunk-4I23VTC4.js → chunk-VWCE2HSZ.js} +21 -124
  359. package/dist/node-runtime/{chunk-WLLDXJRT.js → chunk-WADV2VDS.js} +22 -1014
  360. package/dist/node-runtime/{chunk-GKLEQ3I4.js → chunk-XLTL257W.js} +126 -27
  361. package/dist/node-runtime/chunk-YPHAIRZT.js +10 -0
  362. package/dist/node-runtime/cli-runtime.js +2 -2
  363. package/dist/node-runtime/command-3JHHXOPX.js +45 -0
  364. package/dist/node-runtime/commands-2JVNFGMQ.js +36 -0
  365. package/dist/node-runtime/{commands-MV5KOZ64.js → commands-KAMO2T6P.js} +10 -10
  366. package/dist/node-runtime/config-RORQUQFG.js +20 -0
  367. package/dist/node-runtime/{customize-LF5VST47.js → customize-VFJV3U6A.js} +2 -1
  368. package/dist/node-runtime/{direct-tool-executor-BK7CLEBX.js → direct-tool-executor-YAVOLDFY.js} +8 -8
  369. package/dist/node-runtime/{export-html-TEXVV5RP.js → export-html-KBFVV63J.js} +4 -3
  370. package/dist/node-runtime/{extension-input-O4HSAEM4.js → extension-input-K24TVKVW.js} +4 -4
  371. package/dist/node-runtime/{extension-selector-X5FCX43D.js → extension-selector-SPNF7EDR.js} +4 -4
  372. package/dist/node-runtime/{extract-XLQSJN4V.js → extract-EQJE7FZZ.js} +2 -2
  373. package/dist/node-runtime/{gateway-BM6NLOH4.js → gateway-VFO6SFKK.js} +275 -994
  374. package/dist/node-runtime/{gemini-search-U7SUMPQA.js → gemini-search-35OCRFLN.js} +1 -1
  375. package/dist/node-runtime/{gemini-url-context-PXWCBQHK.js → gemini-url-context-UQY3PHHW.js} +2 -2
  376. package/dist/node-runtime/index.js +104 -65
  377. package/dist/node-runtime/{init-3C7Z24OI.js → init-X2LIUB2H.js} +3 -3
  378. package/dist/node-runtime/{install-cli-EXMJQESX.js → install-cli-C3CF7O7N.js} +21 -82
  379. package/dist/node-runtime/interactive-mode-LOM6AIF6.js +72 -0
  380. package/dist/node-runtime/{interactive-view-ILS6TAN5.js → interactive-view-IDSCPPK7.js} +8 -8
  381. package/dist/node-runtime/lunr-browser-YNW7FTYX.js +87 -0
  382. package/dist/node-runtime/{lunr-cron-4VHP4E4B.js → lunr-cron-BKHGNBKT.js} +19 -5
  383. package/dist/node-runtime/main.js +44 -31
  384. package/dist/node-runtime/{memory-cap-3S4XRLNP.js → memory-cap-EL3KL4JJ.js} +2 -1
  385. package/dist/node-runtime/mobile-commands-HMP25WBC.js +32 -0
  386. package/dist/node-runtime/model-runtime-PLQKAG4B.js +16 -0
  387. package/dist/node-runtime/{model-tiers-NJLHUEGK.js → model-tiers-OU3U5CZG.js} +2 -1
  388. package/dist/node-runtime/{package-manager-cli-N37546V5.js → package-manager-cli-VCK4E2RC.js} +22 -15
  389. package/dist/node-runtime/{pi-intercom-NV2LW6X7.js → pi-intercom-HBPK5HSJ.js} +4 -1
  390. package/dist/node-runtime/{pi-mcp-adapter-GUFZWW54.js → pi-mcp-adapter-E6WULBKF.js} +4 -4
  391. package/dist/node-runtime/{pi-subagents-6MUIFNDM.js → pi-subagents-FEUDLJOE.js} +201 -78
  392. package/dist/node-runtime/{pi-web-access-2CQGFLT2.js → pi-web-access-WTGMNZ32.js} +15 -15
  393. package/dist/node-runtime/process-registry-4FAKZQOL.js +31 -0
  394. package/dist/node-runtime/{proxy-modes-V6YVFH3C.js → proxy-modes-OSQCWRBI.js} +9 -9
  395. package/dist/node-runtime/rpc-entry.js +44 -31
  396. package/dist/node-runtime/{rpc-mode-W5ZTLTMZ.js → rpc-mode-P5ODXPEG.js} +2 -2
  397. package/dist/node-runtime/runtime-4VA6JKNF.js +373 -0
  398. package/dist/node-runtime/{runtime-bridges-2VQTLPOZ.js → runtime-bridges-3XUQ46XW.js} +6 -5
  399. package/dist/node-runtime/service-ISSP6VHE.js +36 -0
  400. package/dist/node-runtime/session-handoff-HC7R5E24.js +33 -0
  401. package/dist/node-runtime/{session-manager-E7AREDTV.js → session-manager-CFN4UFM2.js} +2 -1
  402. package/dist/node-runtime/{session-selector-FJ7M2AIX.js → session-selector-LHRMJOKT.js} +5 -4
  403. package/dist/node-runtime/{settings-manager-CUGAZWAB.js → settings-manager-UUZ6NUXI.js} +7 -2
  404. package/dist/node-runtime/setup-JBKOLJ6F.js +18 -0
  405. package/dist/node-runtime/setup-NRXVZBLJ.js +155 -0
  406. package/dist/node-runtime/{subagent-executor-MH4A7CCF.js → subagent-executor-MLUMBWCP.js} +22 -18
  407. package/dist/node-runtime/theme-U7IGOA7O.js +68 -0
  408. package/dist/node-runtime/trust-manager-MMISNCYO.js +17 -0
  409. package/dist/node-runtime/{update-cli-XTZMZGOL.js → update-cli-4TP25CNW.js} +7 -2
  410. package/dist/node-runtime/usage-service-LFB2SWYV.js +37 -0
  411. package/dist/node-runtime/{video-extract-OYT5WKS5.js → video-extract-OOZHR7SU.js} +2 -2
  412. package/dist/node-runtime/{youtube-extract-TQYKGFGS.js → youtube-extract-FNPAUNHU.js} +6 -6
  413. package/docs/browser.md +86 -0
  414. package/docs/extensions.md +2 -0
  415. package/docs/features.md +94 -16
  416. package/docs/interactive-startup.md +2 -1
  417. package/docs/sessions.md +10 -0
  418. package/docs/settings.md +1 -0
  419. package/docs/tui.md +2 -0
  420. package/docs/usage.md +16 -0
  421. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  422. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  423. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  424. package/examples/extensions/gondolin/package-lock.json +2 -2
  425. package/examples/extensions/gondolin/package.json +1 -1
  426. package/examples/extensions/sandbox/package-lock.json +2 -2
  427. package/examples/extensions/sandbox/package.json +1 -1
  428. package/examples/extensions/with-deps/package-lock.json +2 -2
  429. package/examples/extensions/with-deps/package.json +1 -1
  430. package/package.json +7 -4
  431. package/scripts/install-browser.mjs +20 -0
  432. package/dist/node-runtime/agent-session-services-C743TYQE.js +0 -37
  433. package/dist/node-runtime/chunk-VGYZ3APQ.js +0 -59
  434. package/dist/node-runtime/command-P4NYCJ2M.js +0 -13
  435. package/dist/node-runtime/interactive-mode-EVVBA64D.js +0 -59
  436. package/dist/node-runtime/{chunk-UWQYRSYQ.js → chunk-YJMMG7C6.js} +25 -25
  437. package/dist/node-runtime/{mcp-panel-IIGMXQGP.js → mcp-panel-KTTFXJZ4.js} +3 -3
  438. package/dist/node-runtime/{src-BPQFJR76.js → src-IVPNZ2BX.js} +9 -9
@@ -0,0 +1,36 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ atomicJson,
4
+ claimGateway,
5
+ configureStartup,
6
+ gatewayIsRunning,
7
+ gatewayLogPath,
8
+ loadServiceSettings,
9
+ processExists,
10
+ readGatewayLog,
11
+ readGatewayStatus,
12
+ serviceDirectory,
13
+ serviceStatusText,
14
+ startGatewayService,
15
+ startupSpec,
16
+ stopGatewayService
17
+ } from "./chunk-UWPJL22I.js";
18
+ import "./chunk-FQMM2EZ2.js";
19
+ import "./chunk-Q4Q6D4IY.js";
20
+ import "./chunk-BRJX2PRC.js";
21
+ export {
22
+ atomicJson,
23
+ claimGateway,
24
+ configureStartup,
25
+ gatewayIsRunning,
26
+ gatewayLogPath,
27
+ loadServiceSettings,
28
+ processExists,
29
+ readGatewayLog,
30
+ readGatewayStatus,
31
+ serviceDirectory,
32
+ serviceStatusText,
33
+ startGatewayService,
34
+ startupSpec,
35
+ stopGatewayService
36
+ };
@@ -0,0 +1,33 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ HANDOFF_DURATION_MS,
4
+ SessionTransferError,
5
+ cancelSessionHandoff,
6
+ latestTuiSession,
7
+ listHandoffCandidates,
8
+ listRegisteredSessionPaths,
9
+ listRegisteredSessions,
10
+ markSessionHandoff,
11
+ recordTuiActivity,
12
+ registerTransferHandler,
13
+ requestSessionTransfer
14
+ } from "./chunk-AZJHNQKQ.js";
15
+ import "./chunk-XLTL257W.js";
16
+ import "./chunk-FVDOXRUD.js";
17
+ import "./chunk-UAEOTO52.js";
18
+ import "./chunk-FQMM2EZ2.js";
19
+ import "./chunk-Q4Q6D4IY.js";
20
+ import "./chunk-BRJX2PRC.js";
21
+ export {
22
+ HANDOFF_DURATION_MS,
23
+ SessionTransferError,
24
+ cancelSessionHandoff,
25
+ latestTuiSession,
26
+ listHandoffCandidates,
27
+ listRegisteredSessionPaths,
28
+ listRegisteredSessions,
29
+ markSessionHandoff,
30
+ recordTuiActivity,
31
+ registerTransferHandler,
32
+ requestSessionTransfer
33
+ };
@@ -12,8 +12,9 @@ import {
12
12
  migrateSessionEntries,
13
13
  parseSessionEntries,
14
14
  sessionEntryToContextMessages
15
- } from "./chunk-GKLEQ3I4.js";
15
+ } from "./chunk-XLTL257W.js";
16
16
  import "./chunk-FVDOXRUD.js";
17
+ import "./chunk-UAEOTO52.js";
17
18
  import "./chunk-FQMM2EZ2.js";
18
19
  import "./chunk-Q4Q6D4IY.js";
19
20
  import "./chunk-BRJX2PRC.js";
@@ -1,11 +1,12 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  SessionSelectorComponent
4
- } from "./chunk-JZQ7F36T.js";
4
+ } from "./chunk-ORH324EP.js";
5
+ import "./chunk-UAEOTO52.js";
5
6
  import "./chunk-5EFIU3OM.js";
6
- import "./chunk-BOHIDQT4.js";
7
- import "./chunk-DDWHZ633.js";
8
- import "./chunk-RNBHABBA.js";
7
+ import "./chunk-6B2POMK7.js";
8
+ import "./chunk-GNN7H3B7.js";
9
+ import "./chunk-7QWNYZDI.js";
9
10
  import "./chunk-FQMM2EZ2.js";
10
11
  import "./chunk-Q4Q6D4IY.js";
11
12
  import "./chunk-BRJX2PRC.js";
@@ -6,9 +6,14 @@ import {
6
6
  SKILL_TAG_CHARACTERS,
7
7
  SettingsManager,
8
8
  parseSkillTagCharacter
9
- } from "./chunk-WLLDXJRT.js";
9
+ } from "./chunk-WADV2VDS.js";
10
+ import "./chunk-UP2XBVH5.js";
11
+ import "./chunk-VWCE2HSZ.js";
10
12
  import "./chunk-LISUTZS3.js";
11
- import "./chunk-AY6CAJSL.js";
13
+ import "./chunk-URD2SLIT.js";
14
+ import "./chunk-UJOCPOMX.js";
15
+ import "./chunk-IMLCWLPI.js";
16
+ import "./chunk-R3K2F5GI.js";
12
17
  import "./chunk-FQMM2EZ2.js";
13
18
  import "./chunk-Q4Q6D4IY.js";
14
19
  import "./chunk-BRJX2PRC.js";
@@ -0,0 +1,18 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import "./chunk-BRJX2PRC.js";
3
+
4
+ // packages/coding-agent/dist/core/browser/setup.js
5
+ import { spawn } from "node:child_process";
6
+ import { fileURLToPath } from "node:url";
7
+ async function installBrowser(explicit = !0) {
8
+ let script = fileURLToPath(new URL("../../../scripts/install-browser.mjs", new URL("../core/browser/setup.js", import.meta.url).href));
9
+ await new Promise((resolve, reject) => {
10
+ let child = spawn(process.execPath, [script, ...explicit ? ["--explicit"] : []], { stdio: "inherit", windowsHide: !0 });
11
+ child.once("error", reject), child.once("exit", (code) => {
12
+ code === 0 ? resolve() : reject(new Error(`Chromium setup failed (${code}). Retry lunr browser install when online.`));
13
+ });
14
+ });
15
+ }
16
+ export {
17
+ installBrowser
18
+ };
@@ -0,0 +1,155 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ readSecret
4
+ } from "./chunk-H4K3JDRB.js";
5
+ import {
6
+ createPairingStore
7
+ } from "./chunk-RMQZU2YU.js";
8
+ import {
9
+ configureStartup,
10
+ loadServiceSettings,
11
+ startGatewayService
12
+ } from "./chunk-UWPJL22I.js";
13
+ import {
14
+ loadInstallFeatures,
15
+ saveInstallFeatures
16
+ } from "./chunk-VWCE2HSZ.js";
17
+ import {
18
+ loadGatewayConfig,
19
+ saveGatewayConfig
20
+ } from "./chunk-R3K2F5GI.js";
21
+ import "./chunk-FQMM2EZ2.js";
22
+ import "./chunk-Q4Q6D4IY.js";
23
+ import "./chunk-BRJX2PRC.js";
24
+
25
+ // packages/coding-agent/dist/gateway/setup.js
26
+ import { existsSync, realpathSync, statSync } from "node:fs";
27
+ import { resolve } from "node:path";
28
+ import { createInterface } from "node:readline/promises";
29
+ async function validateBotToken(platform, token) {
30
+ let url = platform === "telegram" ? `https://api.telegram.org/bot${token}/getMe` : "https://discord.com/api/v10/users/@me", response;
31
+ try {
32
+ response = await fetch(url, {
33
+ headers: platform === "discord" ? { Authorization: `Bot ${token}` } : {},
34
+ signal: AbortSignal.timeout(15e3)
35
+ });
36
+ } catch {
37
+ throw new Error(`${platform}: could not reach the bot API. Check your connection and try again.`);
38
+ }
39
+ if (!response.ok)
40
+ throw new Error(`${platform}: token check failed with HTTP ${response.status}. Check the token and bot permissions.`);
41
+ let value = await response.json();
42
+ if (!value || typeof value != "object")
43
+ throw new Error(`${platform}: unexpected bot API response.`);
44
+ let user = platform === "telegram" && "result" in value ? value.result : value;
45
+ if (!user || typeof user != "object" || !("id" in user))
46
+ throw new Error(`${platform}: bot identity was missing.`);
47
+ return "username" in user && typeof user.username == "string" ? user.username : String(user.id);
48
+ }
49
+ async function setupGateway() {
50
+ if (!process.stdin.isTTY || !process.stdout.isTTY)
51
+ throw new Error("Run lunr gateway setup in a terminal. Bot tokens are entered privately, not as command arguments.");
52
+ let rl = createInterface({ input: process.stdin, output: process.stdout }), ask = async (question, fallback = "") => (await rl.question(`${question}${fallback ? ` [${fallback}]` : ""}: `)).trim() || fallback, cfg = loadGatewayConfig();
53
+ try {
54
+ console.log(`Set up lunR on your phone
55
+ Your computer must stay awake and connected to the internet. Press Ctrl+C to cancel.
56
+ `);
57
+ let choice = (await ask("Connect telegram, discord, or both", cfg.discord.enabled ? cfg.telegram.enabled ? "both" : "discord" : "telegram")).toLowerCase();
58
+ if (!["telegram", "discord", "both"].includes(choice))
59
+ throw new Error("Choose telegram, discord, or both.");
60
+ for (let platform of ["telegram", "discord"]) {
61
+ if (choice !== platform && choice !== "both")
62
+ continue;
63
+ console.log(platform === "telegram" ? `
64
+ Telegram
65
+ 1. Open https://t.me/BotFather and send /newbot.
66
+ 2. Follow its prompts and copy the bot token.
67
+ 3. Open your new bot and send /whoami. After startup it will show your user ID and pairing code.
68
+ Guide: https://core.telegram.org/bots/tutorial` : `
69
+ Discord
70
+ 1. Open https://discord.com/developers/applications and create an application.
71
+ 2. Open Bot, create or reset its token, and enable Message Content Intent for ordinary chat.
72
+ 3. Under Installation, add bot and applications.commands scopes. Grant View Channels, Send Messages, Read Message History, Attach Files, and thread permissions if needed.
73
+ 4. Use the install link to add your bot. In Discord, enable Developer Mode and copy your user ID.
74
+ Guide: https://docs.discord.com/developers/quick-start/getting-started`);
75
+ let token = cfg[platform].token;
76
+ if (!token || await ask("Replace the saved token? yes/no", "no") === "yes") {
77
+ rl.close();
78
+ try {
79
+ token = (await readSecret(`${platform} bot token`))?.trim();
80
+ } finally {
81
+ rl = createInterface({ input: process.stdin, output: process.stdout });
82
+ }
83
+ }
84
+ if (!token)
85
+ throw new Error("No token entered. Existing configuration was not changed.");
86
+ console.log(`Connected bot: ${await validateBotToken(platform, token)}`), cfg[platform].token = token, cfg[platform].enabled = !0, cfg.owners ??= { telegram: [], discord: [] };
87
+ let owner = await ask(`Your ${platform} user ID, or leave empty to pair after startup`, cfg.owners[platform][0] ?? "");
88
+ if (owner && !/^\d+$/.test(owner))
89
+ throw new Error("User IDs contain digits only.");
90
+ owner && (cfg.owners[platform] = [.../* @__PURE__ */ new Set([...cfg.owners[platform], owner])], cfg[platform].allowedUsers = [.../* @__PURE__ */ new Set([...cfg[platform].allowedUsers, owner])]);
91
+ }
92
+ let root = await ask("Project folder you want to browse from your phone", cfg.projectRoots?.[0] ?? process.cwd()), path = resolve(root);
93
+ if (!existsSync(path) || !statSync(path).isDirectory())
94
+ throw new Error("That project folder does not exist.");
95
+ cfg.projectRoots = [.../* @__PURE__ */ new Set([...cfg.projectRoots ?? [], realpathSync(path)])];
96
+ let startup = await ask("Automatic startup: off, login, or boot", "off");
97
+ if (!["off", "login", "boot"].includes(startup))
98
+ throw new Error("Choose off, login, or boot.");
99
+ startup === "boot" && console.log("Boot startup may require administrator permission or OS-managed account credentials. lunR does not save your account password.");
100
+ let [{ ModelRuntime }, { SettingsManager }] = await Promise.all([
101
+ import("./model-runtime-PLQKAG4B.js"),
102
+ import("./settings-manager-UUZ6NUXI.js")
103
+ ]), models = await (await ModelRuntime.create({ allowModelNetwork: !1 })).getAvailable();
104
+ if (!models.length)
105
+ throw new Error("No saved model credentials found. Open lunr locally and use /login, then rerun gateway setup. Nothing saved.");
106
+ let settings = SettingsManager.create(process.cwd()), providers = [...new Set(models.map((model2) => model2.provider))];
107
+ console.log(`Saved providers: ${providers.join(", ")}`);
108
+ let provider = await ask("Model provider", settings.getDefaultProvider() ?? providers[0]), choices = models.filter((model2) => model2.provider === provider);
109
+ if (!choices.length)
110
+ throw new Error("Choose one of the saved providers. Nothing saved.");
111
+ console.log(choices.map((model2, index) => `${index + 1}. ${model2.id}`).join(`
112
+ `));
113
+ let selected = await ask("Model number or ID", choices.find((model2) => model2.id === settings.getDefaultModel())?.id ?? choices[0].id), model = choices.find((model2) => model2.id === selected) ?? choices[Number(selected) - 1];
114
+ if (!model)
115
+ throw new Error("Choose a model from the list. Nothing saved.");
116
+ if (await ask("Save these settings? yes/no", "yes") !== "yes") {
117
+ console.log("Cancelled. Nothing saved.");
118
+ return;
119
+ }
120
+ saveGatewayConfig(cfg), settings.setDefaultModelAndProvider(model.provider, model.id);
121
+ let features = loadInstallFeatures();
122
+ features.features["chat-platforms"] = {
123
+ enabled: !0,
124
+ options: {
125
+ ...features.features["chat-platforms"]?.options,
126
+ autostart: loadServiceSettings().startup !== "off"
127
+ }
128
+ }, saveInstallFeatures(features);
129
+ try {
130
+ await configureStartup(startup);
131
+ } finally {
132
+ features.features["chat-platforms"].options.autostart = loadServiceSettings().startup !== "off", saveInstallFeatures(features);
133
+ }
134
+ await ask("Start the gateway now? yes/no", "yes") === "yes" && console.log(await startGatewayService()), console.log(`
135
+ Send /whoami to your bot. To approve your own pairing code with access to projects and TUI sessions, run:
136
+ lunr gateway pair approve <telegram|discord> <code> --owner
137
+ Then use /project, /sessions, or /continue on your phone.`);
138
+ } finally {
139
+ rl.close();
140
+ }
141
+ }
142
+ function approveGatewayOwner(platform, code) {
143
+ if (platform !== "telegram" && platform !== "discord")
144
+ throw new Error("Choose telegram or discord.");
145
+ let user = createPairingStore().approve(platform, code);
146
+ if (!user)
147
+ throw new Error("Pairing code is invalid or expired.");
148
+ let cfg = loadGatewayConfig();
149
+ return cfg.owners ??= { telegram: [], discord: [] }, cfg.owners[platform] = [.../* @__PURE__ */ new Set([...cfg.owners[platform], user])], cfg[platform].allowedUsers = [.../* @__PURE__ */ new Set([...cfg[platform].allowedUsers, user])], saveGatewayConfig(cfg), `Approved ${platform} owner ${user}. Owner access includes local projects and TUI session history.`;
150
+ }
151
+ export {
152
+ approveGatewayOwner,
153
+ setupGateway,
154
+ validateBotToken
155
+ };
@@ -3,7 +3,6 @@ import {
3
3
  ASYNC_DIR,
4
4
  CHAIN_RUNS_DIR,
5
5
  DEFAULT_ARTIFACT_CONFIG,
6
- DEFAULT_CONTROL_CONFIG,
7
6
  DEFAULT_FORK_PREAMBLE,
8
7
  DEFAULT_GLOBAL_CONCURRENCY_LIMIT,
9
8
  DEFAULT_MAX_OUTPUT,
@@ -34,7 +33,6 @@ import {
34
33
  attachRootChildrenToSteps,
35
34
  buildChainInstructions,
36
35
  buildChainSummary,
37
- buildControlEvent,
38
36
  buildModelCandidates,
39
37
  buildPiArgs,
40
38
  buildRevivedAsyncTask,
@@ -46,7 +44,6 @@ import {
46
44
  checkSubagentDepth,
47
45
  childRowLabel,
48
46
  childWatchdogIsActive,
49
- claimControlNotification,
50
47
  cleanupTempDir,
51
48
  clearPendingForegroundControlNotices,
52
49
  compactForegroundDetails,
@@ -59,7 +56,6 @@ import {
59
56
  deliverStopRequest,
60
57
  deliverSubagentIntercomMessageEvent,
61
58
  deliverSubagentResultIntercomEvent,
62
- deriveActivityState,
63
59
  detectSubagentError,
64
60
  diagnoseIntercomBridge,
65
61
  discoverAvailableSkills,
@@ -79,8 +75,6 @@ import {
79
75
  formatAsyncRunOutputPath,
80
76
  formatAsyncRunProgressLabel,
81
77
  formatAsyncRunTranscript,
82
- formatControlIntercomMessage,
83
- formatControlNoticeMessage,
84
78
  formatModelAttemptNote,
85
79
  formatModelSelection,
86
80
  formatNestedRunStatusLines,
@@ -130,7 +124,6 @@ import {
130
124
  resolveChildExcludeTools,
131
125
  resolveChildMaxSubagentDepth,
132
126
  resolveChildWatchdogConfig,
133
- resolveControlConfig,
134
127
  resolveCurrentMaxSubagentDepth,
135
128
  resolveCurrentSessionId,
136
129
  resolveEffectiveAcceptance,
@@ -158,7 +151,6 @@ import {
158
151
  resolveWatchdogModelInput,
159
152
  restorePersistedAcceptance,
160
153
  shouldAbortForTurnBudget,
161
- shouldNotifyControlEvent,
162
154
  splitKnownThinkingSuffix,
163
155
  splitThinkingSuffix,
164
156
  stripAcceptanceReport,
@@ -187,26 +179,38 @@ import {
187
179
  writeNestedControlRequest,
188
180
  writeNestedEvent,
189
181
  writePrivateAtomicJson
190
- } from "./chunk-SY2TFMLO.js";
182
+ } from "./chunk-QDGKKKUM.js";
183
+ import {
184
+ DEFAULT_CONTROL_CONFIG,
185
+ buildControlEvent,
186
+ claimControlNotification,
187
+ deriveActivityState,
188
+ formatControlIntercomMessage,
189
+ formatControlNoticeMessage,
190
+ resolveControlConfig,
191
+ shouldNotifyControlEvent
192
+ } from "./chunk-OAR4TYZE.js";
191
193
  import {
192
194
  PLAN_MODE_WRITE_SPAWN_ERROR,
193
195
  resolveChildPermissions,
194
196
  snapshotParentPermissionMode
195
- } from "./chunk-25I2BHAA.js";
196
- import "./chunk-WKDK4C5P.js";
197
+ } from "./chunk-CSUZVNYE.js";
198
+ import "./chunk-VSSXXL36.js";
197
199
  import "./chunk-53YJI7JU.js";
198
- import "./chunk-KBKMCJDU.js";
200
+ import "./chunk-5ZQXRPMC.js";
201
+ import "./chunk-AD6VXAO7.js";
202
+ import "./chunk-5D7LC2ZQ.js";
203
+ import "./chunk-M3LZLQW2.js";
204
+ import "./chunk-KKUTQQV7.js";
199
205
  import "./chunk-CSFI6YXL.js";
200
206
  import {
201
207
  SessionManager
202
- } from "./chunk-GKLEQ3I4.js";
208
+ } from "./chunk-XLTL257W.js";
203
209
  import "./chunk-FVDOXRUD.js";
204
- import "./chunk-AD6VXAO7.js";
205
- import "./chunk-6N22HULO.js";
206
- import "./chunk-M3LZLQW2.js";
210
+ import "./chunk-UAEOTO52.js";
207
211
  import "./chunk-RQ2Q5IYR.js";
208
- import "./chunk-DDWHZ633.js";
209
- import "./chunk-RNBHABBA.js";
212
+ import "./chunk-GNN7H3B7.js";
213
+ import "./chunk-7QWNYZDI.js";
210
214
  import "./chunk-FQMM2EZ2.js";
211
215
  import "./chunk-Q4Q6D4IY.js";
212
216
  import "./chunk-BRJX2PRC.js";
@@ -0,0 +1,68 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ DEFAULT_THEME_GLYPHS,
4
+ Theme,
5
+ detectTerminalBackgroundFromEnv,
6
+ detectTerminalBackgroundTheme,
7
+ detectTerminalThemeForAuto,
8
+ getAvailableThemes,
9
+ getAvailableThemesWithPaths,
10
+ getDefaultTheme,
11
+ getEditorTheme,
12
+ getLanguageFromPath,
13
+ getMarkdownTheme,
14
+ getResolvedThemeColors,
15
+ getSelectListTheme,
16
+ getSettingsListTheme,
17
+ getThemeByName,
18
+ getThemeExportColors,
19
+ getThemeForRgbColor,
20
+ getThemeName,
21
+ highlightCode,
22
+ initTheme,
23
+ isLightTheme,
24
+ loadThemeFromPath,
25
+ onThemeChange,
26
+ parseAutoThemeSetting,
27
+ resolveThemeSetting,
28
+ setRegisteredThemes,
29
+ setTheme,
30
+ setThemeInstance,
31
+ stopThemeWatcher,
32
+ theme
33
+ } from "./chunk-7QWNYZDI.js";
34
+ import "./chunk-FQMM2EZ2.js";
35
+ import "./chunk-Q4Q6D4IY.js";
36
+ import "./chunk-BRJX2PRC.js";
37
+ export {
38
+ DEFAULT_THEME_GLYPHS,
39
+ Theme,
40
+ detectTerminalBackgroundFromEnv,
41
+ detectTerminalBackgroundTheme,
42
+ detectTerminalThemeForAuto,
43
+ getAvailableThemes,
44
+ getAvailableThemesWithPaths,
45
+ getDefaultTheme,
46
+ getEditorTheme,
47
+ getLanguageFromPath,
48
+ getMarkdownTheme,
49
+ getResolvedThemeColors,
50
+ getSelectListTheme,
51
+ getSettingsListTheme,
52
+ getThemeByName,
53
+ getThemeExportColors,
54
+ getThemeForRgbColor,
55
+ getThemeName,
56
+ highlightCode,
57
+ initTheme,
58
+ isLightTheme,
59
+ loadThemeFromPath,
60
+ onThemeChange,
61
+ parseAutoThemeSetting,
62
+ resolveThemeSetting,
63
+ setRegisteredThemes,
64
+ setTheme,
65
+ setThemeInstance,
66
+ stopThemeWatcher,
67
+ theme
68
+ };
@@ -0,0 +1,17 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ ProjectTrustStore,
4
+ getProjectTrustOptions,
5
+ getProjectTrustParentPath,
6
+ hasTrustRequiringProjectResources
7
+ } from "./chunk-HTFRRDSF.js";
8
+ import "./chunk-URD2SLIT.js";
9
+ import "./chunk-FQMM2EZ2.js";
10
+ import "./chunk-Q4Q6D4IY.js";
11
+ import "./chunk-BRJX2PRC.js";
12
+ export {
13
+ ProjectTrustStore,
14
+ getProjectTrustOptions,
15
+ getProjectTrustParentPath,
16
+ hasTrustRequiringProjectResources
17
+ };
@@ -6,9 +6,14 @@ import {
6
6
  import "./chunk-DVGWF6A2.js";
7
7
  import {
8
8
  SettingsManager
9
- } from "./chunk-WLLDXJRT.js";
9
+ } from "./chunk-WADV2VDS.js";
10
+ import "./chunk-UP2XBVH5.js";
11
+ import "./chunk-VWCE2HSZ.js";
10
12
  import "./chunk-LISUTZS3.js";
11
- import "./chunk-AY6CAJSL.js";
13
+ import "./chunk-URD2SLIT.js";
14
+ import "./chunk-UJOCPOMX.js";
15
+ import "./chunk-IMLCWLPI.js";
16
+ import "./chunk-R3K2F5GI.js";
12
17
  import {
13
18
  APP_NAME,
14
19
  NPM_CLI_PACKAGE,
@@ -0,0 +1,37 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ PLAN_USAGE_CACHE_TTL_MS,
4
+ USAGE_SERVICE_BRIDGE_SYMBOL,
5
+ clearPlanUsageCache,
6
+ footerPlanLabel,
7
+ getAllPlanUsageResults,
8
+ getPlanUsage,
9
+ getPlanUsageResult,
10
+ getUsageServiceBridge,
11
+ hasPlanUsageAdapter,
12
+ isFiveHourPlanWindow,
13
+ isWeeklyPlanWindow,
14
+ peekPlanUsage,
15
+ pickPlanWindow,
16
+ planUsageAuthError,
17
+ registerUsageServiceBridge
18
+ } from "./chunk-2MI5OPMN.js";
19
+ import "./chunk-IMLCWLPI.js";
20
+ import "./chunk-BRJX2PRC.js";
21
+ export {
22
+ PLAN_USAGE_CACHE_TTL_MS,
23
+ USAGE_SERVICE_BRIDGE_SYMBOL,
24
+ clearPlanUsageCache,
25
+ footerPlanLabel,
26
+ getAllPlanUsageResults,
27
+ getPlanUsage,
28
+ getPlanUsageResult,
29
+ getUsageServiceBridge,
30
+ hasPlanUsageAdapter,
31
+ isFiveHourPlanWindow,
32
+ isWeeklyPlanWindow,
33
+ peekPlanUsage,
34
+ pickPlanWindow,
35
+ planUsageAuthError,
36
+ registerUsageServiceBridge
37
+ };
@@ -11,8 +11,8 @@ import {
11
11
  } from "./chunk-3WFAEVKS.js";
12
12
  import {
13
13
  extractHeadingTitle
14
- } from "./chunk-WJVFOIB5.js";
15
- import "./chunk-7NBZ5P7I.js";
14
+ } from "./chunk-UQUCFAJ3.js";
15
+ import "./chunk-NAY6UUQZ.js";
16
16
  import {
17
17
  activityMonitor
18
18
  } from "./chunk-DAPBPCBP.js";
@@ -1,4 +1,8 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ isPerplexityAvailable,
4
+ searchWithPerplexity
5
+ } from "./chunk-XBWPBZBN.js";
2
6
  import {
3
7
  isGeminiWebAvailable,
4
8
  queryWithCookies
@@ -8,14 +12,10 @@ import {
8
12
  isGeminiApiAvailable,
9
13
  queryGeminiApiWithVideo
10
14
  } from "./chunk-3WFAEVKS.js";
11
- import {
12
- isPerplexityAvailable,
13
- searchWithPerplexity
14
- } from "./chunk-XBWPBZBN.js";
15
15
  import {
16
16
  extractHeadingTitle
17
- } from "./chunk-WJVFOIB5.js";
18
- import "./chunk-7NBZ5P7I.js";
17
+ } from "./chunk-UQUCFAJ3.js";
18
+ import "./chunk-NAY6UUQZ.js";
19
19
  import {
20
20
  activityMonitor
21
21
  } from "./chunk-DAPBPCBP.js";
@@ -0,0 +1,86 @@
1
+ # Headless browser
2
+
3
+ The built-in `browser` tool runs Chromium through Playwright. Use it for pages that need JavaScript and for explicit website interactions. `web_search` still handles discovery; `fetch_content` still reads URLs. Neither tool automatically opens this browser. An interaction task can start with `browser` without fetching the page first.
4
+
5
+ ## Installation and settings
6
+
7
+ Browser is on by default. Normal npm installation and updates automatically install the Chromium revision required by the pinned `playwright-core` dependency, including Playwright's supporting binaries. The same lifecycle works in source workspaces and published packages. Existing matching binaries are reused from Playwright's OS cache. Ordinary builds and CLI startup never download or launch a browser; Playwright loads on first browser use.
8
+
9
+ Use **Browser** in `/settings` to turn it off or on. Turning it off immediately hides the tool and closes the session's browser, including pending initialization. It does not delete cached binaries. Turning it on makes the tool available without launching Chromium. The global `browserEnabled` setting defaults to true for new and existing users. A legacy explicit `features.browser.enabled: false` in `install-features.json` remains off until the user changes the new setting. An explicit `browserEnabled` value takes precedence; no legacy file is rewritten.
10
+
11
+ `npm install --ignore-scripts`, `npm --offline`, `PI_OFFLINE=1`, and `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1` skip automatic Chromium installation. A failed download warns without making the rest of lunR unusable. Browser calls diagnose missing binaries and never install them silently. When online, run:
12
+
13
+ ```sh
14
+ lunr browser install
15
+ ```
16
+
17
+ `lunr setup` also installs matching Chromium automatically, including for Node-based standalone layouts. `PLAYWRIGHT_BROWSERS_PATH` selects an alternate cache and must be consistent between installation and execution. Linux may require Chromium system libraries; install those through your OS administrator. lunR does not install OS packages or disable Chromium's sandbox. Standalone compiled Bun browser installation has not been validated.
18
+
19
+ ## Actions
20
+
21
+ There is one tool, `browser`, with these actions:
22
+
23
+ | Action | Parameters and result |
24
+ | --- | --- |
25
+ | `navigate` | Required `url`, optional `tab`. Opens a browser if needed and navigates the selected tab. Returns its id and URL. |
26
+ | `inspect` | Returns an accessible snapshot. Optional `role` with exact `name`, or exact `label`, scopes the snapshot to one element. |
27
+ | `act` | Required `interaction` and target. Supports `click`, `fill`, `select`, `check`, `press`. |
28
+ | `tabs` | Required `operation`: `list`, `create`, `select`, `close`. `create` optionally takes a URL; `select` requires `tab`. |
29
+ | `screenshot` | Returns an explicit JPEG of the current viewport. It is never taken automatically. |
30
+ | `close` | Closes Chromium, the proxy, and every tab. Discards cookies and in-memory storage. |
31
+
32
+ Targets use an accessible `role` and optional exact `name`, or an exact field `label`. Inspect first to find the target. Zero or multiple matches produce an error; lunR does not choose the first match. There is no CSS selector, coordinate-click, or arbitrary JavaScript evaluation parameter.
33
+
34
+ ```json
35
+ {"action":"navigate","url":"https://example.com"}
36
+ {"action":"inspect"}
37
+ {"action":"act","interaction":"fill","label":"Search","value":"release notes"}
38
+ {"action":"act","interaction":"click","role":"button","name":"Search"}
39
+ {"action":"inspect","role":"main"}
40
+ ```
41
+
42
+ `fill` takes text in `value`. `select` takes the option's value. `check` requires `checked: true` or `false`. `press` accepts Enter, Tab, Escape, Space, Backspace, Delete, arrow keys, Home, End, PageUp, and PageDown. Clipboard shortcuts are excluded.
43
+
44
+ ## Permissions and external effects
45
+
46
+ Plan mode and read-only children can navigate, inspect, capture screenshots, and manage tabs. They cannot call `act`. Manual mode uses the existing approval dialog for interactions, including its session-approval option. Auto and yolo use their existing approval rules.
47
+
48
+ Observation is not a guarantee of zero external effects. Loading a page executes its JavaScript and can send requests. Clicking, filling, checking, selecting, or pressing a key may submit forms or change remote data. `/undo`, `/edit`, and `/rollback` cannot reverse website effects. After a timeout or cancellation, inspect the site before retrying an action that might already have succeeded.
49
+
50
+ Page text and screenshots are untrusted content, not instructions for the agent. A page can contain misleading labels or prompt injection. Granting access to a site does not authorize unrelated actions found in its content.
51
+
52
+ ## Network policy
53
+
54
+ The default policy permits public HTTP and HTTPS destinations only. It rejects embedded URL credentials, private/reserved IPv4 ranges, and IPv6 addresses outside the permitted global range, including mapped IPv4 and transition ranges.
55
+
56
+ Browser HTTP requests and HTTPS tunnels pass through a session-owned loopback proxy. The proxy checks all resolved addresses and connects to a checked IP rather than resolving the hostname again. Redirect destinations and subrequests must pass the same checks. Chromium's loopback proxy bypass is disabled. Service workers and WebSockets are blocked; QUIC and non-proxied WebRTC UDP are disabled. Some sites will not work with those restrictions.
57
+
58
+ For a local development server, explicitly opt in yourself:
59
+
60
+ ```json
61
+ {"browserAllowPrivateNetwork": true}
62
+ ```
63
+
64
+ Set `browserAllowPrivateNetwork` in global `settings.json` yourself and restart after changing it. This grants access to **all local and private destinations**, including requests initiated by public pages. It is not a per-site allowlist. To return to the public-only policy:
65
+
66
+ ```json
67
+ {"browserAllowPrivateNetwork": false}
68
+ ```
69
+
70
+ These checks are defense in depth, not an OS network sandbox. The proxy classifies destination IPs, not ownership of globally routed addresses. It cannot identify a public address routed internally by a VPN, or stop a public server from relaying requests elsewhere. Chromium vulnerabilities and other local processes are outside this policy. The loopback proxy is temporary and is not an authenticated multi-user service. Use an OS/container network boundary when hostile sites require stronger isolation.
71
+
72
+ ## Lifetime and limits
73
+
74
+ Each session owns a new ephemeral browser context. Children get separate contexts and processes, not their parent's cookies. Sessions never attach to an existing browser or import cookies, profiles, passwords, or history. There are no uploads, accepted downloads, clipboard access, or camera/microphone/device grants. File choosers have no tool action; downloads are refused and cancelled.
75
+
76
+ Operations are serialized, with at most 16 queued calls and four tabs including popups. Snapshots return at most 16KB or 300 lines, plus a truncation notice. Scope `inspect` with a unique role/name or label when it truncates. Chromium still constructs the accessible snapshot before truncation; this is an output limit, not a page-memory limit. The viewport is 1280 by 800; screenshots are capped at 2MB.
77
+
78
+ Operations have a 30-second deadline, with shorter launch, navigation, and interaction timeouts. Cancellation closes the browser rather than keeping partially completed state. Session replacement, reload, shutdown, and aborted turns also close it. Five minutes without a browser operation discards the context. Resuming a conversation does not restore its browser state. Forced process termination cannot promise the same cleanup as a normal shutdown.
79
+
80
+ ## Development validation
81
+
82
+ Install Chromium into an isolated cache explicitly, then use that same `PLAYWRIGHT_BROWSERS_PATH` for tests. `test/browser.test.ts` runs policy tests without Chromium and enables its actual-browser cases only when this variable is set. `test/browser-lifecycle.test.ts` covers missing binaries, deferred loading, settings-driven cleanup, and cancellation during launch. Browser settings and install tests cover default-on behavior, legacy explicit disable, npm lifecycle execution, offline installs, and ignored scripts.
83
+
84
+ After the offline package builds and coding-agent Node bundle, run `node scripts/check-browser.mjs`. It uses a local scripted provider and fixture website, with the normal child permission environment for auto and read-only CLI sessions. A third session verifies missing-Chromium recovery. The checker terminates completed print processes after the final answer because of the existing headless exit behavior. It saves sanitized fixture results, tool inventories, and isolated prompts under `.artifacts/browser-smoke/`; nothing is sent to an external model.
85
+
86
+ `node scripts/check-interactive-first-paint.mjs` verifies both disabled and enabled browser tool inventories while the implementation imports are stalled. No Chromium launch is needed for that check.