dino-spec 13.5.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 +2 -47
- package/bin/dino-hud.js +0 -0
- package/bin/dino.js +0 -0
- 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/config/feature-flags.d.ts +0 -15
- package/dist/core/config/feature-flags.d.ts.map +1 -1
- package/dist/core/config/feature-flags.js +0 -3
- package/dist/core/config/feature-flags.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/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/tools/index.d.ts +2 -6
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +2 -17
- 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/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +0 -5
- package/dist/utils/gitignore.js.map +1 -1
- package/package.json +2 -1
- 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/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/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
package/dist/mcp/tools/health.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Health Monitor Tools Module - v13.5.0
|
|
3
|
-
*
|
|
4
|
-
* MCP tool for context health monitoring.
|
|
5
|
-
* Wires the context-health engine to be callable from hooks and manually.
|
|
6
|
-
*
|
|
7
|
-
* Tools:
|
|
8
|
-
* - dino_health_check - Check context health status
|
|
9
|
-
*/
|
|
10
|
-
import { defineTool, registry, } from '../registry.js';
|
|
11
|
-
import { executeHealthCheck, } from '../../core/context/context-health.js';
|
|
12
|
-
import { loadAccessPatterns, } from '../../core/context/access-tracker.js';
|
|
13
|
-
import { createLazyContext, } from '../../core/context/lazy-loader.js';
|
|
14
|
-
import { join } from 'path';
|
|
15
|
-
import { FileSystem } from '../../utils/file-system.js';
|
|
16
|
-
// =============================================================================
|
|
17
|
-
// State Loading
|
|
18
|
-
// =============================================================================
|
|
19
|
-
/**
|
|
20
|
-
* Get current focus area from session
|
|
21
|
-
*/
|
|
22
|
-
async function getCurrentFocus(projectDir) {
|
|
23
|
-
const sessionPath = join(projectDir, '.dino', 'session.md');
|
|
24
|
-
if (await FileSystem.exists(sessionPath)) {
|
|
25
|
-
const content = await FileSystem.readFileSafe(sessionPath);
|
|
26
|
-
if (content) {
|
|
27
|
-
const match = content.match(/## Focus\s*\n\*\*([^*]+)\*\*/);
|
|
28
|
-
if (match) {
|
|
29
|
-
return match[1].trim();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return '';
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get current budget percentage from session
|
|
37
|
-
*/
|
|
38
|
-
async function getCurrentBudget(projectDir) {
|
|
39
|
-
const sessionPath = join(projectDir, '.dino', 'session.md');
|
|
40
|
-
if (await FileSystem.exists(sessionPath)) {
|
|
41
|
-
const content = await FileSystem.readFileSafe(sessionPath);
|
|
42
|
-
if (content) {
|
|
43
|
-
const match = content.match(/Budget.*?(\d+)%/);
|
|
44
|
-
if (match) {
|
|
45
|
-
return parseInt(match[1], 10);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return 50; // Default
|
|
50
|
-
}
|
|
51
|
-
// =============================================================================
|
|
52
|
-
// Tool Handlers
|
|
53
|
-
// =============================================================================
|
|
54
|
-
/**
|
|
55
|
-
* Health check handler
|
|
56
|
-
*/
|
|
57
|
-
async function handleHealthCheck(params, projectDir) {
|
|
58
|
-
// Load access patterns state (has proper loader)
|
|
59
|
-
const accessState = await loadAccessPatterns(projectDir);
|
|
60
|
-
// Create lazy context state (no persistent state file by default)
|
|
61
|
-
const lazyState = createLazyContext();
|
|
62
|
-
// Get budget and focus
|
|
63
|
-
const budgetPercentage = params.budgetPercentage ?? await getCurrentBudget(projectDir);
|
|
64
|
-
const focusArea = params.focusArea ?? await getCurrentFocus(projectDir);
|
|
65
|
-
// Execute health check
|
|
66
|
-
const report = await executeHealthCheck(accessState, lazyState, {
|
|
67
|
-
budgetPercentage,
|
|
68
|
-
focusArea,
|
|
69
|
-
}, projectDir);
|
|
70
|
-
const lines = [];
|
|
71
|
-
lines.push('# Context Health Report');
|
|
72
|
-
lines.push('');
|
|
73
|
-
// Status with indicator
|
|
74
|
-
const statusIndicator = report.status === 'healthy' ? '[OK]' :
|
|
75
|
-
report.status === 'warning' ? '[WARNING]' : '[CRITICAL]';
|
|
76
|
-
lines.push(`**Status:** ${statusIndicator} (${report.status})`);
|
|
77
|
-
lines.push(`**Rot Index:** ${report.rotIndex}%`);
|
|
78
|
-
lines.push('');
|
|
79
|
-
// Components
|
|
80
|
-
lines.push('## Health Components');
|
|
81
|
-
lines.push(`- Staleness: ${report.components.staleness}%`);
|
|
82
|
-
lines.push(`- Redundancy: ${report.components.redundancy}%`);
|
|
83
|
-
lines.push(`- Budget Pressure: ${report.components.budgetPressure}%`);
|
|
84
|
-
lines.push(`- Fragmentation: ${report.components.fragmentation}%`);
|
|
85
|
-
lines.push(`- Focus Fragmentation: ${report.components.focusFragmentation}%`);
|
|
86
|
-
lines.push('');
|
|
87
|
-
// Age distribution
|
|
88
|
-
lines.push('## Age Distribution');
|
|
89
|
-
lines.push(`- Fresh (<5 min): ${report.ageDistribution.fresh}`);
|
|
90
|
-
lines.push(`- Warm (<30 min): ${report.ageDistribution.warm}`);
|
|
91
|
-
lines.push(`- Stale (>30 min): ${report.ageDistribution.stale}`);
|
|
92
|
-
lines.push('');
|
|
93
|
-
// Focus distribution
|
|
94
|
-
if (focusArea) {
|
|
95
|
-
lines.push('## Focus Distribution');
|
|
96
|
-
lines.push(`- Focus Area: ${report.focusDistribution.focusArea || focusArea}`);
|
|
97
|
-
lines.push(`- In Focus: ${report.focusDistribution.inFocus}`);
|
|
98
|
-
lines.push(`- Near Focus: ${report.focusDistribution.nearFocus}`);
|
|
99
|
-
lines.push(`- Out of Focus: ${report.focusDistribution.outOfFocus}`);
|
|
100
|
-
lines.push('');
|
|
101
|
-
}
|
|
102
|
-
// Recommendations
|
|
103
|
-
if (report.recommendations.length > 0) {
|
|
104
|
-
lines.push('## Recommendations');
|
|
105
|
-
for (const rec of report.recommendations) {
|
|
106
|
-
lines.push(`- ${rec}`);
|
|
107
|
-
}
|
|
108
|
-
lines.push('');
|
|
109
|
-
}
|
|
110
|
-
// Summary
|
|
111
|
-
lines.push(`**Summary:** ${report.summary}`);
|
|
112
|
-
// Verbose mode: add raw data
|
|
113
|
-
if (params.verbose === 'true') {
|
|
114
|
-
lines.push('');
|
|
115
|
-
lines.push('## Raw Data');
|
|
116
|
-
lines.push('```json');
|
|
117
|
-
lines.push(JSON.stringify(report, null, 2));
|
|
118
|
-
lines.push('```');
|
|
119
|
-
}
|
|
120
|
-
return lines.join('\n');
|
|
121
|
-
}
|
|
122
|
-
// =============================================================================
|
|
123
|
-
// Tool Definitions
|
|
124
|
-
// =============================================================================
|
|
125
|
-
/**
|
|
126
|
-
* Health check tool definition
|
|
127
|
-
*/
|
|
128
|
-
export const healthCheckTool = defineTool({
|
|
129
|
-
name: 'dino_health_check',
|
|
130
|
-
description: 'Check context health status including staleness, redundancy, and rot index (v13.5.0). Part of auto context engineering.',
|
|
131
|
-
category: 'retrieval',
|
|
132
|
-
inputSchema: {
|
|
133
|
-
type: 'object',
|
|
134
|
-
properties: {
|
|
135
|
-
budgetPercentage: {
|
|
136
|
-
type: 'number',
|
|
137
|
-
description: 'Current budget percentage 0-100. Auto-detected from session if not provided.',
|
|
138
|
-
},
|
|
139
|
-
focusArea: {
|
|
140
|
-
type: 'string',
|
|
141
|
-
description: 'Current focus area (e.g., src/core/). Auto-detected from session if not provided.',
|
|
142
|
-
},
|
|
143
|
-
verbose: {
|
|
144
|
-
type: 'string',
|
|
145
|
-
enum: ['true', 'false'],
|
|
146
|
-
description: 'Include raw JSON data in output (default: false)',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
required: [],
|
|
150
|
-
},
|
|
151
|
-
handler: handleHealthCheck,
|
|
152
|
-
whenToUse: 'Use to check context health status. Called by session-start hook. Helps identify context rot and provides cleanup recommendations.',
|
|
153
|
-
relatedTools: ['dino_auto_unload', 'dino_auto_inject'],
|
|
154
|
-
version: '13.5.0',
|
|
155
|
-
});
|
|
156
|
-
// =============================================================================
|
|
157
|
-
// Exports
|
|
158
|
-
// =============================================================================
|
|
159
|
-
/**
|
|
160
|
-
* All health tools
|
|
161
|
-
*/
|
|
162
|
-
export const healthTools = [
|
|
163
|
-
healthCheckTool,
|
|
164
|
-
];
|
|
165
|
-
/**
|
|
166
|
-
* Register all health tools with the registry
|
|
167
|
-
*/
|
|
168
|
-
export function registerHealthTools() {
|
|
169
|
-
registry.registerTools(healthTools);
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=health.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/mcp/tools/health.ts"],"names":[],"mappings":"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"}
|