@songsid/agend 2.3.0-beta.2 → 2.3.0-beta.3

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 (122) hide show
  1. package/dist/agent-whats-new.js +2 -0
  2. package/dist/agent-whats-new.js.map +1 -1
  3. package/dist/auth-api.js +10 -5
  4. package/dist/auth-api.js.map +1 -1
  5. package/dist/backend/claude-code.d.ts +2 -2
  6. package/dist/backend/claude-code.js +5 -4
  7. package/dist/backend/claude-code.js.map +1 -1
  8. package/dist/backend/types.d.ts +5 -0
  9. package/dist/backend/types.js.map +1 -1
  10. package/dist/channel/mcp-tools.js +4 -0
  11. package/dist/channel/mcp-tools.js.map +1 -1
  12. package/dist/classic-channel-manager.d.ts +8 -3
  13. package/dist/classic-channel-manager.js +10 -3
  14. package/dist/classic-channel-manager.js.map +1 -1
  15. package/dist/delivery-outbox.js +5 -0
  16. package/dist/delivery-outbox.js.map +1 -1
  17. package/dist/fleet-manager.d.ts +68 -3
  18. package/dist/fleet-manager.js +247 -41
  19. package/dist/fleet-manager.js.map +1 -1
  20. package/dist/fleet-traffic.d.ts +38 -0
  21. package/dist/fleet-traffic.js +96 -0
  22. package/dist/fleet-traffic.js.map +1 -0
  23. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +13 -5
  24. package/dist/general-knowledge/skills/multi-channel/SKILL.md +1 -1
  25. package/dist/general-knowledge/skills/web-appearance/SKILL.md +39 -4
  26. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +398 -0
  27. package/dist/locale.js +6 -4
  28. package/dist/locale.js.map +1 -1
  29. package/dist/memory-hogs.d.ts +27 -0
  30. package/dist/memory-hogs.js +124 -0
  31. package/dist/memory-hogs.js.map +1 -0
  32. package/dist/outbound-handlers.d.ts +2 -0
  33. package/dist/outbound-handlers.js +40 -1
  34. package/dist/outbound-handlers.js.map +1 -1
  35. package/dist/outbound-schemas.d.ts +88 -0
  36. package/dist/outbound-schemas.js +50 -0
  37. package/dist/outbound-schemas.js.map +1 -1
  38. package/dist/public-web-gateway.js +1 -1
  39. package/dist/public-web-gateway.js.map +1 -1
  40. package/dist/tmux-manager.d.ts +5 -0
  41. package/dist/tmux-manager.js +16 -0
  42. package/dist/tmux-manager.js.map +1 -1
  43. package/dist/tool-permissions.js +4 -0
  44. package/dist/tool-permissions.js.map +1 -1
  45. package/dist/types.d.ts +1 -1
  46. package/dist/ui/app-effects.js +33 -9
  47. package/dist/ui/chat-effects.js +62 -4
  48. package/dist/ui/chat-strings.js +40 -4
  49. package/dist/ui/chat-thread.js +13 -5
  50. package/dist/ui/effect-trial-panel.js +19 -16
  51. package/dist/ui/fleet-canvas-layout.js +111 -0
  52. package/dist/ui/fleet-canvas.js +489 -0
  53. package/dist/ui/fleet-org.js +27 -12
  54. package/dist/ui/fleet-traffic.js +224 -0
  55. package/dist/ui/panel-chat.js +8 -2
  56. package/dist/ui/panel-details.js +2 -1
  57. package/dist/ui/panel-fleet.js +17 -5
  58. package/dist/ui/panel-settings.js +3 -2
  59. package/dist/ui/preview.js +3 -2
  60. package/dist/ui/settings-appearance.js +34 -18
  61. package/dist/ui/settings-dialogs.js +3 -6
  62. package/dist/ui/settings-effects.js +4 -3
  63. package/dist/ui/settings-learn.js +25 -0
  64. package/dist/ui/settings-model.js +6 -2
  65. package/dist/ui/settings-mods.js +4 -3
  66. package/dist/ui/settings-owner-effects.js +8 -8
  67. package/dist/ui/settings-strings.js +34 -38
  68. package/dist/ui/shared/app-i18n.js +2 -2
  69. package/dist/ui/shared/app-prefs.js +1 -1
  70. package/dist/ui/shared/app-shell.js +23 -1
  71. package/dist/ui/shared/app-store.js +12 -1
  72. package/dist/ui/shared/app-stream.js +2 -1
  73. package/dist/ui/shared/app.css +152 -10
  74. package/dist/ui/shared/effect-app-runtime.js +1 -1
  75. package/dist/ui/shared/effect-frame.js +10 -5
  76. package/dist/ui/shared/effect-geometry.js +24 -9
  77. package/dist/ui/shared/effect-policy.js +2 -1
  78. package/dist/ui/shared/effect-registry.js +71 -17
  79. package/dist/ui/shared/effect-trial-shadow.js +62 -0
  80. package/dist/ui/shared/effect-trial-stage.js +15 -9
  81. package/dist/ui/shared/effect-trial.css +40 -0
  82. package/dist/ui/shared/identity-card.js +5 -2
  83. package/dist/ui/shared/identity-color.js +3 -3
  84. package/dist/ui/shared/instance-nav.js +20 -4
  85. package/dist/ui/shared/panel-view.js +2 -2
  86. package/dist/ui/shared/view-strings.js +16 -0
  87. package/dist/view-api.d.ts +21 -0
  88. package/dist/view-api.js +28 -0
  89. package/dist/view-api.js.map +1 -1
  90. package/dist/web-api.d.ts +5 -6
  91. package/dist/web-api.js +57 -10
  92. package/dist/web-api.js.map +1 -1
  93. package/dist/web-appearance-view.d.ts +10 -0
  94. package/dist/web-appearance-view.js +77 -8
  95. package/dist/web-appearance-view.js.map +1 -1
  96. package/dist/web-auth.js +1 -1
  97. package/dist/web-auth.js.map +1 -1
  98. package/dist/web-effect-trials.d.ts +2 -2
  99. package/dist/web-effect-trials.js +3 -3
  100. package/dist/web-effect-trials.js.map +1 -1
  101. package/dist/web-guest-access.d.ts +67 -0
  102. package/dist/web-guest-access.js +126 -0
  103. package/dist/web-guest-access.js.map +1 -0
  104. package/dist/web-identity-palette.d.ts +1 -1
  105. package/dist/web-identity-palette.js +2 -2
  106. package/dist/web-identity-palette.js.map +1 -1
  107. package/dist/web-mod-store.d.ts +5 -0
  108. package/dist/web-mod-store.js +6 -0
  109. package/dist/web-mod-store.js.map +1 -1
  110. package/dist/web-prefs.d.ts +8 -0
  111. package/dist/web-prefs.js +9 -0
  112. package/dist/web-prefs.js.map +1 -1
  113. package/dist/web-preview.d.ts +6 -2
  114. package/dist/web-preview.js +4 -2
  115. package/dist/web-preview.js.map +1 -1
  116. package/dist/web-session.d.ts +15 -7
  117. package/dist/web-session.js +25 -8
  118. package/dist/web-session.js.map +1 -1
  119. package/dist/web-settings-tools.d.ts +69 -0
  120. package/dist/web-settings-tools.js +247 -0
  121. package/dist/web-settings-tools.js.map +1 -0
  122. package/package.json +1 -1
