pilotswarm 0.5.52 → 0.5.53
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 +8 -0
- package/mcp/dist/src/tools/providers.js.map +1 -1
- package/package.json +2 -2
- package/ui/core/src/controller.js +24 -1
- package/ui/core/src/reducer.js +25 -1
- package/ui/core/src/selectors.js +61 -0
- package/ui/core/src/state.js +9 -0
- package/ui/react/src/web-app.js +175 -21
- package/web/dist/assets/{abnfDiagram-VRR7QNED-Dcw4A-hB.js → abnfDiagram-VRR7QNED-Cccg5mUx.js} +1 -1
- package/web/dist/assets/{arc-XzDjfCV-.js → arc-DFWp1OiI.js} +1 -1
- package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-Br9AHRsm.js → architectureDiagram-ZJ3FMSHR-o2B4-sJ1.js} +1 -1
- package/web/dist/assets/{blockDiagram-677ZJIJ3-Dncy40T9.js → blockDiagram-677ZJIJ3-Cf_7Cm38.js} +1 -1
- package/web/dist/assets/{c4Diagram-LMCZKHZV-h3Wfl-xs.js → c4Diagram-LMCZKHZV-CKXuPB0d.js} +1 -1
- package/web/dist/assets/channel-CIBN5O06.js +1 -0
- package/web/dist/assets/{chunk-2Q5K7J3B-BRPoZMS7.js → chunk-2Q5K7J3B-CZC3HwzC.js} +1 -1
- package/web/dist/assets/{chunk-32BRIVSS-BzOGF46D.js → chunk-32BRIVSS-7_X1k3eB.js} +1 -1
- package/web/dist/assets/{chunk-5VM5RSS4-qxZ6yZ_t.js → chunk-5VM5RSS4-E2rxT4um.js} +1 -1
- package/web/dist/assets/{chunk-EX3LRPZG-CcvtCsDk.js → chunk-EX3LRPZG-BbW37HWx.js} +1 -1
- package/web/dist/assets/{chunk-JWPE2WC7-sPBZfXag.js → chunk-JWPE2WC7-dj0DOnPl.js} +1 -1
- package/web/dist/assets/{chunk-MOJQB5TN-0QOtPHz1.js → chunk-MOJQB5TN-TeWalpvK.js} +1 -1
- package/web/dist/assets/{chunk-RYQCIY6F-CV87zKxh.js → chunk-RYQCIY6F-ClHcH2bN.js} +1 -1
- package/web/dist/assets/{chunk-V7JOEXUC-DQkZAWyU.js → chunk-V7JOEXUC-Dy5XEnNL.js} +1 -1
- package/web/dist/assets/{chunk-VR4S4FIN-ohbQ_scj.js → chunk-VR4S4FIN-Den_q-0P.js} +1 -1
- package/web/dist/assets/{chunk-XXDRQBXY-CDQGR6jd.js → chunk-XXDRQBXY-DZ1s-8xB.js} +1 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-Bq-5VkDc.js +1 -0
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-Bq-5VkDc.js +1 -0
- package/web/dist/assets/{cose-bilkent-JH36ORCC-WvmQPFiy.js → cose-bilkent-JH36ORCC-CKAukUTf.js} +1 -1
- package/web/dist/assets/{cynefin-VYW2F7L2-DquCg-BR.js → cynefin-VYW2F7L2-CM8y129F.js} +1 -1
- package/web/dist/assets/{cynefinDiagram-TSTJHNR4-eP4YghoJ.js → cynefinDiagram-TSTJHNR4-DLryvwYt.js} +1 -1
- package/web/dist/assets/{dagre-VKFMJZFB-B1kV-4ia.js → dagre-VKFMJZFB-BO0LMWmO.js} +1 -1
- package/web/dist/assets/{diagram-FQU43EPY-5LqpmHmp.js → diagram-FQU43EPY-DiFLu7v2.js} +1 -1
- package/web/dist/assets/{diagram-G47NLZAW-Cgcn8eZf.js → diagram-G47NLZAW-DMkq9we0.js} +1 -1
- package/web/dist/assets/{diagram-NH7WQ7WH-DZsYgS0w.js → diagram-NH7WQ7WH-CxVQL8Dq.js} +1 -1
- package/web/dist/assets/{diagram-OA4YK3LP-BF-prFlR.js → diagram-OA4YK3LP-B5TrTlUc.js} +1 -1
- package/web/dist/assets/{diagram-WEI45ONY-BbpXHIRI.js → diagram-WEI45ONY-Ca38mf1v.js} +1 -1
- package/web/dist/assets/{ebnfDiagram-CCIWWBDH-CmSrEwoV.js → ebnfDiagram-CCIWWBDH-DZR_44LD.js} +1 -1
- package/web/dist/assets/{erDiagram-Q63AITRT-C_qTHJ92.js → erDiagram-Q63AITRT-Ca8mmsU1.js} +1 -1
- package/web/dist/assets/{flowDiagram-23GEKE2U-CcKMrw33.js → flowDiagram-23GEKE2U-C0DFTCS6.js} +1 -1
- package/web/dist/assets/{ganttDiagram-NO4QXBWP-C6iDGo_F.js → ganttDiagram-NO4QXBWP-COqaqM45.js} +1 -1
- package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-BabA6JSg.js → gitGraphDiagram-IHSO6WYX-Cwb9oGjZ.js} +1 -1
- package/web/dist/assets/{index-D1hpvm4I.js → index-0isomVdq.js} +4 -4
- package/web/dist/assets/{infoDiagram-FWYZ7A6U-B5lMiSNO.js → infoDiagram-FWYZ7A6U-CdPnS1-j.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-BiVJxfHu.js → ishikawaDiagram-FXEZZL3T-D4Muo2uw.js} +1 -1
- package/web/dist/assets/{journeyDiagram-5HDEW3XC-y1Lw7qmn.js → journeyDiagram-5HDEW3XC-0uVdJDiB.js} +1 -1
- package/web/dist/assets/{kanban-definition-HUTT4EX6-CfNFiLCu.js → kanban-definition-HUTT4EX6-DWQU6DYI.js} +1 -1
- package/web/dist/assets/{linear-DtEaMDnX.js → linear-BOxgX8xV.js} +1 -1
- package/web/dist/assets/{mermaid.core-DuM5Gnr2.js → mermaid.core-C8tHn40J.js} +4 -4
- package/web/dist/assets/{mindmap-definition-LN4V7U3C-MeRS48LY.js → mindmap-definition-LN4V7U3C-C8NH0hQq.js} +1 -1
- package/web/dist/assets/{papaparse.min-ajK_kXWW.js → papaparse.min-CwI0VkgN.js} +1 -1
- package/web/dist/assets/{pegDiagram-2B236MQR-5eMup_03.js → pegDiagram-2B236MQR-CksEEUgN.js} +1 -1
- package/web/dist/assets/{pieDiagram-ENE6RG2P-DShSSLBb.js → pieDiagram-ENE6RG2P-Bq2Bv0cw.js} +1 -1
- package/web/dist/assets/pilotswarm-uebRfMjg.js +99 -0
- package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-DEUY048r.js → quadrantDiagram-ABIIQ3AL-vvpwUrN5.js} +1 -1
- package/web/dist/assets/{railroadDiagram-RFXS5EU6-DVaCLItZ.js → railroadDiagram-RFXS5EU6-yXGWn-zZ.js} +1 -1
- package/web/dist/assets/{requirementDiagram-TGXJPOKE-BRHsQhAz.js → requirementDiagram-TGXJPOKE-Bt1Q6Y60.js} +1 -1
- package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BS2bXDW3.js → sankeyDiagram-HTMAVEWB-CPNAfqgE.js} +1 -1
- package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-Dupbh7Gw.js → sequenceDiagram-DBY2YBRQ-Dz432FWB.js} +1 -1
- package/web/dist/assets/{sizeCapture-X5ZJPWSS-DtWNIMGp.js → sizeCapture-X5ZJPWSS-Cokz6gNF.js} +1 -1
- package/web/dist/assets/{stateDiagram-2N3HPSRC-B-swtPzt.js → stateDiagram-2N3HPSRC-ojQCUdRE.js} +1 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-BliVrz4U.js +1 -0
- package/web/dist/assets/{swimlanes-5IMT3BWC-CQXYLRHN.js → swimlanes-5IMT3BWC-DyTOkc1R.js} +2 -2
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DmwmYUnc.js +8 -0
- package/web/dist/assets/{timeline-definition-FHXFAJF6-CKdXY_ox.js → timeline-definition-FHXFAJF6-DmuhBBl6.js} +1 -1
- package/web/dist/assets/{vennDiagram-L72KCM5P-D82ZRrFW.js → vennDiagram-L72KCM5P-gTxQuU5b.js} +1 -1
- package/web/dist/assets/{wardleyDiagram-EHGQE667-95lZ3zmA.js → wardleyDiagram-EHGQE667-YNXbSRf2.js} +1 -1
- package/web/dist/assets/{xychartDiagram-FW5EYKEG-_o61JwnS.js → xychartDiagram-FW5EYKEG-D7loT9cv.js} +1 -1
- package/web/dist/index.html +2 -2
- package/web/runtime.js +8 -0
- package/web/dist/assets/channel-LnDcK-_Y.js +0 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-rJcYNS_I.js +0 -1
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-rJcYNS_I.js +0 -1
- package/web/dist/assets/pilotswarm-BuroYLs1.js +0 -97
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-5llIgH2Q.js +0 -1
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DGa9Igsk.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,QA4a1E"}
|
|
@@ -269,6 +269,14 @@ export function registerProviderTools(server, ctx) {
|
|
|
269
269
|
providers: z.array(z.string()).optional().describe("Only these providers, by name; absent means all"),
|
|
270
270
|
},
|
|
271
271
|
}, withToolErrors(async ({ days, providers }) => jsonResult(await ctx.mgmt.getProviderUsageSummary(viewer, { days, providers }))));
|
|
272
|
+
server.registerTool("get_provider_usage_agents", {
|
|
273
|
+
title: "Get Usage By Agent",
|
|
274
|
+
description: "The agent pivot from the same usage ledger: one row per AGENT that ran the turns — tokens, turns, sessions, the models it ran and its own per-day totals — plus a flat day-by-agent series. Turns from a session bound to no agent report as '(none)'; their tokens are real. Same viewer scoping as the cluster summary: admins see the whole cluster, everyone else their own turns. Use it to find which agent is spending, and its tokens-per-turn average (total / turns; a ledger row is one turn).",
|
|
275
|
+
inputSchema: {
|
|
276
|
+
days: z.number().int().min(1).max(365).optional().describe("Days of history (default 14; 14, 30 or 90 are the portal's choices)"),
|
|
277
|
+
providers: z.array(z.string()).optional().describe("Only these providers, by name; absent means all"),
|
|
278
|
+
},
|
|
279
|
+
}, withToolErrors(async ({ days, providers }) => jsonResult(await ctx.mgmt.getProviderUsageAgents(viewer, { days, providers }))));
|
|
272
280
|
server.registerTool("get_provider_usage", {
|
|
273
281
|
title: "Get Provider Usage",
|
|
274
282
|
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":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,GAAkB;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAEvD,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACP,iGAAiG;cAC/F,mGAAmG;cACnG,mGAAmG;cACnG,8FAA8F;QACpG,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACP,qGAAqG;cACnG,kGAAkG;cAClG,8FAA8F;QACpG,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SAC/G;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAC3G,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,yBAAyB,EACzB;QACI,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACP,oGAAoG;cAClG,qFAAqF;cACrF,6FAA6F;cAC7F,4FAA4F;cAC5F,qCAAqC;QAC3C,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB;QACI,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACP,2DAA2D;cACzD,iGAAiG;cACjG,gCAAgC;cAChC,6FAA6F;cAC7F,uCAAuC;cACvC,iGAAiG;cACjG,iFAAiF;cACjF,mGAAmG;cACnG,+EAA+E;cAC/E,iGAAiG;cACjG,oGAAoG;QAC1G,WAAW,EAAE;YACT,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC/G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+EAA+E,CAAC;YACjH,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,kFAAkF,CAAC;YAC9G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sHAAsH,CAAC;YACnK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;YAC1J,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACjG;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzE,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACjC,4DAA4D;YAC5D,+DAA+D;YAC/D,4BAA4B;YAC5B,OAAO,UAAU,CAAC,IAAI;gBAClB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;gBAC/F,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,IAAI;gBAClB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC/C,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,OAAO,WAAW,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC1F,OAAO,UAAU,CAAC,IAAI;YAClB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;YAChD,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACP,iGAAiG;cAC/F,oGAAoG;cACpG,oGAAoG;cACpG,qGAAqG;cACrG,gGAAgG;cAChG,+FAA+F;QACrG,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;YACpH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;SACvI;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC,MAAM,IAAI,IAAI;YAC5B,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;YACjD,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,wBAAwB,EACxB;QACI,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACP,oGAAoG;cAClG,kGAAkG;cAClG,mGAAmG;cACnG,mGAAmG;cACnG,2EAA2E;QACjF,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SACzG;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAC1H,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,eAAe,EACf;QACI,KAAK,EAAE,eAAe;QACtB,WAAW,EACP,+FAA+F;cAC7F,sGAAsG;cACtG,0FAA0F;QAChG,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACvE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACjG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;SAC9H;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,UAAU,CAChE,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS;QACvD,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QAC7B,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CACnD,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACI,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACP,kGAAkG;cAChG,oGAAoG;cACpG,wGAAwG;QAC9G,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAC7E,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACP,kGAAkG;cAChG,2GAA2G;QACjH,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAClF,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACP,sGAAsG;cACpG,iGAAiG;cACjG,qGAAqG;cACrG,4EAA4E;QAClF,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;YACrH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACrG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SACxG;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG;YACV,QAAQ,EAAE,QAAQ,IAAI,IAAI;YAC1B,KAAK,EAAE,KAAK,IAAI,IAAI;YACpB,SAAS,EAAE,SAAS,IAAI,IAAI;YAC5B,OAAO,EAAE,OAAO,IAAI,IAAI;SAC3B,CAAC;QACF,OAAO,UAAU,CAAC,KAAK,KAAK,SAAS;YACjC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;YACjD,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;QACI,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACP,oGAAoG;cAClG,iDAAiD;QACvD,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC3B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;YACzF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE;SACzD;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,UAAU,CAC/E,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QACnC,KAAK;QACL,QAAQ,EAAE,QAAQ,IAAI,IAAI;QAC1B,KAAK,EAAE,KAAK,IAAI,IAAI;QACpB,eAAe,EAAE,SAAS,IAAI,IAAI;QAClC,WAAW,EAAE,OAAO,IAAI,IAAI;KAC/B,CAAC,CACL,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,yBAAyB,EACzB;QACI,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACP,oGAAoG;cAClG,iEAAiE;QACvE,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;SACvB;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,UAAU,CACtD,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CACrE,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,sCAAsC,EACtC;QACI,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,CAAC,CAClG,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,gCAAgC,EAChC;QACI,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACP,qGAAqG;cACnG,iFAAiF;QACvF,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,CACzC,MAAM,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CACrE,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,0BAA0B,EAC1B;QACI,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACP,gGAAgG;cAC9F,8FAA8F;QACpG,WAAW,EAAE;YACT,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC3B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;YACzF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE;YACtD,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnF;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,UAAU,CAC7F,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;QACzC,QAAQ,EAAE,QAAQ,IAAI,IAAI;QAC1B,KAAK,EAAE,KAAK,IAAI,IAAI;QACpB,eAAe,EAAE,SAAS,IAAI,IAAI;QAClC,WAAW,EAAE,OAAO,IAAI,IAAI;QAC5B,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,KAAK;KACtF,CAAC,CACL,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,6BAA6B,EAC7B;QACI,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACP,qGAAqG;cACnG,oGAAoG;QAC1G,WAAW,EAAE;YACT,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC1F,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC1D;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/E,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO,WAAW,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;YAC3D,OAAO,EAAE,QAAQ;YACjB,QAAQ;YACR,KAAK;YACL,eAAe,EAAE,SAAS,IAAI,IAAI;YAClC,WAAW,EAAE,OAAO,IAAI,IAAI;SAC/B,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,4BAA4B,EAC5B;QACI,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACP,oGAAoG;cAClG,gGAAgG;cAChG,kGAAkG;cAClG,iGAAiG;cACjG,4FAA4F;QAClG,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wGAAwG,CAAC;YACpK,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SACxG;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CACzC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CACvF,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACP,oGAAoG;cAClG,mGAAmG;cACnG,mGAAmG;cACnG,oGAAoG;cACpG,+FAA+F;cAC/F,YAAY;QAClB,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACrG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;YAC1H,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/D,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;YACtK,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC7I,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;SACpJ;KACJ,EACD,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1G,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC/C,IAAI;QACJ,WAAW,EAAE,aAAa;QAC1B,QAAQ;QACR,KAAK;QACL,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,YAAY;QACzB,SAAS;QACT,KAAK;KACR,CAAC,CAAC,CAAC,CACX,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACP,oGAAoG;cAClG,+FAA+F;cAC/F,sEAAsE;QAC5E,WAAW,EAAE,EAAE;KAClB,EACD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CACpF,CAAC;AACN,CAAC"}
|
|
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.53",
|
|
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.53",
|
|
85
85
|
"react": "^19.2.4",
|
|
86
86
|
"react-dom": "^19.2.4",
|
|
87
87
|
"ws": "^8.18.2"
|
|
@@ -4159,6 +4159,7 @@ export class PilotSwarmUiController {
|
|
|
4159
4159
|
setBudgetTab(tab) {
|
|
4160
4160
|
this.dispatch({ type: "budget/tab", tab });
|
|
4161
4161
|
if (tab === "summary") this.loadUsageSummary().catch(() => {});
|
|
4162
|
+
if (tab === "agents") this.loadUsageAgents().catch(() => {});
|
|
4162
4163
|
}
|
|
4163
4164
|
|
|
4164
4165
|
/**
|
|
@@ -4168,7 +4169,29 @@ export class PilotSwarmUiController {
|
|
|
4168
4169
|
*/
|
|
4169
4170
|
async setUsageSummaryFilter({ days, providers, preset } = {}) {
|
|
4170
4171
|
this.dispatch({ type: "budget/summary/filter", days, providers, preset });
|
|
4171
|
-
|
|
4172
|
+
// One filter drives both ledger views; refresh whichever have data.
|
|
4173
|
+
const jobs = [this.loadUsageSummary()];
|
|
4174
|
+
if (this.getState().budget?.agents?.data || this.getState().budget?.tab === "agents") jobs.push(this.loadUsageAgents());
|
|
4175
|
+
await Promise.all(jobs);
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4178
|
+
/** Read the per-agent pivot for the current summary filter. */
|
|
4179
|
+
async loadUsageAgents() {
|
|
4180
|
+
if (typeof this.transport.getProviderUsageAgents !== "function") {
|
|
4181
|
+
this.dispatch({ type: "budget/agents/failed", error: "The agent pivot is not available on this transport." });
|
|
4182
|
+
return;
|
|
4183
|
+
}
|
|
4184
|
+
const filter = this.getState().budget?.summary || {};
|
|
4185
|
+
this.dispatch({ type: "budget/agents/loading" });
|
|
4186
|
+
try {
|
|
4187
|
+
const data = await this.transport.getProviderUsageAgents({
|
|
4188
|
+
days: filter.days || 14,
|
|
4189
|
+
...(Array.isArray(filter.providers) && filter.providers.length ? { providers: filter.providers } : {}),
|
|
4190
|
+
});
|
|
4191
|
+
this.dispatch({ type: "budget/agents/loaded", data, fetchedAt: Date.now() });
|
|
4192
|
+
} catch (error) {
|
|
4193
|
+
this.dispatch({ type: "budget/agents/failed", error: budgetRefusalMessage(error) });
|
|
4194
|
+
}
|
|
4172
4195
|
}
|
|
4173
4196
|
|
|
4174
4197
|
/**
|
package/ui/core/src/reducer.js
CHANGED
|
@@ -1039,7 +1039,7 @@ export function appReducer(state, action) {
|
|
|
1039
1039
|
|
|
1040
1040
|
// ── Budget screen: tab + the Cluster summary ─────────────────
|
|
1041
1041
|
case "budget/tab": {
|
|
1042
|
-
const tab =
|
|
1042
|
+
const tab = ["summary", "agents"].includes(action.tab) ? action.tab : "providers";
|
|
1043
1043
|
if (state.budget.tab === tab) return state;
|
|
1044
1044
|
return { ...state, budget: { ...state.budget, tab } };
|
|
1045
1045
|
}
|
|
@@ -1069,6 +1069,30 @@ export function appReducer(state, action) {
|
|
|
1069
1069
|
},
|
|
1070
1070
|
},
|
|
1071
1071
|
};
|
|
1072
|
+
case "budget/agents/loading":
|
|
1073
|
+
return { ...state, budget: { ...state.budget, agents: { ...state.budget.agents, loading: true } } };
|
|
1074
|
+
case "budget/agents/loaded":
|
|
1075
|
+
return {
|
|
1076
|
+
...state,
|
|
1077
|
+
budget: {
|
|
1078
|
+
...state.budget,
|
|
1079
|
+
agents: {
|
|
1080
|
+
...state.budget.agents,
|
|
1081
|
+
loading: false,
|
|
1082
|
+
error: null,
|
|
1083
|
+
fetchedAt: Number(action.fetchedAt) || Date.now(),
|
|
1084
|
+
data: action.data && typeof action.data === "object" ? action.data : null,
|
|
1085
|
+
},
|
|
1086
|
+
},
|
|
1087
|
+
};
|
|
1088
|
+
case "budget/agents/failed":
|
|
1089
|
+
return {
|
|
1090
|
+
...state,
|
|
1091
|
+
budget: {
|
|
1092
|
+
...state.budget,
|
|
1093
|
+
agents: { ...state.budget.agents, loading: false, error: String(action.error || "The agent pivot could not be read.") },
|
|
1094
|
+
},
|
|
1095
|
+
};
|
|
1072
1096
|
case "budget/summary/failed":
|
|
1073
1097
|
// Keep the last answer on screen; say the read failed beside it.
|
|
1074
1098
|
return {
|
package/ui/core/src/selectors.js
CHANGED
|
@@ -5049,6 +5049,67 @@ function budgetTableRow(raw, { overall, selectedProvider, selectedScope = "*", n
|
|
|
5049
5049
|
* (the database returns only days that had turns), the per-model rows with
|
|
5050
5050
|
* a sparkline aligned to those same days, and the charge-class split.
|
|
5051
5051
|
*/
|
|
5052
|
+
|
|
5053
|
+
/**
|
|
5054
|
+
* The Agents tab view: per-agent aggregates (with tokens-per-turn and share
|
|
5055
|
+
* derived here so every renderer agrees), the day×agent series for the
|
|
5056
|
+
* stacked chart, and the same filter state the Cluster summary holds — one
|
|
5057
|
+
* filter, two views of the same ledger rows.
|
|
5058
|
+
*/
|
|
5059
|
+
export function selectUsageAgents(state) {
|
|
5060
|
+
const budget = state.budget || {};
|
|
5061
|
+
const slice = budget.agents || {};
|
|
5062
|
+
const filter = budget.summary || {};
|
|
5063
|
+
const data = slice.data && typeof slice.data === "object" ? slice.data : null;
|
|
5064
|
+
const days = [14, 30, 90].includes(Number(filter.days)) ? Number(filter.days) : 14;
|
|
5065
|
+
|
|
5066
|
+
const agents = (Array.isArray(data?.agents) ? data.agents : []).map((a) => {
|
|
5067
|
+
const turns = Number(a.turns) || 0;
|
|
5068
|
+
const total = Number(a.total) || 0;
|
|
5069
|
+
return {
|
|
5070
|
+
agent: String(a.agent || "(none)"),
|
|
5071
|
+
models: Array.isArray(a.models) ? a.models.map(String) : [],
|
|
5072
|
+
turns,
|
|
5073
|
+
sessions: Number(a.sessions) || 0,
|
|
5074
|
+
input: Number(a.input) || 0,
|
|
5075
|
+
output: Number(a.output) || 0,
|
|
5076
|
+
cacheRead: Number(a.cacheRead) || 0,
|
|
5077
|
+
cacheWrite: Number(a.cacheWrite) || 0,
|
|
5078
|
+
total,
|
|
5079
|
+
perTurn: turns > 0 ? total / turns : 0,
|
|
5080
|
+
daily: Array.isArray(a.daily) ? a.daily : [],
|
|
5081
|
+
};
|
|
5082
|
+
});
|
|
5083
|
+
const windowTotal = agents.reduce((sum, a) => sum + a.total, 0);
|
|
5084
|
+
for (const a of agents) a.share = windowTotal > 0 ? a.total / windowTotal : 0;
|
|
5085
|
+
|
|
5086
|
+
// Day axis mirrors selectUsageSummary: every UTC day of the window,
|
|
5087
|
+
// oldest first, so a quiet day is a zero column, not a missing one.
|
|
5088
|
+
const today = typeof data?.today === "string" ? data.today : new Date().toISOString().slice(0, 10);
|
|
5089
|
+
const dayKeys = [];
|
|
5090
|
+
{
|
|
5091
|
+
const end = new Date(`${today}T00:00:00Z`).getTime();
|
|
5092
|
+
for (let i = days - 1; i >= 0; i -= 1) dayKeys.push(new Date(end - i * 86_400_000).toISOString().slice(0, 10));
|
|
5093
|
+
}
|
|
5094
|
+
const daily = new Map(dayKeys.map((d) => [d, new Map()]));
|
|
5095
|
+
for (const row of Array.isArray(data?.daily) ? data.daily : []) {
|
|
5096
|
+
const perDay = daily.get(row.day);
|
|
5097
|
+
if (perDay) perDay.set(String(row.agent || "(none)"), Number(row.total) || 0);
|
|
5098
|
+
}
|
|
5099
|
+
|
|
5100
|
+
return {
|
|
5101
|
+
loading: Boolean(slice.loading),
|
|
5102
|
+
error: slice.error || null,
|
|
5103
|
+
loaded: Boolean(data),
|
|
5104
|
+
days,
|
|
5105
|
+
scope: data?.scope === "cluster" ? "cluster" : "mine",
|
|
5106
|
+
agents,
|
|
5107
|
+
windowTotal,
|
|
5108
|
+
dayKeys,
|
|
5109
|
+
daily,
|
|
5110
|
+
};
|
|
5111
|
+
}
|
|
5112
|
+
|
|
5052
5113
|
export function selectUsageSummary(state) {
|
|
5053
5114
|
const budget = state.budget || {};
|
|
5054
5115
|
const summary = budget.summary || {};
|
package/ui/core/src/state.js
CHANGED
|
@@ -550,6 +550,15 @@ export function createInitialState({ mode = "local", branding = null, docs = nul
|
|
|
550
550
|
// The last answer, verbatim from getProviderUsageSummary.
|
|
551
551
|
data: null,
|
|
552
552
|
},
|
|
553
|
+
// The Agents tab: the per-agent pivot over the same window and
|
|
554
|
+
// provider filter as the Cluster summary (one filter, two views).
|
|
555
|
+
agents: {
|
|
556
|
+
loading: false,
|
|
557
|
+
error: null,
|
|
558
|
+
fetchedAt: 0,
|
|
559
|
+
// The last answer, verbatim from getProviderUsageAgents.
|
|
560
|
+
data: null,
|
|
561
|
+
},
|
|
553
562
|
// A first load, with nothing on screen yet.
|
|
554
563
|
loading: false,
|
|
555
564
|
// A re-read WITH numbers already on screen. Separate from
|
package/ui/react/src/web-app.js
CHANGED
|
@@ -48,6 +48,7 @@ import {
|
|
|
48
48
|
selectNavigationError,
|
|
49
49
|
selectProviderTable,
|
|
50
50
|
selectUsageSummary,
|
|
51
|
+
selectUsageAgents,
|
|
51
52
|
selectReasoningEffortPickerModal,
|
|
52
53
|
selectContextTierPickerModal,
|
|
53
54
|
selectRenameSessionModal,
|
|
@@ -10978,6 +10979,172 @@ function budgetViewDeps(state) {
|
|
|
10978
10979
|
];
|
|
10979
10980
|
}
|
|
10980
10981
|
|
|
10982
|
+
|
|
10983
|
+
// ─── Agents tab ─────────────────────────────────────────────────────────
|
|
10984
|
+
|
|
10985
|
+
/** Categorical fills for agent segments — readable on light and dark. */
|
|
10986
|
+
const AGENT_PALETTE = ["#5b8def", "#e8833a", "#3fb27f", "#c95d63", "#8f6fd8", "#2fa8bf", "#c9a227", "#d1699e", "#7a9a3b", "#8a8a8a"];
|
|
10987
|
+
const agentColor = (i) => AGENT_PALETTE[i % AGENT_PALETTE.length];
|
|
10988
|
+
|
|
10989
|
+
/** Stacked-by-agent daily bars, linear axis — same geometry as SummaryChart. */
|
|
10990
|
+
function AgentStackChart({ view, included }) {
|
|
10991
|
+
const W = 720; const H = 210; const padL = 58; const padB = 22; const padT = 8;
|
|
10992
|
+
const order = view.agents.filter((a) => included.has(a.agent)).map((a) => a.agent);
|
|
10993
|
+
const totals = view.dayKeys.map((day) => {
|
|
10994
|
+
const perDay = view.daily.get(day) || new Map();
|
|
10995
|
+
return order.reduce((sum, agent) => sum + (perDay.get(agent) || 0), 0);
|
|
10996
|
+
});
|
|
10997
|
+
const max = Math.max(0, ...totals) || 1;
|
|
10998
|
+
const innerH = H - padB - padT;
|
|
10999
|
+
const y = (v) => innerH - (v / max) * innerH;
|
|
11000
|
+
const n = Math.max(1, view.dayKeys.length);
|
|
11001
|
+
const slot = (W - padL) / n;
|
|
11002
|
+
const barW = Math.max(3, slot * 0.66);
|
|
11003
|
+
const labelEvery = n > 40 ? 10 : (n > 20 ? 5 : 1);
|
|
11004
|
+
return React.createElement("svg", {
|
|
11005
|
+
className: "ps-summary-chart", viewBox: `0 0 ${W} ${H}`, role: "img",
|
|
11006
|
+
"aria-label": `Tokens per day by agent, ${n} days`,
|
|
11007
|
+
},
|
|
11008
|
+
[0, 0.25, 0.5, 0.75, 1].map((f) => React.createElement("g", { key: f },
|
|
11009
|
+
React.createElement("line", { x1: padL, x2: W, y1: padT + innerH - f * innerH, y2: padT + innerH - f * innerH, className: "ps-summary-chart__grid" }),
|
|
11010
|
+
React.createElement("text", { x: padL - 6, y: padT + innerH - f * innerH + 3, className: "ps-summary-chart__tick", textAnchor: "end" }, summaryTokens(f * max)))),
|
|
11011
|
+
view.dayKeys.map((day, i) => {
|
|
11012
|
+
const perDay = view.daily.get(day) || new Map();
|
|
11013
|
+
const x = padL + i * slot + (slot - barW) / 2;
|
|
11014
|
+
let cum = 0;
|
|
11015
|
+
const segs = order.map((agent, ai) => {
|
|
11016
|
+
const v = perDay.get(agent) || 0;
|
|
11017
|
+
if (v <= 0) return null;
|
|
11018
|
+
const y0 = padT + y(cum); cum += v; const y1 = padT + y(cum);
|
|
11019
|
+
return React.createElement("rect", { key: agent, x, y: y1, width: barW, height: Math.max(0.5, y0 - y1 - 0.5), fill: agentColor(view.agents.findIndex((a) => a.agent === agent)) });
|
|
11020
|
+
});
|
|
11021
|
+
const title = `${day}: ${summaryTokens(cum)} tokens\n` + order
|
|
11022
|
+
.map((agent) => [agent, perDay.get(agent) || 0]).filter(([, v]) => v > 0)
|
|
11023
|
+
.sort((a, b) => b[1] - a[1]).map(([agent, v]) => `${agent}: ${summaryTokens(v)}`).join("\n");
|
|
11024
|
+
return React.createElement("g", { key: day, className: "ps-summary-chart__bar" },
|
|
11025
|
+
React.createElement("title", null, title),
|
|
11026
|
+
segs,
|
|
11027
|
+
(i % labelEvery === 0 || i === n - 1)
|
|
11028
|
+
? React.createElement("text", { x: x + barW / 2, y: H - 6, className: "ps-summary-chart__day", textAnchor: "middle" }, day.slice(5))
|
|
11029
|
+
: null);
|
|
11030
|
+
}));
|
|
11031
|
+
}
|
|
11032
|
+
|
|
11033
|
+
const AGENT_SORTS = {
|
|
11034
|
+
agent: (a, b) => a.agent.localeCompare(b.agent),
|
|
11035
|
+
turns: (a, b) => b.turns - a.turns,
|
|
11036
|
+
sessions: (a, b) => b.sessions - a.sessions,
|
|
11037
|
+
total: (a, b) => b.total - a.total,
|
|
11038
|
+
perTurn: (a, b) => b.perTurn - a.perTurn,
|
|
11039
|
+
cacheRead: (a, b) => b.cacheRead - a.cacheRead,
|
|
11040
|
+
};
|
|
11041
|
+
|
|
11042
|
+
function agentsViewDeps(state) {
|
|
11043
|
+
const a = state.budget?.agents || {};
|
|
11044
|
+
const s = state.budget?.summary || {};
|
|
11045
|
+
return [a.loading, a.error, a.fetchedAt, s.days, s.preset, (s.providers || []).join(","), (state.budget?.grid || []).length];
|
|
11046
|
+
}
|
|
11047
|
+
|
|
11048
|
+
/**
|
|
11049
|
+
* The Agents tab: the same ledger rows as the Cluster summary, pivoted by
|
|
11050
|
+
* the agent that ran the turn. The checkbox on each row slices the chart;
|
|
11051
|
+
* clicking a column header re-sorts the table. '(none)' is a session bound
|
|
11052
|
+
* to no agent — its tokens are real, so it is a row, not an omission.
|
|
11053
|
+
*/
|
|
11054
|
+
function AgentUsagePane({ controller }) {
|
|
11055
|
+
const deps = useControllerSelector(controller, agentsViewDeps, shallowEqualObject);
|
|
11056
|
+
const view = React.useMemo(() => selectUsageAgents(controller.getState()), [controller, deps]);
|
|
11057
|
+
const summaryView = React.useMemo(() => selectUsageSummary(controller.getState()), [controller, deps]);
|
|
11058
|
+
React.useEffect(() => {
|
|
11059
|
+
if (!view.loaded && !view.loading && !view.error) controller.loadUsageAgents().catch(() => {});
|
|
11060
|
+
}, [controller]);
|
|
11061
|
+
|
|
11062
|
+
const [excluded, setExcluded] = React.useState(() => new Set());
|
|
11063
|
+
const [sortKey, setSortKey] = React.useState("total");
|
|
11064
|
+
const included = React.useMemo(() => new Set(view.agents.map((a) => a.agent).filter((name) => !excluded.has(name))), [view, excluded]);
|
|
11065
|
+
const toggleAgent = (name) => setExcluded((prev) => {
|
|
11066
|
+
const next = new Set(prev);
|
|
11067
|
+
if (next.has(name)) next.delete(name); else next.add(name);
|
|
11068
|
+
return next;
|
|
11069
|
+
});
|
|
11070
|
+
const rows = React.useMemo(() => [...view.agents].sort(AGENT_SORTS[sortKey] || AGENT_SORTS.total), [view, sortKey]);
|
|
11071
|
+
const setRange = (days) => controller.setUsageSummaryFilter({ days }).catch(() => {});
|
|
11072
|
+
const setProviders = ({ preset, providers }) => controller.setUsageSummaryFilter({ preset, providers }).catch(() => {});
|
|
11073
|
+
const sortableHead = (key, label, title) => React.createElement("th", {
|
|
11074
|
+
key: label, title: title || "Click to sort by this column",
|
|
11075
|
+
style: { cursor: "pointer" },
|
|
11076
|
+
onClick: () => setSortKey(key),
|
|
11077
|
+
}, label, sortKey === key ? " ▾" : "");
|
|
11078
|
+
|
|
11079
|
+
return React.createElement("div", { className: `ps-summary${view.loading ? " is-loading" : ""}` },
|
|
11080
|
+
React.createElement("div", { className: "ps-summary__filters" },
|
|
11081
|
+
React.createElement(SummaryProviderPicker, { view: summaryView, onChange: setProviders }),
|
|
11082
|
+
React.createElement("div", { className: "ps-budget-seg", role: "group", "aria-label": "Window" },
|
|
11083
|
+
SUMMARY_RANGES.map((days) => React.createElement("button", {
|
|
11084
|
+
key: days, type: "button",
|
|
11085
|
+
className: `ps-budget-seg__button${view.days === days ? " is-on" : ""}`,
|
|
11086
|
+
"aria-pressed": view.days === days,
|
|
11087
|
+
onClick: () => setRange(days),
|
|
11088
|
+
}, `${days}d`))),
|
|
11089
|
+
React.createElement("span", { className: "ps-summary__scope" },
|
|
11090
|
+
view.scope === "cluster" ? "Whole cluster, system sessions included" : "Your own turns")),
|
|
11091
|
+
view.error ? React.createElement("div", { className: "ps-budget-empty is-error", role: "alert" },
|
|
11092
|
+
React.createElement("div", null, "The agent pivot could not be read. "),
|
|
11093
|
+
React.createElement("div", { className: "ps-budget-sub" }, view.error)) : null,
|
|
11094
|
+
React.createElement("div", { className: "ps-summary__card" },
|
|
11095
|
+
React.createElement("div", { className: "ps-summary__card-head" },
|
|
11096
|
+
React.createElement("b", null, "Tokens per day, by agent"),
|
|
11097
|
+
React.createElement("span", { className: "ps-summary__muted" },
|
|
11098
|
+
`last ${view.days} days · ${summaryTokens(view.windowTotal)} tokens · untick a row below to slice the chart`)),
|
|
11099
|
+
view.loaded || view.windowTotal > 0
|
|
11100
|
+
? React.createElement(AgentStackChart, { view, included })
|
|
11101
|
+
: null,
|
|
11102
|
+
React.createElement("div", { className: "ps-summary__legend", style: { flexWrap: "wrap", marginTop: "6px" } },
|
|
11103
|
+
view.agents.map((a, i) => included.has(a.agent) ? React.createElement("span", { key: a.agent },
|
|
11104
|
+
React.createElement("i", { className: "ps-summary-dot", style: { background: agentColor(i) } }), a.agent) : null))),
|
|
11105
|
+
React.createElement("div", { className: "ps-summary__card" },
|
|
11106
|
+
React.createElement("div", { className: "ps-summary__card-head" },
|
|
11107
|
+
React.createElement("b", null, "By agent"),
|
|
11108
|
+
React.createElement("span", { className: "ps-summary__muted" }, "tokens/turn is the window average — a ledger row is one turn")),
|
|
11109
|
+
view.agents.length === 0
|
|
11110
|
+
? React.createElement("div", { className: "ps-budget-empty" }, view.loaded ? "No token usage in this window." : (view.loading ? "Reading…" : ""))
|
|
11111
|
+
: React.createElement("div", { className: "ps-summary__table-wrap" },
|
|
11112
|
+
React.createElement("table", { className: "ps-summary__table" },
|
|
11113
|
+
React.createElement("thead", null, React.createElement("tr", null,
|
|
11114
|
+
React.createElement("th", { title: "Untick to remove this agent from the chart" }, ""),
|
|
11115
|
+
sortableHead("agent", "Agent"),
|
|
11116
|
+
React.createElement("th", { title: "Distinct model names this agent ran in the window" }, "Models"),
|
|
11117
|
+
sortableHead("turns", "Turns"),
|
|
11118
|
+
sortableHead("sessions", "Sessions"),
|
|
11119
|
+
sortableHead("total", "Total"),
|
|
11120
|
+
sortableHead("perTurn", "Tok/turn", "Window average: total tokens over ledger turns"),
|
|
11121
|
+
sortableHead("cacheRead", "Cache read"),
|
|
11122
|
+
React.createElement("th", null, "Cache write"),
|
|
11123
|
+
React.createElement("th", null, "Share"),
|
|
11124
|
+
React.createElement("th", null, "Trend"))),
|
|
11125
|
+
React.createElement("tbody", null, rows.map((a) => React.createElement("tr", { key: a.agent },
|
|
11126
|
+
React.createElement("td", null, React.createElement("input", {
|
|
11127
|
+
type: "checkbox", checked: !excluded.has(a.agent),
|
|
11128
|
+
onChange: () => toggleAgent(a.agent), "aria-label": `Include ${a.agent} in the chart`,
|
|
11129
|
+
})),
|
|
11130
|
+
React.createElement("td", { className: "is-model" },
|
|
11131
|
+
React.createElement("i", { className: "ps-summary-dot", style: { background: agentColor(view.agents.findIndex((x) => x.agent === a.agent)) } }),
|
|
11132
|
+
" ", a.agent),
|
|
11133
|
+
React.createElement("td", { title: a.models.join(", ") }, a.models.length <= 2 ? a.models.join(", ") : `${a.models.slice(0, 2).join(", ")} +${a.models.length - 2}`),
|
|
11134
|
+
React.createElement("td", null, a.turns),
|
|
11135
|
+
React.createElement("td", null, a.sessions),
|
|
11136
|
+
React.createElement("td", { className: "is-total" }, summaryTokens(a.total)),
|
|
11137
|
+
React.createElement("td", null, summaryTokens(Math.round(a.perTurn))),
|
|
11138
|
+
React.createElement("td", null, summaryTokens(a.cacheRead)),
|
|
11139
|
+
React.createElement("td", null, summaryTokens(a.cacheWrite)),
|
|
11140
|
+
React.createElement("td", { className: "is-share" },
|
|
11141
|
+
React.createElement("i", { className: "ps-summary-share", style: { width: `${Math.max(1, Math.round(a.share * 100))}px` } }),
|
|
11142
|
+
`${(a.share * 100).toFixed(a.share < 0.1 ? 1 : 0)}%`),
|
|
11143
|
+
React.createElement("td", null, React.createElement(SummarySparkline, {
|
|
11144
|
+
values: view.dayKeys.map((day) => { const found = a.daily.find((d) => d.day === day); return found ? Number(found.total) || 0 : 0; }),
|
|
11145
|
+
})))))))));
|
|
11146
|
+
}
|
|
11147
|
+
|
|
10981
11148
|
// ─── Cluster summary tab ────────────────────────────────────────────────
|
|
10982
11149
|
|
|
10983
11150
|
const SUMMARY_RANGES = [14, 30, 90];
|
|
@@ -11077,24 +11244,12 @@ function summaryTokens(n) {
|
|
|
11077
11244
|
* Linear by default; when one day is more than ten times the median of the
|
|
11078
11245
|
* others, the axis goes to log10(1 + n) so the rest are not hairlines.
|
|
11079
11246
|
*/
|
|
11080
|
-
/**
|
|
11081
|
-
* Log or linear? Log when one day is more than ten times the median of the
|
|
11082
|
-
* days that had anything — otherwise a spike turns every other day into a
|
|
11083
|
-
* hairline. Shared by the chart and the card header that names the scale.
|
|
11084
|
-
*/
|
|
11085
|
-
function summaryLogScale(series) {
|
|
11086
|
-
const totals = series.map((d) => d.total);
|
|
11087
|
-
const max = Math.max(0, ...totals);
|
|
11088
|
-
const sorted = totals.filter((t) => t > 0).sort((a, b) => a - b);
|
|
11089
|
-
const median = sorted.length ? sorted[Math.floor(sorted.length / 2)] : 0;
|
|
11090
|
-
return median > 0 && max > median * 10;
|
|
11091
|
-
}
|
|
11092
|
-
|
|
11093
11247
|
function SummaryChart({ series }) {
|
|
11094
11248
|
const W = 720; const H = 190; const padL = 58; const padB = 22; const padT = 8;
|
|
11095
11249
|
const totals = series.map((d) => d.total);
|
|
11096
11250
|
const max = Math.max(0, ...totals);
|
|
11097
|
-
|
|
11251
|
+
// Variant B: strictly linear. A spike is allowed to tower; composition
|
|
11252
|
+
const log = false;
|
|
11098
11253
|
const scale = (v) => (log ? Math.log10(1 + v) : v);
|
|
11099
11254
|
const top = scale(max) || 1;
|
|
11100
11255
|
const innerH = H - padB - padT;
|
|
@@ -11143,6 +11298,7 @@ function SummaryChart({ series }) {
|
|
|
11143
11298
|
}));
|
|
11144
11299
|
}
|
|
11145
11300
|
|
|
11301
|
+
|
|
11146
11302
|
function SummarySparkline({ values }) {
|
|
11147
11303
|
const max = Math.max(0, ...values);
|
|
11148
11304
|
// 90 days at 4px is a 450px column; narrower bars past a month.
|
|
@@ -11217,11 +11373,7 @@ function ClusterSummaryPane({ controller }) {
|
|
|
11217
11373
|
React.createElement("span", { title: "The part of the input written to the cache" }, React.createElement("i", { className: "ps-summary-dot is-cache-w" }), "cache write"),
|
|
11218
11374
|
React.createElement("span", null, React.createElement("i", { className: "ps-summary-dot is-out" }), "output")),
|
|
11219
11375
|
React.createElement("span", { className: "ps-summary__muted" }, `${rangeLabel} · ${summaryTokens(view.windowTotal)} tokens`),
|
|
11220
|
-
|
|
11221
|
-
// when the tallest bar reaches the top-right corner.
|
|
11222
|
-
summaryLogScale(view.series)
|
|
11223
|
-
? React.createElement("span", { className: "ps-summary__tag", title: "One day is more than ten times the median, so the axis is log10 — otherwise every other day is a hairline." }, "log scale")
|
|
11224
|
-
: null),
|
|
11376
|
+
null),
|
|
11225
11377
|
view.windowTotal > 0 || view.loaded
|
|
11226
11378
|
? React.createElement(SummaryChart, { series: view.series })
|
|
11227
11379
|
: null,
|
|
@@ -11562,7 +11714,7 @@ function ProviderBudgetView({ controller }) {
|
|
|
11562
11714
|
// Two tabs: the per-provider table (meters, people's turns, limits)
|
|
11563
11715
|
// and the Cluster summary (the ledger, every turn, by model).
|
|
11564
11716
|
React.createElement("div", { className: "ps-budget-tabs", role: "tablist" },
|
|
11565
|
-
[["providers", "Providers"], ["summary", "Cluster summary"]].map(([id, label]) => React.createElement("button", {
|
|
11717
|
+
[["providers", "Providers"], ["summary", "Cluster summary"], ["agents", "Agents"]].map(([id, label]) => React.createElement("button", {
|
|
11566
11718
|
key: id, type: "button", role: "tab",
|
|
11567
11719
|
"aria-selected": (controller.getState().budget?.tab || "providers") === id,
|
|
11568
11720
|
className: `ps-budget-tab${(controller.getState().budget?.tab || "providers") === id ? " is-on" : ""}`,
|
|
@@ -11570,7 +11722,9 @@ function ProviderBudgetView({ controller }) {
|
|
|
11570
11722
|
}, label))),
|
|
11571
11723
|
(controller.getState().budget?.tab || "providers") === "summary"
|
|
11572
11724
|
? React.createElement("div", { className: "ps-budget" }, React.createElement(ClusterSummaryPane, { controller }))
|
|
11573
|
-
:
|
|
11725
|
+
: (controller.getState().budget?.tab === "agents"
|
|
11726
|
+
? React.createElement("div", { className: "ps-budget" }, React.createElement(AgentUsagePane, { controller }))
|
|
11727
|
+
: React.createElement("div", { className: "ps-budget" }, body)),
|
|
11574
11728
|
sheetEl);
|
|
11575
11729
|
}
|
|
11576
11730
|
|
package/web/dist/assets/{abnfDiagram-VRR7QNED-Dcw4A-hB.js → abnfDiagram-VRR7QNED-Cccg5mUx.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-TeWalpvK.js";import{p as f}from"./chunk-JWPE2WC7-dj0DOnPl.js";import{_ as n,l as o}from"./mermaid.core-C8tHn40J.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-CM8y129F.js";import"./pilotswarm-uebRfMjg.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-C8tHn40J.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|