@songsid/agend 2.3.0 → 2.3.2-beta.1

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 (201) hide show
  1. package/README.md +1 -1
  2. package/README.zh-TW.md +1 -1
  3. package/dist/authority/authority-state.d.ts +4 -0
  4. package/dist/authority/authority-state.js +16 -10
  5. package/dist/authority/authority-state.js.map +1 -1
  6. package/dist/authority/session-authorizations.d.ts +7 -1
  7. package/dist/authority/session-authorizations.js +6 -4
  8. package/dist/authority/session-authorizations.js.map +1 -1
  9. package/dist/authority/web-authority.d.ts +19 -6
  10. package/dist/authority/web-authority.js +22 -8
  11. package/dist/authority/web-authority.js.map +1 -1
  12. package/dist/backend/muse.d.ts +20 -2
  13. package/dist/backend/muse.js +154 -16
  14. package/dist/backend/muse.js.map +1 -1
  15. package/dist/channel/adapters/discord.d.ts +2 -0
  16. package/dist/channel/adapters/discord.js +33 -3
  17. package/dist/channel/adapters/discord.js.map +1 -1
  18. package/dist/channel/adapters/telegram.d.ts +1 -1
  19. package/dist/channel/adapters/telegram.js +3 -35
  20. package/dist/channel/adapters/telegram.js.map +1 -1
  21. package/dist/channel/mcp-tools.js +5 -5
  22. package/dist/channel/mcp-tools.js.map +1 -1
  23. package/dist/channel/types.d.ts +11 -0
  24. package/dist/cli.js +6 -3
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config-validator.js +42 -5
  27. package/dist/config-validator.js.map +1 -1
  28. package/dist/daemon.d.ts +47 -3
  29. package/dist/daemon.js +380 -60
  30. package/dist/daemon.js.map +1 -1
  31. package/dist/delivery-outbox.d.ts +23 -1
  32. package/dist/delivery-outbox.js +114 -17
  33. package/dist/delivery-outbox.js.map +1 -1
  34. package/dist/doctor.d.ts +3 -0
  35. package/dist/doctor.js +9 -0
  36. package/dist/doctor.js.map +1 -1
  37. package/dist/event-log.d.ts +5 -0
  38. package/dist/event-log.js +13 -0
  39. package/dist/event-log.js.map +1 -1
  40. package/dist/fleet-context.d.ts +1 -1
  41. package/dist/fleet-lock.d.ts +6 -0
  42. package/dist/fleet-lock.js +19 -0
  43. package/dist/fleet-lock.js.map +1 -1
  44. package/dist/fleet-manager.d.ts +174 -2
  45. package/dist/fleet-manager.js +678 -68
  46. package/dist/fleet-manager.js.map +1 -1
  47. package/dist/fleet-process-handlers.d.ts +1 -0
  48. package/dist/fleet-process-handlers.js +9 -1
  49. package/dist/fleet-process-handlers.js.map +1 -1
  50. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +11 -0
  51. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +4 -4
  52. package/dist/general-knowledge/skills/web-appearance/SKILL.md +7 -7
  53. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +109 -57
  54. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +110 -58
  55. package/dist/guest-seen-people.d.ts +38 -0
  56. package/dist/guest-seen-people.js +78 -0
  57. package/dist/guest-seen-people.js.map +1 -0
  58. package/dist/instance-config-impact.js +4 -1
  59. package/dist/instance-config-impact.js.map +1 -1
  60. package/dist/instance-lifecycle.d.ts +2 -0
  61. package/dist/instance-lifecycle.js +27 -1
  62. package/dist/instance-lifecycle.js.map +1 -1
  63. package/dist/locale.js +62 -12
  64. package/dist/locale.js.map +1 -1
  65. package/dist/log-service.js +1 -0
  66. package/dist/log-service.js.map +1 -1
  67. package/dist/mac-auto-restore.d.ts +117 -0
  68. package/dist/mac-auto-restore.js +294 -0
  69. package/dist/mac-auto-restore.js.map +1 -0
  70. package/dist/needs-you.js +1 -0
  71. package/dist/needs-you.js.map +1 -1
  72. package/dist/outbound-handlers.d.ts +2 -2
  73. package/dist/outbound-handlers.js +5 -5
  74. package/dist/outbound-handlers.js.map +1 -1
  75. package/dist/outbound-schemas.d.ts +2 -0
  76. package/dist/outbound-schemas.js +2 -0
  77. package/dist/outbound-schemas.js.map +1 -1
  78. package/dist/public-web-gateway.js +9 -1
  79. package/dist/public-web-gateway.js.map +1 -1
  80. package/dist/search/search-index.d.ts +10 -2
  81. package/dist/search/search-index.js +17 -4
  82. package/dist/search/search-index.js.map +1 -1
  83. package/dist/service-installer.d.ts +23 -1
  84. package/dist/service-installer.js +40 -11
  85. package/dist/service-installer.js.map +1 -1
  86. package/dist/session-oom-stop.d.ts +45 -0
  87. package/dist/session-oom-stop.js +259 -0
  88. package/dist/session-oom-stop.js.map +1 -0
  89. package/dist/session-oom.d.ts +13 -0
  90. package/dist/session-oom.js +119 -7
  91. package/dist/session-oom.js.map +1 -1
  92. package/dist/settings-api.d.ts +27 -1
  93. package/dist/settings-api.js +108 -2
  94. package/dist/settings-api.js.map +1 -1
  95. package/dist/settings-change.js +37 -3
  96. package/dist/settings-change.js.map +1 -1
  97. package/dist/settings-effect.js +5 -2
  98. package/dist/settings-effect.js.map +1 -1
  99. package/dist/spawn-gate.d.ts +2 -0
  100. package/dist/spawn-gate.js +17 -4
  101. package/dist/spawn-gate.js.map +1 -1
  102. package/dist/start-attempt.d.ts +15 -1
  103. package/dist/start-attempt.js +35 -5
  104. package/dist/start-attempt.js.map +1 -1
  105. package/dist/start-failure-chat.d.ts +41 -0
  106. package/dist/start-failure-chat.js +159 -0
  107. package/dist/start-failure-chat.js.map +1 -0
  108. package/dist/start-failure-notice.d.ts +4 -0
  109. package/dist/start-failure-notice.js +8 -0
  110. package/dist/start-failure-notice.js.map +1 -1
  111. package/dist/start-failure.d.ts +49 -0
  112. package/dist/start-failure.js +141 -1
  113. package/dist/start-failure.js.map +1 -1
  114. package/dist/telegram-api-root.d.ts +1 -0
  115. package/dist/telegram-api-root.js +40 -0
  116. package/dist/telegram-api-root.js.map +1 -0
  117. package/dist/turn-reply-guard.d.ts +25 -0
  118. package/dist/turn-reply-guard.js +111 -12
  119. package/dist/turn-reply-guard.js.map +1 -1
  120. package/dist/types.d.ts +21 -3
  121. package/dist/ui/backend-signin.js +5 -2
  122. package/dist/ui/chat-ambient.js +1 -1
  123. package/dist/ui/chat-effects.js +4 -4
  124. package/dist/ui/chat-render.js +5 -2
  125. package/dist/ui/chat-strings.js +2 -2
  126. package/dist/ui/chat-thread.js +2 -2
  127. package/dist/ui/first-run.js +2 -2
  128. package/dist/ui/fleet-canvas-view.js +114 -0
  129. package/dist/ui/fleet-canvas.js +15 -77
  130. package/dist/ui/fleet-office-editor.js +80 -5
  131. package/dist/ui/fleet-office-layout.js +197 -0
  132. package/dist/ui/fleet-office-model.js +6 -3
  133. package/dist/ui/fleet-office-pack.d.ts +39 -0
  134. package/dist/ui/fleet-office-pack.js +240 -29
  135. package/dist/ui/fleet-office-skin.js +130 -21
  136. package/dist/ui/fleet-office-store.js +75 -4
  137. package/dist/ui/fleet-office-view.js +154 -0
  138. package/dist/ui/fleet-office-zones.js +95 -33
  139. package/dist/ui/fleet-office.js +530 -94
  140. package/dist/ui/fleet-usage.js +7 -6
  141. package/dist/ui/panel-chat.js +20 -7
  142. package/dist/ui/panel-details.js +2 -2
  143. package/dist/ui/panel-fleet.js +11 -77
  144. package/dist/ui/panel-log.js +5 -5
  145. package/dist/ui/panel-settings.js +586 -164
  146. package/dist/ui/search-dialog.js +26 -7
  147. package/dist/ui/settings-appearance.js +82 -29
  148. package/dist/ui/settings-apply.js +42 -7
  149. package/dist/ui/settings-dialogs.js +68 -22
  150. package/dist/ui/settings-draft.js +51 -0
  151. package/dist/ui/settings-guests.js +244 -78
  152. package/dist/ui/settings-learn.js +2 -2
  153. package/dist/ui/settings-model.js +2 -0
  154. package/dist/ui/settings-registry.js +142 -0
  155. package/dist/ui/settings-strings.js +108 -44
  156. package/dist/ui/settings-web-authority.js +34 -23
  157. package/dist/ui/shared/app-i18n.js +14 -0
  158. package/dist/ui/shared/app-nav.js +10 -5
  159. package/dist/ui/shared/app-prefs.js +80 -2
  160. package/dist/ui/shared/app-route.js +39 -5
  161. package/dist/ui/shared/app-shell.js +80 -8
  162. package/dist/ui/shared/app-stream.js +2 -1
  163. package/dist/ui/shared/app.css +251 -20
  164. package/dist/ui/shared/app.js +3 -0
  165. package/dist/ui/shared/effect-stock-trust.js +1 -1
  166. package/dist/ui/shared/identity-color.js +4 -4
  167. package/dist/ui/shared/signin.js +2 -2
  168. package/dist/ui/shared/ui-dialog.js +6 -1
  169. package/dist/ui/shared/ui-icons.js +2 -0
  170. package/dist/ui/shared/usage-dialog.js +21 -11
  171. package/dist/ui/shared/view-strings.js +2 -0
  172. package/dist/ui/shared/web-authorize.js +13 -12
  173. package/dist/web-api.d.ts +9 -3
  174. package/dist/web-api.js +161 -6
  175. package/dist/web-api.js.map +1 -1
  176. package/dist/web-auth.js +7 -1
  177. package/dist/web-auth.js.map +1 -1
  178. package/dist/web-experimental.d.ts +1 -1
  179. package/dist/web-experimental.js +1 -1
  180. package/dist/web-experimental.js.map +1 -1
  181. package/dist/web-mod-agent.js +2 -2
  182. package/dist/web-mod-agent.js.map +1 -1
  183. package/dist/web-office-skins.d.ts +108 -0
  184. package/dist/web-office-skins.js +298 -0
  185. package/dist/web-office-skins.js.map +1 -0
  186. package/dist/web-office-store.d.ts +8 -2
  187. package/dist/web-office-store.js +37 -7
  188. package/dist/web-office-store.js.map +1 -1
  189. package/dist/web-settings-patch.d.ts +6 -0
  190. package/dist/web-settings-patch.js +61 -4
  191. package/dist/web-settings-patch.js.map +1 -1
  192. package/dist/web-shell-routes.d.ts +4 -2
  193. package/dist/web-shell-routes.js +17 -7
  194. package/dist/web-shell-routes.js.map +1 -1
  195. package/dist/working-recovery.d.ts +104 -0
  196. package/dist/working-recovery.js +263 -0
  197. package/dist/working-recovery.js.map +1 -0
  198. package/dist/working-state-journal.d.ts +70 -0
  199. package/dist/working-state-journal.js +106 -0
  200. package/dist/working-state-journal.js.map +1 -0
  201. package/package.json +1 -1
