@sooneocean/claude-hud 0.7.0 → 0.8.0

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.
@@ -15,7 +15,9 @@
15
15
  "./commands/dashboard.md",
16
16
  "./commands/stats.md",
17
17
  "./commands/report.md",
18
- "./commands/update.md"
18
+ "./commands/update.md",
19
+ "./commands/preset.md",
20
+ "./commands/tag.md"
19
21
  ],
20
22
  "homepage": "https://github.com/jarrodwatts/claude-hud",
21
23
  "repository": "https://github.com/jarrodwatts/claude-hud",
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Manage HUD config presets (save, load, share)
3
+ allowed-tools: Bash, Read, Write, AskUserQuestion
4
+ ---
5
+
6
+ # Config Presets
7
+
8
+ ## Step 1: Choose Action
9
+
10
+ Use AskUserQuestion:
11
+ - header: "Config Presets"
12
+ - question: "What would you like to do?"
13
+ - options:
14
+ - "Save current config as preset" — Save with a name
15
+ - "Load a preset" — Apply a saved preset
16
+ - "List presets" — Show all saved presets
17
+ - "Delete a preset" — Remove a saved preset
18
+ - "Import preset from JSON" — Paste JSON to import
19
+
20
+ ## Save Flow
21
+ 1. Ask for preset name (AskUserQuestion, free text)
22
+ 2. Ask for description (AskUserQuestion, free text)
23
+ 3. Read current `~/.claude/plugins/claude-hud/config.json`
24
+ 4. Save to presets.json
25
+ 5. Confirm: "Preset '{name}' saved!"
26
+
27
+ ## Load Flow
28
+ 1. Read presets.json, list available presets
29
+ 2. AskUserQuestion with preset names as options
30
+ 3. Read selected preset, write to config.json (merge preserving schemaVersion)
31
+ 4. Confirm: "Preset '{name}' applied! HUD will update immediately."
32
+
33
+ ## List Flow
34
+ 1. Read presets.json, display each with name, description, created date
35
+
36
+ ## Delete Flow
37
+ 1. List presets, ask which to delete
38
+ 2. Confirm deletion
39
+ 3. Remove from presets.json
40
+
41
+ ## Import Flow
42
+ 1. AskUserQuestion for JSON input (free text)
43
+ 2. Parse and validate
44
+ 3. Save as new preset
@@ -37,6 +37,12 @@ Calculate statistics for the last 7 days and generate markdown:
37
37
  |-------|----------|---|
38
38
  | {model} | {count} | {pct}% |
39
39
 
40
+ ## By Tag
41
+ | Tag | Sessions | Tool Calls |
42
+ |-----|----------|------------|
43
+ | feature | 5 | 234 |
44
+ | bug | 3 | 89 |
45
+
40
46
  ## Session Details
41
47
  | # | Date | Duration | Model | Tools | Peak Ctx | Compacts |
42
48
  |---|------|----------|-------|-------|----------|----------|
@@ -0,0 +1,29 @@
1
+ ---
2
+ description: Tag the current session for categorization
3
+ allowed-tools: Read, Write, AskUserQuestion
4
+ ---
5
+
6
+ # Tag Session
7
+
8
+ ## Step 1: Choose Tags
9
+
10
+ Use AskUserQuestion:
11
+ - header: "Session Tags"
12
+ - question: "Add tags to this session (for weekly report grouping):"
13
+ - multiSelect: true
14
+ - options:
15
+ - "bug" — Bug fix session
16
+ - "feature" — New feature development
17
+ - "refactor" — Code refactoring
18
+ - "review" — Code review
19
+ - "debug" — Debugging session
20
+ - "docs" — Documentation
21
+ - "other" — Custom tag
22
+
23
+ If "other" selected, use AskUserQuestion for custom tag text.
24
+
25
+ ## Step 2: Apply Tags
26
+
27
+ Read `~/.claude/plugins/claude-hud/session-history.json`, add tags to the last entry, write back.
28
+
29
+ Confirm: "Tags added: {tags}. These will appear in your weekly report."
package/dist/alert.d.ts CHANGED
@@ -35,6 +35,7 @@ export declare function evaluateAlerts(input: EvaluateInput): Alert[];
35
35
  export declare function sendNotification(title: string, message: string): void;
36
36
  export declare function shouldBell(alerts: Alert[], cacheDir: string): boolean;
37
37
  export declare function predictRateLimitHit(currentUsagePercent: number, resetAt: Date | null, sessionDurationMins: number): string | null;
38
+ export declare function sendWebhook(url: string, alert: Alert): void;
38
39
  export declare function runAlertHook(hook: string, alert: Alert): void;
39
40
  export {};
40
41
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErE;AAED,UAAU,WAAW;IACnB,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;IACvF,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;IACvF,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;CAC7D;AAED,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,EAAE,CAyB5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUrE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAarE;AAID,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAW7D"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErE;AAED,UAAU,WAAW;IACnB,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;IACvF,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;IACvF,OAAO,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;CAC7D;AAED,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,EAAE,CAyB5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUrE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAarE;AAID,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAqB3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAW7D"}
package/dist/alert.js CHANGED
@@ -91,6 +91,30 @@ export function predictRateLimitHit(currentUsagePercent, resetAt, sessionDuratio
91
91
  const mins = minsUntilLimit % 60;
92
92
  return `~${hours}h ${mins}m`;
93
93
  }
