@songsid/agend 2.3.2-beta.3 → 2.3.2-beta.5

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 (223) hide show
  1. package/THIRD_PARTY_NOTICES.md +40 -0
  2. package/dist/agent-cli.js +21 -2
  3. package/dist/agent-cli.js.map +1 -1
  4. package/dist/agent-endpoint.js +5 -0
  5. package/dist/agent-endpoint.js.map +1 -1
  6. package/dist/antigravity-usage-scan.d.ts +58 -0
  7. package/dist/antigravity-usage-scan.js +257 -0
  8. package/dist/antigravity-usage-scan.js.map +1 -0
  9. package/dist/antigravity-usage-worker.d.ts +1 -0
  10. package/dist/antigravity-usage-worker.js +10 -0
  11. package/dist/antigravity-usage-worker.js.map +1 -0
  12. package/dist/auth-api.js +2 -0
  13. package/dist/auth-api.js.map +1 -1
  14. package/dist/backend/kiro-identity.d.ts +45 -0
  15. package/dist/backend/kiro-identity.js +74 -0
  16. package/dist/backend/kiro-identity.js.map +1 -1
  17. package/dist/backend/kiro.d.ts +36 -1
  18. package/dist/backend/kiro.js +131 -6
  19. package/dist/backend/kiro.js.map +1 -1
  20. package/dist/backend/types.d.ts +6 -0
  21. package/dist/backend/types.js.map +1 -1
  22. package/dist/backend-signin-guide.d.ts +1 -0
  23. package/dist/backend-signin-guide.js +9 -0
  24. package/dist/backend-signin-guide.js.map +1 -0
  25. package/dist/backend-signin-pending.d.ts +10 -0
  26. package/dist/backend-signin-pending.js +44 -0
  27. package/dist/backend-signin-pending.js.map +1 -0
  28. package/dist/browser-backend-signins.d.ts +56 -0
  29. package/dist/browser-backend-signins.js +189 -0
  30. package/dist/browser-backend-signins.js.map +1 -0
  31. package/dist/cache-ledger.d.ts +38 -2
  32. package/dist/cache-ledger.js +133 -8
  33. package/dist/cache-ledger.js.map +1 -1
  34. package/dist/cache-prices.d.ts +2 -1
  35. package/dist/cache-prices.js +5 -2
  36. package/dist/cache-prices.js.map +1 -1
  37. package/dist/cache-service.d.ts +68 -0
  38. package/dist/cache-service.js +355 -13
  39. package/dist/cache-service.js.map +1 -1
  40. package/dist/channel/adapters/discord.js +7 -4
  41. package/dist/channel/adapters/discord.js.map +1 -1
  42. package/dist/channel/mcp-tools.js +7 -1
  43. package/dist/channel/mcp-tools.js.map +1 -1
  44. package/dist/classic-channel-manager.d.ts +5 -0
  45. package/dist/classic-channel-manager.js +14 -1
  46. package/dist/classic-channel-manager.js.map +1 -1
  47. package/dist/cli.js +21 -2
  48. package/dist/cli.js.map +1 -1
  49. package/dist/config-validator.js +22 -5
  50. package/dist/config-validator.js.map +1 -1
  51. package/dist/config.d.ts +19 -0
  52. package/dist/config.js +31 -1
  53. package/dist/config.js.map +1 -1
  54. package/dist/cpu-quota.d.ts +23 -0
  55. package/dist/cpu-quota.js +86 -0
  56. package/dist/cpu-quota.js.map +1 -0
  57. package/dist/daemon.js +22 -7
  58. package/dist/daemon.js.map +1 -1
  59. package/dist/dashboard-permissions.d.ts +20 -6
  60. package/dist/dashboard-permissions.js +58 -9
  61. package/dist/dashboard-permissions.js.map +1 -1
  62. package/dist/fleet-manager.d.ts +51 -1
  63. package/dist/fleet-manager.js +416 -32
  64. package/dist/fleet-manager.js.map +1 -1
  65. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
  66. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +14 -1
  67. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +24 -1
  68. package/dist/general-knowledge/skills/web-appearance/SKILL.md +24 -1
  69. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +6 -3
  70. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +12 -5
  71. package/dist/instance-config-impact.js +10 -5
  72. package/dist/instance-config-impact.js.map +1 -1
  73. package/dist/instance-lifecycle.d.ts +17 -0
  74. package/dist/instance-lifecycle.js +32 -4
  75. package/dist/instance-lifecycle.js.map +1 -1
  76. package/dist/kiro-db-reader.d.ts +5 -0
  77. package/dist/kiro-db-reader.js +18 -0
  78. package/dist/kiro-db-reader.js.map +1 -1
  79. package/dist/kiro-engine-status.d.ts +2 -0
  80. package/dist/kiro-engine-status.js +9 -0
  81. package/dist/kiro-engine-status.js.map +1 -1
  82. package/dist/kiro-migrate.d.ts +49 -0
  83. package/dist/kiro-migrate.js +105 -0
  84. package/dist/kiro-migrate.js.map +1 -0
  85. package/dist/kiro-transcript-lane.d.ts +2 -0
  86. package/dist/kiro-transcript-lane.js.map +1 -1
  87. package/dist/kiro-transcript-worker.js +1 -0
  88. package/dist/kiro-transcript-worker.js.map +1 -1
  89. package/dist/kiro-usage-run.d.ts +7 -0
  90. package/dist/kiro-usage-run.js +39 -0
  91. package/dist/kiro-usage-run.js.map +1 -0
  92. package/dist/kiro-usage-scan.d.ts +49 -0
  93. package/dist/kiro-usage-scan.js +223 -0
  94. package/dist/kiro-usage-scan.js.map +1 -0
  95. package/dist/kiro-usage-worker.d.ts +1 -0
  96. package/dist/kiro-usage-worker.js +10 -0
  97. package/dist/kiro-usage-worker.js.map +1 -0
  98. package/dist/kiro-usage.d.ts +58 -0
  99. package/dist/kiro-usage.js +310 -0
  100. package/dist/kiro-usage.js.map +1 -0
  101. package/dist/locale.js +72 -8
  102. package/dist/locale.js.map +1 -1
  103. package/dist/log-service.js +1 -1
  104. package/dist/log-service.js.map +1 -1
  105. package/dist/login-url.d.ts +4 -0
  106. package/dist/login-url.js +22 -0
  107. package/dist/login-url.js.map +1 -0
  108. package/dist/needs-you-hub.d.ts +2 -1
  109. package/dist/needs-you-hub.js +1 -1
  110. package/dist/needs-you-hub.js.map +1 -1
  111. package/dist/needs-you.d.ts +8 -2
  112. package/dist/needs-you.js +6 -0
  113. package/dist/needs-you.js.map +1 -1
  114. package/dist/notice-delivery.d.ts +15 -0
  115. package/dist/notice-delivery.js +37 -0
  116. package/dist/notice-delivery.js.map +1 -0
  117. package/dist/opencode-usage-scan.d.ts +28 -0
  118. package/dist/opencode-usage-scan.js +92 -0
  119. package/dist/opencode-usage-scan.js.map +1 -0
  120. package/dist/opencode-usage-worker.d.ts +1 -0
  121. package/dist/opencode-usage-worker.js +10 -0
  122. package/dist/opencode-usage-worker.js.map +1 -0
  123. package/dist/outbound-handlers.js +22 -2
  124. package/dist/outbound-handlers.js.map +1 -1
  125. package/dist/outbound-schemas.d.ts +24 -0
  126. package/dist/outbound-schemas.js +21 -0
  127. package/dist/outbound-schemas.js.map +1 -1
  128. package/dist/public-web-gateway.js +1 -1
  129. package/dist/public-web-gateway.js.map +1 -1
  130. package/dist/quickstart-api.js +13 -2
  131. package/dist/quickstart-api.js.map +1 -1
  132. package/dist/quickstart.js +4 -1
  133. package/dist/quickstart.js.map +1 -1
  134. package/dist/reply-triggers.d.ts +2 -0
  135. package/dist/reply-triggers.js +3 -0
  136. package/dist/reply-triggers.js.map +1 -0
  137. package/dist/settings-api.js +27 -4
  138. package/dist/settings-api.js.map +1 -1
  139. package/dist/settings-change.js +17 -14
  140. package/dist/settings-change.js.map +1 -1
  141. package/dist/settings-effect.js +7 -1
  142. package/dist/settings-effect.js.map +1 -1
  143. package/dist/settings-instance-patch.js +4 -1
  144. package/dist/settings-instance-patch.js.map +1 -1
  145. package/dist/setup-form.d.ts +1 -1
  146. package/dist/setup-form.js +7 -1
  147. package/dist/setup-form.js.map +1 -1
  148. package/dist/setup-host.d.ts +9 -0
  149. package/dist/setup-host.js +126 -6
  150. package/dist/setup-host.js.map +1 -1
  151. package/dist/setup-signin-assets.d.ts +2 -0
  152. package/dist/setup-signin-assets.js +6 -0
  153. package/dist/setup-signin-assets.js.map +1 -0
  154. package/dist/setup-wizard.js +4 -0
  155. package/dist/setup-wizard.js.map +1 -1
  156. package/dist/structured-signin-transport.d.ts +8 -0
  157. package/dist/structured-signin-transport.js +79 -0
  158. package/dist/structured-signin-transport.js.map +1 -0
  159. package/dist/structured-signin.d.ts +131 -0
  160. package/dist/structured-signin.js +388 -0
  161. package/dist/structured-signin.js.map +1 -0
  162. package/dist/tool-permissions.js +12 -0
  163. package/dist/tool-permissions.js.map +1 -1
  164. package/dist/topic-commands.js +6 -2
  165. package/dist/topic-commands.js.map +1 -1
  166. package/dist/transcript-sources.d.ts +26 -2
  167. package/dist/transcript-sources.js +87 -40
  168. package/dist/transcript-sources.js.map +1 -1
  169. package/dist/turn-reply-guard.d.ts +1 -1
  170. package/dist/turn-reply-guard.js +1 -1
  171. package/dist/turn-reply-guard.js.map +1 -1
  172. package/dist/types.d.ts +19 -8
  173. package/dist/ui/backend-signin.js +63 -10
  174. package/dist/ui/fleet-office-editor.js +10 -6
  175. package/dist/ui/fleet-office-layout.js +34 -28
  176. package/dist/ui/fleet-office-model.js +6 -3
  177. package/dist/ui/fleet-office-overview.js +2 -2
  178. package/dist/ui/fleet-office-pack.d.ts +3 -1
  179. package/dist/ui/fleet-office-pack.js +58 -7
  180. package/dist/ui/fleet-office-skin.js +13 -4
  181. package/dist/ui/fleet-office-store.js +27 -1
  182. package/dist/ui/fleet-office-view.js +5 -4
  183. package/dist/ui/fleet-office-zones.js +155 -6
  184. package/dist/ui/fleet-office.js +169 -41
  185. package/dist/ui/fleet-usage.js +19 -15
  186. package/dist/ui/panel-log.js +2 -2
  187. package/dist/ui/panel-needs.js +4 -4
  188. package/dist/ui/panel-settings.js +32 -10
  189. package/dist/ui/settings-dialogs.js +8 -1
  190. package/dist/ui/settings-model.js +14 -6
  191. package/dist/ui/settings-registry.js +4 -0
  192. package/dist/ui/settings-strings.js +14 -0
  193. package/dist/ui/shared/app-i18n.js +4 -2
  194. package/dist/ui/shared/app-shell.js +14 -6
  195. package/dist/ui/shared/app-stream.js +2 -1
  196. package/dist/ui/shared/app.css +18 -2
  197. package/dist/ui/shared/side-panel.js +95 -0
  198. package/dist/ui/structured-signin.js +115 -0
  199. package/dist/usage-report.d.ts +20 -0
  200. package/dist/usage-report.js +54 -17
  201. package/dist/usage-report.js.map +1 -1
  202. package/dist/usage-rollup.d.ts +9 -1
  203. package/dist/usage-rollup.js +20 -4
  204. package/dist/usage-rollup.js.map +1 -1
  205. package/dist/web-api.d.ts +4 -0
  206. package/dist/web-api.js +110 -0
  207. package/dist/web-api.js.map +1 -1
  208. package/dist/web-auth.js +1 -1
  209. package/dist/web-auth.js.map +1 -1
  210. package/dist/web-backend-login.d.ts +1 -7
  211. package/dist/web-backend-login.js +2 -24
  212. package/dist/web-backend-login.js.map +1 -1
  213. package/dist/web-office-acts.d.ts +173 -0
  214. package/dist/web-office-acts.js +285 -0
  215. package/dist/web-office-acts.js.map +1 -0
  216. package/dist/web-office-skins.d.ts +1 -1
  217. package/dist/web-office-skins.js +1 -1
  218. package/dist/web-office-skins.js.map +1 -1
  219. package/dist/web-settings-patch.d.ts +2 -1
  220. package/dist/web-settings-patch.js +4 -1
  221. package/dist/web-settings-patch.js.map +1 -1
  222. package/package.json +2 -1
  223. package/templates/windows-shortcuts.ps1 +18 -7
package/dist/daemon.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { dashboardAccessOf } from "./dashboard-permissions.js";
1
2
  import { agentWhatsNew, agendVersion, planWhatsNew, readWhatsNewRecord, recordWhatsNew, whatsNewNotice } from "./agent-whats-new.js";
2
3
  import { join, dirname, resolve } from "node:path";
3
4
  import { checkoutTarget, readCheckouts, releaseCandidate, reposRoot, verifyWorktree, writeCheckouts } from "./repo-worktree-guard.js";
@@ -86,6 +87,8 @@ const WEB_THEME_IPC = Object.freeze({
86
87
  apply_web_effect: "fleet_apply_web_effect",
87
88
  remove_web_effect: "fleet_remove_web_effect",
88
89
  delete_web_effect: "fleet_delete_web_effect",
90
+ // #2578: its own character in the Office view — the args as they are (the fleet checks them).
91
+ office_view: "fleet_office_view", office_set: "fleet_office_set",
89
92
  });
90
93
  /** The largest picture any slot may take (a card slot's ceiling; the fleet checks the limit in force): read no more. */
91
94
  const WEB_THEME_ASSET_MAX_BYTES = ASSET_UPLOAD_MAX_BYTES;
@@ -1825,6 +1828,9 @@ export class Daemon extends EventEmitter {
1825
1828
  this.spawnGate = spawnGate;
1826
1829
  this.stormWindow = stormWindow;
1827
1830
  this.backendOutage = backendOutage;
1831
+ // The live process owns its adopted configuration. Fleet defaults may be re-resolved in place after a save;
1832
+ // sharing that object would activate cold changes before the normal restart/apply boundary.
1833
+ this.config = structuredClone(config);
1828
1834
  if (!rootLogger)
1829
1835
  throw new Error("Daemon requires a shared root logger");
1830
1836
  this.runtimeIdentity ??= {
@@ -2400,7 +2406,7 @@ export class Daemon extends EventEmitter {
2400
2406
  // (statusline transcript); codex/kiro/opencode read their CLI's own
2401
2407
  // conversation store via a pluggable source. Backends with no known
2402
2408
  // source stay inert exactly as before.
2403
- this.transcriptMonitor = this.buildTranscriptMonitor(createTranscriptSource(this.config.backend ?? "claude-code", this.config.working_directory, this.credentialProfileStore()));
2409
+ this.transcriptMonitor = this.buildTranscriptMonitor(createTranscriptSource(this.config.backend ?? "claude-code", this.config.working_directory, this.credentialProfileStore(), () => this.backend?.transcriptLaunch?.() ?? null));
2404
2410
  const transcriptMonitor = this.transcriptMonitor;
2405
2411
  const transcriptFence = this.launchFenceEpoch;
2406
2412
  // Baseline in the isolate before this daemon accepts new work. A
@@ -5851,8 +5857,8 @@ export class Daemon extends EventEmitter {
5851
5857
  generation: turn.generation,
5852
5858
  reason,
5853
5859
  recoveryStarted: true,
5860
+ message: formatReplyDropDetection(turn, reason),
5854
5861
  });
5855
- this.deliverReplyDropNotice("inst.reply_drop_retrying", "replydrop", "Reply-drop status", turn, reason, false);
5856
5862
  this.queueReplyRecoveryPrompt(turn);
5857
5863
  }
5858
5864
  reportReplyDropWithoutRetry(turn, reason) {
@@ -5862,8 +5868,8 @@ export class Daemon extends EventEmitter {
5862
5868
  generation: turn.generation,
5863
5869
  reason,
5864
5870
  recoveryStarted: false,
5871
+ message: formatReplyDropDetection(turn, reason),
5865
5872
  });
5866
- this.deliverReplyDropNotice("inst.reply_drop_unknown", "replydrop", "Unconfirmed reply status", turn, reason, true);
5867
5873
  }
