@ashx-j/lunr 0.2.21 → 0.2.23

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 (461) hide show
  1. package/CHANGELOG.md +4 -2
  2. package/README.md +23 -5
  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 +9 -0
  7. package/dist/builtin-extensions/lunr-browser.d.ts.map +1 -0
  8. package/dist/builtin-extensions/lunr-browser.js +169 -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 +3 -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 +11 -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/background/wait-tool.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +41 -3
  56. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +4 -0
  59. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +3 -0
  62. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +1 -0
  64. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -1
  65. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +3 -0
  66. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +1 -1
  69. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1 -0
  71. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  73. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts +18 -0
  74. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts.map +1 -0
  75. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js +48 -0
  76. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js.map +1 -0
  77. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  78. package/dist/builtin-extensions/pi-web-access/index.js +11 -7
  79. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  80. package/dist/cli/args.d.ts.map +1 -1
  81. package/dist/cli/args.js +2 -1
  82. package/dist/cli/args.js.map +1 -1
  83. package/dist/cli/install-cli.d.ts.map +1 -1
  84. package/dist/cli/install-cli.js +15 -45
  85. package/dist/cli/install-cli.js.map +1 -1
  86. package/dist/core/agent-session-runtime.d.ts +9 -0
  87. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  88. package/dist/core/agent-session-runtime.js +126 -29
  89. package/dist/core/agent-session-runtime.js.map +1 -1
  90. package/dist/core/agent-session.d.ts +22 -0
  91. package/dist/core/agent-session.d.ts.map +1 -1
  92. package/dist/core/agent-session.js +250 -105
  93. package/dist/core/agent-session.js.map +1 -1
  94. package/dist/core/browser/network.d.ts +9 -0
  95. package/dist/core/browser/network.d.ts.map +1 -0
  96. package/dist/core/browser/network.js +146 -0
  97. package/dist/core/browser/network.js.map +1 -0
  98. package/dist/core/browser/runtime.d.ts +24 -0
  99. package/dist/core/browser/runtime.d.ts.map +1 -0
  100. package/dist/core/browser/runtime.js +289 -0
  101. package/dist/core/browser/runtime.js.map +1 -0
  102. package/dist/core/browser/schema.d.ts +16 -0
  103. package/dist/core/browser/schema.d.ts.map +1 -0
  104. package/dist/core/browser/schema.js +36 -0
  105. package/dist/core/browser/schema.js.map +1 -0
  106. package/dist/core/browser/settings.d.ts +8 -0
  107. package/dist/core/browser/settings.d.ts.map +1 -0
  108. package/dist/core/browser/settings.js +30 -0
  109. package/dist/core/browser/settings.js.map +1 -0
  110. package/dist/core/browser/setup.d.ts +2 -0
  111. package/dist/core/browser/setup.d.ts.map +1 -0
  112. package/dist/core/browser/setup.js +16 -0
  113. package/dist/core/browser/setup.js.map +1 -0
  114. package/dist/core/customize.d.ts.map +1 -1
  115. package/dist/core/customize.js +15 -14
  116. package/dist/core/customize.js.map +1 -1
  117. package/dist/core/export-html/index.d.ts.map +1 -1
  118. package/dist/core/export-html/index.js +1 -1
  119. package/dist/core/export-html/index.js.map +1 -1
  120. package/dist/core/extensions/runner.d.ts +1 -0
  121. package/dist/core/extensions/runner.d.ts.map +1 -1
  122. package/dist/core/extensions/runner.js +1 -1
  123. package/dist/core/extensions/runner.js.map +1 -1
  124. package/dist/core/extensions/types.d.ts +1 -1
  125. package/dist/core/extensions/types.d.ts.map +1 -1
  126. package/dist/core/extensions/types.js.map +1 -1
  127. package/dist/core/install-features.d.ts.map +1 -1
  128. package/dist/core/install-features.js +10 -8
  129. package/dist/core/install-features.js.map +1 -1
  130. package/dist/core/memory-cap.d.ts.map +1 -1
  131. package/dist/core/memory-cap.js +5 -3
  132. package/dist/core/memory-cap.js.map +1 -1
  133. package/dist/core/model-tiers.d.ts.map +1 -1
  134. package/dist/core/model-tiers.js +9 -6
  135. package/dist/core/model-tiers.js.map +1 -1
  136. package/dist/core/permissions.d.ts.map +1 -1
  137. package/dist/core/permissions.js +9 -0
  138. package/dist/core/permissions.js.map +1 -1
  139. package/dist/core/plan-mode.d.ts.map +1 -1
  140. package/dist/core/plan-mode.js +3 -0
  141. package/dist/core/plan-mode.js.map +1 -1
  142. package/dist/core/process-registry.d.ts.map +1 -1
  143. package/dist/core/process-registry.js +6 -4
  144. package/dist/core/process-registry.js.map +1 -1
  145. package/dist/core/runtime-scope.d.ts +11 -0
  146. package/dist/core/runtime-scope.d.ts.map +1 -0
  147. package/dist/core/runtime-scope.js +3 -0
  148. package/dist/core/runtime-scope.js.map +1 -0
  149. package/dist/core/sdk.d.ts.map +1 -1
  150. package/dist/core/sdk.js +13 -0
  151. package/dist/core/sdk.js.map +1 -1
  152. package/dist/core/session-handoff.d.ts +35 -0
  153. package/dist/core/session-handoff.d.ts.map +1 -0
  154. package/dist/core/session-handoff.js +214 -0
  155. package/dist/core/session-handoff.js.map +1 -0
  156. package/dist/core/session-manager.d.ts +20 -0
  157. package/dist/core/session-manager.d.ts.map +1 -1
  158. package/dist/core/session-manager.js +184 -22
  159. package/dist/core/session-manager.js.map +1 -1
  160. package/dist/core/session-ownership.d.ts +28 -0
  161. package/dist/core/session-ownership.d.ts.map +1 -0
  162. package/dist/core/session-ownership.js +138 -0
  163. package/dist/core/session-ownership.js.map +1 -0
  164. package/dist/core/session-retention.d.ts.map +1 -1
  165. package/dist/core/session-retention.js +11 -2
  166. package/dist/core/session-retention.js.map +1 -1
  167. package/dist/core/settings-manager.d.ts +11 -0
  168. package/dist/core/settings-manager.d.ts.map +1 -1
  169. package/dist/core/settings-manager.js +27 -0
  170. package/dist/core/settings-manager.js.map +1 -1
  171. package/dist/core/slash-commands.d.ts.map +1 -1
  172. package/dist/core/slash-commands.js +2 -0
  173. package/dist/core/slash-commands.js.map +1 -1
  174. package/dist/core/subagent-wait-interruption.d.ts +11 -0
  175. package/dist/core/subagent-wait-interruption.d.ts.map +1 -0
  176. package/dist/core/subagent-wait-interruption.js +19 -0
  177. package/dist/core/subagent-wait-interruption.js.map +1 -0
  178. package/dist/core/system-prompt.d.ts.map +1 -1
  179. package/dist/core/system-prompt.js +7 -2
  180. package/dist/core/system-prompt.js.map +1 -1
  181. package/dist/core/todo-settings.d.ts +5 -0
  182. package/dist/core/todo-settings.d.ts.map +1 -0
  183. package/dist/core/todo-settings.js +7 -0
  184. package/dist/core/todo-settings.js.map +1 -0
  185. package/dist/core/tools/bash.d.ts.map +1 -1
  186. package/dist/core/tools/bash.js +4 -4
  187. package/dist/core/tools/bash.js.map +1 -1
  188. package/dist/core/tools/edit.d.ts.map +1 -1
  189. package/dist/core/tools/edit.js +5 -3
  190. package/dist/core/tools/edit.js.map +1 -1
  191. package/dist/core/tools/find.d.ts.map +1 -1
  192. package/dist/core/tools/find.js +4 -4
  193. package/dist/core/tools/find.js.map +1 -1
  194. package/dist/core/tools/grep.d.ts.map +1 -1
  195. package/dist/core/tools/grep.js +4 -4
  196. package/dist/core/tools/grep.js.map +1 -1
  197. package/dist/core/tools/ls.d.ts.map +1 -1
  198. package/dist/core/tools/ls.js +4 -4
  199. package/dist/core/tools/ls.js.map +1 -1
  200. package/dist/core/tools/read.d.ts.map +1 -1
  201. package/dist/core/tools/read.js +4 -4
  202. package/dist/core/tools/read.js.map +1 -1
  203. package/dist/core/tools/render-utils.d.ts +14 -5
  204. package/dist/core/tools/render-utils.d.ts.map +1 -1
  205. package/dist/core/tools/render-utils.js +34 -7
  206. package/dist/core/tools/render-utils.js.map +1 -1
  207. package/dist/core/tools/write.d.ts.map +1 -1
  208. package/dist/core/tools/write.js +4 -4
  209. package/dist/core/tools/write.js.map +1 -1
  210. package/dist/core/usage-service.d.ts.map +1 -1
  211. package/dist/core/usage-service.js +5 -3
  212. package/dist/core/usage-service.js.map +1 -1
  213. package/dist/gateway/adapters/discord.d.ts +12 -1
  214. package/dist/gateway/adapters/discord.d.ts.map +1 -1
  215. package/dist/gateway/adapters/discord.js +112 -17
  216. package/dist/gateway/adapters/discord.js.map +1 -1
  217. package/dist/gateway/adapters/telegram.d.ts +4 -2
  218. package/dist/gateway/adapters/telegram.d.ts.map +1 -1
  219. package/dist/gateway/adapters/telegram.js +34 -11
  220. package/dist/gateway/adapters/telegram.js.map +1 -1
  221. package/dist/gateway/agent-bridge.d.ts +14 -3
  222. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  223. package/dist/gateway/agent-bridge.js +252 -60
  224. package/dist/gateway/agent-bridge.js.map +1 -1
  225. package/dist/gateway/approval.d.ts +1 -0
  226. package/dist/gateway/approval.d.ts.map +1 -1
  227. package/dist/gateway/approval.js +60 -18
  228. package/dist/gateway/approval.js.map +1 -1
  229. package/dist/gateway/authz.d.ts +2 -0
  230. package/dist/gateway/authz.d.ts.map +1 -1
  231. package/dist/gateway/authz.js +13 -0
  232. package/dist/gateway/authz.js.map +1 -1
  233. package/dist/gateway/buttons.d.ts +3 -1
  234. package/dist/gateway/buttons.d.ts.map +1 -1
  235. package/dist/gateway/buttons.js +18 -3
  236. package/dist/gateway/buttons.js.map +1 -1
  237. package/dist/gateway/command.d.ts.map +1 -1
  238. package/dist/gateway/command.js +49 -4
  239. package/dist/gateway/command.js.map +1 -1
  240. package/dist/gateway/commands.d.ts.map +1 -1
  241. package/dist/gateway/commands.js +18 -3
  242. package/dist/gateway/commands.js.map +1 -1
  243. package/dist/gateway/config.d.ts +5 -0
  244. package/dist/gateway/config.d.ts.map +1 -1
  245. package/dist/gateway/config.js +5 -0
  246. package/dist/gateway/config.js.map +1 -1
  247. package/dist/gateway/conversations.d.ts +14 -0
  248. package/dist/gateway/conversations.d.ts.map +1 -0
  249. package/dist/gateway/conversations.js +30 -0
  250. package/dist/gateway/conversations.js.map +1 -0
  251. package/dist/gateway/download.d.ts +2 -0
  252. package/dist/gateway/download.d.ts.map +1 -0
  253. package/dist/gateway/download.js +36 -0
  254. package/dist/gateway/download.js.map +1 -0
  255. package/dist/gateway/index.d.ts.map +1 -1
  256. package/dist/gateway/index.js +85 -26
  257. package/dist/gateway/index.js.map +1 -1
  258. package/dist/gateway/mobile-commands.d.ts +24 -0
  259. package/dist/gateway/mobile-commands.d.ts.map +1 -0
  260. package/dist/gateway/mobile-commands.js +422 -0
  261. package/dist/gateway/mobile-commands.js.map +1 -0
  262. package/dist/gateway/presenter.d.ts +16 -0
  263. package/dist/gateway/presenter.d.ts.map +1 -0
  264. package/dist/gateway/presenter.js +210 -0
  265. package/dist/gateway/presenter.js.map +1 -0
  266. package/dist/gateway/router.d.ts +1 -0
  267. package/dist/gateway/router.d.ts.map +1 -1
  268. package/dist/gateway/router.js +32 -3
  269. package/dist/gateway/router.js.map +1 -1
  270. package/dist/gateway/service.d.ts +46 -0
  271. package/dist/gateway/service.d.ts.map +1 -0
  272. package/dist/gateway/service.js +395 -0
  273. package/dist/gateway/service.js.map +1 -0
  274. package/dist/gateway/setup.d.ts +4 -0
  275. package/dist/gateway/setup.d.ts.map +1 -0
  276. package/dist/gateway/setup.js +146 -0
  277. package/dist/gateway/setup.js.map +1 -0
  278. package/dist/gateway/types.d.ts +4 -2
  279. package/dist/gateway/types.d.ts.map +1 -1
  280. package/dist/gateway/types.js.map +1 -1
  281. package/dist/index.d.ts +2 -0
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.js +2 -0
  284. package/dist/index.js.map +1 -1
  285. package/dist/main.d.ts.map +1 -1
  286. package/dist/main.js +2 -1
  287. package/dist/main.js.map +1 -1
  288. package/dist/modes/interactive/components/assistant-message.d.ts +19 -2
  289. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  290. package/dist/modes/interactive/components/assistant-message.js +78 -17
  291. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  292. package/dist/modes/interactive/components/copyable-text.d.ts +27 -0
  293. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -0
  294. package/dist/modes/interactive/components/copyable-text.js +156 -0
  295. package/dist/modes/interactive/components/copyable-text.js.map +1 -0
  296. package/dist/modes/interactive/components/custom-entry.d.ts +1 -0
  297. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  298. package/dist/modes/interactive/components/custom-entry.js +8 -0
  299. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  300. package/dist/modes/interactive/components/custom-message.d.ts +1 -0
  301. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  302. package/dist/modes/interactive/components/custom-message.js +8 -0
  303. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  304. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  305. package/dist/modes/interactive/components/session-selector.js +16 -0
  306. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  307. package/dist/modes/interactive/components/settings-selector.d.ts +8 -1
  308. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  309. package/dist/modes/interactive/components/settings-selector.js +51 -0
  310. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  311. package/dist/modes/interactive/components/thinking-tail.d.ts +9 -2
  312. package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -1
  313. package/dist/modes/interactive/components/thinking-tail.js +43 -1
  314. package/dist/modes/interactive/components/thinking-tail.js.map +1 -1
  315. package/dist/modes/interactive/components/tool-execution.d.ts +4 -3
  316. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  317. package/dist/modes/interactive/components/tool-execution.js +34 -45
  318. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  319. package/dist/modes/interactive/interactive-mode.d.ts +9 -0
  320. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  321. package/dist/modes/interactive/interactive-mode.js +267 -44
  322. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  323. package/dist/modes/interactive/theme/theme.d.ts +1 -0
  324. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  325. package/dist/modes/interactive/theme/theme.js +23 -0
  326. package/dist/modes/interactive/theme/theme.js.map +1 -1
  327. package/dist/node-runtime/agent-session-services-GZVSOGYR.js +49 -0
  328. package/dist/node-runtime/{builtin-extensions-JCOPAAB5.js → builtin-extensions-QVCXNQT4.js} +6 -5
  329. package/dist/node-runtime/{chunk-LTYWTR3V.js → chunk-2MI5OPMN.js} +17 -2
  330. package/dist/node-runtime/{chunk-W3CVH5RX.js → chunk-2TKODGBZ.js} +11 -6
  331. package/dist/node-runtime/chunk-4EULYYR4.js +62 -0
  332. package/dist/node-runtime/{chunk-6N22HULO.js → chunk-5D7LC2ZQ.js} +7 -2
  333. package/dist/node-runtime/{chunk-KBKMCJDU.js → chunk-5ZQXRPMC.js} +19 -4
  334. package/dist/node-runtime/{chunk-BOHIDQT4.js → chunk-6VYZ5UFP.js} +1 -1
  335. package/dist/node-runtime/chunk-AZJHNQKQ.js +205 -0
  336. package/dist/node-runtime/{chunk-A3KMVBZV.js → chunk-BBUVIEZB.js} +1 -10
  337. package/dist/node-runtime/{chunk-IRPJXI6U.js → chunk-BX2RB477.js} +1 -1
  338. package/dist/node-runtime/chunk-CCCN2UCX.js +14 -0
  339. package/dist/node-runtime/{chunk-25I2BHAA.js → chunk-CSUZVNYE.js} +1 -1
  340. package/dist/node-runtime/chunk-DD5YWFSJ.js +708 -0
  341. package/dist/node-runtime/chunk-DQMGU675.js +3409 -0
  342. package/dist/node-runtime/{chunk-QZMODZQ2.js → chunk-E24EO34J.js} +2 -1
  343. package/dist/node-runtime/chunk-EKVFP6YF.js +355 -0
  344. package/dist/node-runtime/chunk-GJ2RDBRL.js +672 -0
  345. package/dist/node-runtime/{chunk-W3SILANP.js → chunk-GMHJCCEN.js} +8 -8
  346. package/dist/node-runtime/{chunk-DDWHZ633.js → chunk-GS42T6MX.js} +1 -1
  347. package/dist/node-runtime/chunk-GS66LV4M.js +2830 -0
  348. package/dist/node-runtime/chunk-H4K3JDRB.js +47 -0
  349. package/dist/node-runtime/{chunk-2SJB2AWP.js → chunk-HMBGROQK.js} +3 -3
  350. package/dist/node-runtime/{chunk-GB2MGFLI.js → chunk-HPUP7E4T.js} +216 -201
  351. package/dist/node-runtime/{chunk-YMEAYRBE.js → chunk-HTFRRDSF.js} +2 -7
  352. package/dist/node-runtime/{chunk-OPEK5RRY.js → chunk-IF24A3FH.js} +1 -1
  353. package/dist/node-runtime/chunk-IMLCWLPI.js +9 -0
  354. package/dist/node-runtime/chunk-KKUTQQV7.js +144 -0
  355. package/dist/node-runtime/chunk-LFZDVKSP.js +521 -0
  356. package/dist/node-runtime/{chunk-2BUAYZ7K.js → chunk-LLUIPGDR.js} +581 -197
  357. package/dist/node-runtime/{chunk-7NBZ5P7I.js → chunk-NAY6UUQZ.js} +1 -1
  358. package/dist/node-runtime/chunk-OAR4TYZE.js +146 -0
  359. package/dist/node-runtime/{chunk-STERBGUB.js → chunk-OFKSVRV7.js} +2 -2
  360. package/dist/node-runtime/{chunk-JZQ7F36T.js → chunk-PCEW76PM.js} +19 -3
  361. package/dist/node-runtime/{chunk-WLLDXJRT.js → chunk-QAZOULTU.js} +29 -1014
  362. package/dist/node-runtime/{chunk-6KDIOJL3.js → chunk-QH6YL7VK.js} +3 -3
  363. package/dist/node-runtime/chunk-R3K2F5GI.js +122 -0
  364. package/dist/node-runtime/{chunk-RNBHABBA.js → chunk-RDDAZOMU.js} +23 -0
  365. package/dist/node-runtime/{chunk-SY2TFMLO.js → chunk-RIR5EDDJ.js} +46 -151
  366. package/dist/node-runtime/chunk-RMQZU2YU.js +117 -0
  367. package/dist/node-runtime/{chunk-6BEIBLQ3.js → chunk-RWTKOC3B.js} +1 -1
  368. package/dist/node-runtime/{chunk-G6LRAP36.js → chunk-TQGPP4SC.js} +1 -1
  369. package/dist/node-runtime/{chunk-Y5KOEMBH.js → chunk-TVJUOJZJ.js} +9 -674
  370. package/dist/node-runtime/chunk-UAEOTO52.js +119 -0
  371. package/dist/node-runtime/{chunk-AY6CAJSL.js → chunk-UJOCPOMX.js} +6 -3
  372. package/dist/node-runtime/chunk-UP2XBVH5.js +40 -0
  373. package/dist/node-runtime/{chunk-WJVFOIB5.js → chunk-UQUCFAJ3.js} +1 -1
  374. package/dist/node-runtime/chunk-URD2SLIT.js +1019 -0
  375. package/dist/node-runtime/chunk-US544NN6.js +13 -0
  376. package/dist/node-runtime/chunk-UWPJL22I.js +341 -0
  377. package/dist/node-runtime/{chunk-4I23VTC4.js → chunk-VWCE2HSZ.js} +21 -124
  378. package/dist/node-runtime/{chunk-VZR3NCM7.js → chunk-W64JC4E7.js} +18 -14
  379. package/dist/node-runtime/{chunk-AWVD5IEY.js → chunk-X3URCYCU.js} +23 -12
  380. package/dist/node-runtime/{chunk-GKLEQ3I4.js → chunk-XLTL257W.js} +126 -27
  381. package/dist/node-runtime/{chunk-WKDK4C5P.js → chunk-YDO2F2IA.js} +38 -164
  382. package/dist/node-runtime/{chunk-PDNXVXMD.js → chunk-YHQ3NBB3.js} +58 -48
  383. package/dist/node-runtime/chunk-YPHAIRZT.js +10 -0
  384. package/dist/node-runtime/cli-runtime.js +2 -2
  385. package/dist/node-runtime/command-PDVTBRWA.js +45 -0
  386. package/dist/node-runtime/{commands-MV5KOZ64.js → commands-KAMO2T6P.js} +10 -10
  387. package/dist/node-runtime/commands-XDCFGIGW.js +36 -0
  388. package/dist/node-runtime/config-RORQUQFG.js +20 -0
  389. package/dist/node-runtime/{customize-LF5VST47.js → customize-VFJV3U6A.js} +2 -1
  390. package/dist/node-runtime/{direct-tool-executor-BK7CLEBX.js → direct-tool-executor-YAVOLDFY.js} +8 -8
  391. package/dist/node-runtime/{export-html-TEXVV5RP.js → export-html-KSOIMVPI.js} +4 -3
  392. package/dist/node-runtime/{extension-input-O4HSAEM4.js → extension-input-E7BJZ35H.js} +4 -4
  393. package/dist/node-runtime/{extension-selector-X5FCX43D.js → extension-selector-WU42XDTU.js} +4 -4
  394. package/dist/node-runtime/{extract-XLQSJN4V.js → extract-EQJE7FZZ.js} +2 -2
  395. package/dist/node-runtime/{gateway-BM6NLOH4.js → gateway-AYWM5DIO.js} +275 -994
  396. package/dist/node-runtime/{gemini-search-U7SUMPQA.js → gemini-search-35OCRFLN.js} +1 -1
  397. package/dist/node-runtime/{gemini-url-context-PXWCBQHK.js → gemini-url-context-UQY3PHHW.js} +2 -2
  398. package/dist/node-runtime/index.js +104 -65
  399. package/dist/node-runtime/{init-3C7Z24OI.js → init-X2LIUB2H.js} +3 -3
  400. package/dist/node-runtime/{install-cli-EXMJQESX.js → install-cli-3BO4MMQ6.js} +21 -82
  401. package/dist/node-runtime/interactive-mode-4MFRKAHG.js +72 -0
  402. package/dist/node-runtime/{interactive-view-ILS6TAN5.js → interactive-view-TUZHCQM3.js} +8 -8
  403. package/dist/node-runtime/lunr-browser-RYFIIVJN.js +174 -0
  404. package/dist/node-runtime/{lunr-cron-4VHP4E4B.js → lunr-cron-YWXEPZMQ.js} +19 -5
  405. package/dist/node-runtime/main.js +44 -31
  406. package/dist/node-runtime/{memory-cap-3S4XRLNP.js → memory-cap-EL3KL4JJ.js} +2 -1
  407. package/dist/node-runtime/mobile-commands-LVHDAUDP.js +32 -0
  408. package/dist/node-runtime/model-runtime-PLQKAG4B.js +16 -0
  409. package/dist/node-runtime/{model-tiers-NJLHUEGK.js → model-tiers-OU3U5CZG.js} +2 -1
  410. package/dist/node-runtime/{package-manager-cli-N37546V5.js → package-manager-cli-6GT3Z3CK.js} +22 -15
  411. package/dist/node-runtime/{pi-intercom-NV2LW6X7.js → pi-intercom-HBPK5HSJ.js} +4 -1
  412. package/dist/node-runtime/{pi-mcp-adapter-GUFZWW54.js → pi-mcp-adapter-E6WULBKF.js} +4 -4
  413. package/dist/node-runtime/{pi-subagents-6MUIFNDM.js → pi-subagents-CDWK2AKY.js} +236 -79
  414. package/dist/node-runtime/{pi-web-access-2CQGFLT2.js → pi-web-access-WTGMNZ32.js} +15 -15
  415. package/dist/node-runtime/process-registry-4FAKZQOL.js +31 -0
  416. package/dist/node-runtime/{proxy-modes-V6YVFH3C.js → proxy-modes-OSQCWRBI.js} +9 -9
  417. package/dist/node-runtime/rpc-entry.js +44 -31
  418. package/dist/node-runtime/{rpc-mode-W5ZTLTMZ.js → rpc-mode-O3XV4SID.js} +2 -2
  419. package/dist/node-runtime/runtime-4VA6JKNF.js +373 -0
  420. package/dist/node-runtime/{runtime-bridges-2VQTLPOZ.js → runtime-bridges-3XUQ46XW.js} +6 -5
  421. package/dist/node-runtime/service-ISSP6VHE.js +36 -0
  422. package/dist/node-runtime/session-handoff-HC7R5E24.js +33 -0
  423. package/dist/node-runtime/{session-manager-E7AREDTV.js → session-manager-CFN4UFM2.js} +2 -1
  424. package/dist/node-runtime/{session-selector-FJ7M2AIX.js → session-selector-GIM4DHQ2.js} +5 -4
  425. package/dist/node-runtime/{settings-manager-CUGAZWAB.js → settings-manager-6VEMXRDL.js} +7 -2
  426. package/dist/node-runtime/setup-5SR2J35A.js +155 -0
  427. package/dist/node-runtime/setup-JBKOLJ6F.js +18 -0
  428. package/dist/node-runtime/{subagent-executor-MH4A7CCF.js → subagent-executor-M5VWB3D3.js} +26 -18
  429. package/dist/node-runtime/theme-UOO5RVFN.js +68 -0
  430. package/dist/node-runtime/trust-manager-MMISNCYO.js +17 -0
  431. package/dist/node-runtime/{update-cli-XTZMZGOL.js → update-cli-UVKJWRRJ.js} +7 -2
  432. package/dist/node-runtime/usage-service-LFB2SWYV.js +37 -0
  433. package/dist/node-runtime/{video-extract-OYT5WKS5.js → video-extract-OOZHR7SU.js} +2 -2
  434. package/dist/node-runtime/{youtube-extract-TQYKGFGS.js → youtube-extract-FNPAUNHU.js} +6 -6
  435. package/docs/browser.md +86 -0
  436. package/docs/extensions.md +2 -0
  437. package/docs/features.md +96 -16
  438. package/docs/interactive-startup.md +2 -1
  439. package/docs/sessions.md +10 -0
  440. package/docs/settings.md +2 -0
  441. package/docs/tui.md +2 -0
  442. package/docs/usage.md +16 -0
  443. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  444. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  445. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  446. package/examples/extensions/gondolin/package-lock.json +2 -2
  447. package/examples/extensions/gondolin/package.json +1 -1
  448. package/examples/extensions/sandbox/package-lock.json +2 -2
  449. package/examples/extensions/sandbox/package.json +1 -1
  450. package/examples/extensions/with-deps/package-lock.json +2 -2
  451. package/examples/extensions/with-deps/package.json +1 -1
  452. package/package.json +7 -4
  453. package/scripts/install-browser.mjs +20 -0
  454. package/dist/node-runtime/agent-session-services-C743TYQE.js +0 -37
  455. package/dist/node-runtime/chunk-VGYZ3APQ.js +0 -59
  456. package/dist/node-runtime/chunk-XI77KVKA.js +0 -6009
  457. package/dist/node-runtime/command-P4NYCJ2M.js +0 -13
  458. package/dist/node-runtime/interactive-mode-EVVBA64D.js +0 -59
  459. package/dist/node-runtime/{chunk-UWQYRSYQ.js → chunk-YJMMG7C6.js} +25 -25
  460. package/dist/node-runtime/{mcp-panel-IIGMXQGP.js → mcp-panel-KTTFXJZ4.js} +3 -3
  461. package/dist/node-runtime/{src-BPQFJR76.js → src-IVPNZ2BX.js} +9 -9
