@ashx-j/lunr 0.2.25 → 0.2.26

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 (220) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/dist/builtin-extensions/index.d.ts.map +1 -1
  3. package/dist/builtin-extensions/index.js +1 -0
  4. package/dist/builtin-extensions/index.js.map +1 -1
  5. package/dist/builtin-extensions/lunr-computer-use.d.ts +3 -0
  6. package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -0
  7. package/dist/builtin-extensions/lunr-computer-use.js +179 -0
  8. package/dist/builtin-extensions/lunr-computer-use.js.map +1 -0
  9. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  10. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +1 -1
  11. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  12. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -4
  13. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  14. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +8 -5
  15. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  16. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +1 -0
  17. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  18. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +11 -2
  19. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  20. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +3 -3
  22. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  23. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +15 -1
  25. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +1 -0
  27. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +5 -0
  29. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -1
  30. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
  31. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
  32. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +2 -0
  33. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
  34. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts.map +1 -1
  35. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js +1 -1
  36. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js.map +1 -1
  37. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +1 -0
  38. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +5 -3
  40. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  41. package/dist/core/computer-use/adapter.d.ts +28 -0
  42. package/dist/core/computer-use/adapter.d.ts.map +1 -0
  43. package/dist/core/computer-use/adapter.js +133 -0
  44. package/dist/core/computer-use/adapter.js.map +1 -0
  45. package/dist/core/computer-use/image.d.ts +27 -0
  46. package/dist/core/computer-use/image.d.ts.map +1 -0
  47. package/dist/core/computer-use/image.js +72 -0
  48. package/dist/core/computer-use/image.js.map +1 -0
  49. package/dist/core/computer-use/lease.d.ts +18 -0
  50. package/dist/core/computer-use/lease.d.ts.map +1 -0
  51. package/dist/core/computer-use/lease.js +129 -0
  52. package/dist/core/computer-use/lease.js.map +1 -0
  53. package/dist/core/computer-use/macos-runtime.d.ts +14 -0
  54. package/dist/core/computer-use/macos-runtime.d.ts.map +1 -0
  55. package/dist/core/computer-use/macos-runtime.js +148 -0
  56. package/dist/core/computer-use/macos-runtime.js.map +1 -0
  57. package/dist/core/computer-use/policy.d.ts +19 -0
  58. package/dist/core/computer-use/policy.d.ts.map +1 -0
  59. package/dist/core/computer-use/policy.js +67 -0
  60. package/dist/core/computer-use/policy.js.map +1 -0
  61. package/dist/core/computer-use/release.generated.d.ts +31 -0
  62. package/dist/core/computer-use/release.generated.d.ts.map +1 -0
  63. package/dist/core/computer-use/release.generated.js +36 -0
  64. package/dist/core/computer-use/release.generated.js.map +1 -0
  65. package/dist/core/computer-use/runtime.d.ts +13 -0
  66. package/dist/core/computer-use/runtime.d.ts.map +1 -0
  67. package/dist/core/computer-use/runtime.js +158 -0
  68. package/dist/core/computer-use/runtime.js.map +1 -0
  69. package/dist/core/computer-use/schemas.d.ts +100 -0
  70. package/dist/core/computer-use/schemas.d.ts.map +1 -0
  71. package/dist/core/computer-use/schemas.js +79 -0
  72. package/dist/core/computer-use/schemas.js.map +1 -0
  73. package/dist/core/computer-use/windows-desktop.d.ts +3 -0
  74. package/dist/core/computer-use/windows-desktop.d.ts.map +1 -0
  75. package/dist/core/computer-use/windows-desktop.js +48 -0
  76. package/dist/core/computer-use/windows-desktop.js.map +1 -0
  77. package/dist/core/computer-use/workflow.d.ts +38 -0
  78. package/dist/core/computer-use/workflow.d.ts.map +1 -0
  79. package/dist/core/computer-use/workflow.js +560 -0
  80. package/dist/core/computer-use/workflow.js.map +1 -0
  81. package/dist/core/extensions/loader.d.ts.map +1 -1
  82. package/dist/core/extensions/loader.js +4 -0
  83. package/dist/core/extensions/loader.js.map +1 -1
  84. package/dist/core/permissions.d.ts +1 -1
  85. package/dist/core/permissions.d.ts.map +1 -1
  86. package/dist/core/permissions.js +14 -3
  87. package/dist/core/permissions.js.map +1 -1
  88. package/dist/core/plan-mode.d.ts.map +1 -1
  89. package/dist/core/plan-mode.js +9 -0
  90. package/dist/core/plan-mode.js.map +1 -1
  91. package/dist/core/settings-manager.d.ts +6 -0
  92. package/dist/core/settings-manager.d.ts.map +1 -1
  93. package/dist/core/settings-manager.js +19 -0
  94. package/dist/core/settings-manager.js.map +1 -1
  95. package/dist/core/subagent-event-transport.d.ts +3 -0
  96. package/dist/core/subagent-event-transport.d.ts.map +1 -0
  97. package/dist/core/subagent-event-transport.js +61 -0
  98. package/dist/core/subagent-event-transport.js.map +1 -0
  99. package/dist/gateway/adapters/discord.d.ts.map +1 -1
  100. package/dist/gateway/adapters/discord.js +2 -2
  101. package/dist/gateway/adapters/discord.js.map +1 -1
  102. package/dist/gateway/approval.d.ts.map +1 -1
  103. package/dist/gateway/approval.js +3 -3
  104. package/dist/gateway/approval.js.map +1 -1
  105. package/dist/gateway/authz.d.ts +4 -4
  106. package/dist/gateway/authz.d.ts.map +1 -1
  107. package/dist/gateway/authz.js +8 -12
  108. package/dist/gateway/authz.js.map +1 -1
  109. package/dist/gateway/commands.d.ts.map +1 -1
  110. package/dist/gateway/commands.js +2 -6
  111. package/dist/gateway/commands.js.map +1 -1
  112. package/dist/gateway/cron.d.ts.map +1 -1
  113. package/dist/gateway/cron.js +20 -6
  114. package/dist/gateway/cron.js.map +1 -1
  115. package/dist/gateway/index.d.ts.map +1 -1
  116. package/dist/gateway/index.js +3 -3
  117. package/dist/gateway/index.js.map +1 -1
  118. package/dist/gateway/mobile-commands.d.ts.map +1 -1
  119. package/dist/gateway/mobile-commands.js +8 -8
  120. package/dist/gateway/mobile-commands.js.map +1 -1
  121. package/dist/gateway/presenter.d.ts.map +1 -1
  122. package/dist/gateway/presenter.js +3 -3
  123. package/dist/gateway/presenter.js.map +1 -1
  124. package/dist/gateway/router.d.ts.map +1 -1
  125. package/dist/gateway/router.js +5 -7
  126. package/dist/gateway/router.js.map +1 -1
  127. package/dist/gateway/setup.d.ts.map +1 -1
  128. package/dist/gateway/setup.js +6 -4
  129. package/dist/gateway/setup.js.map +1 -1
  130. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  131. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  132. package/dist/modes/interactive/components/settings-selector.js +20 -0
  133. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  134. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  135. package/dist/modes/interactive/interactive-mode.js +8 -0
  136. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  137. package/dist/modes/print-mode.d.ts.map +1 -1
  138. package/dist/modes/print-mode.js +9 -1
  139. package/dist/modes/print-mode.js.map +1 -1
  140. package/dist/node-runtime/adapter-VFG7WNPX.js +17 -0
  141. package/dist/node-runtime/{agent-session-services-YXXFCP5J.js → agent-session-services-5YXS2PLF.js} +10 -8
  142. package/dist/node-runtime/{builtin-extensions-ZLAX7TUH.js → builtin-extensions-I2HIFEMY.js} +3 -2
  143. package/dist/node-runtime/{chunk-3XPLBUEM.js → chunk-2CFDTH5B.js} +7 -3
  144. package/dist/node-runtime/chunk-2IDTZAG5.js +1415 -0
  145. package/dist/node-runtime/{chunk-QTU6AKNJ.js → chunk-3MISGG4S.js} +11 -15
  146. package/dist/node-runtime/chunk-4SBQAI4T.js +2185 -0
  147. package/dist/node-runtime/{chunk-TORR5XBV.js → chunk-5B5QN3ZQ.js} +12 -12
  148. package/dist/node-runtime/chunk-5B6VKFEV.js +180 -0
  149. package/dist/node-runtime/{chunk-AD6VXAO7.js → chunk-5Q4A37RB.js} +15 -104
  150. package/dist/node-runtime/{chunk-4TLO4PO2.js → chunk-7IQGBKBJ.js} +7 -1401
  151. package/dist/node-runtime/{chunk-OCVIXVTZ.js → chunk-D5UCKPBQ.js} +12 -1
  152. package/dist/node-runtime/{chunk-7S3T6YEA.js → chunk-DVQSHCVP.js} +1 -1
  153. package/dist/node-runtime/{chunk-HFVZUPFJ.js → chunk-E75WFZ33.js} +2 -2
  154. package/dist/node-runtime/chunk-FY4A63RK.js +73 -0
  155. package/dist/node-runtime/{chunk-6XL67VVY.js → chunk-I74LN5JG.js} +15 -0
  156. package/dist/node-runtime/chunk-IKU6Y7DL.js +287 -0
  157. package/dist/node-runtime/{chunk-WF7PGWRZ.js → chunk-L24TPBS4.js} +5 -4
  158. package/dist/node-runtime/{chunk-VQFSUJJG.js → chunk-LJTIVM7I.js} +7 -7
  159. package/dist/node-runtime/{chunk-DSIKTUPW.js → chunk-LWJXTA6Z.js} +274 -2433
  160. package/dist/node-runtime/{chunk-E4D3IGP2.js → chunk-P7XBVXGT.js} +6 -7
  161. package/dist/node-runtime/{chunk-OVX6X377.js → chunk-PTFBPO3C.js} +1 -1
  162. package/dist/node-runtime/{chunk-RC7DMV45.js → chunk-RCR3XAQY.js} +34 -6
  163. package/dist/node-runtime/chunk-RGQAEOM5.js +81 -0
  164. package/dist/node-runtime/{chunk-YCUZEGJG.js → chunk-SN2KSMPQ.js} +6 -3
  165. package/dist/node-runtime/{chunk-NRKGMJYU.js → chunk-SPVDBUOS.js} +1 -1
  166. package/dist/node-runtime/{chunk-IJIFHRTB.js → chunk-T4DA4XE7.js} +19 -19
  167. package/dist/node-runtime/chunk-U5F4IC7R.js +53 -0
  168. package/dist/node-runtime/{chunk-KWIYUUZK.js → chunk-UVWCDQYF.js} +27 -18
  169. package/dist/node-runtime/{chunk-ZXSGTGJ6.js → chunk-WIF24I7G.js} +21 -5
  170. package/dist/node-runtime/{chunk-2HHLJWGD.js → chunk-X3PGBLQ7.js} +2 -2
  171. package/dist/node-runtime/chunk-XHIRAZ26.js +108 -0
  172. package/dist/node-runtime/{chunk-YDO2F2IA.js → chunk-YWOJIGFY.js} +1 -1
  173. package/dist/node-runtime/{command-6WDOYKS6.js → command-FSBU2EVZ.js} +3 -3
  174. package/dist/node-runtime/{commands-NZLSOHPE.js → commands-EMBQQVVT.js} +4 -2
  175. package/dist/node-runtime/{commands-QC6VUZJQ.js → commands-NAAL7KNT.js} +5 -4
  176. package/dist/node-runtime/{direct-tool-executor-77GW4F5P.js → direct-tool-executor-4D7UXYU4.js} +7 -4
  177. package/dist/node-runtime/{gateway-INAYBF4Q.js → gateway-DQM333YV.js} +18 -19
  178. package/dist/node-runtime/index.js +23 -19
  179. package/dist/node-runtime/{init-HS6NQXSK.js → init-P5AUV77I.js} +4 -2
  180. package/dist/node-runtime/{install-cli-KL4UDDAD.js → install-cli-NN4YAU44.js} +1 -1
  181. package/dist/node-runtime/{interactive-mode-Z5M7WYYZ.js → interactive-mode-YOHZVMKX.js} +11 -9
  182. package/dist/node-runtime/lunr-computer-use-Y23CCDIJ.js +158 -0
  183. package/dist/node-runtime/{lunr-cron-LWIZJM2N.js → lunr-cron-USHC4LXH.js} +6 -4
  184. package/dist/node-runtime/main.js +16 -14
  185. package/dist/node-runtime/{mcp-auth-flow-QIXHW6QN.js → mcp-auth-flow-QVLFVLEO.js} +2 -1
  186. package/dist/node-runtime/{mobile-commands-J7OJEKFO.js → mobile-commands-O5LCHL32.js} +4 -3
  187. package/dist/node-runtime/{package-manager-cli-VYZM5WHN.js → package-manager-cli-Q7BL6KZO.js} +7 -6
  188. package/dist/node-runtime/{pi-mcp-adapter-5UKBZP44.js → pi-mcp-adapter-3PHF4KZ4.js} +5 -5
  189. package/dist/node-runtime/{pi-subagents-DNY7EAIG.js → pi-subagents-7IBSSGEW.js} +24 -18
  190. package/dist/node-runtime/{print-mode-XSFM26EL.js → print-mode-XQ76CYMT.js} +2 -1
  191. package/dist/node-runtime/{proxy-modes-LGEUYD7R.js → proxy-modes-5FAPSZEZ.js} +7 -4
  192. package/dist/node-runtime/rpc-entry.js +16 -14
  193. package/dist/node-runtime/runtime-EFPPD2UW.js +21 -0
  194. package/dist/node-runtime/{runtime-bridges-VRDDR73P.js → runtime-bridges-7WVCLI76.js} +3 -2
  195. package/dist/node-runtime/{settings-manager-J4SPQPDJ.js → settings-manager-DJDM5AHM.js} +2 -1
  196. package/dist/node-runtime/{setup-CQ2NLVK5.js → setup-PFBWRNUI.js} +10 -9
  197. package/dist/node-runtime/{subagent-executor-KZZQGAKV.js → subagent-executor-LPZ4BHWE.js} +29 -11
  198. package/dist/node-runtime/{update-cli-GTFJC7XK.js → update-cli-HNMOTNGX.js} +2 -1
  199. package/dist/node-runtime/workflow-OHPBEFO4.js +637 -0
  200. package/dist/utils/image-resize-core.d.ts +2 -0
  201. package/dist/utils/image-resize-core.d.ts.map +1 -1
  202. package/dist/utils/image-resize-core.js +10 -0
  203. package/dist/utils/image-resize-core.js.map +1 -1
  204. package/docs/computer-use.md +362 -0
  205. package/docs/features.md +8 -6
  206. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  207. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  208. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  209. package/examples/extensions/gondolin/package-lock.json +2 -2
  210. package/examples/extensions/gondolin/package.json +1 -1
  211. package/examples/extensions/sandbox/package-lock.json +2 -2
  212. package/examples/extensions/sandbox/package.json +1 -1
  213. package/examples/extensions/with-deps/package-lock.json +2 -2
  214. package/examples/extensions/with-deps/package.json +1 -1
  215. package/install-lock/package-lock.json +3841 -0
  216. package/install-lock/package.json +18 -0
  217. package/native/computer-use/LICENSE.md +21 -0
  218. package/npm-shrinkwrap.json +3822 -0
  219. package/package.json +15 -9
  220. package/dist/node-runtime/{chunk-LQP3RB67.js → chunk-RAK2QA2B.js} +3 -3
