@narumitw/pi-usage 0.64.3 → 0.65.0
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/README.md +9 -3
- package/dist/chunks/{chunk-ACPQJ2CM.ts → chunk-N2ZD5X4K.ts} +4 -4
- package/dist/chunks/{chunk-ACPQJ2CM.ts.map → chunk-N2ZD5X4K.ts.map} +2 -2
- package/dist/chunks/{openai-companion-auth-FGFC6DBT.ts → openai-companion-auth-QIKCD3WA.ts} +2 -2
- package/dist/chunks/{openai-companion-usage-TGHK2OQR.ts → openai-companion-usage-ZFAHCGEY.ts} +2 -2
- package/dist/index.ts +372 -110
- package/dist/index.ts.map +4 -4
- package/package.json +1 -1
- package/src/codex-fast-catalog.ts +272 -0
- package/src/codex-fast-runtime.ts +107 -26
- package/src/codex-fast.ts +28 -19
- package/src/index.ts +3 -1
- package/src/query.ts +2 -1
- package/src/usage.ts +31 -10
- /package/dist/chunks/{openai-companion-auth-FGFC6DBT.ts.map → openai-companion-auth-QIKCD3WA.ts.map} +0 -0
- /package/dist/chunks/{openai-companion-usage-TGHK2OQR.ts.map → openai-companion-usage-ZFAHCGEY.ts.map} +0 -0
package/src/usage.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// account cache, cancellation, and session lifecycle share one consistency boundary.
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import type { ExtensionAPI, ExtensionCommandContext, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
5
|
+
import { isOfficialCodexModel } from "./codex-fast.js";
|
|
5
6
|
import { FAST_USAGE_WARNING, registerCodexFastMode } from "./codex-fast-runtime.js";
|
|
6
7
|
import {
|
|
7
8
|
type CodexResetAvailability,
|
|
@@ -765,14 +766,27 @@ export default function usageExtension(pi: ExtensionAPI, dependencies: UsageExte
|
|
|
765
766
|
|
|
766
767
|
const showMenu = async (ctx: ExtensionCommandContext): Promise<void> => {
|
|
767
768
|
if (!ctx.hasUI) throw new Error("/usage requires TUI or RPC mode.");
|
|
768
|
-
statusGeneration += 1;
|
|
769
|
-
const menuGeneration = statusGeneration;
|
|
770
|
-
statusController?.abort();
|
|
771
|
-
statusController = undefined;
|
|
772
|
-
clearStatusTimers();
|
|
773
769
|
const controller = new AbortController();
|
|
774
770
|
activeControllers.add(controller);
|
|
775
771
|
try {
|
|
772
|
+
if (isOfficialCodexModel(ctx.model)) {
|
|
773
|
+
const refreshed = await runMenuOperation(
|
|
774
|
+
ctx,
|
|
775
|
+
"Checking Codex Fast capability…",
|
|
776
|
+
controller.signal,
|
|
777
|
+
async (signal) => {
|
|
778
|
+
await fastRuntime.refreshCapabilities(ctx, signal);
|
|
779
|
+
return true;
|
|
780
|
+
},
|
|
781
|
+
);
|
|
782
|
+
if (!refreshed || controller.signal.aborted) return;
|
|
783
|
+
}
|
|
784
|
+
// Capability updates can refresh status; take menu ownership after discovery.
|
|
785
|
+
statusGeneration += 1;
|
|
786
|
+
const menuGeneration = statusGeneration;
|
|
787
|
+
statusController?.abort();
|
|
788
|
+
statusController = undefined;
|
|
789
|
+
clearStatusTimers();
|
|
776
790
|
let stableCurrent = await queryStableCurrent(ctx, false, controller, "Checking current usage…");
|
|
777
791
|
if (!stableCurrent) return;
|
|
778
792
|
publishStableCurrent(ctx, stableCurrent);
|
|
@@ -919,7 +933,9 @@ export default function usageExtension(pi: ExtensionAPI, dependencies: UsageExte
|
|
|
919
933
|
? [`Fast mode: ${fastAvailability.enabled ? "On" : "Off"}`, FAST_USAGE_WARNING]
|
|
920
934
|
: fastAvailability.kind === "unavailable"
|
|
921
935
|
? [`Fast mode: Unavailable · ${fastAvailability.reason}`]
|
|
922
|
-
:
|
|
936
|
+
: fastAvailability.kind === "unknown"
|
|
937
|
+
? [`Fast mode: Unknown · ${fastAvailability.reason}`]
|
|
938
|
+
: [];
|
|
923
939
|
return {
|
|
924
940
|
kind: "actions",
|
|
925
941
|
title: "Provider usage",
|
|
@@ -936,11 +952,12 @@ export default function usageExtension(pi: ExtensionAPI, dependencies: UsageExte
|
|
|
936
952
|
},
|
|
937
953
|
]
|
|
938
954
|
: []),
|
|
939
|
-
...(fastAvailability.kind === "available"
|
|
955
|
+
...(fastAvailability.kind === "available" ||
|
|
956
|
+
(fastState.settings.codexFastMode && isOfficialCodexModel(ctx.model))
|
|
940
957
|
? [
|
|
941
958
|
{
|
|
942
959
|
id: "toggle-fast",
|
|
943
|
-
label:
|
|
960
|
+
label: fastState.settings.codexFastMode ? "Turn Fast mode off" : "Turn Fast mode on",
|
|
944
961
|
description:
|
|
945
962
|
fastState.kind === "invalid"
|
|
946
963
|
? "Repair pi-usage.json and reload before changing Fast mode."
|
|
@@ -1114,10 +1131,11 @@ export default function usageExtension(pi: ExtensionAPI, dependencies: UsageExte
|
|
|
1114
1131
|
},
|
|
1115
1132
|
"toggle-fast": async () => {
|
|
1116
1133
|
const availability = fastRuntime.availability(ctx.model);
|
|
1117
|
-
|
|
1134
|
+
const enabled = settingsRuntime.get().settings.codexFastMode;
|
|
1135
|
+
if ((availability.kind !== "available" && !enabled) || fastState.kind === "invalid") {
|
|
1118
1136
|
return { kind: "rejected" };
|
|
1119
1137
|
}
|
|
1120
|
-
const changed = await fastRuntime.toggle(ctx, !
|
|
1138
|
+
const changed = await fastRuntime.toggle(ctx, !enabled, controller.signal);
|
|
1121
1139
|
if (!changed) return { kind: "rejected" };
|
|
1122
1140
|
fastState = settingsRuntime.get();
|
|
1123
1141
|
return { kind: "stay" };
|
|
@@ -1449,5 +1467,8 @@ export default function usageExtension(pi: ExtensionAPI, dependencies: UsageExte
|
|
|
1449
1467
|
|
|
1450
1468
|
fastRuntime = registerCodexFastMode(pi, settingsRuntime, (ctx) => startStatusRefresh(ctx, ctx.model, false), {
|
|
1451
1469
|
registerSessionStart: false,
|
|
1470
|
+
credentialReader,
|
|
1471
|
+
candidateReader: credentialCandidates,
|
|
1472
|
+
timeoutMs: DEFAULT_TIMEOUT_MS,
|
|
1452
1473
|
});
|
|
1453
1474
|
}
|
/package/dist/chunks/{openai-companion-auth-FGFC6DBT.ts.map → openai-companion-auth-QIKCD3WA.ts.map}
RENAMED
|
File without changes
|
|
File without changes
|