@ashx-j/lunr 0.2.22 → 0.2.24

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 (277) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/README.md +15 -13
  3. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  4. package/dist/builtin-extensions/ashxj-tui.js +2 -2
  5. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  6. package/dist/builtin-extensions/lunr-browser.d.ts +7 -1
  7. package/dist/builtin-extensions/lunr-browser.d.ts.map +1 -1
  8. package/dist/builtin-extensions/lunr-browser.js +116 -3
  9. package/dist/builtin-extensions/lunr-browser.js.map +1 -1
  10. package/dist/builtin-extensions/lunr-plan-tools.d.ts +7 -7
  11. package/dist/builtin-extensions/lunr-plan-tools.d.ts.map +1 -1
  12. package/dist/builtin-extensions/lunr-plan-tools.js +12 -12
  13. package/dist/builtin-extensions/lunr-plan-tools.js.map +1 -1
  14. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-intercom/index.js +2 -0
  16. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  17. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -1
  18. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +1 -0
  19. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -1
  20. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  21. package/dist/builtin-extensions/pi-mcp-adapter/index.js +1 -1
  22. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  23. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +1 -1
  25. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  27. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  29. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -4
  30. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  31. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +6 -4
  32. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  33. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +2 -0
  34. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -1
  35. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +6 -3
  36. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -1
  37. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  38. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +7 -2
  39. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  40. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +2 -0
  41. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +4 -0
  43. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  44. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  45. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  47. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +2 -0
  48. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  49. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +9 -0
  50. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +41 -3
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +1 -0
  55. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +5 -1
  57. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +3 -2
  60. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +23 -0
  63. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
  65. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +2 -0
  69. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +17 -15
  71. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  73. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +3 -1
  74. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  75. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
  76. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +2 -2
  77. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
  78. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1 -0
  79. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  80. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts +1 -1
  82. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts.map +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js +3 -2
  84. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js.map +1 -1
  85. package/dist/core/agent-session.d.ts +20 -1
  86. package/dist/core/agent-session.d.ts.map +1 -1
  87. package/dist/core/agent-session.js +235 -107
  88. package/dist/core/agent-session.js.map +1 -1
  89. package/dist/core/browser/schema.d.ts +1 -1
  90. package/dist/core/browser/schema.d.ts.map +1 -1
  91. package/dist/core/browser/schema.js +1 -1
  92. package/dist/core/browser/schema.js.map +1 -1
  93. package/dist/core/catalog-cache-scope.d.ts.map +1 -1
  94. package/dist/core/catalog-cache-scope.js +3 -1
  95. package/dist/core/catalog-cache-scope.js.map +1 -1
  96. package/dist/core/model-runtime.d.ts.map +1 -1
  97. package/dist/core/model-runtime.js +3 -2
  98. package/dist/core/model-runtime.js.map +1 -1
  99. package/dist/core/permissions.d.ts +16 -23
  100. package/dist/core/permissions.d.ts.map +1 -1
  101. package/dist/core/permissions.js +66 -141
  102. package/dist/core/permissions.js.map +1 -1
  103. package/dist/core/plan-mode.d.ts +10 -12
  104. package/dist/core/plan-mode.d.ts.map +1 -1
  105. package/dist/core/plan-mode.js +16 -18
  106. package/dist/core/plan-mode.js.map +1 -1
  107. package/dist/core/runtime-bridges.d.ts.map +1 -1
  108. package/dist/core/runtime-bridges.js +2 -0
  109. package/dist/core/runtime-bridges.js.map +1 -1
  110. package/dist/core/sdk.d.ts.map +1 -1
  111. package/dist/core/sdk.js +13 -6
  112. package/dist/core/sdk.js.map +1 -1
  113. package/dist/core/session-manager.d.ts.map +1 -1
  114. package/dist/core/session-manager.js +9 -2
  115. package/dist/core/session-manager.js.map +1 -1
  116. package/dist/core/settings-manager.d.ts +13 -1
  117. package/dist/core/settings-manager.d.ts.map +1 -1
  118. package/dist/core/settings-manager.js +49 -1
  119. package/dist/core/settings-manager.js.map +1 -1
  120. package/dist/core/slash-commands.d.ts.map +1 -1
  121. package/dist/core/slash-commands.js +4 -4
  122. package/dist/core/slash-commands.js.map +1 -1
  123. package/dist/core/subagent-permission-inherit.d.ts +6 -10
  124. package/dist/core/subagent-permission-inherit.d.ts.map +1 -1
  125. package/dist/core/subagent-permission-inherit.js +14 -14
  126. package/dist/core/subagent-permission-inherit.js.map +1 -1
  127. package/dist/core/subagent-wait-interruption.d.ts +11 -0
  128. package/dist/core/subagent-wait-interruption.d.ts.map +1 -0
  129. package/dist/core/subagent-wait-interruption.js +19 -0
  130. package/dist/core/subagent-wait-interruption.js.map +1 -0
  131. package/dist/core/system-prompt.d.ts +2 -0
  132. package/dist/core/system-prompt.d.ts.map +1 -1
  133. package/dist/core/system-prompt.js +11 -4
  134. package/dist/core/system-prompt.js.map +1 -1
  135. package/dist/core/tools/render-utils.d.ts +3 -3
  136. package/dist/core/tools/render-utils.d.ts.map +1 -1
  137. package/dist/core/tools/render-utils.js +3 -3
  138. package/dist/core/tools/render-utils.js.map +1 -1
  139. package/dist/gateway/adapters/discord.d.ts.map +1 -1
  140. package/dist/gateway/adapters/discord.js +1 -1
  141. package/dist/gateway/adapters/discord.js.map +1 -1
  142. package/dist/gateway/approval.d.ts +2 -6
  143. package/dist/gateway/approval.d.ts.map +1 -1
  144. package/dist/gateway/approval.js +3 -7
  145. package/dist/gateway/approval.js.map +1 -1
  146. package/dist/gateway/mobile-commands.d.ts.map +1 -1
  147. package/dist/gateway/mobile-commands.js +12 -11
  148. package/dist/gateway/mobile-commands.js.map +1 -1
  149. package/dist/gateway/router.d.ts.map +1 -1
  150. package/dist/gateway/router.js +1 -1
  151. package/dist/gateway/router.js.map +1 -1
  152. package/dist/main.d.ts.map +1 -1
  153. package/dist/main.js +1 -2
  154. package/dist/main.js.map +1 -1
  155. package/dist/modes/interactive/components/assistant-message.d.ts +10 -2
  156. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  157. package/dist/modes/interactive/components/assistant-message.js +29 -5
  158. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  159. package/dist/modes/interactive/components/copyable-text.d.ts +2 -6
  160. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -1
  161. package/dist/modes/interactive/components/copyable-text.js +26 -35
  162. package/dist/modes/interactive/components/copyable-text.js.map +1 -1
  163. package/dist/modes/interactive/components/settings-selector.d.ts +7 -1
  164. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  165. package/dist/modes/interactive/components/settings-selector.js +36 -3
  166. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  167. package/dist/modes/interactive/components/thinking-tail.d.ts +9 -2
  168. package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -1
  169. package/dist/modes/interactive/components/thinking-tail.js +43 -1
  170. package/dist/modes/interactive/components/thinking-tail.js.map +1 -1
  171. package/dist/modes/interactive/components/tool-execution.d.ts +5 -3
  172. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  173. package/dist/modes/interactive/components/tool-execution.js +44 -45
  174. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  175. package/dist/modes/interactive/interactive-mode.d.ts +7 -2
  176. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  177. package/dist/modes/interactive/interactive-mode.js +194 -129
  178. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  179. package/dist/modes/interactive/theme/theme.d.ts +1 -0
  180. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  181. package/dist/modes/interactive/theme/theme.js +23 -0
  182. package/dist/modes/interactive/theme/theme.js.map +1 -1
  183. package/dist/node-runtime/{agent-session-services-NQ6GKOIK.js → agent-session-services-IEF7LQWD.js} +12 -13
  184. package/dist/node-runtime/{builtin-extensions-GVC6IFDU.js → builtin-extensions-EBAWTH4M.js} +5 -5
  185. package/dist/node-runtime/{chunk-XLTL257W.js → chunk-2KIPT4HJ.js} +5 -1
  186. package/dist/node-runtime/{chunk-IWOWXRWU.js → chunk-5Q3EHOHI.js} +21 -21
  187. package/dist/node-runtime/{chunk-6B2POMK7.js → chunk-6VYZ5UFP.js} +1 -1
  188. package/dist/node-runtime/{chunk-TQGPP4SC.js → chunk-CDVHZOOK.js} +1 -1
  189. package/dist/node-runtime/{chunk-TDL7UWJ7.js → chunk-DE2JB6J5.js} +189 -70
  190. package/dist/node-runtime/{chunk-YJMMG7C6.js → chunk-DSIKTUPW.js} +1 -1
  191. package/dist/node-runtime/{chunk-IQIEU7SB.js → chunk-F4FLTQKV.js} +2 -2
  192. package/dist/node-runtime/{chunk-GMHJCCEN.js → chunk-FU6OODRZ.js} +4 -1
  193. package/dist/node-runtime/{chunk-5BNJ4JUH.js → chunk-GJ2RDBRL.js} +1 -1
  194. package/dist/node-runtime/{chunk-GNN7H3B7.js → chunk-GS42T6MX.js} +1 -1
  195. package/dist/node-runtime/{chunk-OFKSVRV7.js → chunk-GYIXXQAO.js} +1 -1
  196. package/dist/node-runtime/{chunk-BX2RB477.js → chunk-HFVZUPFJ.js} +1 -1
  197. package/dist/node-runtime/{chunk-PC2Z5TKZ.js → chunk-HMBGROQK.js} +3 -3
  198. package/dist/node-runtime/{chunk-AZJHNQKQ.js → chunk-I54LGHWM.js} +1 -1
  199. package/dist/node-runtime/{chunk-IVXYUAJE.js → chunk-IF24A3FH.js} +1 -1
  200. package/dist/node-runtime/{chunk-VJPTNWAP.js → chunk-IGV54Q5V.js} +3 -3
  201. package/dist/node-runtime/{chunk-QDGKKKUM.js → chunk-K5AGHH57.js} +18 -13
  202. package/dist/node-runtime/{chunk-GS66LV4M.js → chunk-KJ6DWS3K.js} +4 -4
  203. package/dist/node-runtime/{chunk-EQ63ANHL.js → chunk-L3LX4SNR.js} +310 -192
  204. package/dist/node-runtime/{chunk-VSELYKWU.js → chunk-LWYIVUGV.js} +2 -1
  205. package/dist/node-runtime/{chunk-JHYKXIMM.js → chunk-MPKSOJBT.js} +1 -1
  206. package/dist/node-runtime/{chunk-UAFLNHSH.js → chunk-OF7PWMG4.js} +8 -8
  207. package/dist/node-runtime/{chunk-CSUZVNYE.js → chunk-OVX6X377.js} +10 -6
  208. package/dist/node-runtime/{chunk-ORH324EP.js → chunk-PCEW76PM.js} +3 -3
  209. package/dist/node-runtime/{chunk-6427XAWG.js → chunk-QH6YL7VK.js} +3 -3
  210. package/dist/node-runtime/{chunk-LMBNLFXQ.js → chunk-QM43FEAE.js} +15 -15
  211. package/dist/node-runtime/{chunk-7QWNYZDI.js → chunk-RDDAZOMU.js} +16 -0
  212. package/dist/node-runtime/{chunk-WADV2VDS.js → chunk-RORY2HMJ.js} +46 -5
  213. package/dist/node-runtime/{chunk-H3XF4UVQ.js → chunk-RWTKOC3B.js} +1 -1
  214. package/dist/node-runtime/{chunk-V2A7CEXK.js → chunk-WHLRAGUQ.js} +13 -12
  215. package/dist/node-runtime/{chunk-GJSAD4AB.js → chunk-Y73WPE6S.js} +17 -17
  216. package/dist/node-runtime/{chunk-VSSXXL36.js → chunk-YDO2F2IA.js} +2 -2
  217. package/dist/node-runtime/{chunk-BFNXONG3.js → chunk-YVI6L6LU.js} +5 -5
  218. package/dist/node-runtime/{chunk-5D7LC2ZQ.js → chunk-ZXSGTGJ6.js} +54 -85
  219. package/dist/node-runtime/cli-runtime.js +1 -1
  220. package/dist/node-runtime/{command-3JHHXOPX.js → command-7BG7VVTS.js} +3 -3
  221. package/dist/node-runtime/{commands-KAMO2T6P.js → commands-NZLSOHPE.js} +2 -2
  222. package/dist/node-runtime/{commands-2JVNFGMQ.js → commands-QFDKNQTL.js} +9 -9
  223. package/dist/node-runtime/{direct-tool-executor-YAVOLDFY.js → direct-tool-executor-77GW4F5P.js} +3 -3
  224. package/dist/node-runtime/{export-html-KBFVV63J.js → export-html-VM4J2MNR.js} +2 -2
  225. package/dist/node-runtime/{extension-input-K24TVKVW.js → extension-input-E7BJZ35H.js} +4 -4
  226. package/dist/node-runtime/{extension-selector-SPNF7EDR.js → extension-selector-WU42XDTU.js} +4 -4
  227. package/dist/node-runtime/{gateway-VFO6SFKK.js → gateway-TWR3N65G.js} +14 -14
  228. package/dist/node-runtime/index.js +26 -27
  229. package/dist/node-runtime/{init-X2LIUB2H.js → init-HS6NQXSK.js} +2 -2
  230. package/dist/node-runtime/{install-cli-C3CF7O7N.js → install-cli-VAP6KBFN.js} +1 -1
  231. package/dist/node-runtime/{interactive-mode-LOM6AIF6.js → interactive-mode-6J5VZ2TT.js} +19 -20
  232. package/dist/node-runtime/{interactive-view-IDSCPPK7.js → interactive-view-NGFAMHPW.js} +7 -7
  233. package/dist/node-runtime/lunr-browser-J5ZZYVGM.js +174 -0
  234. package/dist/node-runtime/{lunr-cron-BKHGNBKT.js → lunr-cron-CXOL37AL.js} +7 -7
  235. package/dist/node-runtime/main.js +22 -23
  236. package/dist/node-runtime/{mobile-commands-HMP25WBC.js → mobile-commands-VTBM5DSZ.js} +6 -6
  237. package/dist/node-runtime/{model-runtime-PLQKAG4B.js → model-runtime-OO5HFLWE.js} +1 -1
  238. package/dist/node-runtime/{package-manager-cli-VCK4E2RC.js → package-manager-cli-ZLW5DZXF.js} +9 -10
  239. package/dist/node-runtime/{pi-intercom-HBPK5HSJ.js → pi-intercom-QM53RLTS.js} +2 -0
  240. package/dist/node-runtime/{pi-mcp-adapter-E6WULBKF.js → pi-mcp-adapter-5UKBZP44.js} +7 -6
  241. package/dist/node-runtime/{pi-subagents-FEUDLJOE.js → pi-subagents-XPCLLKIM.js} +65 -21
  242. package/dist/node-runtime/{proxy-modes-OSQCWRBI.js → proxy-modes-LGEUYD7R.js} +3 -3
  243. package/dist/node-runtime/rpc-entry.js +22 -23
  244. package/dist/node-runtime/{rpc-mode-P5ODXPEG.js → rpc-mode-O3XV4SID.js} +2 -2
  245. package/dist/node-runtime/{runtime-bridges-3XUQ46XW.js → runtime-bridges-QYXUX2TG.js} +8 -1
  246. package/dist/node-runtime/{session-handoff-HC7R5E24.js → session-handoff-GWARVEWT.js} +2 -2
  247. package/dist/node-runtime/{session-manager-CFN4UFM2.js → session-manager-JB5J6XBN.js} +1 -1
  248. package/dist/node-runtime/{session-selector-LHRMJOKT.js → session-selector-GIM4DHQ2.js} +4 -4
  249. package/dist/node-runtime/{settings-manager-UUZ6NUXI.js → settings-manager-WCQDUVQB.js} +7 -4
  250. package/dist/node-runtime/{setup-NRXVZBLJ.js → setup-YRBKH2LD.js} +2 -2
  251. package/dist/node-runtime/{subagent-executor-MLUMBWCP.js → subagent-executor-OTNISDQU.js} +47 -10
  252. package/dist/node-runtime/{theme-U7IGOA7O.js → theme-UOO5RVFN.js} +1 -1
  253. package/dist/node-runtime/{update-cli-4TP25CNW.js → update-cli-VBR2777K.js} +1 -2
  254. package/dist/startup/interactive-view.d.ts.map +1 -1
  255. package/dist/startup/interactive-view.js +5 -1
  256. package/dist/startup/interactive-view.js.map +1 -1
  257. package/docs/browser.md +1 -1
  258. package/docs/features.md +17 -14
  259. package/docs/index.md +1 -1
  260. package/docs/keybindings.md +1 -1
  261. package/docs/providers.md +6 -2
  262. package/docs/quickstart.md +2 -2
  263. package/docs/settings.md +2 -1
  264. package/docs/usage.md +6 -6
  265. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  266. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  267. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  268. package/examples/extensions/gondolin/package-lock.json +2 -2
  269. package/examples/extensions/gondolin/package.json +1 -1
  270. package/examples/extensions/plan-mode/README.md +1 -1
  271. package/examples/extensions/sandbox/package-lock.json +2 -2
  272. package/examples/extensions/sandbox/package.json +1 -1
  273. package/examples/extensions/with-deps/package-lock.json +2 -2
  274. package/examples/extensions/with-deps/package.json +1 -1
  275. package/package.json +4 -4
  276. package/dist/node-runtime/chunk-LISUTZS3.js +0 -19
  277. package/dist/node-runtime/lunr-browser-YNW7FTYX.js +0 -87
