@songsid/agend 2.2.1 → 2.2.6

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 (455) hide show
  1. package/dist/agent-cli-instructions.md +5 -2
  2. package/dist/agent-cli.js +284 -2
  3. package/dist/agent-cli.js.map +1 -1
  4. package/dist/agent-endpoint.d.ts +2 -0
  5. package/dist/agent-endpoint.js +29 -0
  6. package/dist/agent-endpoint.js.map +1 -1
  7. package/dist/agent-file-read.d.ts +38 -0
  8. package/dist/agent-file-read.js +317 -0
  9. package/dist/agent-file-read.js.map +1 -0
  10. package/dist/agent-whats-new.d.ts +11 -0
  11. package/dist/agent-whats-new.js +34 -2
  12. package/dist/agent-whats-new.js.map +1 -1
  13. package/dist/atomic-write.js +9 -1
  14. package/dist/atomic-write.js.map +1 -1
  15. package/dist/auth-api.d.ts +30 -1
  16. package/dist/auth-api.js +61 -12
  17. package/dist/auth-api.js.map +1 -1
  18. package/dist/authority/authority-state.d.ts +38 -0
  19. package/dist/authority/authority-state.js +114 -0
  20. package/dist/authority/authority-state.js.map +1 -0
  21. package/dist/authority/session-authorizations.d.ts +43 -0
  22. package/dist/authority/session-authorizations.js +102 -0
  23. package/dist/authority/session-authorizations.js.map +1 -0
  24. package/dist/authority/web-authority.d.ts +120 -0
  25. package/dist/authority/web-authority.js +157 -0
  26. package/dist/authority/web-authority.js.map +1 -0
  27. package/dist/backend/antigravity.js +3 -3
  28. package/dist/backend/antigravity.js.map +1 -1
  29. package/dist/backend/claude-code.d.ts +2 -2
  30. package/dist/backend/claude-code.js +10 -5
  31. package/dist/backend/claude-code.js.map +1 -1
  32. package/dist/backend/launch-effort.js +1 -1
  33. package/dist/backend/launch-effort.js.map +1 -1
  34. package/dist/backend/muse.js +10 -2
  35. package/dist/backend/muse.js.map +1 -1
  36. package/dist/backend/types.d.ts +14 -0
  37. package/dist/backend/types.js +25 -0
  38. package/dist/backend/types.js.map +1 -1
  39. package/dist/backend-availability.d.ts +120 -0
  40. package/dist/backend-availability.js +396 -0
  41. package/dist/backend-availability.js.map +1 -0
  42. package/dist/backend-command.d.ts +21 -3
  43. package/dist/backend-command.js +23 -4
  44. package/dist/backend-command.js.map +1 -1
  45. package/dist/bundled-skills.d.ts +14 -0
  46. package/dist/bundled-skills.js +29 -0
  47. package/dist/bundled-skills.js.map +1 -0
  48. package/dist/cache-analysis.d.ts +47 -1
  49. package/dist/cache-analysis.js +68 -8
  50. package/dist/cache-analysis.js.map +1 -1
  51. package/dist/cache-ledger.d.ts +16 -3
  52. package/dist/cache-ledger.js +33 -13
  53. package/dist/cache-ledger.js.map +1 -1
  54. package/dist/cache-report-tool.d.ts +17 -0
  55. package/dist/cache-report-tool.js +40 -0
  56. package/dist/cache-report-tool.js.map +1 -0
  57. package/dist/cache-service.d.ts +70 -3
  58. package/dist/cache-service.js +178 -17
  59. package/dist/cache-service.js.map +1 -1
  60. package/dist/channel/adapters/discord-client-retirement.d.ts +5 -0
  61. package/dist/channel/adapters/discord-client-retirement.js +57 -0
  62. package/dist/channel/adapters/discord-client-retirement.js.map +1 -0
  63. package/dist/channel/adapters/discord.d.ts +11 -0
  64. package/dist/channel/adapters/discord.js +66 -6
  65. package/dist/channel/adapters/discord.js.map +1 -1
  66. package/dist/channel/adapters/telegram.d.ts +8 -1
  67. package/dist/channel/adapters/telegram.js +74 -4
  68. package/dist/channel/adapters/telegram.js.map +1 -1
  69. package/dist/channel/mcp-tools.js +48 -2
  70. package/dist/channel/mcp-tools.js.map +1 -1
  71. package/dist/channel/types.d.ts +21 -0
  72. package/dist/classic-channel-manager.d.ts +10 -5
  73. package/dist/classic-channel-manager.js +12 -9
  74. package/dist/classic-channel-manager.js.map +1 -1
  75. package/dist/cli.js +142 -110
  76. package/dist/cli.js.map +1 -1
  77. package/dist/config-validator.js +119 -4
  78. package/dist/config-validator.js.map +1 -1
  79. package/dist/daemon.d.ts +8 -0
  80. package/dist/daemon.js +298 -22
  81. package/dist/daemon.js.map +1 -1
  82. package/dist/decision-list.d.ts +25 -0
  83. package/dist/decision-list.js +30 -0
  84. package/dist/decision-list.js.map +1 -0
  85. package/dist/delivery-outbox.d.ts +10 -0
  86. package/dist/delivery-outbox.js +12 -1
  87. package/dist/delivery-outbox.js.map +1 -1
  88. package/dist/fleet-context.d.ts +15 -0
  89. package/dist/fleet-manager.d.ts +514 -12
  90. package/dist/fleet-manager.js +1885 -163
  91. package/dist/fleet-manager.js.map +1 -1
  92. package/dist/fleet-process-handlers.d.ts +18 -0
  93. package/dist/fleet-process-handlers.js +69 -0
  94. package/dist/fleet-process-handlers.js.map +1 -0
  95. package/dist/fleet-traffic.d.ts +74 -0
  96. package/dist/fleet-traffic.js +196 -0
  97. package/dist/fleet-traffic.js.map +1 -0
  98. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +20 -5
  99. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +6 -1
  100. package/dist/general-knowledge/skills/multi-channel/SKILL.md +3 -2
  101. package/dist/general-knowledge/skills/persona-emoji/SKILL.md +1 -1
  102. package/dist/general-knowledge/skills/web-appearance/SKILL.md +492 -0
  103. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +482 -0
  104. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
  105. package/dist/human-delivery-receipts.d.ts +24 -1
  106. package/dist/human-delivery-receipts.js +64 -11
  107. package/dist/human-delivery-receipts.js.map +1 -1
  108. package/dist/instance-avatar.js +3 -0
  109. package/dist/instance-avatar.js.map +1 -1
  110. package/dist/instance-config-impact.js +6 -1
  111. package/dist/instance-config-impact.js.map +1 -1
  112. package/dist/instance-lifecycle.d.ts +2 -0
  113. package/dist/instance-lifecycle.js +20 -10
  114. package/dist/instance-lifecycle.js.map +1 -1
  115. package/dist/instance-names.d.ts +4 -0
  116. package/dist/instance-names.js +12 -0
  117. package/dist/instance-names.js.map +1 -0
  118. package/dist/instructions.d.ts +12 -1
  119. package/dist/instructions.js +13 -2
  120. package/dist/instructions.js.map +1 -1
  121. package/dist/locale.js +118 -10
  122. package/dist/locale.js.map +1 -1
  123. package/dist/login-controller.js +35 -2
  124. package/dist/login-controller.js.map +1 -1
  125. package/dist/ls-attach-resolve.d.ts +95 -0
  126. package/dist/ls-attach-resolve.js +174 -0
  127. package/dist/ls-attach-resolve.js.map +1 -0
  128. package/dist/memory-hogs.d.ts +27 -0
  129. package/dist/memory-hogs.js +124 -0
  130. package/dist/memory-hogs.js.map +1 -0
  131. package/dist/needs-you-hub.d.ts +4 -0
  132. package/dist/needs-you-hub.js +31 -6
  133. package/dist/needs-you-hub.js.map +1 -1
  134. package/dist/needs-you.d.ts +1 -13
  135. package/dist/needs-you.js +3 -37
  136. package/dist/needs-you.js.map +1 -1
  137. package/dist/outbound-handlers.d.ts +15 -0
  138. package/dist/outbound-handlers.js +152 -11
  139. package/dist/outbound-handlers.js.map +1 -1
  140. package/dist/outbound-schemas.d.ts +228 -4
  141. package/dist/outbound-schemas.js +147 -1
  142. package/dist/outbound-schemas.js.map +1 -1
  143. package/dist/public-web-gateway.js +21 -1
  144. package/dist/public-web-gateway.js.map +1 -1
  145. package/dist/public-web-link.d.ts +9 -0
  146. package/dist/public-web-link.js +8 -0
  147. package/dist/public-web-link.js.map +1 -1
  148. package/dist/quickstart-api.d.ts +10 -1
  149. package/dist/quickstart-api.js +12 -4
  150. package/dist/quickstart-api.js.map +1 -1
  151. package/dist/reply-buttons-controller.d.ts +4 -0
  152. package/dist/reply-buttons-controller.js +2 -2
  153. package/dist/reply-buttons-controller.js.map +1 -1
  154. package/dist/repo-worktree-guard.d.ts +36 -0
  155. package/dist/repo-worktree-guard.js +143 -0
  156. package/dist/repo-worktree-guard.js.map +1 -0
  157. package/dist/restart-progress.d.ts +65 -1
  158. package/dist/restart-progress.js +236 -10
  159. package/dist/restart-progress.js.map +1 -1
  160. package/dist/rollout-index.d.ts +5 -0
  161. package/dist/rollout-index.js +26 -5
  162. package/dist/rollout-index.js.map +1 -1
  163. package/dist/scheduler/scheduler.d.ts +70 -1
  164. package/dist/scheduler/scheduler.js +256 -17
  165. package/dist/scheduler/scheduler.js.map +1 -1
  166. package/dist/service-installer.d.ts +2 -1
  167. package/dist/service-installer.js +18 -3
  168. package/dist/service-installer.js.map +1 -1
  169. package/dist/settings-api.d.ts +23 -0
  170. package/dist/settings-api.js +233 -2
  171. package/dist/settings-api.js.map +1 -1
  172. package/dist/settings-change.js +112 -0
  173. package/dist/settings-change.js.map +1 -1
  174. package/dist/settings-effect.js +32 -2
  175. package/dist/settings-effect.js.map +1 -1
  176. package/dist/settings-http-confirmation.js +5 -0
  177. package/dist/settings-http-confirmation.js.map +1 -1
  178. package/dist/tmux-manager.d.ts +5 -0
  179. package/dist/tmux-manager.js +16 -0
  180. package/dist/tmux-manager.js.map +1 -1
  181. package/dist/tool-permissions.d.ts +4 -6
  182. package/dist/tool-permissions.js +100 -2
  183. package/dist/tool-permissions.js.map +1 -1
  184. package/dist/topic-commands.d.ts +17 -7
  185. package/dist/topic-commands.js +39 -21
  186. package/dist/topic-commands.js.map +1 -1
  187. package/dist/topic-link.d.ts +128 -0
  188. package/dist/topic-link.js +269 -0
  189. package/dist/topic-link.js.map +1 -0
  190. package/dist/tunnel/cloudflared.js +37 -2
  191. package/dist/tunnel/cloudflared.js.map +1 -1
  192. package/dist/tunnel/types.d.ts +3 -1
  193. package/dist/tunnel/types.js.map +1 -1
  194. package/dist/types.d.ts +61 -1
  195. package/dist/ui/app-effects.js +245 -0
  196. package/dist/ui/chat-ambient.js +307 -0
  197. package/dist/ui/chat-effect-posters.js +42 -0
  198. package/dist/ui/chat-effects.js +160 -0
  199. package/dist/ui/chat-live-replies.js +58 -0
  200. package/dist/ui/chat-render.js +25 -7
  201. package/dist/ui/chat-store.js +41 -13
  202. package/dist/ui/chat-strings.js +86 -2
  203. package/dist/ui/chat-thread.js +204 -37
  204. package/dist/ui/chat-tour.js +1 -1
  205. package/dist/ui/effect-trial-controller.js +124 -0
  206. package/dist/ui/effect-trial-offer.js +31 -0
  207. package/dist/ui/effect-trial-panel.js +40 -0
  208. package/dist/ui/fleet-cache.js +23 -1
  209. package/dist/ui/fleet-canvas-layout.js +111 -0
  210. package/dist/ui/fleet-canvas.js +525 -0
  211. package/dist/ui/fleet-org.js +27 -12
  212. package/dist/ui/fleet-traffic.js +343 -0
  213. package/dist/ui/fleet-usage.js +401 -0
  214. package/dist/ui/image-lightbox.js +1 -1
  215. package/dist/ui/panel-chat.js +252 -58
  216. package/dist/ui/panel-details.js +20 -6
  217. package/dist/ui/panel-fleet.js +45 -19
  218. package/dist/ui/panel-log.js +6 -6
  219. package/dist/ui/panel-needs.js +3 -3
  220. package/dist/ui/panel-settings.js +58 -13
  221. package/dist/ui/preview-panel.js +25 -9
  222. package/dist/ui/preview.js +3 -2
  223. package/dist/ui/settings-appearance.js +349 -0
  224. package/dist/ui/settings-catalog.js +92 -0
  225. package/dist/ui/settings-dialogs.js +40 -12
  226. package/dist/ui/settings-effects.js +202 -0
  227. package/dist/ui/settings-guests.js +117 -0
  228. package/dist/ui/settings-learn.js +25 -0
  229. package/dist/ui/settings-model.js +15 -6
  230. package/dist/ui/settings-mods.js +271 -0
  231. package/dist/ui/settings-owner-effects.js +80 -0
  232. package/dist/ui/settings-strings.js +335 -10
  233. package/dist/ui/settings-web-authority.js +91 -0
  234. package/dist/ui/shared/agend-auth.js +28 -4
  235. package/dist/ui/shared/agent-widget.js +248 -0
  236. package/dist/ui/shared/app-i18n.js +6 -2
  237. package/dist/ui/shared/app-prefs.js +34 -13
  238. package/dist/ui/shared/app-route.js +42 -2
  239. package/dist/ui/shared/app-session.js +3 -1
  240. package/dist/ui/shared/app-shell.js +119 -41
  241. package/dist/ui/shared/app-store.js +28 -1
  242. package/dist/ui/shared/app-stream.js +14 -7
  243. package/dist/ui/shared/app-themes.js +206 -0
  244. package/dist/ui/shared/app.css +566 -5
  245. package/dist/ui/shared/app.js +23 -10
  246. package/dist/ui/shared/card-strings.js +32 -0
  247. package/dist/ui/shared/effect-app-runtime.js +297 -0
  248. package/dist/ui/shared/effect-baseline.js +64 -0
  249. package/dist/ui/shared/effect-chat-runtime.js +167 -0
  250. package/dist/ui/shared/effect-cursor.js +125 -0
  251. package/dist/ui/shared/effect-frame.js +146 -0
  252. package/dist/ui/shared/effect-geometry.js +137 -0
  253. package/dist/ui/shared/effect-host-style.js +10 -0
  254. package/dist/ui/shared/effect-owner-regions.js +74 -0
  255. package/dist/ui/shared/effect-owner-source.js +122 -0
  256. package/dist/ui/shared/effect-policy.js +151 -0
  257. package/dist/ui/shared/effect-poster-reader.js +98 -0
  258. package/dist/ui/shared/effect-posters.js +117 -0
  259. package/dist/ui/shared/effect-profiler.js +184 -0
  260. package/dist/ui/shared/effect-profiles.js +65 -0
  261. package/dist/ui/shared/effect-registry.js +543 -0
  262. package/dist/ui/shared/effect-runtime-loader.js +234 -0
  263. package/dist/ui/shared/effect-safety.js +153 -0
  264. package/dist/ui/shared/effect-stock-snapshot.js +43 -0
  265. package/dist/ui/shared/effect-stock-trust.js +217 -0
  266. package/dist/ui/shared/effect-trial-shadow.js +62 -0
  267. package/dist/ui/shared/effect-trial-source.js +103 -0
  268. package/dist/ui/shared/effect-trial-stage.js +170 -0
  269. package/dist/ui/shared/effect-trial.css +40 -0
  270. package/dist/ui/shared/fx-motion.js +67 -0
  271. package/dist/ui/shared/header-tools.js +1 -1
  272. package/dist/ui/shared/identity-card.js +273 -0
  273. package/dist/ui/shared/identity-color.js +261 -0
  274. package/dist/ui/shared/instance-nav.js +215 -41
  275. package/dist/ui/shared/owner-css.js +250 -0
  276. package/dist/ui/shared/owner-effect-prefs.js +117 -0
  277. package/dist/ui/shared/panel-view.js +103 -10
  278. package/dist/ui/shared/signin.js +2 -0
  279. package/dist/ui/shared/tokens.css +9 -3
  280. package/dist/ui/shared/ui-dialog.js +1 -1
  281. package/dist/ui/shared/ui-icons.js +3 -0
  282. package/dist/ui/shared/ui-menu.js +1 -1
  283. package/dist/ui/shared/ui-toast.js +1 -1
  284. package/dist/ui/shared/usage-dialog.js +22 -2
  285. package/dist/ui/shared/view-strings.js +98 -2
  286. package/dist/ui/shared/web-authorize.js +151 -0
  287. package/dist/ui/signin.html +1 -0
  288. package/dist/ui/web-terminal/terminal.css +4 -4
  289. package/dist/usage/providers.d.ts +28 -0
  290. package/dist/usage/providers.js +126 -36
  291. package/dist/usage/providers.js.map +1 -1
  292. package/dist/usage-report.d.ts +158 -0
  293. package/dist/usage-report.js +226 -0
  294. package/dist/usage-report.js.map +1 -0
  295. package/dist/usage-rollup.d.ts +51 -0
  296. package/dist/usage-rollup.js +168 -0
  297. package/dist/usage-rollup.js.map +1 -0
  298. package/dist/view-api.d.ts +68 -0
  299. package/dist/view-api.js +249 -8
  300. package/dist/view-api.js.map +1 -1
  301. package/dist/web-ambient.d.ts +72 -0
  302. package/dist/web-ambient.js +161 -0
  303. package/dist/web-ambient.js.map +1 -0
  304. package/dist/web-api.d.ts +117 -7
  305. package/dist/web-api.js +1283 -70
  306. package/dist/web-api.js.map +1 -1
  307. package/dist/web-appearance-limits.d.ts +82 -0
  308. package/dist/web-appearance-limits.js +83 -0
  309. package/dist/web-appearance-limits.js.map +1 -0
  310. package/dist/web-appearance-policy.d.ts +64 -0
  311. package/dist/web-appearance-policy.js +87 -0
  312. package/dist/web-appearance-policy.js.map +1 -0
  313. package/dist/web-appearance-tools.d.ts +53 -0
  314. package/dist/web-appearance-tools.js +124 -0
  315. package/dist/web-appearance-tools.js.map +1 -0
  316. package/dist/web-appearance-view.d.ts +124 -0
  317. package/dist/web-appearance-view.js +278 -0
  318. package/dist/web-appearance-view.js.map +1 -0
  319. package/dist/web-appearance.d.ts +93 -0
  320. package/dist/web-appearance.js +373 -0
  321. package/dist/web-appearance.js.map +1 -0
  322. package/dist/web-asset-parts.d.ts +93 -0
  323. package/dist/web-asset-parts.js +133 -0
  324. package/dist/web-asset-parts.js.map +1 -0
  325. package/dist/web-auth.js +20 -2
  326. package/dist/web-auth.js.map +1 -1
  327. package/dist/web-card.d.ts +110 -0
  328. package/dist/web-card.js +266 -0
  329. package/dist/web-card.js.map +1 -0
  330. package/dist/web-channel-echo.d.ts +7 -1
  331. package/dist/web-channel-echo.js +6 -2
  332. package/dist/web-channel-echo.js.map +1 -1
  333. package/dist/web-chat-history.d.ts +63 -0
  334. package/dist/web-chat-history.js +109 -6
  335. package/dist/web-chat-history.js.map +1 -1
  336. package/dist/web-commands.d.ts +1 -0
  337. package/dist/web-effect-bootstrap.d.ts +12 -0
  338. package/dist/web-effect-bootstrap.js +49 -0
  339. package/dist/web-effect-bootstrap.js.map +1 -0
  340. package/dist/web-effect-bundle.d.ts +28 -0
  341. package/dist/web-effect-bundle.js +171 -0
  342. package/dist/web-effect-bundle.js.map +1 -0
  343. package/dist/web-effect-canonical.d.ts +8 -0
  344. package/dist/web-effect-canonical.js +27 -0
  345. package/dist/web-effect-canonical.js.map +1 -0
  346. package/dist/web-effect-library.d.ts +114 -0
  347. package/dist/web-effect-library.js +530 -0
  348. package/dist/web-effect-library.js.map +1 -0
  349. package/dist/web-effect-playback.d.ts +30 -0
  350. package/dist/web-effect-playback.js +71 -0
  351. package/dist/web-effect-playback.js.map +1 -0
  352. package/dist/web-effect-poster.d.ts +8 -0
  353. package/dist/web-effect-poster.js +52 -0
  354. package/dist/web-effect-poster.js.map +1 -0
  355. package/dist/web-effect-profiles.d.ts +118 -0
  356. package/dist/web-effect-profiles.js +180 -0
  357. package/dist/web-effect-profiles.js.map +1 -0
  358. package/dist/web-effect-service.d.ts +93 -0
  359. package/dist/web-effect-service.js +335 -0
  360. package/dist/web-effect-service.js.map +1 -0
  361. package/dist/web-effect-tools.d.ts +48 -0
  362. package/dist/web-effect-tools.js +129 -0
  363. package/dist/web-effect-tools.js.map +1 -0
  364. package/dist/web-effect-trials.d.ts +86 -0
  365. package/dist/web-effect-trials.js +204 -0
  366. package/dist/web-effect-trials.js.map +1 -0
  367. package/dist/web-effect-upload.d.ts +27 -0
  368. package/dist/web-effect-upload.js +185 -0
  369. package/dist/web-effect-upload.js.map +1 -0
  370. package/dist/web-effect-worker.d.ts +8 -0
  371. package/dist/web-effect-worker.js +170 -0
  372. package/dist/web-effect-worker.js.map +1 -0
  373. package/dist/web-effect.d.ts +103 -0
  374. package/dist/web-effect.js +153 -0
  375. package/dist/web-effect.js.map +1 -0
  376. package/dist/web-guest-access.d.ts +125 -0
  377. package/dist/web-guest-access.js +234 -0
  378. package/dist/web-guest-access.js.map +1 -0
  379. package/dist/web-guest-rooms.d.ts +82 -0
  380. package/dist/web-guest-rooms.js +135 -0
  381. package/dist/web-guest-rooms.js.map +1 -0
  382. package/dist/web-identity-color.d.ts +87 -0
  383. package/dist/web-identity-color.js +209 -0
  384. package/dist/web-identity-color.js.map +1 -0
  385. package/dist/web-identity-palette.d.ts +113 -0
  386. package/dist/web-identity-palette.js +84 -0
  387. package/dist/web-identity-palette.js.map +1 -0
  388. package/dist/web-image-meta.d.ts +38 -0
  389. package/dist/web-image-meta.js +262 -0
  390. package/dist/web-image-meta.js.map +1 -0
  391. package/dist/web-login.d.ts +47 -0
  392. package/dist/web-login.js +115 -0
  393. package/dist/web-login.js.map +1 -1
  394. package/dist/web-mod-agent.d.ts +50 -0
  395. package/dist/web-mod-agent.js +207 -0
  396. package/dist/web-mod-agent.js.map +1 -0
  397. package/dist/web-mod-bundle.d.ts +157 -0
  398. package/dist/web-mod-bundle.js +529 -0
  399. package/dist/web-mod-bundle.js.map +1 -0
  400. package/dist/web-mod-export.d.ts +68 -0
  401. package/dist/web-mod-export.js +100 -0
  402. package/dist/web-mod-export.js.map +1 -0
  403. package/dist/web-mod-store.d.ts +289 -0
  404. package/dist/web-mod-store.js +638 -0
  405. package/dist/web-mod-store.js.map +1 -0
  406. package/dist/web-org.d.ts +3 -3
  407. package/dist/web-org.js +11 -17
  408. package/dist/web-org.js.map +1 -1
  409. package/dist/web-owner-css-store.d.ts +222 -0
  410. package/dist/web-owner-css-store.js +440 -0
  411. package/dist/web-owner-css-store.js.map +1 -0
  412. package/dist/web-owner-css.d.ts +58 -0
  413. package/dist/web-owner-css.js +552 -0
  414. package/dist/web-owner-css.js.map +1 -0
  415. package/dist/web-prefs.d.ts +62 -0
  416. package/dist/web-prefs.js +232 -36
  417. package/dist/web-prefs.js.map +1 -1
  418. package/dist/web-preview.d.ts +15 -3
  419. package/dist/web-preview.js +28 -9
  420. package/dist/web-preview.js.map +1 -1
  421. package/dist/web-returning-device.d.ts +41 -0
  422. package/dist/web-returning-device.js +57 -5
  423. package/dist/web-returning-device.js.map +1 -1
  424. package/dist/web-session-authorization.d.ts +132 -0
  425. package/dist/web-session-authorization.js +193 -0
  426. package/dist/web-session-authorization.js.map +1 -0
  427. package/dist/web-session.d.ts +70 -10
  428. package/dist/web-session.js +137 -22
  429. package/dist/web-session.js.map +1 -1
  430. package/dist/web-settings-patch.d.ts +67 -2
  431. package/dist/web-settings-patch.js +196 -1
  432. package/dist/web-settings-patch.js.map +1 -1
  433. package/dist/web-settings-tools.d.ts +89 -0
  434. package/dist/web-settings-tools.js +273 -0
  435. package/dist/web-settings-tools.js.map +1 -0
  436. package/dist/web-shell-routes.d.ts +2 -2
  437. package/dist/web-shell-routes.js +2 -2
  438. package/dist/web-shell-routes.js.map +1 -1
  439. package/dist/web-terminal-http.js +15 -2
  440. package/dist/web-terminal-http.js.map +1 -1
  441. package/dist/web-theme-store.d.ts +257 -0
  442. package/dist/web-theme-store.js +627 -0
  443. package/dist/web-theme-store.js.map +1 -0
  444. package/dist/web-theme.d.ts +123 -0
  445. package/dist/web-theme.js +416 -0
  446. package/dist/web-theme.js.map +1 -0
  447. package/dist/web-upload.d.ts +13 -0
  448. package/dist/web-upload.js +39 -3
  449. package/dist/web-upload.js.map +1 -1
  450. package/dist/web-widget.d.ts +72 -0
  451. package/dist/web-widget.js +245 -0
  452. package/dist/web-widget.js.map +1 -0
  453. package/dist/workflow-templates/default.md +1 -1
  454. package/package.json +1 -1
  455. package/templates/systemd.service.ejs +8 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * #1990: links to another topic. One place builds "a link to instance X's place (or a world's General) on surface S"
