@songsid/agend 2.3.2-beta.1 → 2.3.2-beta.11

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 (298) hide show
  1. package/THIRD_PARTY_NOTICES.md +40 -0
  2. package/dist/agent-cli.js +69 -2
  3. package/dist/agent-cli.js.map +1 -1
  4. package/dist/agent-endpoint.js +11 -0
  5. package/dist/agent-endpoint.js.map +1 -1
  6. package/dist/agent-whats-new.js +3 -0
  7. package/dist/agent-whats-new.js.map +1 -1
  8. package/dist/antigravity-usage-scan.d.ts +58 -0
  9. package/dist/antigravity-usage-scan.js +257 -0
  10. package/dist/antigravity-usage-scan.js.map +1 -0
  11. package/dist/antigravity-usage-worker.d.ts +1 -0
  12. package/dist/antigravity-usage-worker.js +10 -0
  13. package/dist/antigravity-usage-worker.js.map +1 -0
  14. package/dist/auth-api.js +4 -0
  15. package/dist/auth-api.js.map +1 -1
  16. package/dist/backend/kiro-classic-archive.d.ts +52 -0
  17. package/dist/backend/kiro-classic-archive.js +444 -0
  18. package/dist/backend/kiro-classic-archive.js.map +1 -0
  19. package/dist/backend/kiro-identity.d.ts +83 -0
  20. package/dist/backend/kiro-identity.js +144 -0
  21. package/dist/backend/kiro-identity.js.map +1 -1
  22. package/dist/backend/kiro-migration-verify.d.ts +10 -0
  23. package/dist/backend/kiro-migration-verify.js +52 -0
  24. package/dist/backend/kiro-migration-verify.js.map +1 -0
  25. package/dist/backend/kiro-retired-model.d.ts +62 -0
  26. package/dist/backend/kiro-retired-model.js +160 -0
  27. package/dist/backend/kiro-retired-model.js.map +1 -0
  28. package/dist/backend/kiro-v2-store-worker.js +21 -1
  29. package/dist/backend/kiro-v2-store-worker.js.map +1 -1
  30. package/dist/backend/kiro-v2-store.d.ts +8 -0
  31. package/dist/backend/kiro-v2-store.js.map +1 -1
  32. package/dist/backend/kiro.d.ts +169 -2
  33. package/dist/backend/kiro.js +703 -28
  34. package/dist/backend/kiro.js.map +1 -1
  35. package/dist/backend/types.d.ts +108 -0
  36. package/dist/backend/types.js +9 -0
  37. package/dist/backend/types.js.map +1 -1
  38. package/dist/backend-signin-guide.d.ts +1 -0
  39. package/dist/backend-signin-guide.js +9 -0
  40. package/dist/backend-signin-guide.js.map +1 -0
  41. package/dist/backend-signin-pending.d.ts +10 -0
  42. package/dist/backend-signin-pending.js +44 -0
  43. package/dist/backend-signin-pending.js.map +1 -0
  44. package/dist/browser-backend-signins.d.ts +56 -0
  45. package/dist/browser-backend-signins.js +189 -0
  46. package/dist/browser-backend-signins.js.map +1 -0
  47. package/dist/cache-ledger.d.ts +38 -2
  48. package/dist/cache-ledger.js +133 -8
  49. package/dist/cache-ledger.js.map +1 -1
  50. package/dist/cache-prices.d.ts +2 -1
  51. package/dist/cache-prices.js +5 -2
  52. package/dist/cache-prices.js.map +1 -1
  53. package/dist/cache-service.d.ts +68 -0
  54. package/dist/cache-service.js +355 -13
  55. package/dist/cache-service.js.map +1 -1
  56. package/dist/channel/adapters/discord.d.ts +11 -0
  57. package/dist/channel/adapters/discord.js +71 -14
  58. package/dist/channel/adapters/discord.js.map +1 -1
  59. package/dist/channel/ipc-timeouts.js +3 -0
  60. package/dist/channel/ipc-timeouts.js.map +1 -1
  61. package/dist/channel/mcp-tools.js +41 -2
  62. package/dist/channel/mcp-tools.js.map +1 -1
  63. package/dist/channel/tool-router.js +2 -1
  64. package/dist/channel/tool-router.js.map +1 -1
  65. package/dist/classic-channel-manager.d.ts +11 -0
  66. package/dist/classic-channel-manager.js +39 -1
  67. package/dist/classic-channel-manager.js.map +1 -1
  68. package/dist/cli.js +54 -2
  69. package/dist/cli.js.map +1 -1
  70. package/dist/config-validator.d.ts +7 -1
  71. package/dist/config-validator.js +55 -10
  72. package/dist/config-validator.js.map +1 -1
  73. package/dist/config.d.ts +19 -0
  74. package/dist/config.js +33 -1
  75. package/dist/config.js.map +1 -1
  76. package/dist/cpu-quota.d.ts +23 -0
  77. package/dist/cpu-quota.js +86 -0
  78. package/dist/cpu-quota.js.map +1 -0
  79. package/dist/daemon.d.ts +68 -0
  80. package/dist/daemon.js +448 -26
  81. package/dist/daemon.js.map +1 -1
  82. package/dist/dashboard-permissions.d.ts +31 -6
  83. package/dist/dashboard-permissions.js +84 -9
  84. package/dist/dashboard-permissions.js.map +1 -1
  85. package/dist/doctor.js +2 -1
  86. package/dist/doctor.js.map +1 -1
  87. package/dist/fleet-control-audit.d.ts +1 -1
  88. package/dist/fleet-control-audit.js +3 -0
  89. package/dist/fleet-control-audit.js.map +1 -1
  90. package/dist/fleet-manager.d.ts +133 -2
  91. package/dist/fleet-manager.js +905 -94
  92. package/dist/fleet-manager.js.map +1 -1
  93. package/dist/forged-envelope-scan.d.ts +9 -0
  94. package/dist/forged-envelope-scan.js +30 -5
  95. package/dist/forged-envelope-scan.js.map +1 -1
  96. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
  97. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +24 -1
  98. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +49 -1
  99. package/dist/general-knowledge/skills/web-appearance/SKILL.md +49 -1
  100. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +47 -9
  101. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +54 -11
  102. package/dist/instance-config-impact.js +10 -5
  103. package/dist/instance-config-impact.js.map +1 -1
  104. package/dist/instance-lifecycle.d.ts +23 -0
  105. package/dist/instance-lifecycle.js +62 -12
  106. package/dist/instance-lifecycle.js.map +1 -1
  107. package/dist/kiro-db-reader.d.ts +5 -0
  108. package/dist/kiro-db-reader.js +18 -0
  109. package/dist/kiro-db-reader.js.map +1 -1
  110. package/dist/kiro-engine-status.d.ts +2 -0
  111. package/dist/kiro-engine-status.js +9 -0
  112. package/dist/kiro-engine-status.js.map +1 -1
  113. package/dist/kiro-migrate.d.ts +60 -0
  114. package/dist/kiro-migrate.js +160 -0
  115. package/dist/kiro-migrate.js.map +1 -0
  116. package/dist/kiro-session-proof.d.ts +41 -0
  117. package/dist/kiro-session-proof.js +89 -0
  118. package/dist/kiro-session-proof.js.map +1 -0
  119. package/dist/kiro-transcript-lane.d.ts +2 -0
  120. package/dist/kiro-transcript-lane.js.map +1 -1
  121. package/dist/kiro-transcript-worker.js +1 -0
  122. package/dist/kiro-transcript-worker.js.map +1 -1
  123. package/dist/kiro-tui-forensic.d.ts +12 -0
  124. package/dist/kiro-tui-forensic.js +110 -0
  125. package/dist/kiro-tui-forensic.js.map +1 -0
  126. package/dist/kiro-usage-run.d.ts +7 -0
  127. package/dist/kiro-usage-run.js +39 -0
  128. package/dist/kiro-usage-run.js.map +1 -0
  129. package/dist/kiro-usage-scan.d.ts +49 -0
  130. package/dist/kiro-usage-scan.js +223 -0
  131. package/dist/kiro-usage-scan.js.map +1 -0
  132. package/dist/kiro-usage-worker.d.ts +1 -0
  133. package/dist/kiro-usage-worker.js +10 -0
  134. package/dist/kiro-usage-worker.js.map +1 -0
  135. package/dist/kiro-usage.d.ts +58 -0
  136. package/dist/kiro-usage.js +310 -0
  137. package/dist/kiro-usage.js.map +1 -0
  138. package/dist/locale.js +230 -8
  139. package/dist/locale.js.map +1 -1
  140. package/dist/log-service.js +1 -1
  141. package/dist/log-service.js.map +1 -1
  142. package/dist/login-url.d.ts +4 -0
  143. package/dist/login-url.js +22 -0
  144. package/dist/login-url.js.map +1 -0
  145. package/dist/needs-you-hub.d.ts +2 -1
  146. package/dist/needs-you-hub.js +1 -1
  147. package/dist/needs-you-hub.js.map +1 -1
  148. package/dist/needs-you.d.ts +10 -2
  149. package/dist/needs-you.js +10 -2
  150. package/dist/needs-you.js.map +1 -1
  151. package/dist/notice-delivery.d.ts +16 -0
  152. package/dist/notice-delivery.js +35 -0
  153. package/dist/notice-delivery.js.map +1 -0
  154. package/dist/office-share-page.d.ts +16 -0
  155. package/dist/office-share-page.js +85 -0
  156. package/dist/office-share-page.js.map +1 -0
  157. package/dist/office-share-service.d.ts +91 -0
  158. package/dist/office-share-service.js +176 -0
  159. package/dist/office-share-service.js.map +1 -0
  160. package/dist/office-share.d.ts +268 -0
  161. package/dist/office-share.js +574 -0
  162. package/dist/office-share.js.map +1 -0
  163. package/dist/opencode-usage-scan.d.ts +28 -0
  164. package/dist/opencode-usage-scan.js +92 -0
  165. package/dist/opencode-usage-scan.js.map +1 -0
  166. package/dist/opencode-usage-worker.d.ts +1 -0
  167. package/dist/opencode-usage-worker.js +10 -0
  168. package/dist/opencode-usage-worker.js.map +1 -0
  169. package/dist/outbound-handlers.js +22 -2
  170. package/dist/outbound-handlers.js.map +1 -1
  171. package/dist/outbound-schemas.d.ts +65 -2
  172. package/dist/outbound-schemas.js +56 -2
  173. package/dist/outbound-schemas.js.map +1 -1
  174. package/dist/public-web-gateway.js +7 -1
  175. package/dist/public-web-gateway.js.map +1 -1
  176. package/dist/quickstart-api.js +13 -2
  177. package/dist/quickstart-api.js.map +1 -1
  178. package/dist/quickstart.js +2 -1
  179. package/dist/quickstart.js.map +1 -1
  180. package/dist/remote-card-answer.d.ts +83 -0
  181. package/dist/remote-card-answer.js +208 -0
  182. package/dist/remote-card-answer.js.map +1 -0
  183. package/dist/remote-card-prompt.d.ts +38 -0
  184. package/dist/remote-card-prompt.js +86 -0
  185. package/dist/remote-card-prompt.js.map +1 -0
  186. package/dist/reply-triggers.d.ts +2 -0
  187. package/dist/reply-triggers.js +3 -0
  188. package/dist/reply-triggers.js.map +1 -0
  189. package/dist/settings-api.d.ts +2 -0
  190. package/dist/settings-api.js +41 -16
  191. package/dist/settings-api.js.map +1 -1
  192. package/dist/settings-change.js +20 -14
  193. package/dist/settings-change.js.map +1 -1
  194. package/dist/settings-effect.js +7 -1
  195. package/dist/settings-effect.js.map +1 -1
  196. package/dist/settings-instance-patch.js +4 -1
  197. package/dist/settings-instance-patch.js.map +1 -1
  198. package/dist/setup-form.d.ts +1 -1
  199. package/dist/setup-form.js +55 -6
  200. package/dist/setup-form.js.map +1 -1
  201. package/dist/setup-host.d.ts +9 -0
  202. package/dist/setup-host.js +127 -6
  203. package/dist/setup-host.js.map +1 -1
  204. package/dist/setup-signin-assets.d.ts +2 -0
  205. package/dist/setup-signin-assets.js +6 -0
  206. package/dist/setup-signin-assets.js.map +1 -0
  207. package/dist/setup-wizard.js +2 -0
  208. package/dist/setup-wizard.js.map +1 -1
  209. package/dist/structured-signin-transport.d.ts +8 -0
  210. package/dist/structured-signin-transport.js +79 -0
  211. package/dist/structured-signin-transport.js.map +1 -0
  212. package/dist/structured-signin.d.ts +131 -0
  213. package/dist/structured-signin.js +388 -0
  214. package/dist/structured-signin.js.map +1 -0
  215. package/dist/tool-permissions.js +29 -0
  216. package/dist/tool-permissions.js.map +1 -1
  217. package/dist/topic-commands.js +6 -2
  218. package/dist/topic-commands.js.map +1 -1
  219. package/dist/transcript-sources.d.ts +27 -2
  220. package/dist/transcript-sources.js +104 -40
  221. package/dist/transcript-sources.js.map +1 -1
  222. package/dist/turn-reply-guard.d.ts +1 -1
  223. package/dist/turn-reply-guard.js +1 -1
  224. package/dist/turn-reply-guard.js.map +1 -1
  225. package/dist/types.d.ts +33 -8
  226. package/dist/ui/backend-signin.js +63 -10
  227. package/dist/ui/chat-store.js +3 -2
  228. package/dist/ui/chat-strings.js +4 -4
  229. package/dist/ui/fleet-office-editor.js +68 -11
  230. package/dist/ui/fleet-office-layout.js +110 -35
  231. package/dist/ui/fleet-office-model.js +6 -3
  232. package/dist/ui/fleet-office-overview.js +167 -0
  233. package/dist/ui/fleet-office-pack.d.ts +13 -3
  234. package/dist/ui/fleet-office-pack.js +214 -24
  235. package/dist/ui/fleet-office-skin.js +98 -23
  236. package/dist/ui/fleet-office-store.js +82 -5
  237. package/dist/ui/fleet-office-view.js +5 -4
  238. package/dist/ui/fleet-office-zones.js +232 -21
  239. package/dist/ui/fleet-office.js +549 -186
  240. package/dist/ui/fleet-usage.js +19 -15
  241. package/dist/ui/office-share-dialog.js +145 -0
  242. package/dist/ui/office-share-page.js +164 -0
  243. package/dist/ui/panel-chat.js +22 -3
  244. package/dist/ui/panel-log.js +4 -4
  245. package/dist/ui/panel-needs.js +5 -5
  246. package/dist/ui/panel-settings.js +38 -12
  247. package/dist/ui/settings-dialogs.js +8 -1
  248. package/dist/ui/settings-guests.js +17 -7
  249. package/dist/ui/settings-model.js +22 -6
  250. package/dist/ui/settings-registry.js +4 -0
  251. package/dist/ui/settings-strings.js +18 -2
  252. package/dist/ui/shared/app-i18n.js +4 -2
  253. package/dist/ui/shared/app-shell.js +14 -6
  254. package/dist/ui/shared/app-stream.js +2 -1
  255. package/dist/ui/shared/app.css +85 -4
  256. package/dist/ui/shared/office/cozy.png +0 -0
  257. package/dist/ui/shared/side-panel.js +95 -0
  258. package/dist/ui/structured-signin.js +115 -0
  259. package/dist/usage-report.d.ts +20 -0
  260. package/dist/usage-report.js +54 -17
  261. package/dist/usage-report.js.map +1 -1
  262. package/dist/usage-rollup.d.ts +9 -1
  263. package/dist/usage-rollup.js +20 -4
  264. package/dist/usage-rollup.js.map +1 -1
  265. package/dist/web-api.d.ts +23 -1
  266. package/dist/web-api.js +292 -3
  267. package/dist/web-api.js.map +1 -1
  268. package/dist/web-auth.js +1 -1
  269. package/dist/web-auth.js.map +1 -1
  270. package/dist/web-backend-login.d.ts +1 -7
  271. package/dist/web-backend-login.js +2 -24
  272. package/dist/web-backend-login.js.map +1 -1
  273. package/dist/web-office-acts.d.ts +173 -0
  274. package/dist/web-office-acts.js +285 -0
  275. package/dist/web-office-acts.js.map +1 -0
  276. package/dist/web-office-pack-read.d.ts +35 -0
  277. package/dist/web-office-pack-read.js +252 -0
  278. package/dist/web-office-pack-read.js.map +1 -0
  279. package/dist/web-office-pack-tools.d.ts +232 -0
  280. package/dist/web-office-pack-tools.js +754 -0
  281. package/dist/web-office-pack-tools.js.map +1 -0
  282. package/dist/web-office-skins.d.ts +71 -6
  283. package/dist/web-office-skins.js +321 -35
  284. package/dist/web-office-skins.js.map +1 -1
  285. package/dist/web-office-store.d.ts +5 -2
  286. package/dist/web-office-store.js +69 -10
  287. package/dist/web-office-store.js.map +1 -1
  288. package/dist/web-settings-patch.d.ts +2 -1
  289. package/dist/web-settings-patch.js +4 -1
  290. package/dist/web-settings-patch.js.map +1 -1
  291. package/dist/working-recovery.d.ts +2 -2
  292. package/dist/working-recovery.js +43 -8
  293. package/dist/working-recovery.js.map +1 -1
  294. package/dist/working-state-journal.d.ts +2 -0
  295. package/dist/working-state-journal.js +16 -1
  296. package/dist/working-state-journal.js.map +1 -1
  297. package/package.json +3 -2
  298. package/templates/windows-shortcuts.ps1 +155 -140
