@colbymchenry/codegraph 0.7.4 → 0.7.9

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.
Files changed (70) hide show
  1. package/README.md +35 -10
  2. package/dist/bin/codegraph.js +72 -4
  3. package/dist/bin/codegraph.js.map +1 -1
  4. package/dist/bin/uninstall.d.ts +7 -7
  5. package/dist/bin/uninstall.d.ts.map +1 -1
  6. package/dist/bin/uninstall.js +23 -135
  7. package/dist/bin/uninstall.js.map +1 -1
  8. package/dist/installer/claude-md-template.d.ts +10 -6
  9. package/dist/installer/claude-md-template.d.ts.map +1 -1
  10. package/dist/installer/claude-md-template.js +15 -40
  11. package/dist/installer/claude-md-template.js.map +1 -1
  12. package/dist/installer/config-writer.d.ts +17 -24
  13. package/dist/installer/config-writer.d.ts.map +1 -1
  14. package/dist/installer/config-writer.js +44 -239
  15. package/dist/installer/config-writer.js.map +1 -1
  16. package/dist/installer/index.d.ts +45 -4
  17. package/dist/installer/index.d.ts.map +1 -1
  18. package/dist/installer/index.js +214 -78
  19. package/dist/installer/index.js.map +1 -1
  20. package/dist/installer/instructions-template.d.ts +28 -0
  21. package/dist/installer/instructions-template.d.ts.map +1 -0
  22. package/dist/installer/instructions-template.js +63 -0
  23. package/dist/installer/instructions-template.js.map +1 -0
  24. package/dist/installer/targets/claude.d.ts +27 -0
  25. package/dist/installer/targets/claude.d.ts.map +1 -0
  26. package/dist/installer/targets/claude.js +246 -0
  27. package/dist/installer/targets/claude.js.map +1 -0
  28. package/dist/installer/targets/codex.d.ts +18 -0
  29. package/dist/installer/targets/codex.d.ts.map +1 -0
  30. package/dist/installer/targets/codex.js +185 -0
  31. package/dist/installer/targets/codex.js.map +1 -0
  32. package/dist/installer/targets/cursor.d.ts +35 -0
  33. package/dist/installer/targets/cursor.d.ts.map +1 -0
  34. package/dist/installer/targets/cursor.js +229 -0
  35. package/dist/installer/targets/cursor.js.map +1 -0
  36. package/dist/installer/targets/opencode.d.ts +30 -0
  37. package/dist/installer/targets/opencode.d.ts.map +1 -0
  38. package/dist/installer/targets/opencode.js +235 -0
  39. package/dist/installer/targets/opencode.js.map +1 -0
  40. package/dist/installer/targets/registry.d.ts +35 -0
  41. package/dist/installer/targets/registry.d.ts.map +1 -0
  42. package/dist/installer/targets/registry.js +83 -0
  43. package/dist/installer/targets/registry.js.map +1 -0
  44. package/dist/installer/targets/shared.d.ts +77 -0
  45. package/dist/installer/targets/shared.d.ts.map +1 -0
  46. package/dist/installer/targets/shared.js +246 -0
  47. package/dist/installer/targets/shared.js.map +1 -0
  48. package/dist/installer/targets/toml.d.ts +52 -0
  49. package/dist/installer/targets/toml.d.ts.map +1 -0
  50. package/dist/installer/targets/toml.js +147 -0
  51. package/dist/installer/targets/toml.js.map +1 -0
  52. package/dist/installer/targets/types.d.ts +116 -0
  53. package/dist/installer/targets/types.d.ts.map +1 -0
  54. package/dist/installer/targets/types.js +16 -0
  55. package/dist/installer/targets/types.js.map +1 -0
  56. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  57. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  58. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  59. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  60. package/dist/resolution/frameworks/rust.d.ts.map +1 -1
  61. package/dist/resolution/frameworks/rust.js +35 -17
  62. package/dist/resolution/frameworks/rust.js.map +1 -1
  63. package/dist/resolution/index.d.ts.map +1 -1
  64. package/dist/resolution/index.js +18 -0
  65. package/dist/resolution/index.js.map +1 -1
  66. package/dist/resolution/types.d.ts +9 -0
  67. package/dist/resolution/types.d.ts.map +1 -1
  68. package/package.json +3 -2
  69. package/scripts/local-install.sh +41 -0
  70. package/scripts/release.sh +70 -0
