@songsid/agend 2.2.0-beta.9 → 2.2.0

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 (226) hide show
  1. package/README.md +40 -24
  2. package/README.zh-TW.md +40 -24
  3. package/dist/agent-endpoint.js +3 -0
  4. package/dist/agent-endpoint.js.map +1 -1
  5. package/dist/agent-whats-new.js +7 -1
  6. package/dist/agent-whats-new.js.map +1 -1
  7. package/dist/auth-api.d.ts +3 -1
  8. package/dist/auth-api.js +15 -1
  9. package/dist/auth-api.js.map +1 -1
  10. package/dist/backend/antigravity.d.ts +33 -0
  11. package/dist/backend/antigravity.js +126 -18
  12. package/dist/backend/antigravity.js.map +1 -1
  13. package/dist/backend/claude-code.d.ts +3 -0
  14. package/dist/backend/claude-code.js +9 -0
  15. package/dist/backend/claude-code.js.map +1 -1
  16. package/dist/backend/codex-metadata.d.ts +33 -0
  17. package/dist/backend/codex-metadata.js +122 -18
  18. package/dist/backend/codex-metadata.js.map +1 -1
  19. package/dist/backend/codex.d.ts +3 -0
  20. package/dist/backend/codex.js +17 -1
  21. package/dist/backend/codex.js.map +1 -1
  22. package/dist/backend/effort-metadata.d.ts +37 -1
  23. package/dist/backend/effort-metadata.js +86 -15
  24. package/dist/backend/effort-metadata.js.map +1 -1
  25. package/dist/backend/grok.d.ts +3 -0
  26. package/dist/backend/grok.js +9 -0
  27. package/dist/backend/grok.js.map +1 -1
  28. package/dist/backend/kiro.d.ts +3 -1
  29. package/dist/backend/kiro.js +7 -3
  30. package/dist/backend/kiro.js.map +1 -1
  31. package/dist/backend/launch-effort.d.ts +61 -0
  32. package/dist/backend/launch-effort.js +170 -0
  33. package/dist/backend/launch-effort.js.map +1 -0
  34. package/dist/backend/types.d.ts +24 -0
  35. package/dist/backend/types.js +12 -1
  36. package/dist/backend/types.js.map +1 -1
  37. package/dist/backend-command.d.ts +91 -0
  38. package/dist/backend-command.js +122 -0
  39. package/dist/backend-command.js.map +1 -0
  40. package/dist/channel/adapters/discord.d.ts +12 -0
  41. package/dist/channel/adapters/discord.js +49 -2
  42. package/dist/channel/adapters/discord.js.map +1 -1
  43. package/dist/channel/adapters/telegram.d.ts +18 -0
  44. package/dist/channel/adapters/telegram.js +24 -3
  45. package/dist/channel/adapters/telegram.js.map +1 -1
  46. package/dist/channel/mcp-tools.js +2 -0
  47. package/dist/channel/mcp-tools.js.map +1 -1
  48. package/dist/channel/tool-router.d.ts +2 -0
  49. package/dist/channel/tool-router.js +1 -1
  50. package/dist/channel/tool-router.js.map +1 -1
  51. package/dist/channel/types.d.ts +16 -0
  52. package/dist/cli.js +124 -24
  53. package/dist/cli.js.map +1 -1
  54. package/dist/command-table.d.ts +2 -2
  55. package/dist/command-table.js +5 -2
  56. package/dist/command-table.js.map +1 -1
  57. package/dist/compact-watch.d.ts +86 -0
  58. package/dist/compact-watch.js +288 -0
  59. package/dist/compact-watch.js.map +1 -0
  60. package/dist/config-validator.js +39 -0
  61. package/dist/config-validator.js.map +1 -1
  62. package/dist/config.d.ts +1 -0
  63. package/dist/config.js +2 -1
  64. package/dist/config.js.map +1 -1
  65. package/dist/daemon.d.ts +9 -0
  66. package/dist/daemon.js +150 -9
  67. package/dist/daemon.js.map +1 -1
  68. package/dist/delivery-outbox.d.ts +8 -1
  69. package/dist/delivery-outbox.js +6 -2
  70. package/dist/delivery-outbox.js.map +1 -1
  71. package/dist/doctor.js +7 -0
  72. package/dist/doctor.js.map +1 -1
  73. package/dist/fleet-context.d.ts +7 -0
  74. package/dist/fleet-manager.d.ts +158 -9
  75. package/dist/fleet-manager.js +827 -118
  76. package/dist/fleet-manager.js.map +1 -1
  77. package/dist/forged-envelope-scan.d.ts +4 -3
  78. package/dist/forged-envelope-scan.js +4 -3
  79. package/dist/forged-envelope-scan.js.map +1 -1
  80. package/dist/general-knowledge/skills/model-discovery/SKILL.md +4 -1
  81. package/dist/install-lock.d.ts +18 -1
  82. package/dist/install-lock.js +30 -3
  83. package/dist/install-lock.js.map +1 -1
  84. package/dist/instance-avatar.d.ts +5 -4
  85. package/dist/instance-avatar.js +12 -8
  86. package/dist/instance-avatar.js.map +1 -1
  87. package/dist/instructions.js +2 -2
  88. package/dist/instructions.js.map +1 -1
  89. package/dist/kiro-compact-pane.d.ts +38 -0
  90. package/dist/kiro-compact-pane.js +57 -0
  91. package/dist/kiro-compact-pane.js.map +1 -0
  92. package/dist/launchd-handoff.d.ts +43 -0
  93. package/dist/launchd-handoff.js +56 -0
  94. package/dist/launchd-handoff.js.map +1 -0
  95. package/dist/locale.js +202 -30
  96. package/dist/locale.js.map +1 -1
  97. package/dist/log-service.js +10 -2
  98. package/dist/log-service.js.map +1 -1
  99. package/dist/login-shell.d.ts +21 -0
  100. package/dist/login-shell.js +98 -0
  101. package/dist/login-shell.js.map +1 -0
  102. package/dist/outbound-handlers.d.ts +27 -0
  103. package/dist/outbound-handlers.js +120 -36
  104. package/dist/outbound-handlers.js.map +1 -1
  105. package/dist/outbound-schemas.d.ts +12 -0
  106. package/dist/outbound-schemas.js +15 -4
  107. package/dist/outbound-schemas.js.map +1 -1
  108. package/dist/provider-probe.d.ts +29 -0
  109. package/dist/provider-probe.js +198 -2
  110. package/dist/provider-probe.js.map +1 -1
  111. package/dist/public-web-gateway.d.ts +2 -0
  112. package/dist/public-web-gateway.js +11 -1
  113. package/dist/public-web-gateway.js.map +1 -1
  114. package/dist/quickstart-api.d.ts +1 -1
  115. package/dist/quickstart-api.js +8 -6
  116. package/dist/quickstart-api.js.map +1 -1
  117. package/dist/quickstart.d.ts +12 -0
  118. package/dist/quickstart.js +36 -6
  119. package/dist/quickstart.js.map +1 -1
  120. package/dist/reply-buttons-controller.d.ts +86 -5
  121. package/dist/reply-buttons-controller.js +271 -7
  122. package/dist/reply-buttons-controller.js.map +1 -1
  123. package/dist/reply-buttons.d.ts +48 -3
  124. package/dist/reply-buttons.js +105 -10
  125. package/dist/reply-buttons.js.map +1 -1
  126. package/dist/reply-polls.d.ts +85 -0
  127. package/dist/reply-polls.js +154 -0
  128. package/dist/reply-polls.js.map +1 -0
  129. package/dist/restart-guard.d.ts +6 -3
  130. package/dist/restart-guard.js +6 -3
  131. package/dist/restart-guard.js.map +1 -1
  132. package/dist/restart-progress.d.ts +0 -2
  133. package/dist/restart-progress.js +0 -2
  134. package/dist/restart-progress.js.map +1 -1
  135. package/dist/sd-notify.d.ts +22 -1
  136. package/dist/sd-notify.js +63 -10
  137. package/dist/sd-notify.js.map +1 -1
  138. package/dist/service-activation.d.ts +15 -7
  139. package/dist/service-activation.js +42 -26
  140. package/dist/service-activation.js.map +1 -1
  141. package/dist/service-installer.d.ts +24 -0
  142. package/dist/service-installer.js +49 -1
  143. package/dist/service-installer.js.map +1 -1
  144. package/dist/service-plan.d.ts +11 -0
  145. package/dist/service-plan.js +23 -0
  146. package/dist/service-plan.js.map +1 -1
  147. package/dist/systemd-peer-bus.d.ts +95 -0
  148. package/dist/systemd-peer-bus.js +430 -0
  149. package/dist/systemd-peer-bus.js.map +1 -0
  150. package/dist/systemd-runtime.d.ts +27 -1
  151. package/dist/systemd-runtime.js +69 -7
  152. package/dist/systemd-runtime.js.map +1 -1
  153. package/dist/tool-permissions.js +3 -3
  154. package/dist/tool-permissions.js.map +1 -1
  155. package/dist/topic-commands.d.ts +68 -2
  156. package/dist/topic-commands.js +141 -27
  157. package/dist/topic-commands.js.map +1 -1
  158. package/dist/transcript-jsonl.d.ts +7 -2
  159. package/dist/transcript-jsonl.js +13 -7
  160. package/dist/transcript-jsonl.js.map +1 -1
  161. package/dist/transcript-sources.js +6 -1
  162. package/dist/transcript-sources.js.map +1 -1
  163. package/dist/types.d.ts +8 -0
  164. package/dist/ui/chat-commands.js +1 -0
  165. package/dist/ui/chat-render.js +55 -10
  166. package/dist/ui/chat-store.js +69 -5
  167. package/dist/ui/chat-strings.js +28 -16
  168. package/dist/ui/chat-thread.js +132 -14
  169. package/dist/ui/chat-tour.js +17 -14
  170. package/dist/ui/panel-chat.js +16 -10
  171. package/dist/ui/panel-fleet.js +15 -2
  172. package/dist/ui/panel-log.js +4 -4
  173. package/dist/ui/panel-needs.js +10 -7
  174. package/dist/ui/panel-settings.js +58 -7
  175. package/dist/ui/settings-dialogs.js +11 -6
  176. package/dist/ui/settings-model.js +3 -1
  177. package/dist/ui/settings-strings.js +24 -10
  178. package/dist/ui/settings-token.js +7 -0
  179. package/dist/ui/settings-wizard.js +5 -3
  180. package/dist/ui/shared/app-i18n.js +1 -1
  181. package/dist/ui/shared/app-stream.js +4 -1
  182. package/dist/ui/shared/app.css +52 -10
  183. package/dist/ui/shared/header-tools.js +34 -14
  184. package/dist/ui/shared/instance-switch.js +5 -2
  185. package/dist/ui/shared/panel-view.js +15 -4
  186. package/dist/ui/shared/signin.js +15 -9
  187. package/dist/ui/shared/ui-icons.js +1 -0
  188. package/dist/ui/shared/view-strings.js +10 -2
  189. package/dist/ui/signin.html +8 -3
  190. package/dist/update-check.d.ts +31 -0
  191. package/dist/update-check.js +47 -0
  192. package/dist/update-check.js.map +1 -1
  193. package/dist/update-launch.d.ts +48 -1
  194. package/dist/update-launch.js +159 -5
  195. package/dist/update-launch.js.map +1 -1
  196. package/dist/usage/providers.d.ts +28 -8
  197. package/dist/usage/providers.js +96 -41
  198. package/dist/usage/providers.js.map +1 -1
  199. package/dist/view-api.js +26 -9
  200. package/dist/view-api.js.map +1 -1
  201. package/dist/web-api.d.ts +44 -2
  202. package/dist/web-api.js +265 -57
  203. package/dist/web-api.js.map +1 -1
  204. package/dist/web-chat-history.d.ts +26 -1
  205. package/dist/web-chat-history.js +47 -8
  206. package/dist/web-chat-history.js.map +1 -1
  207. package/dist/web-commands.d.ts +39 -3
  208. package/dist/web-commands.js +22 -5
  209. package/dist/web-commands.js.map +1 -1
  210. package/dist/web-login.d.ts +14 -0
  211. package/dist/web-login.js +4 -2
  212. package/dist/web-login.js.map +1 -1
  213. package/dist/web-prefs.d.ts +18 -0
  214. package/dist/web-prefs.js +36 -4
  215. package/dist/web-prefs.js.map +1 -1
  216. package/dist/web-profile.d.ts +32 -0
  217. package/dist/web-profile.js +132 -0
  218. package/dist/web-profile.js.map +1 -0
  219. package/dist/web-session.d.ts +14 -0
  220. package/dist/web-session.js +10 -0
  221. package/dist/web-session.js.map +1 -1
  222. package/dist/web-upload.d.ts +119 -4
  223. package/dist/web-upload.js +252 -39
  224. package/dist/web-upload.js.map +1 -1
  225. package/launcher/install-admission.cjs +61 -6
  226. package/package.json +3 -3
