@songsid/agend 2.3.0-beta.12 → 2.3.0-beta.14

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 (89) hide show
  1. package/README.md +6 -0
  2. package/README.zh-TW.md +6 -0
  3. package/dist/backend/codex-metadata.d.ts +8 -0
  4. package/dist/backend/codex-metadata.js +74 -17
  5. package/dist/backend/codex-metadata.js.map +1 -1
  6. package/dist/config.d.ts +13 -1
  7. package/dist/config.js +14 -5
  8. package/dist/config.js.map +1 -1
  9. package/dist/fleet-manager.d.ts +36 -1
  10. package/dist/fleet-manager.js +135 -43
  11. package/dist/fleet-manager.js.map +1 -1
  12. package/dist/general-knowledge/skills/fleet-config/SKILL.md +2 -0
  13. package/dist/general-knowledge/skills/web-appearance/SKILL.md +21 -3
  14. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +23 -5
  15. package/dist/outbound-schemas.d.ts +14 -1
  16. package/dist/outbound-schemas.js +8 -2
  17. package/dist/outbound-schemas.js.map +1 -1
  18. package/dist/public-web-gateway.js +4 -0
  19. package/dist/public-web-gateway.js.map +1 -1
  20. package/dist/restart-progress.d.ts +16 -1
  21. package/dist/restart-progress.js +74 -15
  22. package/dist/restart-progress.js.map +1 -1
  23. package/dist/settings-api.js +4 -1
  24. package/dist/settings-api.js.map +1 -1
  25. package/dist/settings-confirmation.d.ts +3 -1
  26. package/dist/settings-confirmation.js +2 -0
  27. package/dist/settings-confirmation.js.map +1 -1
  28. package/dist/settings-effect.js +2 -1
  29. package/dist/settings-effect.js.map +1 -1
  30. package/dist/settings-http-confirmation.d.ts +11 -0
  31. package/dist/settings-http-confirmation.js +10 -0
  32. package/dist/settings-http-confirmation.js.map +1 -1
  33. package/dist/topic-commands.d.ts +10 -0
  34. package/dist/topic-commands.js +27 -15
  35. package/dist/topic-commands.js.map +1 -1
  36. package/dist/ui/chat-effects.js +10 -3
  37. package/dist/ui/chat-strings.js +2 -0
  38. package/dist/ui/effects-waker.js +70 -0
  39. package/dist/ui/fleet-canvas-layout.js +10 -4
  40. package/dist/ui/fleet-canvas.js +32 -2
  41. package/dist/ui/fleet-route-scene.js +207 -0
  42. package/dist/ui/fleet-route-worker.js +21 -0
  43. package/dist/ui/fleet-route.js +88 -0
  44. package/dist/ui/fleet-traffic.js +27 -11
  45. package/dist/ui/fleet-usage.js +35 -1
  46. package/dist/ui/panel-chat.js +51 -24
  47. package/dist/ui/panel-fleet.js +3 -3
  48. package/dist/ui/settings-appearance.js +2 -1
  49. package/dist/ui/settings-apply.js +3 -3
  50. package/dist/ui/settings-confirm.js +7 -2
  51. package/dist/ui/settings-owner-effects.js +6 -4
  52. package/dist/ui/shared/app-i18n.js +4 -0
  53. package/dist/ui/shared/app-prefs.js +12 -0
  54. package/dist/ui/shared/app-shell.js +38 -2
  55. package/dist/ui/shared/app-themes.js +116 -1
  56. package/dist/ui/shared/app.css +38 -3
  57. package/dist/ui/shared/card-strings.js +4 -0
  58. package/dist/ui/shared/identity-card.js +26 -8
  59. package/dist/ui/shared/identity-color.js +11 -7
  60. package/dist/ui/shared/ui-icons.js +1 -0
  61. package/dist/ui/shared/ui-menu.js +20 -7
  62. package/dist/ui/shared/web-authorize.js +47 -0
  63. package/dist/web-api.d.ts +0 -3
  64. package/dist/web-api.js +80 -14
  65. package/dist/web-api.js.map +1 -1
  66. package/dist/web-appearance.js +3 -1
  67. package/dist/web-appearance.js.map +1 -1
  68. package/dist/web-effect.d.ts +1 -1
  69. package/dist/web-host-guard.d.ts +11 -0
  70. package/dist/web-host-guard.js +11 -0
  71. package/dist/web-host-guard.js.map +1 -1
  72. package/dist/web-libavoid.d.ts +14 -0
  73. package/dist/web-libavoid.js +46 -0
  74. package/dist/web-libavoid.js.map +1 -0
  75. package/dist/web-owner-css-store.d.ts +3 -2
  76. package/dist/web-owner-css-store.js +9 -4
  77. package/dist/web-owner-css-store.js.map +1 -1
  78. package/dist/web-prefs.js +13 -0
  79. package/dist/web-prefs.js.map +1 -1
  80. package/dist/web-settings-tools.d.ts +5 -0
  81. package/dist/web-settings-tools.js +34 -6
  82. package/dist/web-settings-tools.js.map +1 -1
  83. package/dist/web-theme.d.ts +29 -0
  84. package/dist/web-theme.js +89 -1
  85. package/dist/web-theme.js.map +1 -1
  86. package/dist/yaml-shared-nodes.d.ts +25 -0
  87. package/dist/yaml-shared-nodes.js +185 -0
  88. package/dist/yaml-shared-nodes.js.map +1 -0
  89. package/package.json +2 -1
