@horiastanxd/claude-init 0.6.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 +2 -1
- package/dist/cli.js +20 -25
- 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
|
@@ -107,7 +107,8 @@ Options:
|
|
|
107
107
|
|
|
108
108
|
For a monorepo, `--recurse` reads the workspaces from `package.json`
|
|
109
109
|
(`workspaces`) or `pnpm-workspace.yaml`, then generates context files in the root
|
|
110
|
-
and in each package, analyzing every package on its own.
|
|
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).
|
|
111
112
|
|
|
112
113
|
## Keep context files fresh
|
|
113
114
|
|
package/dist/cli.js
CHANGED
|
@@ -4,8 +4,8 @@ import { resolve } from 'node:path';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { analyzeProject } from './analyzer/index.js';
|
|
7
|
-
import { detectWorkspacePackages } from './analyzer/workspaces.js';
|
|
8
7
|
import { generateAll, checkAll } from './generators/index.js';
|
|
8
|
+
import { generateWorkspacePackages, checkWorkspacePackages } from './generate-recursive.js';
|
|
9
9
|
import { TARGETS, TARGET_IDS, invalidTargets } from './generators/registry.js';
|
|
10
10
|
import { getVersion } from './version.js';
|
|
11
11
|
function parseTargets(raw) {
|
|
@@ -51,28 +51,13 @@ async function runGenerate(dir, opts) {
|
|
|
51
51
|
}
|
|
52
52
|
let total = written.length;
|
|
53
53
|
if (opts.recurse) {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
let pkgAnalysis;
|
|
58
|
-
try {
|
|
59
|
-
pkgAnalysis = await analyzeProject(pkgDir);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const res = await generateAll(pkgAnalysis, {
|
|
65
|
-
outputDir: pkgDir,
|
|
66
|
-
targets,
|
|
67
|
-
overwrite: opts.overwrite,
|
|
68
|
-
minimal: false,
|
|
69
|
-
});
|
|
70
|
-
console.log(chalk.bold(`\n${rel}/`));
|
|
71
|
-
for (const f of res.written)
|
|
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)
|
|
72
57
|
console.log(chalk.green(' +'), f);
|
|
73
|
-
for (const f of
|
|
58
|
+
for (const f of pkg.skipped)
|
|
74
59
|
console.log(chalk.yellow(' -'), `${f} ${chalk.dim('(exists)')}`);
|
|
75
|
-
total +=
|
|
60
|
+
total += pkg.written.length;
|
|
76
61
|
}
|
|
77
62
|
}
|
|
78
63
|
if (!total && skipped.length) {
|
|
@@ -85,17 +70,26 @@ async function runGenerate(dir, opts) {
|
|
|
85
70
|
async function runCheck(dir, opts) {
|
|
86
71
|
const projectDir = resolve(dir ?? '.');
|
|
87
72
|
const targets = parseTargets(opts.targets);
|
|
88
|
-
const
|
|
89
|
-
const { entries, drifted } = await checkAll(analysis, resolve(opts.output), targets);
|
|
90
|
-
for (const e of entries) {
|
|
73
|
+
const printEntry = (e) => {
|
|
91
74
|
const mark = e.status === 'ok'
|
|
92
75
|
? chalk.green(' ok ')
|
|
93
76
|
: e.status === 'stale'
|
|
94
77
|
? chalk.yellow(' stale ')
|
|
95
78
|
: chalk.red(' missing');
|
|
96
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
|
+
}
|
|
97
91
|
}
|
|
98
|
-
if (
|
|
92
|
+
if (anyDrift) {
|
|
99
93
|
console.log(chalk.red('\nContext files are out of date. Run `claude-init --overwrite` to refresh.'));
|
|
100
94
|
process.exitCode = 1;
|
|
101
95
|
}
|
|
@@ -139,6 +133,7 @@ async function main() {
|
|
|
139
133
|
.argument('[dir]', 'project directory', '.')
|
|
140
134
|
.option('-t, --targets <list>', `comma-separated (${TARGET_IDS.join(',')},all)`, 'all')
|
|
141
135
|
.option('-o, --output <dir>', 'output directory', '.')
|
|
136
|
+
.option('--recurse', 'also check each workspace package (monorepo)', false)
|
|
142
137
|
.action(runCheck);
|
|
143
138
|
program.command('list').description('List supported targets and their output paths').action(runList);
|
|
144
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,
|
|
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": {
|