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.
Files changed (133) hide show
  1. package/README.md +5 -82
  2. package/bin/dino-hud.js +1 -1
  3. package/bin/dino.js +1 -1
  4. package/dist/commands/hud.d.ts +8 -1
  5. package/dist/commands/hud.d.ts.map +1 -1
  6. package/dist/commands/hud.js +18 -4
  7. package/dist/commands/hud.js.map +1 -1
  8. package/dist/core/agents/context-isolation.js +26 -26
  9. package/dist/core/config/feature-flags.d.ts +1 -25
  10. package/dist/core/config/feature-flags.d.ts.map +1 -1
  11. package/dist/core/config/feature-flags.js +1 -7
  12. package/dist/core/config/feature-flags.js.map +1 -1
  13. package/dist/core/context/auto-injection-engine.d.ts +1 -10
  14. package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
  15. package/dist/core/context/auto-injection-engine.js +2 -45
  16. package/dist/core/context/auto-injection-engine.js.map +1 -1
  17. package/dist/core/context/context-health.d.ts +2 -27
  18. package/dist/core/context/context-health.d.ts.map +1 -1
  19. package/dist/core/context/context-health.js +12 -98
  20. package/dist/core/context/context-health.js.map +1 -1
  21. package/dist/core/context/index.d.ts +2 -3
  22. package/dist/core/context/index.d.ts.map +1 -1
  23. package/dist/core/context/index.js +2 -18
  24. package/dist/core/context/index.js.map +1 -1
  25. package/dist/core/context/lazy-loader.d.ts +1 -44
  26. package/dist/core/context/lazy-loader.d.ts.map +1 -1
  27. package/dist/core/context/lazy-loader.js +1 -59
  28. package/dist/core/context/lazy-loader.js.map +1 -1
  29. package/dist/core/context-repl/index.d.ts +3 -8
  30. package/dist/core/context-repl/index.d.ts.map +1 -1
  31. package/dist/core/context-repl/index.js +3 -11
  32. package/dist/core/context-repl/index.js.map +1 -1
  33. package/dist/core/context-repl/types.d.ts +1 -277
  34. package/dist/core/context-repl/types.d.ts.map +1 -1
  35. package/dist/core/context-repl/types.js +1 -52
  36. package/dist/core/context-repl/types.js.map +1 -1
  37. package/dist/core/generator/claude-md.js +1 -1
  38. package/dist/core/provider/storage.d.ts.map +1 -1
  39. package/dist/core/provider/storage.js +2 -1
  40. package/dist/core/provider/storage.js.map +1 -1
  41. package/dist/hooks/post-edit.js +0 -73
  42. package/dist/hooks/post-edit.js.map +1 -1
  43. package/dist/hooks/session-start.js +0 -115
  44. package/dist/hooks/session-start.js.map +1 -1
  45. package/dist/hooks/types.js +1 -1
  46. package/dist/hooks/user-prompt-submit.js +0 -100
  47. package/dist/hooks/user-prompt-submit.js.map +1 -1
  48. package/dist/hud/config-tui.d.ts +25 -0
  49. package/dist/hud/config-tui.d.ts.map +1 -0
  50. package/dist/hud/config-tui.js +199 -0
  51. package/dist/hud/config-tui.js.map +1 -0
  52. package/dist/hud/config.d.ts +28 -3
  53. package/dist/hud/config.d.ts.map +1 -1
  54. package/dist/hud/config.js +60 -8
  55. package/dist/hud/config.js.map +1 -1
  56. package/dist/hud/index.d.ts.map +1 -1
  57. package/dist/hud/index.js +1 -0
  58. package/dist/hud/index.js.map +1 -1
  59. package/dist/hud/models.d.ts +58 -0
  60. package/dist/hud/models.d.ts.map +1 -0
  61. package/dist/hud/models.js +124 -0
  62. package/dist/hud/models.js.map +1 -0
  63. package/dist/hud/render/budget-bar.d.ts +2 -0
  64. package/dist/hud/render/budget-bar.d.ts.map +1 -1
  65. package/dist/hud/render/budget-bar.js +8 -5
  66. package/dist/hud/render/budget-bar.js.map +1 -1
  67. package/dist/hud/stdin.d.ts +3 -0
  68. package/dist/hud/stdin.d.ts.map +1 -1
  69. package/dist/hud/stdin.js +29 -2
  70. package/dist/hud/stdin.js.map +1 -1
  71. package/dist/hud/token-estimator.d.ts +79 -0
  72. package/dist/hud/token-estimator.d.ts.map +1 -0
  73. package/dist/hud/token-estimator.js +126 -0
  74. package/dist/hud/token-estimator.js.map +1 -0
  75. package/dist/hud/types.d.ts +2 -0
  76. package/dist/hud/types.d.ts.map +1 -1
  77. package/dist/mcp/server.d.ts +1 -2
  78. package/dist/mcp/server.d.ts.map +1 -1
  79. package/dist/mcp/server.js +3 -12
  80. package/dist/mcp/server.js.map +1 -1
  81. package/dist/mcp/tool-tiers.d.ts.map +1 -1
  82. package/dist/mcp/tool-tiers.js +0 -5
  83. package/dist/mcp/tool-tiers.js.map +1 -1
  84. package/dist/mcp/tools/index.d.ts +2 -7
  85. package/dist/mcp/tools/index.d.ts.map +1 -1
  86. package/dist/mcp/tools/index.js +2 -25
  87. package/dist/mcp/tools/index.js.map +1 -1
  88. package/dist/mcp-server.d.ts.map +1 -1
  89. package/dist/mcp-server.js +5 -9
  90. package/dist/mcp-server.js.map +1 -1
  91. package/dist/rules/index.js +2 -2
  92. package/dist/utils/exec.js +2 -2
  93. package/dist/utils/exec.js.map +1 -1
  94. package/dist/utils/gitignore.d.ts.map +1 -1
  95. package/dist/utils/gitignore.js +0 -5
  96. package/dist/utils/gitignore.js.map +1 -1
  97. package/package.json +77 -76
  98. package/dist/core/context/focus-resource-loader.d.ts +0 -143
  99. package/dist/core/context/focus-resource-loader.d.ts.map +0 -1
  100. package/dist/core/context/focus-resource-loader.js +0 -305
  101. package/dist/core/context/focus-resource-loader.js.map +0 -1
  102. package/dist/core/context-repl/__tests__/repl-environment.test.d.ts +0 -7
  103. package/dist/core/context-repl/__tests__/repl-environment.test.d.ts.map +0 -1
  104. package/dist/core/context-repl/__tests__/repl-environment.test.js +0 -335
  105. package/dist/core/context-repl/__tests__/repl-environment.test.js.map +0 -1
  106. package/dist/core/context-repl/context-window-monitor.d.ts +0 -181
  107. package/dist/core/context-repl/context-window-monitor.d.ts.map +0 -1
  108. package/dist/core/context-repl/context-window-monitor.js +0 -309
  109. package/dist/core/context-repl/context-window-monitor.js.map +0 -1
  110. package/dist/core/context-repl/repl-environment.d.ts +0 -66
  111. package/dist/core/context-repl/repl-environment.d.ts.map +0 -1
  112. package/dist/core/context-repl/repl-environment.js +0 -795
  113. package/dist/core/context-repl/repl-environment.js.map +0 -1
  114. package/dist/mcp/focus-filter.d.ts +0 -74
  115. package/dist/mcp/focus-filter.d.ts.map +0 -1
  116. package/dist/mcp/focus-filter.js +0 -229
  117. package/dist/mcp/focus-filter.js.map +0 -1
  118. package/dist/mcp/tools/auto-inject.d.ts +0 -36
  119. package/dist/mcp/tools/auto-inject.d.ts.map +0 -1
  120. package/dist/mcp/tools/auto-inject.js +0 -143
  121. package/dist/mcp/tools/auto-inject.js.map +0 -1
  122. package/dist/mcp/tools/auto-unload.d.ts +0 -29
  123. package/dist/mcp/tools/auto-unload.d.ts.map +0 -1
  124. package/dist/mcp/tools/auto-unload.js +0 -151
  125. package/dist/mcp/tools/auto-unload.js.map +0 -1
  126. package/dist/mcp/tools/context-repl.d.ts +0 -48
  127. package/dist/mcp/tools/context-repl.d.ts.map +0 -1
  128. package/dist/mcp/tools/context-repl.js +0 -290
  129. package/dist/mcp/tools/context-repl.js.map +0 -1
  130. package/dist/mcp/tools/health.d.ts +0 -29
  131. package/dist/mcp/tools/health.d.ts.map +0 -1
  132. package/dist/mcp/tools/health.js +0 -171
  133. package/dist/mcp/tools/health.js.map +0 -1
@@ -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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"}