@@ -6,8 +6,9 @@
6
6
  * OWN kiro
7
7
  * transcript for fleet-envelope shapes (`[from:<instance>] … (message_id:
8
8
  * xmsg-…)`) and check each message_id against the durable delivery record
9
- * (#856's `delivery_status` message_id selector). An id nobody delivered is
10
- * not a transport glitch — the receiver's model fabricated the turn.
9
+ * (#856's `delivery_status` message_id selector). A missing retained record
10
+ * triggers a verification warning; retention expiry also makes a real message
11
+ * unverifiable, so this is not proof that the receiver fabricated the turn.
11
12
  *
12
13
  * Only kiro has a reader here: its conversation store
13
14
  * (`~/.local/share/kiro-cli/data.sqlite3`, conversations_v2) is on disk.
@@ -60,7 +61,7 @@ export declare function readKiroAssistantTexts(workingDirectory: string, kiroDbP
60
61
  export declare function verifyEnvelopeCandidates(outboxDbPath: string, messageIds: string[]): Map<string, CandidateVerdict>;
61
62
  /**
62
63
  * The exact correction to inject into the instance (send_to_instance or a
63
- * mid-turn steer): the message it acted on was never fleet-delivered.
64
+ * mid-turn steer): no retained row verifies the message. An expired row is not proof of non-delivery.
64
65
  */
65
66
  export declare function formatForgedEnvelopeWarning(instanceName: string, finding: EnvelopeCandidate): string;
66
67
  export type KiroForgedScanStatus = "clean" | "forged-envelopes" | "no-conversation" | "unreadable-store" | "partially-unverified";
@@ -6,8 +6,9 @@
6
6
  * OWN kiro
7
7
  * transcript for fleet-envelope shapes (`[from:<instance>] … (message_id:
8
8
  * xmsg-…)`) and check each message_id against the durable delivery record
9
- * (#856's `delivery_status` message_id selector). An id nobody delivered is
10
- * not a transport glitch — the receiver's model fabricated the turn.
9
+ * (#856's `delivery_status` message_id selector). A missing retained record
10
+ * triggers a verification warning; retention expiry also makes a real message
11
+ * unverifiable, so this is not proof that the receiver fabricated the turn.
11
12
  *
12
13
  * Only kiro has a reader here: its conversation store
13
14
  * (`~/.local/share/kiro-cli/data.sqlite3`, conversations_v2) is on disk.
@@ -141,7 +142,7 @@ export function verifyEnvelopeCandidates(outboxDbPath, messageIds) {
141
142
  }
142
143
  /**
143
144
  * The exact correction to inject into the instance (send_to_instance or a
144
- * mid-turn steer): the message it acted on was never fleet-delivered.
145
+ * mid-turn steer): no retained row verifies the message. An expired row is not proof of non-delivery.
145
146
  */
146
147
  export function formatForgedEnvelopeWarning(instanceName, finding) {
147
148
  return t("delivery.forged_warning", finding.fromInstance, finding.messageId);
@@ -1 +1 @@
1
- {"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,10 @@ Underlying commands, if you need them by hand:
67
67
  **antigravity: keep the effort suffix.** The suffix is part of the selectable id,
68
68
  not decoration — the same model at two effort levels is two different ids. Take
69
69
  the id from `list_models` (e.g. `gemini-3.6-flash-high`), not the display label
70
- the TUI shows.
70
+ the TUI shows. With an `effort` set, AgEnD launches that level's id instead
71
+ (`gemini-3.8-flash-medium` + `high` runs `gemini-3.8-flash-high`). A level the model
72
+ lacks launches the configured id without it. A name agy does not list does not fail:
73
+ agy starts on **another model**, with a warning in its pane.
71
74
 
72
75
  **Pass-through: AgEnD does not gate model names.** An unknown id is warned about,
73
76
  then handed to the CLI anyway. So a name missing from `list_models` may still be
@@ -4,6 +4,13 @@ export interface InstallLockRecord {
4
4
  pid: number;
5
5
  /** The holder's start time as `ps -o lstart=` prints it: with the pid, the process's identity. */
6
6
  processStart: string;
7
+ /**
8
+ * #1947 (Linux): the holder's start in clock ticks since boot (/proc/<pid>/stat field 22), immune to a clock step.
9
+ * Absent from every 2.2 beta's lock and on macOS: those are judged by `processStart`, within a tolerance.
10
+ */
11
+ startTicks?: string;
12
+ /** #1947: the boot those ticks count from (/proc/sys/kernel/random/boot_id); present exactly when startTicks is. */
13
+ bootId?: string;
7
14
  prefix: string;
8
15
  targetSpec: string;
9
16
  agendHome: string;
@@ -14,6 +21,10 @@ export interface InstallLockDeps {
14
21
  pid: number;
15
22
  /** `ps -o lstart= -p <pid>`, trimmed; null when the process does not exist or cannot be read. */
16
23
  processStart(pid: number): string | null;
24
+ /** #1947: /proc/<pid>/stat start ticks (Linux), or null; omitted: none recorded and the lstart text decides. */
25
+ startTicks?(pid: number): string | null;
26
+ /** #1947: this boot's id, or null; omitted with startTicks. */
27
+ bootId?(): string | null;
17
28
  /** Does the pid exist (false only for a definite "no such process")? Default: process.kill(pid, 0). */
18
29
  exists?(pid: number): boolean;
19
30
  /** Test seams (another updater's turn): after a lock was judged stale; after it was moved aside. */
@@ -42,7 +53,13 @@ export declare function parseInstallLock(text: string): InstallLockRecord | null
42
53
  export declare function holderState(record: {
43
54
  pid: number;
44
55
  processStart: string;
45
- }, deps: Pick<InstallLockDeps, "processStart" | "exists">): "live" | "stale" | "unknown";
56
+ startTicks?: string;
57
+ bootId?: string;
58
+ }, deps: Pick<InstallLockDeps, "processStart" | "exists" | "startTicks" | "bootId">): "live" | "stale" | "unknown";
59
+ /** #1947: how far two lstart texts of one process may differ (a clock step between the two reads); 1 s resolution. */
60
+ export declare const START_TOLERANCE_MS = 2000;
61
+ /** The same start, as `ps -o lstart=` printed it (LC_ALL=C, TZ=UTC): identical, or both times at most 2 s apart. */
62
+ export declare function sameStartText(recorded: string, seen: string): boolean;
46
63
  export declare function acquireInstallLock(prefix: string, target: {
47
64
  spec: string;
48
65
  agendHome: string;
@@ -29,6 +29,8 @@ export function parseInstallLock(text) {
29
29
  return r && Number.isSafeInteger(r.pid) && r.pid > 0 && typeof r.processStart === "string" && r.processStart
30
30
  && typeof r.prefix === "string" && typeof r.token === "string" && /^[0-9a-f]{32,}$/.test(r.token)
31
31
  && typeof r.targetSpec === "string" && typeof r.agendHome === "string" && typeof r.createdAt === "string"
32
+ && ((r.startTicks === undefined && r.bootId === undefined)
33
+ || (typeof r.startTicks === "string" && /^\d+$/.test(r.startTicks) && typeof r.bootId === "string" && /^[0-9a-f-]{36}$/.test(r.bootId)))
32
34
  ? r : null;
33
35
  }
34
36
  const pidExists = (pid) => {
@@ -47,10 +49,33 @@ const pidExists = (pid) => {
47
49
  export function holderState(record, deps) {
48
50
  if (!(deps.exists ?? pidExists)(record.pid))
49
51
  return "stale";
52
+ // #1947: a lock with start ticks is judged by them and its boot, never by the wall clock (another boot → stale; the
53
+ // same ticks → live; unreadable → unknown); otherwise the lstart text, within a tolerance. The postinstall's rule
54
+ // (launcher/install-admission.cjs holderState).
55
+ if (record.startTicks !== undefined) {
56
+ const boot = deps.bootId?.() ?? null;
57
+ if (boot === null)
58
+ return "unknown";
59
+ if (boot !== record.bootId)
60
+ return "stale";
61
+ const ticks = deps.startTicks?.(record.pid) ?? null;
62
+ if (ticks === null)
63
+ return "unknown";
64
+ return ticks === record.startTicks ? "live" : "stale";
65
+ }
50
66
  const seen = deps.processStart(record.pid);
51
67
  if (seen === null)
52
68
  return "unknown";
53
- return seen === record.processStart ? "live" : "stale";
69
+ return sameStartText(record.processStart, seen) ? "live" : "stale";
70
+ }
71
+ /** #1947: how far two lstart texts of one process may differ (a clock step between the two reads); 1 s resolution. */
72
+ export const START_TOLERANCE_MS = 2_000;
73
+ /** The same start, as `ps -o lstart=` printed it (LC_ALL=C, TZ=UTC): identical, or both times at most 2 s apart. */
74
+ export function sameStartText(recorded, seen) {
75
+ if (recorded === seen)
76
+ return true;
77
+ const a = Date.parse(`${recorded} UTC`), b = Date.parse(`${seen} UTC`);
78
+ return Number.isFinite(a) && Number.isFinite(b) && Math.abs(a - b) <= START_TOLERANCE_MS;
54
79
  }
55
80
  const readOrNull = (path) => { try {
56
81
  return readFileSync(path, "utf8");
@@ -70,9 +95,11 @@ export function acquireInstallLock(prefix, target, deps) {
70
95
  const ownStart = deps.processStart(deps.pid);
71
96
  if (!ownStart)
72
97
  return { ok: false, path, reason: "this process's own start time cannot be read, so its lock could not be told from a stale one" };
98
+ const ownTicks = deps.startTicks?.(deps.pid) ?? null;
99
+ const ownBoot = deps.bootId?.() ?? null;
73
100
  const record = {
74
- pid: deps.pid, processStart: ownStart, prefix: canonical, targetSpec: target.spec, agendHome: target.agendHome,
75
- token: deps.newToken(), createdAt: deps.now().toISOString(),
101
+ pid: deps.pid, processStart: ownStart, ...(ownTicks !== null && ownBoot !== null ? { startTicks: ownTicks, bootId: ownBoot } : {}), prefix: canonical,
102
+ targetSpec: target.spec, agendHome: target.agendHome, token: deps.newToken(), createdAt: deps.now().toISOString(),
76
103
  };
77
104
  const serialized = JSON.stringify(record) + "\n";
78
105
  const claim = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"install-lock.js","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AA+BvD,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACxD,MAAM,CAAC,GAAG,KAA0C,CAAC;IACrD,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,GAAc,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY;WACnH,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;WAC9F,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QACzG,CAAC,CAAC,CAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAW,EAAE;IACzC,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IAAC,CAAC;AACpH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAA6C,EAAE,IAAsD;IAC/H,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAiB,EAAE,GAAG,IAAI,CAAC;IAAC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC;IAAC,OAAO,IAAI,CAAC;AAAC,CAAC,CAAC,CAAC,CAAC;AAE1H,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAA2C,EAAE,IAAqB;IACnH,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,kBAAkB,MAAM,iBAAiB,EAAE,CAAC;IAAC,CAAC;IACnK,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,8FAA8F,EAAE,CAAC;IAClJ,MAAM,MAAM,GAAsB;QAChC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS;QAC9G,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KAC5D,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,GAAY,EAAE;QAC1B,IAAI,CAAC;YAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAClF,OAAO,GAAG,EAAE,CAAC;YAAC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAAC,MAAM,GAAG,CAAC;QAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,IAAI,GAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;IAExH,IAAI,CAAC;QACH,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,cAAc,IAAI,4BAA4B,EAAE,CAAC;IACjJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,yFAAyF,EAAE,CAAC;IACnK,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,uCAAuC,SAAS,SAAS,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,UAAU,QAAQ,MAAM,CAAC,SAAS,0BAA0B,EAAE,CAAC;IAC7L,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,IAAI,SAAS,MAAM,CAAC,GAAG,4FAA4F,EAAE,CAAC;IAC5L,CAAC;IAED,sHAAsH;IACtH,gHAAgH;IAChH,MAAM,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC;IACjC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAC1B,IAAI,CAAC;QAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IACvE,OAAO,GAAG,EAAE,CAAC;QACX,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,MAAM,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1K,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,+GAA+G;QAC/G,OAAO,UAAU,KAAK,MAAM;YAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kDAAkD,SAAS,SAAS,EAAE;YACnG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,MAAM,yBAAyB,KAAK,EAAE,GAAG,IAAI,SAAS,qDAAqD,EAAE,CAAC;IACnK,CAAC;IACD,IAAI,CAAC;QACH,iHAAiH;QACjH,2FAA2F;QAC3F,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QACxH,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QAAC,CAAC;QACpI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,oHAAoH;YACpH,IAAI,CAAC;gBAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,oEAAoE,KAAK,GAAG,CAAC,CAAC;YAAC,CAAC;YACnJ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,GAAG,4BAA4B,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC9G,IAAI,CAAC;YACH,IAAI,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;QAClH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;IAC3F,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,SAAS,aAAa,CAAC,IAAY,EAAE,UAAkB,EAAE,IAA0C;IACjG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO;IAC5C,MAAM,KAAK,GAAG,GAAG,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,CAAC;QAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;IAClD,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,yEAAyE;IACzE,IAAI,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,8DAA8D,KAAK,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAClI,IAAI,CAAC;QAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"install-lock.js","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AA0CvD,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACxD,MAAM,CAAC,GAAG,KAA0C,CAAC;IACrD,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,GAAc,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY;WACnH,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;WAC9F,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;WACtG,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;eACrD,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1I,CAAC,CAAC,CAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAW,EAAE;IACzC,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IAAC,CAAC;AACpH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmF,EAAE,IAAgF;IAC/L,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5D,oHAAoH;IACpH,kHAAkH;IAClH,gDAAgD;IAChD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;QACrC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACpC,IAAI,IAAI,KAAK,MAAM,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACrC,OAAO,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACrE,CAAC;AAED,sHAAsH;AACtH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,oHAAoH;AACpH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAiB,EAAE,GAAG,IAAI,CAAC;IAAC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC;IAAC,OAAO,IAAI,CAAC;AAAC,CAAC,CAAC,CAAC,CAAC;AAE1H,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAA2C,EAAE,IAAqB;IACnH,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,kBAAkB,MAAM,iBAAiB,EAAE,CAAC;IAAC,CAAC;IACnK,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,8FAA8F,EAAE,CAAC;IAClJ,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;IACxC,MAAM,MAAM,GAAsB;QAChC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS;QACrJ,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KAClH,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,GAAY,EAAE;QAC1B,IAAI,CAAC;YAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAClF,OAAO,GAAG,EAAE,CAAC;YAAC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAAC,MAAM,GAAG,CAAC;QAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,IAAI,GAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;IAExH,IAAI,CAAC;QACH,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,cAAc,IAAI,4BAA4B,EAAE,CAAC;IACjJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,yFAAyF,EAAE,CAAC;IACnK,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,uCAAuC,SAAS,SAAS,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,UAAU,QAAQ,MAAM,CAAC,SAAS,0BAA0B,EAAE,CAAC;IAC7L,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,IAAI,SAAS,MAAM,CAAC,GAAG,4FAA4F,EAAE,CAAC;IAC5L,CAAC;IAED,sHAAsH;IACtH,gHAAgH;IAChH,MAAM,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC;IACjC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;IAC1B,IAAI,CAAC;QAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IACvE,OAAO,GAAG,EAAE,CAAC;QACX,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,MAAM,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1K,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,+GAA+G;QAC/G,OAAO,UAAU,KAAK,MAAM;YAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kDAAkD,SAAS,SAAS,EAAE;YACnG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,MAAM,yBAAyB,KAAK,EAAE,GAAG,IAAI,SAAS,qDAAqD,EAAE,CAAC;IACnK,CAAC;IACD,IAAI,CAAC;QACH,iHAAiH;QACjH,2FAA2F;QAC3F,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QACxH,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QAAC,CAAC;QACpI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,oHAAoH;YACpH,IAAI,CAAC;gBAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,oEAAoE,KAAK,GAAG,CAAC,CAAC;YAAC,CAAC;YACnJ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,GAAG,4BAA4B,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC9G,IAAI,CAAC;YACH,IAAI,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,IAAI,0BAA2B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC;QAClH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,SAAS,SAAS,EAAE,CAAC;IAC3F,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,SAAS,aAAa,CAAC,IAAY,EAAE,UAAkB,EAAE,IAA0C;IACjG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO;IAC5C,MAAM,KAAK,GAAG,GAAG,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,CAAC;QAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;IAClD,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,yEAAyE;IACzE,IAAI,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,8DAA8D,KAAK,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAClI,IAAI,CAAC;QAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxD,CAAC"}
@@ -19,7 +19,7 @@ export declare function avatarFor(input: {
19
19
  displayName?: string | null;
20
20
  /** The profile picture's version, when one is uploaded (step 0). */
21
21
  profileVersion?: string | null;
22
- /** The bot's avatar: its connection id and cached version, when the instance has its own bot and the avatar is on disk. */
22
+ /** The bot's avatar (step 1 or 2): its connection id and cached version, when the avatar is on disk. */
23
23
  bot?: {
24
24
  connection: string;
25
25
  version: string;
@@ -28,9 +28,10 @@ export declare function avatarFor(input: {
28
28
  personaEmoji?: unknown;
29
29
  }): AvatarDescriptor;
30
30
  /**
31
- * The connections that are ONE instance's own bot: not the primary (that is the fleet's shared bot), and answering for
32
- * exactly one instance or ClassicBot room. `assignments` is every instance and room with the connection it uses.
31
+ * The connections that are ONE instance's own bot: answering for exactly one instance or ClassicBot room. The primary
32
+ * counts too when one instance is all it serves (a fleet that keeps it for General only — #1630 follow-up); shared by
33
+ * more, it is nobody's own. `assignments` is every instance and room with the connection it uses.
33
34
  */
34
- export declare function ownBotConnections(primary: string | undefined, assignments: ReadonlyArray<readonly [instance: string, connection: string | undefined]>): Map<string, string>;
35
+ export declare function ownBotConnections(assignments: ReadonlyArray<readonly [instance: string, connection: string | undefined]>): Map<string, string>;
35
36
  /** A Discord role colour as the page may use it: `#rrggbb`, never black (Discord's "no colour"). */
36
37
  export declare function accentColor(raw: unknown): string | null;
@@ -2,11 +2,14 @@
2
2
  * #1630 (design: the comment on #1630): what stands for an instance in the web app — decided here, on the server,
3
3
  * once; the page only draws it. In order:
4
4
  * 0. the picture uploaded for it in View (its profile avatar);
5
- * 1. its own bot's avatar — only when it has a bot of its own: an instance on the shared bot skips this, the same
6
- * face for everyone tells nobody apart; so does a bot with no avatar set (a default avatar says nothing);
7
- * 2. its persona emoji (`status_emojis.delivered`, what set_persona_emoji sets): unicode as text, a Discord server
5
+ * 1. its own bot's avatar, when it has a bot of its own (a persona bot, or the primary when it serves it alone);
6
+ * 2. (#1867) else the avatar of the bot it speaks through on Telegram/Discord — the General (primary) bot, or a bot it
7
+ * shares — so the web shows the face the chat shows; with no connection of its own (web-only), the primary's.
8
+ * A bot with no avatar set falls through at 1 and 2 (a default avatar says nothing);
9
+ * 3. its persona emoji (`status_emojis.delivered`, what set_persona_emoji sets): unicode as text, a Discord server
8
10
  * emoji through the emoji route (a Telegram custom emoji has no picture here and falls through);
9
- * 3. the first character of its display name, or of its name.
11
+ * 4. the first character of its display name, or of its name.
12
+ * The accent ring (a Discord role colour) goes with an own bot's face only: a shared bot's would ring everyone alike.
10
13
  * Images are same-origin `/ui/img/…` URLs only; the version makes a changed picture a new URL.
11
14
  */
12
15
  import { normalizeEmoji } from "./status-emojis.js";
@@ -30,10 +33,11 @@ export function avatarFor(input) {
30
33
  return { kind: "initial", text: firstCharacter(input.displayName || input.name) };
31
34
  }
32
35
  /**
33
- * The connections that are ONE instance's own bot: not the primary (that is the fleet's shared bot), and answering for
34
- * exactly one instance or ClassicBot room. `assignments` is every instance and room with the connection it uses.
36
+ * The connections that are ONE instance's own bot: answering for exactly one instance or ClassicBot room. The primary
37
+ * counts too when one instance is all it serves (a fleet that keeps it for General only — #1630 follow-up); shared by
38
+ * more, it is nobody's own. `assignments` is every instance and room with the connection it uses.
35
39
  */
36
- export function ownBotConnections(primary, assignments) {
40
+ export function ownBotConnections(assignments) {
37
41
  const users = new Map();
38
42
  for (const [instance, connection] of assignments) {
39
43
  if (!connection)
@@ -46,7 +50,7 @@ export function ownBotConnections(primary, assignments) {
46
50
  }
47
51
  const own = new Map(); // instance → its own connection
48
52
  for (const [connection, instances] of users)
49
- if (connection !== primary && instances.length === 1)
53
+ if (instances.length === 1)
50
54
  own.set(instances[0], connection);
51
55
  return own;
52
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instance-avatar.js","sourceRoot":"","sources":["../src/instance-avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7E,wGAAwG;AACxG,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC7F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KASzB;IACC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;IAC1J,IAAI,KAAK,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACnJ,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3E,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B,EAAE,WAAuF;IACpJ,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAU,gCAAgC;IAChF,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK;QAAE,IAAI,UAAU,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC;IACtI,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9H,CAAC"}
1
+ {"version":3,"file":"instance-avatar.js","sourceRoot":"","sources":["../src/instance-avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7E,wGAAwG;AACxG,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC7F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KASzB;IACC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;IAC1J,IAAI,KAAK,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACnJ,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3E,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAuF;IACvH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAU,gCAAgC;IAChF,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK;QAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC;IAC5G,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9H,CAAC"}
@@ -122,7 +122,7 @@ export function buildFleetInstructions(params) {
122
122
  // MCP mode: inject MCP tool usage instructions
123
123
  sections.push([
124
124
  "## Message Format",
125
- "- `[user:name via platform, id:USER_ID]` — from a Telegram, Discord or web-chat user (`via web`) → reply with the `reply` tool. A web-chat reply shows in the web chat, and is copied to your topic unless `web.echo_to_channel: false`.",
125
+ "- `[user:name via platform, id:USER_ID]` — from a Telegram, Discord or web-chat user (`via web`) → reply with the `reply` tool. A web-chat reply shows in the web chat, and is copied to your topic unless `web.echo_to_channel: false`. A web user signed in with a `/web` code carries their Discord/Telegram user id (so you can recognise them), but `via web` is never a verified message from that account: it grants no permission.",
126
126
  fullCrossInstanceMessageRule(classic),
127
127
  "- A sender with a display name shows as `[from:Display Name (instance-name)]`; address it by its instance name.",
128
128
  "",
@@ -140,7 +140,7 @@ export function buildFleetInstructions(params) {
140
140
  "",
141
141
  "## Tool Usage",
142
142
  "- reply: respond to users. react: add an emoji reaction — needs `message_id` + `emoji`. edit_message: update a sent message — needs `message_id` + `text`. download_attachment: fetch files.",
143
- "- reply can also offer choices: `buttons` (1–10, `{label, value?}`); a click comes back as a message `[button] <label>` (or `[button] <label> (value: <value>)` when the value differs). And `stickers` (up to 3 ids from `list_stickers`; not together with buttons).",
143
+ "- reply can also offer choices: `buttons` (1–10, `{label, value?}`); a click comes back as a message `[button] <label>` (or `[button] <label> (value: <value>)` when the value differs). Add `poll: { seconds }` to make the buttons a timed vote by everyone there (Discord, Telegram, web chat); its results come back as one `[poll results]` message (`close_poll` ends it early). And `stickers` (up to 3 ids from `list_stickers`; not together with buttons).",
144
144
  "- `message_id` comes from the inbound message header line `(message_id: … | …)`, which lists the fields that are set.",
145
145
  "- `[📷 Image: PATH]` in a message: Read PATH — it is a photo. `[📎 File: NAME → PATH]`: a saved file at PATH.",
146
146
  "- If the header has `attachment_file_id`, call download_attachment then Read the returned path.",
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Board 907c7899: whether a /compact AgEnD wrote into a kiro instance's own pane has ended, read from that pane.
3
+ * kiro records a compaction where AgEnD cannot tie it to the instance (a session log or store row shared with other
4
+ * kiro sessions in the directory); its own pane can only be this instance's. Verified on kiro-cli 2.30.0
5
+ * (tests/fixtures/kiro-2.30.0-compact-pane):
6
+ *
7
+ * - **Classic (`--legacy-ui`, V1).** The command is echoed (`2% > /compact`), a spinner says `Creating summary...`, and a
8
+ * compaction ends with kiro's own line "The conversation history has been replaced with this summary." An empty
9
+ * conversation answers "Conversation too short to compact." at once; Ctrl-C stops it and the prompt (`1% >`) comes
10
+ * back with nothing said. Either way nothing was compacted.
11
+ * - **TUI (`--tui`, V2).** The command is not echoed. `• Compacting conversation...` shows while it runs and is replaced
12
+ * by the summary when it ends; "• Conversation too short to compact." shows for about ten seconds, then goes. Esc
13
+ * and Ctrl-C do not stop it (each such compaction still finished). A failure other than "too short" was not seen,
14
+ * so "done" here means the running line came and went — and only on a screen read as kiro's: no piece of that line
15
+ * anywhere in the look (a narrower pane wraps it, #1925 review) and the idle composer in view. Not "fewer than
16
+ * before": a piece from before can leave the bounded look while this one's stays, so a piece in view keeps it
17
+ * unknown — even an old one, until it scrolls away or the deadline ends the watch.
18
+ * - **Anything else** (kiro V3, another layout) is not read: no follower is made for it.
19
+ *
20
+ * The follower starts from the pane just before the command's own write (the daemon holds its paste lock, so no other
21
+ * input lands in between) and counts only what appears after it: an older /compact's lines never count. What can't be
22
+ * told stays unknown (null); the caller's deadline then ends it — a compaction may be missed, never invented.
23
+ */
24
+ export type KiroCompactUi = "legacy" | "tui";
25
+ export type KiroCompactOutcome = "done" | "not_compacted";
26
+ /** Lines of history each look reads: a summary is tens of lines; an older /compact this far up is never ours. */
27
+ export declare const KIRO_COMPACT_PANE_LINES = 1000;
28
+ export declare class KiroCompactPaneFollower {
29
+ readonly ui: KiroCompactUi;
30
+ private readonly echoes;
31
+ private readonly running;
32
+ private readonly tooShort;
33
+ private seenRunning;
34
+ /** `before`: the pane (with KIRO_COMPACT_PANE_LINES of history) just before the command was written. */
35
+ constructor(ui: KiroCompactUi, before: string);
36
+ /** One look at the pane (same history depth): how the command ended, or null while it runs or can't be told. */
37
+ look(pane: string): KiroCompactOutcome | null;
38
+ }
@@ -0,0 +1,57 @@
1
+ /** Lines of history each look reads: a summary is tens of lines; an older /compact this far up is never ours. */
2
+ export const KIRO_COMPACT_PANE_LINES = 1000;
3
+ const CLASSIC_ECHO = /^\s*\d+% > \/compact\s*$/;
4
+ const CLASSIC_PROMPT = /^\s*\d+% >/;
5
+ const CLASSIC_DONE = "The conversation history has been replaced with this summary.";
6
+ const TOO_SHORT = "Conversation too short to compact.";
7
+ const TUI_RUNNING = /^\s*•\s+Compacting conversation\.\.\.\s*$/;
8
+ const TUI_TOO_SHORT = /^\s*•\s+Conversation too short to compact\.\s*$/;
9
+ /** Any piece of the running line: its start, or its wrapped end on a row of its own. */
10
+ const TUI_RUNNING_PART = /^\s*(?:•\s+)?Compacting\b|^\s*conversation\.\.\.\s*$/;
11
+ /** The TUI's empty composer: the screen is kiro's own, not a dialog or another layout over it. */
12
+ const TUI_IDLE_COMPOSER = /ask a question or describe a task/;
13
+ const lines = (pane) => pane.split("\n");
14
+ const count = (all, re) => all.reduce((n, l) => n + (re.test(l) ? 1 : 0), 0);
15
+ export class KiroCompactPaneFollower {
16
+ ui;
17
+ echoes;
18
+ running;
19
+ tooShort;
20
+ seenRunning = false;
21
+ /** `before`: the pane (with KIRO_COMPACT_PANE_LINES of history) just before the command was written. */
22
+ constructor(ui, before) {
23
+ this.ui = ui;
24
+ const all = lines(before);
25
+ this.echoes = count(all, CLASSIC_ECHO);
26
+ this.running = count(all, TUI_RUNNING);
27
+ this.tooShort = count(all, TUI_TOO_SHORT);
28
+ }
29
+ /** One look at the pane (same history depth): how the command ended, or null while it runs or can't be told. */
30
+ look(pane) {
31
+ const all = lines(pane);
32
+ if (this.ui === "legacy") {
33
+ if (count(all, CLASSIC_ECHO) <= this.echoes)
34
+ return null; // ours is not on the pane (yet)
35
+ let at = all.length - 1;
36
+ while (at >= 0 && !CLASSIC_ECHO.test(all[at]))
37
+ at--;
38
+ const after = all.slice(at + 1).map(l => l.trim());
39
+ if (after.includes(CLASSIC_DONE))
40
+ return "done";
41
+ if (after.includes(TOO_SHORT))
42
+ return "not_compacted";
43
+ return after.some(l => CLASSIC_PROMPT.test(l)) ? "not_compacted" : null; // the prompt is back with nothing said
44
+ }
45
+ if (count(all, TUI_TOO_SHORT) > this.tooShort)
46
+ return "not_compacted";
47
+ const running = count(all, TUI_RUNNING) > this.running;
48
+ if (running) {
49
+ this.seenRunning = true;
50
+ return null;
51
+ }
52
+ if (!this.seenRunning || all.some(l => TUI_RUNNING_PART.test(l)))
53
+ return null; // may still be running, wrapped
54
+ return all.some(l => TUI_IDLE_COMPOSER.test(l)) ? "done" : null;
55
+ }
56
+ }
57
+ //# sourceMappingURL=kiro-compact-pane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro-compact-pane.js","sourceRoot":"","sources":["../src/kiro-compact-pane.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /** Set on the detached copy: it does the work itself (never hands off again). */
2
+ export declare const HANDED_OFF_ENV = "AGEND_LAUNCHD_HANDOFF";
3
+ export declare const HANDOFF_LOG = "service-activation.log";
4
+ /** A fleet agent's session (AGEND_INSTANCE_NAME, inherited by everything it runs), and not already the copy. */
5
+ export declare function shouldHandOff(env: NodeJS.ProcessEnv): boolean;
6
+ /** The part of a ChildProcess the hand-off uses: launch success and failure arrive as events (spawn / error). */
7
+ export interface SpawnedChild {
8
+ once(event: "spawn", listener: () => void): unknown;
9
+ once(event: "error", listener: (err: Error) => void): unknown;
10
+ unref(): void;
11
+ }
12
+ export interface HandOffDeps {
13
+ open(path: string): number;
14
+ write(fd: number, text: string): void;
15
+ close(fd: number): void;
16
+ spawn(command: string, args: string[], options: {
17
+ detached: true;
18
+ stdio: ["ignore", number, number];
19
+ env: NodeJS.ProcessEnv;
20
+ }): SpawnedChild;
21
+ now(): Date;
22
+ }
23
+ /**
24
+ * Start the detached copy of `self` (this CLI, these arguments). It is handed off only once it has started (the `spawn`
25
+ * event); a launch that fails (`error`: ENOENT, EAGAIN …) comes back as a reason, and the caller then goes on itself.
26
+ * This command was already allowed through the gate, so the copy carries an origin of its own: the confirmation an
27
+ * agent gave (or the updater's origin) does not have to be given twice.
28
+ */
29
+ export declare function handOff(o: {
30
+ agendHome: string;
31
+ self: {
32
+ command: string;
33
+ args: string[];
34
+ };
35
+ env: NodeJS.ProcessEnv;
36
+ action: string;
37
+ }, deps: HandOffDeps): Promise<{
38
+ ok: true;
39
+ log: string;
40
+ } | {
41
+ ok: false;
42
+ reason: string;
43
+ }>;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * #1871: on launchd, an activation takes two steps from the client: `launchctl bootout`, then `bootstrap`. The bootout
3
+ * stops the fleet, and the fleet's stop kills every agent's CLI. So a command run in an agent's pane dies between the
4
+ * two steps: the job stays unloaded (the fleet is down), its plan stays pending, and nobody is left to say so.
5
+ *
6
+ * Run from an agent session, such a command hands itself to a detached copy instead. The copy runs in its own session,
7
+ * as chat /update does, so it outlives the stop. Its output goes to a log in the AgEnD home.
8
+ */
9
+ import { join } from "node:path";
10
+ import { ORIGIN_ENV } from "./fleet-control-audit.js";
11
+ /** Set on the detached copy: it does the work itself (never hands off again). */
12
+ export const HANDED_OFF_ENV = "AGEND_LAUNCHD_HANDOFF";
13
+ export const HANDOFF_LOG = "service-activation.log";
14
+ /** A fleet agent's session (AGEND_INSTANCE_NAME, inherited by everything it runs), and not already the copy. */
15
+ export function shouldHandOff(env) {
16
+ return !!(env.AGEND_INSTANCE_NAME ?? "").trim() && env[HANDED_OFF_ENV] !== "1";
17
+ }
18
+ /**
19
+ * Start the detached copy of `self` (this CLI, these arguments). It is handed off only once it has started (the `spawn`
20
+ * event); a launch that fails (`error`: ENOENT, EAGAIN …) comes back as a reason, and the caller then goes on itself.
21
+ * This command was already allowed through the gate, so the copy carries an origin of its own: the confirmation an
22
+ * agent gave (or the updater's origin) does not have to be given twice.
23
+ */
24
+ export async function handOff(o, deps) {
25
+ const log = join(o.agendHome, HANDOFF_LOG);
26
+ let fd;
27
+ try {
28
+ fd = deps.open(log);
29
+ }
30
+ catch (err) {
31
+ return { ok: false, reason: `cannot open ${log}: ${err.message}` };
32
+ }
33
+ try {
34
+ deps.write(fd, `\n[${deps.now().toISOString()}] agend ${o.action}, handed off from ${o.env.AGEND_INSTANCE_NAME}'s session (#1871)\n`);
35
+ const env = { ...o.env, [HANDED_OFF_ENV]: "1", [ORIGIN_ENV]: `launchd hand-off of agend ${o.action} from ${o.env.AGEND_INSTANCE_NAME}` };
36
+ const child = deps.spawn(o.self.command, o.self.args, { detached: true, stdio: ["ignore", fd, fd], env });
37
+ const started = await new Promise(resolve => {
38
+ child.once("error", err => resolve(err));
39
+ child.once("spawn", () => resolve(null));
40
+ });
41
+ if (started)
42
+ return { ok: false, reason: `the detached copy did not start: ${started.message}` };
43
+ child.unref();
44
+ return { ok: true, log };
45
+ }
46
+ catch (err) {
47
+ return { ok: false, reason: `the detached copy did not start: ${err.message}` };
48
+ }
49
+ finally {
50
+ try {
51
+ deps.close(fd);
52
+ }
53
+ catch { /* the child holds its own copy */ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=launchd-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchd-handoff.js","sourceRoot":"","sources":["../src/launchd-handoff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAEpD,gHAAgH;AAChH,MAAM,UAAU,aAAa,CAAC,GAAsB;IAClD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC;AACjF,CAAC;AAiBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,CAA2G,EAC3G,IAAiB;IAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,EAAU,CAAC;IACf,IAAI,CAAC;QAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAG,KAAM,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IAAC,CAAC;IAC3H,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,MAAM,qBAAqB,CAAC,CAAC,GAAG,CAAC,mBAAmB,sBAAsB,CAAC,CAAC;QACtI,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,6BAA6B,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACzI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1G,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE;YACxD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACjG,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAqC,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7F,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}