@xelth/eck-snapshot 4.3.2 → 5.0.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/README.md +68 -6
- package/package.json +3 -1
- package/setup.json +19 -0
- package/src/cli/cli.js +2 -2
- package/src/cli/commands/setupGemini.js +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
# eckSnapshot
|
|
2
|
+
# eckSnapshot (v5.0.0)
|
|
3
3
|
|
|
4
4
|
A lightweight, platform-independent CLI for creating focused, AI-ready project snapshots.
|
|
5
5
|
|
|
@@ -7,6 +7,11 @@ A lightweight, platform-independent CLI for creating focused, AI-ready project s
|
|
|
7
7
|
|
|
8
8
|
This tool is built for a modern workflow where you act as the architect, guiding the overall strategy, while AI agents handle the detailed implementation.
|
|
9
9
|
|
|
10
|
+
## 🤖 Hybrid AI Support (MiniMax Integration)
|
|
11
|
+
|
|
12
|
+
This project supports a **Supervisor-Worker** mode to save tokens and costs.
|
|
13
|
+
👉 **[Read the Integration Guide](./MINIMAX_INTEGRATION.md)** to enable this feature.
|
|
14
|
+
|
|
10
15
|
## The Core Workflow
|
|
11
16
|
|
|
12
17
|
`eckSnapshot` is designed to support a two-part AI workflow for maximum efficiency and quality:
|
|
@@ -47,13 +52,17 @@ This is your primary command. It scans your project and packs all relevant code
|
|
|
47
52
|
|
|
48
53
|
* **What it does:** Creates a file like `myProject_snapshot_... .md` in the `.eck/snapshots/` directory. This file contains your project's directory structure and the complete code. You can now pass this file to your Architect LLM for analysis.
|
|
49
54
|
|
|
50
|
-
#### Step 2:
|
|
55
|
+
#### Step 2: Working with Profiles for Large Projects
|
|
56
|
+
|
|
57
|
+
When your project is too large for an LLM's context window, you can use **profiles** to slice it into logical parts. There are two methods:
|
|
58
|
+
|
|
59
|
+
##### Option A: Auto-Detection (Quick but can be fragile on huge projects)
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
Uses local AI (Claude CLI) to automatically analyze your project and suggest profiles.
|
|
53
62
|
|
|
54
63
|
> **Usage:**
|
|
55
64
|
> ```bash
|
|
56
|
-
>
|
|
65
|
+
> eck-snapshot profile-detect
|
|
57
66
|
> ```
|
|
58
67
|
|
|
59
68
|
* **Output Example:**
|
|
@@ -67,7 +76,60 @@ If your project is too large for an LLM's context window, `profile-detect` can a
|
|
|
67
76
|
- docs
|
|
68
77
|
- config
|
|
69
78
|
```
|
|
70
|
-
* **What it does:** Analyzes your project and saves these logical groupings into a `.eck/profiles.json` file
|
|
79
|
+
* **What it does:** Analyzes your project and saves these logical groupings into a `.eck/profiles.json` file.
|
|
80
|
+
* **Limitation:** Can fail on very large projects (thousands of files) because the directory tree becomes too large for the local Claude CLI.
|
|
81
|
+
|
|
82
|
+
##### Option B: Manual Guide (Reliable for massive projects)
|
|
83
|
+
|
|
84
|
+
Generates a guide file that you can use with any AI assistant that has a large context window (Gemini 1.5 Pro, GPT-4, etc.). This is the **recommended approach for large monorepos**.
|
|
85
|
+
|
|
86
|
+
> **Usage:**
|
|
87
|
+
> ```bash
|
|
88
|
+
> eck-snapshot generate-profile-guide
|
|
89
|
+
> ```
|
|
90
|
+
|
|
91
|
+
**What happens:**
|
|
92
|
+
1. Creates `.eck/profile_generation_guide.md` containing:
|
|
93
|
+
- A ready-to-use prompt for the AI
|
|
94
|
+
- Your complete project directory tree
|
|
95
|
+
2. You open this file and copy its contents
|
|
96
|
+
3. Paste into your preferred AI assistant (web UI with large context)
|
|
97
|
+
4. The AI analyzes the structure and returns a JSON with suggested profiles
|
|
98
|
+
5. Save the JSON to `.eck/profiles.json`
|
|
99
|
+
|
|
100
|
+
**Example workflow:**
|
|
101
|
+
```bash
|
|
102
|
+
# 1. Generate the guide
|
|
103
|
+
eck-snapshot generate-profile-guide
|
|
104
|
+
|
|
105
|
+
# 2. Open the guide file
|
|
106
|
+
cat .eck/profile_generation_guide.md
|
|
107
|
+
|
|
108
|
+
# 3. Copy the prompt and directory tree, paste into Gemini/ChatGPT
|
|
109
|
+
# 4. AI returns something like:
|
|
110
|
+
# {
|
|
111
|
+
# "backend": {
|
|
112
|
+
# "include": ["src/api/**", "src/database/**"],
|
|
113
|
+
# "exclude": ["**/*.test.js"]
|
|
114
|
+
# },
|
|
115
|
+
# "frontend": {
|
|
116
|
+
# "include": ["src/components/**", "src/pages/**"],
|
|
117
|
+
# "exclude": ["**/*.spec.js"]
|
|
118
|
+
# }
|
|
119
|
+
# }
|
|
120
|
+
|
|
121
|
+
# 5. Save the JSON to .eck/profiles.json
|
|
122
|
+
# (manually create/edit the file)
|
|
123
|
+
|
|
124
|
+
# 6. Now you can use the profiles
|
|
125
|
+
eck-snapshot --profile backend
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Why use this instead of auto-detect?**
|
|
129
|
+
- Works with projects of any size (no local context limits)
|
|
130
|
+
- Uses powerful web-based LLMs with large context windows
|
|
131
|
+
- More reliable - doesn't crash on huge directory trees
|
|
132
|
+
- You can review and edit the suggestions before saving
|
|
71
133
|
|
|
72
134
|
#### Step 3: Use Profiles to Create Focused Snapshots
|
|
73
135
|
|
|
@@ -173,10 +235,10 @@ This generates `.eck/snapshots/update_<timestamp>.md`.
|
|
|
173
235
|
## Auxiliary Commands
|
|
174
236
|
|
|
175
237
|
* `restore <snapshot_file>`: Recreates a project's file structure from a snapshot.
|
|
176
|
-
* `generate-profile-guide`: Creates a guide for manual profile creation. Use this if `profile-detect` fails on very large projects, as it allows you to use an LLM with a larger context window (e.g., a web UI).
|
|
177
238
|
* `detect`: Shows how `eckSnapshot` has identified your project type and what default file filters are being applied.
|
|
178
239
|
* `ask-claude`: Directly delegate a task to your configured Claude Code CLI agent from the command line.
|
|
179
240
|
* `setup-gemini`: A utility to automatically configure integration with the `gemini-cli`.
|
|
241
|
+
* `show <file1> <file2> ...`: Display full content of specific files (used for lazy loading in skeleton workflow).
|
|
180
242
|
|
|
181
243
|
For a full list of commands and options, run `eck-snapshot --help`.
|
|
182
244
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xelth/eck-snapshot",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "A powerful CLI tool to create and restore single-file text snapshots of Git repositories and directories. Optimized for AI context and LLM workflows.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
"url": "https://github.com/xelth-com/eckSnapshot.git"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
+
"@anthropic-ai/sdk": "^0.33.1",
|
|
32
|
+
"@modelcontextprotocol/sdk": "^1.0.1",
|
|
31
33
|
"@babel/generator": "^7.25.6",
|
|
32
34
|
"@babel/parser": "^7.25.6",
|
|
33
35
|
"@babel/traverse": "^7.25.6",
|
package/setup.json
CHANGED
|
@@ -716,6 +716,25 @@
|
|
|
716
716
|
"Runs only in native Windows",
|
|
717
717
|
"Cannot access WSL-only tools like claude"
|
|
718
718
|
]
|
|
719
|
+
},
|
|
720
|
+
"minimax_worker": {
|
|
721
|
+
"active": true,
|
|
722
|
+
"name": "MiniMax M2.1 Worker (MCP)",
|
|
723
|
+
"description": "High-context, low-cost worker for heavy lifting. Accessed via 'delegate_coding_task' tool.",
|
|
724
|
+
"guiSupport": false,
|
|
725
|
+
"identification": {
|
|
726
|
+
"markers": ["minimax", "delegate_coding_task"]
|
|
727
|
+
},
|
|
728
|
+
"capabilities": [
|
|
729
|
+
"read large files internally",
|
|
730
|
+
"generate massive code blocks",
|
|
731
|
+
"refactor huge modules",
|
|
732
|
+
"analyze project structure"
|
|
733
|
+
],
|
|
734
|
+
"restrictions": [
|
|
735
|
+
"Cannot execute system commands directly (delegates back to Sonnet)",
|
|
736
|
+
"Requires MINIMAX_API_KEY"
|
|
737
|
+
]
|
|
719
738
|
}
|
|
720
739
|
},
|
|
721
740
|
"browserAutomation": {
|
package/src/cli/cli.js
CHANGED
|
@@ -64,7 +64,7 @@ async function checkCodeBoundaries(filePath, agentId) {
|
|
|
64
64
|
export function run() {
|
|
65
65
|
const program = new Command();
|
|
66
66
|
|
|
67
|
-
const helpGuide = `eck-snapshot (
|
|
67
|
+
const helpGuide = `eck-snapshot (v5.0.0) - AI-Native Repository Context Tool.
|
|
68
68
|
|
|
69
69
|
--- 🚀 Core Workflow: Optimized for Web LLMs (Gemini/ChatGPT) ---
|
|
70
70
|
|
|
@@ -118,7 +118,7 @@ Option C: Using Profiles
|
|
|
118
118
|
program
|
|
119
119
|
.name('eck-snapshot')
|
|
120
120
|
.description('A lightweight, platform-independent CLI for creating project snapshots.')
|
|
121
|
-
.version('
|
|
121
|
+
.version('5.0.0')
|
|
122
122
|
.addHelpText('before', helpGuide);
|
|
123
123
|
|
|
124
124
|
// Main snapshot command
|
|
@@ -134,7 +134,7 @@ args = ["${indexJsPath}", "ask-claude"]
|
|
|
134
134
|
# gemini-cli claude "Generate a project overview"
|
|
135
135
|
|
|
136
136
|
[claude.metadata]
|
|
137
|
-
version = "
|
|
137
|
+
version = "5.0.0"
|
|
138
138
|
author = "eck-snapshot"
|
|
139
139
|
generated_at = "${new Date().toISOString()}"
|
|
140
140
|
platform = "${process.platform}"
|