fix: show provider/model labels in TUI
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
- Heartbeat: tighten prompt guidance + suppress duplicate alerts for 24h. (#980) — thanks @voidserf.
|
- Heartbeat: tighten prompt guidance + suppress duplicate alerts for 24h. (#980) — thanks @voidserf.
|
||||||
- Plugins: add provider auth registry + `clawdbot models auth login` for plugin-driven OAuth/API key flows.
|
- Plugins: add provider auth registry + `clawdbot models auth login` for plugin-driven OAuth/API key flows.
|
||||||
- Onboarding: prompt to modify/disable/delete when reconfiguring existing channel accounts and keep channel selection looping until Finished.
|
- Onboarding: prompt to modify/disable/delete when reconfiguring existing channel accounts and keep channel selection looping until Finished.
|
||||||
|
- TUI: show provider/model labels for the active session and default model.
|
||||||
- Fix: list model picker entries as provider/model pairs for explicit selection. (#970) — thanks @mcinteerj.
|
- Fix: list model picker entries as provider/model pairs for explicit selection. (#970) — thanks @mcinteerj.
|
||||||
- Fix: persist `gateway.mode=local` after selecting Local run mode in `clawdbot configure`, even if no other sections are chosen.
|
- Fix: persist `gateway.mode=local` after selecting Local run mode in `clawdbot configure`, even if no other sections are chosen.
|
||||||
- Daemon: fix profile-aware service label resolution (env-driven) and add coverage for launchd/systemd/schtasks. (#969) — thanks @bjesuiter.
|
- Daemon: fix profile-aware service label resolution (env-driven) and add coverage for launchd/systemd/schtasks. (#969) — thanks @bjesuiter.
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
startServerWithClient,
|
startServerWithClient,
|
||||||
testState,
|
testState,
|
||||||
} from "./test-helpers.js";
|
} from "./test-helpers.js";
|
||||||
|
import { DEFAULT_PROVIDER } from "../agents/defaults.js";
|
||||||
|
|
||||||
installGatewayTestHooks();
|
installGatewayTestHooks();
|
||||||
|
|
||||||
@@ -90,6 +91,7 @@ describe("gateway server sessions", () => {
|
|||||||
|
|
||||||
const list1 = await rpcReq<{
|
const list1 = await rpcReq<{
|
||||||
path: string;
|
path: string;
|
||||||
|
defaults?: { model?: string | null; modelProvider?: string | null };
|
||||||
sessions: Array<{
|
sessions: Array<{
|
||||||
key: string;
|
key: string;
|
||||||
totalTokens?: number;
|
totalTokens?: number;
|
||||||
@@ -102,6 +104,7 @@ describe("gateway server sessions", () => {
|
|||||||
expect(list1.ok).toBe(true);
|
expect(list1.ok).toBe(true);
|
||||||
expect(list1.payload?.path).toBe(storePath);
|
expect(list1.payload?.path).toBe(storePath);
|
||||||
expect(list1.payload?.sessions.some((s) => s.key === "global")).toBe(false);
|
expect(list1.payload?.sessions.some((s) => s.key === "global")).toBe(false);
|
||||||
|
expect(list1.payload?.defaults?.modelProvider).toBe(DEFAULT_PROVIDER);
|
||||||
const main = list1.payload?.sessions.find((s) => s.key === "agent:main:main");
|
const main = list1.payload?.sessions.find((s) => s.key === "agent:main:main");
|
||||||
expect(main?.totalTokens).toBe(30);
|
expect(main?.totalTokens).toBe(30);
|
||||||
expect(main?.thinkingLevel).toBe("low");
|
expect(main?.thinkingLevel).toBe("low");
|
||||||
|
|||||||
@@ -311,6 +311,7 @@ export function getSessionDefaults(cfg: ClawdbotConfig): GatewaySessionsDefaults
|
|||||||
lookupContextTokens(resolved.model) ??
|
lookupContextTokens(resolved.model) ??
|
||||||
DEFAULT_CONTEXT_TOKENS;
|
DEFAULT_CONTEXT_TOKENS;
|
||||||
return {
|
return {
|
||||||
|
modelProvider: resolved.provider ?? null,
|
||||||
model: resolved.model ?? null,
|
model: resolved.model ?? null,
|
||||||
contextTokens: contextTokens ?? null,
|
contextTokens: contextTokens ?? null,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type { SessionEntry } from "../config/sessions.js";
|
import type { SessionEntry } from "../config/sessions.js";
|
||||||
|
|
||||||
export type GatewaySessionsDefaults = {
|
export type GatewaySessionsDefaults = {
|
||||||
|
modelProvider: string | null;
|
||||||
model: string | null;
|
model: string | null;
|
||||||
contextTokens: number | null;
|
contextTokens: number | null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export type GatewaySessionList = {
|
|||||||
ts: number;
|
ts: number;
|
||||||
path: string;
|
path: string;
|
||||||
count: number;
|
count: number;
|
||||||
defaults?: { model?: string | null; contextTokens?: number | null };
|
defaults?: { model?: string | null; modelProvider?: string | null; contextTokens?: number | null };
|
||||||
sessions: Array<{
|
sessions: Array<{
|
||||||
key: string;
|
key: string;
|
||||||
sessionId?: string;
|
sessionId?: string;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export function createSessionActions(context: SessionActionContext) {
|
|||||||
verboseLevel: entry?.verboseLevel,
|
verboseLevel: entry?.verboseLevel,
|
||||||
reasoningLevel: entry?.reasoningLevel,
|
reasoningLevel: entry?.reasoningLevel,
|
||||||
model: entry?.model ?? result.defaults?.model ?? undefined,
|
model: entry?.model ?? result.defaults?.model ?? undefined,
|
||||||
modelProvider: entry?.modelProvider,
|
modelProvider: entry?.modelProvider ?? result.defaults?.modelProvider ?? undefined,
|
||||||
contextTokens: entry?.contextTokens ?? result.defaults?.contextTokens,
|
contextTokens: entry?.contextTokens ?? result.defaults?.contextTokens,
|
||||||
inputTokens: entry?.inputTokens ?? null,
|
inputTokens: entry?.inputTokens ?? null,
|
||||||
outputTokens: entry?.outputTokens ?? null,
|
outputTokens: entry?.outputTokens ?? null,
|
||||||
|
|||||||
@@ -37,7 +37,10 @@ export function formatStatusSummary(summary: GatewayStatusSummary) {
|
|||||||
if (sessionPath) lines.push(`Session store: ${sessionPath}`);
|
if (sessionPath) lines.push(`Session store: ${sessionPath}`);
|
||||||
|
|
||||||
const defaults = summary.sessions?.defaults;
|
const defaults = summary.sessions?.defaults;
|
||||||
const defaultModel = defaults?.model ?? "unknown";
|
const defaultModel =
|
||||||
|
defaults?.model && defaults?.modelProvider
|
||||||
|
? `${defaults.modelProvider}/${defaults.model}`
|
||||||
|
: defaults?.model ?? "unknown";
|
||||||
const defaultCtx =
|
const defaultCtx =
|
||||||
typeof defaults?.contextTokens === "number"
|
typeof defaults?.contextTokens === "number"
|
||||||
? ` (${formatTokenCount(defaults.contextTokens)} ctx)`
|
? ` (${formatTokenCount(defaults.contextTokens)} ctx)`
|
||||||
|
|||||||
Reference in New Issue
Block a user