@@ -73,6 +73,8 @@ import { AppearanceTools } from "./web-appearance-tools.js";
73
73
  import { ModStore } from "./web-mod-store.js";
74
74
  import { AgentMods } from "./web-mod-agent.js";
75
75
  import { type CachedImage } from "./web-images.js";
76
+ import { WebSettingsTools } from "./web-settings-tools.js";
77
+ import { type TrafficItem } from "./fleet-traffic.js";
76
78
  import { type RawConfigPatch } from "./settings-api.js";
77
79
  import { type AgentEndpointContext } from "./agent-endpoint.js";
78
80
  import { ClassicChannelManager } from "./classic-channel-manager.js";
@@ -84,6 +86,7 @@ import { TargetQueueWorker } from "./target-queue-worker.js";
84
86
  import { resolveDeliveryWorkerMode } from "./types.js";
85
87
  import { type WebNeedsItem } from "./needs-you-hub.js";
86
88
  import { type OrgChart } from "./web-org.js";
89
+ import { type MemoryHog } from "./memory-hogs.js";
87
90
  import { type CacheReport } from "./cache-service.js";
88
91
  import { type WebCommandResult } from "./web-commands.js";
89
92
  import { type ReturningDevice } from "./web-returning-device.js";
@@ -442,6 +445,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
442
445
  /** #1306: the preview listener (health_port + 1 by default), and whether it is listening. */