@@ -0,0 +1,108 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ applyExifOrientation,
4
+ formatDimensionNote,
5
+ resizeImage
6
+ } from "./chunk-5Q4A37RB.js";
7
+ import {
8
+ loadPhoton
9
+ } from "./chunk-RQ2Q5IYR.js";
10
+
11
+ // packages/coding-agent/dist/utils/image-convert.js
12
+ async function convertImageBytesToPng(bytes) {
13
+ let photon = await loadPhoton();
14
+ if (!photon)
15
+ return null;
16
+ try {
17
+ let rawImage = photon.PhotonImage.new_from_byteslice(bytes), image = applyExifOrientation(photon, rawImage, bytes);
18
+ image !== rawImage && rawImage.free();
19
+ try {
20
+ return new Uint8Array(image.get_bytes());
21
+ } finally {
22
+ image.free();
23
+ }
24
+ } catch {
25
+ return null;
26
+ }
27
+ }
28
+ async function convertToPng(base64Data, mimeType) {
29
+ if (mimeType === "image/png")
30
+ return { data: base64Data, mimeType };
31
+ let bytes = new Uint8Array(Buffer.from(base64Data, "base64")), pngBytes = await convertImageBytesToPng(bytes);
32
+ return pngBytes ? {
33
+ data: Buffer.from(pngBytes).toString("base64"),
34
+ mimeType: "image/png"
35
+ } : null;
36
+ }
37
+
38
+ // packages/coding-agent/dist/utils/image-process.js
39
+ function baseMimeType(mimeType) {
40
+ return mimeType.split(";")[0]?.trim().toLowerCase() ?? mimeType.toLowerCase();
41
+ }
42
+ function normalizeSupportedImageMimeType(mimeType) {
43
+ switch (baseMimeType(mimeType)) {
44
+ case "image/png":
45
+ return "image/png";
46
+ case "image/jpeg":
47
+ case "image/jpg":
48
+ return "image/jpeg";
49
+ case "image/gif":
50
+ return "image/gif";
51
+ case "image/webp":
52
+ return "image/webp";
53
+ default:
54
+ return null;
55
+ }
56
+ }
57
+ async function normalizeImage(bytes, mimeType) {
58
+ let normalizedMimeType = normalizeSupportedImageMimeType(mimeType);
59
+ if (normalizedMimeType)
60
+ return { bytes, mimeType: normalizedMimeType };
61
+ let pngBytes = await convertImageBytesToPng(bytes);
62
+ return pngBytes ? {
63
+ bytes: pngBytes,
64
+ mimeType: "image/png",
65
+ convertedFrom: baseMimeType(mimeType)
66
+ } : null;
67
+ }
68
+ function conversionHint(from, to) {
69
+ if (!(!from || from === to))
70
+ return `[Image converted from ${from} to ${to}.]`;
71
+ }
72
+ async function processImage(bytes, mimeType, options) {
73
+ let autoResizeImages = options?.autoResizeImages ?? !0, normalized = await normalizeImage(bytes, mimeType);
74
+ if (!normalized)
75
+ return {
76
+ ok: !1,
77
+ message: "[Image omitted: could not be converted to a supported inline image format.]"
78
+ };
79
+ if (autoResizeImages) {
80
+ let resized = await resizeImage(normalized.bytes, normalized.mimeType, options?.resizeOptions);
81
+ if (!resized)
82
+ return {
83
+ ok: !1,
84
+ message: "[Image omitted: could not be resized below the inline image size limit.]"
85
+ };
86
+ let hints2 = [], convertedHint2 = conversionHint(normalized.convertedFrom, resized.mimeType);
87
+ convertedHint2 && hints2.push(convertedHint2);
88
+ let dimensionNote = formatDimensionNote(resized);
89
+ return dimensionNote && hints2.push(dimensionNote), {
90
+ ok: !0,
91
+ data: resized.data,
92
+ mimeType: resized.mimeType,
93
+ hints: hints2
94
+ };
95
+ }
96
+ let hints = [], convertedHint = conversionHint(normalized.convertedFrom, normalized.mimeType);
97
+ return convertedHint && hints.push(convertedHint), {
98
+ ok: !0,
99
+ data: Buffer.from(normalized.bytes).toString("base64"),
100
+ mimeType: normalized.mimeType,
101
+ hints
102
+ };
103
+ }
104
+
105
+ export {
106
+ convertToPng,
107
+ processImage
108
+ };
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-5ZQXRPMC.js";
25
25
  import {
26
26
  processImage
27
- } from "./chunk-AD6VXAO7.js";
27
+ } from "./chunk-XHIRAZ26.js";
28
28
  import {
29
29
  markExited,
30
30
  register
@@ -8,9 +8,9 @@ async function handleGatewayCommand(args) {
8
8
  try {
9
9
  let sub = args[1];
10
10
  if (sub === "setup")
11
- await (await import("./setup-CQ2NLVK5.js")).setupGateway();
11
+ await (await import("./setup-PFBWRNUI.js")).setupGateway();
12
12
  else if (sub === "pair" && args[2] === "approve" && args.includes("--owner"))
13
- console.log((await import("./setup-CQ2NLVK5.js")).approveGatewayOwner(args[3], args[4]));
13
+ console.log((await import("./setup-PFBWRNUI.js")).approveGatewayOwner(args[3], args[4]));
14
14
  else if (["start", "stop", "restart", "status", "logs", "doctor", "autostart"].includes(sub)) {
15
15
  let service = await import("./service-MDQIPQ26.js");
16
16
  if (sub === "start" && console.log(await service.startGatewayService()), sub === "stop" && console.log(await service.stopGatewayService()), sub === "restart" && (await service.stopGatewayService(), console.log(await service.startGatewayService())), (sub === "status" || sub === "doctor") && console.log(service.serviceStatusText()), sub === "logs" && console.log(service.readGatewayLog()), sub === "autostart") {
@@ -32,7 +32,7 @@ lunr gateway autostart off|login|boot
32
32
  lunr gateway pair approve <platform> <code> [--owner]
33
33
  lunr gateway pair list`);
34
34
  else {
35
- let { runGateway } = await import("./gateway-INAYBF4Q.js");
35
+ let { runGateway } = await import("./gateway-DQM333YV.js");
36
36
  process.exitCode = await runGateway(sub === "run" ? args.slice(2) : args.slice(1));
37
37
  }
38
38
  } catch (error) {
@@ -5,13 +5,15 @@ import {
5
5
  lazyConnect,
6
6
  updateMetadataCache,
7
7
  updateStatusBar
8
- } from "./chunk-DSIKTUPW.js";
8
+ } from "./chunk-4SBQAI4T.js";
9
+ import "./chunk-LWJXTA6Z.js";
9
10
  import {
10
11
  authenticate,
11
12
  getAuthForUrl,
12
13
  removeAuth,
13
14
  supportsOAuth
14
- } from "./chunk-4TLO4PO2.js";
15
+ } from "./chunk-7IQGBKBJ.js";
16
+ import "./chunk-2IDTZAG5.js";
15
17
  import {
16
18
  ensureCompatibilityImports,
17
19
  getMcpDiscoverySummary,
@@ -5,9 +5,9 @@ import {
5
5
  formatHelpText,
6
6
  runChatCommand,
7
7
  sendCommandReply
8
- } from "./chunk-E4D3IGP2.js";
9
- import "./chunk-TORR5XBV.js";
10
- import "./chunk-QTU6AKNJ.js";
8
+ } from "./chunk-P7XBVXGT.js";
9
+ import "./chunk-5B5QN3ZQ.js";
10
+ import "./chunk-3MISGG4S.js";
11
11
  import "./chunk-RMQZU2YU.js";
12
12
  import "./chunk-SLVOAQOY.js";
13
13
  import "./chunk-CDVHZOOK.js";
@@ -15,8 +15,9 @@ import "./chunk-GYIXXQAO.js";
15
15
  import "./chunk-GJ2RDBRL.js";
16
16
  import "./chunk-CGBXPL3E.js";
17
17
  import "./chunk-BBUVIEZB.js";
18
- import "./chunk-ZXSGTGJ6.js";
18
+ import "./chunk-WIF24I7G.js";
19
19
  import "./chunk-M3LZLQW2.js";
20
+ import "./chunk-FY4A63RK.js";
20
21
  import "./chunk-2KIPT4HJ.js";
21
22
  import "./chunk-FVDOXRUD.js";
22
23
  import "./chunk-IMLCWLPI.js";
@@ -6,17 +6,20 @@ import {
6
6
  resolveMcpOutputGuardOptions,
7
7
  resolveMcpResultContent,
8
8
  transformMcpContent
9
- } from "./chunk-HFVZUPFJ.js";
9
+ } from "./chunk-E75WFZ33.js";
10
10
  import {
11
11
  formatSchema,
12
12
  getFailureAgeSeconds,
13
13
  lazyConnect
14
- } from "./chunk-DSIKTUPW.js";
14
+ } from "./chunk-4SBQAI4T.js";
15
+ import "./chunk-LWJXTA6Z.js";
15
16
  import {
16
- UrlElicitationRequiredError,
17
17
  authenticate,
18
18
  supportsOAuth
19
- } from "./chunk-4TLO4PO2.js";
19
+ } from "./chunk-7IQGBKBJ.js";
20
+ import {
21
+ UrlElicitationRequiredError
22
+ } from "./chunk-2IDTZAG5.js";
20
23
  import {
21
24
  abortable,
22
25
  formatAuthRequiredMessage,
@@ -3,16 +3,16 @@ import {
3
3
  AgentBridge,
4
4
  QUEUED,
5
5
  startGatewayCron
6
- } from "./chunk-KWIYUUZK.js";
6
+ } from "./chunk-UVWCDQYF.js";
7
7
  import {
8
8
  CHAT_COMMANDS,
9
9
  botCommandSpecs,
10
10
  runChatCommand,
11
11
  sendCommandReply
12
- } from "./chunk-E4D3IGP2.js";
12
+ } from "./chunk-P7XBVXGT.js";
13
13
  import {
14
14
  resolveWithinRoots
15
- } from "./chunk-TORR5XBV.js";
15
+ } from "./chunk-5B5QN3ZQ.js";
16
16
  import {
17
17
  acceptGatewayInput,
18
18
  addAllowedUser,
@@ -24,19 +24,18 @@ import {
24
24
  handleCallback,
25
25
  invalidateGatewayDialogs,
26
26
  isAuthorized,
27
- isGatewayOwner,
28
27
  listSessions,
29
28
  queueGatewayText,
30
29
  registerGatewayApprovalHandler,
31
30
  rememberGatewayRole,
32
- requireGatewayOwner,
31
+ requireAuthorized,
33
32
  runWithApprovalContext,
34
33
  splitMessage,
35
34
  startButtonSweeper,
36
35
  startGatewayPresenter,
37
36
  stopButtonSweeper,
38
37
  stopGatewayPresenter
39
- } from "./chunk-QTU6AKNJ.js";
38
+ } from "./chunk-3MISGG4S.js";
40
39
  import {
41
40
  createPairingStore
42
41
  } from "./chunk-RMQZU2YU.js";
@@ -45,7 +44,8 @@ import {
45
44
  } from "./chunk-SLVOAQOY.js";
46
45
  import "./chunk-CJECDQKP.js";
47
46
  import "./chunk-CDVHZOOK.js";
48
- import "./chunk-AD6VXAO7.js";
47
+ import "./chunk-XHIRAZ26.js";
48
+ import "./chunk-5Q4A37RB.js";
49
49
  import {
50
50
  isFeatureEnabled
51
51
  } from "./chunk-2HMIRK7W.js";
@@ -53,8 +53,9 @@ import "./chunk-GYIXXQAO.js";
53
53
  import "./chunk-GJ2RDBRL.js";
54
54
  import "./chunk-CGBXPL3E.js";
55
55
  import "./chunk-BBUVIEZB.js";
56
- import "./chunk-ZXSGTGJ6.js";
56
+ import "./chunk-WIF24I7G.js";
57
57
  import "./chunk-M3LZLQW2.js";
58
+ import "./chunk-FY4A63RK.js";
58
59
  import "./chunk-KKUTQQV7.js";
59
60
  import "./chunk-CSFI6YXL.js";
60
61
  import "./chunk-I54LGHWM.js";
@@ -364,7 +365,7 @@ var DiscordAdapter = class {
364
365
  userName: interaction.user.username
365
366
  }, cfg = loadGatewayConfig(), authorized = isAuthorized(source, cfg, createPairingStore());
366
367
  if (interaction.isAutocomplete()) {
367
- if (!authorized || !isGatewayOwner(source, cfg))
368
+ if (!authorized)
368
369
  return await interaction.respond([]), !0;
369
370
  let query = String(interaction.options.getFocused()).toLowerCase(), values = [];
370
371
  if (interaction.commandName === "mode" && (values = ["yolo", "auto", "read-only"]), this.commandSuggestions && ["thinking", "model"].includes(interaction.commandName) && (values = [...await this.commandSuggestions(source, interaction.commandName)]), interaction.commandName === "project" && (values = cfg.projectRoots ?? []), interaction.commandName === "sessions") {
@@ -1161,16 +1162,14 @@ function createRouter(deps) {
1161
1162
  if (source.chatType !== "dm" || cfg.unauthorizedDmBehavior !== "pair")
1162
1163
  return !0;
1163
1164
  let code = pairing.issueCode(source.platform, source.userId);
1164
- return code === null || await adapter.send(source.chatId, `Your lunR pairing code: ${formatPairingCode(code)}. Ask the computer's owner to run lunr gateway pair approve ${source.platform} ${formatPairingCode(code)} --owner if this is their account. Approval without --owner grants chat access only.`, { replyTo: event.messageId, threadId: source.threadId }), !0;
1165
+ return code === null || await adapter.send(source.chatId, `Your lunR pairing code: ${formatPairingCode(code)}. On the computer running lunr, approve access with: lunr gateway pair approve ${source.platform} ${formatPairingCode(code)}. Approval grants full gateway access, including local projects and saved sessions.`, { replyTo: event.messageId, threadId: source.threadId }), !0;
1165
1166
  }
1166
1167
  function workspaceReadiness(event, key, cfg) {
1167
1168
  if (getSession(key) || conversationBinding(key)?.cwd)
1168
1169
  return;
1169
- if (!isGatewayOwner(event.source, cfg))
1170
- return "This chat is paired but has no project. Ask the computer's gateway owner to configure your access locally. /project and /continue require owner access.";
1171
1170
  let root = cfg.defaultProject;
1172
1171
  if (!root)
1173
- return "No default project selected. Use /project in this private chat to choose an approved folder.";
1172
+ return "No default project selected. Use /project to choose an approved folder.";
1174
1173
  try {
1175
1174
  let cwd = resolveWithinRoots(root, cfg.projectRoots ?? []);
1176
1175
  bindConversation(key, event.source, { cwd, owner: event.source.userId });
@@ -1185,7 +1184,7 @@ function createRouter(deps) {
1185
1184
  return !1;
1186
1185
  let firstToken = text.split(/\s+/, 1)[0].toLowerCase(), commandWord = firstToken.split("@")[0].slice(1), args = text.slice(firstToken.length).trim();
1187
1186
  if (deps.remoteControls) {
1188
- let { handleMobileCommand, cancelMobileTransfer } = await import("./mobile-commands-J7OJEKFO.js");
1187
+ let { handleMobileCommand, cancelMobileTransfer } = await import("./mobile-commands-O5LCHL32.js");
1189
1188
  if (["stop", "stopall", "new", "cancel"].includes(commandWord) && cancelMobileTransfer(key), commandWord === "cancel")
1190
1189
  return invalidateGatewayDialogs(key), await adapter.send(event.source.chatId, "Cancelled the pending selection or transfer.", {
1191
1190
  threadId: event.source.threadId
@@ -1294,8 +1293,8 @@ function createRouter(deps) {
1294
1293
  return;
1295
1294
  if (deps.remoteControls) {
1296
1295
  let binding = conversationBinding(key);
1297
- if (binding?.owner && (requireGatewayOwner(event.source, cfg), binding.owner !== event.source.userId))
1298
- throw new Error("This session belongs to a different owner.");
1296
+ if (binding?.owner && (requireAuthorized(event.source, cfg), binding.owner !== event.source.userId))
1297
+ throw new Error("This session belongs to a different user.");
1299
1298
  if (bindConversation(key, event.source), acceptGatewayInput(key, event))
1300
1299
  return;
1301
1300
  }
@@ -1321,8 +1320,8 @@ var ADAPTER_FACTORIES = {
1321
1320
  telegram: (cfg) => new TelegramAdapter(cfg),
1322
1321
  discord: (cfg) => new DiscordAdapter(cfg)
1323
1322
  }, KNOWN_PLATFORMS = ["telegram", "discord"], SETUP_INSTRUCTIONS = {
1324
- telegram: ["Telegram: run lunr gateway setup locally to configure the bot token and owner ID."],
1325
- discord: ["Discord: run lunr gateway setup locally to configure the bot token and owner ID."]
1323
+ telegram: ["Telegram: run lunr gateway setup locally to configure the bot token and approved user ID."],
1324
+ discord: ["Discord: run lunr gateway setup locally to configure the bot token and approved user ID."]
1326
1325
  };
1327
1326
  function printSetupInstructions(enabledButUnrunnable) {
1328
1327
  console.log("lunR gateway: no runnable platforms configured.");
@@ -1349,7 +1348,7 @@ async function runPairApprove(platform, code, owner = !1) {
1349
1348
  } catch (err) {
1350
1349
  return console.error(`Paired ${platform} user ${userId}, but could not persist allowedUsers: ${err}`), 1;
1351
1350
  }
1352
- return console.log(`Approved ${platform} user ${userId}${owner ? " as owner with local project and TUI access" : " for chat only; owner access requires local --owner approval"}.`), 0;
1351
+ return console.log(`Approved ${platform} user ${userId}. Gateway access includes local projects and saved sessions.`), 0;
1353
1352
  }
1354
1353
  function runPairList() {
1355
1354
  let pairing = createPairingStore(), pending = pairing.listPending(), approved = pairing.listApproved();
@@ -19,7 +19,8 @@ import {
19
19
  TreeSelectorComponent,
20
20
  UserMessageComponent,
21
21
  UserMessageSelectorComponent
22
- } from "./chunk-RC7DMV45.js";
22
+ } from "./chunk-RCR3XAQY.js";
23
+ import "./chunk-KWA4OC2J.js";
23
24
  import {
24
25
  attachJsonlLineReader,
25
26
  runRpcMode,
@@ -27,8 +28,8 @@ import {
27
28
  } from "./chunk-IF24A3FH.js";
28
29
  import {
29
30
  runPrintMode
30
- } from "./chunk-OCVIXVTZ.js";
31
- import "./chunk-KWA4OC2J.js";
31
+ } from "./chunk-D5UCKPBQ.js";
32
+ import "./chunk-U5F4IC7R.js";
32
33
  import "./chunk-US544NN6.js";
33
34
  import "./chunk-CDVHZOOK.js";
34
35
  import {
@@ -39,14 +40,14 @@ import "./chunk-RWTKOC3B.js";
39
40
  import "./chunk-7N3YHTYF.js";
40
41
  import {
41
42
  main
42
- } from "./chunk-IJIFHRTB.js";
43
- import "./chunk-WF7PGWRZ.js";
44
- import "./chunk-7S3T6YEA.js";
45
- import "./chunk-2HHLJWGD.js";
43
+ } from "./chunk-T4DA4XE7.js";
44
+ import "./chunk-DVQSHCVP.js";
45
+ import "./chunk-L24TPBS4.js";
46
+ import "./chunk-X3PGBLQ7.js";
46
47
  import "./chunk-YPHAIRZT.js";
47
48
  import "./chunk-PL6JKXWI.js";
48
49
  import "./chunk-5ZH3ZFIZ.js";
49
- import "./chunk-OVX6X377.js";
50
+ import "./chunk-PTFBPO3C.js";
50
51
  import {
51
52
  AgentSession,
52
53
  AgentSessionRuntime,
@@ -58,8 +59,7 @@ import {
58
59
  parseSkillBlock,
59
60
  wrapRegisteredTool,
60
61
  wrapRegisteredTools
61
- } from "./chunk-VQFSUJJG.js";
62
- import "./chunk-CCCN2UCX.js";
62
+ } from "./chunk-LJTIVM7I.js";
63
63
  import {
64
64
  DefaultResourceLoader,
65
65
  createEventBus,
@@ -70,12 +70,13 @@ import {
70
70
  loadProjectContextFiles,
71
71
  loadSkills,
72
72
  loadSkillsFromDir
73
- } from "./chunk-YCUZEGJG.js";
73
+ } from "./chunk-SN2KSMPQ.js";
74
+ import "./chunk-CCCN2UCX.js";
74
75
  import {
75
76
  DefaultPackageManager
76
- } from "./chunk-LQP3RB67.js";
77
- import "./chunk-OBMWP3I5.js";
77
+ } from "./chunk-RAK2QA2B.js";
78
78
  import "./chunk-DVGWF6A2.js";
79
+ import "./chunk-OBMWP3I5.js";
79
80
  import {
80
81
  parseFrontmatter,
81
82
  stripFrontmatter
@@ -103,7 +104,7 @@ import {
103
104
  renderDiff,
104
105
  truncateToVisualLines,
105
106
  withFileMutationQueue
106
- } from "./chunk-YDO2F2IA.js";
107
+ } from "./chunk-YWOJIGFY.js";
107
108
  import {
108
109
  DEFAULT_MAX_BYTES,
109
110
  DEFAULT_MAX_LINES,
@@ -114,19 +115,21 @@ import {
114
115
  } from "./chunk-53YJI7JU.js";
115
116
  import "./chunk-5ZQXRPMC.js";
116
117
  import {
117
- convertToPng,
118
+ convertToPng
119
+ } from "./chunk-XHIRAZ26.js";
120
+ import {
118
121
  formatDimensionNote,
119
122
  resizeImage
120
- } from "./chunk-AD6VXAO7.js";
123
+ } from "./chunk-5Q4A37RB.js";
121
124
  import {
122
125
  AuthStorage,
123
126
  ModelRuntime,
124
127
  readStoredCredential
125
128
  } from "./chunk-KJ6DWS3K.js";
126
- import "./chunk-NRKGMJYU.js";
129
+ import "./chunk-SPVDBUOS.js";
127
130
  import {
128
131
  SettingsManager
129
- } from "./chunk-6XL67VVY.js";
132
+ } from "./chunk-I74LN5JG.js";
130
133
  import "./chunk-UOEDI7RP.js";
131
134
  import "./chunk-2HMIRK7W.js";
132
135
  import {
@@ -156,8 +159,9 @@ import {
156
159
  } from "./chunk-GJ2RDBRL.js";
157
160
  import "./chunk-CGBXPL3E.js";
158
161
  import "./chunk-BBUVIEZB.js";
159
- import "./chunk-ZXSGTGJ6.js";
162
+ import "./chunk-WIF24I7G.js";
160
163
  import "./chunk-M3LZLQW2.js";
164
+ import "./chunk-FY4A63RK.js";
161
165
  import "./chunk-KKUTQQV7.js";
162
166
  import {
163
167
  getShellConfig
@@ -8,8 +8,10 @@ import {
8
8
  updateMetadataCache,
9
9
  updateServerMetadata,
10
10
  updateStatusBar
11
- } from "./chunk-DSIKTUPW.js";
12
- import "./chunk-4TLO4PO2.js";
11
+ } from "./chunk-4SBQAI4T.js";
12
+ import "./chunk-LWJXTA6Z.js";
13
+ import "./chunk-7IQGBKBJ.js";
14
+ import "./chunk-2IDTZAG5.js";
13
15
  import "./chunk-LWYIVUGV.js";
14
16
  import "./chunk-4HXHDDCF.js";
15
17
  import "./chunk-ARC4KOTI.js";
@@ -132,7 +132,7 @@ async function runSetup(argv) {
132
132
  for (let id of applied.disabledIds)
133
133
  await FEATURE_HANDLERS[id].disable({ purgeSecrets: !1 });
134
134
  } else
135
- return await (await import("./setup-CQ2NLVK5.js")).setupGateway(), 0;
135
+ return await (await import("./setup-PFBWRNUI.js")).setupGateway(), 0;
136
136
  let { installBrowser } = await import("./setup-JBKOLJ6F.js");
137
137
  return await installBrowser(!1), saveInstallFeatures(next), appendInstallLog(`setup installerVersion=${VERSION}`), console.log(`Writing ${getAgentDir()}/install-features.json`), console.log(`
138
138
  Next:`), console.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`), console.log(` 2. Run: ${APP_NAME}`), console.log(" 3. In the TUI: /login"), 0;
@@ -3,7 +3,7 @@ import {
3
3
  InteractiveMode,
4
4
  formatResumeCommand,
5
5
  startInteractiveToolInstalls
6
- } from "./chunk-RC7DMV45.js";
6
+ } from "./chunk-RCR3XAQY.js";
7
7
  import "./chunk-KWA4OC2J.js";
8
8
  import "./chunk-US544NN6.js";
9
9
  import "./chunk-CDVHZOOK.js";
@@ -13,19 +13,20 @@ import "./chunk-RWTKOC3B.js";
13
13
  import "./chunk-7N3YHTYF.js";
14
14
  import "./chunk-YPHAIRZT.js";
15
15
  import "./chunk-5ZH3ZFIZ.js";
16
- import "./chunk-VQFSUJJG.js";
16
+ import "./chunk-LJTIVM7I.js";
17
+ import "./chunk-SN2KSMPQ.js";
17
18
  import "./chunk-CCCN2UCX.js";
18
- import "./chunk-YCUZEGJG.js";
19
- import "./chunk-LQP3RB67.js";
20
- import "./chunk-OBMWP3I5.js";
19
+ import "./chunk-RAK2QA2B.js";
21
20
  import "./chunk-DVGWF6A2.js";
21
+ import "./chunk-OBMWP3I5.js";
22
22
  import "./chunk-QFWG2RVL.js";
23
- import "./chunk-YDO2F2IA.js";
23
+ import "./chunk-YWOJIGFY.js";
24
24
  import "./chunk-53YJI7JU.js";
25
25
  import "./chunk-5ZQXRPMC.js";
26
- import "./chunk-AD6VXAO7.js";
26
+ import "./chunk-XHIRAZ26.js";
27
+ import "./chunk-5Q4A37RB.js";
27
28
  import "./chunk-KJ6DWS3K.js";
28
- import "./chunk-6XL67VVY.js";
29
+ import "./chunk-I74LN5JG.js";
29
30
  import "./chunk-UOEDI7RP.js";
30
31
  import "./chunk-2HMIRK7W.js";
31
32
  import "./chunk-HTFRRDSF.js";
@@ -34,8 +35,9 @@ import "./chunk-GYIXXQAO.js";
34
35
  import "./chunk-GJ2RDBRL.js";
35
36
  import "./chunk-CGBXPL3E.js";
36
37
  import "./chunk-BBUVIEZB.js";
37
- import "./chunk-ZXSGTGJ6.js";
38
+ import "./chunk-WIF24I7G.js";
38
39
  import "./chunk-M3LZLQW2.js";
40
+ import "./chunk-FY4A63RK.js";
39
41
  import "./chunk-KKUTQQV7.js";
40
42
  import "./chunk-CSFI6YXL.js";
41
43
  import "./chunk-I54LGHWM.js";