@@ -2,7 +2,14 @@
2
2
  /**
3
3
  * CodeGraph Interactive Installer
4
4
  *
5
- * Uses @clack/prompts for a polished interactive CLI experience.
5
+ * Multi-target: writes MCP server config + instructions for the
6
+ * agents the user picks (Claude Code, Cursor, Codex CLI, opencode).
7
+ * Defaults to the Claude-only behavior for backwards compatibility
8
+ * when no targets are explicitly chosen and nothing else is detected.
9
+ *
10
+ * Uses @clack/prompts for the interactive UI; `runInstallerWithOptions`
11
+ * is the non-interactive entry point used by the `--target` /
12
+ * `--print-config` CLI flags.
6
13
  */
7
14
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
15
  if (k2 === undefined) k2 = k;
@@ -38,24 +45,31 @@ var __importStar = (this && this.__importStar) || (function () {
38
45
  };
39
46
  })();
40
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.hasClaudeMdSection = exports.hasPermissions = exports.hasMcpConfig = exports.writeClaudeMd = exports.writePermissions = exports.writeMcpConfig = void 0;
41
49
  exports.runInstaller = runInstaller;
50
+ exports.runInstallerWithOptions = runInstallerWithOptions;
51
+ exports.wireProjectSurfacesForGlobalAgents = wireProjectSurfacesForGlobalAgents;
42
52
  const child_process_1 = require("child_process");
43
53
  const path = __importStar(require("path"));
44
54
  const fs = __importStar(require("fs"));
45
- const config_writer_1 = require("./config-writer");
55
+ const registry_1 = require("./targets/registry");
56
+ // Backwards-compat: keep these named exports — downstream code may
57
+ // import them. The shim in `config-writer.ts` continues to re-export
58
+ // them too.
59
+ var config_writer_1 = require("./config-writer");
60
+ Object.defineProperty(exports, "writeMcpConfig", { enumerable: true, get: function () { return config_writer_1.writeMcpConfig; } });
61
+ Object.defineProperty(exports, "writePermissions", { enumerable: true, get: function () { return config_writer_1.writePermissions; } });
62
+ Object.defineProperty(exports, "writeClaudeMd", { enumerable: true, get: function () { return config_writer_1.writeClaudeMd; } });
63
+ Object.defineProperty(exports, "hasMcpConfig", { enumerable: true, get: function () { return config_writer_1.hasMcpConfig; } });
64
+ Object.defineProperty(exports, "hasPermissions", { enumerable: true, get: function () { return config_writer_1.hasPermissions; } });
65
+ Object.defineProperty(exports, "hasClaudeMdSection", { enumerable: true, get: function () { return config_writer_1.hasClaudeMdSection; } });
46
66
  // Dynamic import helper — tsc compiles import() to require() in CJS mode,
47
67
  // which fails for ESM-only packages. This bypasses the transformation.
48
68
  // eslint-disable-next-line @typescript-eslint/no-implied-eval
49
69
  const importESM = new Function('specifier', 'return import(specifier)');
50
- /**
51
- * Format a number with commas
52
- */
53
70
  function formatNumber(n) {
54
71
  return n.toLocaleString();
55
72
  }
