pumuki-ast-hooks 5.3.15 → 5.3.17
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/bin/install.js +0 -0
- package/docs/RELEASE_NOTES.md +6 -6
- package/docs/RELEASE_NOTES_5.3.4.md +170 -0
- package/docs/VIOLATIONS_RESOLUTION_PLAN.md +95 -0
- package/package.json +1 -1
- package/scripts/hooks-system/.AI_TOKEN_STATUS.txt +1 -1
- package/scripts/hooks-system/.audit-reports/auto-recovery.log +2 -0
- package/scripts/hooks-system/.audit-reports/install-wizard.log +8 -0
- package/scripts/hooks-system/.audit-reports/notifications.log +51 -0
- package/scripts/hooks-system/.audit-reports/token-monitor.log +153 -0
- package/scripts/hooks-system/application/services/PlaybookRunner.js +1 -1
- package/scripts/hooks-system/application/services/installation/GitEnvironmentService.js +1 -1
- package/scripts/hooks-system/application/services/installation/McpConfigurator.js +1 -5
- package/scripts/hooks-system/bin/cli.js +15 -1
- package/scripts/hooks-system/bin/pumuki-mcp.js +12 -52
- package/scripts/hooks-system/config/project.config.json +1 -1
- package/scripts/hooks-system/domain/events/index.js +16 -6
- package/scripts/hooks-system/infrastructure/mcp/ast-intelligence-automation.js +24 -1
- package/scripts/hooks-system/infrastructure/shell/orchestrators/audit-orchestrator.sh +3 -3
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/.audit-reports/token-monitor.log +3 -0
package/bin/install.js
CHANGED
|
File without changes
|
package/docs/RELEASE_NOTES.md
CHANGED
|
@@ -8,21 +8,21 @@
|
|
|
8
8
|
|
|
9
9
|
## 🎯 Overview
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
This release fixes MCP configuration in Windsurf to avoid collisions when multiple projects are open in parallel. It now uses a single global entry with an absolute path to the repo’s local binary and removes the legacy hardcode in the CLI configurator.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
## 🐛 Bug Fixes
|
|
16
16
|
|
|
17
|
-
### Fixed:
|
|
18
|
-
- **Issue**:
|
|
19
|
-
- **Resolution**:
|
|
20
|
-
- **Impact**:
|
|
17
|
+
### Fixed: MCP collision when opening multiple repos in Windsurf
|
|
18
|
+
- **Issue**: MCP was generated per workspace with a fixed legacy ID, causing duplicates/cancellations of `ai_gate_check`.
|
|
19
|
+
- **Resolution**: Configuration only in `~/.codeium/windsurf/mcp_config.json` with fixed ID `ast-intelligence-automation` pointing to the local binary; legacy hardcode removed in `pumuki-mcp.js`.
|
|
20
|
+
- **Impact**: MCP no longer collides when working with multiple repos simultaneously.
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
## 📚 Documentation
|
|
25
|
-
-
|
|
25
|
+
- New guide: `docs/MCP_CONFIGURATION.md` explaining global configuration and `ai_gate_check` validation in Windsurf.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Release Notes - v5.3.4
|
|
2
|
+
|
|
3
|
+
**Release Date**: December 29, 2025
|
|
4
|
+
**Type**: Patch Release
|
|
5
|
+
**Compatibility**: Fully backward compatible with 5.3.x
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🎯 Overview
|
|
10
|
+
|
|
11
|
+
Version 5.3.4 addresses critical bugs in the audit orchestrator that were preventing correct analysis of repository files. This patch ensures that audit options work as intended and provide accurate violation reports.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🐛 Bug Fixes
|
|
16
|
+
|
|
17
|
+
### Fixed: Audit Option 2 Analyzing Only Staged Files
|
|
18
|
+
|
|
19
|
+
**Issue**: Option 2 (Strict REPO+STAGING) was incorrectly configured with `STAGING_ONLY_MODE=1`, causing it to analyze only staged files instead of the entire repository.
|
|
20
|
+
|
|
21
|
+
**Impact**: Users running full repository audits were only seeing violations from staged files, missing thousands of potential issues in the codebase.
|
|
22
|
+
|
|
23
|
+
**Resolution**:
|
|
24
|
+
- Added `unset STAGING_ONLY_MODE` in `full_audit_strict_repo_and_staging()` function
|
|
25
|
+
- Added `export AUDIT_LIBRARY=true` to include library files in analysis
|
|
26
|
+
- Fixed environment variable propagation to Node.js subprocess
|
|
27
|
+
|
|
28
|
+
**Files Changed**:
|
|
29
|
+
- `scripts/hooks-system/infrastructure/shell/orchestrators/audit-orchestrator.sh`
|
|
30
|
+
|
|
31
|
+
**Verification**:
|
|
32
|
+
```bash
|
|
33
|
+
# Before: Only staged files analyzed
|
|
34
|
+
npm run audit # Option 2 → ~376 files, ~546 violations
|
|
35
|
+
|
|
36
|
+
# After: Full repository analyzed
|
|
37
|
+
npm run audit # Option 2 → All files, correct violation count
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### Fixed: AUDIT_LIBRARY Not Passed to Node.js Process
|
|
43
|
+
|
|
44
|
+
**Issue**: The `AUDIT_LIBRARY` environment variable was set in the shell but not exported to the Node.js subprocess executing `ast-intelligence.js`.
|
|
45
|
+
|
|
46
|
+
**Impact**: When auditing the library itself, files in `scripts/hooks-system/` were being incorrectly filtered out.
|
|
47
|
+
|
|
48
|
+
**Resolution**:
|
|
49
|
+
- Modified `run_ast_intelligence()` to explicitly export `AUDIT_LIBRARY` when spawning Node.js process
|
|
50
|
+
- Ensured variable is available in both execution paths (with and without `NODE_PATH`)
|
|
51
|
+
|
|
52
|
+
**Files Changed**:
|
|
53
|
+
- `scripts/hooks-system/infrastructure/shell/orchestrators/audit-orchestrator.sh` (lines 1014, 1016)
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### Improved: Staged File Path Matching
|
|
58
|
+
|
|
59
|
+
**Issue**: Violations in staged files were not being correctly matched due to differences between absolute and relative path formats.
|
|
60
|
+
|
|
61
|
+
**Impact**: Staged file summary showed incorrect violation counts.
|
|
62
|
+
|
|
63
|
+
**Resolution**:
|
|
64
|
+
- Enhanced `compute_staged_summary()` to use both relative and absolute paths for matching
|
|
65
|
+
- Implemented more robust path comparison using `endswith()` logic
|
|
66
|
+
- Added `staged-rel.txt` for relative path storage
|
|
67
|
+
|
|
68
|
+
**Files Changed**:
|
|
69
|
+
- `scripts/hooks-system/infrastructure/shell/orchestrators/audit-orchestrator.sh` (lines 337-370)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 🔧 Improvements
|
|
74
|
+
|
|
75
|
+
### Enhanced Error Messages
|
|
76
|
+
|
|
77
|
+
- Improved informative messages when no AST-compatible files are staged (Option 3)
|
|
78
|
+
- Better debug output for troubleshooting audit issues
|
|
79
|
+
|
|
80
|
+
### Code Quality
|
|
81
|
+
|
|
82
|
+
- Cleaned up debug console.log statements
|
|
83
|
+
- Improved code organization in audit orchestrator
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 📦 Installation
|
|
88
|
+
|
|
89
|
+
### New Installation
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npm install --save-dev @pumuki/ast-intelligence-hooks@5.3.4
|
|
93
|
+
npm run install-hooks
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Upgrade from 5.3.3
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm install --save-dev @pumuki/ast-intelligence-hooks@5.3.4
|
|
100
|
+
npm run install-hooks # Recommended to update orchestrator scripts
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
See [Migration Guide](./MIGRATION_5.3.4.md) for detailed upgrade instructions.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## ✅ Verification
|
|
108
|
+
|
|
109
|
+
After upgrading, verify the fixes:
|
|
110
|
+
|
|
111
|
+
### Test 1: Full Repository Audit (Option 2)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm run audit
|
|
115
|
+
# Select option 2: "Strict REPO+STAGING"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Expected**: Should analyze ALL files in repository, not just staged files.
|
|
119
|
+
|
|
120
|
+
### Test 2: Staging Only Audit (Option 3)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git add src/some-file.ts
|
|
124
|
+
npm run audit
|
|
125
|
+
# Select option 3: "Strict STAGING only"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Expected**: Should analyze only staged files and show correct violations.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 🔄 Breaking Changes
|
|
133
|
+
|
|
134
|
+
**None**. This is a fully backward-compatible patch release.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 📚 Documentation
|
|
139
|
+
|
|
140
|
+
- [CHANGELOG](../CHANGELOG.md)
|
|
141
|
+
- [Migration Guide](./MIGRATION_5.3.4.md)
|
|
142
|
+
- [Installation Guide](./INSTALLATION.md)
|
|
143
|
+
- [API Reference](./API_REFERENCE.md)
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 🙏 Acknowledgments
|
|
148
|
+
|
|
149
|
+
Thanks to all users who reported issues and helped identify these bugs.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 📞 Support
|
|
154
|
+
|
|
155
|
+
- **Issues**: [GitHub Issues](https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/issues)
|
|
156
|
+
- **Discussions**: [GitHub Discussions](https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/discussions)
|
|
157
|
+
- **Email**: freelancemerlos@gmail.com
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 🚀 What's Next?
|
|
162
|
+
|
|
163
|
+
Stay tuned for upcoming features in future releases:
|
|
164
|
+
- Enhanced violation reporting
|
|
165
|
+
- Performance optimizations
|
|
166
|
+
- Additional platform support
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
**Full Changelog**: [5.3.3...5.3.4](https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/compare/v5.3.3...v5.3.4)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# 🚀 Plan de Resolución de Violaciones - ast-intelligence-hooks
|
|
2
|
+
|
|
3
|
+
## 🧭 Leyenda de Estado (viva)
|
|
4
|
+
- ✅ **Hecho** (tarea completada exitosamente)
|
|
5
|
+
- 🚧 **En construcción** (tarea en progreso)
|
|
6
|
+
- ⏳ **Pendiente** (tarea aún no iniciada)
|
|
7
|
+
- ❌ **Bloqueada** (tarea impedida por dependencias o problemas externos)
|
|
8
|
+
- 🔄 **Revisión** (tarea completada pero pendiente de verificación o ajustes)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 📊 Resumen Ejecutivo
|
|
13
|
+
- **Estado actual:** ⚠️ Acción requerida (217 críticas, 1 alta, 117 medias, 211 bajas)
|
|
14
|
+
- **Branch:** `fix/audit-staged-severity-case-insensitive`
|
|
15
|
+
- **Fecha de inicio:** 30/12/2025 — **ETA general:** 15/01/2026
|
|
16
|
+
- **Objetivo:** Reducir a 0 las CRÍTICAS/HIGH y bajar el total < 20 antes de permitir commits sin bypass.
|
|
17
|
+
- **Riesgos:**
|
|
18
|
+
1) Complejidad al refactorizar excepciones; 2) Dependencias entre módulos/config; 3) Tiempo limitado para instrumentación (Prometheus / audit logging).
|
|
19
|
+
|
|
20
|
+
**Referencias rápidas:**
|
|
21
|
+
- [Violations report](../.violations-by-priority.md)
|
|
22
|
+
- [AST summary JSON](../.audit-reports/latest_ast_summary.json)
|
|
23
|
+
- [Arquitectura](../ARCHITECTURE.md)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 📅 Timeline Visual (fechas estimadas)
|
|
28
|
+
```mermaid
|
|
29
|
+
gantt
|
|
30
|
+
title Fases de Resolución de Violaciones
|
|
31
|
+
dateFormat YYYY-MM-DD
|
|
32
|
+
section Fase 1: CRÍTICAS
|
|
33
|
+
Excepciones personalizadas :active, crit1, 2025-12-30, 4d
|
|
34
|
+
Separación de entornos : crit2, after crit1, 3d
|
|
35
|
+
Auditoría de seguridad : crit3, after crit2, 3d
|
|
36
|
+
Métricas Prometheus : crit4, after crit3, 2d
|
|
37
|
+
Patrones de confiabilidad : crit5, after crit4, 2d
|
|
38
|
+
|
|
39
|
+
section Fase 2: HIGH + MEDIUM
|
|
40
|
+
Corrección HIGH : high1, after crit5, 1d
|
|
41
|
+
Refactorización MEDIUM : med1, after high1, 5d
|
|
42
|
+
|
|
43
|
+
section Fase 3: LOW
|
|
44
|
+
Optimizaciones y documentación : low1, after med1, 5d
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🔴 Fase 1: Violaciones CRÍTICAS (217)
|
|
50
|
+
| Estado | Violación | Cant. | Responsable | DOD (Definition of Done) | Doc |
|
|
51
|
+
|--------|-----------|-------|-------------|--------------------------|-----|
|
|
52
|
+
| ✅ | backend.error.custom_exceptions | 105 | BE | CustomError base + reemplazo de `Error` genérico en BE; tests pasando | [Guía de excepciones](../docs/error-handling.md) |
|
|
53
|
+
| 🚧 | backend.config.missing_env_separation | 80 | BE | Config por entorno (dev/stg/prod), sin secretos hardcode | [Config entornos](../docs/env-configuration.md) |
|
|
54
|
+
| ⏳ | backend.security.missing_audit_logging | 69 | BE | Audit trail en operaciones sensibles + logs estructurados | [Audit logging](../docs/security-auditing.md) |
|
|
55
|
+
| ⏳ | backend.metrics.missing_prometheus | 64 | BE | Endpoints /metrics, instrumentación clave y dashboard base | [Prometheus](../docs/metrics-monitoring.md) |
|
|
56
|
+
| ⏳ | backend.reliability.missing_bulkhead | 40 | BE | Limitadores/aislamiento en puntos críticos + pruebas de carga | [Reliability](../docs/reliability-patterns.md) |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 🟠 Fase 2: Violaciones HIGH + MEDIUM (118)
|
|
61
|
+
| Estado | Violación | Cant. | Responsable | DOD | Doc |
|
|
62
|
+
|--------|-----------|-------|-------------|-----|-----|
|
|
63
|
+
| ⏳ | HIGH (1) | 1 | BE | Tipado estricto sin `any`; tests verdes | [Type safety](../docs/type-safety.md) |
|
|
64
|
+
| ⏳ | backend.testing.mocks | 40 | QA/BE | Mocks revisados; cobertura > 80% en módulos afectados | [Testing](../docs/testing-strategies.md) |
|
|
65
|
+
| ⏳ | backend.event.handler | 26 | BE | Handlers idempotentes + tests de eventos | [Eventos](../docs/event-handling.md) |
|
|
66
|
+
| ⏳ | backend.observability.missing_prometheus | 24 | BE | Métricas por handler; dashboards mínimos | [Observabilidad](../docs/observability.md) |
|
|
67
|
+
| ⏳ | backend.auth.missing_cors | 17 | BE | Política CORS por entorno; tests e2e básicos | [CORS](../docs/cors-configuration.md) |
|
|
68
|
+
| ⏳ | backend.observability.missing_alerting | 10 | SRE | Alertas en métricas críticas; umbrales definidos | [Alerting](../docs/alerting-system.md) |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 🔵 Fase 3: Violaciones LOW (211)
|
|
73
|
+
| Estado | Violación | Cant. | Responsable | DOD | Doc |
|
|
74
|
+
|--------|-----------|-------|-------------|-----|-----|
|
|
75
|
+
| ⏳ | frontend.code_quality.comment | 4 | FE | Comentarios depurados; lint OK | [Code standards](../docs/code-standards.md) |
|
|
76
|
+
| ⏳ | frontend.code_quality.magic_number | 4 | FE | Constantes declaradas; tests ajustados | [Constantes](../docs/constants-vs-magic-numbers.md) |
|
|
77
|
+
| ⏳ | frontend.devops.hardcoded_feature_flag | 2 | FE/DevOps | Flags externalizados por entorno | [Feature flags](../docs/feature-flags.md) |
|
|
78
|
+
| ⏳ | frontend.performance.code_splitting | 2 | FE | Split aplicado en rutas pesadas; bundle size reducido | [Perf FE](../docs/frontend-performance.md) |
|
|
79
|
+
| ⏳ | frontend.performance.missing_code_splitting | 2 | FE | Lazy loading habilitado en vistas grandes | [Code splitting](../docs/code-splitting.md) |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 📈 Métricas de Progreso
|
|
84
|
+
| Fase | Total | Completado | % |
|
|
85
|
+
|------|-------|------------|---|
|
|
86
|
+
| CRÍTICAS | 217 | 0 | 0% |
|
|
87
|
+
| HIGH + MEDIUM | 118 | 0 | 0% |
|
|
88
|
+
| LOW | 211 | 0 | 0% |
|
|
89
|
+
| **TOTAL** | **546** | **0** | **0%** |
|
|
90
|
+
|
|
91
|
+
**Riesgos actualizados:**
|
|
92
|
+
1) Implementación de Prometheus podría requerir cambios de infra; 2) Revisión de seguridad depende de disponibilidad de equipo; 3) Refactorizaciones pueden impactar tiempos.
|
|
93
|
+
|
|
94
|
+
**Comentarios/Notas colaborativas:**
|
|
95
|
+
- Añade comentarios bajo cada tabla al cerrar tareas (usa la leyenda para actualizar estados).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki-ast-hooks",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.17",
|
|
4
4
|
"description": "Enterprise-grade AST Intelligence System with multi-platform support (iOS, Android, Backend, Frontend) and Feature-First + DDD + Clean Architecture enforcement. Includes dynamic violations API for intelligent querying.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
{"timestamp":"2025-12-28T13:58:33.364Z","level":"info","component":"AutoRecovery","event":"NotificationCenterService shutdown","data":{"totalEnqueued":0,"totalSent":0,"totalDeduplicated":0,"totalCooldownSkipped":0,"totalFailed":0,"totalRetries":0,"queueSize":0,"deduplication":{"size":0},"cooldowns":{"activeCooldowns":0}},"context":{}}
|
|
2
2
|
{"timestamp":"2025-12-29T14:01:15.120Z","level":"info","component":"AutoRecovery","event":"NotificationCenterService shutdown","data":{"totalEnqueued":0,"totalSent":0,"totalDeduplicated":0,"totalCooldownSkipped":0,"totalFailed":0,"totalRetries":0,"queueSize":0,"deduplication":{"size":0},"cooldowns":{"activeCooldowns":0}},"context":{}}
|
|
3
|
+
{"timestamp":"2025-12-30T08:17:43.107Z","level":"info","component":"AutoRecovery","event":"NotificationCenterService shutdown","data":{"totalEnqueued":0,"totalSent":0,"totalDeduplicated":0,"totalCooldownSkipped":0,"totalFailed":0,"totalRetries":0,"queueSize":0,"deduplication":{"size":0},"cooldowns":{"activeCooldowns":0}},"context":{}}
|
|
4
|
+
{"timestamp":"2025-12-30T08:18:14.228Z","level":"info","component":"AutoRecovery","event":"NotificationCenterService shutdown","data":{"totalEnqueued":0,"totalSent":0,"totalDeduplicated":0,"totalCooldownSkipped":0,"totalFailed":0,"totalRetries":0,"queueSize":0,"deduplication":{"size":0},"cooldowns":{"activeCooldowns":0}},"context":{}}
|
|
@@ -6,3 +6,11 @@
|
|
|
6
6
|
{"timestamp":"2025-12-29T14:01:15.064Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_CONFIG_EXISTS","data":{"configPath":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.hook-system/config.json"},"context":{}}
|
|
7
7
|
{"timestamp":"2025-12-29T14:01:15.064Z","level":"error","component":"InstallWizard","event":"INSTALL_WIZARD_SYMLINK_FAILED","data":{"error":"EEXIST: file already exists, symlink '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/scripts/hooks-system/bin/guard-supervisor.js' -> '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.git/hooks/guard-supervisor'"},"context":{}}
|
|
8
8
|
{"timestamp":"2025-12-29T14:01:15.064Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
9
|
+
{"timestamp":"2025-12-30T08:17:43.167Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
10
|
+
{"timestamp":"2025-12-30T08:17:43.175Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_CONFIG_EXISTS","data":{"configPath":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.hook-system/config.json"},"context":{}}
|
|
11
|
+
{"timestamp":"2025-12-30T08:17:43.175Z","level":"error","component":"InstallWizard","event":"INSTALL_WIZARD_SYMLINK_FAILED","data":{"error":"EEXIST: file already exists, symlink '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/scripts/hooks-system/bin/guard-supervisor.js' -> '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.git/hooks/guard-supervisor'"},"context":{}}
|
|
12
|
+
{"timestamp":"2025-12-30T08:17:43.175Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
13
|
+
{"timestamp":"2025-12-30T08:18:14.287Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
14
|
+
{"timestamp":"2025-12-30T08:18:14.294Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_CONFIG_EXISTS","data":{"configPath":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.hook-system/config.json"},"context":{}}
|
|
15
|
+
{"timestamp":"2025-12-30T08:18:14.294Z","level":"error","component":"InstallWizard","event":"INSTALL_WIZARD_SYMLINK_FAILED","data":{"error":"EEXIST: file already exists, symlink '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/scripts/hooks-system/bin/guard-supervisor.js' -> '/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system/.git/hooks/guard-supervisor'"},"context":{}}
|
|
16
|
+
{"timestamp":"2025-12-30T08:18:14.294Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
@@ -798,3 +798,54 @@
|
|
|
798
798
|
{"timestamp":"2025-12-30T05:46:15.082Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"2cca3a88-8da2-43af-a312-e3afaf195e15","type":"token_ok"},"context":{}}
|
|
799
799
|
{"timestamp":"2025-12-30T05:49:15.199Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"89b54d29-cdc7-4098-9824-baccf1d32184","type":"token_ok"},"context":{}}
|
|
800
800
|
{"timestamp":"2025-12-30T05:52:15.297Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"7b5026e8-99bd-406e-a80e-6d76dc650bcc","type":"token_ok"},"context":{}}
|
|
801
|
+
{"timestamp":"2025-12-30T05:55:15.415Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"b66bb262-e90e-4a01-bc48-c68325c739a7","type":"token_ok"},"context":{}}
|
|
802
|
+
{"timestamp":"2025-12-30T05:58:15.529Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"b7b3340b-6f28-4932-a3b1-c253af018c27","type":"token_ok"},"context":{}}
|
|
803
|
+
{"timestamp":"2025-12-30T06:01:15.638Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"a4492bea-8217-4604-af15-76d262b63e47","type":"token_ok"},"context":{}}
|
|
804
|
+
{"timestamp":"2025-12-30T06:04:15.751Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"8be12ade-b5ed-4a60-91d6-168a3b1c3a9f","type":"token_ok"},"context":{}}
|
|
805
|
+
{"timestamp":"2025-12-30T06:07:15.863Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"5c3c02ef-1cbf-4dae-a72b-68ccdca7b793","type":"token_ok"},"context":{}}
|
|
806
|
+
{"timestamp":"2025-12-30T06:10:15.978Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"7158fce4-68ae-444c-867c-c31d362738a7","type":"token_ok"},"context":{}}
|
|
807
|
+
{"timestamp":"2025-12-30T06:13:16.096Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"6b8f8715-61c0-4d42-b4fb-80238e556fad","type":"token_ok"},"context":{}}
|
|
808
|
+
{"timestamp":"2025-12-30T06:16:16.204Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"0a592d5a-db41-414c-a6d3-9dbbee534d9f","type":"token_ok"},"context":{}}
|
|
809
|
+
{"timestamp":"2025-12-30T06:19:16.307Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"562fe726-35f3-46c7-bf84-b5be33f05de3","type":"token_ok"},"context":{}}
|
|
810
|
+
{"timestamp":"2025-12-30T06:22:16.404Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"40aafde8-10bd-47a9-95ff-7388c5c0c529","type":"token_ok"},"context":{}}
|
|
811
|
+
{"timestamp":"2025-12-30T06:25:16.501Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"3aeb5c36-8a83-4dfa-96d9-d8574e0fa546","type":"token_ok"},"context":{}}
|
|
812
|
+
{"timestamp":"2025-12-30T06:28:16.628Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"32434725-03be-467f-aeed-3153a14eb5df","type":"token_ok"},"context":{}}
|
|
813
|
+
{"timestamp":"2025-12-30T06:31:16.738Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"5f16c8a2-81fd-4e3e-8075-b0e171d76a67","type":"token_ok"},"context":{}}
|
|
814
|
+
{"timestamp":"2025-12-30T06:34:16.852Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"29b05d79-ac04-4c22-9179-c30689ac9006","type":"token_ok"},"context":{}}
|
|
815
|
+
{"timestamp":"2025-12-30T06:37:16.952Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"11938df4-8a18-45ea-a5a8-35188baf14ed","type":"token_ok"},"context":{}}
|
|
816
|
+
{"timestamp":"2025-12-30T06:40:17.049Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"925cecd0-def1-4d63-b0a6-c3ae9fcea8cf","type":"token_ok"},"context":{}}
|
|
817
|
+
{"timestamp":"2025-12-30T06:43:17.151Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"d3264621-dc35-401a-b7f6-6f41b8a6a2f8","type":"token_ok"},"context":{}}
|
|
818
|
+
{"timestamp":"2025-12-30T06:46:17.264Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"4e542654-636b-4d07-9358-c3eb5b11a134","type":"token_ok"},"context":{}}
|
|
819
|
+
{"timestamp":"2025-12-30T06:49:17.377Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"4e707dbe-7038-4360-9585-731a092c5d05","type":"token_ok"},"context":{}}
|
|
820
|
+
{"timestamp":"2025-12-30T06:52:17.492Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"c0ab24c1-3483-4b6c-b376-138513bcd2ad","type":"token_ok"},"context":{}}
|
|
821
|
+
{"timestamp":"2025-12-30T06:55:17.610Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"b426e7b7-2505-4f48-819d-784af3e10793","type":"token_ok"},"context":{}}
|
|
822
|
+
{"timestamp":"2025-12-30T06:58:17.701Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"96dafe91-2054-47d1-981d-84bd643ac3c5","type":"token_ok"},"context":{}}
|
|
823
|
+
{"timestamp":"2025-12-30T07:01:17.813Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"8ba344ad-4cc0-42a2-891f-d627599e30e3","type":"token_ok"},"context":{}}
|
|
824
|
+
{"timestamp":"2025-12-30T07:04:17.926Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"f0b35065-aab2-4ac6-bf8a-4e9e1fdbd480","type":"token_ok"},"context":{}}
|
|
825
|
+
{"timestamp":"2025-12-30T07:07:18.037Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"f6c3c758-6088-432b-a152-19abcf6672a8","type":"token_ok"},"context":{}}
|
|
826
|
+
{"timestamp":"2025-12-30T07:10:18.156Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"9a09ce0c-9ae0-4f5d-aa79-be3d5a58d98b","type":"token_ok"},"context":{}}
|
|
827
|
+
{"timestamp":"2025-12-30T07:13:18.245Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"2cc400ab-0c64-43b4-9489-14679df26f58","type":"token_ok"},"context":{}}
|
|
828
|
+
{"timestamp":"2025-12-30T07:16:18.365Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"8e37a715-c5f2-48a1-80e2-2bd77738874f","type":"token_ok"},"context":{}}
|
|
829
|
+
{"timestamp":"2025-12-30T07:19:18.484Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"31937f5e-a455-4ccc-9a1b-f3f762fbe03a","type":"token_ok"},"context":{}}
|
|
830
|
+
{"timestamp":"2025-12-30T07:22:18.599Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"e8ebf4d7-17ef-407e-8c4b-31d1b5172acd","type":"token_ok"},"context":{}}
|
|
831
|
+
{"timestamp":"2025-12-30T07:25:18.705Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"dc164499-35f2-4cca-aa6f-0d748467eb31","type":"token_ok"},"context":{}}
|
|
832
|
+
{"timestamp":"2025-12-30T07:28:18.809Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"3916797e-8e9d-46ff-bb26-012eb5928af7","type":"token_ok"},"context":{}}
|
|
833
|
+
{"timestamp":"2025-12-30T07:31:18.929Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"d2d3f376-9dd0-4ae8-88d2-ababdc439ab1","type":"token_ok"},"context":{}}
|
|
834
|
+
{"timestamp":"2025-12-30T07:34:19.040Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"5da03356-8814-405e-8048-9d3315864ec0","type":"token_ok"},"context":{}}
|
|
835
|
+
{"timestamp":"2025-12-30T07:37:19.153Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"c5a482c6-ddfd-4952-a2a9-e613e8137ef1","type":"token_ok"},"context":{}}
|
|
836
|
+
{"timestamp":"2025-12-30T07:40:19.273Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"ba7bbe3b-bb53-4a64-b5fb-02267190cd48","type":"token_ok"},"context":{}}
|
|
837
|
+
{"timestamp":"2025-12-30T07:43:19.379Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"b66a602e-b4bf-4cae-a67e-9db017e25be3","type":"token_ok"},"context":{}}
|
|
838
|
+
{"timestamp":"2025-12-30T07:46:19.497Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"a3019645-f431-46c5-bc4f-04868e7f0903","type":"token_ok"},"context":{}}
|
|
839
|
+
{"timestamp":"2025-12-30T07:49:19.613Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"e20795d0-1adf-4185-8344-3de8e82d8591","type":"token_ok"},"context":{}}
|
|
840
|
+
{"timestamp":"2025-12-30T07:52:19.735Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"9c81b203-f673-4025-9e11-5f10cea40ab7","type":"token_ok"},"context":{}}
|
|
841
|
+
{"timestamp":"2025-12-30T07:55:19.844Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"a5101979-ff12-47ad-9363-4135ad15714d","type":"token_ok"},"context":{}}
|
|
842
|
+
{"timestamp":"2025-12-30T07:58:19.943Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"3145bcf7-eb68-478a-8b96-23bb7f5dc491","type":"token_ok"},"context":{}}
|
|
843
|
+
{"timestamp":"2025-12-30T08:01:20.057Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"80a62732-80b2-4090-bdee-2e1c5bfe974c","type":"token_ok"},"context":{}}
|
|
844
|
+
{"timestamp":"2025-12-30T08:04:20.174Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"5d039d68-06ba-4faf-929b-9804dd92b6d9","type":"token_ok"},"context":{}}
|
|
845
|
+
{"timestamp":"2025-12-30T08:07:20.291Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"d7520424-d719-4b7c-af56-aa0e18c97a2b","type":"token_ok"},"context":{}}
|
|
846
|
+
{"timestamp":"2025-12-30T08:10:20.410Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"bd75a2df-d12a-4327-b9dc-6a274ae839e9","type":"token_ok"},"context":{}}
|
|
847
|
+
{"timestamp":"2025-12-30T08:13:20.516Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"bb0d1579-a6f5-44bc-8b48-95d80e5be560","type":"token_ok"},"context":{}}
|
|
848
|
+
{"timestamp":"2025-12-30T08:16:20.631Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"2c8d9800-984a-4c65-9bd4-445b39d038d1","type":"token_ok"},"context":{}}
|
|
849
|
+
{"timestamp":"2025-12-30T08:19:20.750Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"aea6dbae-9f29-476f-aae0-eb0baed57b63","type":"token_ok"},"context":{}}
|
|
850
|
+
{"timestamp":"2025-12-30T08:22:20.864Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"9b5ff199-4e82-4c52-ac48-63c3f113bce8","type":"token_ok"},"context":{}}
|
|
851
|
+
{"timestamp":"2025-12-30T08:25:20.986Z","level":"debug","component":"NotificationCenter","event":"Notification enqueued","data":{"id":"c997c7e1-df65-444b-9f83-256def74479f","type":"token_ok"},"context":{}}
|
|
@@ -2398,3 +2398,156 @@
|
|
|
2398
2398
|
{"timestamp":"2025-12-30T05:52:15.286Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2399
2399
|
{"timestamp":"2025-12-30T05:52:15.287Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2400
2400
|
{"timestamp":"2025-12-30T05:52:15.297Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2401
|
+
{"timestamp":"2025-12-30T05:55:15.405Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2402
|
+
{"timestamp":"2025-12-30T05:55:15.406Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2403
|
+
{"timestamp":"2025-12-30T05:55:15.416Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2404
|
+
{"timestamp":"2025-12-30T05:58:15.519Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2405
|
+
{"timestamp":"2025-12-30T05:58:15.520Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2406
|
+
{"timestamp":"2025-12-30T05:58:15.529Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2407
|
+
{"timestamp":"2025-12-30T06:01:15.628Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2408
|
+
{"timestamp":"2025-12-30T06:01:15.629Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2409
|
+
{"timestamp":"2025-12-30T06:01:15.639Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2410
|
+
{"timestamp":"2025-12-30T06:04:15.741Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2411
|
+
{"timestamp":"2025-12-30T06:04:15.742Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2412
|
+
{"timestamp":"2025-12-30T06:04:15.752Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2413
|
+
{"timestamp":"2025-12-30T06:07:15.852Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2414
|
+
{"timestamp":"2025-12-30T06:07:15.853Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2415
|
+
{"timestamp":"2025-12-30T06:07:15.863Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2416
|
+
{"timestamp":"2025-12-30T06:10:15.968Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2417
|
+
{"timestamp":"2025-12-30T06:10:15.969Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2418
|
+
{"timestamp":"2025-12-30T06:10:15.978Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2419
|
+
{"timestamp":"2025-12-30T06:13:16.086Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2420
|
+
{"timestamp":"2025-12-30T06:13:16.087Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2421
|
+
{"timestamp":"2025-12-30T06:13:16.096Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2422
|
+
{"timestamp":"2025-12-30T06:16:16.193Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2423
|
+
{"timestamp":"2025-12-30T06:16:16.195Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2424
|
+
{"timestamp":"2025-12-30T06:16:16.204Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2425
|
+
{"timestamp":"2025-12-30T06:19:16.295Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2426
|
+
{"timestamp":"2025-12-30T06:19:16.296Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2427
|
+
{"timestamp":"2025-12-30T06:19:16.307Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2428
|
+
{"timestamp":"2025-12-30T06:22:16.392Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2429
|
+
{"timestamp":"2025-12-30T06:22:16.393Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2430
|
+
{"timestamp":"2025-12-30T06:22:16.404Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2431
|
+
{"timestamp":"2025-12-30T06:25:16.490Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2432
|
+
{"timestamp":"2025-12-30T06:25:16.491Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2433
|
+
{"timestamp":"2025-12-30T06:25:16.501Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2434
|
+
{"timestamp":"2025-12-30T06:28:16.615Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2435
|
+
{"timestamp":"2025-12-30T06:28:16.616Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2436
|
+
{"timestamp":"2025-12-30T06:28:16.628Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2437
|
+
{"timestamp":"2025-12-30T06:31:16.725Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2438
|
+
{"timestamp":"2025-12-30T06:31:16.727Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2439
|
+
{"timestamp":"2025-12-30T06:31:16.739Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2440
|
+
{"timestamp":"2025-12-30T06:34:16.842Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2441
|
+
{"timestamp":"2025-12-30T06:34:16.843Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2442
|
+
{"timestamp":"2025-12-30T06:34:16.853Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2443
|
+
{"timestamp":"2025-12-30T06:37:16.941Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2444
|
+
{"timestamp":"2025-12-30T06:37:16.942Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2445
|
+
{"timestamp":"2025-12-30T06:37:16.952Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2446
|
+
{"timestamp":"2025-12-30T06:40:17.038Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2447
|
+
{"timestamp":"2025-12-30T06:40:17.039Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2448
|
+
{"timestamp":"2025-12-30T06:40:17.049Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2449
|
+
{"timestamp":"2025-12-30T06:43:17.139Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2450
|
+
{"timestamp":"2025-12-30T06:43:17.141Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2451
|
+
{"timestamp":"2025-12-30T06:43:17.151Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2452
|
+
{"timestamp":"2025-12-30T06:46:17.253Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2453
|
+
{"timestamp":"2025-12-30T06:46:17.254Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2454
|
+
{"timestamp":"2025-12-30T06:46:17.265Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2455
|
+
{"timestamp":"2025-12-30T06:49:17.367Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2456
|
+
{"timestamp":"2025-12-30T06:49:17.368Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2457
|
+
{"timestamp":"2025-12-30T06:49:17.377Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2458
|
+
{"timestamp":"2025-12-30T06:52:17.482Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2459
|
+
{"timestamp":"2025-12-30T06:52:17.483Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2460
|
+
{"timestamp":"2025-12-30T06:52:17.492Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2461
|
+
{"timestamp":"2025-12-30T06:55:17.600Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2462
|
+
{"timestamp":"2025-12-30T06:55:17.601Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2463
|
+
{"timestamp":"2025-12-30T06:55:17.611Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2464
|
+
{"timestamp":"2025-12-30T06:58:17.690Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2465
|
+
{"timestamp":"2025-12-30T06:58:17.691Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2466
|
+
{"timestamp":"2025-12-30T06:58:17.701Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2467
|
+
{"timestamp":"2025-12-30T07:01:17.803Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2468
|
+
{"timestamp":"2025-12-30T07:01:17.804Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2469
|
+
{"timestamp":"2025-12-30T07:01:17.814Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2470
|
+
{"timestamp":"2025-12-30T07:04:17.916Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2471
|
+
{"timestamp":"2025-12-30T07:04:17.917Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2472
|
+
{"timestamp":"2025-12-30T07:04:17.927Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2473
|
+
{"timestamp":"2025-12-30T07:07:18.027Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2474
|
+
{"timestamp":"2025-12-30T07:07:18.028Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2475
|
+
{"timestamp":"2025-12-30T07:07:18.037Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2476
|
+
{"timestamp":"2025-12-30T07:10:18.146Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2477
|
+
{"timestamp":"2025-12-30T07:10:18.147Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2478
|
+
{"timestamp":"2025-12-30T07:10:18.156Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2479
|
+
{"timestamp":"2025-12-30T07:13:18.235Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2480
|
+
{"timestamp":"2025-12-30T07:13:18.236Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2481
|
+
{"timestamp":"2025-12-30T07:13:18.246Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2482
|
+
{"timestamp":"2025-12-30T07:16:18.354Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2483
|
+
{"timestamp":"2025-12-30T07:16:18.355Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2484
|
+
{"timestamp":"2025-12-30T07:16:18.366Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2485
|
+
{"timestamp":"2025-12-30T07:19:18.472Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2486
|
+
{"timestamp":"2025-12-30T07:19:18.473Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2487
|
+
{"timestamp":"2025-12-30T07:19:18.484Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2488
|
+
{"timestamp":"2025-12-30T07:22:18.588Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2489
|
+
{"timestamp":"2025-12-30T07:22:18.589Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2490
|
+
{"timestamp":"2025-12-30T07:22:18.600Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2491
|
+
{"timestamp":"2025-12-30T07:25:18.693Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2492
|
+
{"timestamp":"2025-12-30T07:25:18.694Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2493
|
+
{"timestamp":"2025-12-30T07:25:18.705Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2494
|
+
{"timestamp":"2025-12-30T07:28:18.795Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2495
|
+
{"timestamp":"2025-12-30T07:28:18.797Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2496
|
+
{"timestamp":"2025-12-30T07:28:18.809Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2497
|
+
{"timestamp":"2025-12-30T07:31:18.919Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2498
|
+
{"timestamp":"2025-12-30T07:31:18.920Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2499
|
+
{"timestamp":"2025-12-30T07:31:18.929Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2500
|
+
{"timestamp":"2025-12-30T07:34:19.028Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2501
|
+
{"timestamp":"2025-12-30T07:34:19.030Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2502
|
+
{"timestamp":"2025-12-30T07:34:19.040Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2503
|
+
{"timestamp":"2025-12-30T07:37:19.142Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2504
|
+
{"timestamp":"2025-12-30T07:37:19.143Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2505
|
+
{"timestamp":"2025-12-30T07:37:19.154Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2506
|
+
{"timestamp":"2025-12-30T07:40:19.262Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2507
|
+
{"timestamp":"2025-12-30T07:40:19.263Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2508
|
+
{"timestamp":"2025-12-30T07:40:19.274Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2509
|
+
{"timestamp":"2025-12-30T07:43:19.368Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2510
|
+
{"timestamp":"2025-12-30T07:43:19.369Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2511
|
+
{"timestamp":"2025-12-30T07:43:19.379Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2512
|
+
{"timestamp":"2025-12-30T07:46:19.487Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2513
|
+
{"timestamp":"2025-12-30T07:46:19.488Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2514
|
+
{"timestamp":"2025-12-30T07:46:19.497Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2515
|
+
{"timestamp":"2025-12-30T07:49:19.603Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2516
|
+
{"timestamp":"2025-12-30T07:49:19.605Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2517
|
+
{"timestamp":"2025-12-30T07:49:19.614Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2518
|
+
{"timestamp":"2025-12-30T07:52:19.721Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2519
|
+
{"timestamp":"2025-12-30T07:52:19.722Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2520
|
+
{"timestamp":"2025-12-30T07:52:19.736Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2521
|
+
{"timestamp":"2025-12-30T07:55:19.833Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2522
|
+
{"timestamp":"2025-12-30T07:55:19.834Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2523
|
+
{"timestamp":"2025-12-30T07:55:19.845Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2524
|
+
{"timestamp":"2025-12-30T07:58:19.931Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2525
|
+
{"timestamp":"2025-12-30T07:58:19.933Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2526
|
+
{"timestamp":"2025-12-30T07:58:19.944Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2527
|
+
{"timestamp":"2025-12-30T08:01:20.047Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2528
|
+
{"timestamp":"2025-12-30T08:01:20.048Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2529
|
+
{"timestamp":"2025-12-30T08:01:20.058Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2530
|
+
{"timestamp":"2025-12-30T08:04:20.162Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2531
|
+
{"timestamp":"2025-12-30T08:04:20.163Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2532
|
+
{"timestamp":"2025-12-30T08:04:20.174Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2533
|
+
{"timestamp":"2025-12-30T08:07:20.280Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2534
|
+
{"timestamp":"2025-12-30T08:07:20.281Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2535
|
+
{"timestamp":"2025-12-30T08:07:20.291Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2536
|
+
{"timestamp":"2025-12-30T08:10:20.399Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2537
|
+
{"timestamp":"2025-12-30T08:10:20.400Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2538
|
+
{"timestamp":"2025-12-30T08:10:20.410Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2539
|
+
{"timestamp":"2025-12-30T08:13:20.505Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2540
|
+
{"timestamp":"2025-12-30T08:13:20.506Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2541
|
+
{"timestamp":"2025-12-30T08:13:20.516Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2542
|
+
{"timestamp":"2025-12-30T08:16:20.621Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2543
|
+
{"timestamp":"2025-12-30T08:16:20.622Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2544
|
+
{"timestamp":"2025-12-30T08:16:20.631Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2545
|
+
{"timestamp":"2025-12-30T08:19:20.740Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2546
|
+
{"timestamp":"2025-12-30T08:19:20.741Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2547
|
+
{"timestamp":"2025-12-30T08:19:20.750Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2548
|
+
{"timestamp":"2025-12-30T08:22:20.854Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2549
|
+
{"timestamp":"2025-12-30T08:22:20.855Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2550
|
+
{"timestamp":"2025-12-30T08:22:20.865Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
2551
|
+
{"timestamp":"2025-12-30T08:25:20.975Z","level":"debug","component":"TokenMonitor","event":"CURSOR_SERVICE_USING_FILE","data":{"usage":{"tokensUsed":0,"maxTokens":1000000,"percentUsed":72.36585,"timestamp":"2025-12-29T15:38:11.174Z","source":"file","untrusted":false}},"context":{}}
|
|
2552
|
+
{"timestamp":"2025-12-30T08:25:20.976Z","level":"debug","component":"TokenMonitor","event":"TOKEN_MONITOR_METRICS","data":{"timestamp":"2025-12-29T15:38:11.174Z","tokensUsed":0,"maxTokens":1000000,"percentUsed":0,"remainingTokens":1000000,"level":"ok","source":"file","stale":true,"untrusted":false},"context":{}}
|
|
2553
|
+
{"timestamp":"2025-12-30T08:25:20.986Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":0,"tokensUsed":0,"maxTokens":1000000,"source":"file","stale":true,"untrusted":false},"context":{"message":"Result level=ok percent=0% used=0/1000000 source=file (stale)"}}
|
|
@@ -110,7 +110,7 @@ fi
|
|
|
110
110
|
|
|
111
111
|
# Try node_modules/.bin first (works with npm install)
|
|
112
112
|
if [ -f "node_modules/.bin/ast-hooks" ]; then
|
|
113
|
-
OUTPUT=$(node_modules/.bin/ast-hooks ast 2>&1)
|
|
113
|
+
OUTPUT=$(node_modules/.bin/ast-hooks ast --staged 2>&1)
|
|
114
114
|
EXIT_CODE=$?
|
|
115
115
|
echo "$OUTPUT"
|
|
116
116
|
if [ $EXIT_CODE -ne 0 ]; then
|
|
@@ -63,7 +63,7 @@ class McpConfigurator {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const serverId =
|
|
66
|
+
const serverId = computeServerIdForRepo(this.targetRoot);
|
|
67
67
|
const mcpConfig = {
|
|
68
68
|
mcpServers: {
|
|
69
69
|
[serverId]: {
|
|
@@ -98,10 +98,6 @@ class McpConfigurator {
|
|
|
98
98
|
|
|
99
99
|
existing.mcpServers[serverId] = mcpConfig.mcpServers[serverId];
|
|
100
100
|
|
|
101
|
-
if (existing.mcpServers['ast-intelligence-automation']) {
|
|
102
|
-
existing.mcpServers['ast-intelligence-automation'] = mcpConfig.mcpServers[serverId];
|
|
103
|
-
}
|
|
104
|
-
|
|
105
101
|
fs.writeFileSync(globalConfigPath, JSON.stringify(existing, null, 2));
|
|
106
102
|
this.logSuccess(`Updated global Windsurf MCP at ${globalConfigPath}`);
|
|
107
103
|
if (this.logger) this.logger.info('MCP_GLOBAL_UPDATED', { path: globalConfigPath });
|
|
@@ -121,7 +121,21 @@ const commands = {
|
|
|
121
121
|
},
|
|
122
122
|
|
|
123
123
|
ast: () => {
|
|
124
|
-
|
|
124
|
+
const env = { ...process.env };
|
|
125
|
+
const filteredArgs = [];
|
|
126
|
+
|
|
127
|
+
for (const arg of args) {
|
|
128
|
+
if (arg === '--staged') {
|
|
129
|
+
env.STAGING_ONLY_MODE = '1';
|
|
130
|
+
} else {
|
|
131
|
+
filteredArgs.push(arg);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
execSync(
|
|
136
|
+
`node ${path.join(HOOKS_ROOT, 'infrastructure/ast/ast-intelligence.js')} ${filteredArgs.join(' ')}`,
|
|
137
|
+
{ stdio: 'inherit', env }
|
|
138
|
+
);
|
|
125
139
|
},
|
|
126
140
|
|
|
127
141
|
install: () => {
|
|
@@ -2,40 +2,10 @@
|
|
|
2
2
|
const fs = require('fs');
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const os = require('os');
|
|
5
|
-
const crypto = require('crypto');
|
|
6
|
-
|
|
7
|
-
function slugifyId(input) {
|
|
8
|
-
return String(input || '')
|
|
9
|
-
.trim()
|
|
10
|
-
.toLowerCase()
|
|
11
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
12
|
-
.replace(/^-+|-+$/g, '')
|
|
13
|
-
.slice(0, 48);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function computeRepoFingerprint(repoRoot) {
|
|
17
|
-
try {
|
|
18
|
-
const real = fs.realpathSync(repoRoot);
|
|
19
|
-
return crypto.createHash('sha1').update(real).digest('hex').slice(0, 8);
|
|
20
|
-
} catch {
|
|
21
|
-
return crypto.createHash('sha1').update(String(repoRoot || '')).digest('hex').slice(0, 8);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function computeServerIdForRepo(repoRoot) {
|
|
26
|
-
const legacyServerId = 'ast-intelligence-automation';
|
|
27
|
-
const forced = (process.env.MCP_SERVER_ID || '').trim();
|
|
28
|
-
if (forced.length > 0) return forced;
|
|
29
|
-
|
|
30
|
-
const repoName = path.basename(repoRoot || process.cwd());
|
|
31
|
-
const slug = slugifyId(repoName) || 'repo';
|
|
32
|
-
const fp = computeRepoFingerprint(repoRoot);
|
|
33
|
-
return `${legacyServerId}-${slug}-${fp}`;
|
|
34
|
-
}
|
|
35
5
|
|
|
36
6
|
const MCP_CONFIG = {
|
|
37
7
|
mcpServers: {
|
|
38
|
-
'
|
|
8
|
+
'ast-intelligence-automation': {
|
|
39
9
|
command: 'node',
|
|
40
10
|
type: 'stdio',
|
|
41
11
|
args: ['./scripts/hooks-system/infrastructure/mcp/ast-intelligence-automation.js'],
|
|
@@ -60,16 +30,14 @@ function detectIDE() {
|
|
|
60
30
|
|
|
61
31
|
function configureMCP() {
|
|
62
32
|
const cwd = process.cwd();
|
|
63
|
-
console.log(' Pumuki Hooks - MCP Configuration\n');
|
|
64
|
-
|
|
65
|
-
const serverId = computeServerIdForRepo(cwd);
|
|
33
|
+
console.log('🔌 Pumuki Hooks - MCP Configuration\n');
|
|
66
34
|
|
|
67
35
|
const ide = detectIDE();
|
|
68
36
|
if (!ide) {
|
|
69
|
-
console.log(' No supported IDE detected (Cursor, Windsurf, VSCode)');
|
|
37
|
+
console.log('⚠️ No supported IDE detected (Cursor, Windsurf, VSCode)');
|
|
70
38
|
console.log(' Creating local .cursor/mcp.json instead.\n');
|
|
71
39
|
} else {
|
|
72
|
-
console.log(
|
|
40
|
+
console.log(`✅ Detected IDE: ${ide.name}`);
|
|
73
41
|
}
|
|
74
42
|
|
|
75
43
|
const mcpDir = path.join(cwd, '.cursor');
|
|
@@ -80,31 +48,23 @@ function configureMCP() {
|
|
|
80
48
|
}
|
|
81
49
|
|
|
82
50
|
const config = JSON.parse(JSON.stringify(MCP_CONFIG));
|
|
83
|
-
config.mcpServers[
|
|
84
|
-
delete config.mcpServers['__SERVER_ID__'];
|
|
85
|
-
|
|
86
|
-
config.mcpServers[serverId].args[0] =
|
|
51
|
+
config.mcpServers['ast-intelligence-automation'].args[0] =
|
|
87
52
|
path.join(cwd, 'scripts/hooks-system/infrastructure/mcp/ast-intelligence-automation.js');
|
|
88
|
-
config.mcpServers[
|
|
53
|
+
config.mcpServers['ast-intelligence-automation'].env.REPO_ROOT = cwd;
|
|
89
54
|
|
|
90
55
|
if (fs.existsSync(mcpFile)) {
|
|
91
56
|
const existing = JSON.parse(fs.readFileSync(mcpFile, 'utf8'));
|
|
92
|
-
existing.mcpServers = { ...
|
|
93
|
-
|
|
94
|
-
// Remove legacy id to avoid collisions across multiple open workspaces
|
|
95
|
-
if (existing.mcpServers['ast-intelligence-automation']) {
|
|
96
|
-
delete existing.mcpServers['ast-intelligence-automation'];
|
|
97
|
-
}
|
|
57
|
+
existing.mcpServers = { ...existing.mcpServers, ...config.mcpServers };
|
|
98
58
|
fs.writeFileSync(mcpFile, JSON.stringify(existing, null, 2));
|
|
99
|
-
console.log(' Updated existing .cursor/mcp.json');
|
|
59
|
+
console.log('✅ Updated existing .cursor/mcp.json');
|
|
100
60
|
} else {
|
|
101
61
|
fs.writeFileSync(mcpFile, JSON.stringify(config, null, 2));
|
|
102
|
-
console.log(' Created .cursor/mcp.json');
|
|
62
|
+
console.log('✅ Created .cursor/mcp.json');
|
|
103
63
|
}
|
|
104
64
|
|
|
105
|
-
console.log('\n MCP Server configured:');
|
|
106
|
-
console.log(
|
|
107
|
-
console.log('\n Restart your IDE to activate the MCP server.');
|
|
65
|
+
console.log('\n📋 MCP Server configured:');
|
|
66
|
+
console.log(' - ast-intelligence-automation');
|
|
67
|
+
console.log('\n🔄 Restart your IDE to activate the MCP server.');
|
|
108
68
|
}
|
|
109
69
|
|
|
110
70
|
if (require.main === module) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const { ValidationError } = require('../errors');
|
|
2
|
+
|
|
1
3
|
class DomainEvent {
|
|
2
4
|
constructor(type, payload) {
|
|
3
5
|
this.type = type;
|
|
@@ -7,8 +9,8 @@ class DomainEvent {
|
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
validate() {
|
|
10
|
-
if (!this.type) throw new
|
|
11
|
-
if (!this.payload) throw new
|
|
12
|
+
if (!this.type) throw new ValidationError('Event type is required', 'type', this.type);
|
|
13
|
+
if (!this.payload) throw new ValidationError('Event payload is required', 'payload', this.payload);
|
|
12
14
|
return true;
|
|
13
15
|
}
|
|
14
16
|
|
|
@@ -29,7 +31,9 @@ class EvidenceStaleEvent extends DomainEvent {
|
|
|
29
31
|
|
|
30
32
|
validate() {
|
|
31
33
|
super.validate();
|
|
32
|
-
if (!this.payload.evidencePath)
|
|
34
|
+
if (!this.payload.evidencePath) {
|
|
35
|
+
throw new ValidationError('Evidence path is required', 'payload.evidencePath', this.payload.evidencePath);
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
|
|
@@ -41,8 +45,12 @@ class GitFlowViolationEvent extends DomainEvent {
|
|
|
41
45
|
|
|
42
46
|
validate() {
|
|
43
47
|
super.validate();
|
|
44
|
-
if (!this.payload.branch)
|
|
45
|
-
|
|
48
|
+
if (!this.payload.branch) {
|
|
49
|
+
throw new ValidationError('Branch name is required', 'payload.branch', this.payload.branch);
|
|
50
|
+
}
|
|
51
|
+
if (!this.payload.violation) {
|
|
52
|
+
throw new ValidationError('Violation details are required', 'payload.violation', this.payload.violation);
|
|
53
|
+
}
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
56
|
|
|
@@ -54,7 +62,9 @@ class AstCriticalFoundEvent extends DomainEvent {
|
|
|
54
62
|
|
|
55
63
|
validate() {
|
|
56
64
|
super.validate();
|
|
57
|
-
if (!Array.isArray(this.payload.findings))
|
|
65
|
+
if (!Array.isArray(this.payload.findings)) {
|
|
66
|
+
throw new ValidationError('Findings must be an array', 'payload.findings', this.payload.findings);
|
|
67
|
+
}
|
|
58
68
|
}
|
|
59
69
|
}
|
|
60
70
|
|
|
@@ -28,7 +28,30 @@ const { execSync } = require('child_process');
|
|
|
28
28
|
const MCP_VERSION = '2024-11-05';
|
|
29
29
|
|
|
30
30
|
// Configuration - LAZY LOADING to avoid blocking MCP initialization
|
|
31
|
-
|
|
31
|
+
function safeGitRoot(startDir) {
|
|
32
|
+
try {
|
|
33
|
+
const out = execSync('git rev-parse --show-toplevel', {
|
|
34
|
+
cwd: startDir,
|
|
35
|
+
encoding: 'utf8',
|
|
36
|
+
stdio: ['ignore', 'pipe', 'ignore']
|
|
37
|
+
});
|
|
38
|
+
const root = String(out || '').trim();
|
|
39
|
+
return root || null;
|
|
40
|
+
} catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function resolveRepoRoot() {
|
|
46
|
+
const envRoot = (process.env.REPO_ROOT || '').trim() || null;
|
|
47
|
+
const cwdRoot = safeGitRoot(process.cwd());
|
|
48
|
+
// Prefer explicit REPO_ROOT to avoid cross-repo bleed when MCP server is launched from another workspace
|
|
49
|
+
if (envRoot) return envRoot;
|
|
50
|
+
if (cwdRoot) return cwdRoot;
|
|
51
|
+
return process.cwd();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const REPO_ROOT = resolveRepoRoot();
|
|
32
55
|
|
|
33
56
|
// Lazy-loaded CompositionRoot - only initialized when first needed
|
|
34
57
|
let _compositionRoot = null;
|
|
@@ -1026,11 +1026,11 @@ run_ast_intelligence() {
|
|
|
1026
1026
|
done
|
|
1027
1027
|
|
|
1028
1028
|
# Execute AST with proper error handling and NODE_PATH
|
|
1029
|
-
#
|
|
1029
|
+
# Change to HOOKS_SYSTEM_DIR so Node.js resolves modules correctly
|
|
1030
1030
|
if [[ -n "$node_path_value" ]]; then
|
|
1031
|
-
ast_output=$(cd "$
|
|
1031
|
+
ast_output=$(cd "$HOOKS_SYSTEM_DIR" && export NODE_PATH="$node_path_value" && export AUDIT_TMP="$TMP_DIR" && export AUDIT_LIBRARY="${AUDIT_LIBRARY:-false}" && "$node_bin" "${AST_DIR}/ast-intelligence.js" 2>&1) || ast_exit_code=$?
|
|
1032
1032
|
else
|
|
1033
|
-
ast_output=$(cd "$
|
|
1033
|
+
ast_output=$(cd "$HOOKS_SYSTEM_DIR" && export AUDIT_TMP="$TMP_DIR" && export AUDIT_LIBRARY="${AUDIT_LIBRARY:-false}" && "$node_bin" "${AST_DIR}/ast-intelligence.js" 2>&1) || ast_exit_code=$?
|
|
1034
1034
|
fi
|
|
1035
1035
|
|
|
1036
1036
|
# Check if AST script failed
|
package/scripts/hooks-system/infrastructure/watchdog/__tests__/.audit-reports/token-monitor.log
CHANGED
|
@@ -19,3 +19,6 @@
|
|
|
19
19
|
{"timestamp":"2025-12-29T14:01:17.350Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":10,"tokensUsed":100000,"maxTokens":1000000,"source":"realtime","stale":false},"context":{"message":"Result level=ok percent=10% used=100000/1000000 source=realtime"}}
|
|
20
20
|
{"timestamp":"2025-12-29T14:01:17.352Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"warning","percentUsed":91,"tokensUsed":910000,"maxTokens":1000000,"source":"fallback","stale":false},"context":{"message":"Result level=warning percent=91% used=910000/1000000 source=fallback"}}
|
|
21
21
|
{"timestamp":"2025-12-29T14:01:17.352Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"critical","percentUsed":98,"tokensUsed":980000,"maxTokens":1000000,"source":"realtime","stale":true},"context":{"message":"Result level=critical percent=98% used=980000/1000000 source=realtime (stale)"}}
|
|
22
|
+
{"timestamp":"2025-12-30T08:18:15.791Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"ok","percentUsed":10,"tokensUsed":100000,"maxTokens":1000000,"source":"realtime","stale":false},"context":{"message":"Result level=ok percent=10% used=100000/1000000 source=realtime"}}
|
|
23
|
+
{"timestamp":"2025-12-30T08:18:15.794Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"warning","percentUsed":91,"tokensUsed":910000,"maxTokens":1000000,"source":"fallback","stale":false},"context":{"message":"Result level=warning percent=91% used=910000/1000000 source=fallback"}}
|
|
24
|
+
{"timestamp":"2025-12-30T08:18:15.794Z","level":"info","component":"TokenMonitor","event":"TOKEN_MONITOR_RESULT","data":{"level":"critical","percentUsed":98,"tokensUsed":980000,"maxTokens":1000000,"source":"realtime","stale":true},"context":{"message":"Result level=critical percent=98% used=980000/1000000 source=realtime (stale)"}}
|