dino-spec 9.2.2 → 9.3.1

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.
@@ -16,6 +16,7 @@ export { detectSubscriptionPlan, isApiMode } from './plan-detector.js';
16
16
  export { countConfigs } from './config-counter.js';
17
17
  export { parseTranscript, getTodoProgress, areAllTodosComplete } from './transcript-reader.js';
18
18
  export { trackUsage, loadUsageTracking, calculateUsageStats, formatDuration, formatSessionLimit, formatWeeklyUsage, trackBudgetChange, saveBudgetTracking } from './usage-tracker.js';
19
+ export { getUsageFromApi, formatResetTime, hasApiUsageData, type UsageApiData, type UsageApiResponse } from './usage-api.js';
19
20
  export * from './render/index.js';
20
21
  /**
21
22
  * Create HUD display from Claude Code input
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAA0H,MAAM,YAAY,CAAC;AAYrL,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EAER,YAAY,EACZ,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EAER,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGtL,cAAc,mBAAmB,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,eAAe,EAC5B,UAAU,GAAE,MAAsB,EAClC,cAAc,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,eAAe,CAAC,CAAA;CAAE,GAC1E,OAAO,CAAC,SAAS,CAAC,CAmFpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAS/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAA0H,MAAM,YAAY,CAAC;AAarL,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EAER,YAAY,EACZ,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EAER,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtL,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG7H,cAAc,mBAAmB,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,eAAe,EAC5B,UAAU,GAAE,MAAsB,EAClC,cAAc,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,eAAe,CAAC,CAAA;CAAE,GAC1E,OAAO,CAAC,SAAS,CAAC,CAqFpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAS/C"}
package/dist/hud/index.js CHANGED
@@ -15,6 +15,7 @@ import { detectSubscriptionPlan } from './plan-detector.js';
15
15
  import { countConfigs } from './config-counter.js';
16
16
  import { parseTranscript } from './transcript-reader.js';
17
17
  import { trackUsage, loadUsageTracking, calculateUsageStats, trackBudgetChange, saveUsageTracking } from './usage-tracker.js';
18
+ import { getUsageFromApi } from './usage-api.js';
18
19
  // Re-export functions
19
20
  export { parseStdin, parseClaudeCodeInput } from './stdin.js';
20
21
  export { readSessionData, calculateSessionDuration, calculateLastEditMinutes } from './session-reader.js';
@@ -24,6 +25,7 @@ export { detectSubscriptionPlan, isApiMode } from './plan-detector.js';
24
25
  export { countConfigs } from './config-counter.js';
25
26
  export { parseTranscript, getTodoProgress, areAllTodosComplete } from './transcript-reader.js';
26
27
  export { trackUsage, loadUsageTracking, calculateUsageStats, formatDuration, formatSessionLimit, formatWeeklyUsage, trackBudgetChange, saveBudgetTracking } from './usage-tracker.js';
28
+ export { getUsageFromApi, formatResetTime, hasApiUsageData } from './usage-api.js';
27
29
  // Re-export renderers
28
30
  export * from './render/index.js';
29
31
  /**
@@ -57,7 +59,7 @@ export async function createHudDisplay(claudeInput, projectDir = process.cwd(),
57
59
  config = { ...config, format: { ...config.format, ...configOverride.format } };
58
60
  }
59
61
  // Gather all data in parallel
60
- const [session, mcp, git, plan, configCounts, transcript, usageTracking] = await Promise.all([
62
+ const [session, mcp, git, plan, configCounts, transcript, usageTracking, apiUsageData] = await Promise.all([
61
63
  readSessionData(projectDir),
62
64
  checkMcpStatus(projectDir),
63
65
  getGitBranch(projectDir),
@@ -68,6 +70,8 @@ export async function createHudDisplay(claudeInput, projectDir = process.cwd(),
68
70
  claudeInput.cost
69
71
  ? trackUsage(claudeInput.cost, claudeInput.sessionId, projectDir)
70
72
  : loadUsageTracking(projectDir),
73
+ // Fetch actual rate limits from Anthropic API (cached)
74
+ getUsageFromApi(projectDir),
71
75
  ]);
72
76
  // Calculate session duration
73
77
  const sessionDuration = calculateSessionDuration(session.sessionStart);
@@ -93,7 +97,7 @@ export async function createHudDisplay(claudeInput, projectDir = process.cwd(),
93
97
  };
94
98
  // Calculate usage stats for session limit and weekly usage display
95
99
  const sessionStartTime = transcript?.sessionStart ?? (session.sessionStart ? new Date(session.sessionStart) : undefined);
96
- const usageStats = calculateUsageStats(usageTracking, sessionStartTime, config.limits, plan);
100
+ const usageStats = calculateUsageStats(usageTracking, sessionStartTime, config.limits, plan, apiUsageData);
97
101
  // Build render context
98
102
  const context = {
99
103
  budget,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Session Limit Renderer - Display 5-hour rate limit tracking
3
3
  *
4
4
  * Shows percentage of 5-hour rate limit used with color-coded status.
5
- * Based on actual API duration in rolling 5-hour window, not wall-clock time.
5
+ * Uses actual Anthropic API data when available, falls back to estimation.
6
6
  */
