@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
@@ -126,6 +126,8 @@ function isCodeRewriteMutating(input) {
126
126
  return input?.dry_run === !1;
127
127
  }
128
128
  function planModeBlockReason(toolName, input) {
129
+ if (toolName === "browser" && input?.action === "act")
130
+ return `${PLAN_MODE_BLOCK_MESSAGE} Browser interactions require a non-plan session; observation remains available.`;
129
131
  if (BLOCKED_TOOLS.has(toolName) || toolName === "code_rewrite" && isCodeRewriteMutating(input))
130
132
  return PLAN_MODE_BLOCK_MESSAGE;
131
133
  if (toolName === "bash") {
@@ -460,6 +462,8 @@ function protectedFileWriteReason(toolName, input, cwd) {
460
462
  if (normalize(target) === normalize(join(dirname(getAgentDir()), "simple-memory", "memory.md")))
461
463
  return MEMORY_FILE_DIRECT_WRITE_BLOCK_REASON;
462
464
  let globalSettings = normalize(join(getAgentDir(), "settings.json")), projectSettings = normalize(join(cwd, CONFIG_DIR_NAME, "settings.json")), normalizedTarget = normalize(target);
465
+ if (normalizedTarget === normalize(join(getAgentDir(), "install-features.json")))
466
+ return "Optional features are user-managed through lunr features; Browser is managed in /settings. Do not change install-features.json directly.";
463
467
  if (normalizedTarget === globalSettings || normalizedTarget === projectSettings)
464
468
  return SETTINGS_FILE_DIRECT_WRITE_BLOCK_REASON;
465
469
  }
@@ -490,7 +494,7 @@ function getRequestedChildLaunches(input) {
490
494
  return collectRequestedChildLaunches(input, launches), launches;
491
495
  }
492
496
  function requiresManualApproval(toolName, input) {
493
- return isMutatingTool(toolName) ? !0 : toolName === "subagent" ? getRequestedChildLaunches(input).some((launch) => launch.permissions === "full") : toolName === "code_rewrite" && isCodeRewriteMutating(input);
497
+ return toolName === "browser" ? input.action === "act" : isMutatingTool(toolName) ? !0 : toolName === "subagent" ? getRequestedChildLaunches(input).some((launch) => launch.permissions === "full") : toolName === "code_rewrite" && isCodeRewriteMutating(input);
494
498
  }
495
499
  function firstTaskText(value) {
496
500
  return typeof value == "string" && value.trim() ? sanitizeDetail(value) : "";
@@ -596,7 +600,7 @@ async function gateToolCall(toolName, input, cwd, sessionId, options) {
596
600
  detail = sanitizeDetail(launches.map((launch) => `${launch.description}
597
601
  permissions: ${launch.permissions}`).join(`
598
602
  `));
599
- } else toolName === "code_rewrite" ? (action = "code_rewrite", detail = sanitizeDetail(input.path ?? input.pattern)) : (action = toolName, detail = "");
603
+ } else toolName === "browser" ? (action = "browser", detail = sanitizeDetail(`${input.interaction ?? ""} ${input.role ?? ""} ${input.name ?? input.label ?? ""}. Website effects cannot be undone.`)) : toolName === "code_rewrite" ? (action = "code_rewrite", detail = sanitizeDetail(input.path ?? input.pattern)) : (action = toolName, detail = "");
600
604
  if (ctx.approvals.has(action))
601
605
  return;
602
606
  if (!approvalHandler)
@@ -620,6 +624,7 @@ permissions: ${launch.permissions}`).join(`
620
624
 
621
625
  export {
622
626
  PLAN_MODE_ADDENDUM,
627
+ PERMISSION_MODES,
623
628
  nextPermissionMode,
624
629
  isPlanModeActive,
625
630
  restorePermissionModeAfterPlan,
@@ -10,7 +10,7 @@ import {
10
10
  import * as os from "node:os";
11
11
  import { basename } from "node:path";
12
12
  import { pathToFileURL } from "node:url";
13
- import { getCapabilities, getImageDimensions, hyperlink, imageFallback } from "@ashx-j/lunr-tui";
13
+ import { getCapabilities, getImageDimensions, hyperlink, imageFallback, Text, truncateToWidth, wrapTextWithAnsi } from "@ashx-j/lunr-tui";
14
14
 
15
15
  // packages/coding-agent/dist/utils/ansi.js
16
16
  function ansiRegex({ onlyFirst = !1 } = {}) {
@@ -71,13 +71,27 @@ function toolGroupRole(continuation, followed) {
71
71
  function toolGroupTree(context) {
72
72
  return !context.expanded;
73
73
  }
74
- function formatGroupedCall(opts) {
74
+ var GroupedCallText = class extends Text {
75
+ call;
76
+ formattedWidth;
77
+ setCall(call) {
78
+ this.setText(formatGroupedCall(call)), this.call = call;
79
+ }
80
+ setText(text) {
81
+ this.call = void 0, this.formattedWidth = void 0, super.setText(text);
82
+ }
83
+ render(width) {
84
+ return this.call && this.formattedWidth !== width && (super.setText(formatGroupedCall(this.call, width)), this.formattedWidth = width), super.render(width);
85
+ }
86
+ };
87
+ function formatGroupedCall(opts, width) {
75
88
  let detail = opts.detail?.trim() ? opts.detail : "";
76
89
  if (!((opts.tree ?? opts.compact === !0) && opts.role !== "singleton" && detail.length > 0))
77
90
  return detail ? `${opts.dot} ${opts.title} ${detail}` : `${opts.dot} ${opts.title}`;
78
- let branch = opts.role === "last" ? "\u2514\u2500" : "\u251C\u2500";
91
+ let prefix = ` ${opts.role === "last" ? "\u2514\u2500" : "\u251C\u2500"} `, continuation = opts.role === "last" ? " " : " \u2502 ", leaf = width === void 0 ? `${prefix}${detail}` : wrapTextWithAnsi(replaceTabs(detail), Math.max(1, width - prefix.length)).map((line, index) => truncateToWidth(`${index === 0 ? prefix : continuation}${line}`, width, "")).join(`
92
+ `);
79
93
  return opts.role === "first" ? `${opts.dot} ${opts.title}
80
- ${branch} ${detail}` : ` ${branch} ${detail}`;
94
+ ${leaf}` : leaf;
81
95
  }
82
96
  function toolStatusDot(state, theme) {
83
97
  return theme.fg(state === "pending" ? "muted" : state, "\u25CF");
@@ -117,6 +131,7 @@ export {
117
131
  invalidArgText,
118
132
  toolGroupRole,
119
133
  toolGroupTree,
134
+ GroupedCallText,
120
135
  formatGroupedCall,
121
136
  toolStatusDot,
122
137
  toolStatusDotFromContext,
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-I6R76AG7.js";
5
5
  import {
6
6
  DynamicBorder
7
- } from "./chunk-BOHIDQT4.js";
7
+ } from "./chunk-6B2POMK7.js";
8
8
  import {
9
9
  keyHint,
10
10
  rawKeyHint
11
- } from "./chunk-DDWHZ633.js";
11
+ } from "./chunk-GNN7H3B7.js";
12
12
  import {
13
13
  theme
14
- } from "./chunk-RNBHABBA.js";
14
+ } from "./chunk-7QWNYZDI.js";
15
15
 
16
16
  // packages/coding-agent/dist/modes/interactive/components/extension-selector.js
17
17
  import { Container, getKeybindings, Spacer, Text } from "@ashx-j/lunr-tui";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  theme
4
- } from "./chunk-RNBHABBA.js";
4
+ } from "./chunk-7QWNYZDI.js";
5
5
 
6
6
  // packages/coding-agent/dist/modes/interactive/components/dynamic-border.js
7
7
  var DynamicBorder = class {
@@ -753,6 +753,9 @@ function getResolvedThemeColors(themeName) {
753
753
  typeof value == "number" ? cssColors[key] = ansi256ToHex(value) : value === "" ? cssColors[key] = defaultText : cssColors[key] = value;
754
754
  return cssColors;
755
755
  }
756
+ function isLightTheme(themeName) {
757
+ return themeName === "light";
758
+ }
756
759
  function getThemeExportColors(themeName) {
757
760
  let name = themeName ?? currentThemeName ?? getDefaultTheme();
758
761
  try {
@@ -957,6 +960,7 @@ export {
957
960
  FS_WATCH_RETRY_DELAY_MS,
958
961
  closeWatcher,
959
962
  watchWithErrorHandler,
963
+ DEFAULT_THEME_GLYPHS,
960
964
  Theme,
961
965
  getAvailableThemes,
962
966
  getAvailableThemesWithPaths,
@@ -964,7 +968,9 @@ export {
964
968
  getThemeByName,
965
969
  parseAutoThemeSetting,
966
970
  resolveThemeSetting,
971
+ getThemeForRgbColor,
967
972
  detectTerminalBackgroundFromEnv,
973
+ detectTerminalBackgroundTheme,
968
974
  detectTerminalThemeForAuto,
969
975
  getDefaultTheme,
970
976
  theme,
@@ -976,6 +982,7 @@ export {
976
982
  getThemeName,
977
983
  stopThemeWatcher,
978
984
  getResolvedThemeColors,
985
+ isLightTheme,
979
986
  getThemeExportColors,
980
987
  highlightCode,
981
988
  getLanguageFromPath,
@@ -0,0 +1,205 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ SessionManager
4
+ } from "./chunk-XLTL257W.js";
5
+ import {
6
+ SessionOwnership,
7
+ canonicalSessionPath,
8
+ isSessionOwnerDead,
9
+ readSessionOwner,
10
+ writeSessionJson
11
+ } from "./chunk-UAEOTO52.js";
12
+ import {
13
+ getAgentDir
14
+ } from "./chunk-FQMM2EZ2.js";
15
+
16
+ // packages/coding-agent/dist/core/session-handoff.js
17
+ import { createHash, randomUUID } from "node:crypto";
18
+ import { existsSync, mkdirSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
19
+ import { join } from "node:path";
20
+ import { setTimeout as delay } from "node:timers/promises";
21
+ var HANDOFF_DURATION_MS = 480 * 60 * 1e3;
22
+ function registry(agentDir = getAgentDir()) {
23
+ return join(agentDir, "session-handoffs");
24
+ }
25
+ function recordPath(file, agentDir) {
26
+ return join(registry(agentDir), `${createHash("sha256").update(canonicalSessionPath(file)).digest("hex")}.json`);
27
+ }
28
+ function readRecord(file, agentDir) {
29
+ try {
30
+ return JSON.parse(readFileSync(recordPath(file, agentDir), "utf8"));
31
+ } catch {
32
+ return;
33
+ }
34
+ }
35
+ function saveRecord(manager, update, agentDir) {
36
+ manager.assertWritable();
37
+ let file = manager.getSessionFile();
38
+ if (!manager.isPersisted() || !file)
39
+ throw new Error("Only saved sessions can be handed off.");
40
+ let record = {
41
+ version: 1,
42
+ lastTuiActivityAt: 0,
43
+ ...readRecord(file, agentDir),
44
+ ...update,
45
+ sessionFile: canonicalSessionPath(file),
46
+ sessionId: manager.getSessionId(),
47
+ cwd: manager.getCwd(),
48
+ sessionDir: manager.getSessionDir()
49
+ };
50
+ return mkdirSync(registry(agentDir), { recursive: !0 }), writeSessionJson(recordPath(file, agentDir), record), record;
51
+ }
52
+ function recordTuiActivity(manager, agentDir, now = Date.now()) {
53
+ manager.isPersisted() && saveRecord(manager, { lastTuiActivityAt: now }, agentDir);
54
+ }
55
+ function markSessionHandoff(manager, agentDir, now = Date.now()) {
56
+ if (!manager.getSessionFile() || !existsSync(manager.getSessionFile()))
57
+ throw new Error("Session is not saved yet. Complete a turn before marking it for handoff.");
58
+ return saveRecord(manager, { manualHandoff: { markedAt: now, expiresAt: now + HANDOFF_DURATION_MS }, lastTuiActivityAt: now }, agentDir);
59
+ }
60
+ function cancelSessionHandoff(manager, agentDir) {
61
+ saveRecord(manager, { manualHandoff: void 0 }, agentDir);
62
+ }
63
+ function listRegisteredSessions(agentDir) {
64
+ let directory = registry(agentDir);
65
+ if (!existsSync(directory))
66
+ return [];
67
+ let records = [];
68
+ for (let name of readdirSync(directory).filter((name2) => name2.endsWith(".json")))
69
+ try {
70
+ let record = JSON.parse(readFileSync(join(directory, name), "utf8"));
71
+ if (record.version !== 1 || typeof record.sessionFile != "string" || !Number.isFinite(record.lastTuiActivityAt) || SessionManager.openReadOnly(record.sessionFile).getSessionId() !== record.sessionId)
72
+ continue;
73
+ records.push(record);
74
+ } catch {
75
+ }
76
+ return records;
77
+ }
78
+ function listRegisteredSessionPaths(agentDir) {
79
+ return listRegisteredSessions(agentDir).map((record) => record.sessionFile);
80
+ }
81
+ function listHandoffCandidates(agentDir, now = Date.now()) {
82
+ return listRegisteredSessions(agentDir).filter((record) => record.manualHandoff && record.manualHandoff.expiresAt > now).sort((a, b) => b.manualHandoff.markedAt - a.manualHandoff.markedAt);
83
+ }
84
+ function latestTuiSession(agentDir) {
85
+ return listRegisteredSessions(agentDir).sort((a, b) => b.lastTuiActivityAt - a.lastTuiActivityAt)[0];
86
+ }
87
+ var SessionTransferError = class extends Error {
88
+ code;
89
+ constructor(message, code = "failed") {
90
+ super(message), this.name = "SessionTransferError", this.code = code;
91
+ }
92
+ };
93
+ function transferPath(file) {
94
+ return `${canonicalSessionPath(file)}.transfer.json`;
95
+ }
96
+ async function requestSessionTransfer(file, options = {}) {
97
+ options.signal?.throwIfAborted();
98
+ let owner = readSessionOwner(file);
99
+ if (!owner || isSessionOwnerDead(owner))
100
+ return;
101
+ let path = transferPath(file), request = {
102
+ id: randomUUID(),
103
+ generation: owner.generation,
104
+ requester: `${process.pid}:${randomUUID()}`,
105
+ stop: options.stop === !0,
106
+ expiresAt: Date.now() + (options.timeoutMs ?? 15e3)
107
+ }, publication = new SessionOwnership(`${path}.publication`);
108
+ try {
109
+ if (existsSync(path)) {
110
+ let pending = JSON.parse(readFileSync(path, "utf8"));
111
+ if (!Number.isFinite(pending.expiresAt) || pending.expiresAt > Date.now())
112
+ throw new SessionTransferError("Another transfer request is pending.", "busy");
113
+ unlinkSync(path);
114
+ }
115
+ writeFileSync(path, JSON.stringify(request), { flag: "wx", mode: 384 });
116
+ } finally {
117
+ publication.release();
118
+ }
119
+ let responsePath = `${path}.${request.id}.response`;
120
+ try {
121
+ for (; Date.now() < request.expiresAt; ) {
122
+ options.signal?.throwIfAborted();
123
+ let current = readSessionOwner(file);
124
+ if (!current || isSessionOwnerDead(current))
125
+ return;
126
+ if (current.generation !== owner.generation)
127
+ throw new SessionTransferError("Another runtime acquired the session. Retry the transfer.", "changed");
128
+ if (existsSync(responsePath)) {
129
+ let response = JSON.parse(readFileSync(responsePath, "utf8"));
130
+ throw new SessionTransferError(response.error ?? "Owner did not release the session.", response.code ?? "failed");
131
+ }
132
+ await delay(100, void 0, { signal: options.signal });
133
+ }
134
+ throw new SessionTransferError("Owner did not release the session. It may be busy or running an older lunR. Close it normally or retry; no takeover occurred.", "timeout");
135
+ } finally {
136
+ try {
137
+ let cleanup = new SessionOwnership(`${path}.publication`);
138
+ try {
139
+ existsSync(path) && JSON.parse(readFileSync(path, "utf8")).id === request.id && unlinkSync(path);
140
+ } finally {
141
+ cleanup.release();
142
+ }
143
+ } catch {
144
+ }
145
+ try {
146
+ unlinkSync(responsePath);
147
+ } catch {
148
+ }
149
+ }
150
+ }
151
+ function registerTransferHandler(manager, handler) {
152
+ let owner = manager.getOwnership()?.owner;
153
+ if (!owner)
154
+ return () => {
155
+ };
156
+ let path = transferPath(owner.file), handling = !1, lastId, timer = setInterval(() => {
157
+ if (handling || !existsSync(path))
158
+ return;
159
+ let request;
160
+ try {
161
+ request = JSON.parse(readFileSync(path, "utf8"));
162
+ } catch {
163
+ return;
164
+ }
165
+ if (request.id === lastId || request.generation !== owner.generation || request.expiresAt <= Date.now())
166
+ return;
167
+ lastId = request.id, handling = !0;
168
+ let controller = new AbortController(), watchRequest = setInterval(() => {
169
+ try {
170
+ (Date.now() >= request.expiresAt || JSON.parse(readFileSync(path, "utf8")).id !== request.id) && controller.abort();
171
+ } catch {
172
+ controller.abort();
173
+ }
174
+ }, 50);
175
+ watchRequest.unref(), (async () => {
176
+ try {
177
+ if (manager.assertWritable(), await handler({ stop: request.stop === !0, signal: controller.signal }), readSessionOwner(owner.file)?.generation === owner.generation)
178
+ throw new SessionTransferError("Owner did not release the session.");
179
+ } catch (error) {
180
+ existsSync(path) && writeSessionJson(`${path}.${request.id}.response`, {
181
+ error: error instanceof Error ? error.message : String(error),
182
+ code: error instanceof SessionTransferError ? error.code : "failed"
183
+ });
184
+ } finally {
185
+ clearInterval(watchRequest), handling = !1;
186
+ }
187
+ })().catch(() => {
188
+ });
189
+ }, 100);
190
+ return timer.unref(), () => clearInterval(timer);
191
+ }
192
+
193
+ export {
194
+ HANDOFF_DURATION_MS,
195
+ recordTuiActivity,
196
+ markSessionHandoff,
197
+ cancelSessionHandoff,
198
+ listRegisteredSessions,
199
+ listRegisteredSessionPaths,
200
+ listHandoffCandidates,
201
+ latestTuiSession,
202
+ SessionTransferError,
203
+ requestSessionTransfer,
204
+ registerTransferHandler
205
+ };
@@ -1,7 +1,4 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
- import {
3
- spinners
4
- } from "./chunk-5ZH3ZFIZ.js";
5
2
 
6
3
  // packages/coding-agent/dist/core/subagent-cancellation.js
7
4
  var key = /* @__PURE__ */ Symbol.for("@lunr/subagent-cancellation"), store = globalThis, handlers = store[key] ?? /* @__PURE__ */ new Map();
@@ -46,15 +43,9 @@ var SubagentEscapeSequence = class {
46
43
  }
47
44
  };
48
45
 
49
- // packages/coding-agent/dist/core/subagent-spinner.js
50
- function getSubagentSpinnerDefinition(name) {
51
- return spinners[name];
52
- }
53
-
54
46
  export {
55
47
  registerSubagentCancellation,
56
48
  getSubagentCancellation,
57
49
  createSubagentCancellation,
58
- SubagentEscapeSequence,
59
- getSubagentSpinnerDefinition
50
+ SubagentEscapeSequence
60
51
  };