56
- /**
57
- * Get the package version
58
- */
59
73
  function getVersion() {
60
74
  try {
61
75
  const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
@@ -67,103 +81,225 @@ function getVersion() {
67
81
  }
68
82
  }
69
83
  /**
70
- * Run the interactive installer
84
+ * Interactive entry point — preserves the historical UX (`codegraph
85
+ * install` with no args goes through the prompts), but now starts
86
+ * the targets multi-select pre-populated with detected agents.
71
87
  */
72
88
  async function runInstaller() {
89
+ return runInstallerWithOptions({});
90
+ }
91
+ async function runInstallerWithOptions(opts) {
73
92
  const clack = await importESM('@clack/prompts');
74
93
  clack.intro(`CodeGraph v${getVersion()}`);
75
- // Step 1: Install globally
76
- const shouldInstallGlobally = await clack.confirm({
77
- message: 'Install codegraph globally? (Required for MCP server)',
78
- initialValue: true,
79
- });
80
- if (clack.isCancel(shouldInstallGlobally)) {
81
- clack.cancel('Installation cancelled.');
82
- process.exit(0);
94
+ // --yes implies all defaults; explicit flags still win.
95
+ const useDefaults = opts.yes === true;
96
+ // Step 1: which agent targets? Asked FIRST so the user knows what
97
+ // they're committing to before we touch npm or disk. Detection
98
+ // probes the user-provided location if known, else 'global' as the
99
+ // most common default — labels are a hint, not load-bearing.
100
+ const detectionLocation = opts.location ?? 'global';
101
+ const targets = await resolveTargets(clack, opts, detectionLocation, useDefaults);
102
+ if (targets.length === 0) {
103
+ clack.outro('No agent targets selected — nothing to do.');
104
+ return;
83
105
  }
84
- if (shouldInstallGlobally) {
85
- const s = clack.spinner();
86
- s.start('Installing codegraph globally...');
87
- try {
88
- (0, child_process_1.execSync)('npm install -g @colbymchenry/codegraph', { stdio: 'pipe' });
89
- s.stop('Installed codegraph globally');
106
+ // Step 2: install the codegraph npm package on PATH (always offered;
107
+ // matches existing behavior). Skipped when --yes (assume present).
108
+ if (!useDefaults) {
109
+ const shouldInstallGlobally = await clack.confirm({
110
+ message: 'Install the codegraph CLI on your PATH? (Required so agents can launch the MCP server)',
111
+ initialValue: true,
112
+ });
113
+ if (clack.isCancel(shouldInstallGlobally)) {
114
+ clack.cancel('Installation cancelled.');
115
+ process.exit(0);
116
+ }
117
+ if (shouldInstallGlobally) {
118
+ const s = clack.spinner();
119
+ s.start('Installing codegraph CLI...');
120
+ try {
121
+ (0, child_process_1.execSync)('npm install -g @colbymchenry/codegraph', { stdio: 'pipe' });
122
+ s.stop('Installed codegraph CLI on PATH');
123
+ }
124
+ catch {
125
+ s.stop('Could not install (permission denied)');
126
+ clack.log.warn('Try: sudo npm install -g @colbymchenry/codegraph');
127
+ }
90
128
  }
91
- catch {
92
- s.stop('Could not install globally (permission denied)');
93
- clack.log.warn('Try: sudo npm install -g @colbymchenry/codegraph');
129
+ else {
130
+ clack.log.info('Skipped CLI install agents will not be able to launch the MCP server without it');
94
131
  }
95
132
  }
133
+ // Step 3: where the per-agent config files should land.
134
+ let location;
135
+ if (opts.location) {
136
+ location = opts.location;
137
+ }
138
+ else if (useDefaults) {
139
+ location = 'global';
140
+ }
96
141
  else {
97
- clack.log.info('Skipped global install MCP server may not work without it');
98
- }
99
- // Step 2: Installation location
100
- const location = await clack.select({
101
- message: 'Where would you like to install?',
102
- options: [
103
- { value: 'global', label: 'Global', hint: '~/.claude available in all projects' },
104
- { value: 'local', label: 'Local', hint: './.claude — this project only' },
105
- ],
106
- initialValue: 'global',
107
- });
108
- if (clack.isCancel(location)) {
109
- clack.cancel('Installation cancelled.');
110
- process.exit(0);
142
+ // If every selected target is global-only (e.g. Codex), skip the
143
+ // prompt and force user-wide — project-local would just produce
144
+ // skip warnings.
145
+ const allGlobalOnly = targets.every((t) => !t.supportsLocation('local'));
146
+ if (allGlobalOnly) {
147
+ location = 'global';
148
+ clack.log.info('Writing user-wide configs (selected agents have no project-local config).');
149
+ }
150
+ else {
151
+ const sel = await clack.select({
152
+ message: 'Apply agent configs to all your projects, or just this one?',
153
+ options: [
154
+ { value: 'global', label: 'All projects', hint: '~/.claude, ~/.cursor, etc.' },
155
+ { value: 'local', label: 'Just this project', hint: './.claude, ./.cursor, etc.' },
156
+ ],
157
+ initialValue: 'global',
158
+ });
159
+ if (clack.isCancel(sel)) {
160
+ clack.cancel('Installation cancelled.');
161
+ process.exit(0);
162
+ }
163
+ location = sel;
164
+ }
111
165
  }
112
- // Step 3: Auto-allow permissions
113
- const autoAllow = await clack.confirm({
114
- message: 'Auto-allow CodeGraph commands? (Skips permission prompts)',
115
- initialValue: true,
116
- });
117
- if (clack.isCancel(autoAllow)) {
118
- clack.cancel('Installation cancelled.');
119
- process.exit(0);
166
+ // Step 4: auto-allow permissions (only meaningful for Claude;
167
+ // skipped silently by other targets).
168
+ let autoAllow;
169
+ if (opts.autoAllow !== undefined) {
170
+ autoAllow = opts.autoAllow;
171
+ }
172
+ else if (useDefaults) {
173
+ autoAllow = true;
120
174
  }
121
- // Step 4: Write configuration files
122
- writeConfigs(clack, location, autoAllow);
123
- // Step 5: For local install, initialize the project
175
+ else if (targets.some((t) => t.id === 'claude')) {
176
+ const ans = await clack.confirm({
177
+ message: 'Auto-allow CodeGraph commands? (Skips permission prompts in Claude Code)',
178
+ initialValue: true,
179
+ });
180
+ if (clack.isCancel(ans)) {
181
+ clack.cancel('Installation cancelled.');
182
+ process.exit(0);
183
+ }
184
+ autoAllow = ans;
185
+ }
186
+ else {
187
+ autoAllow = false;
188
+ }
189
+ // Step 5: per-target install loop.
190
+ for (const target of targets) {
191
+ if (!target.supportsLocation(location)) {
192
+ clack.log.warn(`${target.displayName}: skipped — does not support --location=${location}.`);
193
+ continue;
194
+ }
195
+ const result = target.install(location, { autoAllow });
196
+ for (const file of result.files) {
197
+ const verb = file.action === 'unchanged'
198
+ ? 'Unchanged'
199
+ : file.action === 'created' ? 'Created' : 'Updated';
200
+ clack.log.success(`${target.displayName}: ${verb} ${tildify(file.path)}`);
201
+ }
202
+ for (const note of result.notes ?? []) {
203
+ clack.log.info(`${target.displayName}: ${note}`);
204
+ }
205
+ }
206
+ // Step 6: for local install, initialize the project.
124
207
  if (location === 'local') {
125
208
  await initializeLocalProject(clack);
126
209
  }
127
- // Done
128
210
  if (location === 'global') {
129
211
  clack.note('cd your-project\ncodegraph init -i', 'Quick start');
130
212
  }
131
- clack.outro('Done! Restart Claude Code to use CodeGraph.');
213
+ const finalNote = targets.length > 0
214
+ ? `Done! Restart your agent${targets.length > 1 ? 's' : ''} to use CodeGraph.`
215
+ : 'Done!';
216
+ clack.outro(finalNote);
132
217
  }
133
218
  /**
134
- * Write all configuration files and log results
219
+ * For every target that has a global config and exposes
220
+ * `wireProjectSurfaces`, write its project-local surfaces (e.g.
221
+ * Cursor's `.cursor/rules/codegraph.mdc`). Idempotent — runs
222
+ * silently when there's nothing to write.
223
+ *
224
+ * Called by `codegraph init` so that a user who ran
225
+ * `codegraph install` once globally doesn't have to re-run it per
226
+ * project to get full agent support.
227
+ *
228
+ * Returns the list of `(target, file)` pairs that were created or
229
+ * updated — caller decides how to surface them.
135
230
  */
136
- function writeConfigs(clack, location, autoAllow) {
137
- const locationLabel = location === 'global' ? '~/.claude' : './.claude';
138
- // MCP config
139
- const mcpAction = (0, config_writer_1.hasMcpConfig)(location) ? 'Updated' : 'Added';
140
- (0, config_writer_1.writeMcpConfig)(location);
141
- clack.log.success(`${mcpAction} MCP server in ${locationLabel}.json`);
142
- // Permissions
143
- if (autoAllow) {
144
- const permAction = (0, config_writer_1.hasPermissions)(location) ? 'Updated' : 'Added';
145
- (0, config_writer_1.writePermissions)(location);
146
- clack.log.success(`${permAction} permissions in ${locationLabel}/settings.json`);
147
- }
148
- // CLAUDE.md
149
- const claudeMdResult = (0, config_writer_1.writeClaudeMd)(location);
150
- const claudeMdPath = `${locationLabel}/CLAUDE.md`;
151
- if (claudeMdResult.created) {
152
- clack.log.success(`Created ${claudeMdPath}`);
153
- }
154
- else if (claudeMdResult.updated) {
155
- clack.log.success(`Updated ${claudeMdPath}`);
231
+ function wireProjectSurfacesForGlobalAgents() {
232
+ const written = [];
233
+ for (const target of registry_1.ALL_TARGETS) {
234
+ if (typeof target.wireProjectSurfaces !== 'function')
235
+ continue;
236
+ const detection = target.detect('global');
237
+ if (!detection.alreadyConfigured)
238
+ continue;
239
+ const result = target.wireProjectSurfaces();
240
+ for (const file of result.files) {
241
+ if (file.action === 'created' || file.action === 'updated') {
242
+ written.push({ target, file });
243
+ }
244
+ }
156
245
  }
157
- else {
158
- clack.log.success(`Added CodeGraph instructions to ${claudeMdPath}`);
246
+ return written;
247
+ }
248
+ /**
249
+ * Replace home-directory prefix in a path with `~/` for cleaner log
250
+ * lines. Pure cosmetic.
251
+ */
252
+ function tildify(p) {
253
+ const home = require('os').homedir();
254
+ if (p.startsWith(home + path.sep))
255
+ return '~' + p.substring(home.length);
256
+ return p;
257
+ }
258
+ async function resolveTargets(clack, opts, location, useDefaults) {
259
+ // Explicit --target flag wins.
260
+ if (opts.target !== undefined) {
261
+ return (0, registry_1.resolveTargetFlag)(opts.target, location);
262
+ }
263
+ // --yes implies auto-detect.
264
+ if (useDefaults) {
265
+ return (0, registry_1.resolveTargetFlag)('auto', location);
266
+ }
267
+ // Interactive multi-select.
268
+ const detected = (0, registry_1.detectAll)(location);
269
+ const initialValues = detected
270
+ .filter(({ detection }) => detection.installed)
271
+ .map(({ target }) => target.id);
272
+ // If nothing detected, default to Claude alone (matches the
273
+ // historical default and the smallest-surprise outcome).
274
+ const initial = initialValues.length > 0 ? initialValues : ['claude'];
275
+ const choice = await clack.multiselect({
276
+ message: 'Which agents should CodeGraph configure?',
277
+ options: registry_1.ALL_TARGETS.map((t) => {
278
+ const det = detected.find(({ target }) => target.id === t.id).detection;
279
+ const flag = det.installed ? '(detected)' : '(not found)';
280
+ const globalOnly = !t.supportsLocation('local') ? ' — global only' : '';
281
+ return {
282
+ value: t.id,
283
+ label: `${t.displayName} ${flag}${globalOnly}`,
284
+ };
285
+ }),
286
+ initialValues: initial,
287
+ required: false,
288
+ });
289
+ if (clack.isCancel(choice)) {
290
+ clack.cancel('Installation cancelled.');
291
+ process.exit(0);
159
292
  }
293
+ return choice
294
+ .map((id) => (0, registry_1.getTarget)(id))
295
+ .filter((t) => t !== undefined);
160
296
  }
161
297
  /**
162
- * Initialize CodeGraph in the current project (for local installs)
298
+ * Initialize CodeGraph in the current project (for local installs).
299
+ * Unchanged from the pre-refactor version — agent-agnostic by nature.
163
300
  */
164
301
  async function initializeLocalProject(clack) {
165
302
  const projectPath = process.cwd();
166
- // Lazy-load CodeGraph (requires native modules)
167
303
  let CodeGraph;
168
304
  try {
169
305
  CodeGraph = (await Promise.resolve().then(() => __importStar(require('../index')))).default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Agent-instructions template — the markdown body each agent target
3
+ * writes into its conventional instructions file (CLAUDE.md /
4
+ * AGENTS.md / codegraph.mdc / etc.).
5
+ *
6
+ * The body content is identical across agents because the codegraph
7
+ * usage advice is agent-agnostic — only the destination filename and
8
+ * any optional frontmatter (Cursor `.mdc`) varies per target.
9
+ *
10
+ * The legacy `claude-md-template.ts` re-exports these names for
11
+ * backwards compatibility with downstream importers.
12
+ */
13
+ /** Markers used by the marker-based section replacement. */
14
+ export declare const CODEGRAPH_SECTION_START = "<!-- CODEGRAPH_START -->";
15
+ export declare const CODEGRAPH_SECTION_END = "<!-- CODEGRAPH_END -->";
16
+ /**
17
+ * The full marker-delimited block written into each agent's
18
+ * instructions file. Includes the start/end markers so the section
19
+ * can be detected and replaced on re-install.
20
+ */
21
+ export declare const INSTRUCTIONS_TEMPLATE = "<!-- CODEGRAPH_START -->\n## CodeGraph\n\nThis project has a CodeGraph MCP server (`codegraph_*` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.\n\n### When to prefer codegraph over native search\n\nUse codegraph for **structural** questions \u2014 what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.\n\n| Question | Tool |\n|---|---|\n| \"Where is X defined?\" / \"Find symbol named X\" | `codegraph_search` |\n| \"What calls function Y?\" | `codegraph_callers` |\n| \"What does Y call?\" | `codegraph_callees` |\n| \"What would break if I changed Z?\" | `codegraph_impact` |\n| \"Show me Y's signature / source / docstring\" | `codegraph_node` |\n| \"Give me focused context for a task/area\" | `codegraph_context` |\n| \"Survey an unfamiliar module/topic\" | `codegraph_explore` |\n| \"What files exist under path/\" | `codegraph_files` |\n| \"Is the index healthy?\" | `codegraph_status` |\n\n### Rules of thumb\n\n- **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep \u2014 that's slower, less accurate, and wastes context.\n- **Don't grep first** when looking up a symbol by name. `codegraph_search` is faster and returns kind + location + signature in one call.\n- **Don't chain `codegraph_search` + `codegraph_node`** when you just want context \u2014 `codegraph_context` is one call.\n- **`codegraph_explore` is the heavy hitter** for unfamiliar areas \u2014 it returns full source from all relevant files in one call, but is token-heavy. If your harness supports parallel subagents (e.g., Claude Code's Task tool), spawn one for explore-class questions to keep main session context clean.\n- **Index lag**: the file watcher debounces ~500ms behind writes; don't re-query immediately after editing a file in the same turn.\n\n### If `.codegraph/` doesn't exist\n\nThe MCP server returns \"not initialized.\" Ask the user: *\"I notice this project doesn't have CodeGraph initialized. Want me to run `codegraph init -i` to build the index?\"*\n<!-- CODEGRAPH_END -->";
22
+ /**
23
+ * Backwards-compat alias. Existing downstream code may import
24
+ * `CLAUDE_MD_TEMPLATE` from this module via the re-export shim in
25
+ * `claude-md-template.ts`.
26
+ */
27
+ export declare const CLAUDE_MD_TEMPLATE = "<!-- CODEGRAPH_START -->\n## CodeGraph\n\nThis project has a CodeGraph MCP server (`codegraph_*` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.\n\n### When to prefer codegraph over native search\n\nUse codegraph for **structural** questions \u2014 what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.\n\n| Question | Tool |\n|---|---|\n| \"Where is X defined?\" / \"Find symbol named X\" | `codegraph_search` |\n| \"What calls function Y?\" | `codegraph_callers` |\n| \"What does Y call?\" | `codegraph_callees` |\n| \"What would break if I changed Z?\" | `codegraph_impact` |\n| \"Show me Y's signature / source / docstring\" | `codegraph_node` |\n| \"Give me focused context for a task/area\" | `codegraph_context` |\n| \"Survey an unfamiliar module/topic\" | `codegraph_explore` |\n| \"What files exist under path/\" | `codegraph_files` |\n| \"Is the index healthy?\" | `codegraph_status` |\n\n### Rules of thumb\n\n- **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep \u2014 that's slower, less accurate, and wastes context.\n- **Don't grep first** when looking up a symbol by name. `codegraph_search` is faster and returns kind + location + signature in one call.\n- **Don't chain `codegraph_search` + `codegraph_node`** when you just want context \u2014 `codegraph_context` is one call.\n- **`codegraph_explore` is the heavy hitter** for unfamiliar areas \u2014 it returns full source from all relevant files in one call, but is token-heavy. If your harness supports parallel subagents (e.g., Claude Code's Task tool), spawn one for explore-class questions to keep main session context clean.\n- **Index lag**: the file watcher debounces ~500ms behind writes; don't re-query immediately after editing a file in the same turn.\n\n### If `.codegraph/` doesn't exist\n\nThe MCP server returns \"not initialized.\" Ask the user: *\"I notice this project doesn't have CodeGraph initialized. Want me to run `codegraph init -i` to build the index?\"*\n<!-- CODEGRAPH_END -->";
28
+ //# sourceMappingURL=instructions-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions-template.d.ts","sourceRoot":"","sources":["../../src/installer/instructions-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,+wEAgCT,CAAC;AAE1B;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,+wEAAwB,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * Agent-instructions template — the markdown body each agent target
4
+ * writes into its conventional instructions file (CLAUDE.md /
5
+ * AGENTS.md / codegraph.mdc / etc.).
6
+ *
7
+ * The body content is identical across agents because the codegraph
8
+ * usage advice is agent-agnostic — only the destination filename and
9
+ * any optional frontmatter (Cursor `.mdc`) varies per target.
10
+ *
11
+ * The legacy `claude-md-template.ts` re-exports these names for
12
+ * backwards compatibility with downstream importers.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CLAUDE_MD_TEMPLATE = exports.INSTRUCTIONS_TEMPLATE = exports.CODEGRAPH_SECTION_END = exports.CODEGRAPH_SECTION_START = void 0;
16
+ /** Markers used by the marker-based section replacement. */
17
+ exports.CODEGRAPH_SECTION_START = '<!-- CODEGRAPH_START -->';
18
+ exports.CODEGRAPH_SECTION_END = '<!-- CODEGRAPH_END -->';
19
+ /**
20
+ * The full marker-delimited block written into each agent's
21
+ * instructions file. Includes the start/end markers so the section
22
+ * can be detected and replaced on re-install.
23
+ */
24
+ exports.INSTRUCTIONS_TEMPLATE = `${exports.CODEGRAPH_SECTION_START}
25
+ ## CodeGraph
26
+
27
+ This project has a CodeGraph MCP server (\`codegraph_*\` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.
28
+
29
+ ### When to prefer codegraph over native search
30
+
31
+ Use codegraph for **structural** questions — what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.
32
+
33
+ | Question | Tool |
34
+ |---|---|
35
+ | "Where is X defined?" / "Find symbol named X" | \`codegraph_search\` |
36
+ | "What calls function Y?" | \`codegraph_callers\` |
37
+ | "What does Y call?" | \`codegraph_callees\` |
38
+ | "What would break if I changed Z?" | \`codegraph_impact\` |
39
+ | "Show me Y's signature / source / docstring" | \`codegraph_node\` |
40
+ | "Give me focused context for a task/area" | \`codegraph_context\` |
41
+ | "Survey an unfamiliar module/topic" | \`codegraph_explore\` |
42
+ | "What files exist under path/" | \`codegraph_files\` |
43
+ | "Is the index healthy?" | \`codegraph_status\` |
44
+
45
+ ### Rules of thumb
46
+
47
+ - **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep — that's slower, less accurate, and wastes context.
48
+ - **Don't grep first** when looking up a symbol by name. \`codegraph_search\` is faster and returns kind + location + signature in one call.
49
+ - **Don't chain \`codegraph_search\` + \`codegraph_node\`** when you just want context — \`codegraph_context\` is one call.
50
+ - **\`codegraph_explore\` is the heavy hitter** for unfamiliar areas — it returns full source from all relevant files in one call, but is token-heavy. If your harness supports parallel subagents (e.g., Claude Code's Task tool), spawn one for explore-class questions to keep main session context clean.
51
+ - **Index lag**: the file watcher debounces ~500ms behind writes; don't re-query immediately after editing a file in the same turn.
52
+
53
+ ### If \`.codegraph/\` doesn't exist
54
+
55
+ The MCP server returns "not initialized." Ask the user: *"I notice this project doesn't have CodeGraph initialized. Want me to run \`codegraph init -i\` to build the index?"*
56
+ ${exports.CODEGRAPH_SECTION_END}`;
57
+ /**
58
+ * Backwards-compat alias. Existing downstream code may import
59
+ * `CLAUDE_MD_TEMPLATE` from this module via the re-export shim in
60
+ * `claude-md-template.ts`.
61
+ */
62
+ exports.CLAUDE_MD_TEMPLATE = exports.INSTRUCTIONS_TEMPLATE;
63
+ //# sourceMappingURL=instructions-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions-template.js","sourceRoot":"","sources":["../../src/installer/instructions-template.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,4DAA4D;AAC/C,QAAA,uBAAuB,GAAG,0BAA0B,CAAC;AACrD,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,GAAG,+BAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC7D,6BAAqB,EAAE,CAAC;AAE1B;;;;GAIG;AACU,QAAA,kBAAkB,GAAG,6BAAqB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Claude Code target — the historical default. Writes:
3
+ *
4
+ * - MCP server entry to `~/.claude.json` (global) or
5
+ * `./.claude.json` (local).
6
+ * - Permissions to `~/.claude/settings.json` (global) or
7
+ * `./.claude/settings.json` (local), gated on `autoAllow`.
8
+ * - Instructions to `~/.claude/CLAUDE.md` (global) or
9
+ * `./.claude/CLAUDE.md` (local).
10
+ *
11
+ * All paths and shapes ported verbatim from the original
12
+ * `config-writer.ts` so existing Claude Code installs upgrade in
13
+ * place — no migration on disk required.
14
+ */
15
+ import { AgentTarget, Location, WriteResult } from './types';
16
+ /**
17
+ * Per-file write helpers, exported so the legacy `config-writer.ts`
18
+ * shim can call only the named operation (writeMcpConfig writes ONLY
19
+ * the MCP entry, etc.) instead of `claudeTarget.install()` which
20
+ * writes all three files. Without this split the shims silently
21
+ * cause side effects callers don't expect.
22
+ */
23
+ export declare function writeMcpEntry(loc: Location): WriteResult['files'][number];
24
+ export declare function writePermissionsEntry(loc: Location): WriteResult['files'][number];
25
+ export declare function writeInstructionsEntry(loc: Location): WriteResult['files'][number];
26
+ export declare const claudeTarget: AgentTarget;
27
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EACL,WAAW,EAGX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;AAqIjB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAqBzE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAoBjF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CA0ClF;AAED,eAAO,MAAM,YAAY,EAAE,WAAoC,CAAC"}