package/README.md CHANGED
@@ -169,7 +169,7 @@ graph LR
169
169
 
170
170
  **Or install from chat with `/login <backend>`** (fleet admins only), without SSH-ing into the host: when the CLI is not installed yet, `/login` runs the command above in a fleet window, finds the CLI where its installer put it, adds that directory to the fleet's PATH, and offers sign-in where supported. OpenCode and Muse are install-only; Antigravity can be installed but has no isolated remote sign-in. A bare `/login` offers the available sign-in and missing-CLI installation actions.
171
171
 
172
- **Tested CLI versions (AgEnD 2.3.0).** Claude Code 2.1.308, Grok CLI 1.0.67 and Muse 1.4.11-R6667.1 were audited against AgEnD end to end. Kiro CLI up to 2.33.0: a newer kiro-cli still starts, with a warning that it is untested. Codex 0.163.0, checked for its package, recovery and quota handling. Antigravity (agy) 1.3.6. OpenCode 1.18.34. New CLI releases are audited daily, so a newer version may already work. A new release can change its screens, though, so AgEnD only claims a version once it has been tested against it.
172
+ **Tested CLI versions (AgEnD 2.3.0).** Claude Code 2.1.308 and Grok CLI 1.0.67 were audited against AgEnD end to end. Muse 1.4.12-R6909.1 was checked isolated (echo/mock) for composer, prompt and trust, plus reconstructed empty-composer placeholder fixtures. Kiro CLI up to 2.33.0: a newer kiro-cli still starts, with a warning that it is untested. Codex 0.163.0, checked for its package, recovery and quota handling. Antigravity (agy) 1.3.6. OpenCode 1.18.34. New CLI releases are audited daily, so a newer version may already work. A new release can change its screens, though, so AgEnD only claims a version once it has been tested against it.
173
173
 
