@mikulgohil/ai-kit 1.7.0 → 1.8.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 +9 -9
- package/ai-kit.config.schema.json +284 -0
- package/dist/index.js +56 -146
- package/dist/index.js.map +1 -1
- package/package.json +8 -4
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ One command. Project-aware AI from the first conversation.
|
|
|
7
7
|
[](https://www.npmjs.com/package/@mikulgohil/ai-kit)
|
|
8
8
|
[](https://github.com/mikulgohil/ai-kit/blob/main/LICENSE)
|
|
9
9
|
|
|
10
|
-
> **[Read the full documentation](https://ai-kit
|
|
10
|
+
> **[Read the full documentation](https://ai-kit.mikul.me)** | [Getting Started](https://ai-kit.mikul.me/getting-started) | [CLI Reference](https://ai-kit.mikul.me/cli-reference) | [Skills & Commands](https://ai-kit.mikul.me/slash-commands) | [Hooks](https://ai-kit.mikul.me/hooks) | [Agents](https://ai-kit.mikul.me/agents) | [Changelog](https://ai-kit.mikul.me/changelog)
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
npx @mikulgohil/ai-kit init
|
|
@@ -242,17 +242,17 @@ Only content between `AI-KIT:START/END` markers is refreshed. Your custom rules
|
|
|
242
242
|
|
|
243
243
|
## Documentation
|
|
244
244
|
|
|
245
|
-
**[ai-kit
|
|
245
|
+
**[ai-kit.mikul.me](https://ai-kit.mikul.me)**
|
|
246
246
|
|
|
247
247
|
| Page | What You'll Learn |
|
|
248
248
|
|---|---|
|
|
249
|
-
| [Getting Started](https://ai-kit
|
|
250
|
-
| [CLI Reference](https://ai-kit
|
|
251
|
-
| [Skills & Commands](https://ai-kit
|
|
252
|
-
| [What Gets Generated](https://ai-kit
|
|
253
|
-
| [Hooks](https://ai-kit
|
|
254
|
-
| [Agents](https://ai-kit
|
|
255
|
-
| [Changelog](https://ai-kit
|
|
249
|
+
| [Getting Started](https://ai-kit.mikul.me/getting-started) | Step-by-step setup walkthrough |
|
|
250
|
+
| [CLI Reference](https://ai-kit.mikul.me/cli-reference) | All 13 commands with examples |
|
|
251
|
+
| [Skills & Commands](https://ai-kit.mikul.me/slash-commands) | All 46 skills with usage guides |
|
|
252
|
+
| [What Gets Generated](https://ai-kit.mikul.me/what-gets-generated) | Detailed breakdown of every generated file |
|
|
253
|
+
| [Hooks](https://ai-kit.mikul.me/hooks) | Hook profiles, mistakes auto-capture |
|
|
254
|
+
| [Agents](https://ai-kit.mikul.me/agents) | 10 specialized agents |
|
|
255
|
+
| [Changelog](https://ai-kit.mikul.me/changelog) | Version history and release notes |
|
|
256
256
|
|
|
257
257
|
---
|
|
258
258
|
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://ai-kit.mikul.me/schema/ai-kit.config.schema.json",
|
|
4
|
+
"title": "AI Kit Configuration",
|
|
5
|
+
"description": "Configuration file generated by @mikulgohil/ai-kit. Auto-detected project settings, templates, commands, and tooling preferences.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"version",
|
|
9
|
+
"scanResult",
|
|
10
|
+
"generatedAt",
|
|
11
|
+
"templates",
|
|
12
|
+
"commands",
|
|
13
|
+
"guides",
|
|
14
|
+
"agents",
|
|
15
|
+
"contexts",
|
|
16
|
+
"hooks",
|
|
17
|
+
"hookProfile",
|
|
18
|
+
"strictness",
|
|
19
|
+
"customFragments",
|
|
20
|
+
"tools"
|
|
21
|
+
],
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"properties": {
|
|
24
|
+
"$schema": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Pointer to the JSON Schema for editor validation and autocompletion."
|
|
27
|
+
},
|
|
28
|
+
"version": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "The ai-kit version that generated this configuration."
|
|
31
|
+
},
|
|
32
|
+
"scanResult": {
|
|
33
|
+
"$ref": "#/definitions/ProjectScan",
|
|
34
|
+
"description": "Auto-detected project metadata from the scan phase."
|
|
35
|
+
},
|
|
36
|
+
"generatedAt": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "ISO 8601 timestamp of when this configuration was generated."
|
|
39
|
+
},
|
|
40
|
+
"templates": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": { "type": "string" },
|
|
43
|
+
"description": "List of template identifiers selected for this project."
|
|
44
|
+
},
|
|
45
|
+
"commands": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": { "type": "string" },
|
|
48
|
+
"description": "Slash commands generated for the project."
|
|
49
|
+
},
|
|
50
|
+
"guides": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": { "type": "string" },
|
|
53
|
+
"description": "Developer guides generated for the project."
|
|
54
|
+
},
|
|
55
|
+
"agents": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": { "type": "string" },
|
|
58
|
+
"description": "AI agent configurations generated for the project."
|
|
59
|
+
},
|
|
60
|
+
"contexts": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": { "type": "string" },
|
|
63
|
+
"description": "Context mode files generated for the project."
|
|
64
|
+
},
|
|
65
|
+
"hooks": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"description": "Whether Claude Code hooks are enabled."
|
|
68
|
+
},
|
|
69
|
+
"hookProfile": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"enum": ["minimal", "standard", "strict"],
|
|
72
|
+
"description": "The hook strictness profile controlling which hooks are generated."
|
|
73
|
+
},
|
|
74
|
+
"strictness": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": ["strict", "standard", "relaxed"],
|
|
77
|
+
"description": "Overall strictness level for generated rules and guidelines."
|
|
78
|
+
},
|
|
79
|
+
"teamProfile": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": ["solo-dev", "small-team", "enterprise"],
|
|
82
|
+
"description": "Optional team size profile that tailors generated content."
|
|
83
|
+
},
|
|
84
|
+
"customFragments": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"items": { "type": "string" },
|
|
87
|
+
"description": "User-provided custom rule fragments merged into generated output."
|
|
88
|
+
},
|
|
89
|
+
"tools": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"description": "Which AI coding tools to generate configuration files for.",
|
|
92
|
+
"required": ["claude", "cursor"],
|
|
93
|
+
"properties": {
|
|
94
|
+
"claude": {
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"description": "Generate CLAUDE.md and related Claude Code configuration."
|
|
97
|
+
},
|
|
98
|
+
"cursor": {
|
|
99
|
+
"type": "boolean",
|
|
100
|
+
"description": "Generate .cursorrules and related Cursor configuration."
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"definitions": {
|
|
106
|
+
"ProjectScan": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"description": "Result of the automatic project scan, capturing framework, CMS, styling, tooling, and other detected metadata.",
|
|
109
|
+
"required": [
|
|
110
|
+
"framework",
|
|
111
|
+
"cms",
|
|
112
|
+
"styling",
|
|
113
|
+
"typescript",
|
|
114
|
+
"monorepo",
|
|
115
|
+
"figma",
|
|
116
|
+
"designTokens",
|
|
117
|
+
"staticSite",
|
|
118
|
+
"aiIgnorePatterns",
|
|
119
|
+
"tools",
|
|
120
|
+
"mcpServers",
|
|
121
|
+
"packageManager",
|
|
122
|
+
"projectName",
|
|
123
|
+
"projectPath",
|
|
124
|
+
"scripts"
|
|
125
|
+
],
|
|
126
|
+
"properties": {
|
|
127
|
+
"framework": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"enum": ["nextjs", "react", "unknown"]
|
|
130
|
+
},
|
|
131
|
+
"nextjsVersion": {
|
|
132
|
+
"type": "string"
|
|
133
|
+
},
|
|
134
|
+
"routerType": {
|
|
135
|
+
"type": "string",
|
|
136
|
+
"enum": ["app", "pages", "hybrid"]
|
|
137
|
+
},
|
|
138
|
+
"cms": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"enum": ["sitecore-xmc-v2", "sitecore-xmc", "sitecore-jss", "none"]
|
|
141
|
+
},
|
|
142
|
+
"sitecorejssVersion": {
|
|
143
|
+
"type": "string"
|
|
144
|
+
},
|
|
145
|
+
"sitecoreContentSdkVersion": {
|
|
146
|
+
"type": "string"
|
|
147
|
+
},
|
|
148
|
+
"styling": {
|
|
149
|
+
"type": "array",
|
|
150
|
+
"items": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"enum": ["tailwind", "css-modules", "styled-components", "scss"]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"tailwindVersion": {
|
|
156
|
+
"type": "string"
|
|
157
|
+
},
|
|
158
|
+
"typescript": {
|
|
159
|
+
"type": "boolean"
|
|
160
|
+
},
|
|
161
|
+
"typescriptStrict": {
|
|
162
|
+
"type": "boolean"
|
|
163
|
+
},
|
|
164
|
+
"monorepo": {
|
|
165
|
+
"type": "boolean"
|
|
166
|
+
},
|
|
167
|
+
"monorepoTool": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"enum": ["turborepo", "nx", "lerna", "pnpm-workspaces"]
|
|
170
|
+
},
|
|
171
|
+
"figma": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"required": ["detected", "figmaMcp", "figmaCodeCli", "designTokens", "tokenFormat", "visualTests"],
|
|
174
|
+
"properties": {
|
|
175
|
+
"detected": { "type": "boolean" },
|
|
176
|
+
"figmaMcp": { "type": "boolean" },
|
|
177
|
+
"figmaCodeCli": { "type": "boolean" },
|
|
178
|
+
"designTokens": { "type": "boolean" },
|
|
179
|
+
"tokenFormat": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"enum": ["tailwind-v4", "tailwind-v3", "css-variables", "none"]
|
|
182
|
+
},
|
|
183
|
+
"visualTests": { "type": "boolean" }
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"designTokens": {
|
|
187
|
+
"type": "object",
|
|
188
|
+
"required": ["detected", "colors", "spacing", "fonts", "breakpoints", "source"],
|
|
189
|
+
"properties": {
|
|
190
|
+
"detected": { "type": "boolean" },
|
|
191
|
+
"colors": {
|
|
192
|
+
"type": "array",
|
|
193
|
+
"items": { "type": "string" }
|
|
194
|
+
},
|
|
195
|
+
"spacing": {
|
|
196
|
+
"type": "array",
|
|
197
|
+
"items": { "type": "string" }
|
|
198
|
+
},
|
|
199
|
+
"fonts": {
|
|
200
|
+
"type": "array",
|
|
201
|
+
"items": { "type": "string" }
|
|
202
|
+
},
|
|
203
|
+
"breakpoints": {
|
|
204
|
+
"type": "array",
|
|
205
|
+
"items": { "type": "string" }
|
|
206
|
+
},
|
|
207
|
+
"source": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"enum": ["tailwind-config", "css-variables", "theme-inline", "none"]
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"staticSite": {
|
|
214
|
+
"type": "object",
|
|
215
|
+
"required": ["isStatic", "hasGenerateStaticParams", "hasRevalidate", "hasStaticExport"],
|
|
216
|
+
"properties": {
|
|
217
|
+
"isStatic": { "type": "boolean" },
|
|
218
|
+
"outputMode": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"enum": ["export", "isr", "ssr", "hybrid"]
|
|
221
|
+
},
|
|
222
|
+
"hasGenerateStaticParams": { "type": "boolean" },
|
|
223
|
+
"hasRevalidate": { "type": "boolean" },
|
|
224
|
+
"hasStaticExport": { "type": "boolean" }
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
"aiIgnorePatterns": {
|
|
228
|
+
"type": "array",
|
|
229
|
+
"items": { "type": "string" }
|
|
230
|
+
},
|
|
231
|
+
"tools": {
|
|
232
|
+
"type": "object",
|
|
233
|
+
"required": [
|
|
234
|
+
"playwright",
|
|
235
|
+
"storybook",
|
|
236
|
+
"eslint",
|
|
237
|
+
"prettier",
|
|
238
|
+
"biome",
|
|
239
|
+
"axeCore",
|
|
240
|
+
"snyk",
|
|
241
|
+
"knip",
|
|
242
|
+
"bundleAnalyzer"
|
|
243
|
+
],
|
|
244
|
+
"properties": {
|
|
245
|
+
"playwright": { "type": "boolean" },
|
|
246
|
+
"storybook": { "type": "boolean" },
|
|
247
|
+
"eslint": { "type": "boolean" },
|
|
248
|
+
"prettier": { "type": "boolean" },
|
|
249
|
+
"biome": { "type": "boolean" },
|
|
250
|
+
"axeCore": { "type": "boolean" },
|
|
251
|
+
"snyk": { "type": "boolean" },
|
|
252
|
+
"knip": { "type": "boolean" },
|
|
253
|
+
"bundleAnalyzer": { "type": "boolean" }
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"mcpServers": {
|
|
257
|
+
"type": "object",
|
|
258
|
+
"required": ["playwright", "figma", "github", "context7", "perplexity"],
|
|
259
|
+
"properties": {
|
|
260
|
+
"playwright": { "type": "boolean" },
|
|
261
|
+
"figma": { "type": "boolean" },
|
|
262
|
+
"github": { "type": "boolean" },
|
|
263
|
+
"context7": { "type": "boolean" },
|
|
264
|
+
"perplexity": { "type": "boolean" }
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"packageManager": {
|
|
268
|
+
"type": "string",
|
|
269
|
+
"enum": ["npm", "pnpm", "yarn", "bun"]
|
|
270
|
+
},
|
|
271
|
+
"projectName": {
|
|
272
|
+
"type": "string"
|
|
273
|
+
},
|
|
274
|
+
"projectPath": {
|
|
275
|
+
"type": "string"
|
|
276
|
+
},
|
|
277
|
+
"scripts": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"additionalProperties": { "type": "string" }
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var GUIDES_DIR = path.join(PACKAGE_ROOT, "guides");
|
|
|
15
15
|
var DOCS_SCAFFOLDS_DIR = path.join(PACKAGE_ROOT, "docs-scaffolds");
|
|
16
16
|
var AGENTS_DIR = path.join(PACKAGE_ROOT, "agents");
|
|
17
17
|
var CONTEXTS_DIR = path.join(PACKAGE_ROOT, "contexts");
|
|
18
|
-
var VERSION = "1.
|
|
18
|
+
var VERSION = "1.8.0";
|
|
19
19
|
var AI_KIT_CONFIG_FILE = "ai-kit.config.json";
|
|
20
20
|
var GENERATED_FILES = {
|
|
21
21
|
claudeMd: "CLAUDE.md",
|
|
@@ -1010,6 +1010,7 @@ ${replaced}`
|
|
|
1010
1010
|
// src/generator/config.ts
|
|
1011
1011
|
function generateConfig(scan, templates, commands, guides, options) {
|
|
1012
1012
|
return {
|
|
1013
|
+
$schema: "https://ai-kit.mikul.me/schema/ai-kit.config.schema.json",
|
|
1013
1014
|
version: VERSION,
|
|
1014
1015
|
scanResult: scan,
|
|
1015
1016
|
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -4494,164 +4495,73 @@ function generateRegistryMarkdown(registry) {
|
|
|
4494
4495
|
return lines.join("\n");
|
|
4495
4496
|
}
|
|
4496
4497
|
|
|
4497
|
-
// src/
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
process.exit(
|
|
4498
|
+
// src/cli/error-handler.ts
|
|
4499
|
+
function withErrorHandler(fn) {
|
|
4500
|
+
const wrapped = async (...args) => {
|
|
4501
|
+
try {
|
|
4502
|
+
await fn(...args);
|
|
4503
|
+
} catch (err) {
|
|
4504
|
+
if (err.name === "ExitPromptError") {
|
|
4505
|
+
process.exit(0);
|
|
4506
|
+
}
|
|
4507
|
+
console.error(err);
|
|
4508
|
+
process.exit(1);
|
|
4508
4509
|
}
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4510
|
+
};
|
|
4511
|
+
return wrapped;
|
|
4512
|
+
}
|
|
4513
|
+
|
|
4514
|
+
// src/cli/register-commands.ts
|
|
4515
|
+
function registerCommands(program2) {
|
|
4516
|
+
program2.command("init").description("Scan your project and generate AI configs").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4517
|
+
await initCommand(targetPath);
|
|
4518
|
+
}));
|
|
4519
|
+
program2.command("update").description("Re-scan and update all generated AI configs").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4515
4520
|
await updateCommand(targetPath);
|
|
4516
|
-
}
|
|
4517
|
-
|
|
4518
|
-
process.exit(0);
|
|
4519
|
-
}
|
|
4520
|
-
console.error(err);
|
|
4521
|
-
process.exit(1);
|
|
4522
|
-
}
|
|
4523
|
-
});
|
|
4524
|
-
program.command("reset").description("Remove all AI Kit generated files").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4525
|
-
try {
|
|
4521
|
+
}));
|
|
4522
|
+
program2.command("reset").description("Remove all AI Kit generated files").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4526
4523
|
await resetCommand(targetPath);
|
|
4527
|
-
}
|
|
4528
|
-
|
|
4529
|
-
process.exit(0);
|
|
4530
|
-
}
|
|
4531
|
-
console.error(err);
|
|
4532
|
-
process.exit(1);
|
|
4533
|
-
}
|
|
4534
|
-
});
|
|
4535
|
-
program.command("tokens").description("Show token usage summary and cost estimates").option("--export", "Export data and open HTML dashboard").option("--csv", "Export daily usage to CSV file").option("--budget <amount>", "Monthly budget in USD (default: $20)", parseFloat).action(async (opts) => {
|
|
4536
|
-
try {
|
|
4524
|
+
}));
|
|
4525
|
+
program2.command("tokens").description("Show token usage summary and cost estimates").option("--export", "Export data and open HTML dashboard").option("--csv", "Export daily usage to CSV file").option("--budget <amount>", "Monthly budget in USD (default: $20)", parseFloat).action(withErrorHandler(async (opts) => {
|
|
4537
4526
|
await tokensCommand(opts);
|
|
4538
|
-
}
|
|
4539
|
-
|
|
4540
|
-
process.exit(0);
|
|
4541
|
-
}
|
|
4542
|
-
console.error(err);
|
|
4543
|
-
process.exit(1);
|
|
4544
|
-
}
|
|
4545
|
-
});
|
|
4546
|
-
program.command("doctor").description("Diagnose AI Kit setup and check for issues").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4547
|
-
try {
|
|
4527
|
+
}));
|
|
4528
|
+
program2.command("doctor").description("Diagnose AI Kit setup and check for issues").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4548
4529
|
await doctorCommand(targetPath);
|
|
4549
|
-
}
|
|
4550
|
-
|
|
4551
|
-
process.exit(0);
|
|
4552
|
-
}
|
|
4553
|
-
console.error(err);
|
|
4554
|
-
process.exit(1);
|
|
4555
|
-
}
|
|
4556
|
-
});
|
|
4557
|
-
program.command("diff").description("Show what would change on update (dry run)").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4558
|
-
try {
|
|
4530
|
+
}));
|
|
4531
|
+
program2.command("diff").description("Show what would change on update (dry run)").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4559
4532
|
await diffCommand(targetPath);
|
|
4560
|
-
}
|
|
4561
|
-
|
|
4562
|
-
process.exit(0);
|
|
4563
|
-
}
|
|
4564
|
-
console.error(err);
|
|
4565
|
-
process.exit(1);
|
|
4566
|
-
}
|
|
4567
|
-
});
|
|
4568
|
-
program.command("export").description("Export rules to other AI tools (Windsurf, Aider, Cline)").argument("[path]", "Project directory (defaults to current directory)").option("--format <format>", "Export format: windsurf, aider, cline, or all").action(async (targetPath, opts) => {
|
|
4569
|
-
try {
|
|
4533
|
+
}));
|
|
4534
|
+
program2.command("export").description("Export rules to other AI tools (Windsurf, Aider, Cline)").argument("[path]", "Project directory (defaults to current directory)").option("--format <format>", "Export format: windsurf, aider, cline, or all").action(withErrorHandler(async (targetPath, opts) => {
|
|
4570
4535
|
await exportCommand(targetPath, opts);
|
|
4571
|
-
}
|
|
4572
|
-
|
|
4573
|
-
process.exit(0);
|
|
4574
|
-
}
|
|
4575
|
-
console.error(err);
|
|
4576
|
-
process.exit(1);
|
|
4577
|
-
}
|
|
4578
|
-
});
|
|
4579
|
-
program.command("stats").description("Show project setup statistics and complexity").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4580
|
-
try {
|
|
4536
|
+
}));
|
|
4537
|
+
program2.command("stats").description("Show project setup statistics and complexity").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4581
4538
|
await statsCommand(targetPath);
|
|
4582
|
-
}
|
|
4583
|
-
|
|
4584
|
-
process.exit(0);
|
|
4585
|
-
}
|
|
4586
|
-
console.error(err);
|
|
4587
|
-
process.exit(1);
|
|
4588
|
-
}
|
|
4589
|
-
});
|
|
4590
|
-
program.command("audit").description("Security and configuration audit for AI agent setup").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4591
|
-
try {
|
|
4539
|
+
}));
|
|
4540
|
+
program2.command("audit").description("Security and configuration audit for AI agent setup").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4592
4541
|
await auditCommand(targetPath);
|
|
4593
|
-
}
|
|
4594
|
-
|
|
4595
|
-
process.exit(0);
|
|
4596
|
-
}
|
|
4597
|
-
console.error(err);
|
|
4598
|
-
process.exit(1);
|
|
4599
|
-
}
|
|
4600
|
-
});
|
|
4601
|
-
program.command("health").description("One-glance project health \u2014 setup, security, stack, tools, and docs").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4602
|
-
try {
|
|
4542
|
+
}));
|
|
4543
|
+
program2.command("health").description("One-glance project health \u2014 setup, security, stack, tools, and docs").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4603
4544
|
await healthCommand(targetPath);
|
|
4604
|
-
}
|
|
4605
|
-
|
|
4606
|
-
process.exit(0);
|
|
4607
|
-
}
|
|
4608
|
-
console.error(err);
|
|
4609
|
-
process.exit(1);
|
|
4610
|
-
}
|
|
4611
|
-
});
|
|
4612
|
-
program.command("patterns").description("Generate a pattern library from recurring code patterns").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4613
|
-
try {
|
|
4545
|
+
}));
|
|
4546
|
+
program2.command("patterns").description("Generate a pattern library from recurring code patterns").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4614
4547
|
await patternsCommand(targetPath);
|
|
4615
|
-
}
|
|
4616
|
-
|
|
4617
|
-
process.exit(0);
|
|
4618
|
-
}
|
|
4619
|
-
console.error(err);
|
|
4620
|
-
process.exit(1);
|
|
4621
|
-
}
|
|
4622
|
-
});
|
|
4623
|
-
program.command("dead-code").description("Find unused components and dead code").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4624
|
-
try {
|
|
4548
|
+
}));
|
|
4549
|
+
program2.command("dead-code").description("Find unused components and dead code").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4625
4550
|
await deadCodeCommand(targetPath);
|
|
4626
|
-
}
|
|
4627
|
-
|
|
4628
|
-
process.exit(0);
|
|
4629
|
-
}
|
|
4630
|
-
console.error(err);
|
|
4631
|
-
process.exit(1);
|
|
4632
|
-
}
|
|
4633
|
-
});
|
|
4634
|
-
program.command("drift").description("Detect drift between component code and .ai.md documentation").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4635
|
-
try {
|
|
4551
|
+
}));
|
|
4552
|
+
program2.command("drift").description("Detect drift between component code and .ai.md documentation").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4636
4553
|
await driftCommand(targetPath);
|
|
4637
|
-
}
|
|
4638
|
-
|
|
4639
|
-
process.exit(0);
|
|
4640
|
-
}
|
|
4641
|
-
console.error(err);
|
|
4642
|
-
process.exit(1);
|
|
4643
|
-
}
|
|
4644
|
-
});
|
|
4645
|
-
program.command("component-registry").description("Generate a component registry for AI agent discovery").argument("[path]", "Project directory (defaults to current directory)").action(async (targetPath) => {
|
|
4646
|
-
try {
|
|
4554
|
+
}));
|
|
4555
|
+
program2.command("component-registry").description("Generate a component registry for AI agent discovery").argument("[path]", "Project directory (defaults to current directory)").action(withErrorHandler(async (targetPath) => {
|
|
4647
4556
|
await componentRegistryCommand(targetPath);
|
|
4648
|
-
}
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4557
|
+
}));
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4560
|
+
// src/index.ts
|
|
4561
|
+
var program = new Command();
|
|
4562
|
+
program.name("ai-kit").description(
|
|
4563
|
+
"AI-powered project setup \u2014 generates CLAUDE.md, .cursorrules, slash commands, and guides tailored to your stack."
|
|
4564
|
+
).version(VERSION);
|
|
4565
|
+
registerCommands(program);
|
|
4656
4566
|
program.parse();
|
|
4657
4567
|
//# sourceMappingURL=index.js.map
|