@horiastanxd/claude-init 0.5.0 → 0.7.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.
- package/README.md +7 -1
- package/dist/analyzer/workspaces.d.ts +7 -0
- package/dist/analyzer/workspaces.js +83 -0
- package/dist/analyzer/workspaces.js.map +1 -0
- package/dist/cli.js +29 -6
- package/dist/cli.js.map +1 -1
- package/dist/generate-recursive.d.ts +18 -0
- package/dist/generate-recursive.js +44 -0
- package/dist/generate-recursive.js.map +1 -0
- package/dist/mcp-server.js +31 -2
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,6 +84,7 @@ npx @horiastanxd/claude-init ./path/to/repo # analyze a different director
|
|
|
84
84
|
npx @horiastanxd/claude-init -t claude,cursor # only specific tools
|
|
85
85
|
npx @horiastanxd/claude-init --overwrite # refresh files that already exist
|
|
86
86
|
npx @horiastanxd/claude-init --dry-run # print the analysis as JSON, write nothing
|
|
87
|
+
npx @horiastanxd/claude-init --recurse # also generate into each workspace package (monorepo)
|
|
87
88
|
npx @horiastanxd/claude-init list # show all targets and their paths
|
|
88
89
|
```
|
|
89
90
|
|
|
@@ -101,8 +102,14 @@ Options:
|
|
|
101
102
|
-o, --output <dir> output directory (default: .)
|
|
102
103
|
--overwrite overwrite existing files
|
|
103
104
|
--dry-run print the analysis as JSON, write nothing
|
|
105
|
+
--recurse also generate into each workspace package (monorepo)
|
|
104
106
|
```
|
|
105
107
|
|
|
108
|
+
For a monorepo, `--recurse` reads the workspaces from `package.json`
|
|
109
|
+
(`workspaces`) or `pnpm-workspace.yaml`, then generates context files in the root
|
|
110
|
+
and in each package, analyzing every package on its own. It works for both
|
|
111
|
+
`generate --recurse` and `check --recurse` (and the MCP tools take a `recurse` flag).
|
|
112
|
+
|
|
106
113
|
## Keep context files fresh
|
|
107
114
|
|
|
108
115
|
`claude-init check` regenerates in memory and compares against disk, exiting non-zero
|
|
@@ -213,7 +220,6 @@ Contributions welcome - adding a new tool is usually a single entry in
|
|
|
213
220
|
|
|
214
221
|
## Roadmap
|
|
215
222
|
|
|
216
|
-
- Monorepo-aware generation (per-package context files)
|
|
217
223
|
- Optional LLM pass to enrich descriptions (opt-in, off by default)
|
|
218
224
|
- More tools as their formats stabilize
|
|
219
225
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace package directories of a monorepo, relative to `projectDir` with POSIX
|
|
3
|
+
* separators. Reads npm/yarn `workspaces` (array or `{ packages: [] }`) and
|
|
4
|
+
* `pnpm-workspace.yaml`. Only `dir/*` (single level) and exact paths are resolved;
|
|
5
|
+
* each result is confirmed to contain a `package.json`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function detectWorkspacePackages(projectDir: string): Promise<string[]>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { readdir } from 'node:fs/promises';
|
|
3
|
+
import { pathExists, readJson, readText } from '../utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* Workspace package directories of a monorepo, relative to `projectDir` with POSIX
|
|
6
|
+
* separators. Reads npm/yarn `workspaces` (array or `{ packages: [] }`) and
|
|
7
|
+
* `pnpm-workspace.yaml`. Only `dir/*` (single level) and exact paths are resolved;
|
|
8
|
+
* each result is confirmed to contain a `package.json`.
|
|
9
|
+
*/
|
|
10
|
+
export async function detectWorkspacePackages(projectDir) {
|
|
11
|
+
const globs = [
|
|
12
|
+
...(await npmWorkspaceGlobs(projectDir)),
|
|
13
|
+
...(await pnpmWorkspaceGlobs(projectDir)),
|
|
14
|
+
];
|
|
15
|
+
const out = [];
|
|
16
|
+
for (const glob of globs) {
|
|
17
|
+
for (const rel of await resolveGlob(projectDir, glob)) {
|
|
18
|
+
if (!out.includes(rel))
|
|
19
|
+
out.push(rel);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
async function npmWorkspaceGlobs(dir) {
|
|
25
|
+
const pkg = await readJson(join(dir, 'package.json'));
|
|
26
|
+
const ws = pkg?.workspaces;
|
|
27
|
+
if (Array.isArray(ws))
|
|
28
|
+
return ws;
|
|
29
|
+
if (ws && Array.isArray(ws.packages))
|
|
30
|
+
return ws.packages;
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
async function pnpmWorkspaceGlobs(dir) {
|
|
34
|
+
const content = await readText(join(dir, 'pnpm-workspace.yaml'));
|
|
35
|
+
if (content === null)
|
|
36
|
+
return [];
|
|
37
|
+
const globs = [];
|
|
38
|
+
let inPackages = false;
|
|
39
|
+
for (const line of content.split('\n')) {
|
|
40
|
+
if (/^packages:\s*$/.test(line)) {
|
|
41
|
+
inPackages = true;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!inPackages)
|
|
45
|
+
continue;
|
|
46
|
+
const m = /^\s*-\s*["']?([^"'\n]+?)["']?\s*$/.exec(line);
|
|
47
|
+
if (m)
|
|
48
|
+
globs.push(m[1].trim());
|
|
49
|
+
else if (/^\S/.test(line))
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
return globs;
|
|
53
|
+
}
|
|
54
|
+
async function resolveGlob(projectDir, glob) {
|
|
55
|
+
const g = glob.replace(/\/+$/, '');
|
|
56
|
+
if (g.startsWith('!') || g === '')
|
|
57
|
+
return []; // pnpm exclusions / blanks
|
|
58
|
+
const hasPkgJson = (rel) => pathExists(join(projectDir, rel, 'package.json'));
|
|
59
|
+
if (g.endsWith('/*')) {
|
|
60
|
+
const base = g.slice(0, -2);
|
|
61
|
+
let entries;
|
|
62
|
+
try {
|
|
63
|
+
entries = await readdir(join(projectDir, base), { withFileTypes: true });
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
const out = [];
|
|
69
|
+
for (const e of entries) {
|
|
70
|
+
if (!e.isDirectory())
|
|
71
|
+
continue;
|
|
72
|
+
const rel = `${base}/${e.name}`;
|
|
73
|
+
if (await hasPkgJson(rel))
|
|
74
|
+
out.push(rel);
|
|
75
|
+
}
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
78
|
+
// Deeper globs (** or mid-path *) are not resolved - avoid guessing wrong paths.
|
|
79
|
+
if (g.includes('*'))
|
|
80
|
+
return [];
|
|
81
|
+
return (await hasPkgJson(g)) ? [g] : [];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=workspaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/analyzer/workspaces.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import chalk from 'chalk';
|
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { analyzeProject } from './analyzer/index.js';
|
|
7
7
|
import { generateAll, checkAll } from './generators/index.js';
|
|
8
|
+
import { generateWorkspacePackages, checkWorkspacePackages } from './generate-recursive.js';
|
|
8
9
|
import { TARGETS, TARGET_IDS, invalidTargets } from './generators/registry.js';
|
|
9
10
|
import { getVersion } from './version.js';
|
|
10
11
|
function parseTargets(raw) {
|
|
@@ -48,27 +49,47 @@ async function runGenerate(dir, opts) {
|
|
|
48
49
|
for (const f of skipped) {
|
|
49
50
|
console.log(chalk.yellow(' -'), `${f} ${chalk.dim('(exists, use --overwrite)')}`);
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
+
let total = written.length;
|
|
53
|
+
if (opts.recurse) {
|
|
54
|
+
for (const pkg of await generateWorkspacePackages(projectDir, { targets, overwrite: opts.overwrite })) {
|
|
55
|
+
console.log(chalk.bold(`\n${pkg.rel}/`));
|
|
56
|
+
for (const f of pkg.written)
|
|
57
|
+
console.log(chalk.green(' +'), f);
|
|
58
|
+
for (const f of pkg.skipped)
|
|
59
|
+
console.log(chalk.yellow(' -'), `${f} ${chalk.dim('(exists)')}`);
|
|
60
|
+
total += pkg.written.length;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!total && skipped.length) {
|
|
52
64
|
console.log(chalk.yellow('\nNothing written. Re-run with --overwrite to replace existing files.'));
|
|
53
65
|
}
|
|
54
66
|
else {
|
|
55
|
-
console.log(chalk.bold(`\nDone. ${
|
|
67
|
+
console.log(chalk.bold(`\nDone. ${total} file(s) generated.`));
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
70
|
async function runCheck(dir, opts) {
|
|
59
71
|
const projectDir = resolve(dir ?? '.');
|
|
60
72
|
const targets = parseTargets(opts.targets);
|
|
61
|
-
const
|
|
62
|
-
const { entries, drifted } = await checkAll(analysis, resolve(opts.output), targets);
|
|
63
|
-
for (const e of entries) {
|
|
73
|
+
const printEntry = (e) => {
|
|
64
74
|
const mark = e.status === 'ok'
|
|
65
75
|
? chalk.green(' ok ')
|
|
66
76
|
: e.status === 'stale'
|
|
67
77
|
? chalk.yellow(' stale ')
|
|
68
78
|
: chalk.red(' missing');
|
|
69
79
|
console.log(mark, e.path);
|
|
80
|
+
};
|
|
81
|
+
const analysis = await analyzeProject(projectDir);
|
|
82
|
+
const { entries, drifted } = await checkAll(analysis, resolve(opts.output), targets);
|
|
83
|
+
entries.forEach(printEntry);
|
|
84
|
+
let anyDrift = drifted;
|
|
85
|
+
if (opts.recurse) {
|
|
86
|
+
for (const pkg of await checkWorkspacePackages(projectDir, targets)) {
|
|
87
|
+
console.log(chalk.bold(`\n${pkg.rel}/`));
|
|
88
|
+
pkg.entries.forEach(printEntry);
|
|
89
|
+
anyDrift = anyDrift || pkg.drifted;
|
|
90
|
+
}
|
|
70
91
|
}
|
|
71
|
-
if (
|
|
92
|
+
if (anyDrift) {
|
|
72
93
|
console.log(chalk.red('\nContext files are out of date. Run `claude-init --overwrite` to refresh.'));
|
|
73
94
|
process.exitCode = 1;
|
|
74
95
|
}
|
|
@@ -104,6 +125,7 @@ async function main() {
|
|
|
104
125
|
.option('-o, --output <dir>', 'output directory', '.')
|
|
105
126
|
.option('--overwrite', 'overwrite existing files', false)
|
|
106
127
|
.option('--dry-run', 'print the analysis as JSON without writing files', false)
|
|
128
|
+
.option('--recurse', 'also generate into each workspace package (monorepo)', false)
|
|
107
129
|
.action(runGenerate);
|
|
108
130
|
program
|
|
109
131
|
.command('check')
|
|
@@ -111,6 +133,7 @@ async function main() {
|
|
|
111
133
|
.argument('[dir]', 'project directory', '.')
|
|
112
134
|
.option('-t, --targets <list>', `comma-separated (${TARGET_IDS.join(',')},all)`, 'all')
|
|
113
135
|
.option('-o, --output <dir>', 'output directory', '.')
|
|
136
|
+
.option('--recurse', 'also check each workspace package (monorepo)', false)
|
|
114
137
|
.action(runCheck);
|
|
115
138
|
program.command('list').description('List supported targets and their output paths').action(runList);
|
|
116
139
|
program
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CheckEntry } from './types.js';
|
|
2
|
+
export interface PackageGenerate {
|
|
3
|
+
rel: string;
|
|
4
|
+
written: string[];
|
|
5
|
+
skipped: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface PackageCheck {
|
|
8
|
+
rel: string;
|
|
9
|
+
entries: CheckEntry[];
|
|
10
|
+
drifted: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Generate context files in each workspace package, analyzing every package on its own. */
|
|
13
|
+
export declare function generateWorkspacePackages(projectDir: string, opts: {
|
|
14
|
+
targets: string[];
|
|
15
|
+
overwrite: boolean;
|
|
16
|
+
}): Promise<PackageGenerate[]>;
|
|
17
|
+
/** Check context files in each workspace package against its own analysis. */
|
|
18
|
+
export declare function checkWorkspacePackages(projectDir: string, targets: string[]): Promise<PackageCheck[]>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { analyzeProject } from './analyzer/index.js';
|
|
3
|
+
import { detectWorkspacePackages } from './analyzer/workspaces.js';
|
|
4
|
+
import { generateAll, checkAll } from './generators/index.js';
|
|
5
|
+
/** Generate context files in each workspace package, analyzing every package on its own. */
|
|
6
|
+
export async function generateWorkspacePackages(projectDir, opts) {
|
|
7
|
+
const out = [];
|
|
8
|
+
for (const rel of await detectWorkspacePackages(projectDir)) {
|
|
9
|
+
const pkgDir = resolve(projectDir, rel);
|
|
10
|
+
let analysis;
|
|
11
|
+
try {
|
|
12
|
+
analysis = await analyzeProject(pkgDir);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const { written, skipped } = await generateAll(analysis, {
|
|
18
|
+
outputDir: pkgDir,
|
|
19
|
+
targets: opts.targets,
|
|
20
|
+
overwrite: opts.overwrite,
|
|
21
|
+
minimal: false,
|
|
22
|
+
});
|
|
23
|
+
out.push({ rel, written, skipped });
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
/** Check context files in each workspace package against its own analysis. */
|
|
28
|
+
export async function checkWorkspacePackages(projectDir, targets) {
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const rel of await detectWorkspacePackages(projectDir)) {
|
|
31
|
+
const pkgDir = resolve(projectDir, rel);
|
|
32
|
+
let analysis;
|
|
33
|
+
try {
|
|
34
|
+
analysis = await analyzeProject(pkgDir);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const { entries, drifted } = await checkAll(analysis, pkgDir, targets);
|
|
40
|
+
out.push({ rel, entries, drifted });
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=generate-recursive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-recursive.js","sourceRoot":"","sources":["../src/generate-recursive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAe9D,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAkB,EAClB,IAA+C;IAE/C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,MAAM,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE;YACvD,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB,EAClB,OAAiB;IAEjB,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -3,6 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
3
3
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { analyzeProject } from './analyzer/index.js';
|
|
5
5
|
import { generateAll, checkAll } from './generators/index.js';
|
|
6
|
+
import { generateWorkspacePackages, checkWorkspacePackages } from './generate-recursive.js';
|
|
6
7
|
import { TARGET_IDS } from './generators/registry.js';
|
|
7
8
|
import { getVersion } from './version.js';
|
|
8
9
|
export async function startMcpServer() {
|
|
@@ -34,6 +35,10 @@ export async function startMcpServer() {
|
|
|
34
35
|
},
|
|
35
36
|
outputDir: { type: 'string', description: 'Output directory (default: the project path)' },
|
|
36
37
|
overwrite: { type: 'boolean', description: 'Overwrite existing files (default: false)' },
|
|
38
|
+
recurse: {
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
description: 'Also generate into each workspace package for a monorepo (default: false)',
|
|
41
|
+
},
|
|
37
42
|
},
|
|
38
43
|
required: ['path'],
|
|
39
44
|
},
|
|
@@ -50,6 +55,10 @@ export async function startMcpServer() {
|
|
|
50
55
|
items: { type: 'string', enum: [...TARGET_IDS, 'all'] },
|
|
51
56
|
},
|
|
52
57
|
outputDir: { type: 'string', description: 'Directory holding the files (default: the project path)' },
|
|
58
|
+
recurse: {
|
|
59
|
+
type: 'boolean',
|
|
60
|
+
description: 'Also check each workspace package for a monorepo (default: false)',
|
|
61
|
+
},
|
|
53
62
|
},
|
|
54
63
|
required: ['path'],
|
|
55
64
|
},
|
|
@@ -78,15 +87,35 @@ export async function startMcpServer() {
|
|
|
78
87
|
: 'No files generated.',
|
|
79
88
|
skipped.length ? `\nSkipped (already exist):\n${skipped.map((f) => ` - ${f}`).join('\n')}` : '',
|
|
80
89
|
].filter(Boolean);
|
|
90
|
+
if (args.recurse === true) {
|
|
91
|
+
const packages = await generateWorkspacePackages(path, {
|
|
92
|
+
targets: args.targets ?? ['all'],
|
|
93
|
+
overwrite: args.overwrite === true,
|
|
94
|
+
});
|
|
95
|
+
for (const pkg of packages) {
|
|
96
|
+
lines.push(`\n${pkg.rel}/\n${pkg.written.map((f) => ` + ${f}`).join('\n')}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
81
99
|
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
82
100
|
}
|
|
83
101
|
if (name === 'check_context_files') {
|
|
84
102
|
const analysis = await analyzeProject(path);
|
|
85
103
|
const { entries, drifted } = await checkAll(analysis, args.outputDir ?? path, args.targets ?? ['all']);
|
|
86
|
-
const
|
|
104
|
+
const sections = [entries.map((e) => ` ${e.status.padEnd(7)} ${e.path}`).join('\n')];
|
|
105
|
+
let anyDrift = drifted;
|
|
106
|
+
if (args.recurse === true) {
|
|
107
|
+
const packages = await checkWorkspacePackages(path, args.targets ?? ['all']);
|
|
108
|
+
for (const pkg of packages) {
|
|
109
|
+
sections.push(`${pkg.rel}/\n${pkg.entries.map((e) => ` ${e.status.padEnd(7)} ${e.path}`).join('\n')}`);
|
|
110
|
+
anyDrift = anyDrift || pkg.drifted;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
87
113
|
return {
|
|
88
114
|
content: [
|
|
89
|
-
{
|
|
115
|
+
{
|
|
116
|
+
type: 'text',
|
|
117
|
+
text: `${sections.join('\n\n')}\n\n${anyDrift ? 'Drift detected.' : 'All up to date.'}`,
|
|
118
|
+
},
|
|
90
119
|
],
|
|
91
120
|
};
|
|
92
121
|
}
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,mGAAmG;gBACrG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;qBAChF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EACT,+HAA+H;gBACjI,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;wBAC/E,OAAO,EAAE;4BACP,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE;4BACvD,WAAW,EAAE,0CAA0C;yBACxD;wBACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;wBAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@horiastanxd/claude-init",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "One command generates AI context files - CLAUDE.md, AGENTS.md, Cursor/Windsurf/Cline/Continue/Kilo Code/Trae rules, GEMINI.md, Copilot, Aider, Junie, Warp - for any repository. CLI + MCP server, 100% local.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|