@xelth/eck-snapshot 4.2.4 → 5.4.0
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.
Potentially problematic release.
This version of @xelth/eck-snapshot might be problematic. Click here for more details.
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/index.js +14 -0
- package/package.json +64 -9
- package/scripts/mcp-eck-core.js +101 -0
- package/scripts/mcp-glm-zai-worker.mjs +243 -0
- package/scripts/verify_changes.js +68 -0
- package/setup.json +845 -0
- package/src/cli/cli.js +369 -0
- package/src/cli/commands/claudeSettings.js +93 -0
- package/src/cli/commands/consilium.js +86 -0
- package/src/cli/commands/createSnapshot.js +906 -0
- package/src/cli/commands/detectProfiles.js +98 -0
- package/src/cli/commands/detectProject.js +112 -0
- package/src/cli/commands/doctor.js +60 -0
- package/src/cli/commands/envSync.js +319 -0
- package/src/cli/commands/generateProfileGuide.js +144 -0
- package/src/cli/commands/pruneSnapshot.js +106 -0
- package/src/cli/commands/restoreSnapshot.js +173 -0
- package/src/cli/commands/setupGemini.js +149 -0
- package/src/cli/commands/setupGemini.test.js +115 -0
- package/src/cli/commands/setupMcp.js +269 -0
- package/src/cli/commands/showFile.js +39 -0
- package/src/cli/commands/trainTokens.js +38 -0
- package/src/cli/commands/updateSnapshot.js +219 -0
- package/src/config.js +125 -0
- package/src/core/skeletonizer.js +201 -0
- package/src/mcp-server/index.js +211 -0
- package/src/services/claudeCliService.js +626 -0
- package/src/services/claudeCliService.test.js +267 -0
- package/src/templates/agent-prompt.template.md +43 -0
- package/src/templates/architect-prompt.template.md +164 -0
- package/src/templates/claude-code/README.md +105 -0
- package/src/templates/claude-code/mcp-config-template.json +11 -0
- package/src/templates/claude-code/mcp-server-template.js +206 -0
- package/src/templates/claude-code/settings-claude.json +1 -0
- package/src/templates/envScanRequest.md +4 -0
- package/src/templates/gitWorkflow.md +32 -0
- package/src/templates/multiAgent.md +118 -0
- package/src/templates/opencode/coder.template.md +22 -0
- package/src/templates/opencode/junior-architect.template.md +85 -0
- package/src/templates/skeleton-instruction.md +16 -0
- package/src/templates/update-prompt.template.md +19 -0
- package/src/utils/aiHeader.js +678 -0
- package/src/utils/claudeMdGenerator.js +148 -0
- package/src/utils/eckProtocolParser.js +221 -0
- package/src/utils/fileUtils.js +1017 -0
- package/src/utils/gitUtils.js +44 -0
- package/src/utils/opencodeAgentsGenerator.js +271 -0
- package/src/utils/projectDetector.js +704 -0
- package/src/utils/tokenEstimator.js +201 -0
package/setup.json
ADDED
|
@@ -0,0 +1,845 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Central configuration file for eck-snapshot. ALL settings are configured here.",
|
|
3
|
+
"projectContext": {
|
|
4
|
+
"name": "eckasse",
|
|
5
|
+
"type": "monorepo",
|
|
6
|
+
"architecture": {
|
|
7
|
+
"workspaces": [
|
|
8
|
+
"@eckasse/core",
|
|
9
|
+
"@eckasse/desktop",
|
|
10
|
+
"@eckasse/adapters",
|
|
11
|
+
"@eckasse/shared-frontend"
|
|
12
|
+
],
|
|
13
|
+
"stack": [
|
|
14
|
+
"Node.js",
|
|
15
|
+
"Express",
|
|
16
|
+
"Electron",
|
|
17
|
+
"PostgreSQL",
|
|
18
|
+
"WebSocket"
|
|
19
|
+
],
|
|
20
|
+
"aiIntegration": "Google Gemini for POS natural language control"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"projectDetection": {
|
|
24
|
+
"_comment": "Automatic project type detection based on file structure",
|
|
25
|
+
"patterns": {
|
|
26
|
+
"android": {
|
|
27
|
+
"files": [
|
|
28
|
+
"build.gradle",
|
|
29
|
+
"build.gradle.kts",
|
|
30
|
+
"settings.gradle",
|
|
31
|
+
"settings.gradle.kts"
|
|
32
|
+
],
|
|
33
|
+
"directories": [
|
|
34
|
+
"app/src/main",
|
|
35
|
+
"app/src/androidTest"
|
|
36
|
+
],
|
|
37
|
+
"manifestFiles": [
|
|
38
|
+
"AndroidManifest.xml"
|
|
39
|
+
],
|
|
40
|
+
"priority": 10
|
|
41
|
+
},
|
|
42
|
+
"nodejs-monorepo": {
|
|
43
|
+
"files": [
|
|
44
|
+
"package.json"
|
|
45
|
+
],
|
|
46
|
+
"directories": [
|
|
47
|
+
"packages",
|
|
48
|
+
"apps",
|
|
49
|
+
"libs"
|
|
50
|
+
],
|
|
51
|
+
"patterns": [
|
|
52
|
+
"workspaces",
|
|
53
|
+
"lerna",
|
|
54
|
+
"nx",
|
|
55
|
+
"rush"
|
|
56
|
+
],
|
|
57
|
+
"priority": 7
|
|
58
|
+
},
|
|
59
|
+
"nodejs": {
|
|
60
|
+
"files": [
|
|
61
|
+
"package.json"
|
|
62
|
+
],
|
|
63
|
+
"directories": [
|
|
64
|
+
"node_modules"
|
|
65
|
+
],
|
|
66
|
+
"priority": 6
|
|
67
|
+
},
|
|
68
|
+
"python-poetry": {
|
|
69
|
+
"files": [
|
|
70
|
+
"pyproject.toml"
|
|
71
|
+
],
|
|
72
|
+
"patterns": [
|
|
73
|
+
"tool.poetry"
|
|
74
|
+
],
|
|
75
|
+
"priority": 9
|
|
76
|
+
},
|
|
77
|
+
"python-pip": {
|
|
78
|
+
"files": [
|
|
79
|
+
"requirements.txt",
|
|
80
|
+
"setup.py",
|
|
81
|
+
"setup.cfg"
|
|
82
|
+
],
|
|
83
|
+
"directories": [
|
|
84
|
+
"__pycache__",
|
|
85
|
+
"venv",
|
|
86
|
+
".venv"
|
|
87
|
+
],
|
|
88
|
+
"priority": 7
|
|
89
|
+
},
|
|
90
|
+
"python-conda": {
|
|
91
|
+
"files": [
|
|
92
|
+
"environment.yml",
|
|
93
|
+
"environment.yaml",
|
|
94
|
+
"conda.yml"
|
|
95
|
+
],
|
|
96
|
+
"priority": 8
|
|
97
|
+
},
|
|
98
|
+
"django": {
|
|
99
|
+
"files": [
|
|
100
|
+
"manage.py"
|
|
101
|
+
],
|
|
102
|
+
"patterns": [
|
|
103
|
+
"django",
|
|
104
|
+
"Django"
|
|
105
|
+
],
|
|
106
|
+
"priority": 9
|
|
107
|
+
},
|
|
108
|
+
"flask": {
|
|
109
|
+
"files": [
|
|
110
|
+
"app.py",
|
|
111
|
+
"application.py"
|
|
112
|
+
],
|
|
113
|
+
"patterns": [
|
|
114
|
+
"flask",
|
|
115
|
+
"Flask"
|
|
116
|
+
],
|
|
117
|
+
"priority": 8
|
|
118
|
+
},
|
|
119
|
+
"flutter": {
|
|
120
|
+
"files": [
|
|
121
|
+
"pubspec.yaml"
|
|
122
|
+
],
|
|
123
|
+
"directories": [
|
|
124
|
+
"lib",
|
|
125
|
+
"android",
|
|
126
|
+
"ios"
|
|
127
|
+
],
|
|
128
|
+
"priority": 8
|
|
129
|
+
},
|
|
130
|
+
"react-native": {
|
|
131
|
+
"files": [
|
|
132
|
+
"package.json"
|
|
133
|
+
],
|
|
134
|
+
"directories": [
|
|
135
|
+
"android",
|
|
136
|
+
"ios"
|
|
137
|
+
],
|
|
138
|
+
"patterns": [
|
|
139
|
+
"react-native"
|
|
140
|
+
],
|
|
141
|
+
"priority": 8
|
|
142
|
+
},
|
|
143
|
+
"rust": {
|
|
144
|
+
"files": [
|
|
145
|
+
"Cargo.toml"
|
|
146
|
+
],
|
|
147
|
+
"directories": [
|
|
148
|
+
"src",
|
|
149
|
+
"target"
|
|
150
|
+
],
|
|
151
|
+
"priority": 9
|
|
152
|
+
},
|
|
153
|
+
"go": {
|
|
154
|
+
"files": [
|
|
155
|
+
"go.mod",
|
|
156
|
+
"go.sum"
|
|
157
|
+
],
|
|
158
|
+
"directories": [
|
|
159
|
+
"cmd",
|
|
160
|
+
"pkg",
|
|
161
|
+
"internal"
|
|
162
|
+
],
|
|
163
|
+
"priority": 7
|
|
164
|
+
},
|
|
165
|
+
"dotnet": {
|
|
166
|
+
"files": [
|
|
167
|
+
"*.csproj",
|
|
168
|
+
"*.sln",
|
|
169
|
+
"*.fsproj",
|
|
170
|
+
"*.vbproj"
|
|
171
|
+
],
|
|
172
|
+
"directories": [
|
|
173
|
+
"bin",
|
|
174
|
+
"obj"
|
|
175
|
+
],
|
|
176
|
+
"priority": 7
|
|
177
|
+
},
|
|
178
|
+
"c": {
|
|
179
|
+
"files": [
|
|
180
|
+
"Makefile",
|
|
181
|
+
"CMakeLists.txt",
|
|
182
|
+
"*.c",
|
|
183
|
+
"*.h"
|
|
184
|
+
],
|
|
185
|
+
"directories": [
|
|
186
|
+
"src",
|
|
187
|
+
"include",
|
|
188
|
+
"lib"
|
|
189
|
+
],
|
|
190
|
+
"priority": 6
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"environmentDetection": {
|
|
195
|
+
"_comment": "Cross-platform environment detection",
|
|
196
|
+
"scanCommand": "node -e \"console.log(['ENV', process.platform+'/'+require('os').arch(), process.version, require('fs').existsSync('*.sqlite*')?'SQLite':'none', require('path').basename(process.cwd())].join('|'))\"",
|
|
197
|
+
"responseFormat": "ENV|OS/arch|NodeVersion|Database|ProjectFolder",
|
|
198
|
+
"platformMarkers": {
|
|
199
|
+
"development": {
|
|
200
|
+
"paths": [
|
|
201
|
+
"/home/",
|
|
202
|
+
"/Users/",
|
|
203
|
+
"\\Users\\",
|
|
204
|
+
"WSL"
|
|
205
|
+
],
|
|
206
|
+
"database": [
|
|
207
|
+
"SQLite",
|
|
208
|
+
"*.sqlite*"
|
|
209
|
+
],
|
|
210
|
+
"process": [
|
|
211
|
+
"npm",
|
|
212
|
+
"node"
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
"production": {
|
|
216
|
+
"paths": [
|
|
217
|
+
"/var/www/",
|
|
218
|
+
"/opt/",
|
|
219
|
+
"/srv/"
|
|
220
|
+
],
|
|
221
|
+
"database": [
|
|
222
|
+
"PostgreSQL",
|
|
223
|
+
"eckwms"
|
|
224
|
+
],
|
|
225
|
+
"process": [
|
|
226
|
+
"PM2",
|
|
227
|
+
"systemd"
|
|
228
|
+
]
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"contextProfiles": {
|
|
233
|
+
"backend": {
|
|
234
|
+
"description": "Backend API, services, business logic",
|
|
235
|
+
"include": [
|
|
236
|
+
"packages/backend/**",
|
|
237
|
+
"packages/core/**"
|
|
238
|
+
],
|
|
239
|
+
"exclude": [
|
|
240
|
+
"**/*.test.*",
|
|
241
|
+
"node_modules/**"
|
|
242
|
+
]
|
|
243
|
+
},
|
|
244
|
+
"frontend": {
|
|
245
|
+
"description": "Electron app and frontend components",
|
|
246
|
+
"include": [
|
|
247
|
+
"packages/desktop/**",
|
|
248
|
+
"packages/shared-frontend/**",
|
|
249
|
+
"packages/adapters/**"
|
|
250
|
+
],
|
|
251
|
+
"exclude": [
|
|
252
|
+
"**/dist/**",
|
|
253
|
+
"**/build/**",
|
|
254
|
+
"**/node_modules/**"
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
"android-core": {
|
|
258
|
+
"description": "Android app source code and resources",
|
|
259
|
+
"include": [
|
|
260
|
+
"app/src/main/java/**",
|
|
261
|
+
"app/src/main/kotlin/**",
|
|
262
|
+
"app/src/main/res/**",
|
|
263
|
+
"app/src/main/AndroidManifest.xml",
|
|
264
|
+
"build.gradle*",
|
|
265
|
+
"settings.gradle*"
|
|
266
|
+
],
|
|
267
|
+
"exclude": [
|
|
268
|
+
"**/build/**",
|
|
269
|
+
"**/.gradle/**",
|
|
270
|
+
"**/generated/**",
|
|
271
|
+
"app/src/androidTest/**",
|
|
272
|
+
"app/src/test/**"
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
"android-tests": {
|
|
276
|
+
"description": "Android test code and configurations",
|
|
277
|
+
"include": [
|
|
278
|
+
"app/src/test/**",
|
|
279
|
+
"app/src/androidTest/**",
|
|
280
|
+
"**/test/**"
|
|
281
|
+
],
|
|
282
|
+
"exclude": [
|
|
283
|
+
"**/build/**"
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
"android-config": {
|
|
287
|
+
"description": "Android build configuration and dependencies",
|
|
288
|
+
"include": [
|
|
289
|
+
"build.gradle*",
|
|
290
|
+
"settings.gradle*",
|
|
291
|
+
"gradle.properties",
|
|
292
|
+
"local.properties",
|
|
293
|
+
"proguard-rules.pro",
|
|
294
|
+
"gradle/libs.versions.toml"
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
"database": {
|
|
298
|
+
"description": "Database schema and migrations only",
|
|
299
|
+
"include": [
|
|
300
|
+
"**/migrations/**",
|
|
301
|
+
"**/schema/**"
|
|
302
|
+
]
|
|
303
|
+
},
|
|
304
|
+
"deployment": {
|
|
305
|
+
"description": "Deployment and PM2 configuration",
|
|
306
|
+
"include": [
|
|
307
|
+
"ecosystem.config.js",
|
|
308
|
+
"pm2.json",
|
|
309
|
+
".github/workflows/**"
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
"test-frontend": {
|
|
313
|
+
"description": "Test frontend profile",
|
|
314
|
+
"include": [
|
|
315
|
+
"frontend/**"
|
|
316
|
+
],
|
|
317
|
+
"exclude": []
|
|
318
|
+
},
|
|
319
|
+
"test-backend": {
|
|
320
|
+
"description": "Test backend profile",
|
|
321
|
+
"include": [
|
|
322
|
+
"backend/**"
|
|
323
|
+
],
|
|
324
|
+
"exclude": []
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"fileFiltering": {
|
|
328
|
+
"filesToIgnore": [
|
|
329
|
+
"package-lock.json",
|
|
330
|
+
"npm-shrinkwrap.json",
|
|
331
|
+
"yarn.lock",
|
|
332
|
+
"pnpm-lock.yaml",
|
|
333
|
+
"*.log",
|
|
334
|
+
"*.tmp",
|
|
335
|
+
".env",
|
|
336
|
+
".env.local",
|
|
337
|
+
".env.production",
|
|
338
|
+
"eckasse_*.sqlite*",
|
|
339
|
+
"README*",
|
|
340
|
+
"readme*",
|
|
341
|
+
"LICENSE*"
|
|
342
|
+
],
|
|
343
|
+
"extensionsToIgnore": [
|
|
344
|
+
".sqlite3",
|
|
345
|
+
".sqlite",
|
|
346
|
+
".db",
|
|
347
|
+
".DS_Store",
|
|
348
|
+
".env",
|
|
349
|
+
".pyc",
|
|
350
|
+
".class",
|
|
351
|
+
".jar",
|
|
352
|
+
".aar",
|
|
353
|
+
".apk",
|
|
354
|
+
".aab",
|
|
355
|
+
".dex",
|
|
356
|
+
".o",
|
|
357
|
+
".so",
|
|
358
|
+
".dylib",
|
|
359
|
+
".log",
|
|
360
|
+
".tmp",
|
|
361
|
+
".bak",
|
|
362
|
+
".swp",
|
|
363
|
+
".ico",
|
|
364
|
+
".png",
|
|
365
|
+
".jpg",
|
|
366
|
+
".jpeg",
|
|
367
|
+
".gif",
|
|
368
|
+
".svg"
|
|
369
|
+
],
|
|
370
|
+
"dirsToIgnore": [
|
|
371
|
+
"node_modules/",
|
|
372
|
+
".git/",
|
|
373
|
+
"dist/",
|
|
374
|
+
"build/",
|
|
375
|
+
".next/",
|
|
376
|
+
".nuxt/",
|
|
377
|
+
"target/",
|
|
378
|
+
"bin/",
|
|
379
|
+
"obj/",
|
|
380
|
+
".idea/",
|
|
381
|
+
"coverage/",
|
|
382
|
+
"create-snapshot/"
|
|
383
|
+
],
|
|
384
|
+
"includeHidden": false,
|
|
385
|
+
"eckDirectoryFiltering": {
|
|
386
|
+
"_comment": "Smart filtering for .eck directory - includes documentation but excludes confidential files",
|
|
387
|
+
"enabled": true,
|
|
388
|
+
"confidentialPatterns": [
|
|
389
|
+
"SERVER_ACCESS.md",
|
|
390
|
+
"CREDENTIALS*.md",
|
|
391
|
+
"SECRETS*.md",
|
|
392
|
+
"*.secret",
|
|
393
|
+
"*.key",
|
|
394
|
+
"*.pem",
|
|
395
|
+
".env*"
|
|
396
|
+
],
|
|
397
|
+
"alwaysIncludePatterns": []
|
|
398
|
+
},
|
|
399
|
+
"projectSpecific": {
|
|
400
|
+
"android": {
|
|
401
|
+
"filesToIgnore": [
|
|
402
|
+
"gradle-wrapper.jar",
|
|
403
|
+
"local.properties",
|
|
404
|
+
"*.iml",
|
|
405
|
+
"*.apk",
|
|
406
|
+
"*.aab",
|
|
407
|
+
"*.aar",
|
|
408
|
+
"*.jar",
|
|
409
|
+
"*.dex",
|
|
410
|
+
"R.java",
|
|
411
|
+
"BuildConfig.java"
|
|
412
|
+
],
|
|
413
|
+
"dirsToIgnore": [
|
|
414
|
+
"build/",
|
|
415
|
+
".gradle/",
|
|
416
|
+
".idea/",
|
|
417
|
+
"app/build/",
|
|
418
|
+
"app/.cxx/",
|
|
419
|
+
"**/generated/",
|
|
420
|
+
"**/intermediates/",
|
|
421
|
+
"**/outputs/",
|
|
422
|
+
"**/tmp/"
|
|
423
|
+
],
|
|
424
|
+
"extensionsToIgnore": [
|
|
425
|
+
".apk",
|
|
426
|
+
".aab",
|
|
427
|
+
".aar",
|
|
428
|
+
".jar",
|
|
429
|
+
".dex",
|
|
430
|
+
".pro",
|
|
431
|
+
".ap_",
|
|
432
|
+
".aidl"
|
|
433
|
+
]
|
|
434
|
+
},
|
|
435
|
+
"nodejs": {
|
|
436
|
+
"filesToIgnore": [
|
|
437
|
+
"package-lock.json",
|
|
438
|
+
"yarn.lock",
|
|
439
|
+
"pnpm-lock.yaml"
|
|
440
|
+
],
|
|
441
|
+
"dirsToIgnore": [
|
|
442
|
+
"node_modules/",
|
|
443
|
+
"dist/",
|
|
444
|
+
".next/"
|
|
445
|
+
]
|
|
446
|
+
},
|
|
447
|
+
"python": {
|
|
448
|
+
"filesToIgnore": [
|
|
449
|
+
"*.pyc",
|
|
450
|
+
"*.pyo",
|
|
451
|
+
"*.pyd",
|
|
452
|
+
"__pycache__",
|
|
453
|
+
"*.egg-info",
|
|
454
|
+
".coverage"
|
|
455
|
+
],
|
|
456
|
+
"dirsToIgnore": [
|
|
457
|
+
"__pycache__/",
|
|
458
|
+
".pytest_cache/",
|
|
459
|
+
".coverage/",
|
|
460
|
+
"venv/",
|
|
461
|
+
".venv/",
|
|
462
|
+
"env/",
|
|
463
|
+
".env/",
|
|
464
|
+
"dist/",
|
|
465
|
+
"build/",
|
|
466
|
+
"*.egg-info/",
|
|
467
|
+
".tox/",
|
|
468
|
+
".mypy_cache/"
|
|
469
|
+
],
|
|
470
|
+
"extensionsToIgnore": [
|
|
471
|
+
".pyc",
|
|
472
|
+
".pyo",
|
|
473
|
+
".pyd"
|
|
474
|
+
]
|
|
475
|
+
},
|
|
476
|
+
"rust": {
|
|
477
|
+
"filesToIgnore": [
|
|
478
|
+
"Cargo.lock"
|
|
479
|
+
],
|
|
480
|
+
"dirsToIgnore": [
|
|
481
|
+
"target/",
|
|
482
|
+
"debug/",
|
|
483
|
+
"release/"
|
|
484
|
+
]
|
|
485
|
+
},
|
|
486
|
+
"go": {
|
|
487
|
+
"filesToIgnore": [
|
|
488
|
+
"go.sum"
|
|
489
|
+
],
|
|
490
|
+
"dirsToIgnore": [
|
|
491
|
+
"vendor/"
|
|
492
|
+
]
|
|
493
|
+
},
|
|
494
|
+
"dotnet": {
|
|
495
|
+
"filesToIgnore": [
|
|
496
|
+
"*.user",
|
|
497
|
+
"*.suo",
|
|
498
|
+
"*.cache"
|
|
499
|
+
],
|
|
500
|
+
"dirsToIgnore": [
|
|
501
|
+
"bin/",
|
|
502
|
+
"obj/",
|
|
503
|
+
".vs/",
|
|
504
|
+
"packages/"
|
|
505
|
+
]
|
|
506
|
+
},
|
|
507
|
+
"c": {
|
|
508
|
+
"filesToIgnore": [
|
|
509
|
+
"*.o",
|
|
510
|
+
"*.a",
|
|
511
|
+
"*.so",
|
|
512
|
+
"*.out",
|
|
513
|
+
"*.exe"
|
|
514
|
+
],
|
|
515
|
+
"dirsToIgnore": [
|
|
516
|
+
"build/",
|
|
517
|
+
"cmake-build-debug/",
|
|
518
|
+
"cmake-build-release/",
|
|
519
|
+
".cmake/"
|
|
520
|
+
],
|
|
521
|
+
"extensionsToIgnore": [
|
|
522
|
+
".o",
|
|
523
|
+
".a",
|
|
524
|
+
".so",
|
|
525
|
+
".out"
|
|
526
|
+
]
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"performance": {
|
|
531
|
+
"maxFileSize": "10MB",
|
|
532
|
+
"maxTotalSize": "100MB",
|
|
533
|
+
"maxDepth": 10,
|
|
534
|
+
"concurrency": 10
|
|
535
|
+
},
|
|
536
|
+
"security": {
|
|
537
|
+
"scanForSecrets": true,
|
|
538
|
+
"_comment": "Automatically detects and redacts API keys, tokens, and credentials in snapshots to prevent accidental exposure"
|
|
539
|
+
},
|
|
540
|
+
"output": {
|
|
541
|
+
"defaultFormat": "md",
|
|
542
|
+
"defaultPath": "./.eck/snapshots",
|
|
543
|
+
"includeTree": true,
|
|
544
|
+
"_comment": "Default output format for snapshots: md, json, or txt. defaultPath is the output directory. includeTree controls whether to include directory structure."
|
|
545
|
+
},
|
|
546
|
+
"aiInstructions": {
|
|
547
|
+
"architectPersona": {
|
|
548
|
+
"role": "Senior Architect (Gemini 3 Pro) & Orchestrator",
|
|
549
|
+
"goal": "Lead the project globally. You see the WHOLE project. Delegate implementation management to Junior Architects (Sonnet 4.5 / Opus 4.5).",
|
|
550
|
+
"contextRequirement": "ALWAYS check environment context before generating commands",
|
|
551
|
+
"workflow": [
|
|
552
|
+
"Request ENV scan",
|
|
553
|
+
"Analyze Request using Global Context (Gemini 3 Pro)",
|
|
554
|
+
"Select the best Junior Architect (JAS for speed, JAO for complexity)",
|
|
555
|
+
"Delegate the task using 'execute_strategic_task'",
|
|
556
|
+
"Review the result"
|
|
557
|
+
]
|
|
558
|
+
},
|
|
559
|
+
"executionAgents": {
|
|
560
|
+
"local_dev": {
|
|
561
|
+
"active": true,
|
|
562
|
+
"name": "Local Terminal (Sonnet 4.5)",
|
|
563
|
+
"description": "Direct execution interface. Use for quick commands.",
|
|
564
|
+
"guiSupport": true,
|
|
565
|
+
"identification": {
|
|
566
|
+
"markers": ["local_dev"]
|
|
567
|
+
},
|
|
568
|
+
"capabilities": ["npm", "git", "basic editing"],
|
|
569
|
+
"restrictions": ["Do not use for complex architectural tasks"]
|
|
570
|
+
},
|
|
571
|
+
"jas": {
|
|
572
|
+
"active": true,
|
|
573
|
+
"name": "Junior Architect (Sonnet 4.5)",
|
|
574
|
+
"description": "Smart & Fast Manager. Best for standard features and refactoring. Manages GLM Z.AI workers.",
|
|
575
|
+
"guiSupport": true,
|
|
576
|
+
"identification": {
|
|
577
|
+
"markers": ["sonnet", "fast_architect"]
|
|
578
|
+
},
|
|
579
|
+
"capabilities": [
|
|
580
|
+
"glm_zai_frontend",
|
|
581
|
+
"glm_zai_backend",
|
|
582
|
+
"glm_zai_qa",
|
|
583
|
+
"glm_zai_refactor",
|
|
584
|
+
"glm_zai_general",
|
|
585
|
+
"git operations",
|
|
586
|
+
"npm run dev"
|
|
587
|
+
],
|
|
588
|
+
"restrictions": [
|
|
589
|
+
"Prefer delegating heavy coding to GLM Z.AI workers",
|
|
590
|
+
"Focus on glue code and logic verification"
|
|
591
|
+
]
|
|
592
|
+
},
|
|
593
|
+
"jao": {
|
|
594
|
+
"active": true,
|
|
595
|
+
"name": "Junior Architect (Opus 4.5)",
|
|
596
|
+
"description": "Deep Thinker & Planner. Expensive. Use for critical architecture, security, and complex logic.",
|
|
597
|
+
"guiSupport": true,
|
|
598
|
+
"identification": {
|
|
599
|
+
"markers": ["opus", "deep_architect"]
|
|
600
|
+
},
|
|
601
|
+
"capabilities": [
|
|
602
|
+
"glm_zai_frontend",
|
|
603
|
+
"glm_zai_backend",
|
|
604
|
+
"glm_zai_qa",
|
|
605
|
+
"glm_zai_refactor",
|
|
606
|
+
"glm_zai_general",
|
|
607
|
+
"analysis"
|
|
608
|
+
],
|
|
609
|
+
"restrictions": [
|
|
610
|
+
"STRICTLY DELEGATE boilerplate to GLM Z.AI",
|
|
611
|
+
"Verify every line of code generated by workers",
|
|
612
|
+
"Plan before execution"
|
|
613
|
+
]
|
|
614
|
+
},
|
|
615
|
+
"jag": {
|
|
616
|
+
"active": true,
|
|
617
|
+
"name": "Junior Architect (Gemini 3 Pro)",
|
|
618
|
+
"description": "Massive Context Handler. Use when changes span >50 files or require full repo understanding.",
|
|
619
|
+
"guiSupport": false,
|
|
620
|
+
"identification": {
|
|
621
|
+
"markers": ["gemini_wsl"]
|
|
622
|
+
},
|
|
623
|
+
"capabilities": [
|
|
624
|
+
"read entire repo",
|
|
625
|
+
"delegate to claude"
|
|
626
|
+
],
|
|
627
|
+
"restrictions": [
|
|
628
|
+
"Experimental environment"
|
|
629
|
+
]
|
|
630
|
+
},
|
|
631
|
+
"production_server": {
|
|
632
|
+
"active": true,
|
|
633
|
+
"name": "Production Server Agent (AGENT_PROD_SERVER)",
|
|
634
|
+
"description": "Linux production server with PostgreSQL and PM2, with development capabilities",
|
|
635
|
+
"guiSupport": false,
|
|
636
|
+
"identification": {
|
|
637
|
+
"markers": [
|
|
638
|
+
"/var/www/",
|
|
639
|
+
"PostgreSQL",
|
|
640
|
+
"PM2",
|
|
641
|
+
"eckwms"
|
|
642
|
+
]
|
|
643
|
+
},
|
|
644
|
+
"capabilities": [
|
|
645
|
+
"pm2 restart/reload/stop/start",
|
|
646
|
+
"postgresql queries",
|
|
647
|
+
"knex migrations --env production",
|
|
648
|
+
"systemctl",
|
|
649
|
+
"log analysis",
|
|
650
|
+
"nginx operations",
|
|
651
|
+
"deployment scripts",
|
|
652
|
+
"file editing",
|
|
653
|
+
"npm install",
|
|
654
|
+
"git operations"
|
|
655
|
+
],
|
|
656
|
+
"restrictions": [
|
|
657
|
+
"no electron",
|
|
658
|
+
"no GUI apps",
|
|
659
|
+
"no direct DB schema changes without migrations",
|
|
660
|
+
"always backup before migrations"
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
"android_wsl_dev": {
|
|
664
|
+
"active": true,
|
|
665
|
+
"name": "Android WSL Development Agent (AGENT_ANDROID_WSL)",
|
|
666
|
+
"description": "Android development in Windows Subsystem for Linux with Gradle and ADB support",
|
|
667
|
+
"guiSupport": false,
|
|
668
|
+
"identification": {
|
|
669
|
+
"markers": [
|
|
670
|
+
"WSL",
|
|
671
|
+
"build.gradle.kts",
|
|
672
|
+
"/mnt/c/Users",
|
|
673
|
+
"app/src/main",
|
|
674
|
+
"AndroidManifest.xml"
|
|
675
|
+
]
|
|
676
|
+
},
|
|
677
|
+
"capabilities": [
|
|
678
|
+
"./gradlew build",
|
|
679
|
+
"./gradlew assembleDebug",
|
|
680
|
+
"./gradlew assembleRelease",
|
|
681
|
+
"./gradlew clean",
|
|
682
|
+
"./gradlew lint",
|
|
683
|
+
"./gradlew test",
|
|
684
|
+
"adb devices",
|
|
685
|
+
"adb install",
|
|
686
|
+
"adb logcat",
|
|
687
|
+
"adb shell",
|
|
688
|
+
"git operations",
|
|
689
|
+
"file editing",
|
|
690
|
+
"gradle tasks",
|
|
691
|
+
"gradle wrapper operations"
|
|
692
|
+
],
|
|
693
|
+
"restrictions": [
|
|
694
|
+
"no direct GUI access (Android Studio)",
|
|
695
|
+
"requires /mnt/c/ path for Windows file system access",
|
|
696
|
+
"no Android emulator control (emulator runs on Windows host)",
|
|
697
|
+
"limited USB device access through WSL",
|
|
698
|
+
"no hardware debugging interfaces"
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
"glm_zai_worker": {
|
|
702
|
+
"active": true,
|
|
703
|
+
"name": "GLM Z.AI Worker Fleet (MCP)",
|
|
704
|
+
"description": "Cost-effective worker fleet via GLM-4.7. Accessed via MCP tools (glm_zai_backend, etc).",
|
|
705
|
+
"guiSupport": false,
|
|
706
|
+
"identification": {
|
|
707
|
+
"markers": ["glm_zai", "glm", "zai"]
|
|
708
|
+
},
|
|
709
|
+
"capabilities": [
|
|
710
|
+
"backend engineering",
|
|
711
|
+
"frontend engineering",
|
|
712
|
+
"qa testing",
|
|
713
|
+
"refactoring",
|
|
714
|
+
"general full-stack"
|
|
715
|
+
],
|
|
716
|
+
"restrictions": [
|
|
717
|
+
"Requires ZAI_API_KEY",
|
|
718
|
+
"No direct executive power"
|
|
719
|
+
]
|
|
720
|
+
}
|
|
721
|
+
},
|
|
722
|
+
"browserAutomation": {
|
|
723
|
+
"enabled": true,
|
|
724
|
+
"provider": "Claude in Chrome MCP",
|
|
725
|
+
"availableFor": ["local_dev"],
|
|
726
|
+
"usage_protocol": "CRITICAL: Browser tasks MUST be executed directly by the interactive 'local_dev' agent using its internal tools. DO NOT delegate browser tasks via the 'eck-snapshot ask-claude' CLI command, as the subprocess lacks MCP context.",
|
|
727
|
+
"capabilities": {
|
|
728
|
+
"navigation": "Navigate URLs, handle tabs/windows",
|
|
729
|
+
"interaction": "Click, type, scroll, drag-and-drop",
|
|
730
|
+
"inspection": "Read DOM, extract text, verify styles",
|
|
731
|
+
"debugging": "Access console logs, network activity",
|
|
732
|
+
"visual": "Generate screenshots, record GIF"
|
|
733
|
+
},
|
|
734
|
+
"restrictions": [
|
|
735
|
+
"No non-consensual file downloads",
|
|
736
|
+
"No sensitive credentials interaction",
|
|
737
|
+
"MUST NOT use 'eck-snapshot ask-claude' wrapper for these tasks"
|
|
738
|
+
]
|
|
739
|
+
},
|
|
740
|
+
"delegationStrategy": {
|
|
741
|
+
"currentMode": "balanced",
|
|
742
|
+
"modes": {
|
|
743
|
+
"aggressive": {
|
|
744
|
+
"description": "Maximize token savings. Delegate ALL file reading and coding > 50 lines.",
|
|
745
|
+
"threshold_lines": 50
|
|
746
|
+
},
|
|
747
|
+
"balanced": {
|
|
748
|
+
"description": "Default. Delegate full file refactoring and massive generation. Read small files directly.",
|
|
749
|
+
"threshold_lines": 200
|
|
750
|
+
},
|
|
751
|
+
"precise": {
|
|
752
|
+
"description": "Maximize quality. Use Sonnet 4.5 for logic, GLM Z.AI only for boilerplate/docs.",
|
|
753
|
+
"threshold_lines": 1000
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
},
|
|
757
|
+
"header": {
|
|
758
|
+
"defaultEnabled": true,
|
|
759
|
+
"_comment": "Controls whether AI instruction headers are included by default in snapshots"
|
|
760
|
+
},
|
|
761
|
+
"promptTemplates": {
|
|
762
|
+
"envScanRequest": "src/templates/envScanRequest.md",
|
|
763
|
+
"gitWorkflow": "src/templates/gitWorkflow.md",
|
|
764
|
+
"multiAgent": "src/templates/multiAgent.md",
|
|
765
|
+
"agent": "src/templates/agent-prompt.template.md"
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"consilium": {
|
|
769
|
+
"enabled": true,
|
|
770
|
+
"votingMode": "blind-first",
|
|
771
|
+
"autoTrigger": {
|
|
772
|
+
"conditions": [
|
|
773
|
+
"database migration",
|
|
774
|
+
"production deployment",
|
|
775
|
+
"architecture changes",
|
|
776
|
+
"security updates"
|
|
777
|
+
]
|
|
778
|
+
},
|
|
779
|
+
"phases": {
|
|
780
|
+
"blind": {
|
|
781
|
+
"enabled": true,
|
|
782
|
+
"timeout": "3m"
|
|
783
|
+
},
|
|
784
|
+
"debate": {
|
|
785
|
+
"enabled": true,
|
|
786
|
+
"triggerDivergence": 0.3,
|
|
787
|
+
"rounds": 2
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
"defaultMembers": {
|
|
791
|
+
"architect": {
|
|
792
|
+
"active": true,
|
|
793
|
+
"modelName": "Opus 4.5",
|
|
794
|
+
"role": "System Architecture",
|
|
795
|
+
"strengths": [
|
|
796
|
+
"Complex Reasoning",
|
|
797
|
+
"System Design",
|
|
798
|
+
"Critical Decisions"
|
|
799
|
+
]
|
|
800
|
+
},
|
|
801
|
+
"database_expert": {
|
|
802
|
+
"active": true,
|
|
803
|
+
"modelName": "Claude",
|
|
804
|
+
"role": "Database Specialist",
|
|
805
|
+
"strengths": [
|
|
806
|
+
"Schema design",
|
|
807
|
+
"Query optimization",
|
|
808
|
+
"data integrity"
|
|
809
|
+
]
|
|
810
|
+
},
|
|
811
|
+
"devops": {
|
|
812
|
+
"active": true,
|
|
813
|
+
"modelName": "Any Available",
|
|
814
|
+
"role": "Deployment & Operations",
|
|
815
|
+
"strengths": [
|
|
816
|
+
"PM2 configuration",
|
|
817
|
+
"environment management",
|
|
818
|
+
"monitoring"
|
|
819
|
+
]
|
|
820
|
+
}
|
|
821
|
+
},
|
|
822
|
+
"complexityThresholds": {
|
|
823
|
+
"low": [
|
|
824
|
+
"bug fixes",
|
|
825
|
+
"simple features",
|
|
826
|
+
"documentation"
|
|
827
|
+
],
|
|
828
|
+
"medium": [
|
|
829
|
+
"feature implementation",
|
|
830
|
+
"refactoring",
|
|
831
|
+
"integration"
|
|
832
|
+
],
|
|
833
|
+
"high": [
|
|
834
|
+
"architecture changes",
|
|
835
|
+
"system redesign",
|
|
836
|
+
"performance optimization",
|
|
837
|
+
"security implementation"
|
|
838
|
+
]
|
|
839
|
+
},
|
|
840
|
+
"prompts": {
|
|
841
|
+
"requestTemplate": "\n# Consilium Request\n\n## Task Overview\n- **Complexity:** {{complexity}}\n- **Domain:** {{domain}}\n- **Requesting Agent:** {{requestingAgent}}\n- **Environment:** {{envContext}}\n\n## Problem Description\n{{problemDescription}}\n\n## Questions for Consilium\n{{#each questions}}\n- {{this}}\n{{/each}}\n\n## Available Context\n{{contextDescription}}\n\n---\n",
|
|
842
|
+
"responseTemplate": "\n# Consilium Response - {{modelName}}\n\n## Analysis\n{{analysis}}\n\n## Recommendations\n{{recommendations}}\n\n## Implementation Steps\n{{implementationSteps}}\n\n## Risks and Considerations\n{{risks}}\n\n## Success Metrics\n{{successMetrics}}\n\n---\n"
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
}
|