3
+ * from what the adapters already know — Discord guild/channel ids, the Telegram supergroup id, its public @username
4
+ * when it has one, and topic ids — and messages name such a place through a token that each surface renders in its own
5
+ * form, or as plain text when the reader could not open the target.
6
+ *
7
+ * Discord `<#channel>` (clickable in place); in a DM, `https://discord.com/channels/<guild>/<channel>`
8
+ * Telegram `https://t.me/<username>/<topic>` (public group) or `https://t.me/c/<id without -100>/<topic>`, carried by
9
+ * a `text_link` entity on plain text — no parse mode, so nothing in the text needs escaping
10
+ * plain the label alone (a suffix token disappears)
11
+ *
12
+ * The forms are the documented ones; no real client was driven (#1990: the user checks them on the 2.3 beta).
13
+ */
14
+ export interface WorldPlace {
15
+ type: "discord" | "telegram" | string;
16
+ /** Discord: the guild id. Telegram: the supergroup id (-100…). */
17
+ groupId?: string;
18
+ /** Telegram: the group's public @username (without the @), when it has one — then links work for non-members too. */
19
+ username?: string;
20
+ }
21
+ /** A world's place, for links: its platform, its group and (Telegram) the group's public @username once read. */
22
+ export declare function worldPlaceOf(world: {
23
+ type: string;
24
+ groupId: string;
25
+ adapter?: {
26
+ groupUsername?(groupId: string): string | undefined;
27
+ };
28
+ }): WorldPlace;
29
+ export declare const SNOWFLAKE: RegExp;
30
+ /** t.me/c/ links take a supergroup's id without its -100 prefix; anything else has no such link. */
31
+ export declare function telegramInternalId(chatId: string): string | undefined;
32
+ /** A link to a message (a prompt's own buttons), or undefined when none can be built for this platform/place. */
33
+ export declare function messageLink(place: WorldPlace, at: {
34
+ chatId: string;
35
+ threadId?: string;
36
+ messageId?: string;
37
+ }): string | undefined;
38
+ /**
39
+ * A browser URL to a topic or channel. Telegram's General topic (1) gets one only when `general` is set: an
40
+ * instance's link never points at General.
41
+ */
42
+ export declare function topicUrl(place: WorldPlace | undefined, topicId: string | undefined, opts?: {
43
+ general?: boolean;
44
+ }): string | undefined;
45
+ /** A way to the instance's own thread: Discord's channel mention (clickable in place), Telegram's topic link. */
46
+ export declare function instanceLink(place: WorldPlace, topicId: string | undefined): string | undefined;
47
+ /** What a token points at: a world's General, or an instance's topic/room. */
48
+ export type PlaceTarget = {
49
+ kind: "general";
50
+ } | {
51
+ kind: "instance";
52
+ name: string;
53
+ };
54
+ /** How a surface reaches a target: a Discord mention, or a URL. Undefined: the reader gets plain text. */
55
+ export type PlaceLink = {
56
+ mention: string;
57
+ } | {
58
+ url: string;
59
+ };
60
+ /** A Telegram `text_link` entity: UTF-16 offsets, which is what a JS string's indices are. */
61
+ export interface TextLink {
62
+ offset: number;
63
+ length: number;
64
+ url: string;
65
+ }
66
+ /** "web": like Telegram, the label carries the link (a range of the text), here an in-app route (webRoute). */
67
+ export type PlaceSurface = "discord" | "telegram" | "web" | "plain";
68
+ /** Name a place in a message: rendered as `label` linked to the target, or as `label` alone. */
69
+ export declare function placeRef(target: PlaceTarget, label: string): string;
70
+ /**
71
+ * A link appended to a message (" → General"): the message's own words stay as they are, and when the place cannot
72
+ * be linked the suffix disappears with its leading space.
73
+ */
74
+ export declare function placeSuffix(target: PlaceTarget, label: string): string;
75
+ export declare function hasPlaceRefs(text: string): boolean;
76
+ /**
77
+ * Render every token for one surface. `resolve` says how this reader reaches a target (undefined: plain text). The
78
+ * text outside tokens is copied unchanged; `textLinks` is non-empty only on Telegram.
79
+ */
80
+ export declare function renderPlaceRefs(text: string, surface: PlaceSurface, resolve: (target: PlaceTarget) => PlaceLink | undefined): {
81
+ text: string;
82
+ textLinks: TextLink[];
83
+ };
84
+ /**
85
+ * #1990: an in-app route of the web app for an instance — its chat, or its terminal View — as the web client parses it
86
+ * (src/ui/shared/app-route.js chatPath / viewPath). Undefined for a name no route takes.
87
+ */
88
+ export declare function webRoute(panel: "chat" | "view", name: string): string | undefined;
89
+ export declare const WEB_TEXT_LINKS_MAX = 16;
90
+ /**
91
+ * #1990: links as the web keeps them — on a status line or a prompt, ranges of its text that open an instance's chat
92
+ * or View in the app. Whatever is not exactly that (out of the text, overlapping, not such a route) is dropped; an
93
+ * empty result is undefined.
94
+ */
95
+ export declare function webTextLinks(raw: unknown, text: string): TextLink[] | undefined;
96
+ /** Every token as its label, suffixes gone: what a surface that renders no links shows. */
97
+ export declare function stripPlaceRefs(text: string): string;
98
+ /** Text links that lie wholly inside [start, end), re-based to start; one that crosses the boundary is dropped. */
99
+ export declare function textLinksWithin(links: readonly TextLink[], start: number, end: number): TextLink[];
100
+ export interface MembershipSource {
101
+ isGroupMember?(groupId: string, userId: string): Promise<boolean>;
102
+ }
103
+ /**
104
+ * Whether a DM recipient may get links into a group: only a confirmed member (#1990 — never link to what the reader
105
+ * cannot open). One read per (group, user) per `ttlMs`, bounded by `deadlineMs`; a non-member, an error, a timeout or
106
+ * an adapter that cannot tell all mean "no" (plain text). Answers are cached, failures included, so a refusing
107
+ * platform is asked again only after the TTL; concurrent asks share one read.
108
+ */
109
+ export declare class GroupMembership {
110
+ private readonly opts;
111
+ private readonly answers;
112
+ private readonly reads;
113
+ constructor(opts?: {
114
+ now: () => number;
115
+ ttlMs?: number;
116
+ deadlineMs?: number;
117
+ maxEntries?: number;
118
+ });
119
+ isMember(source: MembershipSource, groupId: string, userId: string): Promise<boolean>;
120
+ private read;
121
+ }
122
+ /** #1990: refusals that send the person to General — their reply carries a link to it. */
123
+ export declare const GENERAL_POINTING_REFUSALS: ReadonlySet<string>;
124
+ /**
125
+ * Text from outside (an agent's message, a pane line, a dialog's description) as a place-token-free argument: a
126
+ * message that interpolates it must not let it name a place of its own.
127
+ */
128
+ export declare function noPlaceMarkers(text: string): string;
@@ -0,0 +1,269 @@
1
+ /**
2
+ * #1990: links to another topic. One place builds "a link to instance X's place (or a world's General) on surface S"
3
+ * from what the adapters already know — Discord guild/channel ids, the Telegram supergroup id, its public @username
4
+ * when it has one, and topic ids — and messages name such a place through a token that each surface renders in its own
5
+ * form, or as plain text when the reader could not open the target.
6
+ *
7
+ * Discord `<#channel>` (clickable in place); in a DM, `https://discord.com/channels/<guild>/<channel>`
8
+ * Telegram `https://t.me/<username>/<topic>` (public group) or `https://t.me/c/<id without -100>/<topic>`, carried by
9
+ * a `text_link` entity on plain text — no parse mode, so nothing in the text needs escaping
10
+ * plain the label alone (a suffix token disappears)
11
+ *
12
+ * The forms are the documented ones; no real client was driven (#1990: the user checks them on the 2.3 beta).
13
+ */
14
+ /** A world's place, for links: its platform, its group and (Telegram) the group's public @username once read. */
15
+ export function worldPlaceOf(world) {
16
+ const username = world.groupId ? world.adapter?.groupUsername?.(world.groupId) : undefined;
17
+ return { type: world.type, ...(world.groupId ? { groupId: world.groupId } : {}), ...(username ? { username } : {}) };
18
+ }
19
+ export const SNOWFLAKE = /^\d{5,25}$/;
20
+ /** A Telegram @username as the platform allows it: 4–32 of [A-Za-z0-9_], starting with a letter. */
21
+ const TELEGRAM_USERNAME = /^[A-Za-z][A-Za-z0-9_]{3,31}$/;
22
+ /** t.me/c/ links take a supergroup's id without its -100 prefix; anything else has no such link. */
23
+ export function telegramInternalId(chatId) {
24
+ const m = /^-100(\d+)$/.exec(chatId);
25
+ return m ? m[1] : undefined;
26
+ }
27
+ /** The t.me path prefix of a group: `<username>` for a public one, `c/<id>` for a private supergroup. */
28
+ function telegramGroupPath(place, chatId = place.groupId ?? "") {
29
+ if (place.username && TELEGRAM_USERNAME.test(place.username) && chatId === place.groupId)
30
+ return place.username;
31
+ const internal = telegramInternalId(chatId);
32
+ return internal ? `c/${internal}` : undefined;
33
+ }
34
+ /** A link to a message (a prompt's own buttons), or undefined when none can be built for this platform/place. */
35
+ export function messageLink(place, at) {
36
+ if (!at.messageId)
37
+ return undefined;
38
+ if (place.type === "discord") {
39
+ const channel = at.threadId ?? at.chatId;
40
+ if (!place.groupId || !SNOWFLAKE.test(place.groupId) || !SNOWFLAKE.test(channel) || !SNOWFLAKE.test(at.messageId))
41
+ return undefined;
42
+ return `https://discord.com/channels/${place.groupId}/${channel}/${at.messageId}`;
43
+ }
44
+ if (place.type === "telegram") {
45
+ const path = telegramGroupPath(place, at.chatId);
46
+ if (!path || !/^\d+$/.test(at.messageId))
47
+ return undefined;
48
+ const topic = at.threadId && at.threadId !== "1" && /^\d+$/.test(at.threadId) ? `${at.threadId}/` : "";
49
+ return `https://t.me/${path}/${topic}${at.messageId}`;
50
+ }
51
+ return undefined;
52
+ }
53
+ /**
54
+ * A browser URL to a topic or channel. Telegram's General topic (1) gets one only when `general` is set: an
55
+ * instance's link never points at General.
56
+ */
57
+ export function topicUrl(place, topicId, opts = {}) {
58
+ if (!place || !topicId)
59
+ return undefined;
60
+ if (place.type === "discord") {
61
+ if (!place.groupId || !SNOWFLAKE.test(place.groupId) || !SNOWFLAKE.test(topicId))
62
+ return undefined;
63
+ return `https://discord.com/channels/${place.groupId}/${topicId}`;
64
+ }
65
+ if (place.type === "telegram") {
66
+ const path = telegramGroupPath(place);
67
+ if (!path || !/^\d+$/.test(topicId) || (topicId === "1" && !opts.general))
68
+ return undefined;
69
+ return `https://t.me/${path}/${topicId}`;
70
+ }
71
+ return undefined;
72
+ }
73
+ /** A way to the instance's own thread: Discord's channel mention (clickable in place), Telegram's topic link. */
74
+ export function instanceLink(place, topicId) {
75
+ if (!topicId)
76
+ return undefined;
77
+ if (place.type === "discord")
78
+ return SNOWFLAKE.test(topicId) ? `<#${topicId}>` : undefined;
79
+ return topicUrl(place, topicId);
80
+ }
81
+ // Private-use code points: no normal text carries them, and a stray one is never taken for a token.
82
+ const OPEN = "";
83
+ const MID = "";
84
+ const CLOSE = "";
85
+ const TOKEN = /([^-]*)([^-]*)/g;
86
+ const MARKERS = /[-]/g;
87
+ function encodeTarget(target) {
88
+ return target.kind === "general" ? "g" : `i:${encodeURIComponent(target.name)}`;
89
+ }
90
+ function decodeTarget(payload) {
91
+ if (payload === "g")
92
+ return { kind: "general" };
93
+ if (!payload.startsWith("i:"))
94
+ return undefined;
95
+ try {
96
+ const name = decodeURIComponent(payload.slice(2));
97
+ return name ? { kind: "instance", name } : undefined;
98
+ }
99
+ catch {
100
+ return undefined;
101
+ }
102
+ }
103
+ /** Name a place in a message: rendered as `label` linked to the target, or as `label` alone. */
104
+ export function placeRef(target, label) {
105
+ return `${OPEN}${encodeTarget(target)}${MID}${label.replace(MARKERS, "")}${CLOSE}`;
106
+ }
107
+ /**
108
+ * A link appended to a message (" → General"): the message's own words stay as they are, and when the place cannot
109
+ * be linked the suffix disappears with its leading space.
110
+ */
111
+ export function placeSuffix(target, label) {
112
+ return ` ${OPEN}s|${encodeTarget(target)}${MID}${label.replace(MARKERS, "")}${CLOSE}`;
113
+ }
114
+ export function hasPlaceRefs(text) {
115
+ return text.includes(OPEN);
116
+ }
117
+ /**
118
+ * Render every token for one surface. `resolve` says how this reader reaches a target (undefined: plain text). The
119
+ * text outside tokens is copied unchanged; `textLinks` is non-empty only on Telegram.
120
+ */
121
+ export function renderPlaceRefs(text, surface, resolve) {
122
+ if (!hasPlaceRefs(text))
123
+ return { text, textLinks: [] };
124
+ const textLinks = [];
125
+ let out = "";
126
+ let last = 0;
127
+ for (const m of text.matchAll(TOKEN)) {
128
+ let before = text.slice(last, m.index);
129
+ last = m.index + m[0].length;
130
+ const suffix = m[1].startsWith("s|");
131
+ const target = decodeTarget(suffix ? m[1].slice(2) : m[1]);
132
+ const label = m[2];
133
+ const link = target && label && surface !== "plain" ? resolve(target) : undefined;
134
+ if (!link) {
135
+ // A suffix is all link: without one it goes, with the space placeSuffix put before it.
136
+ if (suffix)
137
+ before = before.endsWith(" ") ? before.slice(0, -1) : before;
138
+ out += before + (suffix ? "" : label);
139
+ continue;
140
+ }
141
+ out += before;
142
+ const arrow = suffix ? "→ " : "";
143
+ if (surface === "discord") {
144
+ // A mention is clickable in place; a URL (a DM) in angle brackets so Discord adds no embed.
145
+ const ref = "mention" in link ? link.mention : `<${link.url}>`;
146
+ out += suffix ? `${arrow}${ref}` : `${label} (${ref})`;
147
+ }
148
+ else if ("url" in link) {
149
+ out += arrow;
150
+ textLinks.push({ offset: out.length, length: label.length, url: link.url });
151
+ out += label;
152
+ }
153
+ else {
154
+ out += arrow + label;
155
+ }
156
+ }
157
+ out += text.slice(last);
158
+ return { text: out, textLinks };
159
+ }
160
+ /**
161
+ * #1990: an in-app route of the web app for an instance — its chat, or its terminal View — as the web client parses it
162
+ * (src/ui/shared/app-route.js chatPath / viewPath). Undefined for a name no route takes.
163
+ */
164
+ export function webRoute(panel, name) {
165
+ if (!name || name.length > 128 || /[/\\\u0000-\u001f\u007f]/.test(name) || name === "." || name.includes(".."))
166
+ return undefined;
167
+ return panel === "chat" ? `/ui/chat/${encodeURIComponent(name)}` : `/view/${encodeURIComponent(name)}`;
168
+ }
169
+ const WEB_ROUTE = /^\/(?:ui\/chat|view)\/[^/?#\s]+$/;
170
+ export const WEB_TEXT_LINKS_MAX = 16;
171
+ /**
172
+ * #1990: links as the web keeps them — on a status line or a prompt, ranges of its text that open an instance's chat
173
+ * or View in the app. Whatever is not exactly that (out of the text, overlapping, not such a route) is dropped; an
174
+ * empty result is undefined.
175
+ */
176
+ export function webTextLinks(raw, text) {
177
+ if (!Array.isArray(raw))
178
+ return undefined;
179
+ const out = [];
180
+ let end = 0;
181
+ for (const l of raw.slice(0, WEB_TEXT_LINKS_MAX)) {
182
+ if (!l || typeof l !== "object")
183
+ continue;
184
+ const { offset, length, url } = l;
185
+ if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(length) || typeof url !== "string")
186
+ continue;
187
+ const o = offset, n = length;
188
+ if (o < end || n < 1 || o + n > text.length || !WEB_ROUTE.test(url))
189
+ continue;
190
+ try {
191
+ decodeURIComponent(url);
192
+ }
193
+ catch {
194
+ continue;
195
+ }
196
+ out.push({ offset: o, length: n, url });
197
+ end = o + n;
198
+ }
199
+ return out.length ? out : undefined;
200
+ }
201
+ /** Every token as its label, suffixes gone: what a surface that renders no links shows. */
202
+ export function stripPlaceRefs(text) {
203
+ return renderPlaceRefs(text, "plain", () => undefined).text;
204
+ }
205
+ /** Text links that lie wholly inside [start, end), re-based to start; one that crosses the boundary is dropped. */
206
+ export function textLinksWithin(links, start, end) {
207
+ return links.filter(l => l.offset >= start && l.offset + l.length <= end).map(l => ({ ...l, offset: l.offset - start }));
208
+ }
209
+ /**
210
+ * Whether a DM recipient may get links into a group: only a confirmed member (#1990 — never link to what the reader
211
+ * cannot open). One read per (group, user) per `ttlMs`, bounded by `deadlineMs`; a non-member, an error, a timeout or
212
+ * an adapter that cannot tell all mean "no" (plain text). Answers are cached, failures included, so a refusing
213
+ * platform is asked again only after the TTL; concurrent asks share one read.
214
+ */
215
+ export class GroupMembership {
216
+ opts;
217
+ answers = new Map();
218
+ reads = new Map();
219
+ constructor(opts = { now: () => performance.now() }) {
220
+ this.opts = opts;
221
+ }
222
+ async isMember(source, groupId, userId) {
223
+ if (!source.isGroupMember || !groupId || !userId)
224
+ return false;
225
+ const key = `${groupId}\u0000${userId}`;
226
+ const ttl = this.opts.ttlMs ?? 10 * 60_000;
227
+ const cached = this.answers.get(key);
228
+ if (cached && this.opts.now() - cached.at < ttl)
229
+ return cached.member;
230
+ const pending = this.reads.get(key);
231
+ if (pending)
232
+ return pending;
233
+ const read = this.read(source, groupId, userId).then(member => {
234
+ this.answers.delete(key); // re-insert: the map's order is its age, for the bound below
235
+ this.answers.set(key, { member, at: this.opts.now() });
236
+ const max = this.opts.maxEntries ?? 1000;
237
+ while (this.answers.size > max)
238
+ this.answers.delete(this.answers.keys().next().value);
239
+ return member;
240
+ }).finally(() => this.reads.delete(key));
241
+ this.reads.set(key, read);
242
+ return read;
243
+ }
244
+ read(source, groupId, userId) {
245
+ const deadlineMs = this.opts.deadlineMs ?? 5_000;
246
+ return new Promise(resolve => {
247
+ const timer = setTimeout(() => resolve(false), deadlineMs);
248
+ timer.unref?.();
249
+ let asked;
250
+ try {
251
+ asked = source.isGroupMember(groupId, userId);
252
+ }
253
+ catch {
254
+ asked = Promise.resolve(false);
255
+ }
256
+ asked.then(member => { clearTimeout(timer); resolve(member === true); }, () => { clearTimeout(timer); resolve(false); });
257
+ });
258
+ }
259
+ }
260
+ /** #1990: refusals that send the person to General — their reply carries a link to it. */
261
+ export const GENERAL_POINTING_REFUSALS = new Set(["cmd.use_in_general", "profile.general_only"]);
262
+ /**
263
+ * Text from outside (an agent's message, a pane line, a dialog's description) as a place-token-free argument: a
264
+ * message that interpolates it must not let it name a place of its own.
265
+ */
266
+ export function noPlaceMarkers(text) {
267
+ return text.replace(MARKERS, "");
268
+ }
269
+ //# sourceMappingURL=topic-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic-link.js","sourceRoot":"","sources":["../src/topic-link.ts"],"names":[],"mappings":"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"}
@@ -255,11 +255,12 @@ export class CloudflaredProvider {
255
255
  // Host through to the origin, so the origin has to be expecting it or it
256
256
  // will refuse our own readiness check.
257
257
  ctx.onCandidateHost?.(new URL(base).host);
258
- await this.probeReady(pageUrl, ctx, deadline, now, () => state.hasExited);
258
+ await this.probeReady(pageUrl, ctx, deadline, now, () => state.hasExited, () => state.checkOutput());
259
259
  // A probe can succeed against a tunnel that has already died (the edge answers for a while) or been
260
260
  // cancelled. Publishing that would hand back a handle whose exit nobody will ever be told about.
261
261
  if (ctx.signal.aborted)
262
262
  throw new TunnelStartError("cancelled", "cancelled before the tunnel was published");
263
+ state.checkOutput();
263
264
  if (state.hasExited)
264
265
  throw new TunnelStartError("no-url", "cloudflared exited before the tunnel became ready");
265
266
  state.publish(base, pageUrl);
@@ -275,7 +276,7 @@ export class CloudflaredProvider {
275
276
  throw err;
276
277
  }
277
278
  }
278
- async probeReady(pageUrl, ctx, deadline, now, isDead) {
279
+ async probeReady(pageUrl, ctx, deadline, now, isDead, checkOutput) {
279
280
  const fetchPage = this.opts.fetchPage ?? ((url, signal) => fetchViaPublicResolver(url, signal, {
280
281
  resolvers: this.opts.publicResolvers,
281
282
  resolve4: this.opts.resolve4,
@@ -284,6 +285,7 @@ export class CloudflaredProvider {
284
285
  }));
285
286
  let lastDetail = "no attempt completed";
286
287
  while (now() < deadline) {
288
+ checkOutput();
287
289
  if (ctx.signal.aborted)
288
290
  throw new TunnelStartError("cancelled", "cancelled during readiness probe");
289
291
  // No point asking the edge about a tunnel whose process is gone.
@@ -340,6 +342,9 @@ class CloudflaredHandle {
340
342
  /** Set once we asked it to stop: from then on an exit is expected, never "unexpected". */
341
343
  stopRequested = false;
342
344
  stopping = null;
345
+ outputError = false;
346
+ outputFailed = null;
347
+ failureListeners = new Set();
343
348
  constructor(child, opts) {
344
349
  this.child = child;
345
350
  this.opts = opts;
@@ -361,6 +366,20 @@ class CloudflaredHandle {
361
366
  };
362
367
  child.stdout?.on("data", absorb);
363
368
  child.stderr?.on("data", absorb);
369
+ const onOutputError = () => {
370
+ if (this.outputError)
371
+ return;
372
+ this.outputError = true;
373
+ this.outputFailed?.();
374
+ if (this.published && !this.stopRequested) {
375
+ for (const listener of this.failureListeners)
376
+ listener("transport-failed");
377
+ }
378
+ };
379
+ // Pipes emit errors independently of ChildProcess. Keep these listeners
380
+ // even after stop; a queued pipe error must never escape during teardown.
381
+ child.stdout?.on("error", onOutputError);
382
+ child.stderr?.on("error", onOutputError);
364
383
  child.on("close", () => { this.outputClosed = true; });
365
384
  child.on("exit", (code, signal) => {
366
385
  this.exit = { code, signal };
@@ -386,6 +405,7 @@ class CloudflaredHandle {
386
405
  this.published = true;
387
406
  }
388
407
  async awaitUrl(deadline, signal, now) {
408
+ this.checkOutput();
389
409
  if (this.foundBase)
390
410
  return this.foundBase;
391
411
  if (this.neverStarted) {
@@ -416,9 +436,11 @@ class CloudflaredHandle {
416
436
  this.child.off("exit", onExit);
417
437
  this.urlResolved = null;
418
438
  this.spawnFailed = null;
439
+ this.outputFailed = null;
419
440
  };
420
441
  this.urlResolved = base => settle(() => resolve(base));
421
442
  this.spawnFailed = onSpawnFail;
443
+ this.outputFailed = () => settle(() => reject(new TunnelStartError("transport-failed", "cloudflared output stream failed")));
422
444
  signal.addEventListener("abort", onAbort, { once: true });
423
445
  this.child.on("exit", onExit);
424
446
  if (this.exit)
@@ -429,6 +451,18 @@ class CloudflaredHandle {
429
451
  onAbort();
430
452
  });
431
453
  }
454
+ checkOutput() {
455
+ if (this.outputError)
456
+ throw new TunnelStartError("transport-failed", "cloudflared output stream failed");
457
+ }
458
+ onFailure(listener) {
459
+ this.failureListeners.add(listener);
460
+ if (this.outputError && !this.stopRequested) {
461
+ queueMicrotask(() => { if (this.failureListeners.has(listener) && !this.stopRequested)
462
+ listener("transport-failed"); });
463
+ }
464
+ return () => { this.failureListeners.delete(listener); };
465
+ }
432
466
  onUnexpectedExit(listener) {
433
467
  this.exitListeners.add(listener);
434
468
  // An exit that happened before anyone was listening is still an unexpected exit: replaying it closes the
@@ -450,6 +484,7 @@ class CloudflaredHandle {
450
484
  void reason;
451
485
  this.stopRequested = true;
452
486
  this.exitListeners.clear();
487
+ this.failureListeners.clear();
453
488
  if (this.exit)
454
489
  return { confirmed: true };
455
490
  // Proven, not assumed: Node reported the spawn itself failed and never
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflared.js","sourceRoot":"","sources":["../../src/tunnel/cloudflared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflared.js","sourceRoot":"","sources":["../../src/tunnel/cloudflared.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  export type TunnelVisibility = "public" | "tailnet" | "loopback" | "manual";
16
16
  /** Why a provider cannot run, in bounded terms — never a vendor error string. */
17
- export type TunnelErrorKind = "binary-missing" | "binary-not-executable" | "not-logged-in" | "spawn-failed" | "no-url"
17
+ export type TunnelErrorKind = "binary-missing" | "binary-not-executable" | "not-logged-in" | "spawn-failed" | "transport-failed" | "no-url"
18
18
  /** #1767: Cloudflare refused to provision a quick tunnel with HTTP 429 (rate limited for this network). */
19
19
  | "rate-limited"
20
20
  /** #1767: Cloudflare refused to provision a quick tunnel with another HTTP error. */
@@ -93,6 +93,8 @@ export interface TunnelHandle {
93
93
  stop(reason: string): Promise<TunnelStopResult>;
94
94
  /** Returns an unsubscribe. Fires only for an exit nobody asked for. */
95
95
  onUnexpectedExit(listener: (exit: TunnelExit) => void): () => void;
96
+ /** Transport failed without proving process death. The owner must still stop on proof. */
97
+ onFailure?(listener: (kind: TunnelErrorKind) => void): () => void;
96
98
  }
97
99
  export interface TunnelProvider {
98
100
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tunnel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwGH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAE9B;IAGA;IAJX,YACW,SAA0B,EACnC,OAAe;IACf,6EAA6E;IACpE,WAA+E;QAExF,KAAK,CAAC,OAAO,CAAC,CAAC;QALN,cAAS,GAAT,SAAS,CAAiB;QAG1B,gBAAW,GAAX,WAAW,CAAoE;QAGxF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AACjD,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tunnel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA2GH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAE9B;IAGA;IAJX,YACW,SAA0B,EACnC,OAAe;IACf,6EAA6E;IACpE,WAA+E;QAExF,KAAK,CAAC,OAAO,CAAC,CAAC;QALN,cAAS,GAAT,SAAS,CAAiB;QAG1B,gBAAW,GAAX,WAAW,CAAoE;QAGxF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AACjD,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC"}