dino-spec 13.6.0 → 13.6.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.
- package/README.md +5 -82
- package/bin/dino-hud.js +1 -1
- package/bin/dino.js +1 -1
- package/dist/commands/hud.d.ts +8 -1
- package/dist/commands/hud.d.ts.map +1 -1
- package/dist/commands/hud.js +18 -4
- package/dist/commands/hud.js.map +1 -1
- package/dist/core/agents/context-isolation.js +26 -26
- package/dist/core/config/feature-flags.d.ts +1 -25
- package/dist/core/config/feature-flags.d.ts.map +1 -1
- package/dist/core/config/feature-flags.js +1 -7
- package/dist/core/config/feature-flags.js.map +1 -1
- package/dist/core/context/auto-injection-engine.d.ts +1 -10
- package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
- package/dist/core/context/auto-injection-engine.js +2 -45
- package/dist/core/context/auto-injection-engine.js.map +1 -1
- package/dist/core/context/context-health.d.ts +2 -27
- package/dist/core/context/context-health.d.ts.map +1 -1
- package/dist/core/context/context-health.js +12 -98
- package/dist/core/context/context-health.js.map +1 -1
- package/dist/core/context/index.d.ts +2 -3
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +2 -18
- package/dist/core/context/index.js.map +1 -1
- package/dist/core/context/lazy-loader.d.ts +1 -44
- package/dist/core/context/lazy-loader.d.ts.map +1 -1
- package/dist/core/context/lazy-loader.js +1 -59
- package/dist/core/context/lazy-loader.js.map +1 -1
- package/dist/core/context-repl/index.d.ts +3 -8
- package/dist/core/context-repl/index.d.ts.map +1 -1
- package/dist/core/context-repl/index.js +3 -11
- package/dist/core/context-repl/index.js.map +1 -1
- package/dist/core/context-repl/types.d.ts +1 -277
- package/dist/core/context-repl/types.d.ts.map +1 -1
- package/dist/core/context-repl/types.js +1 -52
- package/dist/core/context-repl/types.js.map +1 -1
- package/dist/core/generator/claude-md.js +1 -1
- package/dist/core/provider/storage.d.ts.map +1 -1
- package/dist/core/provider/storage.js +2 -1
- package/dist/core/provider/storage.js.map +1 -1
- package/dist/hooks/post-edit.js +0 -73
- package/dist/hooks/post-edit.js.map +1 -1
- package/dist/hooks/session-start.js +0 -115
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/types.js +1 -1
- package/dist/hooks/user-prompt-submit.js +0 -100
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/hud/config-tui.d.ts +25 -0
- package/dist/hud/config-tui.d.ts.map +1 -0
- package/dist/hud/config-tui.js +199 -0
- package/dist/hud/config-tui.js.map +1 -0
- package/dist/hud/config.d.ts +28 -3
- package/dist/hud/config.d.ts.map +1 -1
- package/dist/hud/config.js +60 -8
- package/dist/hud/config.js.map +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +1 -0
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/models.d.ts +58 -0
- package/dist/hud/models.d.ts.map +1 -0
- package/dist/hud/models.js +124 -0
- package/dist/hud/models.js.map +1 -0
- package/dist/hud/render/budget-bar.d.ts +2 -0
- package/dist/hud/render/budget-bar.d.ts.map +1 -1
- package/dist/hud/render/budget-bar.js +8 -5
- package/dist/hud/render/budget-bar.js.map +1 -1
- package/dist/hud/stdin.d.ts +3 -0
- package/dist/hud/stdin.d.ts.map +1 -1
- package/dist/hud/stdin.js +29 -2
- package/dist/hud/stdin.js.map +1 -1
- package/dist/hud/token-estimator.d.ts +79 -0
- package/dist/hud/token-estimator.d.ts.map +1 -0
- package/dist/hud/token-estimator.js +126 -0
- package/dist/hud/token-estimator.js.map +1 -0
- package/dist/hud/types.d.ts +2 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/mcp/server.d.ts +1 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +3 -12
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +0 -5
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -7
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +2 -25
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +5 -9
- package/dist/mcp-server.js.map +1 -1
- package/dist/rules/index.js +2 -2
- package/dist/utils/exec.js +2 -2
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +0 -5
- package/dist/utils/gitignore.js.map +1 -1
- package/package.json +77 -76
- package/dist/core/context/focus-resource-loader.d.ts +0 -143
- package/dist/core/context/focus-resource-loader.d.ts.map +0 -1
- package/dist/core/context/focus-resource-loader.js +0 -305
- package/dist/core/context/focus-resource-loader.js.map +0 -1
- package/dist/core/context-repl/__tests__/repl-environment.test.d.ts +0 -7
- package/dist/core/context-repl/__tests__/repl-environment.test.d.ts.map +0 -1
- package/dist/core/context-repl/__tests__/repl-environment.test.js +0 -335
- package/dist/core/context-repl/__tests__/repl-environment.test.js.map +0 -1
- package/dist/core/context-repl/context-window-monitor.d.ts +0 -181
- package/dist/core/context-repl/context-window-monitor.d.ts.map +0 -1
- package/dist/core/context-repl/context-window-monitor.js +0 -309
- package/dist/core/context-repl/context-window-monitor.js.map +0 -1
- package/dist/core/context-repl/repl-environment.d.ts +0 -66
- package/dist/core/context-repl/repl-environment.d.ts.map +0 -1
- package/dist/core/context-repl/repl-environment.js +0 -795
- package/dist/core/context-repl/repl-environment.js.map +0 -1
- package/dist/mcp/focus-filter.d.ts +0 -74
- package/dist/mcp/focus-filter.d.ts.map +0 -1
- package/dist/mcp/focus-filter.js +0 -229
- package/dist/mcp/focus-filter.js.map +0 -1
- package/dist/mcp/tools/auto-inject.d.ts +0 -36
- package/dist/mcp/tools/auto-inject.d.ts.map +0 -1
- package/dist/mcp/tools/auto-inject.js +0 -143
- package/dist/mcp/tools/auto-inject.js.map +0 -1
- package/dist/mcp/tools/auto-unload.d.ts +0 -29
- package/dist/mcp/tools/auto-unload.d.ts.map +0 -1
- package/dist/mcp/tools/auto-unload.js +0 -151
- package/dist/mcp/tools/auto-unload.js.map +0 -1
- package/dist/mcp/tools/context-repl.d.ts +0 -48
- package/dist/mcp/tools/context-repl.d.ts.map +0 -1
- package/dist/mcp/tools/context-repl.js +0 -290
- package/dist/mcp/tools/context-repl.js.map +0 -1
- package/dist/mcp/tools/health.d.ts +0 -29
- package/dist/mcp/tools/health.d.ts.map +0 -1
- package/dist/mcp/tools/health.js +0 -171
- package/dist/mcp/tools/health.js.map +0 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HUD Config TUI - Interactive configuration wizard
|
|
3
|
+
*
|
|
4
|
+
* Provides an interactive terminal UI for configuring HUD display options.
|
|
5
|
+
* Uses @inquirer/prompts for cross-platform TUI support.
|
|
6
|
+
*
|
|
7
|
+
* @module config-tui
|
|
8
|
+
*/
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import { checkbox, confirm, select } from '@inquirer/prompts';
|
|
11
|
+
import { loadHudConfig, saveHudConfig, saveUserConfig, DEFAULT_CONFIG, getHudConfigPath, getUserConfigPath, } from './config.js';
|
|
12
|
+
/**
|
|
13
|
+
* Organized display options by category
|
|
14
|
+
*/
|
|
15
|
+
const DISPLAY_GROUPS = [
|
|
16
|
+
{
|
|
17
|
+
name: 'Context Info',
|
|
18
|
+
options: [
|
|
19
|
+
{ key: 'model', label: 'Model', description: 'Show model name (e.g., Opus 4.5)' },
|
|
20
|
+
{ key: 'budget', label: 'Budget', description: 'Show context usage percentage with bar' },
|
|
21
|
+
{ key: 'contextHealth', label: 'Context Health', description: 'Show health-based coloring (deprecated)' },
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'Session Info',
|
|
26
|
+
options: [
|
|
27
|
+
{ key: 'sessionDuration', label: 'Session Duration', description: 'Show time since session start' },
|
|
28
|
+
{ key: 'sessionLimit', label: 'Session Limit', description: 'Show 5-hour rate limit tracking' },
|
|
29
|
+
{ key: 'weeklyUsage', label: 'Weekly Usage', description: 'Show weekly rate limit tracking' },
|
|
30
|
+
{ key: 'gitBranch', label: 'Git Branch', description: 'Show current git branch' },
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Tools & Agents',
|
|
35
|
+
options: [
|
|
36
|
+
{ key: 'toolUsage', label: 'Tool Usage', description: 'Show tool call counts' },
|
|
37
|
+
{ key: 'agentStatus', label: 'Agent Status', description: 'Show subagent activity' },
|
|
38
|
+
{ key: 'todoProgress', label: 'Todo Progress', description: 'Show todo completion status' },
|
|
39
|
+
{ key: 'mcpStatus', label: 'MCP Status', description: 'Show MCP server connection' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Dino Features',
|
|
44
|
+
options: [
|
|
45
|
+
{ key: 'configCounts', label: 'Config Counts', description: 'Show CLAUDE.md, rules, hooks counts' },
|
|
46
|
+
{ key: 'cacheStats', label: 'Cache Stats', description: 'Show file cache hit rate' },
|
|
47
|
+
{ key: 'deferredStatus', label: 'Deferred Status', description: 'Show lazy loading status' },
|
|
48
|
+
{ key: 'circuitStatus', label: 'Circuit Status', description: 'Show circuit breaker health' },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Legacy (Session.md)',
|
|
53
|
+
options: [
|
|
54
|
+
{ key: 'phase', label: 'Phase', description: 'Show current workflow phase' },
|
|
55
|
+
{ key: 'focus', label: 'Focus', description: 'Show current focus area' },
|
|
56
|
+
{ key: 'testStatus', label: 'Test Status', description: 'Show test pass/fail status' },
|
|
57
|
+
{ key: 'buildStatus', label: 'Build Status', description: 'Show build status' },
|
|
58
|
+
{ key: 'lintStatus', label: 'Lint Status', description: 'Show lint status' },
|
|
59
|
+
{ key: 'blockers', label: 'Blockers', description: 'Show active blockers' },
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* Print the TUI header
|
|
65
|
+
*/
|
|
66
|
+
function printHeader() {
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(chalk.cyan('┌─────────────────────────────────────────┐'));
|
|
69
|
+
console.log(chalk.cyan('│ ') + chalk.bold('dino-hud Configuration') + chalk.cyan(' │'));
|
|
70
|
+
console.log(chalk.cyan('│ ') + chalk.dim('Configure statusline display options') + chalk.cyan(' │'));
|
|
71
|
+
console.log(chalk.cyan('└─────────────────────────────────────────┘'));
|
|
72
|
+
console.log('');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Run the interactive TUI configuration
|
|
76
|
+
*
|
|
77
|
+
* @param projectDir - Project directory (defaults to cwd)
|
|
78
|
+
* @returns true if configuration was saved
|
|
79
|
+
*/
|
|
80
|
+
export async function runConfigTui(projectDir = process.cwd()) {
|
|
81
|
+
// Check if terminal supports TUI
|
|
82
|
+
if (!process.stdout.isTTY) {
|
|
83
|
+
console.log(chalk.red('Error: Interactive configuration requires a terminal.'));
|
|
84
|
+
console.log(chalk.dim('Use --json flag to view config as JSON.'));
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
printHeader();
|
|
88
|
+
try {
|
|
89
|
+
// Load current config
|
|
90
|
+
const currentConfig = await loadHudConfig(projectDir);
|
|
91
|
+
// Build choices for each group
|
|
92
|
+
const allChoices = [];
|
|
93
|
+
for (const group of DISPLAY_GROUPS) {
|
|
94
|
+
// Add group separator
|
|
95
|
+
allChoices.push({
|
|
96
|
+
name: chalk.cyan.bold(`── ${group.name} ──`),
|
|
97
|
+
value: group.options[0].key, // Dummy value
|
|
98
|
+
checked: false,
|
|
99
|
+
disabled: true,
|
|
100
|
+
});
|
|
101
|
+
for (const option of group.options) {
|
|
102
|
+
allChoices.push({
|
|
103
|
+
name: `${option.label}${option.description ? chalk.dim(` - ${option.description}`) : ''}`,
|
|
104
|
+
value: option.key,
|
|
105
|
+
checked: currentConfig.display[option.key] ?? false,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Show checkbox selection
|
|
110
|
+
const selected = await checkbox({
|
|
111
|
+
message: 'Select display options (Space to toggle, Enter to confirm)',
|
|
112
|
+
choices: allChoices.filter(c => !c.disabled),
|
|
113
|
+
pageSize: 15,
|
|
114
|
+
});
|
|
115
|
+
// Build new display config
|
|
116
|
+
const newDisplay = {};
|
|
117
|
+
for (const group of DISPLAY_GROUPS) {
|
|
118
|
+
for (const option of group.options) {
|
|
119
|
+
newDisplay[option.key] = selected.includes(option.key);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Check if reset to defaults is desired
|
|
123
|
+
const resetPrompt = await confirm({
|
|
124
|
+
message: 'Reset all other settings to defaults?',
|
|
125
|
+
default: false,
|
|
126
|
+
});
|
|
127
|
+
// Build final config
|
|
128
|
+
let finalConfig;
|
|
129
|
+
if (resetPrompt) {
|
|
130
|
+
finalConfig = {
|
|
131
|
+
...DEFAULT_CONFIG,
|
|
132
|
+
display: newDisplay,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
finalConfig = {
|
|
137
|
+
...currentConfig,
|
|
138
|
+
display: newDisplay,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Ask where to save
|
|
142
|
+
const saveLocation = await select({
|
|
143
|
+
message: 'Save configuration to:',
|
|
144
|
+
choices: [
|
|
145
|
+
{
|
|
146
|
+
name: `Project (${chalk.dim('.dino/hud.json')})`,
|
|
147
|
+
value: 'project',
|
|
148
|
+
description: 'Only affects this project',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: `Global (${chalk.dim('~/.config/dino/hud.json')})`,
|
|
152
|
+
value: 'global',
|
|
153
|
+
description: 'Default for all projects',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: chalk.dim('Cancel'),
|
|
157
|
+
value: 'cancel',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
});
|
|
161
|
+
if (saveLocation === 'cancel') {
|
|
162
|
+
console.log(chalk.yellow('Configuration not saved.'));
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
// Save config
|
|
166
|
+
if (saveLocation === 'global') {
|
|
167
|
+
await saveUserConfig(finalConfig);
|
|
168
|
+
console.log(chalk.green(`✓ Saved to ${getUserConfigPath()}`));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
await saveHudConfig(finalConfig, projectDir);
|
|
172
|
+
console.log(chalk.green(`✓ Saved to ${getHudConfigPath(projectDir)}`));
|
|
173
|
+
}
|
|
174
|
+
console.log('');
|
|
175
|
+
console.log(chalk.cyan('Restart Claude Code to see changes.'));
|
|
176
|
+
console.log('');
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (error instanceof Error && (error.message.includes('User force closed') || error.name === 'ExitPromptError')) {
|
|
181
|
+
console.log(chalk.dim('\n Configuration cancelled.\n'));
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get count of enabled display options
|
|
189
|
+
*/
|
|
190
|
+
export function getEnabledCount(display) {
|
|
191
|
+
return Object.values(display).filter(Boolean).length;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get total count of display options
|
|
195
|
+
*/
|
|
196
|
+
export function getTotalDisplayOptions() {
|
|
197
|
+
return DISPLAY_GROUPS.reduce((count, group) => count + group.options.length, 0);
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=config-tui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-tui.js","sourceRoot":"","sources":["../../src/hud/config-tui.ts"],"names":[],"mappings":"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"}
|
package/dist/hud/config.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HUD Config - Load and manage HUD configuration
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Configuration loading order (v13.4.0):
|
|
5
|
+
* 1. Default configuration (hardcoded)
|
|
6
|
+
* 2. User configuration (~/.config/dino/hud.json)
|
|
7
|
+
* 3. Project configuration (.dino/hud.json)
|
|
8
|
+
*
|
|
9
|
+
* Later configs override earlier ones.
|
|
5
10
|
*/
|
|
6
11
|
import type { HudConfig } from './types.js';
|
|
7
12
|
/**
|
|
@@ -9,10 +14,30 @@ import type { HudConfig } from './types.js';
|
|
|
9
14
|
*/
|
|
10
15
|
export declare const DEFAULT_CONFIG: HudConfig;
|
|
11
16
|
/**
|
|
12
|
-
* Load HUD configuration from
|
|
17
|
+
* Load user-level HUD configuration from ~/.config/dino/hud.json
|
|
18
|
+
*
|
|
19
|
+
* @returns User config or null if not found
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadUserConfig(): Promise<Partial<HudConfig> | null>;
|
|
22
|
+
/**
|
|
23
|
+
* Save user-level HUD configuration to ~/.config/dino/hud.json
|
|
24
|
+
*
|
|
25
|
+
* Creates the ~/.config/dino/ directory if it doesn't exist.
|
|
26
|
+
*
|
|
27
|
+
* @param config - Configuration to save
|
|
28
|
+
*/
|
|
29
|
+
export declare function saveUserConfig(config: Partial<HudConfig>): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Get user config file path
|
|
32
|
+
*/
|
|
33
|
+
export declare function getUserConfigPath(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Load HUD configuration with three-level merge
|
|
36
|
+
*
|
|
37
|
+
* Merge order: DEFAULT_CONFIG < userConfig < projectConfig
|
|
13
38
|
*
|
|
14
39
|
* @param projectDir - Project directory (defaults to cwd)
|
|
15
|
-
* @returns Merged HudConfig
|
|
40
|
+
* @returns Merged HudConfig
|
|
16
41
|
*/
|
|
17
42
|
export declare function loadHudConfig(projectDir?: string): Promise<HudConfig>;
|
|
18
43
|
/**
|
package/dist/hud/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/hud/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/hud/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAyE,MAAM,YAAY,CAAC;AAiFnH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAK5B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAMzE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,UAAU,GAAE,MAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAsB1F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EAC1B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AA0BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAE3E"}
|
package/dist/hud/config.js
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HUD Config - Load and manage HUD configuration
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Configuration loading order (v13.4.0):
|
|
5
|
+
* 1. Default configuration (hardcoded)
|
|
6
|
+
* 2. User configuration (~/.config/dino/hud.json)
|
|
7
|
+
* 3. Project configuration (.dino/hud.json)
|
|
8
|
+
*
|
|
9
|
+
* Later configs override earlier ones.
|
|
5
10
|
*/
|
|
6
11
|
import { join } from 'path';
|
|
12
|
+
import { homedir } from 'os';
|
|
7
13
|
import { FileSystem } from '../utils/file-system.js';
|
|
8
14
|
import { DINO_DIR_NAME } from '../core/config/constants.js';
|
|
15
|
+
/**
|
|
16
|
+
* User-level config directory
|
|
17
|
+
*/
|
|
18
|
+
const USER_CONFIG_DIR = join(homedir(), '.config', 'dino');
|
|
19
|
+
const USER_CONFIG_PATH = join(USER_CONFIG_DIR, 'hud.json');
|
|
9
20
|
/**
|
|
10
21
|
* Default display configuration
|
|
11
22
|
*
|
|
@@ -79,19 +90,60 @@ export const DEFAULT_CONFIG = {
|
|
|
79
90
|
limits: DEFAULT_LIMITS,
|
|
80
91
|
};
|
|
81
92
|
/**
|
|
82
|
-
* Load HUD configuration from
|
|
93
|
+
* Load user-level HUD configuration from ~/.config/dino/hud.json
|
|
94
|
+
*
|
|
95
|
+
* @returns User config or null if not found
|
|
96
|
+
*/
|
|
97
|
+
export async function loadUserConfig() {
|
|
98
|
+
try {
|
|
99
|
+
return await FileSystem.readJsonSafe(USER_CONFIG_PATH);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Save user-level HUD configuration to ~/.config/dino/hud.json
|
|
107
|
+
*
|
|
108
|
+
* Creates the ~/.config/dino/ directory if it doesn't exist.
|
|
109
|
+
*
|
|
110
|
+
* @param config - Configuration to save
|
|
111
|
+
*/
|
|
112
|
+
export async function saveUserConfig(config) {
|
|
113
|
+
// Ensure directory exists
|
|
114
|
+
await FileSystem.createDirectory(USER_CONFIG_DIR);
|
|
115
|
+
await FileSystem.writeJson(USER_CONFIG_PATH, config);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get user config file path
|
|
119
|
+
*/
|
|
120
|
+
export function getUserConfigPath() {
|
|
121
|
+
return USER_CONFIG_PATH;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Load HUD configuration with three-level merge
|
|
125
|
+
*
|
|
126
|
+
* Merge order: DEFAULT_CONFIG < userConfig < projectConfig
|
|
83
127
|
*
|
|
84
128
|
* @param projectDir - Project directory (defaults to cwd)
|
|
85
|
-
* @returns Merged HudConfig
|
|
129
|
+
* @returns Merged HudConfig
|
|
86
130
|
*/
|
|
87
131
|
export async function loadHudConfig(projectDir = process.cwd()) {
|
|
88
132
|
try {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
133
|
+
// Start with defaults
|
|
134
|
+
let config = DEFAULT_CONFIG;
|
|
135
|
+
// Layer 2: User config (~/.config/dino/hud.json)
|
|
136
|
+
const userConfig = await loadUserConfig();
|
|
137
|
+
if (userConfig) {
|
|
138
|
+
config = mergeConfig(config, userConfig);
|
|
139
|
+
}
|
|
140
|
+
// Layer 3: Project config (.dino/hud.json)
|
|
141
|
+
const projectConfigPath = join(projectDir, DINO_DIR_NAME, 'hud.json');
|
|
142
|
+
const projectConfig = await FileSystem.readJsonSafe(projectConfigPath);
|
|
143
|
+
if (projectConfig) {
|
|
144
|
+
config = mergeConfig(config, projectConfig);
|
|
93
145
|
}
|
|
94
|
-
return
|
|
146
|
+
return config;
|
|
95
147
|
}
|
|
96
148
|
catch {
|
|
97
149
|
return DEFAULT_CONFIG;
|
package/dist/hud/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/hud/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/hud/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,eAAe,GAAqB;IACxC,gCAAgC;IAChC,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,KAAK,EAAE,oEAAoE;IAC1F,SAAS,EAAE,IAAI;IAEf,qDAAqD;IACrD,YAAY,EAAE,IAAI,EAAK,4CAA4C;IACnE,SAAS,EAAE,IAAI,EAAQ,2BAA2B;IAClD,WAAW,EAAE,IAAI,EAAM,6BAA6B;IACpD,YAAY,EAAE,IAAI,EAAK,qBAAqB;IAE5C,4CAA4C;IAC5C,YAAY,EAAE,IAAI,EAAK,qCAAqC;IAC5D,WAAW,EAAE,IAAI,EAAM,kCAAkC;IAEzD,oDAAoD;IACpD,UAAU,EAAE,IAAI,EAAO,2BAA2B;IAElD,sDAAsD;IACtD,cAAc,EAAE,IAAI,EAAG,+BAA+B;IAEtD,yDAAyD;IACzD,aAAa,EAAE,IAAI,EAAI,qCAAqC;IAE5D,6DAA6D;IAC7D,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAoB;IACtC,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAuB;IAC7C,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAmB;IACrC,iBAAiB,EAAE,CAAC;IACpB,cAAc,EAAE,CAAC,EAAG,SAAS;IAC7B,eAAe,EAAE,MAAM;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB;IAC9B,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,YAAY,CAAqB,gBAAgB,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAA0B;IAC7D,0BAA0B;IAC1B,MAAM,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,UAAU,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE;IACpE,IAAI,CAAC;QACH,sBAAsB;QACtB,IAAI,MAAM,GAAG,cAAc,CAAC;QAE5B,iDAAiD;QACjD,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,2CAA2C;QAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,YAAY,CAAqB,iBAAiB,CAAC,CAAC;QAC3F,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA0B,EAC1B,aAAqB,OAAO,CAAC,GAAG,EAAE;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,QAAmB,EAAE,SAA6B;IACrE,OAAO;QACL,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,OAAO;YACnB,GAAG,SAAS,CAAC,OAAO;SACrB;QACD,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,MAAM;YAClB,GAAG,SAAS,CAAC,MAAM;SACpB;QACD,UAAU,EAAE;YACV,GAAG,QAAQ,CAAC,UAAU;YACtB,GAAG,SAAS,CAAC,UAAU;SACxB;QACD,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,MAAM;YAClB,GAAG,SAAS,CAAC,MAAM;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE;IACjE,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/hud/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAA0H,MAAM,YAAY,CAAC;AAerL,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,EAEd,oBAAoB,GACrB,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;AAC7H,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7J,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG1J,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAA0H,MAAM,YAAY,CAAC;AAerL,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,EAEd,oBAAoB,GACrB,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;AAC7H,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7J,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG1J,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,CAgGpB;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,CAa/C"}
|
package/dist/hud/index.js
CHANGED
|
@@ -99,6 +99,7 @@ export async function createHudDisplay(claudeInput, projectDir = process.cwd(),
|
|
|
99
99
|
status: getBudgetStatus(currentPercentage, config.thresholds),
|
|
100
100
|
direction: budgetChangeResult.direction,
|
|
101
101
|
lastUpdated: new Date().toISOString(),
|
|
102
|
+
isEstimated: claudeInput.isEstimated,
|
|
102
103
|
};
|
|
103
104
|
// Calculate usage stats for session limit and weekly usage display
|
|
104
105
|
const sessionStartTime = transcript?.sessionStart ?? (session.sessionStart ? new Date(session.sessionStart) : undefined);
|
package/dist/hud/index.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Registry - Non-Anthropic model configurations
|
|
3
|
+
*
|
|
4
|
+
* Contains context window sizes and encoding mappings for
|
|
5
|
+
* third-party models supported by dino-hud token estimation.
|
|
6
|
+
*
|
|
7
|
+
* @module models
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Model configuration for token estimation
|
|
11
|
+
*/
|
|
12
|
+
export interface ModelConfig {
|
|
13
|
+
/** Context window size in tokens */
|
|
14
|
+
contextWindow: number;
|
|
15
|
+
/** tiktoken encoding to use for estimation */
|
|
16
|
+
encoding: 'cl100k_base' | 'p50k_base' | 'r50k_base';
|
|
17
|
+
/** Maximum output tokens (if different from context window) */
|
|
18
|
+
maxOutput?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Registry of non-Anthropic models with their configurations
|
|
22
|
+
*
|
|
23
|
+
* All context window sizes based on research from:
|
|
24
|
+
* - .dino/research/model-tokenizers.md
|
|
25
|
+
*
|
|
26
|
+
* Uses cl100k_base encoding as it's the closest match to
|
|
27
|
+
* modern LLM tokenizers (within 10-15% accuracy).
|
|
28
|
+
*/
|
|
29
|
+
export declare const MODEL_REGISTRY: Record<string, ModelConfig>;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a model is a non-Anthropic model that needs token estimation
|
|
32
|
+
*
|
|
33
|
+
* @param modelName - Model name from stdin (e.g., "glm-4.7", "Claude Opus 4.5")
|
|
34
|
+
* @returns true if model is not Anthropic/Claude and needs estimation
|
|
35
|
+
*/
|
|
36
|
+
export declare function isNonAnthropicModel(modelName: string | undefined): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get model configuration for token estimation
|
|
39
|
+
*
|
|
40
|
+
* @param modelName - Model name from stdin
|
|
41
|
+
* @returns ModelConfig if found, null if unknown model
|
|
42
|
+
*/
|
|
43
|
+
export declare function getModelConfig(modelName: string | undefined): ModelConfig | null;
|
|
44
|
+
/**
|
|
45
|
+
* Get context window size for a model
|
|
46
|
+
*
|
|
47
|
+
* @param modelName - Model name from stdin
|
|
48
|
+
* @returns Context window size or default (200000) if unknown
|
|
49
|
+
*/
|
|
50
|
+
export declare function getContextWindowSize(modelName: string | undefined): number;
|
|
51
|
+
/**
|
|
52
|
+
* Get tiktoken encoding for a model
|
|
53
|
+
*
|
|
54
|
+
* @param modelName - Model name from stdin
|
|
55
|
+
* @returns Encoding name (defaults to cl100k_base)
|
|
56
|
+
*/
|
|
57
|
+
export declare function getModelEncoding(modelName: string | undefined): string;
|
|
58
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/hud/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACpD,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6C7C,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAiB1E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAkBhF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtE"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Registry - Non-Anthropic model configurations
|
|
3
|
+
*
|
|
4
|
+
* Contains context window sizes and encoding mappings for
|
|
5
|
+
* third-party models supported by dino-hud token estimation.
|
|
6
|
+
*
|
|
7
|
+
* @module models
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Registry of non-Anthropic models with their configurations
|
|
11
|
+
*
|
|
12
|
+
* All context window sizes based on research from:
|
|
13
|
+
* - .dino/research/model-tokenizers.md
|
|
14
|
+
*
|
|
15
|
+
* Uses cl100k_base encoding as it's the closest match to
|
|
16
|
+
* modern LLM tokenizers (within 10-15% accuracy).
|
|
17
|
+
*/
|
|
18
|
+
export const MODEL_REGISTRY = {
|
|
19
|
+
// GLM-4 Series (Zhipu AI)
|
|
20
|
+
'glm-4.7': {
|
|
21
|
+
contextWindow: 200000,
|
|
22
|
+
encoding: 'cl100k_base',
|
|
23
|
+
maxOutput: 128000,
|
|
24
|
+
},
|
|
25
|
+
'glm-4.6': {
|
|
26
|
+
contextWindow: 204800,
|
|
27
|
+
encoding: 'cl100k_base',
|
|
28
|
+
maxOutput: 128000,
|
|
29
|
+
},
|
|
30
|
+
'glm-4.5-air': {
|
|
31
|
+
contextWindow: 128000,
|
|
32
|
+
encoding: 'cl100k_base',
|
|
33
|
+
},
|
|
34
|
+
'glm-4.5': {
|
|
35
|
+
contextWindow: 128000,
|
|
36
|
+
encoding: 'cl100k_base',
|
|
37
|
+
},
|
|
38
|
+
// MiniMax Series
|
|
39
|
+
'minimax-m2.1': {
|
|
40
|
+
contextWindow: 200000,
|
|
41
|
+
encoding: 'cl100k_base',
|
|
42
|
+
},
|
|
43
|
+
'minimax-m2': {
|
|
44
|
+
contextWindow: 200000,
|
|
45
|
+
encoding: 'cl100k_base',
|
|
46
|
+
},
|
|
47
|
+
'minimax-2.1': {
|
|
48
|
+
contextWindow: 200000,
|
|
49
|
+
encoding: 'cl100k_base',
|
|
50
|
+
},
|
|
51
|
+
// Aliases for common name variants
|
|
52
|
+
'glm4.7': {
|
|
53
|
+
contextWindow: 200000,
|
|
54
|
+
encoding: 'cl100k_base',
|
|
55
|
+
maxOutput: 128000,
|
|
56
|
+
},
|
|
57
|
+
'glm4.5-air': {
|
|
58
|
+
contextWindow: 128000,
|
|
59
|
+
encoding: 'cl100k_base',
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Check if a model is a non-Anthropic model that needs token estimation
|
|
64
|
+
*
|
|
65
|
+
* @param modelName - Model name from stdin (e.g., "glm-4.7", "Claude Opus 4.5")
|
|
66
|
+
* @returns true if model is not Anthropic/Claude and needs estimation
|
|
67
|
+
*/
|
|
68
|
+
export function isNonAnthropicModel(modelName) {
|
|
69
|
+
if (!modelName)
|
|
70
|
+
return false;
|
|
71
|
+
const normalized = modelName.toLowerCase().trim();
|
|
72
|
+
// Anthropic/Claude models - no estimation needed
|
|
73
|
+
if (normalized.startsWith('claude') ||
|
|
74
|
+
normalized.includes('anthropic') ||
|
|
75
|
+
normalized.startsWith('opus') ||
|
|
76
|
+
normalized.startsWith('sonnet') ||
|
|
77
|
+
normalized.startsWith('haiku')) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get model configuration for token estimation
|
|
84
|
+
*
|
|
85
|
+
* @param modelName - Model name from stdin
|
|
86
|
+
* @returns ModelConfig if found, null if unknown model
|
|
87
|
+
*/
|
|
88
|
+
export function getModelConfig(modelName) {
|
|
89
|
+
if (!modelName)
|
|
90
|
+
return null;
|
|
91
|
+
const normalized = modelName.toLowerCase().trim();
|
|
92
|
+
// Direct lookup
|
|
93
|
+
if (MODEL_REGISTRY[normalized]) {
|
|
94
|
+
return MODEL_REGISTRY[normalized];
|
|
95
|
+
}
|
|
96
|
+
// Fuzzy matching for common patterns
|
|
97
|
+
for (const [key, config] of Object.entries(MODEL_REGISTRY)) {
|
|
98
|
+
if (normalized.includes(key) || key.includes(normalized)) {
|
|
99
|
+
return config;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get context window size for a model
|
|
106
|
+
*
|
|
107
|
+
* @param modelName - Model name from stdin
|
|
108
|
+
* @returns Context window size or default (200000) if unknown
|
|
109
|
+
*/
|
|
110
|
+
export function getContextWindowSize(modelName) {
|
|
111
|
+
const config = getModelConfig(modelName);
|
|
112
|
+
return config?.contextWindow ?? 200000;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get tiktoken encoding for a model
|
|
116
|
+
*
|
|
117
|
+
* @param modelName - Model name from stdin
|
|
118
|
+
* @returns Encoding name (defaults to cl100k_base)
|
|
119
|
+
*/
|
|
120
|
+
export function getModelEncoding(modelName) {
|
|
121
|
+
const config = getModelConfig(modelName);
|
|
122
|
+
return config?.encoding ?? 'cl100k_base';
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/hud/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD,0BAA0B;IAC1B,SAAS,EAAE;QACT,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,SAAS,EAAE;QACT,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,aAAa,EAAE;QACb,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;IACD,SAAS,EAAE;QACT,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;IAED,iBAAiB;IACjB,cAAc,EAAE;QACd,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;IACD,aAAa,EAAE;QACb,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;IAED,mCAAmC;IACnC,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,aAAa;KACxB;CACO,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA6B;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,iDAAiD;IACjD,IACE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7B,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC/B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAA6B;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,gBAAgB;IAChB,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,MAAM,EAAE,aAAa,IAAI,MAAM,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA6B;IAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,MAAM,EAAE,QAAQ,IAAI,aAAa,CAAC;AAC3C,CAAC"}
|
|
@@ -15,6 +15,7 @@ import type { BudgetInfo, HudConfig, ContextHealth } from '../types.js';
|
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* "[████████░░] 78%"
|
|
18
|
+
* "[████████░░] ~78%" (with tilde for estimated values)
|
|
18
19
|
*/
|
|
19
20
|
export declare function renderBudgetBar(budget: BudgetInfo, config: HudConfig, health?: ContextHealth): string;
|
|
20
21
|
/**
|
|
@@ -27,6 +28,7 @@ export declare function renderBudgetBar(budget: BudgetInfo, config: HudConfig, h
|
|
|
27
28
|
*
|
|
28
29
|
* @example
|
|
29
30
|
* "████████▒▒▒▒ 45%↑" (8 segments default) or just "45%" if colors disabled
|
|
31
|
+
* "████████▒▒▒▒ ~45%↑" (with tilde for estimated values)
|
|
30
32
|
*/
|
|
31
33
|
export declare function renderBudgetCompact(budget: BudgetInfo, config: HudConfig, health?: ContextHealth): string;
|
|
32
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget-bar.d.ts","sourceRoot":"","sources":["../../../src/hud/render/budget-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWxE
|
|
1
|
+
{"version":3,"file":"budget-bar.d.ts","sourceRoot":"","sources":["../../../src/hud/render/budget-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWxE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CA6BrG;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CA+BzG;AAqCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,GAClC,UAAU,CAAC,QAAQ,CAAC,CAWtB"}
|