Skip to content
Merged
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
4 changes: 2 additions & 2 deletions apps/ccusage/scripts/generate-json-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
import process from 'node:process';
import { Result } from '@praha/byethrow';
import { $ } from 'bun';
import { sharedArgs } from '../src/_shared-args.ts';
// Import command definitions to access their args
import { subCommandUnion } from '../src/commands/index.ts';

import { logger } from '../src/logger.ts';

import { sharedArgs } from '../src/shared-args.ts';

/**
* The filename for the generated JSON Schema file.
* Used for both root directory and docs/public directory output.
Expand Down
8 changes: 4 additions & 4 deletions apps/ccusage/src/calculate-cost.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@
* @module calculate-cost
*/

import type { AggregatedTokenCounts } from './_token-utils.ts';
import type { DailyUsage, MonthlyUsage, SessionUsage, WeeklyUsage } from './data-loader.ts';
import { getTotalTokens } from './_token-utils.ts';
import type { AggregatedTokenCounts } from './token-utils.ts';
import { getTotalTokens } from './token-utils.ts';
import {
createActivityDate,
createDailyDate,
createModelName,
createProjectPath,
createSessionId,
createVersion,
} from './_types.ts';
} from './types.ts';

/**
* Alias for AggregatedTokenCounts from shared utilities
* @deprecated Use AggregatedTokenCounts from _token-utils.ts instead
* @deprecated Use AggregatedTokenCounts from token-utils.ts instead
*/
type TokenData = AggregatedTokenCounts;

Expand Down
2 changes: 1 addition & 1 deletion apps/ccusage/src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { accessSync, constants, statSync } from 'node:fs';
import { delimiter, dirname, join } from 'node:path';
import process from 'node:process';
import { fileURLToPath } from 'node:url';
import { CCUSAGE_BUN_AUTO_RUN_DISABLED_VALUE, CCUSAGE_BUN_AUTO_RUN_ENV } from './_env.ts';
import { CCUSAGE_BUN_AUTO_RUN_DISABLED_VALUE, CCUSAGE_BUN_AUTO_RUN_ENV } from './env.ts';

function getExecutableNames(
command: string,
Expand Down
4 changes: 2 additions & 2 deletions apps/ccusage/src/commands/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ import {
DEFAULT_CLAUDE_CODE_PATH,
DEFAULT_CLAUDE_CONFIG_PATH,
USER_HOME_DIR,
} from '../_consts.ts';
import { formatDate, formatDateCompact, getDateStringWeek } from '../_date-utils.ts';
} from '../consts.ts';
import { loadDailyUsageData, loadMonthlyUsageData, loadSessionData } from '../data-loader.ts';
import { formatDate, formatDateCompact, getDateStringWeek } from '../date-utils.ts';
import { logger, writeStdoutLine } from '../logger.ts';

type AgentId = 'claude' | 'codex' | 'opencode' | 'amp' | 'pi';
Expand Down
16 changes: 8 additions & 8 deletions apps/ccusage/src/commands/blocks.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { SessionBlock } from '../_session-blocks.ts';
import type { SessionBlock } from '../session-blocks.ts';
import process from 'node:process';
import * as pc from '@ccusage/internal/colors';
import {
Expand All @@ -8,23 +8,23 @@ import {
ResponsiveTable,
} from '@ccusage/terminal/table';
import { define } from 'gunshi';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import {
BLOCKS_COMPACT_WIDTH_THRESHOLD,
BLOCKS_DEFAULT_TERMINAL_WIDTH,
BLOCKS_WARNING_THRESHOLD,
DEFAULT_RECENT_DAYS,
} from '../_consts.ts';
} from '../consts.ts';
import { loadSessionBlockData } from '../data-loader.ts';
import { log, logger, writeStdoutLine } from '../logger.ts';
import {
calculateBurnRate,
DEFAULT_SESSION_DURATION_HOURS,
filterRecentBlocks,
projectBlockUsage,
} from '../_session-blocks.ts';
import { sharedCommandConfig } from '../_shared-args.ts';
import { getTotalTokens } from '../_token-utils.ts';
import { loadSessionBlockData } from '../data-loader.ts';
import { log, logger, writeStdoutLine } from '../logger.ts';
} from '../session-blocks.ts';
import { sharedCommandConfig } from '../shared-args.ts';
import { getTotalTokens } from '../token-utils.ts';

