pumuki-ast-hooks 5.3.16 → 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/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 +34 -0
- package/scripts/hooks-system/.audit-reports/token-monitor.log +102 -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/bin/cli.js +15 -1
- package/scripts/hooks-system/domain/events/index.js +16 -6
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/.audit-reports/token-monitor.log +3 -0
|
@@ -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":{}}
|
|
@@ -815,3 +815,37 @@
|
|
|
815
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
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
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":{}}
|
|
@@ -2449,3 +2449,105 @@
|
|
|
2449
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
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
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
|
|
@@ -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: () => {
|
|
@@ -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
|
|
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)"}}
|