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

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 (48) hide show
  1. package/dist/agent-whats-new.js +14 -9
  2. package/dist/agent-whats-new.js.map +1 -1
  3. package/dist/channel/adapters/discord-client-retirement.d.ts +5 -0
  4. package/dist/channel/adapters/discord-client-retirement.js +57 -0
  5. package/dist/channel/adapters/discord-client-retirement.js.map +1 -0
  6. package/dist/channel/adapters/discord.d.ts +2 -0
  7. package/dist/channel/adapters/discord.js +14 -4
  8. package/dist/channel/adapters/discord.js.map +1 -1
  9. package/dist/cli.js +12 -79
  10. package/dist/cli.js.map +1 -1
  11. package/dist/daemon.d.ts +3 -0
  12. package/dist/daemon.js +25 -0
  13. package/dist/daemon.js.map +1 -1
  14. package/dist/fleet-manager.d.ts +8 -1
  15. package/dist/fleet-manager.js +101 -33
  16. package/dist/fleet-manager.js.map +1 -1
  17. package/dist/fleet-process-handlers.d.ts +18 -0
  18. package/dist/fleet-process-handlers.js +69 -0
  19. package/dist/fleet-process-handlers.js.map +1 -0
  20. package/dist/general-knowledge/skills/web-appearance/SKILL.md +1 -1
  21. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +4 -0
  22. package/dist/instance-lifecycle.d.ts +2 -0
  23. package/dist/instance-lifecycle.js +11 -6
  24. package/dist/instance-lifecycle.js.map +1 -1
  25. package/dist/outbound-schemas.js +1 -1
  26. package/dist/outbound-schemas.js.map +1 -1
  27. package/dist/settings-api.d.ts +4 -0
  28. package/dist/settings-api.js +23 -0
  29. package/dist/settings-api.js.map +1 -1
  30. package/dist/ui/app-effects.js +13 -1
  31. package/dist/ui/chat-store.js +32 -10
  32. package/dist/ui/chat-strings.js +16 -0
  33. package/dist/ui/chat-thread.js +5 -2
  34. package/dist/ui/panel-chat.js +24 -3
  35. package/dist/ui/panel-settings.js +24 -0
  36. package/dist/ui/settings-strings.js +2 -0
  37. package/dist/ui/shared/effect-owner-source.js +8 -1
  38. package/dist/ui/shared/effect-registry.js +10 -2
  39. package/dist/ui/shared/owner-css.js +30 -1
  40. package/dist/web-api.d.ts +6 -2
  41. package/dist/web-api.js +50 -14
  42. package/dist/web-api.js.map +1 -1
  43. package/dist/web-owner-css-store.d.ts +43 -1
  44. package/dist/web-owner-css-store.js +65 -9
  45. package/dist/web-owner-css-store.js.map +1 -1
  46. package/dist/web-settings-tools.js +7 -4
  47. package/dist/web-settings-tools.js.map +1 -1
  48. package/package.json +1 -1
package/dist/daemon.d.ts CHANGED
@@ -838,6 +838,7 @@ export declare class Daemon extends EventEmitter {
838
838
  private windowQueryFailureTicks;
839
839
  private mcpRestartPending;
840
840
  private mcpRestartStaleTimer;
841
+ private mcpRestartCooldownTimer;
841
842
  /** In-flight replacement grace; also the guard against three triggers stacking. */
842
843
  private mcpRestartGraceTimer;
843
844
  /**
@@ -1064,6 +1065,8 @@ export declare class Daemon extends EventEmitter {
1064
1065
  * force-restarted: see that constant for why staying mute costs more.
1065
1066
  */
1066
1067
  private armMcpRestartWhenIdle;
1068
+ /** Keep a cooldown-suppressed revival alive without bypassing the idle gate. */
1069
+ deferMcpRestart(delayMs: number): void;
1067
1070
  /**
1068
1071
  * Single chokepoint for all three revival triggers (already_idle, idle_edge,
1069
1072
  * stale_timeout) — and therefore the one place worth re-checking reality.
package/dist/daemon.js CHANGED
@@ -1565,6 +1565,7 @@ export class Daemon extends EventEmitter {
1565
1565
  windowQueryFailureTicks = 0;
1566
1566
  mcpRestartPending = false;
1567
1567
  mcpRestartStaleTimer = null;
1568
+ mcpRestartCooldownTimer = null;
1568
1569
  /** In-flight replacement grace; also the guard against three triggers stacking. */
1569
1570
  mcpRestartGraceTimer = null;
1570
1571
  /**
@@ -2583,6 +2584,24 @@ export class Daemon extends EventEmitter {
2583
2584
  this.fireMcpRestartRequest("already_idle");
2584
2585
  }
2585
2586
  }
2587
+ /** Keep a cooldown-suppressed revival alive without bypassing the idle gate. */
2588
+ deferMcpRestart(delayMs) {
2589
+ this.clearMcpRestartRequest();
2590
+ if (this.config.mcp_auto_restart === false || this.authFailureUnresolved
2591
+ || this.mcpRestartCancelledByRecovery("cooldown"))
2592
+ return;
2593
+ this.mcpRestartPending = true;
2594
+ this.mcpRestartCooldownTimer = setTimeout(() => {
2595
+ this.mcpRestartCooldownTimer = null;
2596
+ if (this.mcpRestartCancelledByRecovery("cooldown_expired"))
2597
+ return;
2598
+ this.clearMcpRestartRequest();
2599
+ if (this.config.mcp_auto_restart === false || this.authFailureUnresolved || this.mcpServerAlive().alive)
2600
+ return;
2601
+ this.armMcpRestartWhenIdle();
2602
+ }, Math.max(0, delayMs));
2603
+ this.mcpRestartCooldownTimer.unref?.();
2604
+ }
2586
2605
  /**
2587
2606
  * Single chokepoint for all three revival triggers (already_idle, idle_edge,
2588
2607
  * stale_timeout) — and therefore the one place worth re-checking reality.
@@ -2600,6 +2619,8 @@ export class Daemon extends EventEmitter {
2600
2619
  fireMcpRestartRequest(trigger) {
2601
2620
  if (this.mcpRestartCancelledByRecovery(trigger))
2602
2621
  return;
2622
+ if (this.mcpRestartCooldownTimer)
2623
+ return;
2603
2624
  // Authoritative re-read — the CLI may have replaced the server since the
2604
2625
  // health tick that armed this.
2605
2626
  if (this.mcpServerAlive().alive) {
@@ -2794,6 +2815,10 @@ export class Daemon extends EventEmitter {
2794
2815
  }
2795
2816
  clearMcpRestartRequest() {
2796
2817
  this.mcpRestartPending = false;
2818
+ if (this.mcpRestartCooldownTimer) {
2819
+ clearTimeout(this.mcpRestartCooldownTimer);
2820
+ this.mcpRestartCooldownTimer = null;
2821
+ }
2797
2822
  if (this.mcpRestartStaleTimer) {
2798
2823
  clearTimeout(this.mcpRestartStaleTimer);
2799
2824
  this.mcpRestartStaleTimer = null;