@@ -2,7 +2,7 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
2
2
  import {
3
3
  ModelRuntime,
4
4
  refreshModelCandidatesForInit
5
- } from "./chunk-GS66LV4M.js";
5
+ } from "./chunk-KJ6DWS3K.js";
6
6
  import "./chunk-URD2SLIT.js";
7
7
  import "./chunk-CSFI6YXL.js";
8
8
  import "./chunk-2MI5OPMN.js";
@@ -2,27 +2,26 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
2
2
  import {
3
3
  createProjectTrustContext,
4
4
  resolveProjectTrusted
5
- } from "./chunk-UAFLNHSH.js";
5
+ } from "./chunk-OF7PWMG4.js";
6
6
  import "./chunk-YPHAIRZT.js";
7
7
  import {
8
8
  DefaultPackageManager,
9
9
  DefaultResourceLoader
10
- } from "./chunk-IQIEU7SB.js";
10
+ } from "./chunk-F4FLTQKV.js";
11
11
  import "./chunk-OBMWP3I5.js";
12
12
  import "./chunk-DVGWF6A2.js";
13
13
  import "./chunk-QFWG2RVL.js";
14
14
  import {
15
15
  SettingsManager
16
- } from "./chunk-WADV2VDS.js";
16
+ } from "./chunk-RORY2HMJ.js";
17
17
  import "./chunk-UP2XBVH5.js";
