@xrkseek/harness-cli 0.1.2 → 0.1.4

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 (292) hide show
  1. package/README.md +41 -22
  2. package/dist/commands/plugin.d.ts.map +1 -1
  3. package/dist/commands/plugin.js +23 -16
  4. package/dist/commands/plugin.js.map +1 -1
  5. package/dist/commands/serve.d.ts.map +1 -1
  6. package/dist/commands/serve.js +34 -3
  7. package/dist/commands/serve.js.map +1 -1
  8. package/dist/log.d.ts +6 -1
  9. package/dist/log.d.ts.map +1 -1
  10. package/dist/log.js +20 -6
  11. package/dist/log.js.map +1 -1
  12. package/dist/parse-args.js +8 -8
  13. package/dist/plugin/index.d.ts +3 -0
  14. package/dist/plugin/index.d.ts.map +1 -1
  15. package/dist/plugin/index.js +15 -5
  16. package/dist/plugin/index.js.map +1 -1
  17. package/dist/plugin/install-client.d.ts +2 -0
  18. package/dist/plugin/install-client.d.ts.map +1 -1
  19. package/dist/plugin/install-client.js +24 -9
  20. package/dist/plugin/install-client.js.map +1 -1
  21. package/dist/plugin/remap-inject.d.ts.map +1 -1
  22. package/dist/plugin/remap-inject.js +1 -0
  23. package/dist/plugin/remap-inject.js.map +1 -1
  24. package/dist/plugin/staging-reconcile.d.ts +8 -0
  25. package/dist/plugin/staging-reconcile.d.ts.map +1 -0
  26. package/dist/plugin/staging-reconcile.js +67 -0
  27. package/dist/plugin/staging-reconcile.js.map +1 -0
  28. package/dist/product-paths.d.ts.map +1 -1
  29. package/dist/product-paths.js +8 -0
  30. package/dist/product-paths.js.map +1 -1
  31. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  32. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.d.ts +15 -22
  33. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.d.ts.map +1 -1
  34. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.js +19 -16
  35. package/node_modules/@xrkseek/server-face/dist/handlers/cost-meter.js.map +1 -1
  36. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -1
  37. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  38. package/node_modules/@xrkseek/server-face/dist/index.js +2 -1
  39. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  40. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/server-host/dist/index.js +12 -4
  42. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  43. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts +10 -0
  44. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -0
  45. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +131 -0
  46. package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -0
  47. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.d.ts.map +1 -1
  48. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.js +29 -1
  49. package/node_modules/@xrkseek/server-host/dist/wallet-bridge.js.map +1 -1
  50. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js +3 -1
  52. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-providers.js.map +1 -1
  53. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts +4 -1
  54. package/node_modules/@xrkseek/server-http/dist/dsh-compat/adapter-types.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-http.js +1 -1
  56. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-http.js.map +1 -1
  57. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.d.ts +41 -0
  58. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.d.ts.map +1 -0
  59. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.js +422 -0
  60. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-discovery.js.map +1 -0
  61. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.d.ts +21 -0
  62. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.d.ts.map +1 -0
  63. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.js +34 -0
  64. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import-registry.js.map +1 -0
  65. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.d.ts +1 -1
  66. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.d.ts.map +1 -1
  67. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.js +277 -23
  68. package/node_modules/@xrkseek/server-http/dist/dsh-compat/chat-import.js.map +1 -1
  69. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.d.ts +1 -1
  70. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js +1 -1
  71. package/node_modules/@xrkseek/server-http/dist/dsh-compat/community-root-http.js.map +1 -1
  72. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.d.ts +1 -1
  73. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.js +2 -2
  75. package/node_modules/@xrkseek/server-http/dist/dsh-compat/cordis-registry.js.map +1 -1
  76. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-community-infer.js +1 -1
  77. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-community-infer.js.map +1 -1
  78. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts +4 -4
  79. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  80. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +26 -26
  81. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  82. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-envelope.js +1 -1
  83. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-envelope.js.map +1 -1
  84. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.d.ts +2 -2
  85. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js +1 -1
  86. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-dsh-http.js.map +1 -1
  87. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js +3 -3
  88. package/node_modules/@xrkseek/server-http/dist/dsh-compat/generic-plugin-http.js.map +1 -1
  89. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js +1 -1
  90. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js.map +1 -1
  91. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js +3 -3
  92. package/node_modules/@xrkseek/server-http/dist/dsh-compat/honest-http-catchall.js.map +1 -1
  93. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.d.ts +2 -0
  94. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.d.ts.map +1 -1
  95. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.js +53 -1
  96. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-messaging-bridge.js.map +1 -1
  97. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +21 -18
  98. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  99. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +28 -15
  100. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  101. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js +1 -1
  102. package/node_modules/@xrkseek/server-http/dist/dsh-compat/market.js.map +1 -1
  103. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.d.ts +1 -0
  104. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.d.ts.map +1 -1
  105. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.js +77 -24
  106. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memento.js.map +1 -1
  107. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts +24 -0
  108. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.d.ts.map +1 -1
  109. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js +39 -10
  110. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mnemon.js.map +1 -1
  111. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts +71 -0
  112. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.d.ts.map +1 -0
  113. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js +349 -0
  114. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-auth.js.map +1 -0
  115. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.d.ts +53 -0
  116. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.d.ts.map +1 -0
  117. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.js +233 -0
  118. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-cpolar-component.js.map +1 -0
  119. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.d.ts +4 -0
  120. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.d.ts.map +1 -0
  121. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.js +86 -0
  122. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-funnel-sidecar.js.map +1 -0
  123. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts +15 -0
  124. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.d.ts.map +1 -0
  125. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js +41 -0
  126. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-gate.js.map +1 -0
  127. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.d.ts +22 -0
  128. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.d.ts.map +1 -0
  129. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.js +183 -0
  130. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-local-gateway.js.map +1 -0
  131. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.d.ts +68 -0
  132. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.d.ts.map +1 -0
  133. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.js +511 -0
  134. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-controllers.js.map +1 -0
  135. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.d.ts +34 -0
  136. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.d.ts.map +1 -0
  137. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.js +179 -0
  138. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote-runtime.js.map +1 -0
  139. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.d.ts +19 -0
  140. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.d.ts.map +1 -0
  141. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.js +102 -0
  142. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access-remote.js.map +1 -0
  143. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts +31 -4
  144. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.d.ts.map +1 -1
  145. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js +698 -33
  146. package/node_modules/@xrkseek/server-http/dist/dsh-compat/mobile-access.js.map +1 -1
  147. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js +1 -1
  148. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modlens.js.map +1 -1
  149. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.d.ts.map +1 -1
  150. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.js +4 -1
  151. package/node_modules/@xrkseek/server-http/dist/dsh-compat/modsearch.js.map +1 -1
  152. package/node_modules/@xrkseek/server-http/dist/dsh-compat/noema.js +1 -1
  153. package/node_modules/@xrkseek/server-http/dist/dsh-compat/noema.js.map +1 -1
  154. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.d.ts +3 -0
  155. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.d.ts.map +1 -0
  156. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.js +18 -0
  157. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket-qrcode.js.map +1 -0
  158. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.d.ts +6 -3
  159. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.d.ts.map +1 -1
  160. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.js +204 -54
  161. package/node_modules/@xrkseek/server-http/dist/dsh-compat/pocket.js.map +1 -1
  162. package/node_modules/@xrkseek/server-http/dist/dsh-compat/releases.js +1 -1
  163. package/node_modules/@xrkseek/server-http/dist/dsh-compat/releases.js.map +1 -1
  164. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.d.ts +3 -0
  165. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.d.ts.map +1 -1
  166. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.js +185 -21
  167. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-adapter.js.map +1 -1
  168. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.d.ts +3 -0
  169. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.d.ts.map +1 -0
  170. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.js +82 -0
  171. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-browser.js.map +1 -0
  172. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.d.ts +43 -0
  173. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.d.ts.map +1 -0
  174. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.js +2 -0
  175. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-face-bridge.js.map +1 -0
  176. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.d.ts +47 -13
  177. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.d.ts.map +1 -1
  178. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.js +146 -27
  179. package/node_modules/@xrkseek/server-http/dist/dsh-compat/sidebar-git.js.map +1 -1
  180. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js +1 -1
  181. package/node_modules/@xrkseek/server-http/dist/dsh-compat/skin-market.js.map +1 -1
  182. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.d.ts.map +1 -1
  183. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.js +22 -4
  184. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tokenledger.js.map +1 -1
  185. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.d.ts.map +1 -1
  186. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.js +21 -2
  187. package/node_modules/@xrkseek/server-http/dist/dsh-compat/tongflow.js.map +1 -1
  188. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind-workspace.js +1 -1
  189. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind-workspace.js.map +1 -1
  190. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.d.ts +2 -0
  191. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.d.ts.map +1 -1
  192. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.js +42 -3
  193. package/node_modules/@xrkseek/server-http/dist/dsh-compat/turn-rewind.js.map +1 -1
  194. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.d.ts +25 -7
  195. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.d.ts.map +1 -1
  196. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/contracts/wallet-port.js +2 -2
  197. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/doc-store.d.ts +2 -2
  198. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/doc-store.js +2 -2
  199. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts +12 -0
  200. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.d.ts.map +1 -0
  201. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js +40 -0
  202. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-json.js.map +1 -0
  203. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.d.ts +1 -1
  204. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.js +1 -1
  205. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/http-kit.js.map +1 -1
  206. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts +7 -12
  207. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.d.ts.map +1 -1
  208. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js +5 -8
  209. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/index.js.map +1 -1
  210. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.d.ts +5 -0
  211. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.d.ts.map +1 -0
  212. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.js +31 -0
  213. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/json-store.js.map +1 -0
  214. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts +37 -0
  215. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.d.ts.map +1 -0
  216. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js +96 -0
  217. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/mobile-gate-kit.js.map +1 -0
  218. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.d.ts +6 -0
  219. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.d.ts.map +1 -0
  220. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.js +2 -0
  221. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/public-handler.js.map +1 -0
  222. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.d.ts.map +1 -1
  223. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.js +66 -4
  224. package/node_modules/@xrkseek/server-http/dist/dsh-compat/underlying/wallet-service.js.map +1 -1
  225. package/node_modules/@xrkseek/server-http/dist/dsh-compat/undo.js +2 -2
  226. package/node_modules/@xrkseek/server-http/dist/dsh-compat/undo.js.map +1 -1
  227. package/node_modules/@xrkseek/server-http/dist/dsh-compat/usage-stats.js +1 -1
  228. package/node_modules/@xrkseek/server-http/dist/dsh-compat/usage-stats.js.map +1 -1
  229. package/node_modules/@xrkseek/server-http/dist/dsh-compat/vision.js +1 -1
  230. package/node_modules/@xrkseek/server-http/dist/dsh-compat/vision.js.map +1 -1
  231. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.d.ts +2 -2
  232. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.d.ts.map +1 -1
  233. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.js +2 -2
  234. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallet.js.map +1 -1
  235. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js +2 -2
  236. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wallpaper.js.map +1 -1
  237. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/settings-provider.d.ts +1 -1
  238. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js +1 -1
  239. package/node_modules/@xrkseek/server-http/dist/dsh-compat/wire/stub-handlers.js.map +1 -1
  240. package/node_modules/@xrkseek/server-http/dist/dsh-compat/xrk-json-store.js +3 -3
  241. package/node_modules/@xrkseek/server-http/dist/dsh-compat/xrk-json-store.js.map +1 -1
  242. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -1
  243. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  244. package/node_modules/@xrkseek/server-http/dist/index.js +1 -1
  245. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  246. package/node_modules/@xrkseek/server-http/package.json +7 -1
  247. package/node_modules/qrcode-generator/README.md +101 -0
  248. package/node_modules/qrcode-generator/package.json +30 -0
  249. package/node_modules/qrcode-generator/qrcode.d.ts +57 -0
  250. package/node_modules/qrcode-generator/qrcode.js +2297 -0
  251. package/node_modules/qrcode-generator/qrcode_SJIS.js +30 -0
  252. package/node_modules/qrcode-generator/qrcode_UTF8.js +26 -0
  253. package/node_modules/qrcode-generator/sample.html +49 -0
  254. package/node_modules/qrcode-generator/sample.js +49 -0
  255. package/node_modules/qrcode-generator/test/qrcode.js +118 -0
  256. package/package.json +4 -2
  257. package/product-web/assets/index-BNGm-t1O.js +112 -0
  258. package/product-web/assets/index-BNGm-t1O.js.map +1 -0
  259. package/product-web/boot.json +1 -1
  260. package/product-web/index.html +1 -1
  261. package/product-web/plugins/@xrkseek/client-locale/client.js +3 -3
  262. package/product-web/plugins/@xrkseek/client-modules/client.js +7 -6
  263. package/product-web/plugins/@xrkseek/client-runtime/client.js +7 -0
  264. package/product-web/plugins/@xrkseek/client-ui-agent-preset/client.js +31 -31
  265. package/product-web/plugins/@xrkseek/client-ui-attachment/client.js +12 -12
  266. package/product-web/plugins/@xrkseek/client-ui-commands/client.js +8 -8
  267. package/product-web/plugins/@xrkseek/client-ui-conversation/client.js +186 -190
  268. package/product-web/plugins/@xrkseek/client-ui-deliverables/client.js +6 -6
  269. package/product-web/plugins/@xrkseek/client-ui-directory-picker-browse/client.js +27 -27
  270. package/product-web/plugins/@xrkseek/client-ui-goal/client.js +8 -8
  271. package/product-web/plugins/@xrkseek/client-ui-input-trigger/client.js +6 -6
  272. package/product-web/plugins/@xrkseek/client-ui-jobs/client.js +8 -8
  273. package/product-web/plugins/@xrkseek/client-ui-layout/client.js +4 -4
  274. package/product-web/plugins/@xrkseek/client-ui-message-feedback/client.js +3 -3
  275. package/product-web/plugins/@xrkseek/client-ui-model-selection/client.js +17 -17
  276. package/product-web/plugins/@xrkseek/client-ui-permission-presets/client.js +4 -4
  277. package/product-web/plugins/@xrkseek/client-ui-plan/client.js +3 -3
  278. package/product-web/plugins/@xrkseek/client-ui-settings-general/client.js +28 -20
  279. package/product-web/plugins/@xrkseek/client-ui-settings-models/client.js +53 -53
  280. package/product-web/plugins/@xrkseek/client-ui-settings-plugin-inventory/client.js +11 -11
  281. package/product-web/plugins/@xrkseek/client-ui-settings-plugins/client.js +37 -37
  282. package/product-web/plugins/@xrkseek/client-ui-sidebar/client.js +13 -13
  283. package/product-web/plugins/@xrkseek/client-ui-skill/client.js +12 -12
  284. package/product-web/plugins/@xrkseek/client-ui-subagent/client.js +21 -21
  285. package/product-web/plugins/@xrkseek/client-ui-theme/client.js +3 -3
  286. package/product-web/plugins/@xrkseek/client-ui-tool/client.js +40 -40
  287. package/product-web/plugins/@xrkseek/client-ui-trajectory/client.js +141 -141
  288. package/product-web/plugins/@xrkseek/client-ui-user-questions/client.js +29 -29
  289. package/product-web/plugins/@xrkseek/client-ui-workflow-run/client.js +18 -18
  290. package/product-web/plugins/@xrkseek/client-ui-workspace/client.js +54 -54
  291. package/product-web/assets/index-CHKZdZNt.js +0 -112
  292. package/product-web/assets/index-CHKZdZNt.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-cpolar-component.js","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-cpolar-component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveFunnelOverride(): string | undefined;