443
446
  private previewListener;
444
447
  private previewListening;
448
+ /** The preview listener could not open its port: "<port>: <error code>", for the page (#2061 follow-up); null otherwise. */
449
+ private previewListenError;
445
450
  /** The ports the preview listener was started for, and the inputs it was built from (a reload compares them). */
446
451
  private previewPorts;
447
452
  private previewInputs;
@@ -474,6 +479,17 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
474
479
  private startedAt;
475
480
  private stormOpenNotifyTimer;
476
481
  private memoryLogAt;
482
+ /**
483
+ * #2015: while host memory is elevated or critical, the processes holding the most in the fleet's service and whose
484
+ * they are (an instance, the fleet, tmux), for the pressure log, /health and the dashboard — never chat (#1712).
485
+ * Rescanned at most once a minute (async, one at a time); cleared when pressure ends.
486
+ */
487
+ private memoryTop;
488
+ private memoryTopScan;
489
+ /** The scan (a seam for tests: they give it a fake /proc). */
490
+ private memoryHogScan;
491
+ /** The fleet's own tmux session exists (only then are its panes read: a fleet that never started has none). */
492
+ private tmuxSessionEnsured;
477
493
  private memoryDebugAt;
478
494
  private memoryLogLevel;
479
495
  /** #1685: the host_memory value the last status frame carried, so a change re-sends the frame. */
@@ -574,6 +590,12 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
574
590
  private ownerCssStore?;
575
591
  /** #1629 r4 §3: each person's own CSS; which version is in force is their `css.active` in the web preferences. */
576
592
  get ownerCss(): OwnerCssStore;
593
+ private webSettingsToolsService?;
594
+ /**
595
+ * #2056: Settings → Web appearance for a tool (General, a coordinator, full) — the page's own stores and checks, and the
596
+ * page's announcement after a change (web-settings-tools.ts).
597
+ */
598
+ get webSettings(): WebSettingsTools;
577
599
  get webPrefs(): WebPrefsStore;
578
600
  /**
579
601
  * Read from disk on every access rather than cached at startup: `agend
@@ -651,6 +673,20 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
651
673
  /** #1266: the choice, delivered as an ordinary inbound message from whoever made it, and shown in the web chat. */
652
674
  private deliverReplyButtonChoice;
653
675
  private ensureDeliveryOutbox;
676
+ /** #1918: cross-instance traffic, as the org canvas draws it (fleet-traffic.ts). */
677
+ private readonly trafficLog;
678
+ private trafficMemo;
679
+ /** One delivery row's traffic item, kept for the snapshot and sent to the open pages when it is news. */
680
+ private publishTraffic;
681
+ /**
682
+ * GET /ui/traffic: what is in flight now (the outbox's pending rows) and what finished in the last two minutes, at
683
+ * most TRAFFIC_SNAPSHOT_MAX items. Worked out at most once every two seconds, so the public link's polling (or any
684
+ * number of pages) costs one indexed read per two seconds. Visibility is applied as of now.
685
+ */
686
+ trafficSnapshot(): {
687
+ now: string;
688
+ items: TrafficItem[];
689
+ };
654
690
  /** Synchronous SQLite admission; the caller may acknowledge only after this returns. */
