pilotswarm 0.5.47 → 0.5.48

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 (82) hide show
  1. package/mcp/dist/src/tools/providers.d.ts.map +1 -1
  2. package/mcp/dist/src/tools/providers.js +12 -0
  3. package/mcp/dist/src/tools/providers.js.map +1 -1
  4. package/package.json +2 -2
  5. package/tui/src/node-sdk-transport.js +5 -0
  6. package/ui/core/src/commands.js +1 -0
  7. package/ui/core/src/controller.js +66 -0
  8. package/ui/core/src/history.js +5 -37
  9. package/ui/core/src/index.js +1 -0
  10. package/ui/core/src/reducer.js +42 -0
  11. package/ui/core/src/selectors.js +112 -0
  12. package/ui/core/src/state.js +20 -0
  13. package/ui/core/src/table-layout.js +155 -0
  14. package/ui/react/src/web-app.js +427 -223
  15. package/web/dist/assets/{abnfDiagram-VRR7QNED-VPL8m_9W.js → abnfDiagram-VRR7QNED-6rYy4Wj8.js} +1 -1
  16. package/web/dist/assets/{arc-T5I3-c1B.js → arc-CrRZ1Za7.js} +1 -1
  17. package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-DEP70bg6.js → architectureDiagram-ZJ3FMSHR-CPe2QuQL.js} +1 -1
  18. package/web/dist/assets/{blockDiagram-677ZJIJ3-CvBu1MbO.js → blockDiagram-677ZJIJ3-DfT6vWOg.js} +1 -1
  19. package/web/dist/assets/{c4Diagram-LMCZKHZV-B5qwF4gm.js → c4Diagram-LMCZKHZV-BO-VXBT8.js} +1 -1
  20. package/web/dist/assets/channel-HtOTPdHg.js +1 -0
  21. package/web/dist/assets/{chunk-2Q5K7J3B-zVW8dS7X.js → chunk-2Q5K7J3B-nq8p0xwC.js} +1 -1
  22. package/web/dist/assets/{chunk-32BRIVSS-DWctxZZS.js → chunk-32BRIVSS-DstJjLIA.js} +1 -1
  23. package/web/dist/assets/{chunk-5VM5RSS4-Bq7_Vmf9.js → chunk-5VM5RSS4-Bq0MPH_Q.js} +1 -1
  24. package/web/dist/assets/{chunk-EX3LRPZG-B8CFB3v-.js → chunk-EX3LRPZG-BPofXJWl.js} +1 -1
  25. package/web/dist/assets/{chunk-JWPE2WC7-B7gLPjgZ.js → chunk-JWPE2WC7-BBr7v6mo.js} +1 -1
  26. package/web/dist/assets/{chunk-MOJQB5TN-B2x6q12r.js → chunk-MOJQB5TN-DA7ca6Jr.js} +1 -1
  27. package/web/dist/assets/{chunk-RYQCIY6F-XorU9Stx.js → chunk-RYQCIY6F-fdXZe4nw.js} +1 -1
  28. package/web/dist/assets/{chunk-V7JOEXUC-CsLa6pw5.js → chunk-V7JOEXUC-BSATEdk2.js} +1 -1
  29. package/web/dist/assets/{chunk-VR4S4FIN-BBv9mwmj.js → chunk-VR4S4FIN-RR27eQST.js} +1 -1
  30. package/web/dist/assets/{chunk-XXDRQBXY-Cjm4mm6l.js → chunk-XXDRQBXY-Bh8VimxP.js} +1 -1
  31. package/web/dist/assets/classDiagram-OUVF2IWQ-C2P3dws0.js +1 -0
  32. package/web/dist/assets/classDiagram-v2-EOCWNBFH-C2P3dws0.js +1 -0
  33. package/web/dist/assets/{cose-bilkent-JH36ORCC-Zw9ZQbVl.js → cose-bilkent-JH36ORCC-eP239MQJ.js} +1 -1
  34. package/web/dist/assets/{cynefin-VYW2F7L2-BYnR9YLM.js → cynefin-VYW2F7L2-Sb8l4Vm6.js} +1 -1
  35. package/web/dist/assets/{cynefinDiagram-TSTJHNR4-Cx8L0dOv.js → cynefinDiagram-TSTJHNR4-BrWMkhw9.js} +1 -1
  36. package/web/dist/assets/{dagre-VKFMJZFB-7GaqVcqz.js → dagre-VKFMJZFB-DT5kNKEx.js} +1 -1
  37. package/web/dist/assets/{diagram-FQU43EPY-BWSRPJvU.js → diagram-FQU43EPY-Dy0Bxyod.js} +1 -1
  38. package/web/dist/assets/{diagram-G47NLZAW-BELuAE1e.js → diagram-G47NLZAW-R_yWa2-6.js} +1 -1
  39. package/web/dist/assets/{diagram-NH7WQ7WH-DGXhPpri.js → diagram-NH7WQ7WH-BV2cGmgX.js} +1 -1
  40. package/web/dist/assets/{diagram-OA4YK3LP-DV8HqN0T.js → diagram-OA4YK3LP-auayiDmq.js} +1 -1
  41. package/web/dist/assets/{diagram-WEI45ONY-Clv1X3ZL.js → diagram-WEI45ONY-CE7bHIYE.js} +1 -1
  42. package/web/dist/assets/{ebnfDiagram-CCIWWBDH-TpQx36oi.js → ebnfDiagram-CCIWWBDH-C3SMk6Uu.js} +1 -1
  43. package/web/dist/assets/{erDiagram-Q63AITRT-DVVWd00c.js → erDiagram-Q63AITRT-CnTs6X2D.js} +1 -1
  44. package/web/dist/assets/{flowDiagram-23GEKE2U-Cdz_8_Dw.js → flowDiagram-23GEKE2U-DobYm7mq.js} +1 -1
  45. package/web/dist/assets/{ganttDiagram-NO4QXBWP-zlco-o7u.js → ganttDiagram-NO4QXBWP-AkTQtAsR.js} +1 -1
  46. package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-CfAZW1En.js → gitGraphDiagram-IHSO6WYX-CpLWsqgx.js} +1 -1
  47. package/web/dist/assets/{index-tQXCQojP.js → index-BCzNnCl0.js} +6 -6
  48. package/web/dist/assets/index-BUp5hFdX.css +1 -0
  49. package/web/dist/assets/{infoDiagram-FWYZ7A6U-0R-8efwI.js → infoDiagram-FWYZ7A6U-ByzTSgj_.js} +1 -1
  50. package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-lPpoXGlp.js → ishikawaDiagram-FXEZZL3T-CaL9Wi8i.js} +1 -1
  51. package/web/dist/assets/{journeyDiagram-5HDEW3XC-D05vSVqu.js → journeyDiagram-5HDEW3XC-BillueZJ.js} +1 -1
  52. package/web/dist/assets/{kanban-definition-HUTT4EX6-ClaDdESv.js → kanban-definition-HUTT4EX6-DI_IRVWQ.js} +1 -1
  53. package/web/dist/assets/{linear-CUnhHMvY.js → linear-Cabaq-RD.js} +1 -1
  54. package/web/dist/assets/{mermaid.core-DaYS-X8Y.js → mermaid.core-D8KnBjxP.js} +4 -4
  55. package/web/dist/assets/{mindmap-definition-LN4V7U3C-N480VHds.js → mindmap-definition-LN4V7U3C-Bl7FpPwk.js} +1 -1
  56. package/web/dist/assets/{papaparse.min-CNTcNgd8.js → papaparse.min-CcjjKk0h.js} +1 -1
  57. package/web/dist/assets/{pegDiagram-2B236MQR-CVWyJ5ck.js → pegDiagram-2B236MQR-CmsG2owD.js} +1 -1
  58. package/web/dist/assets/{pieDiagram-ENE6RG2P-UR9uohPf.js → pieDiagram-ENE6RG2P-CLA_mcHl.js} +1 -1
  59. package/web/dist/assets/pilotswarm-DMCBXi5A.js +97 -0
  60. package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-D2SIOetn.js → quadrantDiagram-ABIIQ3AL-hT9bnnUG.js} +1 -1
  61. package/web/dist/assets/{railroadDiagram-RFXS5EU6-OgN6qgOU.js → railroadDiagram-RFXS5EU6-CNC0kFW6.js} +1 -1
  62. package/web/dist/assets/{requirementDiagram-TGXJPOKE-BSUURBBz.js → requirementDiagram-TGXJPOKE-C-nSthhK.js} +1 -1
  63. package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BBZhmSBZ.js → sankeyDiagram-HTMAVEWB-C5JdV5bI.js} +1 -1
  64. package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-C10IDNdW.js → sequenceDiagram-DBY2YBRQ-BMKBxKk9.js} +1 -1
  65. package/web/dist/assets/{sizeCapture-X5ZJPWSS-B9787MHa.js → sizeCapture-X5ZJPWSS-CbwNw-TR.js} +1 -1
  66. package/web/dist/assets/{stateDiagram-2N3HPSRC-BmSBo7es.js → stateDiagram-2N3HPSRC-ChvGrUa_.js} +1 -1
  67. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DLbEwVA2.js +1 -0
  68. package/web/dist/assets/{swimlanes-5IMT3BWC-DOXpv_KQ.js → swimlanes-5IMT3BWC-D9Uzkbi7.js} +2 -2
  69. package/web/dist/assets/swimlanesDiagram-G3AALYLV-DMzhdO6y.js +8 -0
  70. package/web/dist/assets/{timeline-definition-FHXFAJF6-SjhGfPdI.js → timeline-definition-FHXFAJF6-ctFEfgUp.js} +1 -1
  71. package/web/dist/assets/{vennDiagram-L72KCM5P-BiujYen6.js → vennDiagram-L72KCM5P-DGrJhlyF.js} +1 -1
  72. package/web/dist/assets/{wardleyDiagram-EHGQE667-6nLXBvwc.js → wardleyDiagram-EHGQE667-BGqtZ8dQ.js} +1 -1
  73. package/web/dist/assets/{xychartDiagram-FW5EYKEG-Di7ioTvW.js → xychartDiagram-FW5EYKEG-DAXXs9xC.js} +1 -1
  74. package/web/dist/index.html +3 -3
  75. package/web/runtime.js +10 -0
  76. package/web/dist/assets/channel-D5LojeMw.js +0 -1
  77. package/web/dist/assets/classDiagram-OUVF2IWQ-C5edc5Or.js +0 -1
  78. package/web/dist/assets/classDiagram-v2-EOCWNBFH-C5edc5Or.js +0 -1
  79. package/web/dist/assets/index-CMtzFJre.css +0 -1
  80. package/web/dist/assets/pilotswarm-BG6hk0oE.js +0 -97
  81. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-BqpsfoJI.js +0 -1
  82. package/web/dist/assets/swimlanesDiagram-G3AALYLV-k8WG_bWt.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/tools/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,QA0Y1E"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/tools/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,QA6Z1E"}