@@ -80,6 +80,12 @@ export declare function scanKiroInstanceForForgedEnvelopes(opts: {
80
80
  * data.sqlite3, not the shared store.
81
81
  */
82
82
  storeHome?: string;
83
+ /** Engine-selected TUI read; no SQLite fallback. */
84
+ tui?: {
85
+ sessionsDir?: string;
86
+ sessionId: string;
87
+ stillOwned: () => boolean;
88
+ };
83
89
  alreadyReportedIds?: Set<string>;
84
90
  }): KiroForgedScanResult;
85
91
  export interface ScanTargetConfig {
@@ -87,6 +93,7 @@ export interface ScanTargetConfig {
87
93
  backend: string;
88
94
  workingDirectory?: string;
89
95
  backendOptions?: Record<string, Record<string, unknown>>;
96
+ kiroUi?: InstanceConfig["kiro_ui"];
90
97
  }
91
98
  /**
92
99
  * Effective per-instance scan config, merged EXACTLY like the daemon's
@@ -135,6 +142,8 @@ export declare function executeForgedEnvelopeScan(opts: {
135
142
  outboxDbPath: string;
136
143
  dataDir: string;
137
144
  kiroDbOverride?: string;
145
+ /** Explicit TUI root for offline rigs; never changes the engine selection. */
146
+ kiroSessionsOverride?: string;
138
147
  alreadyReportedIds?: Set<string>;
139
148
  }): ScanCommandResult;
