pumuki-ast-hooks 6.1.2 → 6.1.6

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.
@@ -1082,3 +1082,171 @@
1082
1082
  {"timestamp":1768375972203,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1083
1083
  {"timestamp":1768375972203,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1084
1084
  {"timestamp":1768375972203,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1085
+ {"timestamp":1768387925238,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1086
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1087
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1088
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1089
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1090
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1091
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1092
+ {"timestamp":1768387925240,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1093
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1094
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1095
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1096
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1097
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1098
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1099
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1100
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1101
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1102
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1103
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1104
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1105
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1106
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1107
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1108
+ {"timestamp":1768387925241,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1109
+ {"timestamp":1768387988623,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1110
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1111
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1112
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1113
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1114
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1115
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1116
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1117
+ {"timestamp":1768387988624,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1118
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1119
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1120
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1121
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1122
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1123
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1124
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1125
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1126
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1127
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1128
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1129
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1130
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1131
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1132
+ {"timestamp":1768387988625,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1133
+ {"timestamp":1768388025771,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1134
+ {"timestamp":1768388025772,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1135
+ {"timestamp":1768388025772,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1136
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1137
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1138
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1139
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1140
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1141
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1142
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1143
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1144
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1145
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1146
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1147
+ {"timestamp":1768388025773,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1148
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1149
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1150
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1151
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1152
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1153
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1154
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1155
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1156
+ {"timestamp":1768388025774,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1157
+ {"timestamp":1768419694445,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1158
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1159
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1160
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1161
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1162
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1163
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1164
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1165
+ {"timestamp":1768419694446,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1166
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1167
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1168
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1169
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1170
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1171
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1172
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1173
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1174
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1175
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1176
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1177
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1178
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1179
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1180
+ {"timestamp":1768419694447,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1181
+ {"timestamp":1768429438128,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1182
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1183
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1184
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1185
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1186
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1187
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1188
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1189
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1190
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1191
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1192
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1193
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1194
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1195
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1196
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1197
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1198
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1199
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1200
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1201
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1202
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1203
+ {"timestamp":1768429438129,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1204
+ {"timestamp":1768429438130,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1205
+ {"timestamp":1768462985307,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1206
+ {"timestamp":1768462985308,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1207
+ {"timestamp":1768462985308,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1208
+ {"timestamp":1768462985308,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1209
+ {"timestamp":1768462985308,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1210
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1211
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1212
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1213
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1214
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1215
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1216
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1217
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1218
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1219
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1220
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1221
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1222
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1223
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1224
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1225
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1226
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1227
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1228
+ {"timestamp":1768462985309,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1229
+ {"timestamp":1768463340775,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1230
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1231
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1232
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1233
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1234
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1235
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1236
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1237
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1238
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1239
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1240
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1241
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1242
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1243
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1244
+ {"timestamp":1768463340776,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1245
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1246
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1247
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1248
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1249
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"constructor","status":"started","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
1250
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"ensure_dir","status":"started"}
1251
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"ensure_dir","status":"success"}
1252
+ {"timestamp":1768463340777,"hook":"audit_logger","operation":"constructor","status":"success","repoRoot":"/Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks/scripts/hooks-system"}
@@ -68,8 +68,12 @@ class ConfigurationGeneratorService {
68
68
  }
69
69
  });
70
70
 
71
- const configPath = path.join(this.targetRoot, 'scripts/hooks-system/config/project.config.json');
72
- // Ensure dir exists just in case
71
+ const installMode = String(env.get('HOOK_INSTALL_MODE', 'npm')).trim().toLowerCase();
72
+ const useVendored = installMode === 'vendored' || installMode === 'embedded';
73
+ const configPath = useVendored
74
+ ? path.join(this.targetRoot, 'scripts/hooks-system/config/project.config.json')
75
+ : path.join(this.targetRoot, '.ast-intelligence/project.config.json');
76
+
73
77
  const configDir = path.dirname(configPath);
74
78
  if (!fs.existsSync(configDir)) fs.mkdirSync(configDir, { recursive: true });
75
79
 
@@ -107,16 +111,22 @@ class ConfigurationGeneratorService {
107
111
  packageJson.scripts = {};
108
112
  }
109
113
 
110
- // Add helper scripts
111
- packageJson.scripts['ast:refresh'] = 'node scripts/hooks-system/bin/update-evidence.sh';
112
- packageJson.scripts['ast:audit'] = 'node scripts/hooks-system/infrastructure/ast/ast-intelligence.js';
113
- packageJson.scripts['ast:guard:start'] = 'bash scripts/hooks-system/bin/evidence-guard start';
114
- packageJson.scripts['ast:guard:stop'] = 'bash scripts/hooks-system/bin/evidence-guard stop';
115
- packageJson.scripts['ast:guard:restart'] = 'bash scripts/hooks-system/bin/evidence-guard restart';
116
- packageJson.scripts['ast:guard:status'] = 'bash scripts/hooks-system/bin/evidence-guard status';
117
- packageJson.scripts['ast:guard:logs'] = 'bash scripts/hooks-system/bin/evidence-guard logs';
118
- packageJson.scripts['ast:check-version'] = 'node scripts/hooks-system/bin/check-version.js';
119
- packageJson.scripts['ast:gitflow'] = 'node scripts/hooks-system/bin/gitflow-cycle.js';
114
+ const installMode = String(env.get('HOOK_INSTALL_MODE', 'npm')).trim().toLowerCase();
115
+ const useVendored = installMode === 'vendored' || installMode === 'embedded';
116
+
117
+ const base = useVendored
118
+ ? 'scripts/hooks-system'
119
+ : 'node_modules/pumuki-ast-hooks/scripts/hooks-system';
120
+
121
+ packageJson.scripts['ast:refresh'] = `node ${base}/bin/update-evidence.sh`;
122
+ packageJson.scripts['ast:audit'] = `node ${base}/infrastructure/ast/ast-intelligence.js`;
123
+ packageJson.scripts['ast:guard:start'] = `bash ${base}/bin/evidence-guard start`;
124
+ packageJson.scripts['ast:guard:stop'] = `bash ${base}/bin/evidence-guard stop`;
125
+ packageJson.scripts['ast:guard:restart'] = `bash ${base}/bin/evidence-guard restart`;
126
+ packageJson.scripts['ast:guard:status'] = `bash ${base}/bin/evidence-guard status`;
127
+ packageJson.scripts['ast:guard:logs'] = `bash ${base}/bin/evidence-guard logs`;
128
+ packageJson.scripts['ast:check-version'] = `node ${base}/bin/check-version.js`;
129
+ packageJson.scripts['ast:gitflow'] = `node ${base}/bin/gitflow-cycle.js`;
120
130
 
121
131
  fs.writeFileSync(projectPackageJsonPath, JSON.stringify(packageJson, null, 2));
122
132
  this.logSuccess('npm scripts added');
@@ -130,6 +130,10 @@ fi
130
130
 
131
131
  # Enforce Git Flow checks (strict) before allowing commit
132
132
  ENFORCER_SCRIPT="scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh"
133
+ if [[ ! -f "$ENFORCER_SCRIPT" ]]; then
134
+ ENFORCER_SCRIPT="node_modules/pumuki-ast-hooks/scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh"
135
+ fi
136
+
133
137
  if [[ -f "$ENFORCER_SCRIPT" ]]; then
134
138
  echo ""
135
139
  echo "🔍 Running Git Flow checks (strict)..."
@@ -276,6 +280,10 @@ fi
276
280
 
277
281
  # Run gitflow-enforcer if available (optional validation)
278
282
  ENFORCER_SCRIPT="scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh"
283
+ if [[ ! -f "$ENFORCER_SCRIPT" ]]; then
284
+ ENFORCER_SCRIPT="node_modules/pumuki-ast-hooks/scripts/hooks-system/infrastructure/shell/gitflow/gitflow-enforcer.sh"
285
+ fi
286
+
279
287
  if [[ -f "$ENFORCER_SCRIPT" ]]; then
280
288
  echo ""
281
289
  echo "🔍 Running Git Flow checks (strict)..."
@@ -77,6 +77,14 @@ class InstallService {
77
77
  this.ideIntegration = new IdeIntegrationService(this.targetRoot, this.hookSystemRoot, this.logger);
78
78
  }
79
79
 
80
+ getInstallMode() {
81
+ const mode = String(env.get('HOOK_INSTALL_MODE', 'npm')).trim().toLowerCase();
82
+ if (mode === 'vendored' || mode === 'embedded') {
83
+ return 'vendored';
84
+ }
85
+ return 'npm';
86
+ }
87
+
80
88
  checkCriticalDependencies() {
81
89
  CriticalDependenciesService.check({
82
90
  targetRoot: this.targetRoot,
@@ -113,12 +121,18 @@ class InstallService {
113
121
  this.logStep('2/8', 'Installing ESLint configurations...');
114
122
  this.configGenerator.installESLintConfigs();
115
123
 
116
- this.logStep('3/8', 'Creating hooks-system directory structure...');
117
- this.fsInstaller.createDirectoryStructure();
124
+ const installMode = this.getInstallMode();
125
+ if (installMode === 'vendored') {
126
+ this.logStep('3/8', 'Creating hooks-system directory structure...');
127
+ this.fsInstaller.createDirectoryStructure();
118
128
 
119
- this.logStep('4/8', 'Copying AST Intelligence system files...');
120
- this.fsInstaller.copySystemFiles();
121
- this.fsInstaller.copyManageLibraryScript();
129
+ this.logStep('4/8', 'Copying AST Intelligence system files...');
130
+ this.fsInstaller.copySystemFiles();
131
+ this.fsInstaller.copyManageLibraryScript();
132
+ } else {
133
+ this.logStep('3/8', 'Skipping embedded runtime copy (npm-runtime mode)...');
134
+ this.logStep('4/8', 'Skipping embedded system files (npm-runtime mode)...');
135
+ }
122
136
 
123
137
  this.logStep('5/8', 'Creating project configuration...');
124
138
  this.configGenerator.createProjectConfig(platforms);
@@ -148,9 +162,14 @@ class InstallService {
148
162
 
149
163
  startEvidenceGuard() {
150
164
  const { spawn } = require('child_process');
151
- const guardScript = path.join(this.targetRoot, 'scripts/hooks-system/bin/evidence-guard');
165
+ const candidates = [
166
+ path.join(this.targetRoot, 'scripts/hooks-system/bin/evidence-guard'),
167
+ path.join(this.targetRoot, 'node_modules/pumuki-ast-hooks/scripts/hooks-system/bin/evidence-guard')
168
+ ];
169
+
170
+ const guardScript = candidates.find(p => fs.existsSync(p)) || null;
152
171
 
153
- if (!fs.existsSync(guardScript)) {
172
+ if (!guardScript) {
154
173
  this.logWarning('Evidence guard script not found, skipping daemon start');
155
174
  return;
156
175
  }
@@ -241,6 +260,11 @@ ${COLORS.reset}\n`);
241
260
  }
242
261
 
243
262
  printFooter() {
263
+ const installMode = this.getInstallMode();
264
+ const configHint = installMode === 'vendored'
265
+ ? 'scripts/hooks-system/config/project.config.json'
266
+ : '.ast-intelligence/project.config.json';
267
+
244
268
  process.stdout.write(`
245
269
  ${COLORS.green}✨ Installation Complete! ✨${COLORS.reset}
246
270
 
@@ -249,13 +273,8 @@ ${COLORS.cyan}Evidence Guard Daemon:${COLORS.reset}
249
273
  - Manage with: ${COLORS.yellow}npm run ast:guard:{start|stop|status|logs}${COLORS.reset}
250
274
 
251
275
  ${COLORS.cyan}Next Steps:${COLORS.reset}
252
- 1. Review generated configuration in ${COLORS.yellow}scripts/hooks-system/config/project.config.json${COLORS.reset}
253
- 2. Run ${COLORS.yellow}./manage-library.sh verify${COLORS.reset} to check installation
254
- 3. Commit the changes: ${COLORS.yellow}git add . && git commit -m "chore: install ast-intelligence-hooks"${COLORS.reset}
255
-
256
- ${COLORS.blue}Documentation:${COLORS.reset}
257
- - scripts/hooks-system/docs/guides/getting-started.md
258
- - scripts/hooks-system/docs/architecture.md
276
+ 1. Review generated configuration in ${COLORS.yellow}${configHint}${COLORS.reset}
277
+ 2. Commit the changes: ${COLORS.yellow}git add . && git commit -m "chore: install ast-intelligence-hooks"${COLORS.reset}
259
278
  `);
260
279
  }
261
280
 
@@ -13,6 +13,7 @@ describe('cli', () => {
13
13
  const childProcess = require('child_process');
14
14
 
15
15
  const originalExecSync = childProcess.execSync;
16
+ const originalExecFileSync = childProcess.execFileSync;
16
17
  childProcess.execSync = (cmd) => {
17
18
  const command = String(cmd);
18
19
  if (command.includes('git log') && command.includes('--pretty=%s')) {
@@ -33,6 +34,7 @@ describe('cli', () => {
33
34
  expect(proposed.primary_goal.toLowerCase()).toContain('token economy');
34
35
 
35
36
  childProcess.execSync = originalExecSync;
37
+ childProcess.execFileSync = originalExecFileSync;
36
38
  });
37
39
 
38
40
  it('wrap-up should auto-save human_intent by default', () => {
@@ -45,6 +47,7 @@ describe('cli', () => {
45
47
 
46
48
  const originalArgv = process.argv;
47
49
  const originalExecSync = childProcess.execSync;
50
+ const originalExecFileSync = childProcess.execFileSync;
48
51
 
49
52
  const existsSyncSpy = jest.spyOn(fs, 'existsSync').mockImplementation(() => true);
50
53
  const readFileSyncSpy = jest.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify({ ai_gate: { status: 'ALLOWED' }, platforms: {} }));
@@ -64,9 +67,10 @@ describe('cli', () => {
64
67
  if (command.includes('git log') && command.includes('--pretty=%s')) {
65
68
  return 'fix: token economy docs, assets and MCP outputs\n';
66
69
  }
67
- if (command.includes('node') && command.includes('intelligent-audit.js')) {
68
- return '';
69
- }
70
+ return '';
71
+ };
72
+
73
+ childProcess.execFileSync = () => {
70
74
  return '';
71
75
  };
72
76
 
@@ -84,6 +88,7 @@ describe('cli', () => {
84
88
  console.log = originalConsoleLog;
85
89
  process.argv = originalArgv;
86
90
  childProcess.execSync = originalExecSync;
91
+ childProcess.execFileSync = originalExecFileSync;
87
92
  existsSyncSpy.mockRestore();
88
93
  readFileSyncSpy.mockRestore();
89
94
  writeFileSyncSpy.mockRestore();
@@ -99,6 +104,7 @@ describe('cli', () => {
99
104
 
100
105
  const originalArgv = process.argv;
101
106
  const originalExecSync = childProcess.execSync;
107
+ const originalExecFileSync = childProcess.execFileSync;
102
108
 
103
109
  const existsSyncSpy = jest.spyOn(fs, 'existsSync').mockImplementation(() => true);
104
110
  const readFileSyncSpy = jest.spyOn(fs, 'readFileSync').mockImplementation(() => JSON.stringify({ ai_gate: { status: 'ALLOWED' }, platforms: {} }));
@@ -118,9 +124,10 @@ describe('cli', () => {
118
124
  if (command.includes('git log') && command.includes('--pretty=%s')) {
119
125
  return 'fix: token economy docs, assets and MCP outputs\n';
120
126
  }
121
- if (command.includes('node') && command.includes('intelligent-audit.js')) {
122
- return '';
123
- }
127
+ return '';
128
+ };
129
+
130
+ childProcess.execFileSync = () => {
124
131
  return '';
125
132
  };
126
133
 
@@ -137,8 +144,31 @@ describe('cli', () => {
137
144
  console.log = originalConsoleLog;
138
145
  process.argv = originalArgv;
139
146
  childProcess.execSync = originalExecSync;
147
+ childProcess.execFileSync = originalExecFileSync;
140
148
  existsSyncSpy.mockRestore();
141
149
  readFileSyncSpy.mockRestore();
142
150
  writeFileSyncSpy.mockRestore();
143
151
  });
152
+
153
+ it('install should execute install.js using execFileSync with args', () => {
154
+ const path = require('path');
155
+ const childProcess = require('child_process');
156
+
157
+ const originalArgv = process.argv;
158
+ const originalExecFileSync = childProcess.execFileSync;
159
+
160
+ const execFileSyncSpy = jest.fn();
161
+ childProcess.execFileSync = execFileSyncSpy;
162
+
163
+ process.argv = ['node', 'cli.js', 'install'];
164
+ jest.resetModules();
165
+ const { commands } = require('../cli.js');
166
+ commands.install();
167
+
168
+ const expectedInstallPath = path.join(__dirname, '..', '..', 'bin', 'install.js');
169
+ expect(execFileSyncSpy).toHaveBeenCalledWith(process.execPath, [expectedInstallPath], { stdio: 'inherit' });
170
+
171
+ process.argv = originalArgv;
172
+ childProcess.execFileSync = originalExecFileSync;
173
+ });
144
174
  });
@@ -0,0 +1,98 @@
1
+ describe('Installation mode (npm-runtime vs vendored)', () => {
2
+ const fs = require('fs');
3
+ const os = require('os');
4
+ const path = require('path');
5
+
6
+ const ConfigurationGeneratorService = require('../../application/services/installation/ConfigurationGeneratorService');
7
+ const InstallService = require('../../application/services/installation/InstallService');
8
+
9
+ const originalEnv = { ...process.env };
10
+
11
+ afterEach(() => {
12
+ process.env = { ...originalEnv };
13
+ });
14
+
15
+ it('ConfigurationGeneratorService.addNpmScripts writes node_modules scripts by default', () => {
16
+ const testRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'ast-hooks-install-mode-'));
17
+ const pkgPath = path.join(testRoot, 'package.json');
18
+ fs.writeFileSync(pkgPath, JSON.stringify({ name: 'test', version: '1.0.0', scripts: {} }, null, 2));
19
+
20
+ const service = new ConfigurationGeneratorService(testRoot, __dirname);
21
+ delete process.env.HOOK_INSTALL_MODE;
22
+
23
+ service.addNpmScripts();
24
+
25
+ const written = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
26
+ expect(written.scripts['ast:audit']).toContain('node_modules/pumuki-ast-hooks');
27
+ expect(written.scripts['ast:guard:start']).toContain('node_modules/pumuki-ast-hooks');
28
+
29
+ fs.rmSync(testRoot, { recursive: true, force: true });
30
+ });
31
+
32
+ it('ConfigurationGeneratorService.addNpmScripts writes vendored scripts when HOOK_INSTALL_MODE=vendored', () => {
33
+ const testRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'ast-hooks-install-mode-'));
34
+ const pkgPath = path.join(testRoot, 'package.json');
35
+ fs.writeFileSync(pkgPath, JSON.stringify({ name: 'test', version: '1.0.0', scripts: {} }, null, 2));
36
+
37
+ const service = new ConfigurationGeneratorService(testRoot, __dirname);
38
+ process.env.HOOK_INSTALL_MODE = 'vendored';
39
+
40
+ service.addNpmScripts();
41
+
42
+ const written = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
43
+ expect(written.scripts['ast:audit']).toContain('scripts/hooks-system');
44
+ expect(written.scripts['ast:guard:start']).toContain('scripts/hooks-system');
45
+
46
+ fs.rmSync(testRoot, { recursive: true, force: true });
47
+ });
48
+
49
+ it('InstallService does not copy system files in npm runtime mode by default', async () => {
50
+ const service = new InstallService();
51
+
52
+ service.gitService = { checkGitRepository: () => true, ensureGitInfoExclude: () => { }, installGitHooks: () => { } };
53
+ service.platformService = { detect: () => ['backend'] };
54
+
55
+ const fsInstaller = {
56
+ createDirectoryStructure: jest.fn(),
57
+ copySystemFiles: jest.fn(),
58
+ copyManageLibraryScript: jest.fn()
59
+ };
60
+
61
+ service.fsInstaller = fsInstaller;
62
+ service.configGenerator = { installESLintConfigs: () => { }, createProjectConfig: () => { }, addNpmScripts: () => { } };
63
+ service.ideIntegration = { installCursorHooks: () => { }, configureVSCodeTasks: () => { } };
64
+ service.checkCriticalDependencies = () => { };
65
+ service.startEvidenceGuard = () => { };
66
+
67
+ delete process.env.HOOK_INSTALL_MODE;
68
+
69
+ await service.run();
70
+
71
+ expect(fsInstaller.copySystemFiles).not.toHaveBeenCalled();
72
+ });
73
+
74
+ it('InstallService copies system files when HOOK_INSTALL_MODE=vendored', async () => {
75
+ const service = new InstallService();
76
+
77
+ service.gitService = { checkGitRepository: () => true, ensureGitInfoExclude: () => { }, installGitHooks: () => { } };
78
+ service.platformService = { detect: () => ['backend'] };
79
+
80
+ const fsInstaller = {
81
+ createDirectoryStructure: jest.fn(),
82
+ copySystemFiles: jest.fn(),
83
+ copyManageLibraryScript: jest.fn()
84
+ };
85
+
86
+ service.fsInstaller = fsInstaller;
87
+ service.configGenerator = { installESLintConfigs: () => { }, createProjectConfig: () => { }, addNpmScripts: () => { } };
88
+ service.ideIntegration = { installCursorHooks: () => { }, configureVSCodeTasks: () => { } };
89
+ service.checkCriticalDependencies = () => { };
90
+ service.startEvidenceGuard = () => { };
91
+
92
+ process.env.HOOK_INSTALL_MODE = 'vendored';
93
+
94
+ await service.run();
95
+
96
+ expect(fsInstaller.copySystemFiles).toHaveBeenCalled();
97
+ });
98
+ });