2
+ export declare function resolveFunnelSidecarPath(xrkHome: string | undefined): string | undefined;
3
+ export declare function ensureFunnelSidecar(xrkHome: string | undefined): Promise<string>;
4
+ //# sourceMappingURL=mobile-access-funnel-sidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-funnel-sidecar.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-funnel-sidecar.ts"],"names":[],"mappings":"AA2CA,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAS1D;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Resolve Tailscale Funnel sidecar binary (dsh-mobile bundle or env override).
3
+ */
4
+ import { copyFile, mkdir } from "node:fs/promises";
5
+ import { existsSync } from "node:fs";
6
+ import { execFile } from "node:child_process";
7
+ import { promisify } from "node:util";
8
+ import path from "node:path";
9
+ import { dataPath } from "./underlying/json-store.js";
10
+ const execFileAsync = promisify(execFile);
11
+ function funnelFilename() {
12
+ const suffix = process.platform === "win32" ? ".exe" : "";
13
+ return `dsh-mobile-funnel-${process.platform}-${process.arch}${suffix}`;
14
+ }
15
+ function resolveNpmInvocation() {
16
+ const node = process.execPath;
17
+ const npmCli = path.join(path.dirname(node), "node_modules", "npm", "bin", "npm-cli.js");
18
+ if (existsSync(npmCli)) {
19
+ return { command: node, prefixArgs: [npmCli] };
20
+ }
21
+ const npmCmd = process.platform === "win32"
22
+ ? path.join(path.dirname(node), "npm.cmd")
23
+ : "npm";
24
+ return { command: npmCmd, prefixArgs: [] };
25
+ }
26
+ function resolveTarCommand() {
27
+ if (process.platform !== "win32")
28
+ return "tar";
29
+ const sysroot = process.env.SystemRoot ?? "C:\\Windows";
30
+ const tarExe = path.join(sysroot, "System32", "tar.exe");
31
+ return existsSync(tarExe) ? tarExe : "tar";
32
+ }
33
+ export function resolveFunnelOverride() {
34
+ const override = process.env.XRK_MOBILE_FUNNEL_SIDECAR?.trim() ||
35
+ process.env.DSH_MOBILE_FUNNEL_SIDECAR?.trim();
36
+ if (!override)
37
+ return undefined;
38
+ if (!path.isAbsolute(override)) {
39
+ throw new Error("XRK_MOBILE_FUNNEL_SIDECAR must be an absolute path");
40
+ }
41
+ return override;
42
+ }
43
+ export function resolveFunnelSidecarPath(xrkHome) {
44
+ const override = resolveFunnelOverride();
45
+ if (override)
46
+ return override;
47
+ const dest = dataPath(xrkHome, "mobile-access", "components", "funnel", funnelFilename());
48
+ return existsSync(dest) ? dest : undefined;
49
+ }
50
+ export async function ensureFunnelSidecar(xrkHome) {
51
+ const existing = resolveFunnelSidecarPath(xrkHome);
52
+ if (existing)
53
+ return existing;
54
+ const name = funnelFilename();
55
+ const dest = dataPath(xrkHome, "mobile-access", "components", "funnel", name);
56
+ await mkdir(path.dirname(dest), { recursive: true });
57
+ const staging = dataPath(xrkHome, "mobile-access", "staging", "funnel-fetch");
58
+ await mkdir(staging, { recursive: true });
59
+ const packPath = path.join(staging, "dsh-mobile.tgz");
60
+ const { command, prefixArgs } = resolveNpmInvocation();
61
+ await execFileAsync(command, [
62
+ ...prefixArgs,
63
+ "pack",
64
+ "dsh-mobile@0.2.0",
65
+ "--silent",
66
+ "--pack-destination",
67
+ staging,
68
+ ], { windowsHide: true, timeout: 180_000 });
69
+ const packed = existsSync(packPath)
70
+ ? packPath
71
+ : path.join(staging, "dsh-mobile-0.2.0.tgz");
72
+ if (!existsSync(packed)) {
73
+ throw new Error("funnel_sidecar_fetch_failed");
74
+ }
75
+ await execFileAsync(resolveTarCommand(), ["-xf", packed, "-C", staging], {
76
+ windowsHide: true,
77
+ timeout: 60_000,
78
+ });
79
+ const src = path.join(staging, "package", "bin", name);
80
+ if (!existsSync(src)) {
81
+ throw new Error("funnel_sidecar_missing_in_package");
82
+ }
83
+ await copyFile(src, dest);
84
+ return dest;
85
+ }
86
+ //# sourceMappingURL=mobile-access-funnel-sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-funnel-sidecar.js","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-funnel-sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Mobile-access Host gate — LAN/WAN PIN for every public surface.
3
+ * Thin adapter over `underlying/mobile-gate-kit`.
4
+ */
5
+ import type { IncomingMessage, ServerResponse } from "node:http";
6
+ import type { PublicRouteHandlerFn } from "./underlying/public-handler.js";
7
+ import { type MobileAccessOptions } from "./mobile-access.js";
8
+ import { type MobileGateDecision } from "./underlying/mobile-gate-kit.js";
9
+ export declare function evaluateMobileAccessGate(req: IncomingMessage, pathname: string, options: MobileAccessOptions): MobileGateDecision;
10
+ export declare function tryHandleMobileAccessGate(req: IncomingMessage, res: ServerResponse, pathname: string, options: MobileAccessOptions): Promise<boolean>;
11
+ /** First link in Host `tryHandlePublic` — gates SPA, `/plugins`, Face HTTP alike. */
12
+ export declare function createMobileAccessGateHandler(options: MobileAccessOptions): PublicRouteHandlerFn;
13
+ /** Sync checker for WebSocket upgrades. */
14
+ export declare function createMobileAccessGateChecker(options: MobileAccessOptions): (req: IncomingMessage) => boolean;
15
+ //# sourceMappingURL=mobile-access-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-gate.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-gate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAS3E,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAgCzC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAcpB;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,CAKtB;AAED,2CAA2C;AAC3C,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,GAC3B,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAKnC"}
@@ -0,0 +1,41 @@
1
+ import { LAN_PIN_COOKIE, parseCookieHeader, SESSION_COOKIE, verifyAccessPinCookie, verifyMobileSession, WAN_PIN_COOKIE, } from "./mobile-access-auth.js";
2
+ import { readMobileAccessState, } from "./mobile-access.js";
3
+ import { applyMobileGateDecision, effectiveRequestHost, evaluateMobileGate, } from "./underlying/mobile-gate-kit.js";
4
+ function credentialsFromRequest(req, options) {
5
+ const snapshot = readMobileAccessState(options);
6
+ const cookie = req.headers.cookie;
7
+ return {
8
+ snapshot,
9
+ hasDeviceSession: verifyMobileSession(snapshot, parseCookieHeader(cookie, SESSION_COOKIE)),
10
+ hasLanPin: verifyAccessPinCookie(parseCookieHeader(cookie, LAN_PIN_COOKIE), snapshot.lanToken, snapshot.instanceId),
11
+ hasWanPin: verifyAccessPinCookie(parseCookieHeader(cookie, WAN_PIN_COOKIE), snapshot.wanToken, snapshot.instanceId),
12
+ };
13
+ }
14
+ export function evaluateMobileAccessGate(req, pathname, options) {
15
+ const { snapshot, ...credentials } = credentialsFromRequest(req, options);
16
+ return evaluateMobileGate(pathname, effectiveRequestHost(req), {
17
+ running: snapshot.running,
18
+ lanAuthEnabled: snapshot.lanAuthEnabled !== false,
19
+ lanToken: snapshot.lanToken,
20
+ wanToken: snapshot.wanToken,
21
+ instanceId: snapshot.instanceId,
22
+ }, credentials);
23
+ }
24
+ export async function tryHandleMobileAccessGate(req, res, pathname, options) {
25
+ return applyMobileGateDecision(req, res, evaluateMobileAccessGate(req, pathname, options));
26
+ }
27
+ /** First link in Host `tryHandlePublic` — gates SPA, `/plugins`, Face HTTP alike. */
28
+ export function createMobileAccessGateHandler(options) {
29
+ return async (req, res) => {
30
+ const url = new URL(req.url ?? "/", "http://127.0.0.1");
31
+ return tryHandleMobileAccessGate(req, res, url.pathname, options);
32
+ };
33
+ }
34
+ /** Sync checker for WebSocket upgrades. */
35
+ export function createMobileAccessGateChecker(options) {
36
+ return (req) => {
37
+ const url = new URL(req.url ?? "/", "http://127.0.0.1");
38
+ return evaluateMobileAccessGate(req, url.pathname, options).allowed;
39
+ };
40
+ }
41
+ //# sourceMappingURL=mobile-access-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-gate.js","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-gate.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,iCAAiC,CAAC;AAEzC,SAAS,sBAAsB,CAC7B,GAAoB,EACpB,OAA4B;IAO5B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,OAAO;QACL,QAAQ;QACR,gBAAgB,EAAE,mBAAmB,CACnC,QAAQ,EACR,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAC1C;QACD,SAAS,EAAE,qBAAqB,CAC9B,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,UAAU,CACpB;QACD,SAAS,EAAE,qBAAqB,CAC9B,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,EACzC,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,UAAU,CACpB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAoB,EACpB,QAAgB,EAChB,OAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,kBAAkB,CACvB,QAAQ,EACR,oBAAoB,CAAC,GAAG,CAAC,EACzB;QACE,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,cAAc,EAAE,QAAQ,CAAC,cAAc,KAAK,KAAK;QACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,EACD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAoB,EACpB,GAAmB,EACnB,QAAgB,EAChB,OAA4B;IAE5B,OAAO,uBAAuB,CAC5B,GAAG,EACH,GAAG,EACH,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,6BAA6B,CAC3C,OAA4B;IAE5B,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,OAAO,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,6BAA6B,CAC3C,OAA4B;IAE5B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,OAAO,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface LocalMobileGateway {
2
+ readonly address: () => {
3
+ host: string;
4
+ port: number;
5
+ origin?: string;
6
+ };
7
+ readonly extensionStatus: () => {
8
+ loaded: number;
9
+ failed: number;
10
+ };
11
+ readonly close: () => Promise<void>;
12
+ }
13
+ export declare function startLocalProxyGateway(options: {
14
+ readonly upstreamUrl: string;
15
+ readonly listenPort?: number;
16
+ readonly publicOrigin?: string;
17
+ }): Promise<LocalMobileGateway>;
18
+ export declare function reserveLoopbackPort(): Promise<{
19
+ port: number;
20
+ release: () => Promise<void>;
21
+ }>;
22
+ //# sourceMappingURL=mobile-access-local-gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-local-gateway.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-local-gateway.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,eAAe,EAAE,MAAM;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAsHD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiE9B;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CAuBD"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Loopback reverse proxy — remote tunnel backends forward to the product Host.
3
+ * Forwards HTTP and WebSocket upgrades with X-Forwarded-* headers.
4
+ */
5
+ import { createServer, request as httpRequest, } from "node:http";
6
+ import { URL } from "node:url";
7
+ function upstreamPort(upstream) {
8
+ if (upstream.port)
9
+ return Number(upstream.port);
10
+ return upstream.protocol === "https:" ? 443 : 80;
11
+ }
12
+ function clientProto(req, publicOrigin) {
13
+ const forwarded = req.headers["x-forwarded-proto"];
14
+ if (typeof forwarded === "string" && forwarded.trim()) {
15
+ return forwarded.split(",")[0].trim();
16
+ }
17
+ if (publicOrigin) {
18
+ try {
19
+ return new URL(publicOrigin).protocol.replace(/:$/, "");
20
+ }
21
+ catch {
22
+ /* ignore */
23
+ }
24
+ }
25
+ return "http";
26
+ }
27
+ function buildProxyHeaders(req, upstream, publicOrigin) {
28
+ const headers = {
29
+ ...req.headers,
30
+ host: upstream.host,
31
+ };
32
+ const clientHost = publicOrigin !== undefined
33
+ ? (() => {
34
+ try {
35
+ return new URL(publicOrigin).host;
36
+ }
37
+ catch {
38
+ return req.headers.host?.trim();
39
+ }
40
+ })()
41
+ : req.headers.host?.trim();
42
+ if (clientHost) {
43
+ headers["x-forwarded-host"] = clientHost;
44
+ }
45
+ headers["x-forwarded-proto"] = clientProto(req, publicOrigin);
46
+ const remote = req.socket.remoteAddress;
47
+ if (remote) {
48
+ const prior = req.headers["x-forwarded-for"];
49
+ headers["x-forwarded-for"] = prior
50
+ ? `${String(prior)}, ${remote}`
51
+ : remote;
52
+ }
53
+ return headers;
54
+ }
55
+ function writeUpgradeResponse(socket, statusCode, statusMessage, rawHeaders, head) {
56
+ let raw = `HTTP/1.1 ${statusCode} ${statusMessage}\r\n`;
57
+ for (const [key, value] of Object.entries(rawHeaders)) {
58
+ if (value === undefined)
59
+ continue;
60
+ const values = Array.isArray(value) ? value : [value];
61
+ for (const entry of values) {
62
+ raw += `${key}: ${entry}\r\n`;
63
+ }
64
+ }
65
+ raw += "\r\n";
66
+ socket.write(raw);
67
+ if (head.length > 0)
68
+ socket.write(head);
69
+ }
70
+ function forwardUpgrade(req, socket, head, upstream, publicOrigin) {
71
+ socket.on("error", () => socket.destroy());
72
+ const targetPath = req.url?.startsWith("/") ? req.url : `/${req.url ?? ""}`;
73
+ const proxyReq = httpRequest({
74
+ protocol: upstream.protocol,
75
+ hostname: upstream.hostname,
76
+ port: upstreamPort(upstream),
77
+ method: req.method,
78
+ path: targetPath,
79
+ headers: buildProxyHeaders(req, upstream, publicOrigin),
80
+ });
81
+ proxyReq.on("response", (proxyRes) => {
82
+ if (!socket.destroyed) {
83
+ socket.destroy();
84
+ }
85
+ proxyRes.resume();
86
+ });
87
+ proxyReq.on("upgrade", (proxyRes, proxySocket, proxyHead) => {
88
+ writeUpgradeResponse(socket, proxyRes.statusCode ?? 101, proxyRes.statusMessage ?? "Switching Protocols", proxyRes.headers, proxyHead);
89
+ proxySocket.pipe(socket);
90
+ socket.pipe(proxySocket);
91
+ proxySocket.on("error", () => {
92
+ socket.destroy();
93
+ proxySocket.destroy();
94
+ });
95
+ });
96
+ proxyReq.on("error", () => socket.destroy());
97
+ proxyReq.end(head);
98
+ }
99
+ export async function startLocalProxyGateway(options) {
100
+ const upstream = new URL(options.upstreamUrl);
101
+ let listenPort = options.listenPort ?? 0;
102
+ const publicOrigin = options.publicOrigin;
103
+ const proxy = (clientReq, clientRes) => {
104
+ const targetPath = clientReq.url?.startsWith("/")
105
+ ? clientReq.url
106
+ : `/${clientReq.url ?? ""}`;
107
+ const proxyReq = httpRequest({
108
+ protocol: upstream.protocol,
109
+ hostname: upstream.hostname,
110
+ port: upstreamPort(upstream),
111
+ method: clientReq.method,
112
+ path: targetPath,
113
+ headers: buildProxyHeaders(clientReq, upstream, publicOrigin),
114
+ }, (proxyRes) => {
115
+ clientRes.writeHead(proxyRes.statusCode ?? 502, proxyRes.headers);
116
+ proxyRes.pipe(clientRes);
117
+ });
118
+ proxyReq.on("error", () => {
119
+ if (!clientRes.headersSent) {
120
+ clientRes.writeHead(502, { "content-type": "text/plain" });
121
+ clientRes.end("upstream unreachable");
122
+ }
123
+ else {
124
+ clientRes.end();
125
+ }
126
+ });
127
+ clientReq.pipe(proxyReq);
128
+ };
129
+ const server = createServer(proxy);
130
+ server.on("upgrade", (req, socket, head) => {
131
+ forwardUpgrade(req, socket, head, upstream, publicOrigin);
132
+ });
133
+ await new Promise((resolve, reject) => {
134
+ server.once("error", reject);
135
+ server.listen(listenPort, "127.0.0.1", () => {
136
+ server.off("error", reject);
137
+ resolve();
138
+ });
139
+ });
140
+ const addr = server.address();
141
+ if (!addr || typeof addr === "string") {
142
+ server.close();
143
+ throw new Error("gateway_listen_failed");
144
+ }
145
+ listenPort = addr.port;
146
+ return {
147
+ address: () => ({
148
+ host: "127.0.0.1",
149
+ port: listenPort,
150
+ ...(publicOrigin ? { origin: publicOrigin } : {}),
151
+ }),
152
+ extensionStatus: () => ({ loaded: 0, failed: 0 }),
153
+ close: async () => {
154
+ await new Promise((resolve) => server.close(() => resolve()));
155
+ },
156
+ };
157
+ }
158
+ export async function reserveLoopbackPort() {
159
+ const holder = createServer((socket) => socket.destroy());
160
+ await new Promise((resolve, reject) => {
161
+ holder.once("error", reject);
162
+ holder.listen(0, "127.0.0.1", () => {
163
+ holder.off("error", reject);
164
+ resolve();
165
+ });
166
+ });
167
+ const addr = holder.address();
168
+ if (!addr || typeof addr === "string") {
169
+ holder.close();
170
+ throw new Error("port_reservation_failed");
171
+ }
172
+ let released = false;
173
+ return {
174
+ port: addr.port,
175
+ release: async () => {
176
+ if (released)
177
+ return;
178
+ released = true;
179
+ await new Promise((resolve) => holder.close(() => resolve()));
180
+ },
181
+ };
182
+ }
183
+ //# sourceMappingURL=mobile-access-local-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-local-gateway.js","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-local-gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Tailscale Funnel sidecar + cpolar process controllers (dsh-mobile compatible).
3
+ */
4
+ import { type ChildProcessWithoutNullStreams } from "node:child_process";
5
+ import { type LocalMobileGateway } from "./mobile-access-local-gateway.js";
6
+ export interface RemoteControllerStatus {
7
+ enabled: boolean;
8
+ state: string;
9
+ origin?: string;
10
+ loginUrl?: string;
11
+ setupUrl?: string;
12
+ errorCode?: string;
13
+ }
14
+ type CreateGatewayFn = (publicOrigin: string, listenPort?: number) => Promise<LocalMobileGateway>;
15
+ declare abstract class BaseRemoteController {
16
+ readonly createGateway: CreateGatewayFn;
17
+ readonly loadEnabled: () => Promise<boolean>;
18
+ readonly saveEnabled: (enabled: boolean) => Promise<void>;
19
+ enabled: boolean;
20
+ initialized: boolean;
21
+ disposed: boolean;
22
+ protected child: ChildProcessWithoutNullStreams | undefined;
23
+ gatewayValue: LocalMobileGateway | undefined;
24
+ protected generation: number;
25
+ protected buffer: string;
26
+ protected latest: RemoteControllerStatus;
27
+ private queue;
28
+ protected startupTimer: ReturnType<typeof setTimeout> | undefined;
29
+ constructor(createGateway: CreateGatewayFn, loadEnabled: () => Promise<boolean>, saveEnabled: (enabled: boolean) => Promise<void>);
30
+ initialize(): Promise<void>;
31
+ gateway(): LocalMobileGateway | undefined;
32
+ status(): RemoteControllerStatus;
33
+ setEnabled(enabled: boolean): Promise<RemoteControllerStatus>;
34
+ reconnect(): Promise<RemoteControllerStatus>;
35
+ reset(): Promise<RemoteControllerStatus>;
36
+ close(): Promise<void>;
37
+ protected enqueue<T>(op: () => Promise<T>): Promise<T>;
38
+ protected publish(status: RemoteControllerStatus): void;
39
+ protected failGeneration(generation: number, code: string): Promise<void>;
40
+ protected stop(): Promise<void>;
41
+ protected abstract start(): Promise<void>;
42
+ }
43
+ export declare class CpolarRemoteController extends BaseRemoteController {
44
+ readonly executable: string;
45
+ readonly configFile: string;
46
+ readonly region: string;
47
+ reservation: {
48
+ port: number;
49
+ release: () => Promise<void>;
50
+ } | undefined;
51
+ constructor(createGateway: CreateGatewayFn, loadEnabled: () => Promise<boolean>, saveEnabled: (enabled: boolean) => Promise<void>, executable: string, configFile: string, region?: string);
52
+ protected start(): Promise<void>;
53
+ private consume;
54
+ private attachGateway;
55
+ protected stop(): Promise<void>;
56
+ }
57
+ export declare class FunnelRemoteController extends BaseRemoteController {
58
+ readonly executable: string;
59
+ readonly stateDirectory: string;
60
+ readonly hostname: string;
61
+ constructor(createGateway: CreateGatewayFn, loadEnabled: () => Promise<boolean>, saveEnabled: (enabled: boolean) => Promise<void>, executable: string, stateDirectory: string, hostname: string);
62
+ protected start(): Promise<void>;
63
+ private consume;
64
+ private handleEvent;
65
+ }
66
+ export declare function createRemoteGatewayFactory(upstreamUrl: string): Promise<CreateGatewayFn>;
67
+ export {};
68
+ //# sourceMappingURL=mobile-access-remote-controllers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-access-remote-controllers.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/mobile-access-remote-controllers.ts"],"names":[],"mappings":"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"}