174
174
  ## Requirements
175
175
 
package/README.zh-TW.md CHANGED
@@ -169,7 +169,7 @@ graph LR
169
169
 
170
170
  **也可以在聊天室用 `/login <backend>` 安裝**(僅限 fleet 管理員),不必 SSH 進主機:CLI 還沒安裝時,`/login` 會在 fleet 視窗執行上表的指令,到安裝程式實際放置的位置找到 CLI,把那個目錄加進 fleet 的 PATH,並在支援時提供登入。OpenCode 與 Muse 只能安裝;Antigravity 可安裝,但沒有獨立的遠端登入流程。單獨輸入 `/login` 會列出可用的登入及缺少 CLI 的安裝操作。
171
171
 
172
- **已測試的 CLI 版本(AgEnD 2.3.0)**:Claude Code 2.1.308、Grok CLI 1.0.67、Muse 1.4.11-R6667.1 經過與 AgEnD 的完整檢查。Kiro CLI 到 2.33.0;更新的 kiro-cli 仍可啟動,但會提醒尚未測試。Codex 0.163.0(檢查了套件、復原與額度處理)。Antigravity(agy)1.3.6。OpenCode 1.18.34。新的 CLI 版本每天都會檢查,所以更新的版本可能已經可以用;不過新版本可能改變畫面,AgEnD 只在實際測過後才列出支援的版本。
172
+ **已測試的 CLI 版本(AgEnD 2.3.0)**:Claude Code 2.1.308、Grok CLI 1.0.67 經過與 AgEnD 的完整檢查。Muse 1.4.12-R6909.1 以隔離的 echo/mock 檢查了輸入框、提示列與信任對話;空輸入框灰色提示的測試畫面是重建的。Kiro CLI 到 2.33.0;更新的 kiro-cli 仍可啟動,但會提醒尚未測試。Codex 0.163.0(檢查了套件、復原與額度處理)。Antigravity(agy)1.3.6。OpenCode 1.18.34。新的 CLI 版本每天都會檢查,所以更新的版本可能已經可以用;不過新版本可能改變畫面,AgEnD 只在實際測過後才列出支援的版本。
173
173
 
174
174
  ## 系統需求
175
175
 
@@ -5,10 +5,14 @@ export interface AuthorityState {
5
5
  loopbackOnly: boolean;
6
6
  /** §0.2 (#2453): sessions over the admin's named tunnel may qualify (false while the state cannot be written). */
7
7
  namedLink: boolean;
8
+ /** §0.3: sessions over the temporary public link may qualify (false while the state cannot be written). */
9
+ quickLink: boolean;
8
10
  /** The current revocation epoch: authority granted under an older one reads as none. */
9
11
  epoch: number;
10
12
  /** #2453: this read saw the named-link option go off (the fleet then drops the named-link sessions' authorizations). */
11
13
  namedLinkClosed?: true;
14
+ /** §0.3: this read saw the quick-link option go off (the fleet then drops the quick-link sessions' authorizations). */
15
+ quickLinkClosed?: true;
12
16
  }
