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 CHANGED
@@ -1,7 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Script cài đặt codestrate — in hướng dẫn cấu hình MCP
4
- * cho Claude Code các coding agent dùng stdio transport.
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
- export {};
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
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AACA;;;GAGG"}
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
- * Script cài đặt codestrate — in hướng dẫn cấu hình MCP
4
- * cho Claude Code các coding agent dùng stdio transport.
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
- "ci_repo_overview",
9
- "ci_search_code",
10
- "ci_inspect_symbol",
11
- "ci_get_context",
12
- "ci_search_history",
13
- "ci_recall_experience",
14
- "ci_record_experience",
15
- "ci_run_validation",
16
- "ci_trace_flow",
17
- "ci_detect_dead_code",
18
- "ci_status",
19
- "ci_reindex",
20
- "ci_analyze_impact",
21
- "ci_explore",
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
- const BIN_ALIASES = [
24
- "codestrate → dist/index.js (tên gốc)",
25
- "ci-mcp dist/index.js (bí danh)",
26
- "ci-install → dist/install.js (hướng dẫn cài đặt)",
27
- ];
28
- // ─── Helpers ───────────────────────────────────────────────
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("📦 Các bí danh (bin aliases) có sẵn:\n");
41
- for (const alias of BIN_ALIASES) {
42
- console.log(`${alias}`);
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("Công cụ (tools)")}`);
214
+ console.log(` ${bold(`Tools (${TOOLS.length})`)}`);
46
215
  console.log(`${separator()}\n`);
47
- console.log(` Server đăng ${TOOLS.length} tools:\n`);
48
- for (const tool of TOOLS) {
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("Cấu hình MCP — Claude Code")}`);
220
+ console.log(` ${bold("MCP Configuration — Claude Code")}`);
53
221
  console.log(`${separator()}\n`);
54
- console.log(" Thêm mục này vào Claude Code settings (MCP servers):\n");
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(" Hoặc dùng stdio trực tiếp với đường dẫn local:\n");
64
- console.log(" command: node");
65
- console.log(' args: ["<path-to-repo>/dist/index.js"]\n');
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("Hướng dẫn nhanh")}`);
235
+ console.log(` ${bold("Quick Start")}`);
68
236
  console.log(`${separator()}\n`);
69
- console.log(" 1. Build: npm run build");
70
- console.log(" 2. Chạy thử: npm start");
71
- console.log(` 3. Kiểm tra tool: nhờ Claude dùng ${TOOLS[0]}\n`);
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
- printInstructions();
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
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codestrate",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Code understanding via tree-sitter AST parsing, graph-based symbol navigation, and MCP integration for coding agents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",