140
149
  export declare function loadReportedEnvelopeIds(dataDir: string): Set<string>;
@@ -11,8 +11,7 @@ import { ensureAgendHome } from "./agend-home.js";
11
11
  * triggers a verification warning; retention expiry also makes a real message
12
12
  * unverifiable, so this is not proof that the receiver fabricated the turn.
13
13
  *
14
- * Only kiro has a reader here: its conversation store
15
- * (`~/.local/share/kiro-cli/data.sqlite3`, conversations_v2) is on disk.
14
+ * Kiro classic uses conversations_v2 in data.sqlite3; TUI uses the owned, pinned session JSONL.
16
15
  * Claude jsonl / Codex rollouts / other backends are per-backend follow-ups.
17
16
  *
18
17
  * Everything query-side is read-only: the kiro store opens readonly and the
@@ -22,6 +21,8 @@ import { ensureAgendHome } from "./agend-home.js";
22
21
  import { t } from "./locale.js";
23
22
  import { existsSync, readFileSync, writeFileSync } from "node:fs";
24
23
  import { join } from "node:path";
24
+ import { kiroEngineFloor, kiroOwnedConversation } from "./backend/kiro-identity.js";
25
+ import { readKiroTuiAssistantTexts } from "./kiro-tui-forensic.js";
25
26
  import { credentialStoreHomeForInstance } from "./backend/credential-profile.js";