@@ -8,7 +8,7 @@ import {
8
8
  truncateTail
9
9
  } from "./chunk-53YJI7JU.js";
10
10
  import {
11
- formatGroupedCall,
11
+ GroupedCallText,
12
12
  getTextOutput,
13
13
  invalidArgText,
14
14
  normalizeDisplayText,
@@ -21,7 +21,14 @@ import {
21
21
  toolGroupTree,
22
22
  toolStatusDot,
23
23
  toolStatusDotFromContext
24
- } from "./chunk-KBKMCJDU.js";
24
+ } from "./chunk-5ZQXRPMC.js";
25
+ import {
26
+ processImage
27
+ } from "./chunk-AD6VXAO7.js";
28
+ import {
29
+ markExited,
30
+ register
31
+ } from "./chunk-KKUTQQV7.js";
25
32
  import {
26
33
  getShellConfig,
27
34
  getShellEnv,
@@ -29,17 +36,14 @@ import {
29
36
  trackDetachedChildPid,
30
37
  untrackDetachedChildPid
31
38
  } from "./chunk-CSFI6YXL.js";
32
- import {
33
- processImage
34
- } from "./chunk-AD6VXAO7.js";
35
39
  import {
36
40
  keyHint
37
- } from "./chunk-DDWHZ633.js";
41
+ } from "./chunk-GS42T6MX.js";
38
42
  import {
39
43
  getLanguageFromPath,
40
44
  highlightCode,
41
45
  theme
42
- } from "./chunk-RNBHABBA.js";
46
+ } from "./chunk-RDDAZOMU.js";
43
47
  import {
44
48
  APP_NAME,
45
49
  formatPathRelativeToCwdOrAbsolute,
@@ -61,133 +65,11 @@ function truncateToVisualLines(text, maxVisualLines, width, paddingX = 0) {
61
65
  return { visualLines: truncatedLines, skippedCount };
62
66
  }
63
67
 
64
- // packages/coding-agent/dist/core/process-registry.js
65
- import { spawn } from "node:child_process";
66
- var isWin32 = process.platform === "win32", EXIT_NOISE_GATE_MS = 3e3, EXIT_TTL_MS = 300 * 1e3, MAX_TRACKED = 100, processes = /* @__PURE__ */ new Map();
67
- function register(pid, command, cwd, sessionId) {
68
- if (pid) {
69
- if (processes.size >= MAX_TRACKED) {
70
- let oldest;
71
- for (let [p, entry] of processes) {
72
- if (entry.status === "exited") {
73
- oldest = { pid: p, entry };
74
- break;
75
- }
76
- (!oldest || entry.startedAt < oldest.entry.startedAt) && (oldest = { pid: p, entry });
77
- }
78
- oldest && processes.delete(oldest.pid);
79
- }
80
- processes.set(pid, { pid, command, cwd, startedAt: Date.now(), status: "running", sessionId });
81
- }
82
- }
83
- function markExited(pid, exitCode) {
84
- if (!pid)
85
- return;
86
- let entry = processes.get(pid);
87
- if (!entry)
88
- return;
89
- if (Date.now() - entry.startedAt < EXIT_NOISE_GATE_MS) {
90
- processes.delete(pid);
91
- return;
92
- }
93
- entry.status = "exited", entry.exitCode = exitCode ?? void 0, entry.exitedAt = Date.now();
94
- }
95
- function list(sessionId) {
96
- return prune(), [...processes.values()].filter((p) => sessionId === void 0 || p.sessionId === sessionId);
97
- }
98
- function prune() {
99
- for (let [pid, entry] of processes) {
100
- if (entry.status === "exited") {
101
- (!entry.exitedAt || Date.now() - entry.exitedAt > EXIT_TTL_MS) && processes.delete(pid);
102
- continue;
103
- }
104
- isAlive(pid) || markExited(pid, null);
105
- }
106
- }
107
- function isAlive(pid) {
108
- try {
109
- return process.kill(pid, 0), !0;
110
- } catch {
111
- return !1;
112
- }
113
- }
114
- function kill(pid) {
115
- processes.has(pid) && (killProcessTree(pid), processes.delete(pid));
116
- }
117
- function killAll(sessionId) {
118
- for (let [pid, entry] of processes)
119
- if (!(sessionId !== void 0 && entry.sessionId !== sessionId)) {
120
- try {
121
- killProcessTree(pid);
122
- } catch {
123
- }
124
- processes.delete(pid);
125
- }
126
- }
127
- function pause(pid) {
128
- if (isWin32)
129
- throw new Error("Pause/resume is unsupported on Windows.");
130
- if (!processes.has(pid))
131
- throw new Error(`Process ${pid} is not tracked.`);
132
- try {
133
- process.kill(pid, "SIGSTOP");
134
- let entry = processes.get(pid);
135
- entry && (entry.status = "paused");
136
- } catch {
137
- processes.delete(pid);
138
- }
139
- }
140
- function resume(pid) {
141
- if (isWin32)
142
- throw new Error("Pause/resume is unsupported on Windows.");
143
- if (!processes.has(pid))
144
- throw new Error(`Process ${pid} is not tracked.`);
145
- try {
146
- process.kill(pid, "SIGCONT");
147
- let entry = processes.get(pid);
148
- entry && (entry.status = "running");
149
- } catch {
150
- processes.delete(pid);
151
- }
152
- }
153
- function restart(pid) {
154
- let entry = processes.get(pid);
155
- if (entry) {
156
- try {
157
- killProcessTree(pid);
158
- } catch {
159
- }
160
- processes.delete(pid);
161
- try {
162
- let shellConfig = getShellConfig(), child = spawn(shellConfig.shell, [...shellConfig.args, entry.command], {
163
- cwd: entry.cwd,
164
- detached: !0,
165
- stdio: "ignore",
166
- windowsHide: !0
167
- });
168
- if (child.pid)
169
- return register(child.pid, entry.command, entry.cwd, entry.sessionId), child.unref(), child.pid;
170
- } catch {
171
- }
172
- }
173
- }
174
- function isWindows() {
175
- return isWin32;
176
- }
177
- function clearRegistry(sessionId) {
178
- if (sessionId === void 0) {
179
- processes.clear();
180
- return;
181
- }
182
- for (let [pid, entry] of processes)
183
- entry.sessionId === sessionId && processes.delete(pid);
184
- }
185
-
186
68
  // packages/coding-agent/dist/core/tools/bash.js
187
69
  import { constants } from "node:fs";
188
70
  import { access as fsAccess } from "node:fs/promises";
189
71
  import { Container, Text as Text2, truncateToWidth } from "@ashx-j/lunr-tui";
190
- import { spawn as spawn2 } from "child_process";
72
+ import { spawn } from "child_process";
191
73
  import { Type } from "typebox";
192
74
 
193
75
  // packages/coding-agent/dist/core/tools/output-accumulator.js
@@ -370,7 +252,7 @@ function createLocalBashOperations(options) {
370
252
  throw new Error(`Working directory does not exist: ${cwd}
371
253
  Cannot execute bash commands.`);
372
254
  }
373
- let commandFromStdin = shellConfig.commandTransport === "stdin", child = spawn2(shellConfig.shell, commandFromStdin ? shellConfig.args : [...shellConfig.args, command], {
255
+ let commandFromStdin = shellConfig.commandTransport === "stdin", child = spawn(shellConfig.shell, commandFromStdin ? shellConfig.args : [...shellConfig.args, command], {
374
256
  cwd,
375
257
  detached: process.platform !== "win32",
376
258
  env: env ?? getShellEnv(),
@@ -565,15 +447,15 @@ ${command}` : command, spawnContext = resolveSpawnContext(resolvedCommand, cwd,
565
447
  context.executionStarted && state.startedAt === void 0 && (state.startedAt = Date.now(), state.endedAt = void 0), !context.isPartial && state.startedAt !== void 0 && (state.endedAt ??= Date.now());
566
448
  let compact = !context.isPartial && !context.expanded && !context.isError, detail = formatBashCall(args, { expanded: context.expanded, compact });
567
449
  compact && state.startedAt !== void 0 && state.endedAt !== void 0 && (detail += theme.fg("muted", ` \u2014 Took ${formatDuration(state.endedAt - state.startedAt)}`));
568
- let text = context.lastComponent ?? new Text2("", 0, 0);
569
- return text.setText(formatGroupedCall({
450
+ let text = context.lastComponent ?? new GroupedCallText("", 0, 0);
451
+ return text.setCall({
570
452
  role: context.groupRole ?? "singleton",
571
453
  compact,
572
454
  tree: toolGroupTree(context),
573
455
  dot: toolStatusDotFromContext(context, theme),
574
456
  title: theme.fg("toolTitle", theme.bold("$")),
575
457
  detail
576
- })), text;
458
+ }), text;
577
459
  },
578
460
  renderResult(result, options2, _theme, context) {
579
461
  let state = context.state;
@@ -1523,15 +1405,15 @@ function getEditHeaderBg(preview, settledError, theme2) {
1523
1405
  }
1524
1406
  function buildEditCallComponent(component, args, theme2, cwd, dotState, compact = !1, role = "singleton", tree = compact) {
1525
1407
  component.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme2)), component.clear();
1526
- let grouped = tree && role !== "singleton", pathDisplay = formatEditCall(args, theme2, cwd, compact || grouped);
1527
- if (component.addChild(new Text3(formatGroupedCall({
1408
+ let grouped = tree && role !== "singleton", pathDisplay = formatEditCall(args, theme2, cwd, compact || grouped), header = new GroupedCallText("", 0, 0);
1409
+ if (header.setCall({
1528
1410
  role,
1529
1411
  compact,
1530
1412
  tree,
1531
1413
  dot: toolStatusDot(dotState, theme2),
1532
1414
  title: theme2.fg("toolTitle", theme2.bold("edit")),
1533
1415
  detail: pathDisplay
1534
- }), 0, 0)), compact || grouped || !component.preview)
1416
+ }), component.addChild(header), compact || grouped || !component.preview)
1535
1417
  return component;
1536
1418
  let body = "error" in component.preview ? theme2.fg("error", component.preview.error) : renderDiff(component.preview.diff);
1537
1419
  return component.addChild(new Spacer(1)), component.addChild(new Text3(body, 0, 0)), component;
@@ -1835,7 +1717,7 @@ async function ensureTool(tool, silent = !1) {
1835
1717
  // packages/coding-agent/dist/core/tools/find.js
1836
1718
  import { createInterface } from "node:readline";
1837
1719
  import { Text as Text4 } from "@ashx-j/lunr-tui";
1838
- import { spawn as spawn3 } from "child_process";
1720
+ import { spawn as spawn2 } from "child_process";
1839
1721
  import path from "path";
1840
1722
  import { Type as Type3 } from "typebox";
1841
1723
  function toPosixPath(value) {
@@ -1960,7 +1842,7 @@ function createFindToolDefinition(cwd, options) {
1960
1842
  insideGitRepo || args.push("--no-require-git"), args.push("--max-results", String(effectiveLimit));
1961
1843
  let effectivePattern = pattern;
1962
1844
  pattern.includes("/") && (args.push("--full-path"), !pattern.startsWith("/") && !pattern.startsWith("**/") && pattern !== "**" && (effectivePattern = `**/${pattern}`)), args.push("--", effectivePattern, searchPath);
1963
- let child = spawn3(fdPath, args, { stdio: ["ignore", "pipe", "pipe"] }), rl = createInterface({ input: child.stdout }), stderr = "", lines = [];
1845
+ let child = spawn2(fdPath, args, { stdio: ["ignore", "pipe", "pipe"] }), rl = createInterface({ input: child.stdout }), stderr = "", lines = [];
1964
1846
  stopChild = () => {
1965
1847
  child.killed || child.kill();
1966
1848
  };
@@ -2023,15 +1905,15 @@ function createFindToolDefinition(cwd, options) {
2023
1905
  });
2024
1906
  },
2025
1907
  renderCall(args, theme2, context) {
2026
- let text = context.lastComponent ?? new Text4("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
2027
- return text.setText(formatGroupedCall({
1908
+ let text = context.lastComponent ?? new GroupedCallText("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
1909
+ return text.setCall({
2028
1910
  role: context.groupRole ?? "singleton",
2029
1911
  compact,
2030
1912
  tree: toolGroupTree(context),
2031
1913
  dot: toolStatusDotFromContext(context, theme2),
2032
1914
  title: theme2.fg("toolTitle", theme2.bold("find")),
2033
1915
  detail: formatFindCall(args, theme2, context.cwd, !context.expanded)
2034
- })), text;
1916
+ }), text;
2035
1917
  },
2036
1918
  renderResult(result, options2, theme2, context) {
2037
1919
  let text = context.lastComponent ?? new Text4("", 0, 0);
@@ -2047,7 +1929,7 @@ function createFindTool(cwd, options) {
2047
1929
  import { readFile as fsReadFile2, stat as fsStat } from "node:fs/promises";
2048
1930
  import { createInterface as createInterface2 } from "node:readline";
2049
1931
  import { Text as Text5 } from "@ashx-j/lunr-tui";
2050
- import { spawn as spawn4 } from "child_process";
1932
+ import { spawn as spawn3 } from "child_process";
2051
1933
  import path2 from "path";
2052
1934
  import { Type as Type4 } from "typebox";
2053
1935
  var grepSchema = Type4.Object({
@@ -2145,7 +2027,7 @@ function createGrepToolDefinition(cwd, options) {
2145
2027
  return lines;
2146
2028
  }, args = ["--json", "--line-number", "--color=never", "--hidden"];
2147
2029
  ignoreCase && args.push("--ignore-case"), literal && args.push("--fixed-strings"), glob && args.push("--glob", glob), args.push("--", pattern, searchPath);
2148
- let child = spawn4(rgPath, args, { stdio: ["ignore", "pipe", "pipe"] }), rl = createInterface2({ input: child.stdout }), stderr = "", matchCount = 0, matchLimitReached = !1, linesTruncated = !1, aborted = !1, killedDueToLimit = !1, outputLines = [], cleanup = () => {
2030
+ let child = spawn3(rgPath, args, { stdio: ["ignore", "pipe", "pipe"] }), rl = createInterface2({ input: child.stdout }), stderr = "", matchCount = 0, matchLimitReached = !1, linesTruncated = !1, aborted = !1, killedDueToLimit = !1, outputLines = [], cleanup = () => {
2149
2031
  rl.close(), signal?.removeEventListener("abort", onAbort);
2150
2032
  }, stopChild = (dueToLimit = !1) => {
2151
2033
  child.killed || (killedDueToLimit = dueToLimit, child.kill());
@@ -2221,15 +2103,15 @@ function createGrepToolDefinition(cwd, options) {
2221
2103
  });
2222
2104
  },
2223
2105
  renderCall(args, theme2, context) {
2224
- let text = context.lastComponent ?? new Text5("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
2225
- return text.setText(formatGroupedCall({
2106
+ let text = context.lastComponent ?? new GroupedCallText("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
2107
+ return text.setCall({
2226
2108
  role: context.groupRole ?? "singleton",
2227
2109
  compact,
2228
2110
  tree: toolGroupTree(context),
2229
2111
  dot: toolStatusDotFromContext(context, theme2),
2230
2112
  title: theme2.fg("toolTitle", theme2.bold("grep")),
2231
2113
  detail: formatGrepCall(args, theme2, context.cwd, !context.expanded)
2232
- })), text;
2114
+ }), text;
2233
2115
  },
2234
2116
  renderResult(result, options2, theme2, context) {
2235
2117
  let text = context.lastComponent ?? new Text5("", 0, 0);
@@ -2343,15 +2225,15 @@ function createLsToolDefinition(cwd, options) {
2343
2225
  });
2344
2226
  },
2345
2227
  renderCall(args, theme2, context) {
2346
- let text = context.lastComponent ?? new Text6("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
2347
- return text.setText(formatGroupedCall({
2228
+ let text = context.lastComponent ?? new GroupedCallText("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError;
2229
+ return text.setCall({
2348
2230
  role: context.groupRole ?? "singleton",
2349
2231
  compact,
2350
2232
  tree: toolGroupTree(context),
2351
2233
  dot: toolStatusDotFromContext(context, theme2),
2352
2234
  title: theme2.fg("toolTitle", theme2.bold("ls")),
2353
2235
  detail: formatLsCall(args, theme2, context.cwd, !context.expanded)
2354
- })), text;
2236
+ }), text;
2355
2237
  },
2356
2238
  renderResult(result, options2, theme2, context) {
2357
2239
  let text = context.lastComponent ?? new Text6("", 0, 0);
@@ -2594,15 +2476,15 @@ ${nonVisionImageNote}`), content = [{ type: "text", text: textNote }];
2594
2476
  });
2595
2477
  },
2596
2478
  renderCall(args, theme2, context) {
2597
- let text = context.lastComponent ?? new Text7("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError, classification = context.expanded ? void 0 : getCompactReadClassification(args, context.cwd), title = theme2.fg("toolTitle", theme2.bold("read")), detail;
2598
- return classification?.kind === "skill" ? (title = theme2.fg("customMessageLabel", "\x1B[1m[skill]\x1B[22m"), detail = theme2.fg("customMessageText", classification.label)) : classification ? (title = theme2.fg("toolTitle", theme2.bold(`read ${classification.kind}`)), detail = theme2.fg("accent", classification.label)) : detail = formatReadDetail(args, theme2, context.cwd, context.expanded), text.setText(formatGroupedCall({
2479
+ let text = context.lastComponent ?? new GroupedCallText("", 0, 0), compact = !context.isPartial && !context.expanded && !context.isError, classification = context.expanded ? void 0 : getCompactReadClassification(args, context.cwd), title = theme2.fg("toolTitle", theme2.bold("read")), detail;
2480
+ return classification?.kind === "skill" ? (title = theme2.fg("customMessageLabel", "\x1B[1m[skill]\x1B[22m"), detail = theme2.fg("customMessageText", classification.label)) : classification ? (title = theme2.fg("toolTitle", theme2.bold(`read ${classification.kind}`)), detail = theme2.fg("accent", classification.label)) : detail = formatReadDetail(args, theme2, context.cwd, context.expanded), text.setCall({
2599
2481
  role: context.groupRole ?? "singleton",
2600
2482
  compact,
2601
2483
  tree: toolGroupTree(context),
2602
2484
  dot: toolStatusDotFromContext(context, theme2),
2603
2485
  title,
2604
2486
  detail
2605
- })), text;
2487
+ }), text;
2606
2488
  },
2607
2489
  renderResult(result, options2, theme2, context) {
2608
2490
  let text = context.lastComponent ?? new Text7("", 0, 0);
@@ -2626,7 +2508,7 @@ var writeSchema = Type7.Object({
2626
2508
  writeFile: (path3, content) => fsWriteFile2(path3, content, "utf-8"),
2627
2509
  mkdir: (dir) => fsMkdir(dir, { recursive: !0 }).then(() => {
2628
2510
  })
2629
- }, WriteCallRenderComponent = class extends Text8 {
2511
+ }, WriteCallRenderComponent = class extends GroupedCallText {
2630
2512
  cache;
2631
2513
  constructor() {
2632
2514
  super("", 0, 0);
@@ -2737,14 +2619,14 @@ function createWriteToolDefinition(cwd, options) {
2737
2619
  let detail = renderToolFileName(rawPath, theme2, context.cwd);
2738
2620
  fileContent === null && (detail += `
2739
2621
 
2740
- ${theme2.fg("error", "[invalid content arg - expected string]")}`), component.setText(formatGroupedCall({
2622
+ ${theme2.fg("error", "[invalid content arg - expected string]")}`), component.setCall({
2741
2623
  role: context.groupRole ?? "singleton",
2742
2624
  compact,
2743
2625
  tree,
2744
2626
  dot: toolStatusDotFromContext(context, theme2),
2745
2627
  title: theme2.fg("toolTitle", theme2.bold("write")),
2746
2628
  detail
2747
- }));
2629
+ });
2748
2630
  } else
2749
2631
  component.setText(`${toolStatusDotFromContext(context, theme2)} ${formatWriteCall(renderArgs, { expanded: context.expanded, isPartial: context.isPartial }, theme2, component.cache, context.cwd, !1)}`);
2750
2632
  return component;
@@ -2797,14 +2679,6 @@ export {
2797
2679
  wrapToolDefinition,
2798
2680
  createToolDefinitionFromAgentTool,
2799
2681
  truncateToVisualLines,
2800
- list,
2801
- kill,
2802
- killAll,
2803
- pause,
2804
- resume,
2805
- restart,
2806
- isWindows,
2807
- clearRegistry,
2808
2682
  createLocalBashOperations,
2809
2683
  createBashToolDefinition,
2810
2684
  createBashTool,
@@ -2,7 +2,7 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
2
2
  import {
3
3
  lightBuiltinExtensions,
4
4
  loadAllBuiltinExtensions
5
- } from "./chunk-AWVD5IEY.js";
5
+ } from "./chunk-X3URCYCU.js";
6
6
  import {
7
7
  createProjectTrustContext,
8
8
  createStartupTui,
@@ -11,14 +11,10 @@ import {
11
11
  showFirstTimeSetup,
12
12
  showStartupSelector,
13
13
  startStartupTui
14
- } from "./chunk-VZR3NCM7.js";
15
- import {
16
- ProjectTrustStore,
17
- hasTrustRequiringProjectResources
18
- } from "./chunk-YMEAYRBE.js";
14
+ } from "./chunk-W64JC4E7.js";
19
15
  import {
20
16
  applyInheritedSubagentPermissions
21
- } from "./chunk-25I2BHAA.js";
17
+ } from "./chunk-CSUZVNYE.js";
22
18
  import {
23
19
  MissingSessionCwdError,
24
20
  createAgentSessionFromServices,
@@ -27,11 +23,7 @@ import {
27
23
  formatMissingSessionCwdPrompt,
28
24
  formatNoModelsAvailableMessage,
29
25
  getMissingSessionCwdIssue
30
- } from "./chunk-XI77KVKA.js";
31
- import {
32
- resolveCliModel,
33
- resolveModelScope
34
- } from "./chunk-STERBGUB.js";
26
+ } from "./chunk-DQMGU675.js";
35
27
  import {
36
28
  restoreStdout,
37
29
  takeOverStdout
@@ -39,57 +31,68 @@ import {
39
31
  import {
40
32
  detectSupportedImageMimeTypeFromFile,
41
33
  resolveReadPath
42
- } from "./chunk-WKDK4C5P.js";
34
+ } from "./chunk-YDO2F2IA.js";
35
+ import {
36
+ processImage
37
+ } from "./chunk-AD6VXAO7.js";
43
38
  import {
44
39
  SettingsManager,
45
40
  applyHttpProxySettings,
46
41
  configureHttpDispatcher
47
- } from "./chunk-WLLDXJRT.js";
48
- import {
49
- SessionManager,
50
- assertValidSessionId
51
- } from "./chunk-GKLEQ3I4.js";
42
+ } from "./chunk-QAZOULTU.js";
52
43
  import {
53
44
  bindRuntimeBridges
54
- } from "./chunk-W3SILANP.js";
45
+ } from "./chunk-GMHJCCEN.js";
55
46
  import {
56
- registerModelTierBridge
57
- } from "./chunk-W3CVH5RX.js";
47
+ ProjectTrustStore,
48
+ hasTrustRequiringProjectResources
49
+ } from "./chunk-HTFRRDSF.js";
58
50
  import {
59
- processImage
60
- } from "./chunk-AD6VXAO7.js";
51
+ resolveCliModel,
52
+ resolveModelScope
53
+ } from "./chunk-OFKSVRV7.js";
61
54
  import {
62
55
  migrateLegacyGlobalInstructions
63
56
  } from "./chunk-M3LZLQW2.js";
64
57
  import {
65
- printTimings,
66
- resetTimings,
67
- time
68
- } from "./chunk-PVCDKGR6.js";
58
+ SessionManager,
59
+ assertValidSessionId
60
+ } from "./chunk-XLTL257W.js";
69
61
  import {
70
62
  registerCustomizeBridge
71
- } from "./chunk-VGYZ3APQ.js";
63
+ } from "./chunk-4EULYYR4.js";
72
64
  import {
73
65
  registerMemoryCapBridge
74
- } from "./chunk-AY6CAJSL.js";
75
- import {
76
- parseArgs,
77
- printHelp
78
- } from "./chunk-QZMODZQ2.js";
66
+ } from "./chunk-UJOCPOMX.js";
79
67
  import {
80
- markStartupMilestone
81
- } from "./chunk-CCZJ3PYY.js";
68
+ registerModelTierBridge
69
+ } from "./chunk-2TKODGBZ.js";
82
70
  import {
83
71
  SessionSelectorComponent
84
- } from "./chunk-JZQ7F36T.js";
72
+ } from "./chunk-PCEW76PM.js";
73
+ import {
74
+ SessionOwnership
75
+ } from "./chunk-UAEOTO52.js";
85
76
  import {
86
77
  KeybindingsManager,
87
78
  migrateKeybindingsConfig
88
79
  } from "./chunk-5EFIU3OM.js";
80
+ import {
81
+ printTimings,
82
+ resetTimings,
83
+ time
84
+ } from "./chunk-PVCDKGR6.js";
85
+ import {
86
+ parseArgs,
87
+ printHelp
88
+ } from "./chunk-E24EO34J.js";
89
+ import {
90
+ markStartupMilestone
91
+ } from "./chunk-CCZJ3PYY.js";
89
92
  import {
90
93
  initTheme,
91
94
  stopThemeWatcher
92
- } from "./chunk-RNBHABBA.js";
95
+ } from "./chunk-RDDAZOMU.js";
93
96
  import {
94
97
  APP_NAME,
95
98
  CONFIG_DIR_NAME,
@@ -281,7 +284,14 @@ async function pruneDir(dir, cutoffMs, excludeFile, deleted) {
281
284
  let filePath = join(dir, entry.name);
282
285
  if (!(excludeFile && sameFile(filePath, excludeFile)))
283
286
  try {
284
- (await stat2(filePath)).mtimeMs < cutoffMs && (await unlink(filePath), deleted.push(filePath));
287
+ if ((await stat2(filePath)).mtimeMs < cutoffMs) {
288
+ let ownership = new SessionOwnership(filePath);
289
+ try {
290
+ (await stat2(filePath)).mtimeMs < cutoffMs && (await unlink(filePath), deleted.push(filePath));
291
+ } finally {
292
+ ownership.release();
293
+ }
294
+ }
285
295
  } catch {
286
296
  }
287
297
  }
@@ -719,18 +729,18 @@ async function promptForMissingSessionCwd(issue, settingsManager, startupView) {
719
729
  async function main(args, options) {
720
730
  resetTimings(), (args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE)) && (process.env.PI_OFFLINE = "1");
721
731
  let cwd = process.cwd(), agentDir = getAgentDir(), bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: !1 });
722
- if (applyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy), configureHttpDispatcher(), ["setup", "features", "uninstall"].includes(args[0])) {
723
- let { handleInstallCli } = await import("./install-cli-EXMJQESX.js");
732
+ if (applyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy), configureHttpDispatcher(), ["setup", "features", "uninstall", "browser"].includes(args[0])) {
733
+ let { handleInstallCli } = await import("./install-cli-3BO4MMQ6.js");
724
734
  if (await handleInstallCli(args))
725
735
  return;
726
736
  }
727
737
  if (args[0] === "update") {
728
- let { handleUpdateCli } = await import("./update-cli-XTZMZGOL.js");
738
+ let { handleUpdateCli } = await import("./update-cli-UVKJWRRJ.js");
729
739
  if (await handleUpdateCli(args))
730
740
  return;
731
741
  }
732
742
  if (["install", "remove", "uninstall", "list", "config"].includes(args[0])) {
733
- let { handleConfigCommand, handlePackageCommand } = await import("./package-manager-cli-N37546V5.js");
743
+ let { handleConfigCommand, handlePackageCommand } = await import("./package-manager-cli-6GT3Z3CK.js");
734
744
  if (await handlePackageCommand(args, { extensionFactories: options?.extensionFactories })) {
735
745
  process.exit(process.exitCode ?? 0);
736
746
  return;
@@ -739,7 +749,7 @@ async function main(args, options) {
739
749
  return;
740
750
  }
741
751
  if (args[0] === "gateway") {
742
- let { handleGatewayCommand } = await import("./command-P4NYCJ2M.js");
752
+ let { handleGatewayCommand } = await import("./command-PDVTBRWA.js");
743
753
  if (await handleGatewayCommand(args))
744
754
  return;
745
755
  }
@@ -754,7 +764,7 @@ async function main(args, options) {
754
764
  if (time("parseArgs"), parsed.version && (console.log(VERSION), process.exit(0)), parsed.export) {
755
765
  let result;
756
766
  try {
757
- let { exportFromFile } = await import("./export-html-TEXVV5RP.js"), outputPath = parsed.messages.length > 0 ? parsed.messages[0] : void 0;
767
+ let { exportFromFile } = await import("./export-html-KSOIMVPI.js"), outputPath = parsed.messages.length > 0 ? parsed.messages[0] : void 0;
758
768
  result = await exportFromFile(parsed.export, outputPath);
759
769
  } catch (error) {
760
770
  let message = error instanceof Error ? error.message : "Failed to export session";
@@ -762,7 +772,7 @@ async function main(args, options) {
762
772
  }
763
773
  console.log(`Exported to: ${result}`), process.exit(0);
764
774
  }
765
- let appMode = resolveAppMode(parsed, process.stdin.isTTY, process.stdout.isTTY), interactiveModeImport = appMode === "interactive" ? import("./interactive-mode-EVVBA64D.js") : void 0, startupView = appMode === "interactive" ? options?.startupView : void 0;
775
+ let appMode = resolveAppMode(parsed, process.stdin.isTTY, process.stdout.isTTY), interactiveModeImport = appMode === "interactive" ? import("./interactive-mode-4MFRKAHG.js") : void 0, startupView = appMode === "interactive" ? options?.startupView : void 0;
766
776
  options?.startupView && !startupView && options.startupView.stop(), applyInheritedSubagentPermissions(), appMode !== "interactive" && !isPlainRuntimeMetadataCommand(parsed) && takeOverStdout(), parsed.mode === "rpc" && parsed.fileArgs.length > 0 && (console.error(chalk4.red("Error: @file arguments are not supported in RPC mode")), process.exit(1)), validateForkFlags(parsed), validateSessionIdFlags(parsed);
767
777
  let { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(cwd);
768
778
  time("runMigrations");
@@ -772,7 +782,7 @@ async function main(args, options) {
772
782
  if (missingSessionCwdIssue)
773
783
  if (appMode === "interactive") {
774
784
  let selectedCwd = await promptForMissingSessionCwd(missingSessionCwdIssue, startupSettingsManager, startupView);
775
- selectedCwd || process.exit(0), sessionManager = SessionManager.open(missingSessionCwdIssue.sessionFile, sessionDir, selectedCwd);
785
+ selectedCwd || process.exit(0), sessionManager.dispose(), sessionManager = SessionManager.open(missingSessionCwdIssue.sessionFile, sessionDir, selectedCwd);
776
786
  } else
777
787
  console.error(chalk4.red(new MissingSessionCwdError(missingSessionCwdIssue).message)), process.exit(1);
778
788
  if (parsed.name !== void 0) {
@@ -919,12 +929,12 @@ ${EXTENSION_LOAD_FAILURE_HINT}` : "";
919
929
  extensionHint && console.error(chalk4.yellow(EXTENSION_LOAD_FAILURE_HINT)), process.exit(1);
920
930
  }
921
931
  if (time("createAgentSession"), appMode !== "interactive" && !session.model && (console.error(chalk4.red(formatNoModelsAvailableMessage())), process.exit(1)), startupBenchmark && appMode !== "interactive" && (console.error(chalk4.red("Error: PI_STARTUP_BENCHMARK only supports interactive mode")), process.exit(1)), appMode === "rpc") {
922
- let { runRpcMode } = await import("./rpc-mode-W5ZTLTMZ.js");
932
+ let { runRpcMode } = await import("./rpc-mode-O3XV4SID.js");
923
933
  printTimings(), await runRpcMode(runtime);
924
934
  } else if (appMode === "interactive") {
925
935
  let [{ InteractiveMode }, { loadDeferredBuiltinExtensions }] = await Promise.all([
926
936
  interactiveModeImport,
927
- import("./builtin-extensions-JCOPAAB5.js")
937
+ import("./builtin-extensions-QVCXNQT4.js")
928
938
  ]), interactiveMode = new InteractiveMode(runtime, {
929
939
  migratedProviders,
930
940
  modelFallbackMessage,
@@ -0,0 +1,10 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+
3
+ // packages/coding-agent/dist/core/experimental.js
4
+ function areExperimentalFeaturesEnabled() {
5
+ return process.env.PI_EXPERIMENTAL === "1";
6
+ }
7
+
8
+ export {
9
+ areExperimentalFeaturesEnabled
10
+ };
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
3
3
  import {
4
4
  parseArgs
5
- } from "./chunk-QZMODZQ2.js";
5
+ } from "./chunk-E24EO34J.js";
6
6
  import {
7
7
  markStartupMilestone
8
8
  } from "./chunk-CCZJ3PYY.js";
@@ -57,7 +57,7 @@ var args = process.argv.slice(2), startupBenchmark = process.env.PI_STARTUP_BENC
57
57
  markStartupMilestone("mode_routed");
58
58
  var startupView;
59
59
  if (preloadMode === "interactive") {
60
- let { InteractiveView } = await import("./interactive-view-ILS6TAN5.js");
60
+ let { InteractiveView } = await import("./interactive-view-TUZHCQM3.js");
61
61
  startupView = new InteractiveView(), startupView.start(), await startupView.waitForFirstFrame(), startupView.isExitRequested && process.exit(0);
62
62
  }
63
63
  var startRuntime = async () => {
@@ -0,0 +1,45 @@
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/gateway/command.js
5
+ async function handleGatewayCommand(args) {
6
+ if (args[0] !== "gateway")
7
+ return !1;
8
+ try {
9
+ let sub = args[1];
10
+ if (sub === "setup")
11
+ await (await import("./setup-5SR2J35A.js")).setupGateway();
12
+ else if (sub === "pair" && args[2] === "approve" && args.includes("--owner"))
13
+ console.log((await import("./setup-5SR2J35A.js")).approveGatewayOwner(args[3], args[4]));
14
+ else if (["start", "stop", "restart", "status", "logs", "doctor", "autostart"].includes(sub)) {
15
+ let service = await import("./service-ISSP6VHE.js");
16
+ if (sub === "start" && console.log(await service.startGatewayService()), sub === "stop" && console.log(await service.stopGatewayService()), sub === "restart" && (await service.stopGatewayService(), console.log(await service.startGatewayService())), (sub === "status" || sub === "doctor") && console.log(service.serviceStatusText()), sub === "logs" && console.log(service.readGatewayLog()), sub === "autostart") {
17
+ let mode = args[2];
18
+ if (mode !== "off" && mode !== "login" && mode !== "boot")
19
+ throw new Error("Usage: lunr gateway autostart off|login|boot");
20
+ await service.configureStartup(mode), console.log(`Automatic startup: ${mode}`);
21
+ }
22
+ if (sub === "doctor") {
23
+ let { loadGatewayConfig, resolvePlatformToken } = await import("./config-RORQUQFG.js"), cfg = loadGatewayConfig();
24
+ for (let platform of ["telegram", "discord"])
25
+ console.log(`${platform}: ${cfg[platform].enabled ? "enabled" : "disabled"}, token ${resolvePlatformToken(platform, cfg[platform]) ? "configured" : "missing"}, owners ${cfg.owners?.[platform].length ?? 0}`);
26
+ console.log(`Project roots: ${cfg.projectRoots?.length ?? 0}. Run lunr gateway setup to change these.
27
+ If startup is not responding, inspect lunr gateway logs. Do not delete a lock while its process is alive.`);
28
+ }
29
+ } else if (sub === "--help" || sub === "help" || sub === "-h")
30
+ console.log(`lunr gateway setup|start|stop|restart|status|logs|doctor|run
31
+ lunr gateway autostart off|login|boot
32
+ lunr gateway pair approve <platform> <code> [--owner]
33
+ lunr gateway pair list`);
34
+ else {
35
+ let { runGateway } = await import("./gateway-AYWM5DIO.js");
36
+ process.exitCode = await runGateway(sub === "run" ? args.slice(2) : args.slice(1));
37
+ }
38
+ } catch (error) {
39
+ console.error(error instanceof Error ? error.message : String(error)), process.exitCode = 1;
40
+ }
41
+ return !0;
42
+ }
43
+ export {
44
+ handleGatewayCommand
45
+ };