/**
* Formats the time display for a session block
Expand Down
10 changes: 5 additions & 5 deletions apps/ccusage/src/commands/daily.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import {
pushBreakdownRows,
} from '@ccusage/terminal/table';
import { define } from 'gunshi';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { groupByProject, groupDataByProject } from '../_daily-grouping.ts';
import { formatDateCompact } from '../_date-utils.ts';
import { formatProjectName } from '../_project-names.ts';
import { sharedCommandConfig } from '../_shared-args.ts';
import { calculateTotals, createTotalsObject, getTotalTokens } from '../calculate-cost.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import { groupByProject, groupDataByProject } from '../daily-grouping.ts';
import { loadDailyUsageData } from '../data-loader.ts';
import { formatDateCompact } from '../date-utils.ts';
import { detectMismatches, printMismatchReport } from '../debug.ts';
import { logger, writeStdoutLine } from '../logger.ts';
import { formatProjectName } from '../project-names.ts';
import { sharedCommandConfig } from '../shared-args.ts';

export const dailyCommand = define({
name: 'daily',
Expand Down
6 changes: 3 additions & 3 deletions apps/ccusage/src/commands/monthly.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ import {
pushBreakdownRows,
} from '@ccusage/terminal/table';
import { define } from 'gunshi';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { formatDateCompact } from '../_date-utils.ts';
import { sharedCommandConfig } from '../_shared-args.ts';
import { calculateTotals, createTotalsObject, getTotalTokens } from '../calculate-cost.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import { loadMonthlyUsageData } from '../data-loader.ts';
import { formatDateCompact } from '../date-utils.ts';
import { detectMismatches, printMismatchReport } from '../debug.ts';
import { logger, writeStdoutLine } from '../logger.ts';
import { sharedCommandConfig } from '../shared-args.ts';

export const monthlyCommand = define({
name: 'monthly',
Expand Down
8 changes: 4 additions & 4 deletions apps/ccusage/src/commands/session.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import {
pushBreakdownRows,
} from '@ccusage/terminal/table';
import { define } from 'gunshi';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { formatDateCompact } from '../_date-utils.ts';
import { sharedCommandConfig } from '../_shared-args.ts';
import { calculateTotals, createTotalsObject, getTotalTokens } from '../calculate-cost.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import { loadSessionData } from '../data-loader.ts';
import { formatDateCompact } from '../date-utils.ts';
import { detectMismatches, printMismatchReport } from '../debug.ts';
import { logger, writeStdoutLine } from '../logger.ts';
import { handleSessionIdLookup } from './_session_id.ts';
import { sharedCommandConfig } from '../shared-args.ts';
import { handleSessionIdLookup } from './session_id.ts';

// eslint-disable-next-line ts/no-unused-vars
const { order: _, ...sharedArgs } = sharedCommandConfig.args;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { CostMode } from '../_types.ts';
import type { UsageData } from '../data-loader.ts';
import type { CostMode } from '../types.ts';
import process from 'node:process';
import { formatCurrency, formatNumber, ResponsiveTable } from '@ccusage/terminal/table';
import { formatDateCompact } from '../_date-utils.ts';
import { loadSessionUsageById } from '../data-loader.ts';
import { formatDateCompact } from '../date-utils.ts';
import { log, logger, writeStdoutLine } from '../logger.ts';

export type SessionIdContext = {
Expand Down
12 changes: 6 additions & 6 deletions apps/ccusage/src/commands/statusline.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@ import { Result } from '@praha/byethrow';
import getStdin from 'get-stdin';
import { define } from 'gunshi';
import * as v from 'valibot';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { DEFAULT_CONTEXT_USAGE_THRESHOLDS, DEFAULT_REFRESH_INTERVAL_SECONDS } from '../_consts.ts';
import { calculateBurnRate } from '../_session-blocks.ts';
import { sharedArgs } from '../_shared-args.ts';
import { statuslineHookJsonSchema } from '../_types.ts';
import { getFileModifiedTime, unreachable } from '../_utils.ts';
import { calculateTotals } from '../calculate-cost.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import { DEFAULT_CONTEXT_USAGE_THRESHOLDS, DEFAULT_REFRESH_INTERVAL_SECONDS } from '../consts.ts';
import {
calculateContextTokens,
loadDailyUsageData,
loadSessionBlockData,
loadSessionUsageById,
} from '../data-loader.ts';
import { log, logger } from '../logger.ts';
import { calculateBurnRate } from '../session-blocks.ts';
import { sharedArgs } from '../shared-args.ts';
import { statuslineHookJsonSchema } from '../types.ts';
import { getFileModifiedTime, unreachable } from '../utils.ts';

/**
* Formats the remaining time for display
Expand Down
8 changes: 4 additions & 4 deletions apps/ccusage/src/commands/weekly.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import {
pushBreakdownRows,
} from '@ccusage/terminal/table';
import { define } from 'gunshi';
import { loadConfig, mergeConfigWithArgs } from '../_config-loader-tokens.ts';
import { WEEK_DAYS } from '../_consts.ts';
import { formatDateCompact } from '../_date-utils.ts';
import { sharedArgs } from '../_shared-args.ts';
import { calculateTotals, createTotalsObject, getTotalTokens } from '../calculate-cost.ts';
import { loadConfig, mergeConfigWithArgs } from '../config-loader-tokens.ts';
import { WEEK_DAYS } from '../consts.ts';
import { loadWeeklyUsageData } from '../data-loader.ts';
import { formatDateCompact } from '../date-utils.ts';
import { detectMismatches, printMismatchReport } from '../debug.ts';
import { logger, writeStdoutLine } from '../logger.ts';
import { sharedArgs } from '../shared-args.ts';

export const weeklyCommand = define({
name: 'weekly',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import process from 'node:process';
import { toArray } from '@antfu/utils';
import { Result } from '@praha/byethrow';
import { createFixture } from 'fs-fixture';
import { CONFIG_FILE_NAME } from './_consts.ts';
import { CONFIG_FILE_NAME } from './consts.ts';
import { getClaudePaths } from './data-loader.ts';
import { logger } from './logger.ts';

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { DailyProjectOutput } from './_json-output-types.ts';
import type { loadDailyUsageData } from './data-loader.ts';
import { createDailyDate, createModelName } from './_types.ts';
import type { DailyProjectOutput } from './json-output-types.ts';
import { getTotalTokens } from './calculate-cost.ts';
import { createDailyDate, createModelName } from './types.ts';

/**
* Type for daily data returned from loadDailyUsageData
Expand Down
20 changes: 10 additions & 10 deletions apps/ccusage/src/data-loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
*/