package/README.md CHANGED
@@ -112,6 +112,12 @@ One-liner (macOS / Linux — installs Node.js via nvm + tmux + agend, then runs
112
112
  curl -fsSL https://songsid.github.io/AgEnD/install.sh | bash
113
113
  ```
114
114
 
115
+ One-liner (Windows — in PowerShell; sets up WSL 2 + Ubuntu, your AI backend and AgEnD inside it, then your bot. It asks once for Administrator approval; after a restart, run the same line again and it resumes. See the [Windows installation guide](https://songsid.github.io/AgEnD/install-windows/)):
116
+
117
+ ```powershell
118
+ powershell -ExecutionPolicy ByPass -c "irm https://songsid.github.io/AgEnD/install.ps1 | iex"
119
+ ```
120
+
115
121
  Or install manually:
116
122
 
117
123
  ```bash
package/README.zh-TW.md CHANGED
@@ -112,6 +112,12 @@ AgEnD 是住在 Discord、Telegram 和你的瀏覽器裡的 AI 個人助理,
112
112
  curl -fsSL https://songsid.github.io/AgEnD/install.sh | bash
113
113
  ```
114
114
 
115
+ 一行安裝(Windows — 在 PowerShell 執行;裝好 WSL 2 + Ubuntu,在裡面裝 AI 後端和 AgEnD,再串接 bot。會詢問一次系統管理員權限;重新開機後再執行同一行即可接續。詳見 [Windows 安裝指南](https://songsid.github.io/AgEnD/zh-tw/install-windows/)):
116
+
117
+ ```powershell
118
+ powershell -ExecutionPolicy ByPass -c "irm https://songsid.github.io/AgEnD/install.ps1 | iex"
119
+ ```
120
+
115
121
  或手動安裝:
116
122
 
117
123
  ```bash
@@ -1,4 +1,12 @@
1
1
  export declare const CODEX_MODELS_CACHE_MAX_BYTES: number;
2
+ export declare const FILE_CACHE_MAX = 256;
3
+ export declare const FILE_SETTLED_MS = 1000;
4
+ /** The wall clock the files' times are compared with (a seam for tests: a file's ctime can't be set back). */
5
+ export declare const codexMetadataClock: {
6
+ now: () => number;
7
+ };
8
+ /** For tests: forget every cached file. */
9
+ export declare function resetCodexMetadataCache(): void;
2
10
  /** The persistent short path only; never creates or migrates a home. */
3
11
  export declare function codexShortHomeFor(instanceDir: string): string;
4
12
  /** Read the existing home before or after migration, without performing it. */
@@ -6,6 +6,37 @@ import { dirname, join, resolve } from "node:path";
6
6
  import { parse as parseToml } from "smol-toml";
7
7
  import { getAgendHome } from "../paths.js";
8
8
  export const CODEX_MODELS_CACHE_MAX_BYTES = 5 * 1024 * 1024;
9
+ /**
10
+ * #1956 item 2: what a codex file says, read and parsed once per version of the file. The fleet's status asks for every
11
+ * codex instance's effort levels on every build (every open dashboard, every 10 s), and each ask parsed the whole
12
+ * models_cache.json (hundreds of KB) again. The key is the file's stat — inode, size, mtime and ctime in nanoseconds —
13
+ * so a rewritten or replaced file (or a chmod) is read again on the next ask. A file that can't be stat'd is never
14
+ * cached (the caller answers as before), and a parse that throws is not kept (it is retried, as before).
15
+ * "Racy" files (git's rule): a filesystem's clock is coarse, so two writes inside one tick can leave the same size,
16
+ * mtime and ctime. A file is trusted from the cache only once its last change (the later of mtime and ctime: a chmod or a
17
+ * touch moves only ctime) was at least FILE_SETTLED_MS old when it was read; one changed more recently than that is read
18
+ * again on every ask until it has settled.
19
+ */
20
+ const fileCache = new Map();
21
+ export const FILE_CACHE_MAX = 256;
22
+ export const FILE_SETTLED_MS = 1000;
23
+ /** The wall clock the files' times are compared with (a seam for tests: a file's ctime can't be set back). */
24
+ export const codexMetadataClock = { now: () => Date.now() };
25
+ function stamped(kind, path, stat, read) {
26
+ const key = `${kind}:${path}`, stamp = `${stat.ino}:${stat.size}:${stat.mtimeNs}:${stat.ctimeNs}`;
27
+ const hit = fileCache.get(key);
28
+ if (hit && hit.settled && hit.stamp === stamp)
29
+ return hit.value;
30
+ // The wall clock against the file's own times (both realtime).
31
+ const settled = codexMetadataClock.now() - Math.max(Number(stat.mtimeMs), Number(stat.ctimeMs)) >= FILE_SETTLED_MS;
32
+ const value = read();
33
+ if (fileCache.size >= FILE_CACHE_MAX && !fileCache.has(key))
34
+ fileCache.clear();
35
+ fileCache.set(key, { stamp, value, settled });
36
+ return value;
37
+ }
38
+ /** For tests: forget every cached file. */
39
+ export function resetCodexMetadataCache() { fileCache.clear(); }
9
40
  /** The persistent short path only; never creates or migrates a home. */
10
41
  export function codexShortHomeFor(instanceDir) {
11
42
  const hash = createHash("sha256").update(resolve(instanceDir)).digest("hex").slice(0, 8);
@@ -62,16 +93,32 @@ function readCodexModelEffortLevelsSync(homes) {
62
93
  return { model, levels: null };
63
94
  const isolatedCache = join(homes.isolatedHome, "models_cache.json");
64
95
  const cachePath = existsSync(isolatedCache) ? isolatedCache : join(homes.sharedHome, "models_cache.json");
65
- if (statSync(cachePath).size > CODEX_MODELS_CACHE_MAX_BYTES)
96
+ const stat = statSync(cachePath, { bigint: true });
97
+ if (stat.size > BigInt(CODEX_MODELS_CACHE_MAX_BYTES))
66
98
  return { model, levels: null };
67
- const parsed = JSON.parse(readFileSync(cachePath, "utf-8"));
68
- if (!Array.isArray(parsed.models))
99
+ // Each model's levels, as the first entry with its slug lists them (null: no models list at all).
100
+ const bySlug = stamped("models", cachePath, stat, () => {
101
+ const parsed = JSON.parse(readFileSync(cachePath, "utf-8"));
102
+ if (!Array.isArray(parsed.models))
103
+ return null;
104
+ const out = new Map();
105
+ for (const m of parsed.models) {
106
+ if (!m || typeof m !== "object")
107
+ continue;
108
+ const slug = m.slug;
109
+ if (typeof slug !== "string" || out.has(slug))
110
+ continue;
111
+ const levels = m.supported_reasoning_levels
112
+ ?.map(l => l?.effort)
113
+ .filter((e) => typeof e === "string" && canonical.has(e));
114
+ out.set(slug, levels?.length ? levels : null);
115
+ }
116
+ return out;
117
+ });
118
+ if (!bySlug)
69
119
  return { model, levels: null };
70
- const entry = parsed.models.find((m) => !!m && typeof m === "object" && m.slug === model);
71
- const levels = entry?.supported_reasoning_levels
72
- ?.map(l => l?.effort)
73
- .filter((e) => typeof e === "string" && canonical.has(e));
74
- return { model, levels: levels?.length ? levels : null };
120
+ const levels = bySlug.get(model) ?? null;
121
+ return { model, levels: levels ? [...levels] : null };
75
122
  }
76
123
  catch {
77
124
  return { model, levels: null };
@@ -80,20 +127,30 @@ function readCodexModelEffortLevelsSync(homes) {
80
127
  const isTable = (v) => !!v && typeof v === "object" && !Array.isArray(v);
81
128
  /** A TOML file's root table; undefined when there is no file, null when it cannot be read or parsed. */
82
129
  function readTomlTable(path) {
83
- let text;
130
+ let stat;
84
131
  try {
85
- text = readFileSync(path, "utf-8");
132
+ stat = statSync(path, { bigint: true });
86
133
  }
87
134
  catch (err) {
88
135
  return err.code === "ENOENT" ? undefined : null;
89
136
  }
90
- try {
91
- const parsed = parseToml(text);
92
- return isTable(parsed) ? parsed : null;
93
- }
94
- catch {
95
- return null;
96
- }
137
+ // #1956: parsed once per version of the file (see stamped); callers only read the table.
138
+ return stamped("toml", path, stat, () => {
139
+ let text;
140
+ try {
141
+ text = readFileSync(path, "utf-8");
142
+ }
143
+ catch (err) {
144
+ return err.code === "ENOENT" ? undefined : null;
145
+ }
146
+ try {
147
+ const parsed = parseToml(text);
148
+ return isTable(parsed) ? parsed : null;
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ });
97
154
  }
98
155
  /**
99
156
  * #1813 review: the model a config table sets — its ROOT `model` key, read through the TOML structure (a `model = …`
@@ -1 +1 @@
1
- {"version":3,"file":"codex-metadata.js","sourceRoot":"","sources":["../../src/backend/codex-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-metadata.js","sourceRoot":"","sources":["../../src/backend/codex-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+D,CAAC;AACzF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,8GAA8G;AAC9G,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACpE,SAAS,OAAO,CAAI,IAAY,EAAE,IAAY,EAAE,IAAmC,EAAE,IAAa;IAChG,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAClG,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,KAAU,CAAC;IACrE,+DAA+D;IAC/D,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC;IACnH,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;IACrB,IAAI,SAAS,CAAC,IAAI,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/E,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AACD,2CAA2C;AAC3C,MAAM,UAAU,uBAAuB,KAAW,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEtE,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBAAE,YAAY,GAAG,UAAU,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC,CAAC,wDAAwD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO;QACL,YAAY;QACZ,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,KAIrC;IACC,OAAO,eAAe,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,yBAAyB,CAAC,KAIlC;IACC,OAAO,8BAA8B,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAI1C;IACC,OAAO,eAAe,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC;AACD,SAAS,8BAA8B,CAAC,KAIvC;IACC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAA4B,8BAA8B;gBAC7F,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAa,gDAAgD;gBAChH,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC1G,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,4BAA4B,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrF,kGAAkG;QAClG,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAyB,CAAC;YACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2B,CAAC;YAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,SAAS;gBAC1C,MAAM,IAAI,GAAI,CAA6B,CAAC,IAAI,CAAC;gBACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACxD,MAAM,MAAM,GAAK,CAA6B,CAAC,0BAAiE;oBAC9G,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;qBACpB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAGD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAElG,wGAAwG;AACxG,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAmC,CAAC;IACxC,IAAI,CAAC;QAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAQ,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAAC,CAAC;IAC5I,yFAAyF;IACzF,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QACtC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAQ,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,CAAC;QACvI,IAAI,CAAC;YAAC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAiB;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;IACnC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5H,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAEvC;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3D,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,GAAG,UAAsB,CAAC;QAChH,MAAM;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACnH,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,CAAC;QACtG,KAAK,IAAI,GAAG,GAAG,KAAK,GAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC5D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;oBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC/E,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACzG,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAM,0CAA0C;YACjH,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,MAAM;QAClC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;AAChD,CAAC"}
package/dist/config.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { CostGuardConfig, HangDetectorConfig, DailySummaryConfig, FleetConf
2
2
  export declare function deepMergeGeneric<T extends object>(target: T, source: Partial<T>): T;
3
3
  export declare function getTmuxSession(): string;
4
4
  export declare const DEFAULT_COST_GUARD: CostGuardConfig;
5
- /** #1854: matches the stuck detector's DEFAULT_STUCK_TIMEOUT_MS (src/daemon.ts, 10 min); hang-default-1854.test.ts holds them together. */
5
+ /** #1854: matches the stuck detector's DEFAULT_STUCK_TIMEOUT_MS (src/daemon.ts, 10 min); factual-ui-1854.test.ts holds them together. */
6
6
  export declare const DEFAULT_HANG_DETECTOR: HangDetectorConfig;
7
7
  export declare const DEFAULT_DAILY_SUMMARY: DailySummaryConfig;
8
8
  /** Product-level context protection for cross-instance message bodies (12 KiB). */
@@ -16,6 +16,18 @@ export declare const DEFAULT_INSTANCE_CONFIG: Omit<InstanceConfig, "working_dire
16
16
  export declare function getEffectiveInstanceDefaults(fleetDefaults?: Partial<InstanceConfig>): Partial<InstanceConfig>;
17
17
  /** Validate IANA timezone string. Throws if invalid. */
18
18
  export declare function validateTimezone(tz: string, field: string): void;
19
+ /**
20
+ * A connection as a load gives it: `id` defaults to its `type`, `mode` to `topic`. Every channels write is judged and
21
+ * kept in this shape too (#2211), so a key the file leaves to its default is never "changed" by being absent.
22
+ */
23
+ export declare function channelWithDefaults<T extends {
24
+ id?: string;
25
+ type?: string;
26
+ mode?: string;
27
+ }>(ch: T): T & {
28
+ id: string | undefined;
29
+ mode: NonNullable<T["mode"]> | "topic";
30
+ };
19
31
  export declare function loadFleetConfig(configPath: string): FleetConfig;
20
32
  /** Read the user-authored config without applying defaults or normalization. */
21
33
  export declare function loadRawFleetConfig(configPath: string): RawFleetConfig;
package/dist/config.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { readFileSync, existsSync, mkdirSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import yaml from "js-yaml";
4
+ import { unshareParsed } from "./yaml-shared-nodes.js";
4
5
  import { getAgendHome, getTmuxSessionName, ensureWorkspaceGit } from "./paths.js";
5
6
  export function deepMergeGeneric(target, source) {
6
7
  const result = { ...target };
@@ -30,7 +31,7 @@ export const DEFAULT_COST_GUARD = {
30
31
  warn_at_percentage: 80,
31
32
  timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
32
33
  };
33
- /** #1854: matches the stuck detector's DEFAULT_STUCK_TIMEOUT_MS (src/daemon.ts, 10 min); hang-default-1854.test.ts holds them together. */
34
+ /** #1854: matches the stuck detector's DEFAULT_STUCK_TIMEOUT_MS (src/daemon.ts, 10 min); factual-ui-1854.test.ts holds them together. */
34
35
  export const DEFAULT_HANG_DETECTOR = {
35
36
  enabled: true,
36
37
  timeout_minutes: 10,
@@ -88,6 +89,13 @@ export function validateTimezone(tz, field) {
88
89
  throw new Error(`${field}: invalid timezone "${tz}". Use IANA format (e.g. Asia/Taipei)`);
89
90
  }
90
91
  }
92
+ /**
93
+ * A connection as a load gives it: `id` defaults to its `type`, `mode` to `topic`. Every channels write is judged and
94
+ * kept in this shape too (#2211), so a key the file leaves to its default is never "changed" by being absent.
95
+ */
96
+ export function channelWithDefaults(ch) {
97
+ return { ...ch, id: ch.id ?? ch.type, mode: ch.mode ?? "topic" };
98
+ }
91
99
  export function loadFleetConfig(configPath) {
92
100
  if (!existsSync(configPath)) {
93
101
  return { defaults: {}, instances: {} };
@@ -96,7 +104,8 @@ export function loadFleetConfig(configPath) {
96
104
  // Quote bare 16+ digit integers before parsing to prevent precision loss.
97
105
  // Discord snowflakes and Telegram group IDs are 64-bit and exceed JS MAX_SAFE_INTEGER.
98
106
  const safeRaw = raw.replace(/(?<=:\s+|[-]\s+)(\d{16,})(?=\s*$)/gm, (_, d) => `"${d}"`);
99
- const parsed = yaml.load(safeRaw);
107
+ // #2208: an anchor and its aliases become separate copies, so editing one place never changes another.
108
+ const parsed = unshareParsed(yaml.load(safeRaw), "fleet.yaml");
100
109
  if (!parsed) {
101
110
  return { defaults: {}, instances: {} };
102
111
  }
@@ -125,10 +134,10 @@ export function loadFleetConfig(configPath) {
125
134
  }
126
135
  // Normalize channel → channels (backward compat: single channel auto-wraps into array)
127
136
  const channelSingle = parsed.channel
128
- ? { ...parsed.channel, id: parsed.channel.id ?? parsed.channel.type, mode: parsed.channel.mode ?? "topic" }
137
+ ? channelWithDefaults(parsed.channel)
129
138
  : undefined;
130
139
  const channels = parsed.channels
131
- ? parsed.channels.map(ch => ({ ...ch, id: ch.id ?? ch.type, mode: ch.mode ?? "topic" }))
140
+ ? parsed.channels.map(ch => channelWithDefaults(ch))
132
141
  : channelSingle ? [channelSingle] : undefined;
133
142
  // Always set channel to first entry (fallback for code using fleetConfig.channel)
134
143
  const primaryChannel = channelSingle ?? (channels?.[0] ?? undefined);
@@ -230,7 +239,7 @@ export function loadRawFleetConfig(configPath) {
230
239
  const raw = readFileSync(configPath, "utf-8");
231
240
  // Match loadFleetConfig(): preserve platform IDs that exceed MAX_SAFE_INTEGER.
232
241
  const safeRaw = raw.replace(/(?<=:\s+|[-]\s+)(\d{16,})(?=\s*$)/gm, (_, d) => `"${d}"`);
233
- const parsed = yaml.load(safeRaw);
242
+ const parsed = unshareParsed(yaml.load(safeRaw), "fleet.yaml"); // #2208, as loadFleetConfig
234
243
  return parsed && typeof parsed === "object" && !Array.isArray(parsed)
235
244
  ? parsed
236
245
  : {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGlF,MAAM,UAAU,gBAAgB,CAAmB,MAAS,EAAE,MAAkB;IAC9E,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAA6B,CAAC;IACxD,MAAM,YAAY,GAAG,MAAiC,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IACE,SAAS,KAAK,IAAI;YAClB,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACzB,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,KAAK,IAAI;YAClB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACzB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAC5B,SAAmB,EACnB,SAA4B,CAC7B,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,MAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,kBAAkB,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,eAAe,EAAE,CAAC,EAAE,eAAe;IACnC,kBAAkB,EAAE,EAAE;IACtB,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;CAC3D,CAAC;AAEF,2IAA2I;AAC3I,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,GAAG,IAAI,CAAC;AAElE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,GAAG,IAAI,CAAC;AAE7D,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,MAAM,CAAC,MAAM,uBAAuB,GAA8C;IAChF,gBAAgB,EAAE,CAAC,EAAE,iCAAiC;IACtD,gBAAgB,EAAE,IAAI,EAAE,gDAAgD;IACxE,eAAe,EAAE,KAAK,EAAE,4EAA4E;IACpG,aAAa,EAAE,KAAK,EAAE,oEAAoE;IAC1F,sBAAsB,EAAE,IAAI,EAAE,uEAAuE;IAErG,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,EAAE;KACT;IACD,cAAc,EAAE;QACd,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,GAAG;KACjB;IACD,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,yEAAyE;IACzE,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,4BAA4B,CAC1C,gBAAyC,EAAE;IAE3C,2EAA2E;IAC3E,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,EACJ,IAAI,EAAE,KAAK,EACX,gCAAgC,EAAE,6BAA6B;IAC/D,4GAA4G;IAC5G,yBAAyB,EAAE,wBAAwB,EACnD,GAAG,gBAAgB,EACpB,GAAG,aAA8B,CAAC;IACnC,OAAO,gBAAgB,CACrB,uBAAkD,EAClD,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,EAAU,EAAE,KAAa;IACxD,IAAI,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,uBAAuB,EAAE,uCAAuC,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,uFAAuF;IACvF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAgBxB,CAAC;IAET,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,aAAa,GAAkB,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAmC,EAAE,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,gBAAgB,CAC7B,4BAA4B,CAAC,aAAa,CAAC,EAC3C,SAAS,CACiB,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC5D,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACxC,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,GAAG,MAAwB,CAAC;IAC7C,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAkC,EAAE,CAAC;IACpD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,qCAAqC,CAAC,CAAC;YAC1E,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACxB,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;QAClC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,OAAgB,EAAE;QACpH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAA4B,MAAM,CAAC,QAAQ;QACvD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAgB,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhD,kFAAkF;IAClF,MAAM,cAAc,GAAG,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;IAErE,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,QAAQ;QACR,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,aAAa;QACvB,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,YAAY,EAAE,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IAC/E,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IACjD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClG,4HAA4H;IAC5H,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,GAA2B,CAAC;AACrC,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAY;IAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAAwE,CAAC;IAC7F,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/G,CAAC;QACD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAG,kBAAkB;IAChG,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,+BAA+B,CAAC,GAAY;IACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,2DAA2D,CAAC,CAAC;IAC9H,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,4EAA4E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,sEAAsE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjH,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAwD,CAAC;AAC1E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,+EAA+E;IAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,CAAC,CAAC,MAAwB;QAC1B,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -245,6 +245,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
245
245
  fleetConfig: FleetConfig | null;
246
246
  private rawFleetConfig;
247
247
  private rawFleetDocument;
248
+ /** #2208: the paths a saveFleetConfig() wrote, for its check that nothing else changed. */
249
+ private fleetDocumentWrites;
248
250
  private savedFleetConfigSnapshot;
249
251
  adapter: ChannelAdapter | null;
250
252
  readonly worlds: Map<string, AdapterWorld>;
@@ -624,6 +626,30 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
624
626
  private classicSettingsOwners;
625
627
  private queueSettingsOperation;
626
628
  private settingsGate;
629
+ /**
630
+ * #2170: a held change confirmed by the request itself — only when ALL hold, else the chat card or the host CLI, as
631
+ * before:
632
+ * - the session is web-verified (#1939: its account confirmed this browser on Discord or Telegram), asked now;
633
+ * - the change's effect owners are known and on one platform (settingsChatAuthority — the chat card's own rule), the
634
+ * verified account is on that platform and an admin of every one of them;
635
+ * - a chat card could have been asked: a connected General on that platform the change does not affect (else the
636
+ * change goes to the host CLI, as before) — the General that then hears of it;
637
+ * - and, at execution (store.decide asks `current()` again): still web-verified under the same session and account
638
+ * (not expired, revoked, signed out or the switch turned off), still those owners' admin, still a General a card
639
+ * could go to, the fleet unchanged.
640
+ * What it rests on: the account's one confirmation of this browser (#1939), kept for the session until it is revoked,
641
+ * expires or signs out — not a fresh confirmation per Apply. Whoever uses that verified session (a browser left signed
642
+ * in, its cookie) confirms the same way. A public link never qualifies (evaluateWebAuthority refuses it). General
643
+ * still hears it: a notice, not a step.
644
+ */
645
+ private settingsSelfConfirmation;
646
+ /** #2170: the Generals a chat card could be posted in (promptSettingsChange's rule): connected, on the platform, unaffected. */
647
+ private settingsNoticeGenerals;
648
+ /**
649
+ * #2170: General's notice of a change confirmed from the web — the first General a chat card could have been posted
650
+ * in, plain text, no mentions. Information only: nothing waits on it.
651
+ */
652
+ private settingsWebConfirmedNotice;
627
653
  /** Exact configured effect owners; this does not depend on prompt location. */
628
654
  private settingsChatAuthority;
629
655
  private promptSettingsChange;
@@ -1358,7 +1384,10 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
1358
1384
  * snapshot use the fleet startup/retry state. */
1359
1385
  private readyProgressAdapter;
1360
1386
  /** Last-resort completion after RestartProgress could not deliver to its
1361
- * adopted target. It stays bounded and never wakes a not-ready gateway. */
1387
+ * adopted target (or had no message: a small fleet, a failed first post). It
1388
+ * never wakes a not-ready gateway. #2213: an outage at fleet start no longer
1389
+ * loses it — bounded at startup, then retried in the background once the
1390
+ * adapter is ready again, never posted twice after an uncertain attempt. */
1362
1391
  private sendFleetStartCompletionFallback;
1363
1392
  stopInstance(name: string, transition?: TransitionHandle): Promise<{
1364
1393
  backgroundWorkEnded: boolean;
@@ -2133,6 +2162,12 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
2133
2162
  private slimFleetConfigAtStartup;
2134
2163
  private writeFleetConfigBackup;
2135
2164
  private patchFleetDocument;
2165
+ /**
2166
+ * #2208: before every write to the raw document — the place is unshared first (an alias on the way becomes its own
2167
+ * copy; an anchor's other aliases get theirs), so the write changes that place only; and it is recorded for the
2168
+ * save's check that nothing else changed.
2169
+ */
2170
+ private writingFleetDocument;
2136
2171
  getSettingsConfigPath(): string;
2137
2172
  removeInstance(name: string, authorization: ExplicitInstanceRemoval, execution?: SettingsExecution): Promise<void>;
2138
2173
  private removeInstanceOwned;