94
+ export function sendWebhook(url, alert) {
95
+ try {
96
+ const payload = JSON.stringify({
97
+ type: alert.type,
98
+ message: alert.message,
99
+ timestamp: new Date().toISOString(),
100
+ source: 'claude-hud',
101
+ });
102
+ // Fire and forget — don't block HUD rendering
103
+ fetch(url, {
104
+ method: 'POST',
105
+ headers: { 'Content-Type': 'application/json' },
106
+ body: payload,
107
+ signal: AbortSignal.timeout(3000),
108
+ }).catch(() => {
109
+ if (DEBUG)
110
+ console.error('[claude-hud:alert] webhook failed');
111
+ });
112
+ }
113
+ catch {
114
+ if (DEBUG)
115
+ console.error('[claude-hud:alert] webhook error');
116
+ }
117
+ }
94
118
  export function runAlertHook(hook, alert) {
95
119
  try {
96
120
  const env = {
package/dist/alert.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAQ1C,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,QAAgB;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,OAAO,GAAG,SAAS,CAAsB,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,4FAA4F;QAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7C,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,SAAS,CAAsB,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAkBD,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACvH,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,uBAAuB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,cAAc,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrI,CAAC;SAAM,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,uBAAuB,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,cAAc,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpI,CAAC;IAED,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,cAAc,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpI,CAAC;SAAM,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,cAAc,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnI,CAAC;IAED,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,cAAc,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAe;IAC7D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO;IAE1C,IAAI,CAAC;QACH,QAAQ,CAAC,WAAW,EAAE;YACpB,IAAI,EAAE,yBAAyB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG;SAC1G,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,QAAgB;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,MAAM,SAAS,GAAG,SAAS,CAAW,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3F,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;AAErF,MAAM,UAAU,mBAAmB,CACjC,mBAA2B,EAC3B,OAAoB,EACpB,mBAA2B;IAE3B,IAAI,mBAAmB,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,mBAAmB,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IAEjD,wBAAwB;IACxB,MAAM,WAAW,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;IAC9D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,GAAG,GAAG,mBAAmB,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IAE3D,IAAI,cAAc,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,+BAA+B;IAEtE,IAAI,cAAc,GAAG,EAAE;QAAE,OAAO,IAAI,cAAc,GAAG,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,cAAc,GAAG,EAAE,CAAC;IACjC,OAAO,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAY;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG;YACd,qBAAqB,EAAE,KAAK,CAAC,IAAI;YACjC,wBAAwB,EAAE,KAAK,CAAC,OAAO;SACxC,CAAC;QACF,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -89,6 +89,7 @@ export interface HudConfig {
89
89
  actions: AlertAction;
90
90
  };
91
91
  hook?: string;
92
+ webhook?: string;
92
93
  };
93
94
  locale: Locale;
94
95
  schemaVersion: number;
@@ -97,5 +98,5 @@ export declare const DEFAULT_CONFIG: HudConfig;
97
98
  export declare function getConfigPath(): string;
98
99
  export declare function mergeConfig(userConfig: Partial<HudConfig>): HudConfig;
99
100
  export declare function validateConfigWithWarnings(userConfig: Record<string, unknown>): string[];
100
- export declare function loadConfig(): Promise<HudConfig>;
101
+ export declare function loadConfig(cwd?: string): Promise<HudConfig>;
101
102
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -358,6 +358,7 @@ export function mergeConfig(userConfig) {
358
358
  actions: mergeAlertActions(migrated.alerts?.usage7d?.actions, DEFAULT_CONFIG.alerts.usage7d.actions),
359
359
  },
360
360
  hook: typeof migrated.alerts?.hook === 'string' ? migrated.alerts.hook : undefined,
361
+ webhook: typeof migrated.alerts?.webhook === 'string' ? migrated.alerts.webhook : undefined,
361
362
  };
362
363
  const locale = (migrated.locale === 'en' || migrated.locale === 'zh' || migrated.locale === 'ja')
363
364
  ? migrated.locale
@@ -404,25 +405,44 @@ export function validateConfigWithWarnings(userConfig) {
404
405
  }
405
406
  return warnings;
406
407
  }