import type { LiteLLMModelPricing } from '@ccusage/internal/pricing';
import type { WeekDay } from './_consts.ts';
import type { LoadedUsageEntry, SessionBlock } from './_session-blocks.ts';
import type { WeekDay } from './consts.ts';
import type { LoadedUsageEntry, SessionBlock } from './session-blocks.ts';
import type {
ActivityDate,
Bucket,
Expand All @@ -26,7 +26,7 @@ import type {
SortOrder,
Version,
WeeklyDate,
} from './_types.ts';
} from './types.ts';
import { Buffer } from 'node:buffer';
import { createReadStream, createWriteStream } from 'node:fs';
import { open, readdir, readFile, stat, utimes } from 'node:fs/promises';
Expand All @@ -48,17 +48,18 @@ import {
DEFAULT_CLAUDE_CODE_PATH,
DEFAULT_CLAUDE_CONFIG_PATH,
USER_HOME_DIR,
} from './_consts.ts';
} from './consts.ts';
import {
createCachedDateFormatter,
filterByDateRange,
formatDate,
getDateStringWeek,
getDayNumber,
sortByDate,
} from './_date-utils.ts';
import { CLAUDE_PROVIDER_PREFIXES, PricingFetcher } from './_pricing-fetcher.ts';
import { identifySessionBlocks } from './_session-blocks.ts';
} from './date-utils.ts';
import { logger } from './logger.ts';
import { CLAUDE_PROVIDER_PREFIXES, PricingFetcher } from './pricing-fetcher.ts';
import { identifySessionBlocks } from './session-blocks.ts';
import {
createBucket,
createISOTimestamp,
Expand All @@ -73,9 +74,8 @@ import {
requestIdSchema,
sessionIdSchema,
versionSchema,
} from './_types.ts';
import { unreachable } from './_utils.ts';
import { logger } from './logger.ts';
} from './types.ts';
import { unreachable } from './utils.ts';

