Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions src/widgets/ClaudeSessionId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,10 @@ export class ClaudeSessionIdWidget implements Widget {
render(item: WidgetItem, context: RenderContext, settings: Settings): string | null {
if (context.isPreview) {
return item.rawValue ? 'preview-session-id' : 'Session ID: preview-session-id';
} else {
const sessionId = context.data?.session_id;
if (!sessionId) {
return null;
}
return item.rawValue ? sessionId : `Session ID: ${sessionId}`;
}

const sessionId = context.data?.session_id ?? 'N/A';
return item.rawValue ? sessionId : `Session ID: ${sessionId}`;
}

supportsRawValue(): boolean { return true; }
Expand Down
6 changes: 2 additions & 4 deletions src/widgets/ContextLength.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,8 @@ export class ContextLengthWidget implements Widget {
return item.rawValue ? formatTokens(contextLengthTokens) : `Ctx: ${formatTokens(contextLengthTokens)}`;
}

if (context.tokenMetrics) {
return item.rawValue ? formatTokens(context.tokenMetrics.contextLength) : `Ctx: ${formatTokens(context.tokenMetrics.contextLength)}`;
}
return null;
const contextLength = context.tokenMetrics?.contextLength ?? 0;
return item.rawValue ? formatTokens(contextLength) : `Ctx: ${formatTokens(contextLength)}`;
}

supportsRawValue(): boolean { return true; }
Expand Down
4 changes: 3 additions & 1 deletion src/widgets/ContextPercentage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ export class ContextPercentageWidget implements Widget {
return formatRawOrLabeledValue(item, 'Ctx: ', `${displayPercentage.toFixed(1)}%`);
}

return null;
// Default to 0% when no data available
const displayPercentage = isInverse ? 100 : 0;
return formatRawOrLabeledValue(item, 'Ctx: ', `${displayPercentage.toFixed(1)}%`);
}

getCustomKeybinds(): CustomKeybind[] {
Expand Down
5 changes: 4 additions & 1 deletion src/widgets/ContextPercentageUsable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ export class ContextPercentageUsableWidget implements Widget {
const displayPercentage = isInverse ? (100 - usedPercentage) : usedPercentage;
return formatRawOrLabeledValue(item, 'Ctx(u): ', `${displayPercentage.toFixed(1)}%`);
}
return null;

// Default to 0% when no data available
const displayPercentage = isInverse ? 100 : 0;
return formatRawOrLabeledValue(item, 'Ctx(u): ', `${displayPercentage.toFixed(1)}%`);
}

getCustomKeybinds(): CustomKeybind[] {
Expand Down
7 changes: 2 additions & 5 deletions src/widgets/Model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,9 @@ export class ModelWidget implements Widget {
const model = context.data?.model;
const modelDisplayName = typeof model === 'string'
? model
: (model?.display_name ?? model?.id);
: (model?.display_name ?? model?.id ?? 'N/A');

if (modelDisplayName) {
return item.rawValue ? modelDisplayName : `Model: ${modelDisplayName}`;
}
return null;
return item.rawValue ? modelDisplayName : `Model: ${modelDisplayName}`;
}

supportsRawValue(): boolean { return true; }
Expand Down
8 changes: 1 addition & 7 deletions src/widgets/SessionCost.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,8 @@ export class SessionCostWidget implements Widget {
return item.rawValue ? '$2.45' : 'Cost: $2.45';
}

const totalCost = context.data?.cost?.total_cost_usd;
if (totalCost === undefined) {
return null;
}

// Format the cost to 2 decimal places
const totalCost = context.data?.cost?.total_cost_usd ?? 0;
const formattedCost = `$${totalCost.toFixed(2)}`;

return item.rawValue ? formattedCost : `Cost: ${formattedCost}`;
}

Expand Down
6 changes: 2 additions & 4 deletions src/widgets/TokensCached.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@ export class TokensCachedWidget implements Widget {
return formatRawOrLabeledValue(item, 'Cached: ', '12k');
}

if (context.tokenMetrics) {
return formatRawOrLabeledValue(item, 'Cached: ', formatTokens(context.tokenMetrics.cachedTokens));
}
return null;
const cachedTokens = context.tokenMetrics?.cachedTokens ?? 0;
return formatRawOrLabeledValue(item, 'Cached: ', formatTokens(cachedTokens));
}

supportsRawValue(): boolean { return true; }
Expand Down
6 changes: 2 additions & 4 deletions src/widgets/TokensInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ export class TokensInputWidget implements Widget {
return formatRawOrLabeledValue(item, 'In: ', formatTokens(inputTotalTokens));
}

if (context.tokenMetrics) {
return formatRawOrLabeledValue(item, 'In: ', formatTokens(context.tokenMetrics.inputTokens));
}
return null;
const inputTokens = context.tokenMetrics?.inputTokens ?? 0;
return formatRawOrLabeledValue(item, 'In: ', formatTokens(inputTokens));
}

supportsRawValue(): boolean { return true; }
Expand Down
6 changes: 2 additions & 4 deletions src/widgets/TokensOutput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ export class TokensOutputWidget implements Widget {
return formatRawOrLabeledValue(item, 'Out: ', formatTokens(outputTotalTokens));
}

if (context.tokenMetrics) {
return formatRawOrLabeledValue(item, 'Out: ', formatTokens(context.tokenMetrics.outputTokens));
}
return null;
const outputTokens = context.tokenMetrics?.outputTokens ?? 0;
return formatRawOrLabeledValue(item, 'Out: ', formatTokens(outputTokens));
}

supportsRawValue(): boolean { return true; }
Expand Down
6 changes: 2 additions & 4 deletions src/widgets/TokensTotal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@ export class TokensTotalWidget implements Widget {
return formatRawOrLabeledValue(item, 'Total: ', '30.6k');
}

if (context.tokenMetrics) {
return formatRawOrLabeledValue(item, 'Total: ', formatTokens(context.tokenMetrics.totalTokens));
}
return null;
const totalTokens = context.tokenMetrics?.totalTokens ?? 0;
return formatRawOrLabeledValue(item, 'Total: ', formatTokens(totalTokens));
}

supportsRawValue(): boolean { return true; }
Expand Down
6 changes: 3 additions & 3 deletions src/widgets/Version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ export class VersionWidget implements Widget {
render(item: WidgetItem, context: RenderContext, settings: Settings): string | null {
if (context.isPreview) {
return item.rawValue ? '1.0.0' : 'v1.0.0';
} else if (context.data?.version) {
return item.rawValue ? context.data.version : `v${context.data.version}`;
}
return null;

const version = context.data?.version ?? 'N/A';
return item.rawValue ? version : `v${version}`;
}

supportsRawValue(): boolean { return true; }
Expand Down