407
- export async function loadConfig() {
408
+ export async function loadConfig(cwd) {
408
409
  const configPath = getConfigPath();
409
410
  const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
410
- try {
411
- if (!fs.existsSync(configPath)) {
412
- return DEFAULT_CONFIG;
413
- }
414
- const content = fs.readFileSync(configPath, 'utf-8');
415
- const userConfig = JSON.parse(content);
416
- const warnings = validateConfigWithWarnings(userConfig);
417
- if (DEBUG && warnings.length > 0) {
418
- for (const w of warnings) {
419
- console.error(`[claude-hud:config] ${w}`);
411
+ let projectConfig = {};
412
+ let userConfig = {};
413
+ // 1. Read project-level config (.claude-hud.json in project root)
414
+ if (cwd) {
415
+ try {
416
+ const projectPath = path.join(cwd, '.claude-hud.json');
417
+ if (fs.existsSync(projectPath)) {
418
+ projectConfig = JSON.parse(fs.readFileSync(projectPath, 'utf-8'));
419
+ if (DEBUG)
420
+ console.error('[claude-hud:config] loaded project config from .claude-hud.json');
420
421
  }
421
422
  }
422
- return mergeConfig(userConfig);
423
+ catch {
424
+ if (DEBUG)
425
+ console.error('[claude-hud:config] error reading .claude-hud.json');
426
+ }
427
+ }
428
+ // 2. Read user config (existing logic)
429
+ try {
430
+ if (fs.existsSync(configPath)) {
431
+ const content = fs.readFileSync(configPath, 'utf-8');
432
+ userConfig = JSON.parse(content);
433
+ }
423
434
  }
424
435
  catch {
425
- return DEFAULT_CONFIG;
436
+ // ignore
437
+ }
438
+ // 3. Merge: defaults <- project <- user (user overrides project)
439
+ const merged = { ...projectConfig, ...userConfig };
440
+ const warnings = validateConfigWithWarnings(merged);
441
+ if (DEBUG && warnings.length > 0) {
442
+ for (const w of warnings) {
443
+ console.error(`[claude-hud:config] ⚠ ${w}`);
444
+ }
426
445
  }
446
+ return mergeConfig(merged);
427
447
  }
428
448
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { render } from './render/index.js';
4
4
  import { countConfigs } from './config-reader.js';
5
5
  import { getGitStatus } from './git.js';
6
6
  import { getUsage } from './usage-api.js';
7
- import { loadConfig } from './config.js';
7
+ import type { HudConfig } from './config.js';
8
8
  import { parseExtraCmdArg, runExtraCmd } from './extra-cmd.js';
9
9
  export type MainDeps = {
10
10
  readStdin: typeof readStdin;
@@ -12,7 +12,7 @@ export type MainDeps = {
12
12
  countConfigs: typeof countConfigs;
13
13
  getGitStatus: typeof getGitStatus;
14
14
  getUsage: typeof getUsage;
15
- loadConfig: typeof loadConfig;
15
+ loadConfig: (cwd?: string) => Promise<HudConfig>;
16
16
  parseExtraCmdArg: typeof parseExtraCmdArg;
17
17
  runExtraCmd: typeof runExtraCmd;
18
18
  render: typeof render;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB/D,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnC,CAAC;AAOF,wBAAsB,IAAI,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoP3E;AAED,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,GAAE,MAAM,MAAyB,GAAG,MAAM,CAcvG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB/D,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnC,CAAC;AAOF,wBAAsB,IAAI,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgQ3E;AAED,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,GAAE,MAAM,MAAyB,GAAG,MAAM,CAcvG"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import { fileURLToPath } from 'node:url';
10
10
  import { realpathSync } from 'node:fs';
11
11
  import { getDefaultCacheDir, readCache, writeCache, readLatency, writeLatency } from './cache.js';
12
12
  import { loadProviders, fetchAllProviders } from './providers/index.js';
13
- import { evaluateAlerts, shouldBell, sendNotification, recordAlertHistory, runAlertHook, predictRateLimitHit } from './alert.js';
13
+ import { evaluateAlerts, shouldBell, sendNotification, recordAlertHistory, runAlertHook, predictRateLimitHit, sendWebhook } from './alert.js';
14
14
  import { calculateBurnRate, recordTokenSnapshot } from './burn-rate.js';
15
15
  import { updateSessionStats, getSessionStats, getSparkline, updatePromptStats, updateAgentStats } from './session-stats.js';
16
16
  import { getTerminalWidth } from './utils/terminal.js';
@@ -24,6 +24,7 @@ import { loadCustomWidgets } from './custom-widgets.js';
24
24
  import { updateTokenAnalytics } from './token-analytics.js';
25
25
  import { getSuggestions } from './suggestions.js';
26
26
  import { autoTuneConfig } from './auto-tune.js';
27
+ import { shouldDegrade, recordExecutionTime } from './perf-guard.js';
27
28
  function timer() {
28
29
  const start = Date.now();
29
30
  return () => Date.now() - start;
@@ -31,13 +32,14 @@ function timer() {
31
32
  export async function main(overrides = {}) {
32
33
  const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
33
34
  const tTotal = timer();
35
+ const perfStart = Date.now();
34
36
  const deps = {
35
37
  readStdin,
36
38
  parseTranscript,
37
39
  countConfigs,
38
40
  getGitStatus,
39
41
  getUsage,
40
- loadConfig,
42
+ loadConfig: (cwd) => loadConfig(cwd),
41
43
  parseExtraCmdArg,
42
44
  runExtraCmd,
43
45
  render,
@@ -67,8 +69,11 @@ export async function main(overrides = {}) {
67
69
  console.error(`[claude-hud:timing] parseTranscript: ${t2()}ms`);
68
70
  const { claudeMdCount, rulesCount, mcpCount, hooksCount } = await deps.countConfigs(stdin.cwd);
69
71
  const cacheDir = getDefaultCacheDir();
72
+ const degradeMode = shouldDegrade(cacheDir);
73
+ if (DEBUG && degradeMode)
74
+ console.error('[claude-hud:perf] running in degrade mode');
70
75
  const t3 = timer();
71
- let config = await deps.loadConfig();
76
+ let config = await deps.loadConfig(stdin.cwd);
72
77
  if (DEBUG)
73
78
  console.error(`[claude-hud:timing] loadConfig: ${t3()}ms`);
74
79
  config = autoTuneConfig(config, getTerminalWidth(), cacheDir);
@@ -98,15 +103,15 @@ export async function main(overrides = {}) {
98
103
  const extraCmd = deps.parseExtraCmdArg();
99
104
  const extraLabel = extraCmd ? await deps.runExtraCmd(extraCmd) : null;
100
105
  const sessionDuration = formatSessionDuration(transcript.sessionStart, deps.now);
101
- // Framework providers
106
+ // Framework providers — skip if degrading
102
107
  let frameworkStatus = [];
103
- if (config.display.showFrameworks) {
108
+ if (config.display.showFrameworks && !degradeMode) {
104
109
  const providers = loadProviders(config.frameworks, cacheDir);
105
110
  frameworkStatus = await fetchAllProviders(providers);
106
111
  }
107
- // Token analytics (data collection only, no HUD display)
112
+ // Token analytics (data collection only, no HUD display) — skip if degrading
108
113
  const inputTokens = stdin.context_window?.current_usage?.input_tokens;
109
- if (inputTokens) {
114
+ if (inputTokens && !degradeMode) {
110
115
  updateTokenAnalytics(inputTokens, transcript.tools, cacheDir);
111
116
  }
112
117
  // Prompt length tracking — measure token deltas between invocations
@@ -171,6 +176,11 @@ export async function main(overrides = {}) {
171
176
  runAlertHook(config.alerts.hook, alert);
172
177
  }
173
178
  }
179
+ if (config.alerts.webhook) {
180
+ for (const alert of alerts.filter(a => a.type.includes('critical'))) {
181
+ sendWebhook(config.alerts.webhook, alert);
182
+ }
183
+ }
174
184
  }
175
185
  // Rate limit prediction
176
186
  const sessionMins = transcript.sessionStart
@@ -244,6 +254,7 @@ export async function main(overrides = {}) {
244
254
  console.error(`[claude-hud:timing] render: ${t6()}ms`);
245
255
  if (DEBUG)
246
256
  console.error(`[claude-hud:timing] total: ${tTotal()}ms`);
257
+ recordExecutionTime(Date.now() - perfStart, cacheDir);
247
258
  }
248
259
  catch (error) {
249
260
  deps.log('[claude-hud] Error:', error instanceof Error ? error.message : 'Unknown error');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function shouldDegrade(cacheDir: string): boolean;
2
+ export declare function recordExecutionTime(ms: number, cacheDir: string): void;
3
+ //# sourceMappingURL=perf-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-guard.d.ts","sourceRoot":"","sources":["../src/perf-guard.ts"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAyBtE"}
@@ -0,0 +1,33 @@
1
+ import { readCache, writeCache } from './cache.js';
2
+ const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
3
+ const PERF_KEY = 'perf-history';
4
+ const TTL = 24 * 60 * 60 * 1000;
5
+ const BUDGET_MS = 250; // Leave 50ms margin from 300ms
6
+ export function shouldDegrade(cacheDir) {
7
+ const history = readCache(PERF_KEY, TTL, cacheDir);
8
+ return history?.degradeMode ?? false;
9
+ }
10
+ export function recordExecutionTime(ms, cacheDir) {
11
+ const history = readCache(PERF_KEY, TTL, cacheDir) ?? {
12
+ recentTimes: [],
13
+ degradeMode: false,
14
+ };
15
+ history.recentTimes.push(ms);
16
+ if (history.recentTimes.length > 10)
17
+ history.recentTimes.shift();
18
+ // Check if average of last 5 exceeds budget
19
+ const recent5 = history.recentTimes.slice(-5);
20
+ if (recent5.length >= 5) {
21
+ const avg = recent5.reduce((a, b) => a + b, 0) / recent5.length;
22
+ const wasDegrade = history.degradeMode;
23
+ history.degradeMode = avg > BUDGET_MS;
24
+ if (history.degradeMode && !wasDegrade && DEBUG) {
25
+ console.error(`[claude-hud:perf] degrading — avg ${Math.round(avg)}ms > ${BUDGET_MS}ms budget`);
26
+ }
27
+ if (!history.degradeMode && wasDegrade && DEBUG) {
28
+ console.error(`[claude-hud:perf] recovered — avg ${Math.round(avg)}ms`);
29
+ }
30
+ }
31
+ writeCache(PERF_KEY, history, cacheDir);
32
+ }
33
+ //# sourceMappingURL=perf-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-guard.js","sourceRoot":"","sources":["../src/perf-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;AACrF,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,+BAA+B;AAOtD,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,OAAO,GAAG,SAAS,CAAc,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChE,OAAO,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,QAAgB;IAC9D,MAAM,OAAO,GAAG,SAAS,CAAc,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI;QACjE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAEjE,4CAA4C;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,OAAO,CAAC,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;QAEtC,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,SAAS,WAAW,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { HudConfig } from './config.js';
2
+ interface Preset {
3
+ name: string;
4
+ description: string;
5
+ config: Partial<HudConfig>;
6
+ createdAt: string;
7
+ }
8
+ export declare function loadPresets(): Preset[];
9
+ export declare function savePreset(name: string, description: string, config: Partial<HudConfig>): void;
10
+ export declare function getPreset(name: string): Preset | undefined;
11
+ export declare function deletePreset(name: string): boolean;
12
+ export declare function exportPresetAsJson(preset: Preset): string;
13
+ export {};
14
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAMtC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAW9F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,47 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
4
+ function getPresetsPath() {
5
+ const configDir = process.env.CLAUDE_CONFIG_DIR || path.join(process.env.HOME || '', '.claude');
6
+ return path.join(configDir, 'plugins', 'claude-hud', 'presets.json');
7
+ }
8
+ export function loadPresets() {
9
+ try {
10
+ return JSON.parse(fs.readFileSync(getPresetsPath(), 'utf-8'));
11
+ }
12
+ catch {
13
+ return [];
14
+ }
15
+ }
16
+ export function savePreset(name, description, config) {
17
+ const presets = loadPresets();
18
+ const existing = presets.findIndex(p => p.name === name);
19
+ const preset = { name, description, config, createdAt: new Date().toISOString() };
20
+ if (existing >= 0)
21
+ presets[existing] = preset;
22
+ else
23
+ presets.push(preset);
24
+ const dir = path.dirname(getPresetsPath());
25
+ fs.mkdirSync(dir, { recursive: true });
26
+ fs.writeFileSync(getPresetsPath(), JSON.stringify(presets, null, 2));
27
+ if (DEBUG)
28
+ console.error(`[claude-hud:presets] saved preset "${name}"`);
29
+ }
30
+ export function getPreset(name) {
31
+ return loadPresets().find(p => p.name === name);
32
+ }
33
+ export function deletePreset(name) {
34
+ const presets = loadPresets();
35
+ const idx = presets.findIndex(p => p.name === name);
36
+ if (idx < 0)
37
+ return false;
38
+ presets.splice(idx, 1);
39
+ fs.writeFileSync(getPresetsPath(), JSON.stringify(presets, null, 2));
40
+ if (DEBUG)
41
+ console.error(`[claude-hud:presets] deleted preset "${name}"`);
42
+ return true;
43
+ }
44
+ export function exportPresetAsJson(preset) {
45
+ return JSON.stringify(preset, null, 2);
46
+ }
47
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,13 @@ export interface SessionRecord {
7
7
  autocompactCount: number;
8
8
  totalToolCalls: number;
9
9
  totalAgentRuns: number;
10
+ tags?: string[];
10
11
  }
11
12
  export declare function loadHistory(): SessionRecord[];
12
13
  export declare function saveCurrentSession(record: Omit<SessionRecord, 'endTime'>): void;
13
14
  export declare function getLastSession(): SessionRecord | null;
15
+ export declare function tagCurrentSession(tags: string[], _cacheDir: string): void;
16
+ export declare function getSessionsByTag(tag: string): SessionRecord[];
14
17
  export declare function formatSessionSummary(record: SessionRecord): string;
15
18
  export interface SessionComparison {
16
19
  durationDelta: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../src/session-history.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAOD,wBAAgB,WAAW,IAAI,aAAa,EAAE,CAQ7C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,IAAI,CAoB/E;AAED,wBAAgB,cAAc,IAAI,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAElE;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAClE,SAAS,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAe1B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,eAAe,IAAI,eAAe,CAgBjD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,IAAI,aAAa,GAAG,IAAI,CAuC5D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../src/session-history.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAOD,wBAAgB,WAAW,IAAI,aAAa,EAAE,CAQ7C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,IAAI,CAoB/E;AAED,wBAAgB,cAAc,IAAI,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAYzE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAE7D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAElE;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAClE,SAAS,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAe1B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,eAAe,IAAI,eAAe,CAgBjD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,IAAI,aAAa,GAAG,IAAI,CAuC5D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAOlE"}
@@ -40,6 +40,22 @@ export function getLastSession() {
40
40
  // Return the second-to-last (last completed session, not current)
41
41
  return history.length >= 2 ? history[history.length - 2] : null;
42
42
  }
43
+ export function tagCurrentSession(tags, _cacheDir) {
44
+ const history = loadHistory();
45
+ if (history.length === 0)
46
+ return;
47
+ // Tag the most recent session
48
+ const last = history[history.length - 1];
49
+ last.tags = [...new Set([...(last.tags || []), ...tags])];
50
+ const dir = path.dirname(getHistoryPath());
51
+ fs.mkdirSync(dir, { recursive: true });
52
+ fs.writeFileSync(getHistoryPath(), JSON.stringify(history, null, 2));
53
+ if (DEBUG)
54
+ console.error(`[claude-hud:session-history] tagged session with: ${tags.join(', ')}`);
55
+ }
56
+ export function getSessionsByTag(tag) {
57
+ return loadHistory().filter(s => s.tags?.includes(tag));
58
+ }
43
59
  export function formatSessionSummary(record) {
44
60
  return `Last: ${record.model} ${record.duration} | ${record.peakContextPercent}% peak | ${record.totalToolCalls} tools | ${record.autocompactCount} compacts`;
45
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-history.js","sourceRoot":"","sources":["../src/session-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-history.js","sourceRoot":"","sources":["../src/session-history.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sooneocean/claude-hud",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Enhanced real-time statusline HUD for Claude Code — with cache, alerts, frameworks, themes, and Dashboard Rich visuals",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/alert.ts CHANGED
@@ -129,6 +129,29 @@ export function predictRateLimitHit(
129
129
  return `~${hours}h ${mins}m`;
130
130
  }
131
131
 
132
+ export function sendWebhook(url: string, alert: Alert): void {
133
+ try {
134
+ const payload = JSON.stringify({
135
+ type: alert.type,
136
+ message: alert.message,
137
+ timestamp: new Date().toISOString(),
138
+ source: 'claude-hud',
139
+ });
140
+
141
+ // Fire and forget — don't block HUD rendering
142
+ fetch(url, {
143
+ method: 'POST',
144
+ headers: { 'Content-Type': 'application/json' },
145
+ body: payload,
146
+ signal: AbortSignal.timeout(3000),
147
+ }).catch(() => {
148
+ if (DEBUG) console.error('[claude-hud:alert] webhook failed');
149
+ });
150
+ } catch {
151
+ if (DEBUG) console.error('[claude-hud:alert] webhook error');
152
+ }
153
+ }
154
+
132
155
  export function runAlertHook(hook: string, alert: Alert): void {
133
156
  try {
134
157
  const env = {
package/src/config.ts CHANGED
@@ -94,7 +94,8 @@ export interface HudConfig {
94
94
  context: { warningThreshold: number; criticalThreshold: number; actions: AlertAction };
95
95
  usage5h: { warningThreshold: number; criticalThreshold: number; actions: AlertAction };
96
96
  usage7d: { warningThreshold: number; actions: AlertAction };
97
- hook?: string; // shell command to run on any alert trigger
97
+ hook?: string; // shell command to run on any alert trigger
98
+ webhook?: string; // URL to POST alert data as JSON
98
99
  };
99
100
  locale: Locale;
100
101
  schemaVersion: number;
@@ -501,6 +502,7 @@ export function mergeConfig(userConfig: Partial<HudConfig>): HudConfig {
501
502
  actions: mergeAlertActions(migrated.alerts?.usage7d?.actions, DEFAULT_CONFIG.alerts.usage7d.actions),
502
503
  },
503
504
  hook: typeof migrated.alerts?.hook === 'string' ? migrated.alerts.hook : undefined,
505
+ webhook: typeof migrated.alerts?.webhook === 'string' ? migrated.alerts.webhook : undefined,
504
506
  };
505
507
 
506
508
  const locale = (migrated.locale === 'en' || migrated.locale === 'zh' || migrated.locale === 'ja')
@@ -557,27 +559,45 @@ export function validateConfigWithWarnings(userConfig: Record<string, unknown>):
557
559
  return warnings;
558
560
  }
559
561
 
560
- export async function loadConfig(): Promise<HudConfig> {
562
+ export async function loadConfig(cwd?: string): Promise<HudConfig> {
561
563
  const configPath = getConfigPath();
562
564
  const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
563
565
 
564
- try {
565
- if (!fs.existsSync(configPath)) {
566
- return DEFAULT_CONFIG;
567
- }
568
-
569
- const content = fs.readFileSync(configPath, 'utf-8');
570
- const userConfig = JSON.parse(content) as Partial<HudConfig>;
566
+ let projectConfig: Partial<HudConfig> = {};
567
+ let userConfig: Partial<HudConfig> = {};
571
568
 
572
- const warnings = validateConfigWithWarnings(userConfig as Record<string, unknown>);
573
- if (DEBUG && warnings.length > 0) {
574
- for (const w of warnings) {
575
- console.error(`[claude-hud:config] ⚠ ${w}`);
569
+ // 1. Read project-level config (.claude-hud.json in project root)
570
+ if (cwd) {
571
+ try {
572
+ const projectPath = path.join(cwd, '.claude-hud.json');
573
+ if (fs.existsSync(projectPath)) {
574
+ projectConfig = JSON.parse(fs.readFileSync(projectPath, 'utf-8'));
575
+ if (DEBUG) console.error('[claude-hud:config] loaded project config from .claude-hud.json');
576
576
  }
577
+ } catch {
578
+ if (DEBUG) console.error('[claude-hud:config] error reading .claude-hud.json');
577
579
  }
580
+ }
578
581
 
579
- return mergeConfig(userConfig);
582
+ // 2. Read user config (existing logic)
583
+ try {
584
+ if (fs.existsSync(configPath)) {
585
+ const content = fs.readFileSync(configPath, 'utf-8');
586
+ userConfig = JSON.parse(content) as Partial<HudConfig>;
587
+ }
580
588
  } catch {
581
- return DEFAULT_CONFIG;
589
+ // ignore
582
590
  }
591
+
592
+ // 3. Merge: defaults <- project <- user (user overrides project)
593
+ const merged = { ...projectConfig, ...userConfig };
594
+
595
+ const warnings = validateConfigWithWarnings(merged as Record<string, unknown>);
596
+ if (DEBUG && warnings.length > 0) {
597
+ for (const w of warnings) {
598
+ console.error(`[claude-hud:config] ⚠ ${w}`);
599
+ }
600
+ }
601
+
602
+ return mergeConfig(merged);
583
603
  }
package/src/index.ts CHANGED
@@ -5,13 +5,14 @@ import { countConfigs } from './config-reader.js';
5
5
  import { getGitStatus } from './git.js';
6
6
  import { getUsage } from './usage-api.js';
7
7
  import { loadConfig } from './config.js';
8
+ import type { HudConfig } from './config.js';
8
9
  import { parseExtraCmdArg, runExtraCmd } from './extra-cmd.js';
9
10
  import type { RenderContext } from './types.js';
10
11
  import { fileURLToPath } from 'node:url';
11
12
  import { realpathSync } from 'node:fs';
12
13
  import { getDefaultCacheDir, readCache, writeCache, readLatency, writeLatency } from './cache.js';
13
14
  import { loadProviders, fetchAllProviders } from './providers/index.js';
14
- import { evaluateAlerts, shouldBell, sendNotification, recordAlertHistory, runAlertHook, predictRateLimitHit } from './alert.js';
15
+ import { evaluateAlerts, shouldBell, sendNotification, recordAlertHistory, runAlertHook, predictRateLimitHit, sendWebhook } from './alert.js';
15
16
  import { calculateBurnRate, recordTokenSnapshot } from './burn-rate.js';
16
17
  import { updateSessionStats, getSessionStats, getSparkline, updatePromptStats, updateAgentStats } from './session-stats.js';
17
18
  import { getTerminalWidth } from './utils/terminal.js';
@@ -25,6 +26,7 @@ import { loadCustomWidgets } from './custom-widgets.js';
25
26
  import { updateTokenAnalytics } from './token-analytics.js';
26
27
  import { getSuggestions } from './suggestions.js';
27
28
  import { autoTuneConfig } from './auto-tune.js';
29
+ import { shouldDegrade, recordExecutionTime } from './perf-guard.js';
28
30
 
29
31
  export type MainDeps = {
30
32
  readStdin: typeof readStdin;
@@ -32,7 +34,7 @@ export type MainDeps = {
32
34
  countConfigs: typeof countConfigs;
33
35
  getGitStatus: typeof getGitStatus;
34
36
  getUsage: typeof getUsage;
35
- loadConfig: typeof loadConfig;
37
+ loadConfig: (cwd?: string) => Promise<HudConfig>;
36
38
  parseExtraCmdArg: typeof parseExtraCmdArg;
37
39
  runExtraCmd: typeof runExtraCmd;
38
40
  render: typeof render;
@@ -48,6 +50,7 @@ function timer() {
48
50
  export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
49
51
  const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
50
52
  const tTotal = timer();
53
+ const perfStart = Date.now();
51
54
 
52
55
  const deps: MainDeps = {
53
56
  readStdin,
@@ -55,7 +58,7 @@ export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
55
58
  countConfigs,
56
59
  getGitStatus,
57
60
  getUsage,
58
- loadConfig,
61
+ loadConfig: (cwd?: string) => loadConfig(cwd),
59
62
  parseExtraCmdArg,
60
63
  runExtraCmd,
61
64
  render,
@@ -89,8 +92,11 @@ export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
89
92
 
90
93
  const cacheDir = getDefaultCacheDir();
91
94
 
95
+ const degradeMode = shouldDegrade(cacheDir);
96
+ if (DEBUG && degradeMode) console.error('[claude-hud:perf] running in degrade mode');
97
+
92
98
  const t3 = timer();
93
- let config = await deps.loadConfig();
99
+ let config = await deps.loadConfig(stdin.cwd);
94
100
  if (DEBUG) console.error(`[claude-hud:timing] loadConfig: ${t3()}ms`);
95
101
  config = autoTuneConfig(config, getTerminalWidth(), cacheDir);
96
102
  const t4 = timer();
@@ -121,16 +127,16 @@ export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
121
127
 
122
128
  const sessionDuration = formatSessionDuration(transcript.sessionStart, deps.now);
123
129
 
124
- // Framework providers
130
+ // Framework providers — skip if degrading
125
131
  let frameworkStatus: RenderContext['frameworkStatus'] = [];
126
- if (config.display.showFrameworks) {
132
+ if (config.display.showFrameworks && !degradeMode) {
127
133
  const providers = loadProviders(config.frameworks, cacheDir);
128
134
  frameworkStatus = await fetchAllProviders(providers);
129
135
  }
130
136
 
131
- // Token analytics (data collection only, no HUD display)
137
+ // Token analytics (data collection only, no HUD display) — skip if degrading
132
138
  const inputTokens = stdin.context_window?.current_usage?.input_tokens;
133
- if (inputTokens) {
139
+ if (inputTokens && !degradeMode) {
134
140
  updateTokenAnalytics(inputTokens, transcript.tools, cacheDir);
135
141
  }
136
142
 
@@ -203,6 +209,12 @@ export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
203
209
  runAlertHook(config.alerts.hook as string, alert);
204
210
  }
205
211
  }
212
+
213
+ if (config.alerts.webhook) {
214
+ for (const alert of alerts.filter(a => a.type.includes('critical'))) {
215
+ sendWebhook(config.alerts.webhook, alert);
216
+ }
217
+ }
206
218
  }
207
219
 
208
220
  // Rate limit prediction
@@ -286,6 +298,8 @@ export async function main(overrides: Partial<MainDeps> = {}): Promise<void> {
286
298
  deps.render(ctx);
287
299
  if (DEBUG) console.error(`[claude-hud:timing] render: ${t6()}ms`);
288
300
  if (DEBUG) console.error(`[claude-hud:timing] total: ${tTotal()}ms`);
301
+
302
+ recordExecutionTime(Date.now() - perfStart, cacheDir);
289
303
  } catch (error) {
290
304
  deps.log('[claude-hud] Error:', error instanceof Error ? error.message : 'Unknown error');
291
305
  }
@@ -0,0 +1,43 @@
1
+ import { readCache, writeCache } from './cache.js';
2
+
3
+ const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
4
+ const PERF_KEY = 'perf-history';
5
+ const TTL = 24 * 60 * 60 * 1000;
6
+ const BUDGET_MS = 250; // Leave 50ms margin from 300ms
7
+
8
+ interface PerfHistory {
9
+ recentTimes: number[]; // last 10 execution times
10
+ degradeMode: boolean;
11
+ }
12
+
13
+ export function shouldDegrade(cacheDir: string): boolean {
14
+ const history = readCache<PerfHistory>(PERF_KEY, TTL, cacheDir);
15
+ return history?.degradeMode ?? false;
16
+ }
17
+
18
+ export function recordExecutionTime(ms: number, cacheDir: string): void {
19
+ const history = readCache<PerfHistory>(PERF_KEY, TTL, cacheDir) ?? {
20
+ recentTimes: [],
21
+ degradeMode: false,
22
+ };
23
+
24
+ history.recentTimes.push(ms);
25
+ if (history.recentTimes.length > 10) history.recentTimes.shift();
26
+
27
+ // Check if average of last 5 exceeds budget
28
+ const recent5 = history.recentTimes.slice(-5);
29
+ if (recent5.length >= 5) {
30
+ const avg = recent5.reduce((a, b) => a + b, 0) / recent5.length;
31
+ const wasDegrade = history.degradeMode;
32
+ history.degradeMode = avg > BUDGET_MS;
33
+
34
+ if (history.degradeMode && !wasDegrade && DEBUG) {
35
+ console.error(`[claude-hud:perf] degrading — avg ${Math.round(avg)}ms > ${BUDGET_MS}ms budget`);
36
+ }
37
+ if (!history.degradeMode && wasDegrade && DEBUG) {
38
+ console.error(`[claude-hud:perf] recovered — avg ${Math.round(avg)}ms`);
39
+ }
40
+ }
41
+
42
+ writeCache(PERF_KEY, history, cacheDir);
43
+ }
package/src/presets.ts ADDED
@@ -0,0 +1,56 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import type { HudConfig } from './config.js';
4
+
5
+ const DEBUG = process.env.DEBUG?.includes('claude-hud') || process.env.DEBUG === '*';
6
+
7
+ interface Preset {
8
+ name: string;
9
+ description: string;
10
+ config: Partial<HudConfig>;
11
+ createdAt: string;
12
+ }
13
+
14
+ function getPresetsPath(): string {
15
+ const configDir = process.env.CLAUDE_CONFIG_DIR || path.join(process.env.HOME || '', '.claude');
16
+ return path.join(configDir, 'plugins', 'claude-hud', 'presets.json');
17
+ }
18
+
19
+ export function loadPresets(): Preset[] {
20
+ try {
21
+ return JSON.parse(fs.readFileSync(getPresetsPath(), 'utf-8'));
22
+ } catch {
23
+ return [];
24
+ }
25
+ }
26
+
27
+ export function savePreset(name: string, description: string, config: Partial<HudConfig>): void {
28
+ const presets = loadPresets();
29
+ const existing = presets.findIndex(p => p.name === name);
30
+ const preset: Preset = { name, description, config, createdAt: new Date().toISOString() };
31
+ if (existing >= 0) presets[existing] = preset;
32
+ else presets.push(preset);
33
+
34
+ const dir = path.dirname(getPresetsPath());
35
+ fs.mkdirSync(dir, { recursive: true });
36
+ fs.writeFileSync(getPresetsPath(), JSON.stringify(presets, null, 2));
37
+ if (DEBUG) console.error(`[claude-hud:presets] saved preset "${name}"`);
38
+ }
39
+
40
+ export function getPreset(name: string): Preset | undefined {
41
+ return loadPresets().find(p => p.name === name);
42
+ }
43
+
44
+ export function deletePreset(name: string): boolean {
45
+ const presets = loadPresets();
46
+ const idx = presets.findIndex(p => p.name === name);
47
+ if (idx < 0) return false;
48
+ presets.splice(idx, 1);
49
+ fs.writeFileSync(getPresetsPath(), JSON.stringify(presets, null, 2));
50
+ if (DEBUG) console.error(`[claude-hud:presets] deleted preset "${name}"`);
51
+ return true;
52
+ }
53
+
54
+ export function exportPresetAsJson(preset: Preset): string {
55
+ return JSON.stringify(preset, null, 2);
56
+ }
@@ -12,6 +12,7 @@ export interface SessionRecord {
12
12
  autocompactCount: number;
13
13
  totalToolCalls: number;
14
14
  totalAgentRuns: number;
15
+ tags?: string[];
15
16
  }
16
17
 
17
18
  function getHistoryPath(): string {
@@ -57,6 +58,24 @@ export function getLastSession(): SessionRecord | null {
57
58
  return history.length >= 2 ? history[history.length - 2] : null;
58
59
  }
59
60
 
61
+ export function tagCurrentSession(tags: string[], _cacheDir: string): void {
62
+ const history = loadHistory();
63
+ if (history.length === 0) return;
64
+
65
+ // Tag the most recent session
66
+ const last = history[history.length - 1];
67
+ last.tags = [...new Set([...(last.tags || []), ...tags])];
68
+
69
+ const dir = path.dirname(getHistoryPath());
70
+ fs.mkdirSync(dir, { recursive: true });
71
+ fs.writeFileSync(getHistoryPath(), JSON.stringify(history, null, 2));
72
+ if (DEBUG) console.error(`[claude-hud:session-history] tagged session with: ${tags.join(', ')}`);
73
+ }
74
+
75
+ export function getSessionsByTag(tag: string): SessionRecord[] {
76
+ return loadHistory().filter(s => s.tags?.includes(tag));
77
+ }
78
+
60
79
  export function formatSessionSummary(record: SessionRecord): string {
61
80
  return `Last: ${record.model} ${record.duration} | ${record.peakContextPercent}% peak | ${record.totalToolCalls} tools | ${record.autocompactCount} compacts`;
62
81
  }