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.
- package/mcp/dist/src/tools/providers.d.ts.map +1 -1
- package/mcp/dist/src/tools/providers.js +12 -0
- package/mcp/dist/src/tools/providers.js.map +1 -1
- package/package.json +2 -2
- package/tui/src/node-sdk-transport.js +5 -0
- package/ui/core/src/commands.js +1 -0
- package/ui/core/src/controller.js +66 -0
- package/ui/core/src/history.js +5 -37
- package/ui/core/src/index.js +1 -0
- package/ui/core/src/reducer.js +42 -0
- package/ui/core/src/selectors.js +112 -0
- package/ui/core/src/state.js +20 -0
- package/ui/core/src/table-layout.js +155 -0
- package/ui/react/src/web-app.js +427 -223
- package/web/dist/assets/{abnfDiagram-VRR7QNED-VPL8m_9W.js → abnfDiagram-VRR7QNED-6rYy4Wj8.js} +1 -1
- package/web/dist/assets/{arc-T5I3-c1B.js → arc-CrRZ1Za7.js} +1 -1
- package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-DEP70bg6.js → architectureDiagram-ZJ3FMSHR-CPe2QuQL.js} +1 -1
- package/web/dist/assets/{blockDiagram-677ZJIJ3-CvBu1MbO.js → blockDiagram-677ZJIJ3-DfT6vWOg.js} +1 -1
- package/web/dist/assets/{c4Diagram-LMCZKHZV-B5qwF4gm.js → c4Diagram-LMCZKHZV-BO-VXBT8.js} +1 -1
- package/web/dist/assets/channel-HtOTPdHg.js +1 -0
- package/web/dist/assets/{chunk-2Q5K7J3B-zVW8dS7X.js → chunk-2Q5K7J3B-nq8p0xwC.js} +1 -1
- package/web/dist/assets/{chunk-32BRIVSS-DWctxZZS.js → chunk-32BRIVSS-DstJjLIA.js} +1 -1
- package/web/dist/assets/{chunk-5VM5RSS4-Bq7_Vmf9.js → chunk-5VM5RSS4-Bq0MPH_Q.js} +1 -1
- package/web/dist/assets/{chunk-EX3LRPZG-B8CFB3v-.js → chunk-EX3LRPZG-BPofXJWl.js} +1 -1
- package/web/dist/assets/{chunk-JWPE2WC7-B7gLPjgZ.js → chunk-JWPE2WC7-BBr7v6mo.js} +1 -1
- package/web/dist/assets/{chunk-MOJQB5TN-B2x6q12r.js → chunk-MOJQB5TN-DA7ca6Jr.js} +1 -1
- package/web/dist/assets/{chunk-RYQCIY6F-XorU9Stx.js → chunk-RYQCIY6F-fdXZe4nw.js} +1 -1
- package/web/dist/assets/{chunk-V7JOEXUC-CsLa6pw5.js → chunk-V7JOEXUC-BSATEdk2.js} +1 -1
- package/web/dist/assets/{chunk-VR4S4FIN-BBv9mwmj.js → chunk-VR4S4FIN-RR27eQST.js} +1 -1
- package/web/dist/assets/{chunk-XXDRQBXY-Cjm4mm6l.js → chunk-XXDRQBXY-Bh8VimxP.js} +1 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-C2P3dws0.js +1 -0
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-C2P3dws0.js +1 -0
- package/web/dist/assets/{cose-bilkent-JH36ORCC-Zw9ZQbVl.js → cose-bilkent-JH36ORCC-eP239MQJ.js} +1 -1
- package/web/dist/assets/{cynefin-VYW2F7L2-BYnR9YLM.js → cynefin-VYW2F7L2-Sb8l4Vm6.js} +1 -1
- package/web/dist/assets/{cynefinDiagram-TSTJHNR4-Cx8L0dOv.js → cynefinDiagram-TSTJHNR4-BrWMkhw9.js} +1 -1
- package/web/dist/assets/{dagre-VKFMJZFB-7GaqVcqz.js → dagre-VKFMJZFB-DT5kNKEx.js} +1 -1
- package/web/dist/assets/{diagram-FQU43EPY-BWSRPJvU.js → diagram-FQU43EPY-Dy0Bxyod.js} +1 -1
- package/web/dist/assets/{diagram-G47NLZAW-BELuAE1e.js → diagram-G47NLZAW-R_yWa2-6.js} +1 -1
- package/web/dist/assets/{diagram-NH7WQ7WH-DGXhPpri.js → diagram-NH7WQ7WH-BV2cGmgX.js} +1 -1
- package/web/dist/assets/{diagram-OA4YK3LP-DV8HqN0T.js → diagram-OA4YK3LP-auayiDmq.js} +1 -1
- package/web/dist/assets/{diagram-WEI45ONY-Clv1X3ZL.js → diagram-WEI45ONY-CE7bHIYE.js} +1 -1
- package/web/dist/assets/{ebnfDiagram-CCIWWBDH-TpQx36oi.js → ebnfDiagram-CCIWWBDH-C3SMk6Uu.js} +1 -1
- package/web/dist/assets/{erDiagram-Q63AITRT-DVVWd00c.js → erDiagram-Q63AITRT-CnTs6X2D.js} +1 -1
- package/web/dist/assets/{flowDiagram-23GEKE2U-Cdz_8_Dw.js → flowDiagram-23GEKE2U-DobYm7mq.js} +1 -1
- package/web/dist/assets/{ganttDiagram-NO4QXBWP-zlco-o7u.js → ganttDiagram-NO4QXBWP-AkTQtAsR.js} +1 -1
- package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-CfAZW1En.js → gitGraphDiagram-IHSO6WYX-CpLWsqgx.js} +1 -1
- package/web/dist/assets/{index-tQXCQojP.js → index-BCzNnCl0.js} +6 -6
- package/web/dist/assets/index-BUp5hFdX.css +1 -0
- package/web/dist/assets/{infoDiagram-FWYZ7A6U-0R-8efwI.js → infoDiagram-FWYZ7A6U-ByzTSgj_.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-lPpoXGlp.js → ishikawaDiagram-FXEZZL3T-CaL9Wi8i.js} +1 -1
- package/web/dist/assets/{journeyDiagram-5HDEW3XC-D05vSVqu.js → journeyDiagram-5HDEW3XC-BillueZJ.js} +1 -1
- package/web/dist/assets/{kanban-definition-HUTT4EX6-ClaDdESv.js → kanban-definition-HUTT4EX6-DI_IRVWQ.js} +1 -1
- package/web/dist/assets/{linear-CUnhHMvY.js → linear-Cabaq-RD.js} +1 -1
- package/web/dist/assets/{mermaid.core-DaYS-X8Y.js → mermaid.core-D8KnBjxP.js} +4 -4
- package/web/dist/assets/{mindmap-definition-LN4V7U3C-N480VHds.js → mindmap-definition-LN4V7U3C-Bl7FpPwk.js} +1 -1
- package/web/dist/assets/{papaparse.min-CNTcNgd8.js → papaparse.min-CcjjKk0h.js} +1 -1
- package/web/dist/assets/{pegDiagram-2B236MQR-CVWyJ5ck.js → pegDiagram-2B236MQR-CmsG2owD.js} +1 -1
- package/web/dist/assets/{pieDiagram-ENE6RG2P-UR9uohPf.js → pieDiagram-ENE6RG2P-CLA_mcHl.js} +1 -1
- package/web/dist/assets/pilotswarm-DMCBXi5A.js +97 -0
- package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-D2SIOetn.js → quadrantDiagram-ABIIQ3AL-hT9bnnUG.js} +1 -1
- package/web/dist/assets/{railroadDiagram-RFXS5EU6-OgN6qgOU.js → railroadDiagram-RFXS5EU6-CNC0kFW6.js} +1 -1
- package/web/dist/assets/{requirementDiagram-TGXJPOKE-BSUURBBz.js → requirementDiagram-TGXJPOKE-C-nSthhK.js} +1 -1
- package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BBZhmSBZ.js → sankeyDiagram-HTMAVEWB-C5JdV5bI.js} +1 -1
- package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-C10IDNdW.js → sequenceDiagram-DBY2YBRQ-BMKBxKk9.js} +1 -1
- package/web/dist/assets/{sizeCapture-X5ZJPWSS-B9787MHa.js → sizeCapture-X5ZJPWSS-CbwNw-TR.js} +1 -1
- package/web/dist/assets/{stateDiagram-2N3HPSRC-BmSBo7es.js → stateDiagram-2N3HPSRC-ChvGrUa_.js} +1 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DLbEwVA2.js +1 -0
- package/web/dist/assets/{swimlanes-5IMT3BWC-DOXpv_KQ.js → swimlanes-5IMT3BWC-D9Uzkbi7.js} +2 -2
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DMzhdO6y.js +8 -0
- package/web/dist/assets/{timeline-definition-FHXFAJF6-SjhGfPdI.js → timeline-definition-FHXFAJF6-ctFEfgUp.js} +1 -1
- package/web/dist/assets/{vennDiagram-L72KCM5P-BiujYen6.js → vennDiagram-L72KCM5P-DGrJhlyF.js} +1 -1
- package/web/dist/assets/{wardleyDiagram-EHGQE667-6nLXBvwc.js → wardleyDiagram-EHGQE667-BGqtZ8dQ.js} +1 -1
- package/web/dist/assets/{xychartDiagram-FW5EYKEG-Di7ioTvW.js → xychartDiagram-FW5EYKEG-DAXXs9xC.js} +1 -1
- package/web/dist/index.html +3 -3
- package/web/runtime.js +10 -0
- package/web/dist/assets/channel-D5LojeMw.js +0 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-C5edc5Or.js +0 -1
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-C5edc5Or.js +0 -1
- package/web/dist/assets/index-CMtzFJre.css +0 -1
- package/web/dist/assets/pilotswarm-BG6hk0oE.js +0 -97
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-BqpsfoJI.js +0 -1
- 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,
|
|
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.
|
|
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.
|
|
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 || {});
|
package/ui/core/src/commands.js
CHANGED
|
@@ -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;
|
package/ui/core/src/history.js
CHANGED
|
@@ -542,27 +542,11 @@ function buildChatMessage(event, role) {
|
|
|
542
542
|
};
|
|
543
543
|
}
|
|
544
544
|
|
|
545
|
-
// The
|
|
546
|
-
//
|
|
547
|
-
//
|
|
548
|
-
//
|
|
549
|
-
//
|
|
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;
|
package/ui/core/src/index.js
CHANGED
|
@@ -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";
|
package/ui/core/src/reducer.js
CHANGED
|
@@ -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,
|
package/ui/core/src/selectors.js
CHANGED
|
@@ -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();
|
package/ui/core/src/state.js
CHANGED
|
@@ -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
|