26
27
  import { deepMergeGeneric, getEffectiveInstanceDefaults } from "./config.js";
27
28
  import { DeliveryOutbox, deliveryStatusSelector } from "./delivery-outbox.js";
@@ -162,7 +163,9 @@ export function scanKiroInstanceForForgedEnvelopes(opts) {
162
163
  instanceName: opts.instanceName, conversationId: null, checked: 0, delivered: 0, unverifiable: 0, findings: [],
163
164
  };
164
165
  const kiroDbPath = opts.kiroDbPath ?? kiroStoreDbPath(opts.storeHome);
165
- const convo = readKiroAssistantTexts(opts.workingDirectory, kiroDbPath);
166
+ const convo = opts.tui
167
+ ? readKiroTuiAssistantTexts(opts.tui)
168
+ : readKiroAssistantTexts(opts.workingDirectory, kiroDbPath);
166
169
  if (convo.kind === "unreadable") {
167
170
  return { ...base, status: "unreadable-store", reason: convo.reason };
168
171
  }
@@ -209,6 +212,7 @@ export function resolveScanTarget(name, rawInstance, fleetDefaults) {
209
212
  backend,
210
213
  workingDirectory: merged.working_directory,
211
214
  backendOptions: merged.backend_options,
215
+ ...(merged.kiro_ui ? { kiroUi: merged.kiro_ui } : {}),
212
216
  };
213
217
  }
