codestrate 0.2.0 → 0.2.1
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/dist/install.d.ts +13 -3
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +217 -41
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
package/dist/install.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Install script for codestrate — prints MCP configuration instructions
|
|
4
|
+
* and automatically injects an MCP server section into AGENTS.md
|
|
5
|
+
* so coding agents know to use the available tools.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Inject or update the codestrate MCP section in AGENTS.md.
|
|
9
|
+
*
|
|
10
|
+
* Looks for markers `<!-- codestrate-mcp -->` … `<!-- /codestrate-mcp -->`.
|
|
11
|
+
* If found, replaces the content between them. Otherwise appends at end of file.
|
|
12
|
+
*
|
|
13
|
+
* @param agentsPath - Path to AGENTS.md (default: cwd/AGENTS.md)
|
|
14
|
+
* @returns true if the file was modified, false if skipped
|
|
15
|
+
*/
|
|
16
|
+
export declare function injectToAgentsMd(agentsPath?: string): boolean;
|
|
7
17
|
//# sourceMappingURL=install.d.ts.map
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AACA;;;;GAIG;AA6IH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAwC7D"}
|
package/dist/install.js
CHANGED
|
@@ -1,57 +1,225 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Install script for codestrate — prints MCP configuration instructions
|
|
4
|
+
* and automatically injects an MCP server section into AGENTS.md
|
|
5
|
+
* so coding agents know to use the available tools.
|
|
5
6
|
*/
|
|
7
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
8
|
+
import { resolve } from "path";
|
|
6
9
|
import { SERVER_NAME, SERVER_VERSION } from "./constants.js";
|
|
7
10
|
const TOOLS = [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
{
|
|
12
|
+
name: "ci_get_context",
|
|
13
|
+
description: "Primary context retrieval — finds relevant symbols, files, tests, git history, and past experiences for a natural-language task description, within a token budget.",
|
|
14
|
+
usage: "Call first for any new coding task to gather relevant context before diving in.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "ci_explore",
|
|
18
|
+
description: "Search symbols, files, and patterns using graph FTS5 + symbol index. Returns compressed, relevance-ranked results.",
|
|
19
|
+
usage: "Explore unknown code; find where a symbol is defined or referenced across the codebase.",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "ci_repo_overview",
|
|
23
|
+
description: "Scan repository structure, build system, frameworks, entry points, and available commands (build/test/lint). Returns a Markdown or JSON report.",
|
|
24
|
+
usage: "Understand a new repository's architecture and toolchain on first encounter.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "ci_search_code",
|
|
28
|
+
description: "Full-text code search via ripgrep + BM25 symbol scoring. Supports language filters and pagination.",
|
|
29
|
+
usage: "Find code by content or pattern when you need raw text search across files.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "ci_inspect_symbol",
|
|
33
|
+
description: "Look up a symbol definition, its callers, callees, imports, and related tests.",
|
|
34
|
+
usage: "Understand a specific symbol's role, who calls it, and what it depends on.",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: "ci_trace_flow",
|
|
38
|
+
description: "Trace the call/import flow for a symbol — finds callers, callees, imports, and dependencies up to a configurable depth.",
|
|
39
|
+
usage: "Follow a call chain across modules to understand execution paths or data flow.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "ci_search_history",
|
|
43
|
+
description: "Search git history for commits matching a query (commit messages, files, authors).",
|
|
44
|
+
usage: "Find when/why something changed; investigate bug introduction or feature history.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "ci_recall_experience",
|
|
48
|
+
description: "Search past experiences and memories semantically similar to the current task. Supports filtering by memory type (episodic, semantic, procedural, negative) and repository.",
|
|
49
|
+
usage: "Check if a similar problem was solved before; learn from past debugging sessions.",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "ci_detect_dead_code",
|
|
53
|
+
description: "Find symbols with zero callers in the graph — potential dead code candidates for removal.",
|
|
54
|
+
usage: "Clean up unused code; identify functions, methods, or variables never referenced elsewhere.",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "ci_analyze_impact",
|
|
58
|
+
description: "Analyze the impact of file changes — finds dependents, imports, exports, and related tests to identify affected modules.",
|
|
59
|
+
usage: "Before refactoring or deleting code, check what else would break or need updates.",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "ci_status",
|
|
63
|
+
description: "Report the current repository index state — fingerprint, commit, age, symbol count, relation count, and staleness detection.",
|
|
64
|
+
usage: "Check if the index is up-to-date; verify the server has indexed the repository.",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "ci_run_validation",
|
|
68
|
+
description: "Run validation commands (build, test, lint) against the project to verify code quality. Reports pass/fail per target with output.",
|
|
69
|
+
usage: "After making changes, run validation to confirm nothing is broken.",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "ci_record_experience",
|
|
73
|
+
description: "Save a verified experience to memory. Requires validation evidence: build/test pass, commit SHA, changed files, and the validation command that was run.",
|
|
74
|
+
usage: "After fixing a bug or completing a task, record the experience so future sessions benefit from the knowledge.",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "ci_reindex",
|
|
78
|
+
description: "Rebuild the repository index — rescans files, extracts symbols, and updates relations. Supports incremental (git diff) and full modes.",
|
|
79
|
+
usage: "Trigger re-indexing when the index is stale or after significant codebase changes via git operations.",
|
|
80
|
+
},
|
|
22
81
|
];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
];
|
|
28
|
-
|
|
82
|
+
// ─── AGENTS.md section generator ───────────────────────────
|
|
83
|
+
const MARKER_OPEN = "<!-- codestrate-mcp -->";
|
|
84
|
+
const MARKER_CLOSE = "<!-- /codestrate-mcp -->";
|
|
85
|
+
function generateMdSection() {
|
|
86
|
+
const lines = [];
|
|
87
|
+
lines.push("");
|
|
88
|
+
lines.push(MARKER_OPEN);
|
|
89
|
+
lines.push("## MCP Servers");
|
|
90
|
+
lines.push("");
|
|
91
|
+
lines.push("The following MCP server is available via `stdio` transport. Its tools provide code understanding, symbol analysis, repository intelligence, and cross-session memory for coding agents.");
|
|
92
|
+
lines.push("");
|
|
93
|
+
lines.push("### codestrate");
|
|
94
|
+
lines.push("");
|
|
95
|
+
lines.push(`- **Package**: \`codestrate\` on npm`);
|
|
96
|
+
lines.push(`- **Transport**: stdio`);
|
|
97
|
+
lines.push(`- **Command**: \`npx -y codestrate\``);
|
|
98
|
+
lines.push(`- **Registry**: ${TOOLS.length} tools (all prefixed \`ci_\`)`);
|
|
99
|
+
lines.push("");
|
|
100
|
+
lines.push("#### Tool Reference");
|
|
101
|
+
lines.push("");
|
|
102
|
+
lines.push("| Tool | Description | When to Use |");
|
|
103
|
+
lines.push("|------|-------------|-------------|");
|
|
104
|
+
for (const t of TOOLS) {
|
|
105
|
+
// Escape pipe characters in descriptions
|
|
106
|
+
const desc = t.description.replace(/\|/g, "\\|");
|
|
107
|
+
const usage = t.usage.replace(/\|/g, "\\|");
|
|
108
|
+
lines.push(`| \`${t.name}\` | ${desc} | ${usage} |`);
|
|
109
|
+
}
|
|
110
|
+
lines.push("");
|
|
111
|
+
lines.push("#### Best Practices");
|
|
112
|
+
lines.push("");
|
|
113
|
+
lines.push("1. **Start every task** by calling `ci_get_context` first. It retrieves relevant symbols, files, tests, git history, and past experiences — the agent equivalent of opening the files you'll work on.");
|
|
114
|
+
lines.push("2. **Explore unknown code** with `ci_explore` (keyword/symbol search) or `ci_search_code` (full-text search). Prefer `ci_explore` for structure-aware lookups.");
|
|
115
|
+
lines.push("3. **Understand symbols** with `ci_inspect_symbol` (definition + callers + callees) and `ci_trace_flow` (call chain up to N depths).");
|
|
116
|
+
lines.push("4. **Check impact** before refactoring: use `ci_analyze_impact` to find everything that depends on the files you're changing.");
|
|
117
|
+
lines.push("5. **Learn from history**: use `ci_recall_experience` to find similar past fixes; use `ci_search_history` for git archaeology.");
|
|
118
|
+
lines.push("6. **Verify changes** with `ci_run_validation` (build/test/lint) after making edits.");
|
|
119
|
+
lines.push("7. **Save knowledge**: call `ci_record_experience` after fixing a bug or completing a non-trivial task — it feeds future recall.");
|
|
120
|
+
lines.push("8. **Keep the index fresh**: if the index is stale (check with `ci_status`), run `ci_reindex`.");
|
|
121
|
+
lines.push("");
|
|
122
|
+
lines.push(MARKER_CLOSE);
|
|
123
|
+
lines.push("");
|
|
124
|
+
return lines.join("\n");
|
|
125
|
+
}
|
|
126
|
+
// ─── Inject into AGENTS.md ──────────────────────────────────
|
|
127
|
+
/**
|
|
128
|
+
* Inject or update the codestrate MCP section in AGENTS.md.
|
|
129
|
+
*
|
|
130
|
+
* Looks for markers `<!-- codestrate-mcp -->` … `<!-- /codestrate-mcp -->`.
|
|
131
|
+
* If found, replaces the content between them. Otherwise appends at end of file.
|
|
132
|
+
*
|
|
133
|
+
* @param agentsPath - Path to AGENTS.md (default: cwd/AGENTS.md)
|
|
134
|
+
* @returns true if the file was modified, false if skipped
|
|
135
|
+
*/
|
|
136
|
+
export function injectToAgentsMd(agentsPath) {
|
|
137
|
+
const path = resolve(agentsPath ?? "AGENTS.md");
|
|
138
|
+
const section = generateMdSection();
|
|
139
|
+
let content;
|
|
140
|
+
let existed = true;
|
|
141
|
+
try {
|
|
142
|
+
content = readFileSync(path, "utf-8");
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// File doesn't exist — create it with just the section
|
|
146
|
+
content = "# Agent Instructions\n\n";
|
|
147
|
+
existed = false;
|
|
148
|
+
}
|
|
149
|
+
const openIdx = content.indexOf(MARKER_OPEN);
|
|
150
|
+
const closeIdx = content.indexOf(MARKER_CLOSE);
|
|
151
|
+
if (openIdx !== -1 && closeIdx !== -1 && closeIdx > openIdx) {
|
|
152
|
+
// Replace existing section (inclusive of markers)
|
|
153
|
+
const before = content.slice(0, openIdx);
|
|
154
|
+
const after = content.slice(closeIdx + MARKER_CLOSE.length);
|
|
155
|
+
const newContent = before + section.trimStart() + after;
|
|
156
|
+
if (newContent === content) {
|
|
157
|
+
return false; // No change
|
|
158
|
+
}
|
|
159
|
+
writeFileSync(path, newContent, "utf-8");
|
|
160
|
+
console.error(`Updated MCP server section in ${path}`);
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
// Append at end
|
|
164
|
+
const needsNewline = content.endsWith("\n");
|
|
165
|
+
const newContent = content + (needsNewline ? "" : "\n") + section;
|
|
166
|
+
writeFileSync(path, newContent, "utf-8");
|
|
167
|
+
console.error(existed
|
|
168
|
+
? `Appended MCP server section to ${path}`
|
|
169
|
+
: `Created ${path} with MCP server section`);
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
// ─── CLI ────────────────────────────────────────────────────
|
|
173
|
+
function parseArgs() {
|
|
174
|
+
const args = process.argv.slice(2);
|
|
175
|
+
let agentsPath;
|
|
176
|
+
let noInject = false;
|
|
177
|
+
for (let i = 0; i < args.length; i++) {
|
|
178
|
+
const arg = args[i];
|
|
179
|
+
if (arg === "--agents-path" && i + 1 < args.length) {
|
|
180
|
+
agentsPath = args[++i];
|
|
181
|
+
}
|
|
182
|
+
else if (arg === "--no-inject") {
|
|
183
|
+
noInject = true;
|
|
184
|
+
}
|
|
185
|
+
else if (arg === "--help" || arg === "-h") {
|
|
186
|
+
console.log("Usage: npx codestrate [options]");
|
|
187
|
+
console.log("");
|
|
188
|
+
console.log("Options:");
|
|
189
|
+
console.log(" --agents-path <path> Path to AGENTS.md (default: ./AGENTS.md)");
|
|
190
|
+
console.log(" --no-inject Skip injecting into AGENTS.md");
|
|
191
|
+
console.log(" --help, -h Show this help");
|
|
192
|
+
process.exit(0);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return { agentsPath, noInject };
|
|
196
|
+
}
|
|
197
|
+
// ─── Instructions output ───────────────────────────────────
|
|
29
198
|
function separator() {
|
|
30
199
|
return "─".repeat(60);
|
|
31
200
|
}
|
|
32
201
|
function bold(text) {
|
|
33
202
|
return process.stdout.isTTY ? `\x1b[1m${text}\x1b[22m` : text;
|
|
34
203
|
}
|
|
35
|
-
// ─── Main ──────────────────────────────────────────────────
|
|
36
204
|
function printInstructions() {
|
|
205
|
+
const toolNames = TOOLS.map((t) => t.name);
|
|
37
206
|
console.log(`\n${separator()}`);
|
|
38
207
|
console.log(` ${bold(SERVER_NAME)} v${SERVER_VERSION}`);
|
|
39
208
|
console.log(`${separator()}\n`);
|
|
40
|
-
console.log("
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
209
|
+
console.log(" Bin aliases:\n");
|
|
210
|
+
console.log(" • codestrate → dist/index.js");
|
|
211
|
+
console.log(" • ci-mcp → dist/index.js");
|
|
212
|
+
console.log(" • ci-install → dist/install.js");
|
|
44
213
|
console.log(`\n${separator()}`);
|
|
45
|
-
console.log(` ${bold(
|
|
214
|
+
console.log(` ${bold(`Tools (${TOOLS.length})`)}`);
|
|
46
215
|
console.log(`${separator()}\n`);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
console.log(` • ${tool}`);
|
|
216
|
+
for (const t of TOOLS) {
|
|
217
|
+
console.log(` • ${t.name}`);
|
|
50
218
|
}
|
|
51
219
|
console.log(`\n${separator()}`);
|
|
52
|
-
console.log(` ${bold("
|
|
220
|
+
console.log(` ${bold("MCP Configuration — Claude Code")}`);
|
|
53
221
|
console.log(`${separator()}\n`);
|
|
54
|
-
console.log("
|
|
222
|
+
console.log(" Add to Claude Code MCP settings:\n");
|
|
55
223
|
console.log(' {\n'
|
|
56
224
|
+ ' "mcpServers": {\n'
|
|
57
225
|
+ ` "${SERVER_NAME}": {\n`
|
|
@@ -60,16 +228,24 @@ function printInstructions() {
|
|
|
60
228
|
+ ' }\n'
|
|
61
229
|
+ ' }\n'
|
|
62
230
|
+ ' }\n');
|
|
63
|
-
console.log("
|
|
64
|
-
console.log(
|
|
65
|
-
console.log(' args: ["<
|
|
231
|
+
console.log(" Or run locally:\n");
|
|
232
|
+
console.log(' command: node');
|
|
233
|
+
console.log(' args: ["<repo>/dist/index.js"]\n');
|
|
66
234
|
console.log(`${separator()}`);
|
|
67
|
-
console.log(` ${bold("
|
|
235
|
+
console.log(` ${bold("Quick Start")}`);
|
|
68
236
|
console.log(`${separator()}\n`);
|
|
69
|
-
console.log(" 1. Build:
|
|
70
|
-
console.log(" 2.
|
|
71
|
-
console.log(` 3.
|
|
237
|
+
console.log(" 1. Build: npm run build");
|
|
238
|
+
console.log(" 2. Run: npm start");
|
|
239
|
+
console.log(` 3. Test: ask Claude to use ${toolNames[0]}\n`);
|
|
72
240
|
console.log(`${separator()}\n`);
|
|
73
241
|
}
|
|
74
|
-
|
|
242
|
+
// ─── Main ──────────────────────────────────────────────────
|
|
243
|
+
function main() {
|
|
244
|
+
const { agentsPath, noInject } = parseArgs();
|
|
245
|
+
printInstructions();
|
|
246
|
+
if (!noInject) {
|
|
247
|
+
injectToAgentsMd(agentsPath);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
main();
|
|
75
251
|
//# sourceMappingURL=install.js.map
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED