@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,355 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ bindConversation,
4
+ conversationBinding,
5
+ createPicker,
6
+ gatewayInput,
7
+ gatewaySelect,
8
+ isGatewayOwner,
9
+ requireGatewayOwner
10
+ } from "./chunk-VJPTNWAP.js";
11
+ import {
12
+ getSubagentCancellation
13
+ } from "./chunk-BBUVIEZB.js";
14
+ import {
15
+ PERMISSION_MODES,
16
+ getPermissionMode,
17
+ setPermissionMode
18
+ } from "./chunk-5D7LC2ZQ.js";
19
+ import {
20
+ SessionManager
21
+ } from "./chunk-XLTL257W.js";
22
+ import {
23
+ loadGatewayConfig
24
+ } from "./chunk-R3K2F5GI.js";
25
+
26
+ // packages/coding-agent/dist/gateway/mobile-commands.js
27
+ import { mkdirSync, readdirSync, realpathSync, statSync } from "node:fs";
28
+ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
29
+ var MOBILE_COMMANDS = [
30
+ { name: "project", description: "Browse folders and choose a project" },
31
+ { name: "continue", description: "Continue a handoff or the latest TUI session" },
32
+ { name: "sessions", description: "Browse saved sessions across projects" },
33
+ { name: "mode", description: "Choose manual, yolo, plan, or auto permissions" },
34
+ { name: "plan", description: "Plan work and approve it from this chat" },
35
+ { name: "settings", description: "Change this session's model, thinking, or permissions" },
36
+ { name: "stopall", description: "Stop this session and its background subagents" },
37
+ { name: "download", description: "Send a file from the current project" },
38
+ { name: "usage", description: "Show session tokens and subscription usage" },
39
+ { name: "processes", description: "List or stop this session's shell processes" },
40
+ { name: "refresh", description: "Refresh available models" },
41
+ { name: "skill", description: "Choose a skill and send it a task" },
42
+ { name: "fast", description: "Toggle OpenAI Codex fast mode" }
43
+ ], FORWARDED_COMMANDS = [
44
+ { name: "goal", description: "Set or manage the session goal" },
45
+ { name: "cron", description: "Schedule prompts and manage scheduled jobs" },
46
+ { name: "run", description: "Launch a subagent task" },
47
+ { name: "chain", description: "Run a sequence of subagent tasks" },
48
+ { name: "parallel", description: "Run independent subagent tasks" },
49
+ { name: "mcp", description: "Show configured MCP servers" },
50
+ { name: "lsp", description: "Show language server status" }
51
+ ];
52
+ function resolveWithinRoots(path, roots) {
53
+ let actual = realpathSync(resolve(path));
54
+ if (!roots.some((root) => {
55
+ try {
56
+ let rel = relative(realpathSync(root), actual);
57
+ return rel === "" || !rel.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`) && rel !== ".." && !isAbsolute(rel);
58
+ } catch {
59
+ return !1;
60
+ }
61
+ }))
62
+ throw new Error("That path is outside the approved folders.");
63
+ return actual;
64
+ }
65
+ function createProjectFolder(parent, name, roots) {
66
+ if (!name || name === "." || name === ".." || /[\\/\x00-\x1f<>:"|?*]/.test(name) || /[. ]$/.test(name) || /^(con|prn|aux|nul|com\d|lpt\d)(\.|$)/i.test(name))
67
+ throw new Error("Use a simple folder name without slashes or reserved characters.");
68
+ let actual = resolveWithinRoots(parent, roots);
69
+ return mkdirSync(join(actual, name)), resolveWithinRoots(join(actual, name), roots);
70
+ }
71
+ async function browseProject(ctx, initialPath) {
72
+ let { key, event, adapter, bridge } = ctx, roots = ctx.cfg.projectRoots ?? [];
73
+ if (!roots.length)
74
+ throw new Error("Add approved project folders with lunr gateway setup first.");
75
+ let current = initialPath ? resolveWithinRoots(initialPath, ctx.cfg.projectRoots ?? []) : void 0, view = () => {
76
+ if (!current)
77
+ return {
78
+ title: "Choose a project folder",
79
+ items: [.../* @__PURE__ */ new Set([...conversationBinding(key)?.recentProjects ?? [], ...roots])].filter((p) => {
80
+ try {
81
+ return resolveWithinRoots(p, roots), !0;
82
+ } catch {
83
+ return !1;
84
+ }
85
+ }).map((p) => ({ label: p, value: p }))
86
+ };
87
+ current = resolveWithinRoots(current, roots);
88
+ let items = [
89
+ { label: "Use this folder", value: "use" },
90
+ { label: "New folder", value: "new" },
91
+ { label: "Recent and roots", value: "roots" }
92
+ ];
93
+ try {
94
+ let up = resolveWithinRoots(dirname(current), roots);
95
+ up !== current && items.push({ label: "Up", value: up });
96
+ } catch {
97
+ }
98
+ for (let item of readdirSync(current, { withFileTypes: !0 }).sort((a, b) => a.name.localeCompare(b.name)))
99
+ if (!(!item.isDirectory() && !item.isSymbolicLink()))
100
+ try {
101
+ let path = resolveWithinRoots(join(current, item.name), roots);
102
+ statSync(path).isDirectory() && items.push({ label: item.name, value: path });
103
+ } catch {
104
+ }
105
+ return { title: current, items };
106
+ }, initial = view();
107
+ await createPicker(adapter, event.source, {
108
+ kind: "project",
109
+ sessionKey: key,
110
+ invokerId: event.source.userId,
111
+ ...initial,
112
+ validate: () => isGatewayOwner(event.source, loadGatewayConfig()),
113
+ resolve: async (item) => {
114
+ if (requireGatewayOwner(event.source), item.value === "use" && current) {
115
+ let cwd = resolveWithinRoots(current, loadGatewayConfig().projectRoots ?? []);
116
+ if (bridge.getStatus(key).busy)
117
+ throw new Error("Stop the current turn or wait before switching projects.");
118
+ return await bridge.reset(key), bindConversation(key, event.source, { cwd, owner: event.source.userId }), {
119
+ done: !0,
120
+ text: `Project selected: ${cwd}
121
+ Send a task to begin. Existing sessions are still available through /sessions.`
122
+ };
123
+ }
124
+ if (item.value === "new" && current) {
125
+ let name = await gatewayInput(key, "New folder name");
126
+ name && (current = createProjectFolder(current, name, loadGatewayConfig().projectRoots ?? []));
127
+ } else
128
+ current = item.value === "roots" ? void 0 : item.value;
129
+ return { done: !1, ...view() };
130
+ }
131
+ }, { threadId: event.source.threadId });
132
+ }
133
+ var transfers = /* @__PURE__ */ new Map();
134
+ function cancelMobileTransfer(key) {
135
+ transfers.get(key)?.abort();
136
+ }
137
+ async function continueSession(ctx, file) {
138
+ if (transfers.has(ctx.key))
139
+ throw new Error("A session transfer is already pending. Use /stop to cancel it.");
140
+ let controller = new AbortController();
141
+ transfers.set(ctx.key, controller);
142
+ try {
143
+ await performContinue(ctx, file, controller.signal);
144
+ } finally {
145
+ transfers.delete(ctx.key);
146
+ }
147
+ }
148
+ async function performContinue(ctx, file, signal) {
149
+ requireGatewayOwner(ctx.event.source);
150
+ let { requestSessionTransfer, SessionTransferError } = await import("./session-handoff-HC7R5E24.js"), { key, bridge } = ctx;
151
+ if ((await bridge.getSession(key))?.sessionManager?.getSessionFile() === file) {
152
+ await ctx.adapter.send(ctx.event.source.chatId, "This session is already open here.");
153
+ return;
154
+ }
155
+ if (bridge.getStatus(key).busy)
156
+ throw new Error("Stop the current phone session before switching.");
157
+ try {
158
+ await requestSessionTransfer(file, { timeoutMs: 3e3, signal });
159
+ } catch (error) {
160
+ if (!(error instanceof SessionTransferError) || error.code !== "busy")
161
+ throw error;
162
+ let choice = await gatewaySelect(key, `${error instanceof Error ? error.message : "Session is in use"}
163
+ How should lunR continue?`, ["Wait until idle", "Stop and continue", "Cancel"], { signal });
164
+ if (!choice || choice === "Cancel")
165
+ return;
166
+ if (choice === "Stop and continue")
167
+ await requestSessionTransfer(file, { stop: !0, timeoutMs: 3e4, signal });
168
+ else {
169
+ let deadline = Date.now() + 12e4;
170
+ for (; ; ) {
171
+ signal.throwIfAborted(), requireGatewayOwner(ctx.event.source);
172
+ try {
173
+ await requestSessionTransfer(file, { timeoutMs: 3e3, signal });
174
+ break;
175
+ } catch (retryError) {
176
+ if (!(retryError instanceof SessionTransferError) || retryError.code !== "busy" || Date.now() >= deadline)
177
+ throw retryError;
178
+ }
179
+ await new Promise((resolve2) => setTimeout(resolve2, 500));
180
+ }
181
+ }
182
+ }
183
+ signal.throwIfAborted(), requireGatewayOwner(ctx.event.source), await bridge.switchSession(key, file);
184
+ let session = await bridge.getSession(key), cwd = session?.sessionManager?.getCwd();
185
+ bindConversation(key, ctx.event.source, { cwd, owner: ctx.event.source.userId });
186
+ let id = session?.sessionManager?.getSessionId();
187
+ if (id && ["auto", "yolo"].includes(getPermissionMode(id))) {
188
+ let requested = getPermissionMode(id);
189
+ setPermissionMode("manual", id), session?.sessionManager?.setPermissionMode?.("manual"), await gatewaySelect(key, `Continue with ${requested} permissions? Tools can change files and run commands without individual approval.`, ["Keep manual", `Use ${requested}`]) === `Use ${requested}` && (setPermissionMode(requested, id), session?.sessionManager?.setPermissionMode?.(requested));
190
+ }
191
+ await ctx.adapter.send(ctx.event.source.chatId, `Continuing ${session?.sessionManager?.getSessionName() ?? basename(file)}
192
+ Project: ${cwd}
193
+ Send your next instruction.`, { threadId: ctx.event.source.threadId });
194
+ }
195
+ async function browseSessions(ctx, args, quick) {
196
+ let handoff = await import("./session-handoff-HC7R5E24.js");
197
+ if (quick) {
198
+ let candidates = handoff.listHandoffCandidates();
199
+ if (!candidates.length) {
200
+ let latest = handoff.latestTuiSession();
201
+ if (!latest)
202
+ throw new Error("No recent TUI session found. Use /sessions or mark one in the terminal with /handoff.");
203
+ await continueSession(ctx, latest.sessionFile);
204
+ return;
205
+ }
206
+ if (candidates.length === 1) {
207
+ await continueSession(ctx, candidates[0].sessionFile);
208
+ return;
209
+ }
210
+ await sessionPicker(ctx, candidates.map((s) => ({ label: `${s.cwd} \xB7 ${basename(s.sessionFile)}`, value: s.sessionFile })));
211
+ return;
212
+ }
213
+ let sessions = await SessionManager.listAll(), known = new Set(sessions.map((s) => s.path));
214
+ for (let file of handoff.listRegisteredSessionPaths())
215
+ if (!known.has(file))
216
+ try {
217
+ let manager = SessionManager.openReadOnly(file), header = manager.getHeader();
218
+ header && sessions.push({
219
+ id: header.id,
220
+ path: file,
221
+ cwd: manager.getCwd(),
222
+ name: manager.getSessionName(),
223
+ created: new Date(header.timestamp),
224
+ modified: statSync(file).mtime,
225
+ messageCount: manager.getEntries().length,
226
+ firstMessage: "",
227
+ allMessagesText: ""
228
+ });
229
+ } catch {
230
+ }
231
+ let query = args.toLowerCase(), items = sessions.sort((a, b) => b.modified.getTime() - a.modified.getTime()).filter((s) => !query || `${s.name ?? ""} ${s.cwd} ${s.id}`.toLowerCase().includes(query)).map((s) => ({
232
+ label: `${s.name || s.firstMessage.slice(0, 35) || s.id.slice(0, 8)} \xB7 ${basename(s.cwd)} \xB7 ${s.modified.toLocaleDateString()}`,
233
+ value: s.path
234
+ }));
235
+ await sessionPicker(ctx, items);
236
+ }
237
+ async function sessionPicker(ctx, items) {
238
+ await createPicker(ctx.adapter, ctx.event.source, {
239
+ kind: "sessions",
240
+ sessionKey: ctx.key,
241
+ invokerId: ctx.event.source.userId,
242
+ title: "Choose a session. Use /sessions <search> to filter.",
243
+ items,
244
+ validate: () => isGatewayOwner(ctx.event.source, loadGatewayConfig()),
245
+ resolve: async (item) => (await continueSession(ctx, item.value), { done: !0, text: "Session selection finished." })
246
+ }, { threadId: ctx.event.source.threadId });
247
+ }
248
+ async function handleMobileCommand(ctx, command, args) {
249
+ if (!MOBILE_COMMANDS.some((c) => c.name === command) && command !== "resume")
250
+ return !1;
251
+ if (requireGatewayOwner(ctx.event.source, ctx.cfg), bindConversation(ctx.key, ctx.event.source, { owner: ctx.event.source.userId }), command === "project")
252
+ return await browseProject(ctx, args.trim() || void 0), !0;
253
+ if (command === "sessions" || command === "resume" || command === "continue")
254
+ return await browseSessions(ctx, args, command === "continue"), !0;
255
+ let session = await ctx.bridge.getSession(ctx.key);
256
+ if (!session)
257
+ throw new Error("Select a project and send a task, or use /continue first.");
258
+ let id = session.sessionManager?.getSessionId();
259
+ if (command === "usage") {
260
+ let stats = session.getSessionStats(), plans = await (await import("./usage-service-LFB2SWYV.js")).getAllPlanUsageResults(session.model?.provider, session.modelRuntime);
261
+ return await ctx.adapter.send(ctx.event.source.chatId, [
262
+ `Tokens: ${stats.tokens.total} \xB7 cost: $${stats.cost.toFixed(4)}`,
263
+ ...plans.usages.flatMap((p) => p.windows.map((w) => `${p.provider} ${w.label}: ${w.usedPercent.toFixed(1)}% used`)),
264
+ ...plans.errors
265
+ ].join(`
266
+ `)), !0;
267
+ }
268
+ if (command === "processes") {
269
+ if (!id)
270
+ throw new Error("No session identity.");
271
+ let processes = await import("./process-registry-4FAKZQOL.js"), own = processes.list(id);
272
+ if (args) {
273
+ let [action, raw] = args.split(/\s+/), pid = Number(raw);
274
+ if (action !== "stop" || !own.some((p) => p.pid === pid))
275
+ throw new Error("Usage: /processes stop <pid> from this session's process list.");
276
+ processes.kill(pid), await ctx.adapter.send(ctx.event.source.chatId, `Stop requested for process ${pid}.`);
277
+ } else
278
+ await ctx.adapter.send(ctx.event.source.chatId, own.length ? own.map((p) => `${p.pid} \xB7 ${p.status} \xB7 ${p.command}`).join(`
279
+ `).slice(0, ctx.adapter.maxMessageLength) : "No tracked processes.");
280
+ return !0;
281
+ }
282
+ if (command === "stopall") {
283
+ await ctx.bridge.abort(ctx.key);
284
+ let result = id ? await getSubagentCancellation(id)?.stop() : void 0, processes = await import("./process-registry-4FAKZQOL.js"), count = id ? processes.list(id).filter((p) => p.status !== "exited").length : 0;
285
+ return id && processes.killAll(id), await ctx.adapter.send(ctx.event.source.chatId, `Stopped the current turn. Requested stop for ${result?.requested ?? 0} background runs and ${count} tracked processes${result?.failed ? `; ${result.failed} requests failed` : ""}. Wait for them to exit before transferring.`), !0;
286
+ }
287
+ if (ctx.bridge.getStatus(ctx.key).busy)
288
+ throw new Error("Wait for the current turn or use /stop first.");
289
+ if (command === "refresh")
290
+ return await session.modelRuntime.refresh(), await ctx.adapter.send(ctx.event.source.chatId, "Model catalog refreshed. Use /model to choose."), !0;
291
+ if (command === "fast") {
292
+ if (session.model?.provider !== "openai-codex" || !session.settingsManager)
293
+ throw new Error("Fast mode is available only for OpenAI Codex subscriptions.");
294
+ let current = session.settingsManager.getOpenAIFastMode();
295
+ if (args && !["on", "off", "status"].includes(args))
296
+ throw new Error("Usage: /fast on|off|status");
297
+ return args !== "status" && session.settingsManager.setOpenAIFastMode(args ? args === "on" : !current), await ctx.adapter.send(ctx.event.source.chatId, `Fast mode: ${session.settingsManager.getOpenAIFastMode() ? "on" : "off"}`), !0;
298
+ }
299
+ if (command === "skill") {
300
+ let names = session.resourceLoader?.getSkills().skills.map((s) => s.name) ?? [], [name, ...task] = args.split(/\s+/).filter(Boolean), chosen = name || await gatewaySelect(ctx.key, "Choose a skill", names);
301
+ if (!chosen)
302
+ return !0;
303
+ if (!names.includes(chosen))
304
+ throw new Error("That skill is not loaded for this project.");
305
+ return ctx.event.text = `/skill:${chosen} ${task.join(" ") || await gatewayInput(ctx.key, "What should this skill do?") || ""}`, !1;
306
+ }
307
+ if (command === "download") {
308
+ if (!ctx.adapter.sendFile)
309
+ throw new Error("This platform cannot send files.");
310
+ if (!args)
311
+ throw new Error("Usage: /download <project-relative path>");
312
+ let cwd = session.sessionManager?.getCwd();
313
+ if (!cwd)
314
+ throw new Error("No project selected.");
315
+ let file = resolveWithinRoots(resolve(cwd, args), [cwd]), stat = statSync(file);
316
+ if (!stat.isFile() || stat.size > 8 * 1024 * 1024)
317
+ throw new Error("Choose a file no larger than 8 MB.");
318
+ if (/(^|[\\/])(?:\.env(?:\.[^\\/]*)?|auth\.json|gateway\.json|credentials[^\\/]*|id_rsa|id_ed25519)([\\/]|$)/i.test(file))
319
+ throw new Error("Credential files cannot be sent through chat.");
320
+ let result = await ctx.adapter.sendFile(ctx.event.source.chatId, file, { threadId: ctx.event.source.threadId });
321
+ if (!result.success)
322
+ throw new Error(result.error ?? "File delivery failed.");
323
+ return !0;
324
+ }
325
+ if (command === "settings") {
326
+ let choice = await gatewaySelect(ctx.key, "Session settings", ["Model", "Thinking", "Permissions"]);
327
+ if (choice === "Model" || choice === "Thinking") {
328
+ let { CHAT_COMMANDS, runChatCommand } = await import("./commands-2JVNFGMQ.js"), cmd = CHAT_COMMANDS.find((c) => c.name === choice.toLowerCase());
329
+ return cmd && await runChatCommand(cmd, {
330
+ ...ctx,
331
+ args: "",
332
+ reply: async (text) => {
333
+ await ctx.adapter.send(ctx.event.source.chatId, text);
334
+ }
335
+ }), !0;
336
+ }
337
+ if (choice !== "Permissions")
338
+ return !0;
339
+ }
340
+ let requested = command === "plan" ? "plan" : args || await gatewaySelect(ctx.key, `Permission mode: ${getPermissionMode(id)}`, [...PERMISSION_MODES]);
341
+ if (!requested)
342
+ return !0;
343
+ if (!PERMISSION_MODES.includes(requested))
344
+ throw new Error("Choose manual, yolo, plan, or auto.");
345
+ return setPermissionMode(requested, id), session.sessionManager?.setPermissionMode?.(requested), await ctx.adapter.send(ctx.event.source.chatId, `Permission mode: ${requested}`), command === "plan" && args ? (ctx.event.text = args, !1) : !0;
346
+ }
347
+
348
+ export {
349
+ MOBILE_COMMANDS,
350
+ FORWARDED_COMMANDS,
351
+ resolveWithinRoots,
352
+ createProjectFolder,
353
+ cancelMobileTransfer,
354
+ handleMobileCommand
355
+ };