5868
5874
  queueReplyRecoveryPrompt(turn) {
5869
5875
  const deliveryEpoch = this.deliveryEpoch;
@@ -5955,6 +5961,7 @@ export class Daemon extends EventEmitter {
5955
5961
  correlationId: turn.target.correlationId,
5956
5962
  generation: turn.generation,
5957
5963
  reason,
5964
+ message: formatReplyDropDetection(turn, reason),
5958
5965
  });
5959
5966
  this.deliverReplyDropNotice("inst.reply_drop_unrecovered", "replydropwarn", "Reply-drop recovery warning", turn, reason, true);
5960
5967
  }
@@ -5969,7 +5976,7 @@ export class Daemon extends EventEmitter {
5969
5976
  }
5970
5977
  this.lastReplyDropWarningAt = now;
5971
5978
  }
5972
- void this.deliverDaemonReply(t(key, formatReplyDropDetection(turn, reason)), kind, title, turn.target, true);
5979
+ void this.deliverDaemonReply(t(key), kind, title, turn.target, true);
5973
5980
  }
5974
5981
  /** Relay the pane's final text to the channel, marked as a daemon proxy reply. */
5975
5982
  async sendProxyReply(pane, target) {
@@ -6666,6 +6673,10 @@ export class Daemon extends EventEmitter {
6666
6673
  if (update.tool_progress === null || ["off", "standard", "verbose"].includes(String(update.tool_progress))) {
6667
6674
  this.updateToolProgress(update.tool_progress === null ? undefined : update.tool_progress);
6668
6675
  }
6676
+ if (typeof update.reply_triggers === "boolean")
6677
+ this.config.reply_triggers = update.reply_triggers;
6678
+ else if (update.reply_triggers === null)
6679
+ delete this.config.reply_triggers;
6669
6680
  if (typeof update.reply_completion_guard === "boolean") {
6670
6681
  this.config.reply_completion_guard = update.reply_completion_guard;
6671
6682
  }
@@ -6719,6 +6730,10 @@ export class Daemon extends EventEmitter {
6719
6730
  else if (update.board_cards_at_once === null)
6720
6731
  delete this.config.board_cards_at_once;
6721
6732
  // The fleet reads it at each tool call; kept current here for the next spawn's tool menu.
6733
+ if (typeof update.office_access === "boolean")
6734
+ this.config.office_access = update.office_access;
6735
+ else if (update.office_access === null)
6736
+ delete this.config.office_access;
6722
6737
  if (update.dashboard && typeof update.dashboard === "object" && !dashboardAccessProblem(update.dashboard))
6723
6738
  this.config.dashboard = update.dashboard;
6724
6739
  else if (update.dashboard === null)
@@ -10821,7 +10836,7 @@ export class Daemon extends EventEmitter {
10821
10836
  fleetCwd: process.cwd(),
10822
10837
  onWarning: (warning) => {
10823
10838
  if (warning.problem === "fleet_dir_fallback") {
10824
- this.logger.warn({ field: warning.field, path: warning.path, legacyPath: warning.legacyPath }, `${warning.field} file: ref is not under the instance's working directory (${warning.path}); read ${warning.legacyPath} from the fleet directory instead — make the path absolute or move the file. The fallback is removed in 2.2.`);
10839
+ this.logger.warn({ field: warning.field, path: warning.path, legacyPath: warning.legacyPath }, `${warning.field} file: ref is not under the instance's working directory (${warning.path}); read ${warning.legacyPath} from the fleet directory instead — make the path absolute or move the file. A later release will remove this fallback.`);
10825
10840
  const key = `${warning.field}:${warning.path}`;
10826
10841
  if (!this.promptFileFallbackNoticed.has(key)) {
10827
10842
  this.promptFileFallbackNoticed.add(key);
@@ -10909,7 +10924,7 @@ export class Daemon extends EventEmitter {
10909
10924
  mcpEnv.AGEND_TOOL_SET = toolSet;
10910
10925
  // The dashboard features the person switched off: out of the tool menu from this start (the fleet refuses them
10911
10926
  // at once, whatever the menu still shows).
10912
- const dashboardOff = dashboardFeaturesOff(this.config.dashboard);
10927
+ const dashboardOff = dashboardFeaturesOff(dashboardAccessOf(this.config));
10913
10928
  if (dashboardOff.length)
10914
10929
  mcpEnv.AGEND_DASHBOARD_OFF = dashboardOff.join(",");
10915
10930
  if (this.config.display_name)
@@ -11348,7 +11363,7 @@ export class Daemon extends EventEmitter {
11348
11363
  // out loud — this start does NOT continue the previous conversation.
11349
11364
  this.logger.error({ attempts: failures }, "Giving up on resuming after repeated startup failures — starting fresh. "
11350
11365
  + "The previous conversation is NOT continued; its context is lost to this session.");
11351
- this.emit("context_lost", this.name, "resume_repeatedly_failed");
11366
+ this.emit("context_lost", this.name, "resume_repeatedly_failed", failures);
11352
11367
  }
11353
11368
  this.setSessionAside(proven ? "cli_reported_no_conversation" : "resume_failed_repeatedly");
11354
11369
  this.skipResume = true;