7
7
  import type { UsageStats, HudConfig } from '../types.js';
8
8
  /**
@@ -10,12 +10,13 @@ import type { UsageStats, HudConfig } from '../types.js';
10
10
  *
11
11
  * @param stats - Usage statistics
12
12
  * @param config - HUD configuration
13
- * @returns Formatted session limit string (e.g., "35%/5h (2h)")
13
+ * @returns Formatted session limit string (e.g., "8%/5h (2h 46m)")
14
14
  *
15
15
  * @example
16
- * "35%/5h" (green when under 70%)
16
+ * "8%/5h (2h 46m)" (green when under 70%, from API)
17
17
  * "75%/5h (3h)" (yellow when 70-85%)
18
18
  * "90%/5h (1h)" (red when over 85%)
19
+ * "22%/5h~" (estimation marker when API unavailable)
19
20
  */
20
21
  export declare function renderSessionLimit(stats: UsageStats, config: HudConfig): string;
21
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-limit.d.ts","sourceRoot":"","sources":["../../../src/hud/render/session-limit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAW/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAEtF"}
1
+ {"version":3,"file":"session-limit.d.ts","sourceRoot":"","sources":["../../../src/hud/render/session-limit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAgB/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAEtF"}
@@ -2,7 +2,7 @@
2
2
  * Session Limit Renderer - Display 5-hour rate limit tracking
3
3
  *
4
4
  * Shows percentage of 5-hour rate limit used with color-coded status.
5
- * Based on actual API duration in rolling 5-hour window, not wall-clock time.
5
+ * Uses actual Anthropic API data when available, falls back to estimation.
6
6
  */
7
7
  import chalk from 'chalk';
8
8
  import { formatSessionLimit } from '../usage-tracker.js';
@@ -11,21 +11,26 @@ import { formatSessionLimit } from '../usage-tracker.js';
11
11
  *
12
12
  * @param stats - Usage statistics
13
13
  * @param config - HUD configuration
14
- * @returns Formatted session limit string (e.g., "35%/5h (2h)")
14
+ * @returns Formatted session limit string (e.g., "8%/5h (2h 46m)")
15
15
  *
16
16
  * @example
17
- * "35%/5h" (green when under 70%)
17
+ * "8%/5h (2h 46m)" (green when under 70%, from API)
18
18
  * "75%/5h (3h)" (yellow when 70-85%)
19
19
  * "90%/5h (1h)" (red when over 85%)
20
+ * "22%/5h~" (estimation marker when API unavailable)
20
21
  */
21
22
  export function renderSessionLimit(stats, config) {
22
23
  const { useColors } = config.format;
23
24
  const limitHours = config.limits.sessionLimitHours;
24
- const text = formatSessionLimit(stats, limitHours);
25
+ // Base 5-hour text
26
+ const fiveHourText = formatSessionLimit(stats, limitHours);
27
+ // Add estimation marker if not from API (less accurate)
28
+ const estimationMarker = !stats.fiveHourFromApi ? chalk.dim('~') : '';
25
29
  if (!useColors) {
26
- return text;
30
+ const marker = !stats.fiveHourFromApi ? '~' : '';
31
+ return fiveHourText + marker;
27
32
  }
28
- return colorizeByStatus(text, stats.fiveHourStatus);
33
+ return colorizeByStatus(fiveHourText, stats.fiveHourStatus) + estimationMarker;
29
34
  }
30
35
  /**
31
36
  * Render compact session limit (same format, for single-line layouts)
@@ -1 +1 @@
1
- {"version":3,"file":"session-limit.js","sourceRoot":"","sources":["../../../src/hud/render/session-limit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,MAAiB;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAEnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,MAAiB;IAC5E,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAuC;IAC7E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"session-limit.js","sourceRoot":"","sources":["../../../src/hud/render/session-limit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,MAAiB;IACrE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAEnD,mBAAmB;IACnB,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE3D,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED,OAAO,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,MAAiB;IAC5E,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAuC;IAC7E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -10,12 +10,12 @@ import type { UsageStats, HudConfig, SubscriptionPlan } from '../types.js';
10
10
  * @param stats - Usage statistics
11
11
  * @param plan - Subscription plan
12
12
  * @param config - HUD configuration
13
- * @returns Formatted weekly usage string (e.g., "45%/wk" or "$12.50/wk")
13
+ * @returns Formatted weekly usage string (e.g., "67%/7d (7h)" or "$12.50/wk")
14
14
  *
15
15
  * @example
16
- * "45%/wk" (green when under 70%)
17
- * "75%/wk" (yellow when 70-85%)
18
- * "90%/wk" (red when over 85%)
16
+ * "67%/7d (7h)" (green when under 70%, from Anthropic API)
17
+ * "75%/7d (2d)" (yellow when 70-85%)
18
+ * "90%/7d (5d)" (red when over 85%)
19
19
  * "$12.50/wk" (for API users)
20
20
  */
21
21
  export declare function renderWeeklyUsage(stats: UsageStats, plan: SubscriptionPlan, config: HudConfig): string;
@@ -24,12 +24,15 @@ export declare function renderWeeklyUsage(stats: UsageStats, plan: SubscriptionP
24
24
  */
25
25
  export declare function renderWeeklyUsageCompact(stats: UsageStats, plan: SubscriptionPlan, config: HudConfig): string;
26
26
  /**
27
- * Render weekly usage with reset info
27
+ * Render weekly usage with reset info (verbose format)
28
28
  *
29
29
  * @param stats - Usage statistics
30
30
  * @param plan - Subscription plan
31
31
  * @param config - HUD configuration
32
- * @returns Formatted string with reset time (e.g., "45%/wk (2d 5h)")
32
+ * @returns Formatted string with reset time (e.g., "67%/7d (7h)")
33
+ *
34
+ * Note: For 7-day API data, reset time is already included in formatWeeklyUsage,
35
+ * so this just returns the same as renderWeeklyUsage.
33
36
  */
34
37
  export declare function renderWeeklyUsageVerbose(stats: UsageStats, plan: SubscriptionPlan, config: HudConfig): string;
35
38
  //# sourceMappingURL=weekly-usage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weekly-usage.d.ts","sourceRoot":"","sources":["../../../src/hud/render/weekly-usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAUtG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAE7G;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAc7G"}
1
+ {"version":3,"file":"weekly-usage.d.ts","sourceRoot":"","sources":["../../../src/hud/render/weekly-usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAYtG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAE7G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAwB7G"}
@@ -11,21 +11,23 @@ import { formatWeeklyUsage } from '../usage-tracker.js';
11
11
  * @param stats - Usage statistics
12
12
  * @param plan - Subscription plan
13
13
  * @param config - HUD configuration
14
- * @returns Formatted weekly usage string (e.g., "45%/wk" or "$12.50/wk")
14
+ * @returns Formatted weekly usage string (e.g., "67%/7d (7h)" or "$12.50/wk")
15
15
  *
16
16
  * @example
17
- * "45%/wk" (green when under 70%)
18
- * "75%/wk" (yellow when 70-85%)
19
- * "90%/wk" (red when over 85%)
17
+ * "67%/7d (7h)" (green when under 70%, from Anthropic API)
18
+ * "75%/7d (2d)" (yellow when 70-85%)
19
+ * "90%/7d (5d)" (red when over 85%)
20
20
  * "$12.50/wk" (for API users)
21
21
  */
22
22
  export function renderWeeklyUsage(stats, plan, config) {
23
23
  const { useColors } = config.format;
24
24
  const text = formatWeeklyUsage(stats, plan);
25
- if (!useColors) {
25
+ if (!text || !useColors) {
26
26
  return text;
27
27
  }
28
- return colorizeByStatus(text, stats.weeklyStatus);
28
+ // Use 7-day status from API when available, otherwise fall back to weekly estimate
29
+ const status = stats.sevenDayStatus ?? stats.weeklyStatus;
30
+ return colorizeByStatus(text, status);
29
31
  }
30
32
  /**
31
33
  * Render compact weekly usage (same format, for single-line layouts)
@@ -34,16 +36,27 @@ export function renderWeeklyUsageCompact(stats, plan, config) {
34
36
  return renderWeeklyUsage(stats, plan, config);
35
37
  }
36
38
  /**
37
- * Render weekly usage with reset info
39
+ * Render weekly usage with reset info (verbose format)
38
40
  *
39
41
  * @param stats - Usage statistics
40
42
  * @param plan - Subscription plan
41
43
  * @param config - HUD configuration
42
- * @returns Formatted string with reset time (e.g., "45%/wk (2d 5h)")
44
+ * @returns Formatted string with reset time (e.g., "67%/7d (7h)")
45
+ *
46
+ * Note: For 7-day API data, reset time is already included in formatWeeklyUsage,
47
+ * so this just returns the same as renderWeeklyUsage.
43
48
  */
44
49
  export function renderWeeklyUsageVerbose(stats, plan, config) {
50
+ // For API data, reset time is already in the format
51
+ if (stats.sevenDayPercentage !== null && plan !== 'API') {
52
+ return renderWeeklyUsage(stats, plan, config);
53
+ }
45
54
  const { useColors } = config.format;
46
55
  const usageText = formatWeeklyUsage(stats, plan);
56
+ if (!usageText) {
57
+ return '';
58
+ }
59
+ // For estimated weekly or API cost, add reset time
47
60
  const resetText = `(${stats.weeklyResetIn})`;
48
61
  if (!useColors) {
49
62
  return `${usageText} ${resetText}`;
@@ -1 +1 @@
1
- {"version":3,"file":"weekly-usage.js","sourceRoot":"","sources":["../../../src/hud/render/weekly-usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IAC5F,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAEpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IACnG,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IACnG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAEpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC;IAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAuC;IAC7E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"weekly-usage.js","sourceRoot":"","sources":["../../../src/hud/render/weekly-usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IAC5F,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAEpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mFAAmF;IACnF,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,YAAY,CAAC;IAC1D,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IACnG,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,IAAsB,EAAE,MAAiB;IACnG,oDAAoD;IACpD,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC;IAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAuC;IAC7E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -253,6 +253,10 @@ export interface UsageStats {
253
253
  fiveHourPercentage: number;
254
254
  fiveHourResetIn: string;
255
255
  fiveHourStatus: 'good' | 'warning' | 'critical';
256
+ fiveHourFromApi: boolean;
257
+ sevenDayPercentage: number | null;
258
+ sevenDayResetIn: string | null;
259
+ sevenDayStatus: 'good' | 'warning' | 'critical' | null;
256
260
  sessionElapsedMs: number;
257
261
  sessionLimitMs: number;
258
262
  sessionPercentage: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hud/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hud/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Usage API - Fetch actual rate limits from Anthropic OAuth API
3
+ *
4
+ * Fetches real 5-hour and 7-day rate limit percentages from Anthropic's
5
+ * OAuth usage endpoint. Only works for Pro/Max/Team subscribers.
6
+ *
7
+ * Based on claude-hud implementation.
8
+ */
9
+ /**
10
+ * Anthropic OAuth usage API response
11
+ */
12
+ export interface UsageApiResponse {
13
+ five_hour?: {
14
+ utilization?: number;
15
+ resets_at?: string;
16
+ };
17
+ seven_day?: {
18
+ utilization?: number;
19
+ resets_at?: string;
20
+ };
21
+ }
22
+ /**
23
+ * Parsed usage data from API
24
+ */
25
+ export interface UsageApiData {
26
+ fiveHourPercent: number | null;
27
+ fiveHourResetsAt: string | null;
28
+ sevenDayPercent: number | null;
29
+ sevenDayResetsAt: string | null;
30
+ apiUnavailable: boolean;
31
+ error?: string;
32
+ }
33
+ /**
34
+ * Get usage data from Anthropic API with caching
35
+ *
36
+ * @param projectDir - Project directory for cache storage
37
+ * @returns Usage data with rate limit percentages
38
+ */
39
+ export declare function getUsageFromApi(projectDir?: string): Promise<UsageApiData>;
40
+ /**
41
+ * Format reset time to human-readable string
42
+ *
43
+ * @param resetsAt - ISO timestamp when usage resets
44
+ * @returns Human-readable duration (e.g., "2h 30m", "4h")
45
+ */
46
+ export declare function formatResetTime(resetsAt: string | null): string;
47
+ /**
48
+ * Check if API usage data is available (has valid credentials and API response)
49
+ */
50
+ export declare function hasApiUsageData(data: UsageApiData): boolean;
51
+ //# sourceMappingURL=usage-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-api.d.ts","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwMD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CA2B/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Usage API - Fetch actual rate limits from Anthropic OAuth API
3
+ *
4
+ * Fetches real 5-hour and 7-day rate limit percentages from Anthropic's
5
+ * OAuth usage endpoint. Only works for Pro/Max/Team subscribers.
6
+ *
7
+ * Based on claude-hud implementation.
8
+ */
9
+ import { join } from 'path';
10
+ import { homedir } from 'os';
11
+ import https from 'https';
12
+ import { FileSystem } from '../utils/file-system.js';
13
+ import { DINO_DIR_NAME } from '../core/config/constants.js';
14
+ const USAGE_CACHE_FILE = 'usage-cache.json';
15
+ const CACHE_TTL_SUCCESS_MS = 60 * 1000; // 60 seconds for successful responses
16
+ const CACHE_TTL_FAILURE_MS = 15 * 1000; // 15 seconds for failures
17
+ const API_TIMEOUT_MS = 5000;
18
+ /**
19
+ * Read Claude OAuth credentials from ~/.claude/.credentials.json
20
+ */
21
+ async function readCredentials() {
22
+ try {
23
+ const credentialsPath = join(homedir(), '.claude', '.credentials.json');
24
+ return await FileSystem.readJsonSafe(credentialsPath);
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ /**
31
+ * Get access token from credentials, checking expiration
32
+ */
33
+ function getAccessToken(credentials) {
34
+ if (!credentials?.claudeAiOauth?.accessToken) {
35
+ return null;
36
+ }
37
+ const { accessToken, expiresAt } = credentials.claudeAiOauth;
38
+ // Check if token is expired
39
+ if (expiresAt && expiresAt < Date.now() / 1000) {
40
+ return null;
41
+ }
42
+ return accessToken;
43
+ }
44
+ /**
45
+ * Parse and validate utilization percentage
46
+ */
47
+ function parseUtilization(value) {
48
+ if (value === undefined || value === null) {
49
+ return null;
50
+ }
51
+ if (!Number.isFinite(value)) {
52
+ return null;
53
+ }
54
+ // Clamp to 0-100 range and round
55
+ return Math.round(Math.max(0, Math.min(100, value)));
56
+ }
57
+ /**
58
+ * Fetch usage data from Anthropic OAuth API
59
+ */
60
+ async function fetchUsageApi(accessToken) {
61
+ return new Promise((resolve) => {
62
+ const options = {
63
+ hostname: 'api.anthropic.com',
64
+ path: '/api/oauth/usage',
65
+ method: 'GET',
66
+ headers: {
67
+ 'Authorization': `Bearer ${accessToken}`,
68
+ 'anthropic-beta': 'oauth-2025-04-20',
69
+ 'User-Agent': 'dino-spec/1.0',
70
+ },
71
+ timeout: API_TIMEOUT_MS,
72
+ };
73
+ const req = https.request(options, (res) => {
74
+ let data = '';
75
+ res.on('data', (chunk) => {
76
+ data += chunk;
77
+ });
78
+ res.on('end', () => {
79
+ if (res.statusCode !== 200) {
80
+ resolve({
81
+ fiveHourPercent: null,
82
+ fiveHourResetsAt: null,
83
+ sevenDayPercent: null,
84
+ sevenDayResetsAt: null,
85
+ apiUnavailable: true,
86
+ error: `HTTP ${res.statusCode}`,
87
+ });
88
+ return;
89
+ }
90
+ try {
91
+ const response = JSON.parse(data);
92
+ resolve({
93
+ fiveHourPercent: parseUtilization(response.five_hour?.utilization),
94
+ fiveHourResetsAt: response.five_hour?.resets_at ?? null,
95
+ sevenDayPercent: parseUtilization(response.seven_day?.utilization),
96
+ sevenDayResetsAt: response.seven_day?.resets_at ?? null,
97
+ apiUnavailable: false,
98
+ });
99
+ }
100
+ catch {
101
+ resolve({
102
+ fiveHourPercent: null,
103
+ fiveHourResetsAt: null,
104
+ sevenDayPercent: null,
105
+ sevenDayResetsAt: null,
106
+ apiUnavailable: true,
107
+ error: 'Parse error',
108
+ });
109
+ }
110
+ });
111
+ });
112
+ req.on('error', (err) => {
113
+ resolve({
114
+ fiveHourPercent: null,
115
+ fiveHourResetsAt: null,
116
+ sevenDayPercent: null,
117
+ sevenDayResetsAt: null,
118
+ apiUnavailable: true,
119
+ error: err.message,
120
+ });
121
+ });
122
+ req.on('timeout', () => {
123
+ req.destroy();
124
+ resolve({
125
+ fiveHourPercent: null,
126
+ fiveHourResetsAt: null,
127
+ sevenDayPercent: null,
128
+ sevenDayResetsAt: null,
129
+ apiUnavailable: true,
130
+ error: 'Timeout',
131
+ });
132
+ });
133
+ req.end();
134
+ });
135
+ }
136
+ /**
137
+ * Load cached usage data
138
+ */
139
+ async function loadCache(projectDir) {
140
+ try {
141
+ const cachePath = join(projectDir, DINO_DIR_NAME, USAGE_CACHE_FILE);
142
+ const cache = await FileSystem.readJsonSafe(cachePath);
143
+ if (cache && cache.expiresAt > Date.now()) {
144
+ return cache;
145
+ }
146
+ return null;
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ /**
153
+ * Save usage data to cache
154
+ */
155
+ async function saveCache(data, projectDir) {
156
+ try {
157
+ const cachePath = join(projectDir, DINO_DIR_NAME, USAGE_CACHE_FILE);
158
+ const ttl = data.apiUnavailable ? CACHE_TTL_FAILURE_MS : CACHE_TTL_SUCCESS_MS;
159
+ const cache = {
160
+ data,
161
+ expiresAt: Date.now() + ttl,
162
+ };
163
+ await FileSystem.writeJson(cachePath, cache);
164
+ }
165
+ catch {
166
+ // Silently fail - caching is optional
167
+ }
168
+ }
169
+ /**
170
+ * Get usage data from Anthropic API with caching
171
+ *
172
+ * @param projectDir - Project directory for cache storage
173
+ * @returns Usage data with rate limit percentages
174
+ */
175
+ export async function getUsageFromApi(projectDir = process.cwd()) {
176
+ // Check cache first
177
+ const cached = await loadCache(projectDir);
178
+ if (cached) {
179
+ return cached.data;
180
+ }
181
+ // Read credentials
182
+ const credentials = await readCredentials();
183
+ const accessToken = getAccessToken(credentials);
184
+ if (!accessToken) {
185
+ const data = {
186
+ fiveHourPercent: null,
187
+ fiveHourResetsAt: null,
188
+ sevenDayPercent: null,
189
+ sevenDayResetsAt: null,
190
+ apiUnavailable: true,
191
+ error: 'No valid credentials',
192
+ };
193
+ await saveCache(data, projectDir);
194
+ return data;
195
+ }
196
+ // Fetch from API
197
+ const data = await fetchUsageApi(accessToken);
198
+ await saveCache(data, projectDir);
199
+ return data;
200
+ }
201
+ /**
202
+ * Format reset time to human-readable string
203
+ *
204
+ * @param resetsAt - ISO timestamp when usage resets
205
+ * @returns Human-readable duration (e.g., "2h 30m", "4h")
206
+ */
207
+ export function formatResetTime(resetsAt) {
208
+ if (!resetsAt) {
209
+ return '';
210
+ }
211
+ try {
212
+ const resetTime = new Date(resetsAt).getTime();
213
+ const now = Date.now();
214
+ const diffMs = resetTime - now;
215
+ if (diffMs <= 0) {
216
+ return '0m';
217
+ }
218
+ const hours = Math.floor(diffMs / (60 * 60 * 1000));
219
+ const minutes = Math.floor((diffMs % (60 * 60 * 1000)) / (60 * 1000));
220
+ if (hours > 0 && minutes > 0) {
221
+ return `${hours}h ${minutes}m`;
222
+ }
223
+ else if (hours > 0) {
224
+ return `${hours}h`;
225
+ }
226
+ else {
227
+ return `${minutes}m`;
228
+ }
229
+ }
230
+ catch {
231
+ return '';
232
+ }
233
+ }
234
+ /**
235
+ * Check if API usage data is available (has valid credentials and API response)
236
+ */
237
+ export function hasApiUsageData(data) {
238
+ return !data.apiUnavailable && data.fiveHourPercent !== null;
239
+ }
240
+ //# sourceMappingURL=usage-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-api.js","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAgD5D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,sCAAsC;AAC9E,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,0BAA0B;AAClE,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACxE,OAAO,MAAM,UAAU,CAAC,YAAY,CAAoB,eAAe,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAqC;IAC3D,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC;IAE7D,4BAA4B;IAC5B,IAAI,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,WAAW,EAAE;gBACxC,gBAAgB,EAAE,kBAAkB;gBACpC,YAAY,EAAE,eAAe;aAC9B;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;QAEF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzC,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,OAAO,CAAC;wBACN,eAAe,EAAE,IAAI;wBACrB,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,IAAI;wBACrB,gBAAgB,EAAE,IAAI;wBACtB,cAAc,EAAE,IAAI;wBACpB,KAAK,EAAE,QAAQ,GAAG,CAAC,UAAU,EAAE;qBAChC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;oBAEtD,OAAO,CAAC;wBACN,eAAe,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;wBAClE,gBAAgB,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,IAAI;wBACvD,eAAe,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;wBAClE,gBAAgB,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,IAAI;wBACvD,cAAc,EAAE,KAAK;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC;wBACN,eAAe,EAAE,IAAI;wBACrB,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,IAAI;wBACrB,gBAAgB,EAAE,IAAI;wBACtB,cAAc,EAAE,IAAI;wBACpB,KAAK,EAAE,aAAa;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC;gBACN,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,GAAG,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC;gBACN,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,UAAkB;IACzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,YAAY,CAAa,SAAS,CAAC,CAAC;QAEnE,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CACtB,IAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAE9E,MAAM,KAAK,GAAe;YACxB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;SAC5B,CAAC;QAEF,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,OAAO,CAAC,GAAG,EAAE;IAElC,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,GAAiB;YACzB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,sBAAsB;SAC9B,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IACjB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC;QAE/B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEtE,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;QACjC,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,KAAK,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;AAC/D,CAAC"}
@@ -5,6 +5,7 @@
5
5
  * Data is persisted in .dino/hud-usage.json.
6
6
  */
7
7
  import type { UsageTracking, UsageStats, HudLimitConfig, CostInfo, SubscriptionPlan } from './types.js';
8
+ import { type UsageApiData } from './usage-api.js';
8
9
  /**
9
10
  * Load usage tracking data from .dino/hud-usage.json
10
11
  */
@@ -19,8 +20,14 @@ export declare function saveUsageTracking(tracking: UsageTracking, projectDir?:
19
20
  export declare function trackUsage(cost: CostInfo | undefined, sessionId: string | undefined, projectDir?: string): Promise<UsageTracking>;
20
21
  /**
21
22
  * Calculate usage statistics from tracking data and session info
23
+ *
24
+ * @param tracking - Usage tracking data
25
+ * @param sessionStartTime - Session start time
26
+ * @param limits - HUD limit configuration
27
+ * @param plan - Subscription plan
28
+ * @param apiData - Optional API data (fetched separately for performance)
22
29
  */
23
- export declare function calculateUsageStats(tracking: UsageTracking, sessionStartTime: Date | undefined, limits: HudLimitConfig, plan: SubscriptionPlan): UsageStats;
30
+ export declare function calculateUsageStats(tracking: UsageTracking, sessionStartTime: Date | undefined, limits: HudLimitConfig, plan: SubscriptionPlan, apiData?: UsageApiData): UsageStats;
24
31
  /**
25
32
  * Format milliseconds as hours and minutes (e.g., "2:15")
26
33
  */
@@ -32,8 +39,9 @@ export declare function formatDuration(ms: number): string;
32
39
  export declare function formatSessionLimit(stats: UsageStats, _limitHours: number): string;
33
40
  /**
34
41
  * Format weekly usage display
42
+ * - For Max/Pro with API data: shows 7-day percentage and reset time (e.g., "67%/7d (7h)")
35
43
  * - For API users: shows weekly cost (e.g., "$12.50/wk")
36
- * - For Max/Pro: returns empty string (weekly limits are opaque, can't get accurate reset time)
44
+ * - Otherwise: returns empty string
37
45
  */
38
46
  export declare function formatWeeklyUsage(stats: UsageStats, plan: SubscriptionPlan): string;
39
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/hud/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAe,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAmBrH;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAalG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAqHD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,IAAI,GAAG,SAAS,EAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,gBAAgB,GACrB,UAAU,CAmGZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAMnF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,aAAa,GACtB;IAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAiBlE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC;IAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC,CAKlD"}
1
+ {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/hud/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAe,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACrH,OAAO,EAA2E,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAsB5H;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAalG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAqHD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,IAAI,GAAG,SAAS,EAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,UAAU,CAiIZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAgBnF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,aAAa,GACtB;IAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAiBlE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC;IAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC,CAKlD"}
@@ -7,9 +7,12 @@
7
7
  import { join } from 'path';
8
8
  import { FileSystem } from '../utils/file-system.js';
9
9
  import { DINO_DIR_NAME } from '../core/config/constants.js';
10
+ import { formatResetTime as formatApiResetTime, hasApiUsageData } from './usage-api.js';
10
11
  const USAGE_FILE = 'hud-usage.json';
11
12
  const FIVE_HOURS_MS = 5 * 60 * 60 * 1000;
12
13
  const ONE_WEEK_MS = 7 * 24 * 60 * 60 * 1000;
14
+ // Estimation fallback: 5 hours of API time as max (more conservative than old 2h)
15
+ const ESTIMATED_MAX_API_MS = 5 * 60 * 60 * 1000;
13
16
  /**
14
17
  * Default empty usage tracking data
15
18
  */
@@ -179,28 +182,44 @@ function calculateTotalCost(samples) {
179
182
  }
180
183
  /**
181
184
  * Calculate usage statistics from tracking data and session info
185
+ *
186
+ * @param tracking - Usage tracking data
187
+ * @param sessionStartTime - Session start time
188
+ * @param limits - HUD limit configuration
189
+ * @param plan - Subscription plan
190
+ * @param apiData - Optional API data (fetched separately for performance)
182
191
  */
183
- export function calculateUsageStats(tracking, sessionStartTime, limits, plan) {
192
+ export function calculateUsageStats(tracking, sessionStartTime, limits, plan, apiData) {
184
193
  const now = Date.now();
185
- // 5-hour rate limit calculation (based on actual API duration, not wall-clock time)
186
- // Estimated 5h API time allowance for Max plan
187
- // Note: This is a rough estimate. Claude Max allows ~2-3 hours of active API time
188
- // within a 5-hour rolling window before hitting rate limits.
189
- const maxFiveHourApiMs = 2 * 60 * 60 * 1000; // 2 hours
190
- // Prune and calculate 5-hour window
194
+ // Use API data when available, otherwise fall back to estimation
195
+ let fiveHourPercentage;
196
+ let fiveHourResetIn;
197
+ let sevenDayPercentage = null;
198
+ let sevenDayResetIn = null;
199
+ let fiveHourApiMs;
200
+ // Calculate API duration for tracking (always needed for fallback and display)
191
201
  const prunedHourlyWindow = tracking.hourlyWindow.filter(s => new Date(s.timestamp).getTime() > now - FIVE_HOURS_MS);
192
- // Use max-per-session calculation (values are cumulative, not incremental)
193
- const fiveHourApiMs = calculateTotalApiDuration(prunedHourlyWindow);
194
- const fiveHourPercentage = Math.min(100, Math.round((fiveHourApiMs / maxFiveHourApiMs) * 100));
195
- // Calculate time until oldest sample expires (for reset time display)
196
- let fiveHourResetIn = '';
197
- if (prunedHourlyWindow.length > 0) {
198
- // Sort by timestamp to find oldest
199
- const sorted = [...prunedHourlyWindow].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
200
- const oldestTimestamp = new Date(sorted[0].timestamp).getTime();
201
- const expiresInMs = (oldestTimestamp + FIVE_HOURS_MS) - now;
202
- if (expiresInMs > 0) {
203
- fiveHourResetIn = formatResetTime(expiresInMs);
202
+ fiveHourApiMs = calculateTotalApiDuration(prunedHourlyWindow);
203
+ if (apiData && hasApiUsageData(apiData)) {
204
+ // Use actual API data
205
+ fiveHourPercentage = apiData.fiveHourPercent ?? 0;
206
+ fiveHourResetIn = formatApiResetTime(apiData.fiveHourResetsAt);
207
+ sevenDayPercentage = apiData.sevenDayPercent;
208
+ sevenDayResetIn = formatApiResetTime(apiData.sevenDayResetsAt);
209
+ }
210
+ else {
211
+ // Fall back to estimation based on API duration
212
+ // Note: This is an estimate, actual rate limits are token-based
213
+ fiveHourPercentage = Math.min(100, Math.round((fiveHourApiMs / ESTIMATED_MAX_API_MS) * 100));
214
+ // Calculate time until oldest sample expires (for reset time display)
215
+ fiveHourResetIn = '';
216
+ if (prunedHourlyWindow.length > 0) {
217
+ const sorted = [...prunedHourlyWindow].sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
218
+ const oldestTimestamp = new Date(sorted[0].timestamp).getTime();
219
+ const expiresInMs = (oldestTimestamp + FIVE_HOURS_MS) - now;
220
+ if (expiresInMs > 0) {
221
+ fiveHourResetIn = formatResetTime(expiresInMs);
222
+ }
204
223
  }
205
224
  }
206
225
  // 5-hour status based on percentage
@@ -249,18 +268,38 @@ export function calculateUsageStats(tracking, sessionStartTime, limits, plan) {
249
268
  weeklyStatus = 'warning';
250
269
  }
251
270
  const weeklyResetIn = getTimeUntilWeeklyReset(tracking.weekResetDay);
271
+ // 7-day status based on percentage (only if API data available)
272
+ let sevenDayStatus = null;
273
+ if (sevenDayPercentage !== null) {
274
+ if (sevenDayPercentage >= 85) {
275
+ sevenDayStatus = 'critical';
276
+ }
277
+ else if (sevenDayPercentage >= 70) {
278
+ sevenDayStatus = 'warning';
279
+ }
280
+ else {
281
+ sevenDayStatus = 'good';
282
+ }
283
+ }
284
+ // Determine if we're using actual API data
285
+ const fiveHourFromApi = apiData !== undefined && hasApiUsageData(apiData);
252
286
  return {
253
- // 5-hour rate limit (new, correct display)
287
+ // 5-hour rate limit (from API or estimated)
254
288
  fiveHourApiMs,
255
289
  fiveHourPercentage,
256
290
  fiveHourResetIn,
257
291
  fiveHourStatus,
292
+ fiveHourFromApi,
293
+ // 7-day rate limit (from API only)
294
+ sevenDayPercentage,
295
+ sevenDayResetIn,
296
+ sevenDayStatus,
258
297
  // Legacy session fields (kept for compatibility)
259
298
  sessionElapsedMs,
260
299
  sessionLimitMs,
261
300
  sessionPercentage,
262
301
  sessionStatus,
263
- // Weekly
302
+ // Weekly (estimated, for API users)
264
303
  weeklyApiDurationMs,
265
304
  weeklyCostUsd,
266
305
  weeklyPercentage,
@@ -289,14 +328,23 @@ export function formatSessionLimit(stats, _limitHours) {
289
328
  }
290
329
  /**
291
330
  * Format weekly usage display
331
+ * - For Max/Pro with API data: shows 7-day percentage and reset time (e.g., "67%/7d (7h)")
292
332
  * - For API users: shows weekly cost (e.g., "$12.50/wk")
293
- * - For Max/Pro: returns empty string (weekly limits are opaque, can't get accurate reset time)
333
+ * - Otherwise: returns empty string
294
334
  */
295
335
  export function formatWeeklyUsage(stats, plan) {
336
+ // Use actual 7-day API data for Max/Pro/Team when available
337
+ if (stats.sevenDayPercentage !== null && plan !== 'API') {
338
+ if (stats.sevenDayResetIn) {
339
+ return `${stats.sevenDayPercentage}%/7d (${stats.sevenDayResetIn})`;
340
+ }
341
+ return `${stats.sevenDayPercentage}%/7d`;
342
+ }
343
+ // For API users, show cost
296
344
  if (plan === 'API') {
297
345
  return `$${stats.weeklyCostUsd.toFixed(2)}/wk`;
298
346
  }
299
- // For Max/Pro, don't show weekly info - limits are opaque and reset time is account-specific
347
+ // No weekly data available
300
348
  return '';
301
349
  }
302
350
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../src/hud/usage-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../src/hud/usage-tracker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC,CAwDD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3E"}
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC,CAwDD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3E"}
@@ -15,6 +15,7 @@ const DINO_GITIGNORE_PATTERNS = [
15
15
  '.dino/file-hashes.json',
16
16
  '.dino/structure.json',
17
17
  '.dino/session.md',
18
+ '.dino/usage-cache.json',
18
19
  '.dino/handoff*.md',
19
20
  '.dino/handoff/',
20
21
  '.dino/checkpoints/',
@@ -22,6 +23,8 @@ const DINO_GITIGNORE_PATTERNS = [
22
23
  '.dino/tasks/',
23
24
  '.dino/archive/',
24
25
  '.dino/research/',
26
+ '.dino/feedback/',
27
+ '.dino/playbooks/',
25
28
  '# Claude Code local settings (v9.2.1)',
26
29
  '.claude/settings.json',
27
30
  '.claude/settings.local.json',
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,uBAAuB,GAAG;IAC9B,2CAA2C;IAC3C,sBAAsB;IACtB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,uCAAuC;IACvC,uBAAuB;IACvB,6BAA6B;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IAKtD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAErD,2CAA2C;IAC3C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE5D,8EAA8E;IAC9E,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,0CAA0C;QAC1C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,kEAAkE;QAClE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;IAC7E,CAAC;IAED,0BAA0B;IAC1B,IAAI,UAAkB,CAAC;IACvB,IAAI,aAAa,EAAE,CAAC;QAClB,2DAA2D;QAC3D,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACzF,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,eAAe,CAAC,MAAM;QACrC,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7D,OAAO,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dino-spec",
3
- "version": "9.2.2",
3
+ "version": "9.3.1",
4
4
  "description": "Automatic context engineering for Claude Code",
5
5
  "type": "module",
6
6
  "exports": {