pumuki-ast-hooks 6.1.10 → 6.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/docs/INSTALLATION.md +3 -2
- package/hooks/__tests__/pre-tool-use-evidence-validator.spec.js +16 -0
- package/hooks/pre-tool-use-evidence-validator.ts +57 -2
- package/package.json +19 -19
- package/scripts/hooks-system/.audit-reports/auto-recovery.log +7 -0
- package/scripts/hooks-system/.audit-reports/install-wizard.log +28 -0
- package/scripts/hooks-system/.audit_tmp/hook-metrics.jsonl +208 -0
- package/scripts/hooks-system/infrastructure/ast/ios/__tests__/ios-srp-helpers.spec.js +62 -0
- package/scripts/hooks-system/infrastructure/ast/ios/ast-ios.js +25 -11
- package/scripts/hooks-system/infrastructure/ast/ios/detectors/ios-ast-intelligent-strategies.js +21 -9
- package/scripts/hooks-system/infrastructure/ast/ios/utils/ios-srp-helpers.js +162 -0
- package/scripts/hooks-system/infrastructure/ast/text/__tests__/text-scanner.spec.js +60 -0
- package/scripts/hooks-system/infrastructure/ast/text/text-scanner.js +60 -0
- package/scripts/hooks-system/infrastructure/orchestration/__tests__/intelligent-audit.spec.js +40 -0
- package/scripts/hooks-system/infrastructure/orchestration/intelligent-audit.js +4 -5
- package/scripts/hooks-system/infrastructure/shell/gitflow/__tests__/gitflow-enforcer.spec.js +17 -0
- package/scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh +27 -3
- package/scripts/hooks-system/infrastructure/watchdog/__tests__/.audit-reports/token-monitor.log +21 -0
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Portable, project‑agnostic, multi‑platform enterprise framework to govern AI
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
## Quick
|
|
16
|
+
## Quick start (30–60s)
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
git init
|
|
@@ -22,9 +22,9 @@ npx ast-install
|
|
|
22
22
|
npx ast-hooks audit
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Default installation mode
|
|
25
|
+
Default installation mode: `npm-runtime`.
|
|
26
26
|
|
|
27
|
-
To
|
|
27
|
+
To use the embedded runtime (`vendored` mode):
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
30
|
HOOK_INSTALL_MODE=vendored npx ast-install
|
|
@@ -360,30 +360,33 @@ The Git Flow cycle includes branch validation, commits, push, PR, merge (by poli
|
|
|
360
360
|
|
|
361
361
|
---
|
|
362
362
|
|
|
363
|
-
## 9. Commands
|
|
363
|
+
## 9. Commands (required)
|
|
364
364
|
|
|
365
|
-
###
|
|
365
|
+
### Installation (dev)
|
|
366
366
|
|
|
367
367
|
```bash
|
|
368
368
|
npm install --save-dev pumuki-ast-hooks
|
|
369
|
+
npx ast-install
|
|
369
370
|
```
|
|
370
371
|
|
|
371
|
-
###
|
|
372
|
+
### Installation (legacy)
|
|
372
373
|
|
|
373
374
|
```bash
|
|
374
375
|
npm install --save-dev pumuki-ast-hooks
|
|
376
|
+
npx ast-install
|
|
375
377
|
```
|
|
376
378
|
|
|
377
379
|
### Update
|
|
378
380
|
|
|
379
381
|
```bash
|
|
380
382
|
npm install --save-dev pumuki-ast-hooks@latest
|
|
381
|
-
|
|
383
|
+
npx ast-install
|
|
382
384
|
```
|
|
383
385
|
|
|
384
386
|
### Uninstall
|
|
385
387
|
|
|
386
388
|
```bash
|
|
389
|
+
npx ast-uninstall
|
|
387
390
|
npm uninstall pumuki-ast-hooks
|
|
388
391
|
```
|
|
389
392
|
|
|
@@ -393,7 +396,7 @@ npm uninstall pumuki-ast-hooks
|
|
|
393
396
|
npm run install-hooks
|
|
394
397
|
```
|
|
395
398
|
|
|
396
|
-
###
|
|
399
|
+
### Interactive menu
|
|
397
400
|
|
|
398
401
|
```bash
|
|
399
402
|
npx ast-hooks
|
|
@@ -411,7 +414,7 @@ npm run ast:check-version
|
|
|
411
414
|
npm run audit
|
|
412
415
|
```
|
|
413
416
|
|
|
414
|
-
### Git
|
|
417
|
+
### Git Flow
|
|
415
418
|
|
|
416
419
|
```bash
|
|
417
420
|
npm run ast:gitflow
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -626,7 +626,7 @@ To update:
|
|
|
626
626
|
npm install --save-dev pumuki-ast-hooks@latest
|
|
627
627
|
|
|
628
628
|
2. Re-install hooks (to get latest features):
|
|
629
|
-
|
|
629
|
+
npx ast-install
|
|
630
630
|
|
|
631
631
|
What's new in 5.3.1:
|
|
632
632
|
Check CHANGELOG.md: https://github.com/...
|
|
@@ -651,7 +651,7 @@ npm install --save-dev pumuki-ast-hooks@5.3.1
|
|
|
651
651
|
**⚠️ IMPORTANT:** After updating, you MUST re-run the installer to get the latest hooks and configurations:
|
|
652
652
|
|
|
653
653
|
```bash
|
|
654
|
-
|
|
654
|
+
npx ast-install
|
|
655
655
|
```
|
|
656
656
|
|
|
657
657
|
This ensures:
|
|
@@ -745,6 +745,7 @@ npm view pumuki-ast-hooks version
|
|
|
745
745
|
|
|
746
746
|
```bash
|
|
747
747
|
# Uninstall
|
|
748
|
+
npx ast-uninstall
|
|
748
749
|
npm uninstall pumuki-ast-hooks
|
|
749
750
|
|
|
750
751
|
# Remove hooks (optional)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
describe('pre-tool-use-evidence-validator', () => {
|
|
5
|
+
const filePath = path.join(__dirname, '..', 'pre-tool-use-evidence-validator.ts');
|
|
6
|
+
|
|
7
|
+
it('should exist', () => {
|
|
8
|
+
expect(fs.existsSync(filePath)).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('should include auto-refresh execution of update-evidence', () => {
|
|
12
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
13
|
+
expect(content).toMatch(/update-evidence\.sh/);
|
|
14
|
+
expect(content).toMatch(/--auto/);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync, existsSync } from 'fs';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
4
5
|
import { sendMacOSNotification } from './notify-macos.js';
|
|
5
6
|
|
|
6
7
|
interface ToolInput {
|
|
@@ -34,6 +35,8 @@ interface Violation {
|
|
|
34
35
|
|
|
35
36
|
const MAX_AGE_SECONDS = 180;
|
|
36
37
|
|
|
38
|
+
type ValidationResult = { valid: boolean; code?: string; error?: string };
|
|
39
|
+
|
|
37
40
|
function utcToEpoch(timestamp: string): number {
|
|
38
41
|
try {
|
|
39
42
|
return Math.floor(new Date(timestamp).getTime() / 1000);
|
|
@@ -42,10 +45,11 @@ function utcToEpoch(timestamp: string): number {
|
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
function validateEvidence(evidencePath: string):
|
|
48
|
+
function validateEvidence(evidencePath: string): ValidationResult {
|
|
46
49
|
if (!existsSync(evidencePath)) {
|
|
47
50
|
return {
|
|
48
51
|
valid: false,
|
|
52
|
+
code: 'missing',
|
|
49
53
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Missing
|
|
50
54
|
|
|
51
55
|
📋 VIOLATION:
|
|
@@ -69,6 +73,7 @@ This is enforced by pre-commit hooks and PreToolUse validation`
|
|
|
69
73
|
} catch {
|
|
70
74
|
return {
|
|
71
75
|
valid: false,
|
|
76
|
+
code: 'invalid_json',
|
|
72
77
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Invalid JSON
|
|
73
78
|
|
|
74
79
|
📋 VIOLATION:
|
|
@@ -86,6 +91,7 @@ This is enforced by pre-commit hooks and PreToolUse validation`
|
|
|
86
91
|
if (!timestamp || typeof timestamp !== 'string') {
|
|
87
92
|
return {
|
|
88
93
|
valid: false,
|
|
94
|
+
code: 'missing_timestamp',
|
|
89
95
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Missing Timestamp
|
|
90
96
|
|
|
91
97
|
📋 VIOLATION:
|
|
@@ -102,6 +108,7 @@ This is enforced by pre-commit hooks and PreToolUse validation`
|
|
|
102
108
|
if (evidenceEpoch === 0) {
|
|
103
109
|
return {
|
|
104
110
|
valid: false,
|
|
111
|
+
code: 'invalid_timestamp',
|
|
105
112
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Invalid Timestamp Format
|
|
106
113
|
|
|
107
114
|
📋 VIOLATION:
|
|
@@ -119,6 +126,7 @@ This is enforced by pre-commit hooks and PreToolUse validation`
|
|
|
119
126
|
if (ageSeconds > MAX_AGE_SECONDS) {
|
|
120
127
|
return {
|
|
121
128
|
valid: false,
|
|
129
|
+
code: 'stale',
|
|
122
130
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Too Old
|
|
123
131
|
|
|
124
132
|
📋 VIOLATION:
|
|
@@ -139,6 +147,7 @@ Evidence must be fresh to ensure rules were read and questions answered`
|
|
|
139
147
|
if (!rulesRead || (Array.isArray(rulesRead) && rulesRead.length === 0)) {
|
|
140
148
|
return {
|
|
141
149
|
valid: false,
|
|
150
|
+
code: 'missing_rules',
|
|
142
151
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Missing Rules Read
|
|
143
152
|
|
|
144
153
|
📋 VIOLATION:
|
|
@@ -155,6 +164,7 @@ Evidence must be fresh to ensure rules were read and questions answered`
|
|
|
155
164
|
if (questionsAnswered !== true) {
|
|
156
165
|
return {
|
|
157
166
|
valid: false,
|
|
167
|
+
code: 'questions_unanswered',
|
|
158
168
|
error: `⚠️ BLOCKED - .AI_EVIDENCE.json Protocol Questions Not Answered
|
|
159
169
|
|
|
160
170
|
📋 VIOLATION:
|
|
@@ -181,6 +191,7 @@ Evidence must be fresh to ensure rules were read and questions answered`
|
|
|
181
191
|
|
|
182
192
|
return {
|
|
183
193
|
valid: false,
|
|
194
|
+
code: 'gate_blocked',
|
|
184
195
|
error: `🚫 BLOCKED - AI Gate Status: BLOCKED
|
|
185
196
|
|
|
186
197
|
📋 VIOLATION:
|
|
@@ -205,6 +216,45 @@ This ensures code quality standards are maintained`
|
|
|
205
216
|
return { valid: true };
|
|
206
217
|
}
|
|
207
218
|
|
|
219
|
+
function resolveUpdateEvidenceScript(projectDir: string): string | null {
|
|
220
|
+
const candidates = [
|
|
221
|
+
join(projectDir, 'scripts', 'hooks-system', 'bin', 'update-evidence.sh'),
|
|
222
|
+
join(projectDir, 'node_modules', 'pumuki-ast-hooks', 'scripts', 'hooks-system', 'bin', 'update-evidence.sh'),
|
|
223
|
+
join(projectDir, 'node_modules', 'pumuki-ast-hooks', 'bin', 'update-evidence.sh'),
|
|
224
|
+
join(projectDir, 'bin', 'update-evidence.sh')
|
|
225
|
+
];
|
|
226
|
+
|
|
227
|
+
for (const candidate of candidates) {
|
|
228
|
+
if (existsSync(candidate)) {
|
|
229
|
+
return candidate;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
function autoRefreshEvidence(projectDir: string): boolean {
|
|
237
|
+
const flag = String(process.env.AI_START_AUTO_REFRESH || '').trim().toLowerCase();
|
|
238
|
+
if (flag === '0' || flag === 'false' || flag === 'no') {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const scriptPath = resolveUpdateEvidenceScript(projectDir);
|
|
243
|
+
if (!scriptPath) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
try {
|
|
248
|
+
execSync(`bash "${scriptPath}" --auto`, {
|
|
249
|
+
cwd: projectDir,
|
|
250
|
+
stdio: 'ignore'
|
|
251
|
+
});
|
|
252
|
+
return true;
|
|
253
|
+
} catch {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
208
258
|
async function readStdin(): Promise<string> {
|
|
209
259
|
return new Promise((resolve) => {
|
|
210
260
|
let data = '';
|
|
@@ -225,7 +275,12 @@ async function main() {
|
|
|
225
275
|
const projectDir = process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
226
276
|
const evidencePath = join(projectDir, '.AI_EVIDENCE.json');
|
|
227
277
|
|
|
228
|
-
|
|
278
|
+
let validation = validateEvidence(evidencePath);
|
|
279
|
+
if (!validation.valid && validation.code !== 'gate_blocked') {
|
|
280
|
+
if (autoRefreshEvidence(projectDir)) {
|
|
281
|
+
validation = validateEvidence(evidencePath);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
229
284
|
if (!validation.valid) {
|
|
230
285
|
try {
|
|
231
286
|
sendMacOSNotification({
|
package/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki-ast-hooks",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.13",
|
|
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": {
|
|
7
|
-
"pumuki-ast-hooks": "
|
|
8
|
-
"audit": "
|
|
9
|
-
"ast-hooks": "
|
|
10
|
-
"ast-install": "
|
|
11
|
-
"ast-uninstall": "
|
|
12
|
-
"ast-violations": "
|
|
13
|
-
"ast-check-version": "
|
|
14
|
-
"ast-gitflow": "
|
|
15
|
-
"ai-commit": "
|
|
16
|
-
"hook-run-orchestrator": "
|
|
17
|
-
"hook-watch": "
|
|
18
|
-
"hook-status": "
|
|
19
|
-
"hook-predict": "
|
|
20
|
-
"hook-playbook": "
|
|
21
|
-
"hook-doc-drift": "
|
|
22
|
-
"hook-plan-review": "
|
|
7
|
+
"pumuki-ast-hooks": "bin/pumuki-mcp-server.js",
|
|
8
|
+
"audit": "bin/audit",
|
|
9
|
+
"ast-hooks": "bin/cli.js",
|
|
10
|
+
"ast-install": "bin/install.js",
|
|
11
|
+
"ast-uninstall": "bin/uninstall.js",
|
|
12
|
+
"ast-violations": "bin/violations-api.js",
|
|
13
|
+
"ast-check-version": "bin/check-version.js",
|
|
14
|
+
"ast-gitflow": "scripts/hooks-system/bin/gitflow-cycle.js",
|
|
15
|
+
"ai-commit": "bin/ai-commit.sh",
|
|
16
|
+
"hook-run-orchestrator": "bin/run-orchestrator.js",
|
|
17
|
+
"hook-watch": "bin/watch-hooks.js",
|
|
18
|
+
"hook-status": "bin/hook-status.js",
|
|
19
|
+
"hook-predict": "bin/predictive-hooks.js",
|
|
20
|
+
"hook-playbook": "bin/run-playbook.js",
|
|
21
|
+
"hook-doc-drift": "bin/check-doc-drift.js",
|
|
22
|
+
"hook-plan-review": "bin/plan-review.js"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"install-hooks": "node bin/install.js",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"license": "MIT",
|
|
82
82
|
"repository": {
|
|
83
83
|
"type": "git",
|
|
84
|
-
"url": "https://github.com/SwiftEnProfundidad/ast-intelligence-hooks.git"
|
|
84
|
+
"url": "git+https://github.com/SwiftEnProfundidad/ast-intelligence-hooks.git"
|
|
85
85
|
},
|
|
86
86
|
"bugs": {
|
|
87
87
|
"url": "https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/issues"
|
|
@@ -136,4 +136,4 @@
|
|
|
136
136
|
"./skills": "./skills/skill-rules.json",
|
|
137
137
|
"./hooks": "./hooks/index.js"
|
|
138
138
|
}
|
|
139
|
-
}
|
|
139
|
+
}
|
|
@@ -41,3 +41,10 @@
|
|
|
41
41
|
{"timestamp":"2026-01-15T07:49:00.777Z","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":{}}
|
|
42
42
|
{"timestamp":"2026-01-15T09:57:40.478Z","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":{}}
|
|
43
43
|
{"timestamp":"2026-01-15T14:53:23.342Z","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":{}}
|
|
44
|
+
{"timestamp":"2026-01-21T12:12:12.268Z","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":{}}
|
|
45
|
+
{"timestamp":"2026-01-21T13:01:11.530Z","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":{}}
|
|
46
|
+
{"timestamp":"2026-01-21T13:16:57.700Z","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":{}}
|
|
47
|
+
{"timestamp":"2026-01-21T14:08:08.597Z","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":{}}
|
|
48
|
+
{"timestamp":"2026-01-21T14:14:43.580Z","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":{}}
|
|
49
|
+
{"timestamp":"2026-01-21T14:19:14.000Z","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":{}}
|
|
50
|
+
{"timestamp":"2026-01-21T14:43:15.797Z","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":{}}
|
|
@@ -174,3 +174,31 @@
|
|
|
174
174
|
{"timestamp":"2026-01-15T14:53:23.414Z","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":{}}
|
|
175
175
|
{"timestamp":"2026-01-15T14:53:23.415Z","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":{}}
|
|
176
176
|
{"timestamp":"2026-01-15T14:53:23.415Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
177
|
+
{"timestamp":"2026-01-21T12:12:11.691Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
178
|
+
{"timestamp":"2026-01-21T12:12:11.709Z","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":{}}
|
|
179
|
+
{"timestamp":"2026-01-21T12:12:11.710Z","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":{}}
|
|
180
|
+
{"timestamp":"2026-01-21T12:12:11.710Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
181
|
+
{"timestamp":"2026-01-21T13:01:11.637Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
182
|
+
{"timestamp":"2026-01-21T13:01:11.652Z","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":{}}
|
|
183
|
+
{"timestamp":"2026-01-21T13:01:11.652Z","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":{}}
|
|
184
|
+
{"timestamp":"2026-01-21T13:01:11.653Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
185
|
+
{"timestamp":"2026-01-21T13:16:58.626Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
186
|
+
{"timestamp":"2026-01-21T13:16:58.641Z","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":{}}
|
|
187
|
+
{"timestamp":"2026-01-21T13:16:58.642Z","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":{}}
|
|
188
|
+
{"timestamp":"2026-01-21T13:16:58.642Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
189
|
+
{"timestamp":"2026-01-21T14:08:09.347Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
190
|
+
{"timestamp":"2026-01-21T14:08:09.372Z","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":{}}
|
|
191
|
+
{"timestamp":"2026-01-21T14:08:09.374Z","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":{}}
|
|
192
|
+
{"timestamp":"2026-01-21T14:08:09.374Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
193
|
+
{"timestamp":"2026-01-21T14:14:44.270Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
194
|
+
{"timestamp":"2026-01-21T14:14:44.277Z","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":{}}
|
|
195
|
+
{"timestamp":"2026-01-21T14:14:44.277Z","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":{}}
|
|
196
|
+
{"timestamp":"2026-01-21T14:14:44.277Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
197
|
+
{"timestamp":"2026-01-21T14:19:14.062Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
198
|
+
{"timestamp":"2026-01-21T14:19:14.069Z","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":{}}
|
|
199
|
+
{"timestamp":"2026-01-21T14:19:14.070Z","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":{}}
|
|
200
|
+
{"timestamp":"2026-01-21T14:19:14.070Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|
|
201
|
+
{"timestamp":"2026-01-21T14:43:15.954Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_START","data":{"repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"},"context":{}}
|
|
202
|
+
{"timestamp":"2026-01-21T14:43:15.961Z","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":{}}
|
|
203
|
+
{"timestamp":"2026-01-21T14:43:15.961Z","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":{}}
|
|
204
|
+
{"timestamp":"2026-01-21T14:43:15.961Z","level":"info","component":"InstallWizard","event":"INSTALL_WIZARD_COMPLETED","data":{},"context":{}}
|