13
17
  export interface AuthorityStateIo {
14
18
  read(path: string): string;
@@ -16,8 +16,11 @@
16
16
  */
17
17
  import { readFileSync } from "node:fs";
18
18
  import { atomicWriteFileSync } from "../atomic-write.js";
19
+ import { quickLinkEffective } from "./web-authority.js";
19
20
  const same = (a, b) => a.epoch === b.epoch && a.enabled === b.enabled && a.loopback_only === b.loopback_only
20
- && !!a.named_link === !!b.named_link && !!a.named_link_seen === !!b.named_link_seen;
21
+ && !!a.named_link === !!b.named_link && !!a.named_link_seen === !!b.named_link_seen
22
+ && !!a.quick_link === !!b.quick_link;
23
+ const optional = (v) => v === undefined || typeof v === "boolean";
21
24
  const fileIo = { read: p => readFileSync(p, "utf8"), write: (p, d) => atomicWriteFileSync(p, d, { mode: 0o600 }) };
22
25
  export class AuthorityStateStore {
23
26
  path;
@@ -63,9 +66,10 @@ export class AuthorityStateStore {
63
66
  try {
64
67
  const v = JSON.parse(raw ?? "");
65
68
  if (v.v === 1 && Number.isSafeInteger(v.epoch) && v.epoch >= floor && typeof v.enabled === "boolean" && typeof v.loopback_only === "boolean"
66
- && (v.named_link === undefined || typeof v.named_link === "boolean") && (v.named_link_seen === undefined || typeof v.named_link_seen === "boolean")) {
69
+ && optional(v.named_link) && optional(v.named_link_seen) && optional(v.quick_link)) {
67
70
  this.want = { v: 1, epoch: v.epoch, enabled: v.enabled, loopback_only: v.loopback_only,
68
- ...(v.named_link ? { named_link: true } : {}), ...(v.named_link || v.named_link_seen ? { named_link_seen: true } : {}) };
71
+ ...(v.named_link ? { named_link: true } : {}), ...(v.named_link || v.named_link_seen ? { named_link_seen: true } : {}),
72
+ ...(v.quick_link ? { quick_link: true } : {}) };
69
73
  this.disk = { ...this.want };
70
74
  return this.want;
71
75
  }
@@ -100,18 +104,20 @@ export class AuthorityStateStore {
100
104
  const s = this.load();
101
105
  const enabled = config?.enabled !== false, loopbackOnly = config?.loopback_only === true; // §0.1: on by default
102
106
  const namedLink = config?.named_link === true; // §0.2: off by default
103
- const reopened = namedLink && !s.named_link && !!s.named_link_seen;
104
- const closed = !!s.named_link && !namedLink;
107
+ const quickLink = quickLinkEffective(config); // §0.3: off by default
108
+ const reopened = (namedLink && !s.named_link && !!s.named_link_seen) || (quickLink && !s.quick_link); // §0.3: every widening
109
+ const closed = !!s.named_link && !namedLink, quickClosed = !!s.quick_link && !quickLink;
105
110
  const revokes = s.enabled !== enabled || (s.loopback_only && !loopbackOnly) || reopened;
106
- if (revokes || s.loopback_only !== loopbackOnly || !!s.named_link !== namedLink) {
111
+ if (revokes || s.loopback_only !== loopbackOnly || !!s.named_link !== namedLink || !!s.quick_link !== quickLink) {
107
112
  this.want = { v: 1, epoch: s.epoch + (revokes ? 1 : 0), enabled, loopback_only: loopbackOnly,
108
- ...(namedLink ? { named_link: true } : {}), ...(namedLink || s.named_link_seen ? { named_link_seen: true } : {}) };
113
+ ...(namedLink ? { named_link: true } : {}), ...(namedLink || s.named_link_seen ? { named_link_seen: true } : {}),
114
+ ...(quickLink ? { quick_link: true } : {}) };
109
115
  }
110
116
  const durable = this.flush();
111
117
  // Not written: off, and still "only this computer" if it was (a loosening that did not stick does not apply).
112
- const seenClosed = closed ? { namedLinkClosed: true } : {};
113
- return durable ? { enabled, loopbackOnly, namedLink, epoch: this.want.epoch, ...seenClosed }
114
- : { enabled: false, loopbackOnly: loopbackOnly || (this.disk?.loopback_only ?? true), namedLink: false, epoch: this.want.epoch, ...seenClosed };
118
+ const seenClosed = { ...(closed ? { namedLinkClosed: true } : {}), ...(quickClosed ? { quickLinkClosed: true } : {}) };
119
+ return durable ? { enabled, loopbackOnly, namedLink, quickLink, epoch: this.want.epoch, ...seenClosed }
120
+ : { enabled: false, loopbackOnly: loopbackOnly || (this.disk?.loopback_only ?? true), namedLink: false, quickLink: false, epoch: this.want.epoch, ...seenClosed };
115
121
  }
116
122
  /** An explicit revocation: every web authority given so far reads as none. `durable`: it is on disk. */
117
123
  revoke() {
@@ -1 +1 @@
1
- {"version":3,"file":"authority-state.js","sourceRoot":"","sources":["../../src/authority/authority-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAsBzD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa;OACvH,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AAMtF,MAAM,MAAM,GAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAErI,MAAM,OAAO,mBAAmB;IAQD,IAAI;IAA2B,GAAG;IAA8D,EAAE;IAC5G,GAAG;IAA4C,KAAK;IARvE,8BAA8B;IACtB,IAAI,GAAkB,IAAI,CAAC;IACnC,qFAAqF;IAC7E,IAAI,GAAkB,IAAI,CAAC;IAC3B,MAAM,GAAG,KAAK,CAAC;IAEvB,kIAAkI;IAClI,YAA6B,IAAY,EAAmB,GAA8C,EAAmB,EAAE,GAAqB,MAAM,EACvI,GAAG,GAAiB,IAAI,CAAC,GAAG,EAAmB,KAAK,GAAiB,GAAG,EAAE,CAAC,CAAC;oBADlE,IAAI;mBAA2B,GAAG;kBAA8D,EAAE;mBAC5G,GAAG;qBAA4C,KAAK;IAA2B,CAAC;IAE3F,IAAI;QACV,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,GAAG,GAAkB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,GAAI,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAC,CAAC;QAClH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAAC,CAAC,CAAQ,gCAAgC;QAChH,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC,IAAI,CAAC;QAAC,CAAC;QACrJ,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAoB,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,KAAgB,IAAI,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,SAAS;mBACnJ,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,EAAE,CAAC;gBACtJ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAe,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9F,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3H,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACvB,gHAAgH;QAChH,8DAA8D;QAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,4GAA4G,CAAC,CAAC;QACjK,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAC9J,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,+FAA+F;IACvF,KAAK;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,wIAAwI,CAAC,CAAC;YAC5N,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAA8C;QACpD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC,CAAY,sBAAsB;QAC3H,MAAM,SAAS,GAAG,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC,CAAuD,uBAAuB;QAC5H,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACnE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;QACxF,IAAI,OAAO,IAAI,CAAC,CAAC,aAAa,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY;gBAC1F,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,8GAA8G;QAC9G,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,IAAK,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE;YAC3F,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAK,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IACrJ,CAAC;IAED,wGAAwG;IACxG,MAAM;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"authority-state.js","sourceRoot":"","sources":["../../src/authority/authority-state.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { WebPeer } from "./web-authority.js";
1
2
  export interface SessionAuthorization {
2
3
  readonly handle: string;
3
4
  readonly owner: {
@@ -9,6 +10,11 @@ export interface SessionAuthorization {
9
10
  /** §0.1: the end it was given with (authorizedAt + max_session_hours then): a longer setting later never stretches it. */
10
11
  readonly until: number;
11
12
  readonly epoch: number;
13
+ /**
14
+ * §0.3: where the session was when its account confirmed it — so a link's option turned off drops only that link's
15
+ * authorizations. Absent on records written before §0.3 (then only a local session or a named-link one could be).
16
+ */
17
+ readonly peer?: WebPeer;
12
18
  }
13
19
  /** At most this many kept: one per signed-in session (the store's own caps are far lower). */
14
20
  export declare const SESSION_AUTHORIZATIONS_MAX = 256;
@@ -33,7 +39,7 @@ export declare class SessionAuthorizations {
33
39
  authorize(handle: string, owner: {
34
40
  adapterId: string;
35
41
  userId: string;
36
- }, authorizedAt: number, epoch: number, until: number): {
42
+ }, authorizedAt: number, epoch: number, until: number, peer?: WebPeer): {
37
43
  authorization: SessionAuthorization;
38
44
  durable: boolean;
39
45
  };
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { readFileSync } from "node:fs";
9
9
  import { atomicWriteFileSync } from "../atomic-write.js";
10
+ const PEERS = ["loopback", "lan", "named_link", "quick_link"];
10
11
  /** At most this many kept: one per signed-in session (the store's own caps are far lower). */
11
12
  export const SESSION_AUTHORIZATIONS_MAX = 256;
12
13
  const HANDLE = /^[0-9a-f]{16}$/;
@@ -17,7 +18,8 @@ function valid(v) {
17
18
  const a = v;
18
19
  return typeof a.handle === "string" && HANDLE.test(a.handle) && !!a.owner && typeof a.owner.adapterId === "string" && !!a.owner.adapterId
19
20
  && typeof a.owner.userId === "string" && !!a.owner.userId && Number.isSafeInteger(a.authorizedAt) && a.authorizedAt > 0
20
- && Number.isSafeInteger(a.until) && a.until > a.authorizedAt && Number.isSafeInteger(a.epoch) && a.epoch >= 0;
21
+ && Number.isSafeInteger(a.until) && a.until > a.authorizedAt && Number.isSafeInteger(a.epoch) && a.epoch >= 0
22
+ && (a.peer === undefined || PEERS.includes(a.peer));
21
23
  }
22
24
  export class SessionAuthorizations {
23
25
  path;
@@ -48,7 +50,7 @@ export class SessionAuthorizations {
48
50
  if (v.v === 1 && Array.isArray(v.authorizations))
49
51
  for (const a of v.authorizations.slice(0, SESSION_AUTHORIZATIONS_MAX)) {
50
52
  if (valid(a))
51
- this.byHandle.set(a.handle, Object.freeze({ handle: a.handle, owner: Object.freeze({ adapterId: a.owner.adapterId, userId: a.owner.userId }), authorizedAt: a.authorizedAt, until: a.until, epoch: a.epoch }));
53
+ this.byHandle.set(a.handle, Object.freeze({ handle: a.handle, owner: Object.freeze({ adapterId: a.owner.adapterId, userId: a.owner.userId }), authorizedAt: a.authorizedAt, until: a.until, epoch: a.epoch, ...(a.peer ? { peer: a.peer } : {}) }));
52
54
  }
53
55
  }
54
56
  catch {
@@ -72,8 +74,8 @@ export class SessionAuthorizations {
72
74
  }
73
75
  get(handle) { return this.load().get(handle) ?? null; }
74
76
  /** §0: this session is authorized by its account, from now until `until`, under `epoch` (it replaces an earlier one). */
75
- authorize(handle, owner, authorizedAt, epoch, until) {
76
- const a = Object.freeze({ handle, owner: Object.freeze({ adapterId: owner.adapterId, userId: owner.userId }), authorizedAt, until, epoch });
77
+ authorize(handle, owner, authorizedAt, epoch, until, peer) {
78
+ const a = Object.freeze({ handle, owner: Object.freeze({ adapterId: owner.adapterId, userId: owner.userId }), authorizedAt, until, epoch, ...(peer ? { peer } : {}) });
77
79
  if (!valid(a))
78
80
  throw new Error("invalid session authorization");
79
81
  const map = this.load();
@@ -1 +1 @@
1
- {"version":3,"file":"session-authorizations.js","sourceRoot":"","sources":["../../src/authority/session-authorizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-authorizations.js","sourceRoot":"","sources":["../../src/authority/session-authorizations.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ import type { SessionAuthorization } from "./session-authorizations.js";
11
11
  /**
12
12
  * Where one request came from (§3.4): `loopback` is this machine naming a loopback host; `lan` is only "not loopback".
13
13
  * §0.2 (#2453): `named_link` is the admin's own named tunnel, known only from the public gateway's provenance (its exact
14
- * configured hostname) — never from the TCP peer (cloudflared is local) or a header.
14
+ * configured hostname) — never from the TCP peer (cloudflared is local) or a header. §0.3: `quick_link` is every other
15
+ * request over the public gateway (the temporary quick-tunnel link), likewise from provenance only.
15
16
  */
16
- export type WebPeer = "loopback" | "lan" | "named_link";
17
+ export type WebPeer = "loopback" | "lan" | "named_link" | "quick_link";
17
18
  /** The account behind a human receipt, written by AgEnD at admission — nothing in a message can set it (§4). */
18
19
  export interface HumanAuthority {
19
20
  kind: "platform" | "web-verified" | "none";
@@ -35,9 +36,9 @@ export interface HumanAuthority {
35
36
  downgraded?: AuthorityDowngrade;
36
37
  }
37
38
  /** §10: what turned a web-verified receipt into none after it was written. */
38
- export type AuthorityDowngrade = "disabled" | "revoked" | "loopback_only" | "named_link_off";
39
+ export type AuthorityDowngrade = "disabled" | "revoked" | "loopback_only" | "named_link_off" | "quick_link_off";
39
40
  /** Why a web request carries no authority — the first §3 check it failed. */
40
- export type WebAuthorityRefusal = "disabled" | "public_link" | "named_link_off" | "not_session" | "not_admin_session" | "token_rotated" | "no_account" | "not_admin" | "other_namespace" | "loopback_only" | "not_authorized" | "authorization_expired" | "session_changed";
41
+ export type WebAuthorityRefusal = "disabled" | "public_link" | "named_link_off" | "quick_link_off" | "not_session" | "not_admin_session" | "token_rotated" | "no_account" | "not_admin" | "other_namespace" | "loopback_only" | "not_authorized" | "authorization_expired" | "session_changed";
41
42
  export interface WebAuthorityResult {
42
43
  authority: HumanAuthority;
43
44
  refusal: WebAuthorityRefusal | null;
@@ -54,10 +55,21 @@ export interface WebAuthorityPolicy {
54
55
  loopbackOnly: boolean;
55
56
  /** §0.2: sessions over the admin's own named tunnel may qualify (web.verified_authority.named_link; off by default). */
56
57
  namedLink: boolean;
58
+ /** §0.3: sessions over the temporary public link may qualify (web.verified_authority.quick_link; quickLinkEffective). */
59
+ quickLink: boolean;
57
60
  maxSessionMs: number;
58
61
  }
59
62
  /** The policy in fleet.yaml; a value the validator refuses never loosens it (a bad number is the 48 h default, clamped). */
60
63
  export declare function webAuthorityPolicy(web: WebConfig | undefined): WebAuthorityPolicy;
64
+ /** §0.3: the release default of `web.verified_authority.quick_link` — off (the user's decision, 2026-10-23). */
65
+ export declare const QUICK_LINK_DEFAULT = false;
66
+ /**
67
+ * §0.3: the quick-link option as in force — its explicit value, else the release default. Every widening is judged on
68
+ * this (settings-change.ts, settings-effect.ts), never on the raw key: a key removed to inherit is a change of value too.
69
+ */
70
+ export declare function quickLinkEffective(v: {
71
+ quick_link?: unknown;
72
+ } | undefined | null, fallback?: boolean): boolean;
61
73
  /**
62
74
  * §3.4, from this request alone: `loopback` only when its TCP peer is a loopback address, its Host names a loopback host,
63
75
  * and it carries no forwarding header. It does not prove who sits at the machine (a local proxy that strips forwarding
@@ -99,14 +111,15 @@ export declare function evaluateWebAuthority(i: WebAuthorityInput): WebAuthority
99
111
  export declare function confirmAfterBody(arrival: WebAuthorityResult, now: WebAuthorityResult): WebAuthorityResult;
100
112
  /**
101
113
  * §10: a receipt's authority as it reads NOW. A web-verified one reads as none, saying why, while the switch is off, once
102
- * the epoch has moved past the one it was granted under, (lan and named_link) while "Only this computer can authorize" is
103
- * on, or (named_link, §0.2) while the named-link option is off.
114
+ * the epoch has moved past the one it was granted under, (every peer but loopback) while "Only this computer can
115
+ * authorize" is on, or (named_link, §0.2; quick_link, §0.3) while that link's option is off.
104
116
  * Platform and none are unchanged. The receiver applies the rule to this, never to the stored value.
105
117
  */
106
118
  export declare function authorityNow(stored: HumanAuthority, state: {
107
119
  enabled: boolean;
108
120
  loopbackOnly: boolean;
109
121
  namedLink: boolean;
122
+ quickLink: boolean;
110
123
  epoch: number;
111
124
  }): HumanAuthority;
112
125
  /** A Discord or Telegram message or click: its sender, from the platform's own event. */
@@ -7,7 +7,17 @@ export function webAuthorityPolicy(web) {
7
7
  const hours = typeof v?.max_session_hours === "number" && Number.isFinite(v.max_session_hours)
8
8
  ? Math.min(VERIFIED_SESSION_HOURS.max, Math.max(VERIFIED_SESSION_HOURS.min, v.max_session_hours)) : VERIFIED_SESSION_HOURS.default;
9
9
  // §0.1: the switch is on unless fleet.yaml says false (nothing carries authority until its account confirms anyway).
10
- return { enabled: v?.enabled !== false, loopbackOnly: v?.loopback_only === true, namedLink: v?.named_link === true, maxSessionMs: hours * 3_600_000 };
10
+ return { enabled: v?.enabled !== false, loopbackOnly: v?.loopback_only === true, namedLink: v?.named_link === true,
11
+ quickLink: quickLinkEffective(v), maxSessionMs: hours * 3_600_000 };
12
+ }
13
+ /** §0.3: the release default of `web.verified_authority.quick_link` — off (the user's decision, 2026-10-23). */
14
+ export const QUICK_LINK_DEFAULT = false;
15
+ /**
16
+ * §0.3: the quick-link option as in force — its explicit value, else the release default. Every widening is judged on
17
+ * this (settings-change.ts, settings-effect.ts), never on the raw key: a key removed to inherit is a change of value too.
18
+ */
19
+ export function quickLinkEffective(v, fallback = QUICK_LINK_DEFAULT) {
20
+ return typeof v?.quick_link === "boolean" ? v.quick_link : fallback;
11
21
  }
12
22
  /** Headers a proxy adds; any one of them makes a request `lan`, whatever its peer address (§3.4). */
13
23
  const FORWARDING_HEADERS = ["forwarded", "x-forwarded-for", "x-forwarded-host", "x-real-ip", "cf-connecting-ip", "via"];
@@ -40,15 +50,16 @@ export function evaluateWebAuthority(i) {
40
50
  return refuse("disabled");
41
51
  // §3.5 / §0.2: the public link never qualifies — except the admin's own named tunnel (provenance, exact hostname)
42
52
  // while the option is on and "Only this computer can authorize" is off. A peer that says named off the gateway is not.
53
+ // §0.3: the temporary public link (a gateway request that is not named) likewise, by its own option.
43
54
  if (i.gateway) {
44
- if (i.peer !== "named_link")
55
+ if (i.peer !== "named_link" && i.peer !== "quick_link")
45
56
  return refuse("public_link");
46
57
  if (i.policy.loopbackOnly)
47
58
  return refuse("loopback_only");
48
- if (!i.policy.namedLink)
49
- return refuse("named_link_off");
59
+ if (i.peer === "named_link" ? !i.policy.namedLink : !i.policy.quickLink)
60
+ return refuse(i.peer === "named_link" ? "named_link_off" : "quick_link_off");
50
61
  }
51
- else if (i.peer === "named_link")
62
+ else if (i.peer === "named_link" || i.peer === "quick_link")
52
63
  return refuse("public_link");
53
64
  if (!s)
54
65
  return refuse("not_session");
@@ -98,8 +109,8 @@ export function confirmAfterBody(arrival, now) {
98
109
  }
99
110
  /**
100
111
  * §10: a receipt's authority as it reads NOW. A web-verified one reads as none, saying why, while the switch is off, once
101
- * the epoch has moved past the one it was granted under, (lan and named_link) while "Only this computer can authorize" is
102
- * on, or (named_link, §0.2) while the named-link option is off.
112
+ * the epoch has moved past the one it was granted under, (every peer but loopback) while "Only this computer can
113
+ * authorize" is on, or (named_link, §0.2; quick_link, §0.3) while that link's option is off.
103
114
  * Platform and none are unchanged. The receiver applies the rule to this, never to the stored value.
104
115
  */
105
116
  export function authorityNow(stored, state) {
@@ -115,6 +126,9 @@ export function authorityNow(stored, state) {
115
126
  // §0.2: the named-link option off — every receipt from a session over it reads as none at once.
116
127
  if (!state.namedLink && stored.session?.peer === "named_link")
117
128
  return down("named_link_off");
129
+ // §0.3: the quick-link option off — likewise for every receipt from a session over the temporary public link.
130
+ if (!state.quickLink && stored.session?.peer === "quick_link")
131
+ return down("quick_link_off");
118
132
  return stored;
119
133
  }
120
134
  /** A Discord or Telegram message or click: its sender, from the platform's own event. */
@@ -143,7 +157,7 @@ export function isHumanAuthority(v) {
143
157
  if (a.kind !== "web-verified" || !actorOk)
144
158
  return false;
145
159
  const s = a.session;
146
- return !!s && typeof s === "object" && typeof s.handle === "string" && !!s.handle && (s.peer === "loopback" || s.peer === "lan" || s.peer === "named_link")
160
+ return !!s && typeof s === "object" && typeof s.handle === "string" && !!s.handle && (s.peer === "loopback" || s.peer === "lan" || s.peer === "named_link" || s.peer === "quick_link")
147
161
  && typeof s.signed_in_at === "string" && typeof s.authorized_at === "string";
148
162
  }
149
163
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"web-authority.js","sourceRoot":"","sources":["../../src/authority/web-authority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-authority.js","sourceRoot":"","sources":["../../src/authority/web-authority.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiDvE,2HAA2H;AAC3H,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAW,CAAC;AAahF,4HAA4H;AAC5H,MAAM,UAAU,kBAAkB,CAAC,GAA0B;IAC3D,MAAM,CAAC,GAAG,GAAG,EAAE,kBAAkB,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,iBAAiB,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;IACrI,qHAAqH;IACrH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI;QAChH,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,SAAS,EAAE,CAAC;AACxE,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAA8C,EAAE,QAAQ,GAAY,kBAAkB;IACvH,OAAO,OAAO,CAAC,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtE,CAAC;AAED,qGAAqG;AACrG,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,CAAU,CAAC;AAEjI,SAAS,eAAe,CAAC,OAA2B;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,OAAO,OAAO,KAAK,KAAK,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAwG;IACtI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACzF,CAAC;AAqBD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAkB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AAEtH,sHAAsH;AACtH,MAAM,UAAU,oBAAoB,CAAC,CAAoB;IACvD,MAAM,MAAM,GAAG,CAAC,OAA4B,EAAsB,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpH,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACpB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,kHAAkH;IAClH,uHAAuH;IACvH,qGAAqG;IACrG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACxJ,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5F,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;IACnF,oHAAoH;IACpH,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpK,4FAA4F;IAC5F,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAClH,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE;YACnF,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE;YACnJ,eAAe,EAAE,CAAC,CAAC,KAAK;SACzB;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B,EAAE,GAAuB;IACnF,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAChH,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IACtK,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,KAAyG;IAC5J,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,UAA8B,EAAkB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IACtJ,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5F,gGAAgG;IAChG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7F,8GAA8G;IAC9G,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAAC,MAA+E,EAAE,KAAa;IAC9H,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO;QACrE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE;QACjH,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,CAAU;IACzC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAK,CAAC,CAAC,eAA0B,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAkB,wCAAwC;IACvG,MAAM,KAAK,GAAG,CAAC,CAAC,KAAuC,CAAC;IACxD,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU;WACpH,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;IAC1E,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC;IACrE,wHAAwH;IACxH,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,CAAC,OAA8C,CAAC;IAC3D,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;WACjL,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+E,EAAE,MAAqB;IACrI,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACrE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACrD,yFAAyF;IACzF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;IACrI,IAAI,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -15,6 +15,14 @@ export declare function museSessionCwd(head: string): string | null;
15
15
  * readers — never on the fleet event loop.
16
16
  */
17
17
  export declare function readFileHeadSync(filePath: string, maxChars: number): string | null;
18
+ export type MusePlaceholderDebugRec = {
19
+ text: string;
20
+ sgr: string;
21
+ };
22
+ export type MusePlaceholderDebug = {
23
+ log: (rec: MusePlaceholderDebugRec) => void;
24
+ logged: Set<string>;
25
+ };
18
26
  /**
19
27
  * #1717: true when the pane shows muse's terminals panel with at least one
20
28
  * running task — the "local work still active" state. Anchored to the last
@@ -36,9 +44,10 @@ export declare function museBackgroundWorkActive(pane: string): boolean;
36
44
  *
37
45
  * Captured live on muse 1.4.2 (tests/fixtures/muse-input-829/). A `❯` row above
38
46
  * an echoed turn in the transcript is never read: the box must end at the
39
- * separator directly above the status bar.
47
+ * separator directly above the status bar. Muse 1.4.12 may paint a faint
48
+ * rotating hint in an empty box (#2520); that is empty, not a draft.
40
49
  */
41
- export declare function museInputBox(pane: string, busy?: RegExp): InputDraft | null;
50
+ export declare function museInputBox(pane: string, busy?: RegExp, debug?: MusePlaceholderDebug): InputDraft | null;
42
51
  /**
43
52
  * True only when `rows` are exactly how muse 1.4.2 draws `text` in a box
44
53
  * `width` columns wide (#829 review). Captured live at 80 columns
@@ -153,6 +162,8 @@ export declare class MuseBackend implements CliBackend {
153
162
  private binaryPath;
154
163
  private readonly sharedXdgConfigHome;
155
164
  private workingDirectory?;
165
+ /** Owner-bound faint-placeholder debug; constructing another MuseBackend must not replace this. */
166
+ private placeholderDebug?;
156
167
  constructor(instanceDir: string);
157
168
  buildCommand(config: CliBackendConfig): string;
158
169
  /** The daemon's persisted session id (written from getSessionId()), for resume. */
@@ -271,6 +282,13 @@ export declare class MuseBackend implements CliBackend {
271
282
  * no saved log`, then exit 1.
272
283
  */
273
284
  resumeMissingPattern(): RegExp;
285
+ /**
286
+ * Production wires the daemon logger; tests inject a spy. Passing nothing
287
+ * clears this backend's hook. "Once" is per unique (text, sgr) on this
288
+ * backend so pane polls do not flood, and another Muse instance cannot
289
+ * steal the logger or reset the once-set.
290
+ */
291
+ setPlaceholderDebug(log?: (rec: MusePlaceholderDebugRec) => void): void;
274
292
  /** The live input box (#829): no rows when empty, null when the bottom of the screen is not muse's layout. */
275
293
  inputDraft(pane: string): InputDraft | null;
276
294
  inputDraftShows(draft: InputDraft, text: string): boolean;