655
691
  admitDurableDelivery(input: {
656
692
  operationId: string;
@@ -704,6 +740,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
704
740
  private hostMemoryIndicator;
705
741
  /** Separate cooldown: changing measurements must not create new text-throttle keys. */
706
742
  private reportMemoryPressure;
743
+ /**
744
+ * #2015: rescan the largest processes (at most once a minute, one at a time). The first result of an episode, and
745
+ * then at most every 10 minutes, is logged with the pressure; /health and the dashboard read the latest. Never chat.
746
+ */
747
+ private refreshMemoryTop;
707
748
  /** Wire the one fleet-wide storm into notification and recovery surfaces. */
708
749
  private bindStormWindowEvents;
709
750
  /** What the gate allows while any storm window is open (see SpawnGate.pump). */
@@ -993,7 +1034,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
993
1034
  * for `instance` (#1320 part B). Per entry: the channel's own adapter, no
994
1035
  * thread, mention suppression on. Returns the number of channels posted
995
1036
  * to. Failures are per-entry warn-and-continue — a failed echo never fails
996
- * the web send. Entries without `web_echo: true` are never touched.
1037
+ * the web send. Only entries classicWebEchoOn admits are touched (#2054: unset follows web.echo_to_channel; an explicit
1038
+ * `web_echo: false` never echoes).
997
1039
  *
998
1040
  * Every copy is fenced at start time: an entry whose explicit world is
999
1041
  * gone is skipped (only legacy adapterId-less entries fall back to the
@@ -1545,7 +1587,10 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
1545
1587
  * reported separately because they differ by ~60x and only one of them can
1546
1588
  * show a fleet-manager leak. */
1547
1589
  memory: FleetMemory;
1548
- hostMemory: MemoryPressureSnapshot;
1590
+ hostMemory: MemoryPressureSnapshot & {
1591
+ topProcesses?: MemoryHog[];
1592
+ topProcessesAt?: string;
1593
+ };
1549
1594
  problems: string[];
1550
1595
  };
1551
1596
  /** Start the primary adapter (backward-compatible, sets this.adapter) */
@@ -2937,8 +2982,14 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
2937
2982
  private pasteRawToClassicInstance;
2938
2983
  /** Resolve the backend name configured for an instance (fleet or classic). */
2939
2984
  private backendNameForInstance;
2985
+ /**
2986
+ * #2072: a catalog is the account's, so a credential profile has its own. Only claude-code's probe reads an account
2987
+ * catalog through a profile's login (its `GET /v1/models` with the profile's token); other backends' probes read the
2988
+ * process environment, so their catalog stays the backend's own.
2989
+ */
2990
+ private catalogProfile;
2940
2991
  private cliEnvPath;
2941
- /** Read the cached CLI env for a backend, or null if missing/stale/unparseable. */
2992
+ /** Read the cached CLI env for a backend (a credential profile's own, when given), or null if missing/stale/unparseable. */
2942
2993
  private readCliEnv;
2943
2994
  /** Return cached CLI versions immediately. Refresh is started after /sysinfo is sent. */
2944
2995
  getBackendCliVersionSnapshot(): BackendCliVersionSnapshot;
@@ -2969,6 +3020,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
2969
3020
  };
2970
3021
  /** Human-readable effective model, e.g. `auto (default)`. Used by /ctx. */
2971
3022
  modelDisplayForInstance(instanceName: string): string;
3023
+ /**
3024
+ * #2072: the model an instance runs is always among its choices — one its CLI's catalog does not list (an older
3025
+ * name, a custom provider's, a typed one) is shown first, marked, so the menu never hides what is running.
3026
+ */
3027
+ private withCurrentModel;
2972
3028
  private modelChoiceLabel;
2973
3029
  /** Preserve the existing cache merge rules for worker probes. */
2974
3030
  private persistCliEnvProbeResult;
@@ -3483,6 +3539,14 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
3483
3539
  * Only the parsed host name is logged, never the raw header.
3484
3540
  */
3485
3541
  private noteRejectedHost;
3542
+ /**
3543
+ * #1920: the instances a guest session may see — derived on every request, never stored. Phase 2 derives it from
3544
+ * the account's chat access (and an admin's naming for an open connection); until then a guest sees nothing.
3545
+ */
3546
+ guestScope(_owner: {
3547
+ readonly adapterId: string;
3548
+ readonly userId: string;
3549
+ } | undefined): ReadonlySet<string>;
3486
3550
  /** Shared handler dispatcher; gateway admission is enforced by its separate listener. */
3487
3551
  private dispatchWebHttp;
3488
3552
  private startHealthServer;
@@ -3504,6 +3568,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
3504
3568
  previewForUi(hostHeader: string | undefined, secure: boolean): PreviewAvailability & {
3505
3569
  boot: string | null;
3506
3570
  };
3571
+ private previewNotListening;
3507
3572
  /**
3508
3573
  * #1723: for one page of the public link (exposure `exposureId`, at `dashboardOrigin`): its own preview tunnel's
3509
3574
  * origin once up, "starting" until then, why it failed if it did — or a configured web.preview_origin, used instead.