const USAGE_LINE_MARKER = '"usage":{';
const USAGE_LINE_MARKER_BUFFER = Buffer.from(USAGE_LINE_MARKER);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
* @module date-utils
*/

import type { DayOfWeek, WeekDay } from './_consts.ts';
import type { WeeklyDate } from './_types.ts';
import { DEFAULT_LOCALE } from './_consts.ts';
import { createWeeklyDate } from './_types.ts';
import type { DayOfWeek, WeekDay } from './consts.ts';
import type { WeeklyDate } from './types.ts';
import { DEFAULT_LOCALE } from './consts.ts';
import { createWeeklyDate } from './types.ts';

export { sortByDate } from '@ccusage/internal/sort';
// Re-export formatDateCompact from shared package
Expand Down
4 changes: 2 additions & 2 deletions apps/ccusage/src/debug.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ import path from 'node:path';
import { Result } from '@praha/byethrow';
import { createFixture } from 'fs-fixture';
import * as v from 'valibot';
import { CLAUDE_PROJECTS_DIR_NAME, DEBUG_MATCH_THRESHOLD_PERCENT } from './_consts.ts';
import { PricingFetcher } from './_pricing-fetcher.ts';
import { CLAUDE_PROJECTS_DIR_NAME, DEBUG_MATCH_THRESHOLD_PERCENT } from './consts.ts';
import { collectJsonlFiles, getClaudePaths, usageDataSchema } from './data-loader.ts';
import { logger } from './logger.ts';
import { PricingFetcher } from './pricing-fetcher.ts';

/**
* Represents a pricing discrepancy between original and calculated costs
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
* @module json-output-types
*/

import type { DailyDate, ModelName } from './_types.ts';
import type { ModelBreakdown } from './data-loader.ts';
import type { DailyDate, ModelName } from './types.ts';

/**
* Interface for daily command JSON output structure (groupByProject)
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { LiteLLMPricingFetcher } from '@ccusage/internal/pricing';
import { Result } from '@praha/byethrow';
import { prefetchClaudePricing } from './_macro.ts' with { type: 'macro' };
import { logger } from './logger.ts';
import { prefetchClaudePricing } from './macro.ts' with { type: 'macro' };

export const CLAUDE_PROVIDER_PREFIXES = [
'anthropic/',
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { DEFAULT_RECENT_DAYS } from './_consts.ts';
import { getTotalTokens } from './_token-utils.ts';
import { DEFAULT_RECENT_DAYS } from './consts.ts';
import { getTotalTokens } from './token-utils.ts';

/**
* Default session duration in hours (Claude's billing block duration)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Args } from 'gunshi';
import type { CostMode, SortOrder } from './_types.ts';
import type { CostMode, SortOrder } from './types.ts';
import * as v from 'valibot';
import { CostModes, filterDateSchema, SortOrders } from './_types.ts';
import { CostModes, filterDateSchema, SortOrders } from './types.ts';

/**
* Parses and validates a date argument in YYYYMMDD format
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion apps/ccusage/tsdown.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export default defineConfig({
Macros({
include: [
'src/index.ts',
'src/_pricing-fetcher.ts',
'src/pricing-fetcher.ts',
'../amp/src/pricing.ts',
'../codex/src/pricing.ts',
],
Expand Down
Loading