@senoldogann/context-manager 0.1.24 → 0.1.26
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 +43 -0
- package/bin/ccm.js +11 -2
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -31,6 +31,20 @@ npx @senoldogann/context-manager index --path .
|
|
|
31
31
|
|
|
32
32
|
**That's it!** Restart your AI editor and start asking questions about your code.
|
|
33
33
|
|
|
34
|
+
### First-Run Verification
|
|
35
|
+
|
|
36
|
+
Use this quick smoke test after install:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Verify the CLI responds
|
|
40
|
+
npx @senoldogann/context-manager query --text "src/main.rs:1"
|
|
41
|
+
|
|
42
|
+
# Verify the MCP binary starts
|
|
43
|
+
npx @senoldogann/context-manager mcp
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If the wrapper is healthy, the query command should return code context and the MCP process should stay open waiting for stdio messages.
|
|
47
|
+
|
|
34
48
|
---
|
|
35
49
|
|
|
36
50
|
## 📖 What is CCM?
|
|
@@ -55,6 +69,15 @@ The npm wrapper downloads pre-built binaries and passes commands through:
|
|
|
55
69
|
| `npx @senoldogann/context-manager mcp` | Run MCP server directly |
|
|
56
70
|
| `npx @senoldogann/context-manager eval --tasks <file>` | Run evaluation tasks |
|
|
57
71
|
|
|
72
|
+
### Supported Hosts
|
|
73
|
+
|
|
74
|
+
| Host | Status |
|
|
75
|
+
|------|--------|
|
|
76
|
+
| Codex | Supported |
|
|
77
|
+
| Cursor | Supported |
|
|
78
|
+
| Claude Desktop | Supported |
|
|
79
|
+
| Antigravity | Supported |
|
|
80
|
+
|
|
58
81
|
### Options
|
|
59
82
|
|
|
60
83
|
```bash
|
|
@@ -140,6 +163,15 @@ This package handles:
|
|
|
140
163
|
2. Binary download from GitHub Releases
|
|
141
164
|
3. Global persistence in `~/.ccm`
|
|
142
165
|
|
|
166
|
+
### ✅ Release Reliability
|
|
167
|
+
|
|
168
|
+
- GitHub Releases publish platform binaries plus `checksums.txt`
|
|
169
|
+
- The npm wrapper verifies checksums before using downloaded binaries
|
|
170
|
+
- Redirects are restricted to approved GitHub release hosts
|
|
171
|
+
- Release builds run for Linux, macOS, and Windows before assets are attached
|
|
172
|
+
- npm publishing uses GitHub Actions trusted publishing with OIDC
|
|
173
|
+
- The same smoke path is documented here and in the main repository README
|
|
174
|
+
|
|
143
175
|
### ✅ Binary Integrity
|
|
144
176
|
|
|
145
177
|
Downloads are verified against `checksums.txt` from the GitHub Release.
|
|
@@ -152,10 +184,21 @@ Enable `CCM_EMBED_DATA_FILES=1` to include them in semantic search.
|
|
|
152
184
|
|
|
153
185
|
**Source:** https://github.com/senoldogann/LLM-Context-Manager
|
|
154
186
|
|
|
187
|
+
**Docs:** [English README](https://github.com/senoldogann/LLM-Context-Manager/blob/main/README.md) | [Turkish README](https://github.com/senoldogann/LLM-Context-Manager/blob/main/README.tr.md)
|
|
188
|
+
|
|
155
189
|
---
|
|
156
190
|
|
|
157
191
|
## 📝 Changelog
|
|
158
192
|
|
|
193
|
+
### v0.1.26
|
|
194
|
+
- ✅ Trusted publishing workflow updated for modern Node and npm requirements
|
|
195
|
+
- ✅ Release jobs now skip npm publish when the same version is already live
|
|
196
|
+
- ✅ Safer wrapper binary downloads during concurrent first-run installs
|
|
197
|
+
|
|
198
|
+
### v0.1.25
|
|
199
|
+
- ✅ npm publish now uses GitHub Actions trusted publishing (OIDC)
|
|
200
|
+
- ✅ Clearer first-run verification and release reliability docs
|
|
201
|
+
|
|
159
202
|
### v0.1.24
|
|
160
203
|
- ✅ Native `protoc` installation in GitHub Actions release builds
|
|
161
204
|
- ✅ Updated release workflow actions for newer runner compatibility
|
package/bin/ccm.js
CHANGED
|
@@ -7,7 +7,7 @@ const os = require('os');
|
|
|
7
7
|
const https = require('https');
|
|
8
8
|
const crypto = require('crypto');
|
|
9
9
|
|
|
10
|
-
const VERSION = "0.1.
|
|
10
|
+
const VERSION = "0.1.26";
|
|
11
11
|
const REPO = 'senoldogann/LLM-Context-Manager';
|
|
12
12
|
const BIN_DIR = path.join(os.homedir(), '.ccm', 'bin');
|
|
13
13
|
const CHECKSUMS_FILE = 'checksums.txt';
|
|
@@ -159,6 +159,10 @@ function installCodexConfig() {
|
|
|
159
159
|
return true;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
+
function createUniqueTmpPath(binPath) {
|
|
163
|
+
return `${binPath}.${process.pid}.${Date.now()}.tmp`;
|
|
164
|
+
}
|
|
165
|
+
|
|
162
166
|
async function getBinaryFor(commandName) {
|
|
163
167
|
const platform = os.platform();
|
|
164
168
|
const arch = os.arch();
|
|
@@ -193,12 +197,16 @@ async function getBinaryFor(commandName) {
|
|
|
193
197
|
}
|
|
194
198
|
|
|
195
199
|
const url = `https://github.com/${REPO}/releases/download/v${VERSION}/${commandName}-${target}`;
|
|
196
|
-
const tmpPath =
|
|
200
|
+
const tmpPath = createUniqueTmpPath(binPath);
|
|
197
201
|
|
|
198
202
|
try {
|
|
199
203
|
await downloadFile(url, tmpPath);
|
|
200
204
|
await verifyChecksum(tmpPath, [remoteFilename, binFilename]);
|
|
201
205
|
fs.chmodSync(tmpPath, '755');
|
|
206
|
+
if (fs.existsSync(binPath)) {
|
|
207
|
+
fs.unlinkSync(tmpPath);
|
|
208
|
+
return binPath;
|
|
209
|
+
}
|
|
202
210
|
fs.renameSync(tmpPath, binPath);
|
|
203
211
|
} catch (err) {
|
|
204
212
|
if (fs.existsSync(tmpPath)) fs.unlinkSync(tmpPath);
|
|
@@ -228,6 +236,7 @@ async function getBinary() {
|
|
|
228
236
|
|
|
229
237
|
function downloadFile(url, dest) {
|
|
230
238
|
return new Promise((resolve, reject) => {
|
|
239
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
231
240
|
https.get(url, (response) => {
|
|
232
241
|
if (response.statusCode === 302 || response.statusCode === 301) {
|
|
233
242
|
try {
|
package/package.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@senoldogann/context-manager",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "LLM Context Manager MCP Server & CLI wrapper using npx",
|
|
5
|
+
"repository": "https://github.com/senoldogann/LLM-Context-Manager",
|
|
6
|
+
"homepage": "https://github.com/senoldogann/LLM-Context-Manager",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/senoldogann/LLM-Context-Manager/issues"
|
|
9
|
+
},
|
|
5
10
|
"main": "bin/ccm.js",
|
|
6
11
|
"bin": {
|
|
7
12
|
"ccm-cli": "bin/ccm.js",
|