@dexto/tui 1.6.24 → 1.6.25
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/dist/agent-backend.d.ts +1 -1
- package/dist/agent-backend.d.ts.map +1 -1
- package/dist/components/overlays/InsufficientCreditsOverlay.cjs +264 -0
- package/dist/components/overlays/InsufficientCreditsOverlay.d.ts +14 -0
- package/dist/components/overlays/InsufficientCreditsOverlay.d.ts.map +1 -0
- package/dist/components/overlays/InsufficientCreditsOverlay.js +252 -0
- package/dist/components/overlays/custom-model-wizard/provider-config.cjs +1 -1
- package/dist/components/overlays/custom-model-wizard/provider-config.js +1 -1
- package/dist/containers/OverlayContainer.cjs +75 -22
- package/dist/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/containers/OverlayContainer.js +75 -22
- package/dist/hooks/useAgentEvents.cjs +5 -2
- package/dist/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/hooks/useAgentEvents.js +5 -2
- package/dist/hooks/useCLIState.cjs +1 -0
- package/dist/hooks/useCLIState.d.ts.map +1 -1
- package/dist/hooks/useCLIState.js +1 -0
- package/dist/host/index.cjs +16 -0
- package/dist/host/index.d.ts +12 -0
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +14 -0
- package/dist/index.d.cts +7 -1
- package/dist/services/processStream.cjs +48 -2
- package/dist/services/processStream.d.ts.map +1 -1
- package/dist/services/processStream.js +49 -3
- package/dist/services/processStream.test.cjs +32 -0
- package/dist/services/processStream.test.js +32 -0
- package/dist/state/initialState.cjs +1 -0
- package/dist/state/initialState.d.ts.map +1 -1
- package/dist/state/initialState.js +1 -0
- package/dist/state/types.d.ts +5 -1
- package/dist/state/types.d.ts.map +1 -1
- package/dist/utils/dexto-auth-refresh.cjs +55 -0
- package/dist/utils/dexto-auth-refresh.d.ts +3 -0
- package/dist/utils/dexto-auth-refresh.d.ts.map +1 -0
- package/dist/utils/dexto-auth-refresh.js +31 -0
- package/dist/utils/dexto-auth-refresh.test.cjs +122 -0
- package/dist/utils/dexto-auth-refresh.test.d.ts +2 -0
- package/dist/utils/dexto-auth-refresh.test.d.ts.map +1 -0
- package/dist/utils/dexto-auth-refresh.test.js +121 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processStream.d.ts","sourceRoot":"","sources":["../../src/services/processStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAGvE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"processStream.d.ts","sourceRoot":"","sources":["../../src/services/processStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAGvE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAoEvE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,2DAA2D;IAC3D,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7D,oFAAoF;IACpF,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpE,iFAAiF;IACjF,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,kEAAkE;IAClE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3F,yDAAyD;IACzD,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/F,4DAA4D;IAC5D,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1E,uDAAuD;IACvD,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,2FAA2F;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,mBAAmB,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1C,wFAAwF;IACxF,oBAAoB,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,yDAAyD;IACzD,QAAQ,EAAE,IAAI,CAAC,OAAO,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5D,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,+BAA+B,EAAE,wBAAwB,CAAC;IAChF,kEAAkE;IAClE,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;CAC3F;AAoDD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAC/B,QAAQ,EAAE,qBAAqB,CAAC,cAAc,CAAC,EAC/C,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA6rCf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createDebugLogger } from "../utils/debugLog.js";
|
|
2
|
-
import { ApprovalType as ApprovalTypeEnum, ApprovalStatus } from "@dexto/core";
|
|
2
|
+
import { ApprovalType as ApprovalTypeEnum, ApprovalStatus, LLMErrorCode } from "@dexto/core";
|
|
3
3
|
import { generateMessageId } from "../utils/idGenerator.js";
|
|
4
4
|
import { checkForSplit } from "../utils/streamSplitter.js";
|
|
5
5
|
import { formatToolHeader, shouldHideTool } from "../utils/messageFormatting.js";
|
|
@@ -15,6 +15,44 @@ function buildErrorContent(error, prefix) {
|
|
|
15
15
|
}
|
|
16
16
|
return errorContent;
|
|
17
17
|
}
|
|
18
|
+
function getErrorCode(error) {
|
|
19
|
+
if (typeof error !== "object" || error === null) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const code = Reflect.get(error, "code");
|
|
23
|
+
return typeof code === "string" && code.length > 0 ? code : null;
|
|
24
|
+
}
|
|
25
|
+
function extractInsufficientCreditsBalance(error) {
|
|
26
|
+
if (typeof error === "object" && error !== null) {
|
|
27
|
+
const context = Reflect.get(error, "context");
|
|
28
|
+
if (typeof context === "object" && context !== null) {
|
|
29
|
+
const balance = Reflect.get(context, "balance");
|
|
30
|
+
if (typeof balance === "number" && Number.isFinite(balance)) {
|
|
31
|
+
return balance;
|
|
32
|
+
}
|
|
33
|
+
if (typeof balance === "string") {
|
|
34
|
+
const parsed2 = Number.parseFloat(balance);
|
|
35
|
+
if (Number.isFinite(parsed2)) {
|
|
36
|
+
return parsed2;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
42
|
+
const match = message.match(/Balance:\s*\$?(-?[\d.]+)/i);
|
|
43
|
+
if (!match) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const parsed = Number.parseFloat(match[1] ?? "");
|
|
47
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
48
|
+
}
|
|
49
|
+
function buildInsufficientCreditsContent(balance) {
|
|
50
|
+
if (balance === null) {
|
|
51
|
+
return "Out of Dexto Nova credits.\nUse the billing prompt to top up and retry your request.";
|
|
52
|
+
}
|
|
53
|
+
return `Out of Dexto Nova credits. Current balance: $${balance.toFixed(2)}.
|
|
54
|
+
Use the billing prompt to top up and retry your request.`;
|
|
55
|
+
}
|
|
18
56
|
function hasMeaningfulTokenUsageForAnalytics(tokenUsage, estimatedCost) {
|
|
19
57
|
if (estimatedCost !== void 0) {
|
|
20
58
|
return true;
|
|
@@ -545,7 +583,9 @@ ${chalk.dim(callDescription)}`;
|
|
|
545
583
|
break;
|
|
546
584
|
}
|
|
547
585
|
case "llm:error": {
|
|
548
|
-
const
|
|
586
|
+
const insufficientCredits = getErrorCode(event.error) === LLMErrorCode.INSUFFICIENT_CREDITS;
|
|
587
|
+
const insufficientCreditsBalance = insufficientCredits ? extractInsufficientCreditsBalance(event.error) : null;
|
|
588
|
+
const errorContent = insufficientCredits ? buildInsufficientCreditsContent(insufficientCreditsBalance) : buildErrorContent(event.error, "Error: ");
|
|
549
589
|
setMessages((prev) => [
|
|
550
590
|
...prev,
|
|
551
591
|
{
|
|
@@ -566,7 +606,13 @@ ${chalk.dim(callDescription)}`;
|
|
|
566
606
|
...prev,
|
|
567
607
|
isProcessing: false,
|
|
568
608
|
isCancelling: false,
|
|
569
|
-
isThinking: false
|
|
609
|
+
isThinking: false,
|
|
610
|
+
...insufficientCredits ? {
|
|
611
|
+
activeOverlay: "insufficient-credits",
|
|
612
|
+
insufficientCredits: {
|
|
613
|
+
balanceUsd: insufficientCreditsBalance
|
|
614
|
+
}
|
|
615
|
+
} : {}
|
|
570
616
|
}));
|
|
571
617
|
}
|
|
572
618
|
break;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var import_vitest = require("vitest");
|
|
3
|
+
var import_core = require("@dexto/core");
|
|
3
4
|
var import_processStream = require("./processStream.js");
|
|
4
5
|
const { captureAnalyticsMock } = import_vitest.vi.hoisted(() => ({
|
|
5
6
|
captureAnalyticsMock: import_vitest.vi.fn()
|
|
@@ -55,6 +56,7 @@ function createSetters() {
|
|
|
55
56
|
backgroundTasksExpanded: false,
|
|
56
57
|
backgroundTasks: [],
|
|
57
58
|
chatgptRateLimitStatus: null,
|
|
59
|
+
insufficientCredits: null,
|
|
58
60
|
planModeActive: false,
|
|
59
61
|
planModeInitialized: false,
|
|
60
62
|
commandOutput: null,
|
|
@@ -262,6 +264,36 @@ function createSetters() {
|
|
|
262
264
|
(0, import_vitest.expect)(assistantMessages[1]?.content).toBe("Final");
|
|
263
265
|
(0, import_vitest.expect)(assistantMessages[1]?.reasoning).toBeUndefined();
|
|
264
266
|
});
|
|
267
|
+
(0, import_vitest.it)("shows the billing recovery overlay for insufficient credits", async () => {
|
|
268
|
+
const { getMessages, getUi, setters } = createSetters();
|
|
269
|
+
const error = Object.assign(new Error("Insufficient Dexto credits. Balance: $0.00"), {
|
|
270
|
+
code: import_core.LLMErrorCode.INSUFFICIENT_CREDITS,
|
|
271
|
+
context: {
|
|
272
|
+
balance: 0
|
|
273
|
+
},
|
|
274
|
+
recovery: "Run `dexto billing` to check your balance"
|
|
275
|
+
});
|
|
276
|
+
const events = [
|
|
277
|
+
{
|
|
278
|
+
name: "llm:error",
|
|
279
|
+
sessionId: "test-session",
|
|
280
|
+
error
|
|
281
|
+
}
|
|
282
|
+
];
|
|
283
|
+
await (0, import_processStream.processStream)(eventStream(events), setters, {
|
|
284
|
+
useStreaming: true,
|
|
285
|
+
autoApproveEditsRef: { current: false },
|
|
286
|
+
bypassPermissionsRef: { current: false },
|
|
287
|
+
eventBus: { emit: import_vitest.vi.fn() }
|
|
288
|
+
});
|
|
289
|
+
const ui = getUi();
|
|
290
|
+
(0, import_vitest.expect)(ui.activeOverlay).toBe("insufficient-credits");
|
|
291
|
+
(0, import_vitest.expect)(ui.insufficientCredits).toEqual({ balanceUsd: 0 });
|
|
292
|
+
(0, import_vitest.expect)(ui.isProcessing).toBe(false);
|
|
293
|
+
const latestMessage = getMessages().at(-1);
|
|
294
|
+
(0, import_vitest.expect)(latestMessage?.content).toContain("Out of Dexto Nova credits");
|
|
295
|
+
(0, import_vitest.expect)(latestMessage?.content).not.toContain("Error:");
|
|
296
|
+
});
|
|
265
297
|
(0, import_vitest.it)("captures analytics cost fields for priced llm responses", async () => {
|
|
266
298
|
const { setters } = createSetters();
|
|
267
299
|
const events = [
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { LLMErrorCode } from "@dexto/core";
|
|
2
3
|
import { processStream } from "./processStream.js";
|
|
3
4
|
const { captureAnalyticsMock } = vi.hoisted(() => ({
|
|
4
5
|
captureAnalyticsMock: vi.fn()
|
|
@@ -54,6 +55,7 @@ function createSetters() {
|
|
|
54
55
|
backgroundTasksExpanded: false,
|
|
55
56
|
backgroundTasks: [],
|
|
56
57
|
chatgptRateLimitStatus: null,
|
|
58
|
+
insufficientCredits: null,
|
|
57
59
|
planModeActive: false,
|
|
58
60
|
planModeInitialized: false,
|
|
59
61
|
commandOutput: null,
|
|
@@ -261,6 +263,36 @@ describe("processStream (reasoning)", () => {
|
|
|
261
263
|
expect(assistantMessages[1]?.content).toBe("Final");
|
|
262
264
|
expect(assistantMessages[1]?.reasoning).toBeUndefined();
|
|
263
265
|
});
|
|
266
|
+
it("shows the billing recovery overlay for insufficient credits", async () => {
|
|
267
|
+
const { getMessages, getUi, setters } = createSetters();
|
|
268
|
+
const error = Object.assign(new Error("Insufficient Dexto credits. Balance: $0.00"), {
|
|
269
|
+
code: LLMErrorCode.INSUFFICIENT_CREDITS,
|
|
270
|
+
context: {
|
|
271
|
+
balance: 0
|
|
272
|
+
},
|
|
273
|
+
recovery: "Run `dexto billing` to check your balance"
|
|
274
|
+
});
|
|
275
|
+
const events = [
|
|
276
|
+
{
|
|
277
|
+
name: "llm:error",
|
|
278
|
+
sessionId: "test-session",
|
|
279
|
+
error
|
|
280
|
+
}
|
|
281
|
+
];
|
|
282
|
+
await processStream(eventStream(events), setters, {
|
|
283
|
+
useStreaming: true,
|
|
284
|
+
autoApproveEditsRef: { current: false },
|
|
285
|
+
bypassPermissionsRef: { current: false },
|
|
286
|
+
eventBus: { emit: vi.fn() }
|
|
287
|
+
});
|
|
288
|
+
const ui = getUi();
|
|
289
|
+
expect(ui.activeOverlay).toBe("insufficient-credits");
|
|
290
|
+
expect(ui.insufficientCredits).toEqual({ balanceUsd: 0 });
|
|
291
|
+
expect(ui.isProcessing).toBe(false);
|
|
292
|
+
const latestMessage = getMessages().at(-1);
|
|
293
|
+
expect(latestMessage?.content).toContain("Out of Dexto Nova credits");
|
|
294
|
+
expect(latestMessage?.content).not.toContain("Error:");
|
|
295
|
+
});
|
|
264
296
|
it("captures analytics cost fields for priced llm responses", async () => {
|
|
265
297
|
const { setters } = createSetters();
|
|
266
298
|
const events = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../src/state/initialState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,GAAE,MAAW,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../src/state/initialState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,GAAE,MAAW,GAAG,QAAQ,CAoD1E"}
|
package/dist/state/types.d.ts
CHANGED
|
@@ -278,10 +278,13 @@ export interface InputState {
|
|
|
278
278
|
/** Counter for generating sequential paste numbers */
|
|
279
279
|
pasteCounter: number;
|
|
280
280
|
}
|
|
281
|
+
export interface InsufficientCreditsState {
|
|
282
|
+
balanceUsd: number | null;
|
|
283
|
+
}
|
|
281
284
|
/**
|
|
282
285
|
* Available overlay types
|
|
283
286
|
*/
|
|
284
|
-
export type OverlayType = 'none' | 'slash-autocomplete' | 'resource-autocomplete' | 'model-selector' | 'reasoning' | 'custom-model-wizard' | 'session-selector' | 'mcp-server-list' | 'mcp-server-actions' | 'mcp-add-choice' | 'mcp-add-selector' | 'mcp-custom-type-selector' | 'mcp-custom-wizard' | 'log-level-selector' | 'stream-selector' | 'sounds-selector' | 'session-subcommand-selector' | 'api-key-input' | 'chatgpt-usage-cap' | 'login' | 'logout' | 'search' | 'approval' | 'tool-browser' | 'prompt-list' | 'prompt-add-choice' | 'prompt-add-wizard' | 'prompt-delete-selector' | 'session-rename' | 'context-stats' | 'export-wizard' | 'plugin-manager' | 'plugin-list' | 'plugin-actions' | 'marketplace-browser' | 'marketplace-add' | 'command-output';
|
|
287
|
+
export type OverlayType = 'none' | 'slash-autocomplete' | 'resource-autocomplete' | 'model-selector' | 'reasoning' | 'custom-model-wizard' | 'session-selector' | 'mcp-server-list' | 'mcp-server-actions' | 'mcp-add-choice' | 'mcp-add-selector' | 'mcp-custom-type-selector' | 'mcp-custom-wizard' | 'log-level-selector' | 'stream-selector' | 'sounds-selector' | 'session-subcommand-selector' | 'api-key-input' | 'chatgpt-usage-cap' | 'insufficient-credits' | 'login' | 'logout' | 'search' | 'approval' | 'tool-browser' | 'prompt-list' | 'prompt-add-choice' | 'prompt-add-wizard' | 'prompt-delete-selector' | 'session-rename' | 'context-stats' | 'export-wizard' | 'plugin-manager' | 'plugin-list' | 'plugin-actions' | 'marketplace-browser' | 'marketplace-add' | 'command-output';
|
|
285
288
|
/**
|
|
286
289
|
* Temporary modal output for slash commands (e.g., /help, /stats).
|
|
287
290
|
*/
|
|
@@ -365,6 +368,7 @@ export interface UIState {
|
|
|
365
368
|
}>;
|
|
366
369
|
/** Best-effort ChatGPT Login usage-cap status for the current session. */
|
|
367
370
|
chatgptRateLimitStatus: CodexRateLimitSnapshot | null;
|
|
371
|
+
insufficientCredits: InsufficientCreditsState | null;
|
|
368
372
|
planModeActive: boolean;
|
|
369
373
|
planModeInitialized: boolean;
|
|
370
374
|
commandOutput: CommandOutputState | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var dexto_auth_refresh_exports = {};
|
|
20
|
+
__export(dexto_auth_refresh_exports, {
|
|
21
|
+
refreshDextoNovaAuthAfterLogin: () => refreshDextoNovaAuthAfterLogin
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(dexto_auth_refresh_exports);
|
|
24
|
+
const DEXTO_API_KEY_ENV_REF = "$DEXTO_API_KEY";
|
|
25
|
+
function buildDextoNovaRefreshUpdate(model) {
|
|
26
|
+
return {
|
|
27
|
+
provider: "dexto-nova",
|
|
28
|
+
model,
|
|
29
|
+
apiKey: DEXTO_API_KEY_ENV_REF
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async function refreshDextoNovaAuthAfterLogin(agent, sessionId) {
|
|
33
|
+
let refreshed = false;
|
|
34
|
+
const globalConfig = agent.getCurrentLLMConfig();
|
|
35
|
+
if (globalConfig.provider === "dexto-nova") {
|
|
36
|
+
await agent.switchLLM(buildDextoNovaRefreshUpdate(globalConfig.model));
|
|
37
|
+
refreshed = true;
|
|
38
|
+
}
|
|
39
|
+
if (!sessionId) {
|
|
40
|
+
return refreshed;
|
|
41
|
+
}
|
|
42
|
+
if (!agent.hasSessionLLMOverride(sessionId)) {
|
|
43
|
+
return refreshed;
|
|
44
|
+
}
|
|
45
|
+
const sessionConfig = agent.getCurrentLLMConfig(sessionId);
|
|
46
|
+
if (sessionConfig.provider !== "dexto-nova") {
|
|
47
|
+
return refreshed;
|
|
48
|
+
}
|
|
49
|
+
await agent.switchLLM(buildDextoNovaRefreshUpdate(sessionConfig.model), sessionId);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
refreshDextoNovaAuthAfterLogin
|
|
55
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { TuiAgentBackend } from '../agent-backend.js';
|
|
2
|
+
export declare function refreshDextoNovaAuthAfterLogin(agent: Pick<TuiAgentBackend, 'getCurrentLLMConfig' | 'hasSessionLLMOverride' | 'switchLLM'>, sessionId?: string): Promise<boolean>;
|
|
3
|
+
//# sourceMappingURL=dexto-auth-refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dexto-auth-refresh.d.ts","sourceRoot":"","sources":["../../src/utils/dexto-auth-refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAY3D,wBAAsB,8BAA8B,CAChD,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,GAAG,uBAAuB,GAAG,WAAW,CAAC,EAC3F,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const DEXTO_API_KEY_ENV_REF = "$DEXTO_API_KEY";
|
|
2
|
+
function buildDextoNovaRefreshUpdate(model) {
|
|
3
|
+
return {
|
|
4
|
+
provider: "dexto-nova",
|
|
5
|
+
model,
|
|
6
|
+
apiKey: DEXTO_API_KEY_ENV_REF
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
async function refreshDextoNovaAuthAfterLogin(agent, sessionId) {
|
|
10
|
+
let refreshed = false;
|
|
11
|
+
const globalConfig = agent.getCurrentLLMConfig();
|
|
12
|
+
if (globalConfig.provider === "dexto-nova") {
|
|
13
|
+
await agent.switchLLM(buildDextoNovaRefreshUpdate(globalConfig.model));
|
|
14
|
+
refreshed = true;
|
|
15
|
+
}
|
|
16
|
+
if (!sessionId) {
|
|
17
|
+
return refreshed;
|
|
18
|
+
}
|
|
19
|
+
if (!agent.hasSessionLLMOverride(sessionId)) {
|
|
20
|
+
return refreshed;
|
|
21
|
+
}
|
|
22
|
+
const sessionConfig = agent.getCurrentLLMConfig(sessionId);
|
|
23
|
+
if (sessionConfig.provider !== "dexto-nova") {
|
|
24
|
+
return refreshed;
|
|
25
|
+
}
|
|
26
|
+
await agent.switchLLM(buildDextoNovaRefreshUpdate(sessionConfig.model), sessionId);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
refreshDextoNovaAuthAfterLogin
|
|
31
|
+
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_vitest = require("vitest");
|
|
3
|
+
var import_dexto_auth_refresh = require("./dexto-auth-refresh.js");
|
|
4
|
+
function createConfig(provider) {
|
|
5
|
+
return {
|
|
6
|
+
provider,
|
|
7
|
+
model: provider === "dexto-nova" ? "openai/gpt-5" : "gpt-5",
|
|
8
|
+
apiKey: "existing-key",
|
|
9
|
+
maxIterations: 50,
|
|
10
|
+
maxInputTokens: 128e3
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
(0, import_vitest.describe)("refreshDextoNovaAuthAfterLogin", () => {
|
|
14
|
+
(0, import_vitest.it)("does nothing when neither the global nor session config uses dexto-nova", async () => {
|
|
15
|
+
const getCurrentLLMConfig = import_vitest.vi.fn().mockImplementation(
|
|
16
|
+
(sessionId) => sessionId ? createConfig("openai") : createConfig("openai")
|
|
17
|
+
);
|
|
18
|
+
const hasSessionLLMOverride = import_vitest.vi.fn().mockReturnValue(false);
|
|
19
|
+
const switchLLM = import_vitest.vi.fn().mockResolvedValue(
|
|
20
|
+
createConfig("openai")
|
|
21
|
+
);
|
|
22
|
+
const refreshed = await (0, import_dexto_auth_refresh.refreshDextoNovaAuthAfterLogin)(
|
|
23
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
24
|
+
"session-1"
|
|
25
|
+
);
|
|
26
|
+
(0, import_vitest.expect)(refreshed).toBe(false);
|
|
27
|
+
(0, import_vitest.expect)(switchLLM).not.toHaveBeenCalled();
|
|
28
|
+
});
|
|
29
|
+
(0, import_vitest.it)("refreshes the global and active session config when both use dexto-nova", async () => {
|
|
30
|
+
const getCurrentLLMConfig = import_vitest.vi.fn().mockImplementation(
|
|
31
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("dexto-nova")
|
|
32
|
+
);
|
|
33
|
+
const hasSessionLLMOverride = import_vitest.vi.fn().mockReturnValue(true);
|
|
34
|
+
const switchLLM = import_vitest.vi.fn().mockResolvedValue(
|
|
35
|
+
createConfig("dexto-nova")
|
|
36
|
+
);
|
|
37
|
+
const refreshed = await (0, import_dexto_auth_refresh.refreshDextoNovaAuthAfterLogin)(
|
|
38
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
39
|
+
"session-1"
|
|
40
|
+
);
|
|
41
|
+
(0, import_vitest.expect)(refreshed).toBe(true);
|
|
42
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledTimes(2);
|
|
43
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenNthCalledWith(1, {
|
|
44
|
+
provider: "dexto-nova",
|
|
45
|
+
model: "openai/gpt-5",
|
|
46
|
+
apiKey: "$DEXTO_API_KEY"
|
|
47
|
+
});
|
|
48
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenNthCalledWith(
|
|
49
|
+
2,
|
|
50
|
+
{
|
|
51
|
+
provider: "dexto-nova",
|
|
52
|
+
model: "openai/gpt-5",
|
|
53
|
+
apiKey: "$DEXTO_API_KEY"
|
|
54
|
+
},
|
|
55
|
+
"session-1"
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
(0, import_vitest.it)("refreshes only the global config when the session inherits dexto-nova without an override", async () => {
|
|
59
|
+
const getCurrentLLMConfig = import_vitest.vi.fn().mockImplementation(
|
|
60
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("dexto-nova")
|
|
61
|
+
);
|
|
62
|
+
const hasSessionLLMOverride = import_vitest.vi.fn().mockReturnValue(false);
|
|
63
|
+
const switchLLM = import_vitest.vi.fn().mockResolvedValue(
|
|
64
|
+
createConfig("dexto-nova")
|
|
65
|
+
);
|
|
66
|
+
const refreshed = await (0, import_dexto_auth_refresh.refreshDextoNovaAuthAfterLogin)(
|
|
67
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
68
|
+
"session-1"
|
|
69
|
+
);
|
|
70
|
+
(0, import_vitest.expect)(refreshed).toBe(true);
|
|
71
|
+
(0, import_vitest.expect)(hasSessionLLMOverride).toHaveBeenCalledWith("session-1");
|
|
72
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledTimes(1);
|
|
73
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledWith({
|
|
74
|
+
provider: "dexto-nova",
|
|
75
|
+
model: "openai/gpt-5",
|
|
76
|
+
apiKey: "$DEXTO_API_KEY"
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
(0, import_vitest.it)("refreshes only the active session when the global config uses another provider", async () => {
|
|
80
|
+
const getCurrentLLMConfig = import_vitest.vi.fn().mockImplementation(
|
|
81
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("openai")
|
|
82
|
+
);
|
|
83
|
+
const hasSessionLLMOverride = import_vitest.vi.fn().mockReturnValue(true);
|
|
84
|
+
const switchLLM = import_vitest.vi.fn().mockResolvedValue(
|
|
85
|
+
createConfig("dexto-nova")
|
|
86
|
+
);
|
|
87
|
+
const refreshed = await (0, import_dexto_auth_refresh.refreshDextoNovaAuthAfterLogin)(
|
|
88
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
89
|
+
"session-1"
|
|
90
|
+
);
|
|
91
|
+
(0, import_vitest.expect)(refreshed).toBe(true);
|
|
92
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledTimes(1);
|
|
93
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledWith(
|
|
94
|
+
{
|
|
95
|
+
provider: "dexto-nova",
|
|
96
|
+
model: "openai/gpt-5",
|
|
97
|
+
apiKey: "$DEXTO_API_KEY"
|
|
98
|
+
},
|
|
99
|
+
"session-1"
|
|
100
|
+
);
|
|
101
|
+
});
|
|
102
|
+
(0, import_vitest.it)("refreshes only the global config when there is no active session id", async () => {
|
|
103
|
+
const getCurrentLLMConfig = import_vitest.vi.fn().mockImplementation(() => createConfig("dexto-nova"));
|
|
104
|
+
const hasSessionLLMOverride = import_vitest.vi.fn();
|
|
105
|
+
const switchLLM = import_vitest.vi.fn().mockResolvedValue(
|
|
106
|
+
createConfig("dexto-nova")
|
|
107
|
+
);
|
|
108
|
+
const refreshed = await (0, import_dexto_auth_refresh.refreshDextoNovaAuthAfterLogin)({
|
|
109
|
+
getCurrentLLMConfig,
|
|
110
|
+
hasSessionLLMOverride,
|
|
111
|
+
switchLLM
|
|
112
|
+
});
|
|
113
|
+
(0, import_vitest.expect)(refreshed).toBe(true);
|
|
114
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledTimes(1);
|
|
115
|
+
(0, import_vitest.expect)(switchLLM).toHaveBeenCalledWith({
|
|
116
|
+
provider: "dexto-nova",
|
|
117
|
+
model: "openai/gpt-5",
|
|
118
|
+
apiKey: "$DEXTO_API_KEY"
|
|
119
|
+
});
|
|
120
|
+
(0, import_vitest.expect)(hasSessionLLMOverride).not.toHaveBeenCalled();
|
|
121
|
+
});
|
|
122
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dexto-auth-refresh.test.d.ts","sourceRoot":"","sources":["../../src/utils/dexto-auth-refresh.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { refreshDextoNovaAuthAfterLogin } from "./dexto-auth-refresh.js";
|
|
3
|
+
function createConfig(provider) {
|
|
4
|
+
return {
|
|
5
|
+
provider,
|
|
6
|
+
model: provider === "dexto-nova" ? "openai/gpt-5" : "gpt-5",
|
|
7
|
+
apiKey: "existing-key",
|
|
8
|
+
maxIterations: 50,
|
|
9
|
+
maxInputTokens: 128e3
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
describe("refreshDextoNovaAuthAfterLogin", () => {
|
|
13
|
+
it("does nothing when neither the global nor session config uses dexto-nova", async () => {
|
|
14
|
+
const getCurrentLLMConfig = vi.fn().mockImplementation(
|
|
15
|
+
(sessionId) => sessionId ? createConfig("openai") : createConfig("openai")
|
|
16
|
+
);
|
|
17
|
+
const hasSessionLLMOverride = vi.fn().mockReturnValue(false);
|
|
18
|
+
const switchLLM = vi.fn().mockResolvedValue(
|
|
19
|
+
createConfig("openai")
|
|
20
|
+
);
|
|
21
|
+
const refreshed = await refreshDextoNovaAuthAfterLogin(
|
|
22
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
23
|
+
"session-1"
|
|
24
|
+
);
|
|
25
|
+
expect(refreshed).toBe(false);
|
|
26
|
+
expect(switchLLM).not.toHaveBeenCalled();
|
|
27
|
+
});
|
|
28
|
+
it("refreshes the global and active session config when both use dexto-nova", async () => {
|
|
29
|
+
const getCurrentLLMConfig = vi.fn().mockImplementation(
|
|
30
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("dexto-nova")
|
|
31
|
+
);
|
|
32
|
+
const hasSessionLLMOverride = vi.fn().mockReturnValue(true);
|
|
33
|
+
const switchLLM = vi.fn().mockResolvedValue(
|
|
34
|
+
createConfig("dexto-nova")
|
|
35
|
+
);
|
|
36
|
+
const refreshed = await refreshDextoNovaAuthAfterLogin(
|
|
37
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
38
|
+
"session-1"
|
|
39
|
+
);
|
|
40
|
+
expect(refreshed).toBe(true);
|
|
41
|
+
expect(switchLLM).toHaveBeenCalledTimes(2);
|
|
42
|
+
expect(switchLLM).toHaveBeenNthCalledWith(1, {
|
|
43
|
+
provider: "dexto-nova",
|
|
44
|
+
model: "openai/gpt-5",
|
|
45
|
+
apiKey: "$DEXTO_API_KEY"
|
|
46
|
+
});
|
|
47
|
+
expect(switchLLM).toHaveBeenNthCalledWith(
|
|
48
|
+
2,
|
|
49
|
+
{
|
|
50
|
+
provider: "dexto-nova",
|
|
51
|
+
model: "openai/gpt-5",
|
|
52
|
+
apiKey: "$DEXTO_API_KEY"
|
|
53
|
+
},
|
|
54
|
+
"session-1"
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
it("refreshes only the global config when the session inherits dexto-nova without an override", async () => {
|
|
58
|
+
const getCurrentLLMConfig = vi.fn().mockImplementation(
|
|
59
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("dexto-nova")
|
|
60
|
+
);
|
|
61
|
+
const hasSessionLLMOverride = vi.fn().mockReturnValue(false);
|
|
62
|
+
const switchLLM = vi.fn().mockResolvedValue(
|
|
63
|
+
createConfig("dexto-nova")
|
|
64
|
+
);
|
|
65
|
+
const refreshed = await refreshDextoNovaAuthAfterLogin(
|
|
66
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
67
|
+
"session-1"
|
|
68
|
+
);
|
|
69
|
+
expect(refreshed).toBe(true);
|
|
70
|
+
expect(hasSessionLLMOverride).toHaveBeenCalledWith("session-1");
|
|
71
|
+
expect(switchLLM).toHaveBeenCalledTimes(1);
|
|
72
|
+
expect(switchLLM).toHaveBeenCalledWith({
|
|
73
|
+
provider: "dexto-nova",
|
|
74
|
+
model: "openai/gpt-5",
|
|
75
|
+
apiKey: "$DEXTO_API_KEY"
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it("refreshes only the active session when the global config uses another provider", async () => {
|
|
79
|
+
const getCurrentLLMConfig = vi.fn().mockImplementation(
|
|
80
|
+
(sessionId) => sessionId ? createConfig("dexto-nova") : createConfig("openai")
|
|
81
|
+
);
|
|
82
|
+
const hasSessionLLMOverride = vi.fn().mockReturnValue(true);
|
|
83
|
+
const switchLLM = vi.fn().mockResolvedValue(
|
|
84
|
+
createConfig("dexto-nova")
|
|
85
|
+
);
|
|
86
|
+
const refreshed = await refreshDextoNovaAuthAfterLogin(
|
|
87
|
+
{ getCurrentLLMConfig, hasSessionLLMOverride, switchLLM },
|
|
88
|
+
"session-1"
|
|
89
|
+
);
|
|
90
|
+
expect(refreshed).toBe(true);
|
|
91
|
+
expect(switchLLM).toHaveBeenCalledTimes(1);
|
|
92
|
+
expect(switchLLM).toHaveBeenCalledWith(
|
|
93
|
+
{
|
|
94
|
+
provider: "dexto-nova",
|
|
95
|
+
model: "openai/gpt-5",
|
|
96
|
+
apiKey: "$DEXTO_API_KEY"
|
|
97
|
+
},
|
|
98
|
+
"session-1"
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
it("refreshes only the global config when there is no active session id", async () => {
|
|
102
|
+
const getCurrentLLMConfig = vi.fn().mockImplementation(() => createConfig("dexto-nova"));
|
|
103
|
+
const hasSessionLLMOverride = vi.fn();
|
|
104
|
+
const switchLLM = vi.fn().mockResolvedValue(
|
|
105
|
+
createConfig("dexto-nova")
|
|
106
|
+
);
|
|
107
|
+
const refreshed = await refreshDextoNovaAuthAfterLogin({
|
|
108
|
+
getCurrentLLMConfig,
|
|
109
|
+
hasSessionLLMOverride,
|
|
110
|
+
switchLLM
|
|
111
|
+
});
|
|
112
|
+
expect(refreshed).toBe(true);
|
|
113
|
+
expect(switchLLM).toHaveBeenCalledTimes(1);
|
|
114
|
+
expect(switchLLM).toHaveBeenCalledWith({
|
|
115
|
+
provider: "dexto-nova",
|
|
116
|
+
model: "openai/gpt-5",
|
|
117
|
+
apiKey: "$DEXTO_API_KEY"
|
|
118
|
+
});
|
|
119
|
+
expect(hasSessionLLMOverride).not.toHaveBeenCalled();
|
|
120
|
+
});
|
|
121
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dexto/tui",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.25",
|
|
4
4
|
"description": "Interactive terminal UI for Dexto CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"string-width": "^8.1.0",
|
|
29
29
|
"strip-ansi": "^7.1.2",
|
|
30
30
|
"wrap-ansi": "^9.0.2",
|
|
31
|
-
"@dexto/agent-management": "1.6.
|
|
32
|
-
"@dexto/
|
|
33
|
-
"@dexto/
|
|
31
|
+
"@dexto/agent-management": "1.6.25",
|
|
32
|
+
"@dexto/core": "1.6.25",
|
|
33
|
+
"@dexto/registry": "1.6.25"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/react": "^19.0.0",
|