214
218
  /**
@@ -234,6 +238,13 @@ export function executeForgedEnvelopeScan(opts) {
234
238
  });
235
239
  continue;
236
240
  }
241
+ const floor = kiroEngineFloor(opts.dataDir, target.name);
242
+ if (target.kiroUi === "v3" || floor === "v3") {
243
+ unreadable++;
244
+ rows.push({ instance: target.name, backend: target.backend, status: "unreadable-store",
245
+ reason: "V3 has no supported stable forensic session store; no TUI or classic fallback is permitted.", findings: [] });
246
+ continue;
247
+ }
237
248
  if (!target.workingDirectory) {
238
249
  incomplete++;
239
250
  rows.push({
@@ -245,11 +256,24 @@ export function executeForgedEnvelopeScan(opts) {
245
256
  });
246
257
  continue;
247
258
  }
248
- // A profiled instance writes its transcript to its own store, not the
249
- // shared one — scan the store its CLI actually uses.
259
+ // Profiles relocate classic SQLite only; V2 uses its shared session root and profile-specific ownership key.
250
260
  const storeHome = opts.kiroDbOverride
251
261
  ? undefined
252
262
  : credentialStoreHomeForInstance(opts.dataDir, target.backend, target.backendOptions?.[target.backend]);
263
+ let tui;
264
+ if (target.kiroUi === "tui" || floor === "v2") {
265
+ const identity = { agendHome: opts.dataDir, instance: target.name, engine: "v2",
266
+ workingDirectory: target.workingDirectory, credentialProfile: typeof target.backendOptions?.[target.backend]?.credential_profile === "string"
267
+ ? target.backendOptions[target.backend].credential_profile : null };
268
+ const sessionId = kiroOwnedConversation(identity);
269
+ if (!sessionId) {
270
+ unreadable++;
271
+ rows.push({ instance: target.name, backend: target.backend, status: "unreadable-store",
272
+ reason: "No owned, pinned TUI session is recorded for this directory and credential profile; the classic conversation is frozen.", findings: [] });
273
+ continue;
274
+ }
275
+ tui = { sessionId, sessionsDir: opts.kiroSessionsOverride, stillOwned: () => kiroOwnedConversation(identity) === sessionId };
276
+ }
253
277
  const result = scanKiroInstanceForForgedEnvelopes({
254
278
  instanceName: target.name,
255
279
  workingDirectory: target.workingDirectory,
@@ -257,6 +281,7 @@ export function executeForgedEnvelopeScan(opts) {
257
281
  knownInstances: opts.knownInstances,
258
282
  ...(opts.kiroDbOverride ? { kiroDbPath: opts.kiroDbOverride } : {}),
259
283
  ...(storeHome ? { storeHome } : {}),
284
+ ...(tui ? { tui } : {}),
260
285
  alreadyReportedIds: reported,
261
286
  });
262
287
  for (const f of result.findings)
@@ -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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"}
@@ -156,8 +156,11 @@ left untouched; the switch copies, never moves.
156
156
  - `conversation_carried_over: true` — the copy succeeded and the agent resumed
157
157
  the same conversation on the new account. The reply also carries
158
158
  `conversation_note`: relay it. It says the old copy is still there and
159
- warns that the next turn re-reads the full history from a cold cache — one
160
- slower, full-price turn on the new subscription.
159
+ notes that the switch does not by itself make the prompt cache cold: within
160
+ the same cache scope (organization, and workspace where the provider isolates
161
+ them) an unchanged model and prompt prefix are usually reused. The next turn
162
+ may rebuild it (one slower, full-price turn) when the scope, the model or the
163
+ profile's settings differ, or the cache has expired. Don't promise either.
161
164
 
162
165
  - `conversation_carried_over: false` + `carry_failed: "<reason>"` — the copy
163
166
  could not be made. Common reasons: no session id recorded, not enough free
@@ -51,10 +51,33 @@ The user has already been shown the plain notice in this topic. When they ask, e
51
51
 
52
52
  - Never start, restart, recreate or replace a stopped kiro instance to "try again". It will refuse the same way.
53
53
  - Never change `kiro_ui` or `backend` to get an instance running. A different engine starts a different
54
- conversation, and the move cannot be undone.
54
+ conversation, and the move cannot be undone. The one way an instance changes engine is the move below.
55
55
  - Never run `kiro-cli` yourself, and never delete or edit anything under `~/.kiro` or kiro's data directory.
56
56
  - Never reply to the `[system:kiro-incompat]` notice itself. It is information, not a request.
57
57
 
58
+ ## Moving an instance from classic to the TUI engine (#2598)
59
+
60
+ kiro-cli 3.0 drops the classic engine (`kiro_ui: legacy`), so classic instances are being moved to the TUI engine,
61
+ **one batch at a time and only with the user's OK for that batch**. The move is `migrate_kiro_instance` (a
62
+ coordinator-level tool; you do not have it). It carries the conversation: the instance's classic conversation is
63
+ resumed once under the TUI and becomes its own. A fleet admin confirms each move in this General topic: a
64
+ "Move it / Cancel" prompt. Explain it if asked; never press it on the user's behalf.
65
+
66
+ The Confirm prompt warns about sudo/interactive passwords and explains both launches. AgEnD requires an idle
67
+ instance, a supported Kiro 2.34+ version and a known model. It carries once, verifies the owned V2 reader, then does
68
+ an ordinary restart: while the target CLI is stopped, it archives the exact frozen classic rows before removing
69
+ the duplicate from Kiro's index. It verifies the same conversation/model and attached V2 transcript again, and
70
+ reports the forensic verdict in General and the instance's topic. Queued work waits until this finishes. Failure
71
+ stops and error-pauses the instance; inspect the cause before an explicit retry. Never use a fresh conversation
72
+ or classic as a recovery shortcut. Archives are private and restorable with `agend kiro restore-classic` (see CLI docs).
73
+ The raw Log-history gate remains closed: the verification proves the launched/pinned reader, not ongoing pane
74
+ session identity after `/chat` or `/clear`.
75
+
76
+ - After the move, `kiro_engine_status` shows `kiro_ui: tui` and `engine_floor: "tui"`.
77
+ - It is one-way. AgEnD refuses to launch a moved instance on classic again, because that would resume the frozen
78
+ classic copy and lose everything done since. A refusal that names the engine floor means someone set `kiro_ui`
79
+ back. The fix is to set it to `tui` again, never to remove the floor.
80
+
58
81
  ## One kiro agent per instance (#906)
59
82
 
60
83
  Since kiro-cli 2.21, each AgEnD kiro instance (tui / v2 engine) runs as its own kiro agent, holding only its own
@@ -20,6 +20,7 @@ can shape how you look there — **only your own look, and only on the surfaces
20
20
  | Your identity colour | the colour people find you by in the sidebar, and where it shows (name, bar, ring) | `set_web_theme` (`identity`) |
21
21
  | Your chat header strip and Details page | widgets: small panels of facts the dashboard draws | `set_web_widget`, `remove_web_widget` |
22
22
  | An ambient effect in your chat | falling petals, snow, rising lanterns, twinkles, stars where a person clicks — data only, drawn by the dashboard | `set_web_ambient`, `clear_web_ambient` |
23
+ | Your character in Fleet → Org chart → Office | walk to a seat, a spot or a person, say a short line, hold a pose — for a few seconds (off until a person switches it on) | `office_view`, `office_set` |
23
24
 
24
25
  None of these tools takes a target: they always act on you. You can't change another instance, the dashboard's own
25
26
  chrome (beyond your colours on it while your chat is open), a person's sidebar widget, or a person's custom CSS.
@@ -265,6 +266,53 @@ needs no Try, no preview consent and no measurement — use it for petals, snow,
265
266
 
266
267
  Then stars on a click, alongside: `set_web_ambient { "preset": "burst-on-click", "glyphs": ["✦", "✧"] }`.
267
268
 
269
+ ## Your character in the Office view
270
+
271
+ Fleet → Org chart → **Office** draws the fleet as an office, with a little character per agent placed by its state.
272
+ When a person switches the **office** dashboard feature on for you (`office_access: true`; off until then — the tools
273
+ are not in your list), you can direct your own character for a moment:
274
+
275
+ - `office_view { office? }`: the stored offices you are in — each `{ id, name, skin, members: [{ name, display_name?,
276
+ state }], spots: { seats: [{ area, index, x, y }], waypoints: [{ id, x, y }], npcs: [{ id, label, x, y }], door } }` —
277
+ your current `act` (or null) and `cooldown_ms` (0: you may act now). `walks: false`: the office is drawn as desks (a
278
+ built-in style such as pixel or studio, or a pack without zones) — no spots; `say` and `pose` show, `go` is refused.
279
+ - `office_set { office?, go?, say?, pose?, seconds?, clear? }`: `go` is exactly one of `seat` (`"area:index"`, as
280
+ office_view lists it), `waypoint` (an id) or `person` (a member of the same office); `say` a line of 1..40 characters
281
+ (a speech bubble); `pose` one of idle, working, needs, paused; `seconds` 5..120 (default 30). `clear: true`, alone,
282
+ ends your act. `office` is needed only when you are in more than one.
283
+ - Each call replaces your act. It ends when its seconds are up or you begin new work (the turn you set it in, and being
284
+ idle after, keep it; working again after that, or after setting it while idle, ends it); it is not shown while you
285
+ need a person (needs, crashed, stuck), are paused or stopped, or are asleep at bedtime — real work always shows. At most **6 calls a minute** and **60 an hour**: a refusal says `cooldown_ms`.
286
+
287
+ ```json
288
+ { "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
289
+ ```
290
+
291
+ ## Office skin packs (everyone's)
292
+
293
+ The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
294
+ **office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
295
+ tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
296
+
297
+ - `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
298
+ version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
299
+ `approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
300
+ `limits` and what is `left` of your hour.
301
+ - `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
302
+ first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
303
+ directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
304
+ files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
305
+ - `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
306
+ any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
307
+ longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
308
+ and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
309
+ them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again.
310
+ - `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
311
+ `office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
312
+ built-in style (pixel, studio, cozy).
313
+ - Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
314
+ hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
315
+
268
316
  ## Limits
269
317
 
270
318
  - At least **30 s** between changes, at most **10 changes an hour** — refused with `rate_limited` and
@@ -286,7 +334,7 @@ Then stars on a click, alongside: `set_web_ambient { "preset": "burst-on-click",
286
334
  From a shell: `agend-agent theme get|set key=value…|set --json '<patch>'|clear <path>…|asset <slot> <file>|reset`,
287
335
  `agend-agent appearance`, `agend-agent appearance preview [light|dark]`, and
288
336
  `agend-agent widget set <slot> '<spec json>' ['<data json>']|data <slot> '<data json>'|remove [slot]`,
289
- `agend-agent ambient set '<spec json>'|clear [loop|click]`.
337
+ `agend-agent ambient set '<spec json>'|clear [loop|click]`, `agend-agent office view [office]|set '<json>'`.
290
338
 
291
339
  ## Files in your working directory
292
340
 
@@ -20,6 +20,7 @@ can shape how you look there — **only your own look, and only on the surfaces
20
20
  | Your identity colour | the colour people find you by in the sidebar, and where it shows (name, bar, ring) | `set_web_theme` (`identity`) |
21
21
  | Your chat header strip and Details page | widgets: small panels of facts the dashboard draws | `set_web_widget`, `remove_web_widget` |
22
22
  | An ambient effect in your chat | falling petals, snow, rising lanterns, twinkles, stars where a person clicks — data only, drawn by the dashboard | `set_web_ambient`, `clear_web_ambient` |
23
+ | Your character in Fleet → Org chart → Office | walk to a seat, a spot or a person, say a short line, hold a pose — for a few seconds (off until a person switches it on) | `office_view`, `office_set` |
23
24
  | A file of your look | a mod: export yours, or propose one for a person | `export_web_mod`, `propose_web_mod` |
24
25
  | Effects in your chat | Canvas Worker animations, and Try cards an admin outside the public link may start | `upload_web_effect`, `apply_web_effect`, `preview_web_effect`, … (see Effects) |
25
26
 
@@ -273,6 +274,53 @@ Use a Canvas Worker effect (below) only for what a preset can't express.
273
274
 
274
275
  Then stars on a click, alongside: `set_web_ambient { "preset": "burst-on-click", "glyphs": ["✦", "✧"] }`.
275
276
 
277
+ ## Your character in the Office view
278
+
279
+ Fleet → Org chart → **Office** draws the fleet as an office, with a little character per agent placed by its state.
280
+ When a person switches the **office** dashboard feature on for you (`office_access: true`; off until then — the tools
281
+ are not in your list), you can direct your own character for a moment:
282
+
283
+ - `office_view { office? }`: the stored offices you are in — each `{ id, name, skin, members: [{ name, display_name?,
284
+ state }], spots: { seats: [{ area, index, x, y }], waypoints: [{ id, x, y }], npcs: [{ id, label, x, y }], door } }` —
285
+ your current `act` (or null) and `cooldown_ms` (0: you may act now). `walks: false`: the office is drawn as desks (a
286
+ built-in style such as pixel or studio, or a pack without zones) — no spots; `say` and `pose` show, `go` is refused.
287
+ - `office_set { office?, go?, say?, pose?, seconds?, clear? }`: `go` is exactly one of `seat` (`"area:index"`, as
288
+ office_view lists it), `waypoint` (an id) or `person` (a member of the same office); `say` a line of 1..40 characters
289
+ (a speech bubble); `pose` one of idle, working, needs, paused; `seconds` 5..120 (default 30). `clear: true`, alone,
290
+ ends your act. `office` is needed only when you are in more than one.
291
+ - Each call replaces your act. It ends when its seconds are up or you begin new work (the turn you set it in, and being
292
+ idle after, keep it; working again after that, or after setting it while idle, ends it); it is not shown while you
293
+ need a person (needs, crashed, stuck), are paused or stopped, or are asleep at bedtime — real work always shows. At most **6 calls a minute** and **60 an hour**: a refusal says `cooldown_ms`.
294
+
295
+ ```json
296
+ { "go": { "person": "atlas" }, "say": "Review's ready", "seconds": 20 }
297
+ ```
298
+
299
+ ## Office skin packs (everyone's)
300
+
301
+ The Office view draws offices in **skin packs**, which every viewer on the fleet sees. When a person switches the
302
+ **office_packs** dashboard feature on for you (`office_pack_access: true`, its own switch — off until then, and the
303
+ tools are not in your list), you can publish them yourself instead of asking a person to upload each fix by hand:
304
+
305
+ - `office_pack_list {}` first: each pack's `id`, `name`, `files`, `bytes`, `version`, `previous` (a kept previous
306
+ version you can restore, or null) and the `offices` drawn in it; the stored offices and their style; the fleet's
307
+ `approval` (`"apply"`: at once; `"approve"`: a fleet admin's yes first — the default); your `pending` changes; the
308
+ `limits` and what is `left` of your hour.
309
+ - `office_pack_check { dir }` runs the host's own checks and stores nothing: `{ result: "PACK OK", packs: [...] }` or the
310
+ first refusal. `dir` is a folder with its `manifest.json` and the PNGs at the paths the manifest names, in your working
311
+ directory or the fleet's shared folder (`~/.agend/shared`); a symlink is followed and must stay inside. Only those
312
+ files are read. Or `manifest` (the object) + `files` (`{ "<name it uses>": "<path>" }`); `packs: [...]` for several.
313
+ - `office_pack_upload` (the same inputs) keeps it — an id the fleet keeps is **replaced** at once (no delete first; on
314
+ any failure the old one stays) and its previous version is kept. If a stored office's layout overrides would no
315
+ longer fit (a seat count changed, a seat left its area, an item is gone), check and upload refuse with the office
316
+ and the rule: fix the pack, or send `drop_invalid_overrides: true` to drop exactly those entries (the result names
317
+ them). With `"approve"` the answer is `{ pending }`: it waits for an admin's yes — say so; do not upload it again.
318
+ - `office_pack_restore { id }` brings back the previous version (the replaced one becomes the previous);
319
+ `office_pack_delete { id, keep_previous? }`; `office_set_style { office, pack }` points a stored office at a pack or a
320
+ built-in style (pixel, studio, cozy).
321
+ - Every change is logged with each picture's sha256 and told to the fleet's admins. At most **20 batches and 200 MiB an
322
+ hour**: one call is one batch (up to 16 packs), so send a whole set of fixes in one `packs: [...]`.
323
+
276
324
  ## Mods
277
325
 
278
326
  A mod is one file, `<name>-<version>.agendmod.json`, that carries a look: a theme with its pictures, card text,
@@ -322,7 +370,7 @@ with the tools above, then `export_web_mod`.
322
370
  From a shell: `agend-agent theme get|set key=value…|set --json '<patch>'|clear <path>…|asset <slot> <file>|reset`,
323
371
  `agend-agent appearance`, `agend-agent appearance preview [light|dark]`, and
324
372
  `agend-agent widget set <slot> '<spec json>' ['<data json>']|data <slot> '<data json>'|remove [slot]`,
325
- `agend-agent ambient set '<spec json>'|clear [loop|click]`, and
373
+ `agend-agent ambient set '<spec json>'|clear [loop|click]`, `agend-agent office view [office]|set '<json>'`, and
326
374
  `agend-agent mod export <name> <version> [title]|propose <file>`.
327
375
 
328
376
  ## Files in your working directory
@@ -187,6 +187,9 @@ tab title. Items, grouped by instance, oldest first:
187
187
  - the instance: "Paused: sign-in needed", "Crashed";
188
188
  - deliveries from the last 24 h: "Could not confirm delivery", "Delivery failed" (source → target · kind).
189
189
 
190
+ "Asking you a question" is a kiro V3 question card, posted to the instance's chat with a button per answer and a box
191
+ for answering in words (on Discord/Telegram: reply to the post); an MCP input request offers Decline / Cancel and is
192
+ filled in at the terminal (View).
190
193
  A prompt shows its own answer buttons (first answer wins); a delivery has **Acknowledge** (clears it everywhere);
191
194
  "Paused: sign-in needed" has **Sign in** when the dashboard can run that login (#2233); every item has **Open chat**. **Notify me on this device** (Turn on / Turn off) gives desktop notifications while the
192
195
  tab is hidden — per browser, not on phones or plain-HTTP addresses. Config: `needs_you.live_message` (default on),
@@ -263,17 +266,45 @@ in each (whole teams or single instances; none = everyone) and its style, and up
263
266
  artist's pictures: `manifest.json` plus PNGs, format v1, kept in `web-office-skins/` in the AgEnD home; the host
264
267
  checks every rule — PNG only, each strip exactly frames·w × h, a 16:9 background, size caps — and never changes a
265
268
  pack; a strip may give its displayed size, `dw`/`dh`, apart from its pictures' size, and a character may walk four
266
- ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). **Style** (per browser for the whole fleet, per office for a stored one): **Desks** (the default),
267
- **Studio** — one scene (Work, Lounge, Help desk, Nap corner) where each instance walks to the area for its state —
268
- or an uploaded pack; one the page cannot load is drawn as Desks with a note. On a stored office in Studio or a pack,
269
+ ways with `walkDown`, `walkUp` and `walkSide`, the side one mirrored for left). #2692: an agent with **Office skin
270
+ packs** on (`office_pack_access`, Dashboard access) can check, upload, replace, delete and restore packs itself (one
271
+ previous version kept per pack); **Agents changing packs** under the packs names those agents, sets whether their changes
272
+ **Need my yes** (the default) or **Apply at once**, and approves or rejects the waiting ones (also from the notice's
273
+ buttons in General); every change is logged and told in General. **Style** (per browser for the whole fleet, per office for a stored one): **Desks**,
274
+ **Studio** (one scene — Work, Lounge, Help desk, Nap corner — where each instance walks to the area for its state),
275
+ **Cozy** (#2631: the same in a warm pixel-art office drawn as one picture; its notice board says a skin pack can
276
+ restyle it; the default for a browser that has not picked a style and for a new office — a saved office keeps its
277
+ own) or an uploaded pack; one the page cannot load is drawn as Desks with a note. On a stored office in Studio,
278
+ Cozy or a pack,
269
279
  **Edit layout** (admin only) shows a 1280×720 coordinate grid and lets you drag seats, furniture, the door and
270
280
  waypoints (or Tab to one and use the arrow keys, Shift for 10), add or remove waypoints and join or unjoin
271
- corridors; **Save layout** keeps the moves as that office's overrides (the pack stays as uploaded), **Reset** goes
272
- back to the pack's own. While it is open the office picker and Edit offices wait (**Cancel** closes it); if someone
281
+ corridors; an item that sleeps at bedtime (a pack's `night`) has a night handle too ("Item {id} (night)": its night
282
+ picture faint, a moon, a line to its day place; on the day place while it sleeps in place) — drag it to give the item
283
+ its own night place, **Back to the pack's night place** undoes it (#2665); a selected seat has **Reserved for** (the
284
+ office's members, several allowed) and **Lend when away** (#2691) — whoever it is for sits there first when they come
285
+ to its area, nobody else does unless it is lent while they are all away (a borrower moves off when one comes), and a
286
+ reserved seat's handle is ringed; a pack can reserve seats as well; **Save layout** keeps the moves as that
287
+ office's overrides (the pack stays as uploaded), **Reset** goes back to the pack's own. While it is open the office picker and Edit offices wait (**Cancel** closes it); if someone
273
288
  saved the offices meanwhile, Save says so and keeps your layout — Save again puts it on the current list. A crowded area packs extra people into a tighter grid, then shows "+N" in its corner; there
274
289
  only calls and work get bubbles (a few at most) and name tags show on hover or focus. **Hide paused and stopped**
275
290
  (per browser, off by default) leaves the sleepers out. Now and then someone says a short line for their state in a
276
291
  bubble (never message content). Reduced motion: still poses, nothing in the air, bubbles shown whole.
292
+ **All offices** (in the switcher once two or more offices are stored, kept per device) shows every stored office as
293
+ a tile on one canvas, each exactly as its own view (its style, members, seats, bubbles, walking), labelled with its
294
+ name and head count, each as large as its office's content, packed to fill the panel; **Lobby tile** (on by
295
+ default; disabled when everyone is in an office) adds the instances in no office. Below 75% name tags show on hover
296
+ only. Hover and click work across
297
+ tiles; a tile's label, or a double-click on it, opens that office; traffic between offices flies straight across.
298
+ Edit offices and Edit layout wait for a single office.
299
+ **Share…** (#2636; an admin session, on the dashboard reached directly or over the public link — never read-only or a guest; the URL shows only to its maker, in the dialog) makes an Office share
300
+ link: anyone who opens it watches one office (or **All offices**) live, read-only, with no sign-in — names, identity
301
+ colours and states, every 5 s; no chat, no clicks into anything, no settings; agents' `office_set` lines only when
302
+ **Include agents' own status lines** is ticked; hidden instances never. 1 h by default, 15 min to 24 h
303
+ (`web.office_share.max_hours`); at most 10 open. Its own quick tunnel (`https://<random>.trycloudflare.com/o/<token>`)
304
+ starts with the first link and stops with the last; the token is shown once. There is no chat command: the button only. Open links and **Revoke** are in **Settings → Access
305
+ & security → Office share links**; each made or revoked link is announced in General (never its URL). A Cloudflare 429
306
+ says to try again in a few minutes (no retry). `web.office_share.enabled: false` turns it off and ends open links.
307
+
277
308
  The Office fills the Fleet panel and moves like the Canvas (#2540): drag to pan, the wheel or a pinch to zoom,
278
309
  **+** / **−** / **Fit** / **Fill** at the top right (the zoom shown as a percentage above them) or the `+ - 0` keys
279
310
  (with the office focused), an overview at the bottom right to jump (not on a phone). It takes the whole panel: the
@@ -293,6 +324,8 @@ A pack may add a `foreground` (a 16:9 PNG over the whole scene, zones packs only
293
324
  and items in the air, below name tags, bubbles and "+N" — door frames, pillars, table fronts that hide whoever walks
294
325
  behind them. A furniture item's `depth` may be `"y"`: drawn among the people by base y (whoever stands lower is in
295
326
  front). Numeric depths keep their meaning (under 1000 under the people, 1000 and up over them).
327
+ A pack may set `"straight": true` (#2634): each diagonal leg of a walk becomes an L (across, then up or down), so the
328
+ three walking strips always fit; lay its graph out with horizontal and vertical edges and the corners land on the aisles.
296
329
 
297
330
  **Live traffic** (**Live** switch, on by default; **Key** in the toolbar explains it, as a strip above the canvas): a line for each message between instances.
298
331
  Colour by kind — task (delegate_task) purple, send/query/update teal, report pink, broadcast orange; between teams
@@ -370,11 +403,14 @@ coordinators and full-profile instances, and each other instance only its own ro
370
403
 
371
404
  **The usage report** (the `get_usage_report` tool, and Fleet → **Usage**, `/ui/fleet/usage`, #2122; the ◔ dialog's
372
405
  **By agent →** opens it). Per instance (or backend,
373
- model, credential profile, team): input, output, cache read and cache write tokens, requests, delivered messages,
406
+ model, credential profile, team): input, output, reasoning, cache read and cache write tokens, requests, delivered messages,
374
407
  and an amount, over today / 7d / month / all / custom days in the fleet's timezone. **Every amount is the
375
408
  API-equivalent at list price — not money spent** (subscriptions aren't billed per token): say "API-equivalent", never
376
- "spent". Measured for Claude Code and Codex. Marks to repeat in words:
377
- - `cache_write_not_reported`: Codex records no cache writes, so they are neither shown as 0 nor priced.
409
+ "spent". Measured for Claude Code, Codex, Grok, Muse, OpenCode and Antigravity; **estimated** for Kiro (it records no token counts). Marks to repeat in words:
410
+ - `cost_reported`: the model has no list price in AgEnD's table, so the amount is what the CLI (Grok, OpenCode's provider) reported.
411
+ - `estimated` (a row) / `includes_estimates` (the totals, with `amountEstimated`): Kiro's tokens are estimated from text
412
+ size, not measured — say "estimated" and give the estimated part apart.
413
+ - `cache_write_not_reported`: Codex and Muse record no cache writes, so they are neither shown as 0 nor priced.
378
414
  - `not_priced`: the tokens are shown, the amount isn't.
379
415
  - `source_unknown`: read before #2122, when which backend and profile read it was not recorded (backend and profile
380
416
  "unknown" — never today's).
@@ -466,6 +502,7 @@ opencode: no dashboard sign-in. Config: `web_terminal.*` (as `/login`).
466
502
  | Agent mode, Tool set | `agent_mode`, `tool_set` | agent |
467
503
  | Tool progress; Bot-to-bot messages in topics (full / summary / hidden); Log level | `tool_progress`, `cross_instance_visibility`, `log_level` | now |
468
504
  | Require a delivered reply | `reply_completion_guard` | now |
505
+ | Daily tips (Topic / Off; always posted in General, never by DM) | `tips` | now |
469
506
  | Lightweight mode, Fallback model | `lightweight`, `model_failover` | agent |
470
507
  | System prompt | `systemPrompt` | agent |
471
508
  | Tags | `tags` | now |
@@ -500,11 +537,12 @@ progress, reply guard, **ClassicBot admins**, **Allowed guilds**.
500
537
  | Terminal session minutes (1–20) | `web_terminal.ttl_minutes` |
501
538
  | Web echo | `web.echo_to_channel` |
502
539
  | Log tab: each agent's steps | `web.log_tab` |
540
+ | Web sign-in notices (Topic / Off; never by DM, guest and public-link notices always post) | `web.notify_login` |
503
541
  | Offer temporary public web links | `web.public_link.allow_public` |
504
542
  | Public link minutes (1–480; with a fixed hostname 0–10080, 0 = no expiry) | `web.public_link.ttl_minutes` |
505
543
  | Reopen the public link when AgEnD starts (fixed hostname only) | `web.public_link.auto_open` |
506
544
  | Tunnel protocol (http2 / quic / auto) | `web.public_link.protocol` |
507
- Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `notify_login`, `preview`, `preview_port`,
545
+ Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `preview`, `preview_port`,
508
546
  `preview_origin`, `preview_on_public_link`, `usage_panel`, `search` (`retention_days`: unset and 0 = no age limit,
509
547
  300,000-row cap), `provider_secrets`, `upload_max_file_mb`,
510
548
  `upload_max_total_mb`, `web_terminal.bind`, `web_terminal.tunnel`.