18
18
  import "./chunk-VWCE2HSZ.js";
19
- import "./chunk-LISUTZS3.js";
20
19
  import {
21
20
  ProjectTrustStore,
22
21
  hasTrustRequiringProjectResources
23
22
  } from "./chunk-HTFRRDSF.js";
24
23
  import "./chunk-URD2SLIT.js";
25
- import "./chunk-5BNJ4JUH.js";
24
+ import "./chunk-GJ2RDBRL.js";
26
25
  import "./chunk-CGBXPL3E.js";
27
26
  import "./chunk-M3LZLQW2.js";
28
27
  import "./chunk-UJOCPOMX.js";
@@ -30,21 +29,21 @@ import "./chunk-IMLCWLPI.js";
30
29
  import "./chunk-5EFIU3OM.js";
31
30
  import "./chunk-PVCDKGR6.js";
32
31
  import "./chunk-R3K2F5GI.js";
33
- import "./chunk-6427XAWG.js";
34
- import "./chunk-PC2Z5TKZ.js";
32
+ import "./chunk-QH6YL7VK.js";
33
+ import "./chunk-HMBGROQK.js";
35
34
  import "./chunk-I6R76AG7.js";
36
35
  import {
37
36
  DynamicBorder
38
- } from "./chunk-6B2POMK7.js";
37
+ } from "./chunk-6VYZ5UFP.js";
39
38
  import {
40
39
  keyHint,
41
40
  rawKeyHint
42
- } from "./chunk-GNN7H3B7.js";
41
+ } from "./chunk-GS42T6MX.js";
43
42
  import {
44
43
  initTheme,
45
44
  stopThemeWatcher,
46
45
  theme
47
- } from "./chunk-7QWNYZDI.js";
46
+ } from "./chunk-RDDAZOMU.js";
48
47
  import {
49
48
  APP_NAME,
50
49
  CONFIG_DIR_NAME,
@@ -1262,6 +1262,8 @@ function getNamePollMs() {
1262
1262
  return 1e3;
1263
1263
  }
1264
1264
  function piIntercomExtension(pi) {
1265
+ if (process.env.PI_SUBAGENT_CHILD === "1" && process.env.PI_SUBAGENT_COMMUNICATION_ENABLED === "0")
1266
+ return;
1265
1267
  let client = null, config = loadConfig(), askTimeoutMs = getAskTimeoutMs(), runtimeContext = null, currentSessionId = null, currentModel = "unknown", sessionStartedAt = null, reconnectTimer = null, namePollTimer = null, lastPresenceName = null, previousIntercomSessionId = process.env[INTERCOM_SESSION_ID_ENV], reconnectPromise = null, reconnectPromiseGeneration = null, startupConnectTimer = null, reconnectAttempt = 0, shuttingDown = !1, disposed = !0, runtimeStarted = !1, runtimeGeneration = 0, agentRunning = !1, activeTools = /* @__PURE__ */ new Map(), replyTracker = new ReplyTracker(), pendingIdleMessages = [], inboundFlushTimer = null, replyWaiter = null;
1266
1268
  function waitForReply(from, replyTo, signal, onCancel) {
1267
1269
  return replyWaiter ? Promise.reject(new Error("Already waiting for a reply")) : signal?.aborted ? Promise.reject(new Error("Cancelled")) : new Promise((resolve2, reject) => {
@@ -11,7 +11,7 @@ import {
11
11
  resolveDirectTools,
12
12
  throwIfAborted,
13
13
  truncateAtWord
14
- } from "./chunk-VSELYKWU.js";
14
+ } from "./chunk-LWYIVUGV.js";
15
15
  import "./chunk-4HXHDDCF.js";
16
16
  import "./chunk-ARC4KOTI.js";
17
17
  import "./chunk-BRJX2PRC.js";
@@ -121,11 +121,11 @@ function mcpAdapter(pi) {
121
121
  function loadHeavyModules() {
122
122
  return heavyModules ? Promise.resolve(heavyModules) : (heavyModulesPromise || (heavyModulesPromise = (async () => {
123
123
  let [init, authFlow, commands, proxyModes, directToolExecutor] = await Promise.all([
124
- import("./init-X2LIUB2H.js"),
124
+ import("./init-HS6NQXSK.js"),
125
125
  import("./mcp-auth-flow-QIXHW6QN.js"),
126
- import("./commands-KAMO2T6P.js"),
127
- import("./proxy-modes-OSQCWRBI.js"),
128
- import("./direct-tool-executor-YAVOLDFY.js")
126
+ import("./commands-NZLSOHPE.js"),
127
+ import("./proxy-modes-LGEUYD7R.js"),
128
+ import("./direct-tool-executor-77GW4F5P.js")
129
129
  ]), loaded = { init, authFlow, commands, proxyModes, directToolExecutor };
130
130
  return heavyModules = loaded, loaded;
131
131
  })().catch((error) => {
@@ -249,7 +249,8 @@ function mcpAdapter(pi) {
249
249
  pi.registerTool({
250
250
  name: spec.prefixedName,
251
251
  label: `MCP: ${spec.originalName}`,
252
- description: spec.description || "(no description)",
252
+ description: `${spec.description || "(no description)"}
253
+ Unavailable in read-only mode; switch to yolo or auto to call.`,
253
254
  promptSnippet: truncateAtWord(spec.description, 100) || `MCP tool from ${spec.serverName}`,
254
255
  parameters: Type.Unsafe(normalizeDirectToolInputSchema(spec.inputSchema)),
255
256
  execute: createLazyDirectToolExecute(spec),
@@ -94,7 +94,7 @@ import {
94
94
  validateExecutionAcceptance,
95
95
  validateToolBudgetConfig,
96
96
  writeAtomicJson
97
- } from "./chunk-QDGKKKUM.js";
97
+ } from "./chunk-K5AGHH57.js";
98
98
  import {
99
99
  formatControlNoticeMessage
100
100
  } from "./chunk-OAR4TYZE.js";
@@ -102,28 +102,36 @@ import {
102
102
  getSubagentSpinnerDefinition
103
103
  } from "./chunk-US544NN6.js";
104
104
  import "./chunk-5ZH3ZFIZ.js";
105
- import "./chunk-CSUZVNYE.js";
106
- import "./chunk-VSSXXL36.js";
105
+ import "./chunk-OVX6X377.js";
106
+ import "./chunk-YDO2F2IA.js";
107
107
  import "./chunk-53YJI7JU.js";
108
108
  import "./chunk-5ZQXRPMC.js";
109
109
  import "./chunk-AD6VXAO7.js";
110
- import "./chunk-LISUTZS3.js";
110
+ import {
111
+ subagentCommunicationEnabled
112
+ } from "./chunk-RORY2HMJ.js";
113
+ import "./chunk-UP2XBVH5.js";
114
+ import "./chunk-VWCE2HSZ.js";
115
+ import "./chunk-URD2SLIT.js";
111
116
  import {
112
117
  createSubagentCancellation,
113
118
  registerSubagentCancellation
114
119
  } from "./chunk-BBUVIEZB.js";
115
- import "./chunk-5D7LC2ZQ.js";
120
+ import "./chunk-ZXSGTGJ6.js";
116
121
  import "./chunk-M3LZLQW2.js";
117
122
  import "./chunk-KKUTQQV7.js";
118
123
  import "./chunk-CSFI6YXL.js";
119
124
  import "./chunk-FVDOXRUD.js";
125
+ import "./chunk-UJOCPOMX.js";
126
+ import "./chunk-IMLCWLPI.js";
120
127
  import "./chunk-RQ2Q5IYR.js";
128
+ import "./chunk-R3K2F5GI.js";
121
129
  import {
122
130
  keyText
123
- } from "./chunk-GNN7H3B7.js";
131
+ } from "./chunk-GS42T6MX.js";
124
132
  import {
125
133
  getMarkdownTheme
126
- } from "./chunk-7QWNYZDI.js";
134
+ } from "./chunk-RDDAZOMU.js";
127
135
  import "./chunk-FQMM2EZ2.js";
128
136
  import "./chunk-Q4Q6D4IY.js";
129
137
  import "./chunk-BRJX2PRC.js";
@@ -1074,7 +1082,7 @@ var SkillOverride = Type.Unsafe({
1074
1082
  description: "Required concise single-line UI label (max 80 characters). Presentation metadata only; not used as an identifier."
1075
1083
  }), PermissionsField = Type.Optional(Type.String({
1076
1084
  enum: ["full", "read-only"],
1077
- description: "Child permission level. Omit or 'full' for coding tools (read/search/shell/edit/write/web/LSP/MCP). 'read-only' inspects without edit/write. Plan-mode parents must pass 'read-only'."
1085
+ description: "Child permission level. Omit or 'full' for coding tools (read/search/shell/edit/write/web/LSP/MCP). 'read-only' inspects without edit/write. Read-only parents must pass 'read-only'."
1078
1086
  })), TaskItem = Type.Object({
1079
1087
  task: Type.String({ description: "Complete model-authored prompt sent to the child." }),
1080
1088
  description: DescriptionField,
@@ -4861,9 +4869,9 @@ function renderCommunicationCard(communication, expanded, theme) {
4861
4869
  let box = new Box(1, 1, (text) => theme.bg("toolSuccessBg", text));
4862
4870
  return box.addChild(new Text2(theme.fg("toolTitle", theme.bold(`\u25CF subagent ${communication.kind}`)), 0, 0)), expanded && box.addChild(renderCommunicationBody(communication, theme)), box;
4863
4871
  }
4864
- function renderCommunicationCall(name, args, theme, context, communication) {
4865
- let container = new Container2(), details = context?.result?.details, saved = readCommunication(details?.communication) ?? communication, action = args.action ?? (args.reason === "need_decision" ? "request" : args.reason === "interview_request" ? "interview" : args.reason === "progress_update" ? "progress" : args.reason);
4866
- return container.addChild(new Text2(theme.fg("toolTitle", theme.bold(`${name}${action ? ` ${action}` : ""}`)), 0, 0)), context?.expanded && saved && container.addChild(renderCommunicationBody(saved, theme)), container;
4872
+ function renderCommunicationCall(name, args, theme, context, communication, displayTitle) {
4873
+ let container = new Container2(), details = context?.result?.details, saved = readCommunication(details?.communication) ?? communication, action = args.action ?? (args.reason === "need_decision" ? "request" : args.reason === "interview_request" ? "interview" : args.reason === "progress_update" ? "progress" : args.reason), title = theme.fg("toolTitle", theme.bold(`${name}${action ? ` ${action}` : ""}`));
4874
+ return container.addChild(new Text2(displayTitle ? `${title} ${theme.fg("accent", displayTitle)}` : title, 0, 0)), context?.expanded && saved && container.addChild(renderCommunicationBody(saved, theme)), container;
4867
4875
  }
4868
4876
  function renderCommunicationResult(content, details, expanded, isError, theme) {
4869
4877
  let container = new Container2();
@@ -4889,7 +4897,7 @@ ${saved.state === "pending" ? "Question queued; awaiting an answer." : saved.sta
4889
4897
  // packages/coding-agent/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js
4890
4898
  var REQUESTS_DIR = "requests", REPLIES_DIR = "replies", NATIVE_SUPERVISOR_TOOL_NAME = "subagent_supervisor";
4891
4899
  var MAX_MESSAGE_BYTES2 = 64 * 1024, DEFAULT_ASK_TIMEOUT_MS2 = 600 * 1e3, CHANNEL_POLL_MS = Math.min(POLL_INTERVAL_MS, 500), STALE_EMPTY_CHANNEL_AGE_MS = 60 * 1e3, STALE_EMPTY_CHANNEL_CLEANUP_INTERVAL_MS = 60 * 1e3, PARENT_ASK_DESCRIPTION = [
4892
- "Ask a specific running async child, or reply to a child supervisor request.",
4900
+ "Ask a specific running async child, or reply to a child supervisor request. Asking is unavailable when Subagent communication is off in /settings; final results still arrive normally.",
4893
4901
  "Ask only when the child owns missing context, the answer changes a concrete next decision, and waiting risks a block or rework.",
4894
4902
  "Use available results first, batch related questions, and keep working while awaiting the answer. Do not use ask for status checks, polling, duplicate queries, or step-by-step supervision. Follow up only when the answer leaves the original decision unresolved.",
4895
4903
  "Returns a question id immediately. The child's explicit answer is delivered separately from the final run result.",
@@ -5209,7 +5217,7 @@ function buildParentIntercomTool(pending, state, name = "intercom") {
5209
5217
  return writeReply(request, input.message ?? ""), pending.delete(request.id), { content: [{ type: "text", text: `Replied to ${requestCommunication(request, state).peer}.` }], details: { replyTo: request.id, runId: request.runId, agent: request.agent, communication: { ...requestCommunication(request, state), direction: "to", kind: "reply", message: input.message } } };
5210
5218
  }
5211
5219
  if (input.action === "ask")
5212
- return askRunningAsyncChild({
5220
+ return subagentCommunicationEnabled(process.cwd(), getAgentDir()) ? askRunningAsyncChild({
5213
5221
  params: {
5214
5222
  id: input.id,
5215
5223
  index: input.index,
@@ -5219,7 +5227,7 @@ function buildParentIntercomTool(pending, state, name = "intercom") {
5219
5227
  },
5220
5228
  state,
5221
5229
  childRequests: pending.values()
5222
- });
5230
+ }) : { content: [{ type: "text", text: "Subagent communication is off in /settings. Wait for the child to complete instead of asking it." }], isError: !0, details: { disabled: !0 } };
5223
5231
  throw input.action === "send" ? new Error("Native pi-subagents intercom does not support free-form send. Use action='ask' for a running async child or action='reply' for a pending child request.") : new Error(`Unsupported intercom action: ${input.action}`);
5224
5232
  }
5225
5233
  };
@@ -5834,6 +5842,8 @@ async function waitForDetachedForegroundRun(run, signal, deps, startedAt, now, p
5834
5842
  let outcome = summarizeForegroundChildren(current, initialDetachedIndices);
5835
5843
  return result(`Waited ${formatDuration(now() - startedAt)} for remembered detached foreground run "${run.runId}"; done. Outcome: ${outcome || "no recovered child status"}. Completion event observed; inspect with subagent({ action: "status", id: "${run.runId}" }) for recovered output.`);
5836
5844
  }
5845
+ if (deps.wasInterrupted?.())
5846
+ return result("Wait interrupted by user input; background work remains active.");
5837
5847
  if (signal?.aborted)
5838
5848
  return result(`Wait aborted after ${formatDuration(now() - startedAt)}. Remembered foreground run "${run.runId}" remains detached.`, !0);
5839
5849
  if (now() - startedAt >= timeoutMs)
@@ -5873,6 +5883,8 @@ async function waitForSupervisorQuestion(questionId, signal, deps, startedAt, no
5873
5883
  }
5874
5884
  };
5875
5885
  }
5886
+ if (deps.wasInterrupted?.())
5887
+ return result("Wait interrupted by user input; background work remains active.");
5876
5888
  if (signal?.aborted)
5877
5889
  return result(`Wait aborted after ${formatDuration(now() - startedAt)} for supervisor question "${questionId}".`, !0);
5878
5890
  if (now() - startedAt >= timeoutMs)
@@ -5923,6 +5935,8 @@ async function waitForSubagents(params, signal, deps) {
5923
5935
  ...activeInitialRuns.map((run) => `${run.id} (${run.state})`),
5924
5936
  ...activeInitialProviderItems.map((item) => `${item.provider}/${item.id}`)
5925
5937
  ].join(", ");
5938
+ if (deps.wasInterrupted?.())
5939
+ return result("Wait interrupted by user input; background work remains active.");
5926
5940
  if (signal?.aborted)
5927
5941
  return result(`Wait aborted after ${formatDuration(now() - startedAt)}. Still active: ${stillActive}.`, !0);
5928
5942
  if (deps.shouldYield?.())
@@ -5956,6 +5970,16 @@ async function waitForSubagents(params, signal, deps) {
5956
5970
  }
5957
5971
 
5958
5972
  // packages/coding-agent/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js
5973
+ var WAIT_INTERRUPTION_SYMBOL = /* @__PURE__ */ Symbol.for("@lunr/subagent-wait-interruption");
5974
+ function registerWaitInterruption(sessionId) {
5975
+ return sessionId ? globalThis[WAIT_INTERRUPTION_SYMBOL]?.owners?.get(sessionId)?.register() : void 0;
5976
+ }
5977
+ function interruptedResult() {
5978
+ return {
5979
+ content: [{ type: "text", text: "Wait interrupted by user input; background work remains active." }],
5980
+ details: { mode: "management", results: [] }
5981
+ };
5982
+ }
5959
5983
  function registerWaitTool(pi, state, enabled = resolveWaitToolConfig().enabled, waitForPendingLaunches) {
5960
5984
  let tool = {
5961
5985
  name: "subagent_wait",
@@ -5975,7 +5999,25 @@ Provider jobs are session-scoped and identified exactly, so replacing one job wi
5975
5999
  Configured behavior: subagent_wait is disabled by config.waitTool or PI_SUBAGENT_WAIT_TOOL_ENABLED and returns immediately without blocking.`}`,
5976
6000
  parameters: SubagentWaitParams,
5977
6001
  async execute(_id, params, signal) {
5978
- return await Promise.resolve(), await waitForPendingLaunches?.(signal), signal?.throwIfAborted(), waitForSubagents(params, signal, { state, events: pi.events, enabled });
6002
+ await Promise.resolve();
6003
+ let interruption = registerWaitInterruption(state.currentSessionId), waitSignal = interruption ? signal ? AbortSignal.any([signal, interruption.signal]) : interruption.signal : signal;
6004
+ try {
6005
+ try {
6006
+ await waitForPendingLaunches?.(waitSignal);
6007
+ } catch (error) {
6008
+ if (interruption?.wasInterrupted())
6009
+ return interruptedResult();
6010
+ throw error;
6011
+ }
6012
+ return interruption?.wasInterrupted() ? interruptedResult() : (signal?.throwIfAborted(), waitForSubagents(params, waitSignal, {
6013
+ state,
6014
+ events: pi.events,
6015
+ enabled,
6016
+ wasInterrupted: interruption?.wasInterrupted
6017
+ }));
6018
+ } finally {
6019
+ interruption?.unregister();
6020
+ }
5979
6021
  }
5980
6022
  };
5981
6023
  pi.registerTool(tool);
@@ -6301,17 +6343,18 @@ var CUSTOM_TOOL_DESCRIPTION_FILE = "subagent-tool-description.md", CUSTOM_TOOL_D
6301
6343
  \u2022 Choose the lowest tier that can reliably complete the task.
6302
6344
  \u2022 light: Use for simple, straightforward tasks that require little reasoning. Good for quick checks, finding information, collecting facts for research, inspecting a small amount of code, or verifying a specific fact.
6303
6345
  \u2022 standard: Use for moderately difficult work and everyday coding tasks. Good for writing simple code, fixing a clearly described bug, reviewing a focused change, or completing work with clear requirements. Use heavy when the task requires deep architectural understanding or complex reasoning.
6304
- \u2022 heavy: Use for complex or ambiguous tasks that require deep reasoning and strong code understanding. Good for implementing complex plans, debugging difficult or poorly understood problems, reviewing large or high-risk changes, and making architectural decisions.`, SUBAGENT_COORDINATION_GUIDANCE = "Define file ownership, local decision authority, and required outputs at launch. Establish shared contracts before dependent parallel work; use chains and artifacts to pass results. Native child intercom reaches the supervisor only, not siblings. Reserve parent relays for actionable exceptions, not routine progress or implementation approvals.", SUBAGENT_SAFETY_GUIDANCE = `SAFETY-CRITICAL SUBAGENT GUIDANCE:
6346
+ \u2022 heavy: Use for complex or ambiguous tasks that require deep reasoning and strong code understanding. Good for implementing complex plans, debugging difficult or poorly understood problems, reviewing large or high-risk changes, and making architectural decisions.`, SUBAGENT_COORDINATION_GUIDANCE = "Define file ownership, local decision authority, and required outputs at launch. Establish shared contracts before dependent parallel work; use chains and artifacts to pass results. When enabled, native child intercom reaches the supervisor only, not siblings. Reserve parent relays for actionable exceptions, not routine progress or implementation approvals.", SUBAGENT_SAFETY_GUIDANCE = `SAFETY-CRITICAL SUBAGENT GUIDANCE:
6305
6347
  \u2022 Prompt children directly. There is no agent roster. Every execution task needs task (the full child prompt) and description (a concise UI label).
6306
6348
  \u2022 Every executable child chooses exactly one of tier: "light"|"standard"|"heavy" (default) or model: "provider/id" when the user names a model. Do not pass both, and do not use inherit. Missing, disabled, unconfigured, unavailable, or unauthenticated selections fail before launch.
6307
6349
  \u2022 Optional thinking (off/minimal/low/medium/high/xhigh/max) is only valid with an explicit model. Tier launches use the configured tier thinking level.
6308
6350
  ${SUBAGENT_TIER_GUIDANCE}
6309
- \u2022 permissions is "full" or "read-only". Omitted permissions means full. Plan-mode parents must pass permissions: "read-only"; full or omitted launches are rejected.
6351
+ \u2022 permissions is "full" or "read-only". Omitted permissions means full. Read-only parents must pass permissions: "read-only"; full or omitted launches are rejected.
6310
6352
  \u2022 Keep execution and control separate: omit action for SINGLE/PARALLEL/CHAIN execution; use action only for status/interrupt/stop/resume/steer/append-step/doctor/watchdog.status|check|recommend-model/schedule*.
6311
6353
  \u2022 ${SUBAGENT_ASYNC_GUIDANCE}
6312
6354
  \u2022 Child-safety boundary: ordinary children are not orchestrators and must not run subagents. Only explicitly configured fanout children may use the child-safe subagent tool, still bounded by depth/session limits.
6313
6355
  \u2022 Writing/review safety: keep one full-access writer for the same cwd/worktree. Use fresh-context permissions: "read-only" children for independent review, then have the parent synthesize and apply fixes as the sole writer unless an isolated worktree was intentionally requested.
6314
6356
  \u2022 ${SUBAGENT_COORDINATION_GUIDANCE}
6357
+ \u2022 When Subagent communication is off in /settings, child contact and parent questions/steering are unavailable; final results and subagent_wait still work.
6315
6358
  \u2022 Artifacts/status essentials: chain outputs live under {chain_dir}; async runs expose asyncId/asyncDir with status.json, events.jsonl, output logs, and status via { action: "status", id }. Include output paths and residual risks when reporting results.`, FULL_SUBAGENT_TOOL_DESCRIPTION = `Delegate work to generic children by prompting them directly. There are no named agent types.
6316
6359
 
6317
6360
  EXECUTION (use exactly ONE mode):
@@ -6319,7 +6362,7 @@ EXECUTION (use exactly ONE mode):
6319
6362
  \u2022 PARALLEL: { tasks: [{task, description, tier|model, thinking?, permissions?, count?, output?, reads?, progress?}, ...], concurrency?: number, worktree?: true } \u2014 one-call concurrent execution (default: all tasks at once; worktree: isolate each task in a git worktree)
6320
6363
  \u2022 CHAIN: { chain: [{task, description, tier|model, thinking?, permissions?}, {parallel:[{task, description, tier|model, thinking?, permissions?, count:3}]}] } \u2014 sequential pipeline with optional parallel fan-out. Use chain when a later child needs an earlier result.
6321
6364
  \u2022 description is required, single-line, max 80 characters. It is UI metadata only. task is the complete child prompt.
6322
- \u2022 permissions: "full" (default) or "read-only". Full includes coding tools (read, search, shell, edit, write, web, LSP, MCP) and excludes parent-owned tools (cron, memory, behavior, goals, nested subagents). Plan-mode parents may launch only permissions: "read-only".
6365
+ \u2022 permissions: "full" (default) or "read-only". Full includes coding tools (read, search, shell, edit, write, web, LSP, MCP) and excludes parent-owned tools (cron, memory, behavior, goals, nested subagents). Read-only parents may launch only permissions: "read-only".
6323
6366
  \u2022 Model selection: pass tier by default ("light"|"standard"|"heavy"). Pass model: "provider/id" only when the user specifies a model. Exactly one of tier or model. Optional thinking only with model; tier uses configured thinking. Direct model launches do not require tier mode to be enabled. No inherit and no silent fallback for an explicit model.
6324
6367
  \u2022 Children always start with a fresh session (no inherited parent transcript).
6325
6368
  \u2022 Optional timeout: { timeoutMs } or { maxRuntimeMs } sets a run-level max runtime for foreground and async/background runs
@@ -6360,10 +6403,11 @@ ${SUBAGENT_SAFETY_GUIDANCE}`, COMPACT_SUBAGENT_TOOL_DESCRIPTION = `Delegate to g
6360
6403
 
6361
6404
  EXECUTE:
6362
6405
  \u2022 SINGLE {task, description, tier|model, thinking?, permissions?} (same-turn singles overlap); PARALLEL {tasks:[{task,description,tier|model,thinking?,permissions?,count?,output?,reads?,progress?}], concurrency?, worktree?}; CHAIN {chain:[{task,description,tier|model,thinking?,permissions?},{parallel:[...]}]} for sequential work.
6363
- \u2022 description is required (single-line, max 80 chars, UI only). task is the full child prompt. permissions omitted = full. Plan-mode parents must pass permissions:"read-only".
6406
+ \u2022 description is required (single-line, max 80 chars, UI only). task is the full child prompt. permissions omitted = full. Read-only parents must pass permissions:"read-only".
6364
6407
  \u2022 Exactly one of tier:"light"|"standard"|"heavy" (default) or model:"provider/id" when the user names a model. thinking only with model. No inherit; fail closed on unavailable selections. Children always start fresh. timeoutMs/maxRuntimeMs apply to foreground and async/background runs.
6365
6408
  ${SUBAGENT_TIER_GUIDANCE}
6366
6409
  \u2022 ${SUBAGENT_COORDINATION_GUIDANCE}
6410
+ \u2022 When Subagent communication is off in /settings, child contact and parent questions/steering are unavailable; final results and subagent_wait still work.
6367
6411
  \u2022 Chain templates may use {task}, {previous}, {chain_dir}, and named outputs. Parallel worktree isolation requires a clean git repo.
6368
6412
  \u2022 Chain example: { chain: [{task:"Analyze {task}", description:"Analyze request", tier:"standard"}, {parallel: [{task:"Check {previous}", description:"Check prior result", tier:"light", permissions:"read-only", count: 3}]}] }
6369
6413
 
@@ -6537,7 +6581,7 @@ function renderSubagentCall(rawArgs, theme, context, options) {
6537
6581
  let args = resolveSubagentRequestParams(rawArgs);
6538
6582
  if (args.action) {
6539
6583
  let resolvedTitle = context?.result?.details?.displayTitle || options?.resolveActionTitle?.(args), target = resolvedTitle || args.id || args.runId || "";
6540
- return (args.action === "steer" || args.action === "resume") && args.message ? renderCommunicationCall("subagent", args, theme, context, { direction: "to", peer: resolvedTitle || "Subagent", kind: "steer", message: args.message }) : new Text3(`${theme.fg("toolTitle", theme.bold("subagent "))}${args.action}${target ? ` ${theme.fg("accent", target)}` : ""}`, 0, 0);
6584
+ return (args.action === "steer" || args.action === "resume") && args.message ? renderCommunicationCall("subagent", args, theme, context, { direction: "to", peer: resolvedTitle || "Subagent", kind: "steer", message: args.message }, resolvedTitle) : new Text3(`${theme.fg("toolTitle", theme.bold("subagent "))}${args.action}${target ? ` ${theme.fg("accent", target)}` : ""}`, 0, 0);
6541
6585
  }
6542
6586
  let isParallel = (args.tasks?.length ?? 0) > 0, parallelCount = effectiveParallelTaskCount(args.tasks), asyncMark = subagentLaunchRunsAsync(args) ? `${theme.fg("warning", "async")} ` : "";
6543
6587
  if (args.chain?.length)
@@ -6651,7 +6695,7 @@ function registerSubagentExtension(pi) {
6651
6695
  try {
6652
6696
  let currentGeneration = generation;
6653
6697
  if (signal?.throwIfAborted(), !executorPromise) {
6654
- let pending = import("./subagent-executor-MLUMBWCP.js").then(({ createSubagentExecutor }) => {
6698
+ let pending = import("./subagent-executor-OTNISDQU.js").then(({ createSubagentExecutor }) => {
6655
6699
  if (generation !== currentGeneration)
6656
6700
  throw new Error("Subagent session changed before initialization");
6657
6701
  return createSubagentExecutor({
@@ -6,7 +6,7 @@ import {
6
6
  resolveMcpOutputGuardOptions,
7
7
  resolveMcpResultContent,
8
8
  transformMcpContent
9
- } from "./chunk-BX2RB477.js";
9
+ } from "./chunk-HFVZUPFJ.js";
10
10
  import {
11
11
  buildToolMetadata,
12
12
  findToolByName,
@@ -17,7 +17,7 @@ import {
17
17
  updateMetadataCache,
18
18
  updateServerMetadata,
19
19
  updateStatusBar
20
- } from "./chunk-YJMMG7C6.js";
20
+ } from "./chunk-DSIKTUPW.js";
21
21
  import {
22
22
  UrlElicitationRequiredError,
23
23
  authenticate,
@@ -30,7 +30,7 @@ import {
30
30
  formatAuthRequiredMessage,
31
31
  throwIfAborted,
32
32
  truncateAtWord
33
- } from "./chunk-VSELYKWU.js";
33
+ } from "./chunk-LWYIVUGV.js";
34
34
  import "./chunk-4HXHDDCF.js";
35
35
  import {
36
36
  getServerPrefix,
@@ -2,53 +2,52 @@
2
2
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
3
3
  import {
4
4
  main
5
- } from "./chunk-IWOWXRWU.js";
6
- import "./chunk-LMBNLFXQ.js";
7
- import "./chunk-UAFLNHSH.js";
5
+ } from "./chunk-5Q3EHOHI.js";
6
+ import "./chunk-QM43FEAE.js";
7
+ import "./chunk-OF7PWMG4.js";
8
8
  import "./chunk-YPHAIRZT.js";
9
9
  import "./chunk-PL6JKXWI.js";
10
10
  import "./chunk-5ZH3ZFIZ.js";
11
- import "./chunk-CSUZVNYE.js";
12
- import "./chunk-TDL7UWJ7.js";
11
+ import "./chunk-OVX6X377.js";
12
+ import "./chunk-DE2JB6J5.js";
13
13
  import "./chunk-CCCN2UCX.js";
14
- import "./chunk-IQIEU7SB.js";
14
+ import "./chunk-F4FLTQKV.js";
15
15
  import "./chunk-OBMWP3I5.js";
16
16
  import "./chunk-DVGWF6A2.js";
17
17
  import "./chunk-QFWG2RVL.js";
18
- import "./chunk-VSSXXL36.js";
18
+ import "./chunk-YDO2F2IA.js";
19
19
  import "./chunk-53YJI7JU.js";
20
20
  import "./chunk-5ZQXRPMC.js";
21
21
  import "./chunk-AD6VXAO7.js";
22
- import "./chunk-GS66LV4M.js";
22
+ import "./chunk-KJ6DWS3K.js";
23
+ import "./chunk-FU6OODRZ.js";
23
24
  import {
24
25
  configureHttpDispatcher
25
- } from "./chunk-WADV2VDS.js";
26
+ } from "./chunk-RORY2HMJ.js";
26
27
  import "./chunk-UP2XBVH5.js";
27
28
  import "./chunk-VWCE2HSZ.js";
28
- import "./chunk-LISUTZS3.js";
29
- import "./chunk-GMHJCCEN.js";
30
29
  import "./chunk-HTFRRDSF.js";
31
30
  import "./chunk-URD2SLIT.js";
32
- import "./chunk-OFKSVRV7.js";
33
- import "./chunk-5BNJ4JUH.js";
31
+ import "./chunk-GYIXXQAO.js";
32
+ import "./chunk-GJ2RDBRL.js";
34
33
  import "./chunk-CGBXPL3E.js";
35
34
  import "./chunk-BBUVIEZB.js";
36
- import "./chunk-5D7LC2ZQ.js";
35
+ import "./chunk-ZXSGTGJ6.js";
37
36
  import "./chunk-M3LZLQW2.js";
38
37
  import "./chunk-KKUTQQV7.js";
39
38
  import "./chunk-CSFI6YXL.js";
40
- import "./chunk-AZJHNQKQ.js";
41
- import "./chunk-XLTL257W.js";
39
+ import "./chunk-I54LGHWM.js";
40
+ import "./chunk-2KIPT4HJ.js";
42
41
  import "./chunk-FVDOXRUD.js";
43
42
  import "./chunk-4EULYYR4.js";
44
43
  import "./chunk-UJOCPOMX.js";
45
44
  import "./chunk-2TKODGBZ.js";
46
45
  import "./chunk-2MI5OPMN.js";
47
46
  import "./chunk-IMLCWLPI.js";
48
- import "./chunk-ORH324EP.js";
47
+ import "./chunk-PCEW76PM.js";
49
48
  import "./chunk-UAEOTO52.js";
50
49
  import "./chunk-RQ2Q5IYR.js";
51
- import "./chunk-JHYKXIMM.js";
50
+ import "./chunk-MPKSOJBT.js";
52
51
  import "./chunk-H2EOZYMP.js";
53
52
  import "./chunk-5EFIU3OM.js";
54
53
  import "./chunk-PVCDKGR6.js";
@@ -56,12 +55,12 @@ import "./chunk-OR4L3IB2.js";
56
55
  import "./chunk-R3K2F5GI.js";
57
56
  import "./chunk-E24EO34J.js";
58
57
  import "./chunk-CCZJ3PYY.js";
59
- import "./chunk-6427XAWG.js";
60
- import "./chunk-PC2Z5TKZ.js";
58
+ import "./chunk-QH6YL7VK.js";
59
+ import "./chunk-HMBGROQK.js";
61
60
  import "./chunk-I6R76AG7.js";
62
- import "./chunk-6B2POMK7.js";
63
- import "./chunk-GNN7H3B7.js";
64
- import "./chunk-7QWNYZDI.js";
61
+ import "./chunk-6VYZ5UFP.js";
62
+ import "./chunk-GS42T6MX.js";
63
+ import "./chunk-RDDAZOMU.js";
65
64
  import {
66
65
  APP_NAME
67
66
  } from "./chunk-FQMM2EZ2.js";
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  runRpcMode
4
- } from "./chunk-IVXYUAJE.js";
4
+ } from "./chunk-IF24A3FH.js";
5
5
  import "./chunk-OBMWP3I5.js";
6
6
  import "./chunk-CSFI6YXL.js";
7
- import "./chunk-7QWNYZDI.js";
7
+ import "./chunk-RDDAZOMU.js";
8
8
  import "./chunk-FQMM2EZ2.js";
9
9
  import "./chunk-Q4Q6D4IY.js";
10
10
  import "./chunk-BRJX2PRC.js";
@@ -1,12 +1,19 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  bindRuntimeBridges
4
- } from "./chunk-GMHJCCEN.js";
4
+ } from "./chunk-FU6OODRZ.js";
5
+ import "./chunk-RORY2HMJ.js";
6
+ import "./chunk-UP2XBVH5.js";
7
+ import "./chunk-VWCE2HSZ.js";
8
+ import "./chunk-URD2SLIT.js";
5
9
  import "./chunk-4EULYYR4.js";
6
10
  import "./chunk-UJOCPOMX.js";
7
11
  import "./chunk-2TKODGBZ.js";
8
12
  import "./chunk-2MI5OPMN.js";
9
13
  import "./chunk-IMLCWLPI.js";
14
+ import "./chunk-R3K2F5GI.js";
15
+ import "./chunk-FQMM2EZ2.js";
16
+ import "./chunk-Q4Q6D4IY.js";
10
17
  import "./chunk-BRJX2PRC.js";
11
18
  export {
12
19
  bindRuntimeBridges
@@ -11,8 +11,8 @@ import {
11
11
  recordTuiActivity,
12
12
  registerTransferHandler,
13
13
  requestSessionTransfer
14
- } from "./chunk-AZJHNQKQ.js";
15
- import "./chunk-XLTL257W.js";
14
+ } from "./chunk-I54LGHWM.js";
15
+ import "./chunk-2KIPT4HJ.js";
16
16
  import "./chunk-FVDOXRUD.js";
17
17
  import "./chunk-UAEOTO52.js";
18
18
  import "./chunk-FQMM2EZ2.js";
@@ -12,7 +12,7 @@ import {
12
12
  migrateSessionEntries,
13
13
  parseSessionEntries,
14
14
  sessionEntryToContextMessages
15
- } from "./chunk-XLTL257W.js";
15
+ } from "./chunk-2KIPT4HJ.js";
16
16
  import "./chunk-FVDOXRUD.js";
17
17
  import "./chunk-UAEOTO52.js";
18
18
  import "./chunk-FQMM2EZ2.js";
@@ -1,12 +1,12 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  SessionSelectorComponent
4
- } from "./chunk-ORH324EP.js";
4
+ } from "./chunk-PCEW76PM.js";
5
5
  import "./chunk-UAEOTO52.js";
6
6
  import "./chunk-5EFIU3OM.js";
7
- import "./chunk-6B2POMK7.js";
8
- import "./chunk-GNN7H3B7.js";
9
- import "./chunk-7QWNYZDI.js";
7
+ import "./chunk-6VYZ5UFP.js";
8
+ import "./chunk-GS42T6MX.js";
9
+ import "./chunk-RDDAZOMU.js";
10
10
  import "./chunk-FQMM2EZ2.js";
11
11
  import "./chunk-Q4Q6D4IY.js";
12
12
  import "./chunk-BRJX2PRC.js";
@@ -5,11 +5,12 @@ import {
5
5
  InMemorySettingsStorage,
6
6
  SKILL_TAG_CHARACTERS,
7
7
  SettingsManager,
8
- parseSkillTagCharacter
9
- } from "./chunk-WADV2VDS.js";
8
+ bindSubagentCommunicationSetting,
9
+ parseSkillTagCharacter,
10
+ subagentCommunicationEnabled
11
+ } from "./chunk-RORY2HMJ.js";
10
12
  import "./chunk-UP2XBVH5.js";
11
13
  import "./chunk-VWCE2HSZ.js";
12
- import "./chunk-LISUTZS3.js";
13
14
  import "./chunk-URD2SLIT.js";
14
15
  import "./chunk-UJOCPOMX.js";
15
16
  import "./chunk-IMLCWLPI.js";
@@ -23,5 +24,7 @@ export {
23
24
  InMemorySettingsStorage,
24
25
  SKILL_TAG_CHARACTERS,
25
26
  SettingsManager,
26
- parseSkillTagCharacter
27
+ bindSubagentCommunicationSetting,
28
+ parseSkillTagCharacter,
29
+ subagentCommunicationEnabled
27
30
  };
@@ -98,8 +98,8 @@ Guide: https://docs.discord.com/developers/quick-start/getting-started`);
98
98
  throw new Error("Choose off, login, or boot.");
99
99
  startup === "boot" && console.log("Boot startup may require administrator permission or OS-managed account credentials. lunR does not save your account password.");
100
100
  let [{ ModelRuntime }, { SettingsManager }] = await Promise.all([
101
- import("./model-runtime-PLQKAG4B.js"),
102
- import("./settings-manager-UUZ6NUXI.js")
101
+ import("./model-runtime-OO5HFLWE.js"),
102
+ import("./settings-manager-WCQDUVQB.js")
103
103
  ]), models = await (await ModelRuntime.create({ allowModelNetwork: !1 })).getAvailable();
104
104
  if (!models.length)
105
105
  throw new Error("No saved model credentials found. Open lunr locally and use /login, then rerun gateway setup. Nothing saved.");