@@ -257,6 +257,18 @@ export function registerProviderTools(server, ctx) {
257
257
  contextTier: context ?? null,
258
258
  }));
259
259
  }));
260
+ server.registerTool("get_provider_usage_summary", {
261
+ title: "Get Cluster Usage Summary",
262
+ description: "The cluster summary from the usage ledger: token totals for today, the last 7 and the last 30 UTC "
263
+ + "days (input, output, cache read, cache write, total, turns, sessions), a per-day series for a "
264
+ + "chart, and the per-MODEL pivot — one row per model name across every provider, reasoning effort "
265
+ + "and context tier. Admins see the whole cluster, system sessions included (the Providers meters "
266
+ + "count people's turns only; `classes` shows the split); everyone else sees their own turns.",
267
+ inputSchema: {
268
+ days: z.number().int().min(1).max(365).optional().describe("Days of history for the series and the model table (default 14; 14, 30 or 90 are the portal's choices)"),
269
+ providers: z.array(z.string()).optional().describe("Only these providers, by name; absent means all"),
270
+ },
271
+ }, withToolErrors(async ({ days, providers }) => jsonResult(await ctx.mgmt.getProviderUsageSummary(viewer, { days, providers }))));
260
272
  server.registerTool("get_provider_usage", {
261
273
  title: "Get Provider Usage",
262
274
  description: "Where the tokens went: totals (tokens, turns, sessions), a per-day series, and one breakdown, all "
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/tools/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/tools/providers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pilotswarm",
3
- "version": "0.5.47",
3
+ "version": "0.5.48",
4
4
  "description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -81,7 +81,7 @@
81
81
  "ink": "^6.8.0",
82
82
  "jose": "^6.2.2",
83
83
  "mermaid": "^11.16.0",
84
- "pilotswarm-sdk": "0.5.47",
84
+ "pilotswarm-sdk": "0.5.48",
85
85
  "react": "^19.2.4",
86
86
  "react-dom": "^19.2.4",
87
87
  "ws": "^8.18.2"
@@ -1569,6 +1569,11 @@ export class NodeSdkTransport {
1569
1569
  return this.mgmt.updateMyProviderCredential(await this._modelProviderViewer(), input || {});
1570
1570
  }
1571
1571
 
1572
+ /** The cluster summary: totals, a per-day series and the per-model pivot. */
1573
+ async getProviderUsageSummary(query = {}) {
1574
+ return this.mgmt.getProviderUsageSummary(await this._modelProviderViewer(), query || {});
1575
+ }
1576
+
1572
1577
  /** Rotate a SHARED provider's key. Admin-only, enforced in SQL. */
1573
1578
  async updateSharedProviderCredential(input) {
1574
1579
  return this.mgmt.updateSharedProviderCredential(await this._modelProviderViewer(), input || {});
@@ -87,6 +87,7 @@ export const UI_COMMANDS = {
87
87
  // Admin Console — swaps out sessions+chat for the per-user admin view.
88
88
  OPEN_ADMIN_CONSOLE: "openAdminConsole",
89
89
  CLOSE_ADMIN_CONSOLE: "closeAdminConsole",
90
+ OPEN_WORKSPACE: "openWorkspace",
90
91
  ADMIN_REFRESH_PROFILE: "adminRefreshProfile",
91
92
  ADMIN_SHOW_GHCP: "adminShowGhcp",
92
93
  ADMIN_SHOW_PACKAGES: "adminShowPackages",
@@ -3171,6 +3171,8 @@ export class PilotSwarmUiController {
3171
3171
  * admin view) and refresh the user profile so the UI is current.
3172
3172
  */
3173
3173
  async openAdminConsole() {
3174
+ // One MODE at a time — see openBudget.
3175
+ if (this.getState().ui?.budgetOpen) this.closeBudget();
3174
3176
  this.dispatch({ type: "admin/visibility", visible: true });
3175
3177
  await this.refreshAdminProfile().catch(() => {});
3176
3178
  void this.refreshAdminModelProviders().catch(() => {});
@@ -3182,6 +3184,24 @@ export class PilotSwarmUiController {
3182
3184
  this.dispatch({ type: "admin/visibility", visible: false });
3183
3185
  }
3184
3186
 
3187
+ /**
3188
+ * The Workspace mode: sessions, chat and the panels. Closes whichever
3189
+ * other mode is up. A real destination, so the toolbar can offer "back
3190
+ * to the workspace" as a button rather than "close whatever is open".
3191
+ */
3192
+ openWorkspace() {
3193
+ if (this.getState().admin?.visible) this.closeAdminConsole();
3194
+ if (this.getState().ui?.budgetOpen) this.closeBudget();
3195
+ }
3196
+
3197
+ /** Which mode is on screen: "workspace" | "budget" | "admin". */
3198
+ currentMode() {
3199
+ const state = this.getState();
3200
+ if (state.admin?.visible) return "admin";
3201
+ if (state.ui?.budgetOpen) return "budget";
3202
+ return "workspace";
3203
+ }
3204
+
3185
3205
  /**
3186
3206
  * Land on a freshly created session. Selecting it is not enough: the
3187
3207
  * Admin Console REPLACES the workspace, so creating from there left the
@@ -4094,6 +4114,10 @@ export class PilotSwarmUiController {
4094
4114
  * row it names is in it.
4095
4115
  */
4096
4116
  async openBudget({ provider = undefined } = {}) {
4117
+ // One MODE at a time: Workspace, Budget or the Admin Console. The two
4118
+ // flags used to be independent, so Budget could open behind an open
4119
+ // Admin Console and the toolbar showed both as active.
4120
+ if (this.getState().admin?.visible) this.closeAdminConsole();
4097
4121
  this.dispatch({
4098
4122
  type: "ui/budgetOpen",
4099
4123
  open: true,
@@ -4115,6 +4139,45 @@ export class PilotSwarmUiController {
4115
4139
  this.dispatch({ type: "ui/budgetOpen", open: false });
4116
4140
  }
4117
4141
 
4142
+ /** Which tab of the Budget screen: "providers" or "summary". */
4143
+ setBudgetTab(tab) {
4144
+ this.dispatch({ type: "budget/tab", tab });
4145
+ if (tab === "summary") this.loadUsageSummary().catch(() => {});
4146
+ }
4147
+
4148
+ /**
4149
+ * Change the Cluster summary's window or provider filter and re-read.
4150
+ * `providers` is the exact list to ask for (empty = all); `preset` is
4151
+ * what the picker shows ("all" | "shared" | "users" | "custom").
4152
+ */
4153
+ async setUsageSummaryFilter({ days, providers, preset } = {}) {
4154
+ this.dispatch({ type: "budget/summary/filter", days, providers, preset });
4155
+ await this.loadUsageSummary();
4156
+ }
4157
+
4158
+ /**
4159
+ * Read the Cluster summary for the current filter. One request; the
4160
+ * database builds the windows, the series and the model pivot over the
4161
+ * same rows, so the three can never disagree.
4162
+ */
4163
+ async loadUsageSummary() {
4164
+ if (typeof this.transport.getProviderUsageSummary !== "function") {
4165
+ this.dispatch({ type: "budget/summary/failed", error: "The cluster summary is not available on this transport." });
4166
+ return;
4167
+ }
4168
+ const filter = this.getState().budget?.summary || {};
4169
+ this.dispatch({ type: "budget/summary/loading" });
4170
+ try {
4171
+ const data = await this.transport.getProviderUsageSummary({
4172
+ days: filter.days || 14,
4173
+ ...(Array.isArray(filter.providers) && filter.providers.length ? { providers: filter.providers } : {}),
4174
+ });
4175
+ this.dispatch({ type: "budget/summary/loaded", data, fetchedAt: Date.now() });
4176
+ } catch (error) {
4177
+ this.dispatch({ type: "budget/summary/failed", error: budgetRefusalMessage(error) });
4178
+ }
4179
+ }
4180
+
4118
4181
  /**
4119
4182
  * The "show overall usage" tick.
4120
4183
  *
@@ -10402,6 +10465,9 @@ export class PilotSwarmUiController {
10402
10465
  case UI_COMMANDS.CLOSE_ADMIN_CONSOLE:
10403
10466
  this.closeAdminConsole();
10404
10467
  return;
10468
+ case UI_COMMANDS.OPEN_WORKSPACE:
10469
+ this.openWorkspace();
10470
+ return;
10405
10471
  case UI_COMMANDS.ADMIN_REFRESH_PROFILE:
10406
10472
  await this.refreshAdminProfile();
10407
10473
  return;
@@ -542,27 +542,11 @@ function buildChatMessage(event, role) {
542
542
  };
543
543
  }
544
544
 
545
- // The per-turn system prompt, as the SDK summarises it for CMS: a marker line
546
- // naming the size with a 120-char snippet, never the whole 170k-char prompt.
547
- // Matched narrowly on purpose it is the ONE system.message worth a row in
548
- // the conversation, and widening this would move rehydration notices, child
549
- // updates and sub-agent chatter in with it.
550
- const SYSTEM_PROMPT_NOTICE_RE = /rebuilt the full system prompt for model input/i;
551
-
552
- /**
553
- * Is this the system prompt itself, rather than internal chatter?
554
- *
555
- * It stays in the ACTIVITY feed as before — that is the raw diagnostic
556
- * stream — and additionally earns one collapsed row in the transcript, the
557
- * same affordance as a sub-agent response or a canvas action. Visible enough
558
- * to open when you want to know what the model was told; folded away the rest
559
- * of the time.
560
- */
561
- export function isSystemPromptNotice(event) {
562
- if (event?.eventType !== "system.message") return false;
563
- return SYSTEM_PROMPT_NOTICE_RE.test(messageTextFromEvent(event) || "");
564
- }
565
-
545
+ // The Copilot SDK echoes the system prompt as a system.message on EVERY
546
+ // turn, and the worker keeps only a 120-char snippet of it (session-proxy.ts,
547
+ // "Full content omitted from CMS"). For one release (0.5.47) each echo also
548
+ // got a collapsed row in the chat pane — one per turn, and opening it showed
549
+ // the snippet, not the prompt. Activity feed only, as before.
566
550
  function shouldRenderSystemMessageAsActivity(event) {
567
551
  // Most system.message events stay out of the chat pane. They include the
568
552
  // per-turn system prompt sent to the LLM plus internal rehydration notices,
@@ -1141,13 +1125,6 @@ export function buildHistoryModel(events = [], options = {}) {
1141
1125
  if (shouldRenderSystemMessageAsActivity(event)) {
1142
1126
  const activityItem = formatActivity(event);
1143
1127
  if (activityItem) activity.push(activityItem);
1144
- // The system prompt also earns a collapsed row in the
1145
- // transcript. It stays in the activity feed above — that is
1146
- // the raw stream — and this is the readable handle on it.
1147
- if (isSystemPromptNotice(event)) {
1148
- const message = buildChatMessage(event, "system");
1149
- if (message) chat.push(message);
1150
- }
1151
1128
  } else {
1152
1129
  const message = buildChatMessage(event, "system");
1153
1130
  if (message) chat.push(message);
@@ -1275,15 +1252,6 @@ export function appendEventToHistory(history, event) {
1275
1252
  next.activity.push(activityItem);
1276
1253
  next.activity = clampHistoryItems(next.activity, loadedEventLimit);
1277
1254
  }
1278
- // Same as the bulk path: the system prompt is also worth one
1279
- // collapsed row in the conversation.
1280
- if (isSystemPromptNotice(event)) {
1281
- const message = buildChatMessage(event, "system");
1282
- if (message) {
1283
- next.chat.push(message);
1284
- next.chat = clampHistoryItems(dedupeChatMessages(next.chat), loadedEventLimit);
1285
- }
1286
- }
1287
1255
  } else {
1288
1256
  const message = buildChatMessage(event, "system");
1289
1257
  if (!message) return next;
@@ -15,3 +15,4 @@ export * from "./controller.js";
15
15
  export { isThemeLight } from "./themes/helpers.js";
16
16
  export * from "./themes/index.js";
17
17
  export { validateCanvasAction, formatCanvasActionPrompt, parseCanvasActionContent, isCanvasActionContent, createCanvasActionLimiter, CANVAS_ACTION_PREFIX } from "./canvas-actions.js";
18
+ export * from "./table-layout.js";
@@ -1037,6 +1037,48 @@ export function appReducer(state, action) {
1037
1037
  },
1038
1038
  };
1039
1039
 
1040
+ // ── Budget screen: tab + the Cluster summary ─────────────────
1041
+ case "budget/tab": {
1042
+ const tab = action.tab === "summary" ? "summary" : "providers";
1043
+ if (state.budget.tab === tab) return state;
1044
+ return { ...state, budget: { ...state.budget, tab } };
1045
+ }
1046
+ case "budget/summary/filter": {
1047
+ const prev = state.budget.summary;
1048
+ const days = [14, 30, 90].includes(Number(action.days)) ? Number(action.days) : prev.days;
1049
+ const providers = Array.isArray(action.providers)
1050
+ ? action.providers.map((p) => String(p ?? "").trim()).filter(Boolean)
1051
+ : prev.providers;
1052
+ const preset = ["all", "shared", "users", "custom"].includes(action.preset) ? action.preset
1053
+ : (Array.isArray(action.providers) ? "custom" : prev.preset);
1054
+ return { ...state, budget: { ...state.budget, summary: { ...prev, days, providers, preset } } };
1055
+ }
1056
+ case "budget/summary/loading":
1057
+ return { ...state, budget: { ...state.budget, summary: { ...state.budget.summary, loading: true } } };
1058
+ case "budget/summary/loaded":
1059
+ return {
1060
+ ...state,
1061
+ budget: {
1062
+ ...state.budget,
1063
+ summary: {
1064
+ ...state.budget.summary,
1065
+ loading: false,
1066
+ error: null,
1067
+ fetchedAt: Number(action.fetchedAt) || Date.now(),
1068
+ data: action.data && typeof action.data === "object" ? action.data : null,
1069
+ },
1070
+ },
1071
+ };
1072
+ case "budget/summary/failed":
1073
+ // Keep the last answer on screen; say the read failed beside it.
1074
+ return {
1075
+ ...state,
1076
+ budget: {
1077
+ ...state.budget,
1078
+ summary: { ...state.budget.summary, loading: false, error: String(action.error || "The summary could not be read.") },
1079
+ },
1080
+ };
1081
+
1040
1082
  case "ui/diagnosticsSplitAdjust":
1041
1083
  return {
1042
1084
  ...state,
@@ -4829,9 +4829,30 @@ function budgetCell(raw, overall, nowMs) {
4829
4829
  // At 100/100 the two numbers are the story; the case this exists for is a
4830
4830
  // cell reading 13% of your share on a provider that has nothing left.
4831
4831
  const blockedButLooksFine = !overall && providerExhausted && (pct == null || pct < 100);
4832
+ // What the used figure is made of, for the pair on screen. A limit is on
4833
+ // the total — input + output — and the cache figures are parts OF the
4834
+ // input (what was served from the cache, what was written to it), not
4835
+ // additions to it. The parts are the meter's own turns over the meter's
4836
+ // own window, so input + output is the used figure beside them.
4837
+ const part = (key) => {
4838
+ const v = overall ? raw?.[key] : raw?.[`your${key[0].toUpperCase()}${key.slice(1)}`];
4839
+ return v == null ? null : Number(v);
4840
+ };
4841
+ const splitInput = part("inputTokens");
4842
+ const split = Number.isFinite(splitInput) ? {
4843
+ input: splitInput,
4844
+ output: part("outputTokens") || 0,
4845
+ cacheRead: part("cacheReadTokens") || 0,
4846
+ cacheWrite: part("cacheWriteTokens") || 0,
4847
+ } : null;
4848
+ const splitText = split
4849
+ ? `in ${formatCompactNumber(split.input)} (cache r ${formatCompactNumber(split.cacheRead)} · w ${formatCompactNumber(split.cacheWrite)}) · out ${formatCompactNumber(split.output)}`
4850
+ : null;
4832
4851
  return {
4833
4852
  providerExhausted: blockedButLooksFine,
4834
4853
  ruleId: raw?.ruleId || null,
4854
+ split,
4855
+ splitText,
4835
4856
  usedTokens: known ? usedTokens : null,
4836
4857
  quotaTokens: Number.isFinite(quotaTokens) ? quotaTokens : null,
4837
4858
  usedLabel,
@@ -4974,6 +4995,97 @@ function budgetTableRow(raw, { overall, selectedProvider, selectedScope = "*", n
4974
4995
  * Rows are NOT sorted here. The server returns them in render order and a
4975
4996
  * sort would move a model row out from under the provider it belongs to.
4976
4997
  */
4998
+ /**
4999
+ * The Cluster summary tab's view: the filter as the picker shows it, the
5000
+ * three KPI windows, a chart series with every day of the window present
5001
+ * (the database returns only days that had turns), the per-model rows with
5002
+ * a sparkline aligned to those same days, and the charge-class split.
5003
+ */
5004
+ export function selectUsageSummary(state) {
5005
+ const budget = state.budget || {};
5006
+ const summary = budget.summary || {};
5007
+ const data = summary.data && typeof summary.data === "object" ? summary.data : null;
5008
+ const days = [14, 30, 90].includes(Number(summary.days)) ? Number(summary.days) : 14;
5009
+
5010
+ // Provider choices come from the grid the Providers tab already read:
5011
+ // one entry per provider row, with its class, so the picker can offer
5012
+ // Shared / Users as presets and each name as a checkbox.
5013
+ const providers = [];
5014
+ const seen = new Set();
5015
+ for (const row of Array.isArray(budget.grid) ? budget.grid : []) {
5016
+ if (row?.rowKind !== "provider" || !row?.providerName || seen.has(row.providerName)) continue;
5017
+ seen.add(row.providerName);
5018
+ providers.push({ name: row.providerName, class: row.class === "shared" ? "shared" : "personal" });
5019
+ }
5020
+ const selected = new Set(Array.isArray(summary.providers) ? summary.providers : []);
5021
+ const preset = summary.preset || "all";
5022
+
5023
+ // Every UTC day of the window, oldest first, ending on the server's
5024
+ // "today" — so a quiet day is a zero bar, not a missing one.
5025
+ const today = typeof data?.today === "string" ? data.today : new Date().toISOString().slice(0, 10);
5026
+ const dayKeys = [];
5027
+ {
5028
+ const end = new Date(`${today}T00:00:00Z`).getTime();
5029
+ for (let i = days - 1; i >= 0; i -= 1) dayKeys.push(new Date(end - i * 86_400_000).toISOString().slice(0, 10));
5030
+ }
5031
+ const byDay = new Map((Array.isArray(data?.daily) ? data.daily : []).map((d) => [d.day, d]));
5032
+ const series = dayKeys.map((day) => {
5033
+ const d = byDay.get(day) || {};
5034
+ return {
5035
+ day,
5036
+ input: Number(d.input) || 0,
5037
+ output: Number(d.output) || 0,
5038
+ cacheRead: Number(d.cacheRead) || 0,
5039
+ cacheWrite: Number(d.cacheWrite) || 0,
5040
+ total: Number(d.total) || 0,
5041
+ turns: Number(d.turns) || 0,
5042
+ };
5043
+ });
5044
+ const windowTotal = series.reduce((sum, d) => sum + d.total, 0);
5045
+ const models = (Array.isArray(data?.models) ? data.models : []).map((m) => {
5046
+ const spark = new Map((Array.isArray(m.daily) ? m.daily : []).map((d) => [d.day, Number(d.total) || 0]));
5047
+ const total = Number(m.total) || 0;
5048
+ return {
5049
+ model: String(m.model || "?"),
5050
+ providers: Number(m.providers) || 0,
5051
+ turns: Number(m.turns) || 0,
5052
+ input: Number(m.input) || 0,
5053
+ output: Number(m.output) || 0,
5054
+ cacheRead: Number(m.cacheRead) || 0,
5055
+ cacheWrite: Number(m.cacheWrite) || 0,
5056
+ total,
5057
+ share: windowTotal > 0 ? total / windowTotal : 0,
5058
+ sparkline: dayKeys.map((day) => spark.get(day) || 0),
5059
+ };
5060
+ });
5061
+ const win = (key) => {
5062
+ const w = data?.windows?.[key] || {};
5063
+ return {
5064
+ input: Number(w.input) || 0, output: Number(w.output) || 0,
5065
+ cacheRead: Number(w.cacheRead) || 0, cacheWrite: Number(w.cacheWrite) || 0,
5066
+ total: Number(w.total) || 0, turns: Number(w.turns) || 0, sessions: Number(w.sessions) || 0,
5067
+ };
5068
+ };
5069
+ return {
5070
+ loading: Boolean(summary.loading),
5071
+ error: summary.error || null,
5072
+ loaded: Boolean(data),
5073
+ scope: data?.scope === "mine" ? "mine" : "cluster",
5074
+ days,
5075
+ today,
5076
+ preset,
5077
+ selectedProviders: Array.from(selected),
5078
+ providers,
5079
+ windows: { day: win("day"), week: win("week"), month: win("month") },
5080
+ series,
5081
+ windowTotal,
5082
+ models,
5083
+ classes: (Array.isArray(data?.classes) ? data.classes : []).map((c) => ({
5084
+ chargeClass: String(c.chargeClass || "?"), total: Number(c.total) || 0, turns: Number(c.turns) || 0,
5085
+ })),
5086
+ };
5087
+ }
5088
+
4977
5089
  export function selectProviderTable(state) {
4978
5090
  const budget = state.budget || {};
4979
5091
  const nowMs = Date.now();
@@ -530,6 +530,26 @@ export function createInitialState({ mode = "local", branding = null, docs = nul
530
530
  // why on the session row too, not only on this screen. See
531
531
  // docs/proposals/providers-and-budgets-meters.md.
532
532
  budget: {
533
+ // Which tab of the Budget screen is up: the per-provider table
534
+ // ("providers") or the cluster summary ("summary").
535
+ tab: "providers",
536
+ // The Cluster summary tab: totals for today / week / month, the
537
+ // per-day series and the per-model pivot, over a provider filter.
538
+ summary: {
539
+ loading: false,
540
+ error: null,
541
+ fetchedAt: 0,
542
+ // 14, 30 or 90 — the chart's and the model table's window.
543
+ days: 14,
544
+ // Provider filter. `preset` is what the picker shows as the
545
+ // headline choice; `providers` is the exact list the request
546
+ // carried (empty = every provider). A custom pick clears the
547
+ // preset.
548
+ preset: "all",
549
+ providers: [],
550
+ // The last answer, verbatim from getProviderUsageSummary.
551
+ data: null,
552
+ },
533
553
  // A first load, with nothing on screen yet.
534
554
  loading: false,
535
555
  // A re-read WITH numbers already on screen. Separate from