codingbuddy 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/dist/src/agent/agent-prompt.builder.js +6 -0
- package/dist/src/agent/agent-prompt.builder.js.map +1 -1
- package/dist/src/analyzer/analyzer.module.js +3 -2
- package/dist/src/analyzer/analyzer.module.js.map +1 -1
- package/dist/src/analyzer/config.analyzer.js +11 -3
- package/dist/src/analyzer/config.analyzer.js.map +1 -1
- package/dist/src/analyzer/conventions.analyzer.d.ts +20 -0
- package/dist/src/analyzer/conventions.analyzer.js +395 -0
- package/dist/src/analyzer/conventions.analyzer.js.map +1 -0
- package/dist/src/analyzer/conventions.schemas.d.ts +76 -0
- package/dist/src/analyzer/conventions.schemas.js +71 -0
- package/dist/src/analyzer/conventions.schemas.js.map +1 -0
- package/dist/src/analyzer/conventions.types.d.ts +81 -0
- package/dist/src/analyzer/conventions.types.js +33 -0
- package/dist/src/analyzer/conventions.types.js.map +1 -0
- package/dist/src/checklist/checklist.types.d.ts +1 -1
- package/dist/src/checklist/checklist.types.js +1 -0
- package/dist/src/checklist/checklist.types.js.map +1 -1
- package/dist/src/cli/cli.js +5 -0
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +1 -0
- package/dist/src/cli/init/init.command.js +29 -52
- package/dist/src/cli/init/init.command.js.map +1 -1
- package/dist/src/cli/init/init.wizard.d.ts +22 -0
- package/dist/src/cli/init/init.wizard.js +277 -0
- package/dist/src/cli/init/init.wizard.js.map +1 -0
- package/dist/src/cli/init/prompts/architecture-prompt.d.ts +16 -0
- package/dist/src/cli/init/prompts/architecture-prompt.js +66 -0
- package/dist/src/cli/init/prompts/architecture-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/basic-prompt.d.ts +13 -0
- package/dist/src/cli/init/prompts/basic-prompt.js +53 -0
- package/dist/src/cli/init/prompts/basic-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/conventions-prompt.d.ts +19 -0
- package/dist/src/cli/init/prompts/conventions-prompt.js +74 -0
- package/dist/src/cli/init/prompts/conventions-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/index.d.ts +10 -0
- package/dist/src/cli/init/prompts/index.js +27 -1
- package/dist/src/cli/init/prompts/index.js.map +1 -1
- package/dist/src/cli/init/prompts/language-prompt.d.ts +1 -1
- package/dist/src/cli/init/prompts/model-prompt.js +2 -2
- package/dist/src/cli/init/prompts/model-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/tech-stack-prompt.d.ts +22 -0
- package/dist/src/cli/init/prompts/tech-stack-prompt.js +68 -0
- package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.d.ts +19 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.js +75 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +1 -0
- package/dist/src/cli/init/summary/index.d.ts +2 -0
- package/dist/src/cli/init/summary/index.js +9 -0
- package/dist/src/cli/init/summary/index.js.map +1 -0
- package/dist/src/cli/init/summary/summary.prompt.d.ts +7 -0
- package/dist/src/cli/init/summary/summary.prompt.js +22 -0
- package/dist/src/cli/init/summary/summary.prompt.js.map +1 -0
- package/dist/src/cli/init/summary/summary.renderer.d.ts +32 -0
- package/dist/src/cli/init/summary/summary.renderer.js +41 -0
- package/dist/src/cli/init/summary/summary.renderer.js.map +1 -0
- package/dist/src/cli/init/templates/config-renderer.d.ts +42 -0
- package/dist/src/cli/init/templates/config-renderer.js +247 -0
- package/dist/src/cli/init/templates/config-renderer.js.map +1 -0
- package/dist/src/cli/init/templates/index.d.ts +1 -0
- package/dist/src/cli/init/templates/index.js +5 -1
- package/dist/src/cli/init/templates/index.js.map +1 -1
- package/dist/src/cli/utils/console.js +26 -7
- package/dist/src/cli/utils/console.js.map +1 -1
- package/dist/src/config/config.loader.d.ts +3 -0
- package/dist/src/config/config.loader.js +54 -0
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +7 -0
- package/dist/src/config/config.schema.js +5 -1
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/config/config.service.d.ts +1 -0
- package/dist/src/config/config.service.js +26 -1
- package/dist/src/config/config.service.js.map +1 -1
- package/dist/src/keyword/auto-executor.d.ts +17 -0
- package/dist/src/keyword/auto-executor.js +80 -0
- package/dist/src/keyword/auto-executor.js.map +1 -0
- package/dist/src/keyword/auto-executor.types.d.ts +44 -0
- package/dist/src/keyword/auto-executor.types.js +7 -0
- package/dist/src/keyword/auto-executor.types.js.map +1 -0
- package/dist/src/keyword/auto-formatter.d.ts +8 -0
- package/dist/src/keyword/auto-formatter.js +79 -0
- package/dist/src/keyword/auto-formatter.js.map +1 -0
- package/dist/src/keyword/auto-prompt-builder.d.ts +6 -0
- package/dist/src/keyword/auto-prompt-builder.js +47 -0
- package/dist/src/keyword/auto-prompt-builder.js.map +1 -0
- package/dist/src/keyword/index.d.ts +9 -0
- package/dist/src/keyword/index.js +28 -0
- package/dist/src/keyword/index.js.map +1 -0
- package/dist/src/keyword/keyword.module.js +11 -1
- package/dist/src/keyword/keyword.module.js.map +1 -1
- package/dist/src/keyword/keyword.service.d.ts +9 -2
- package/dist/src/keyword/keyword.service.js +108 -44
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +11 -8
- package/dist/src/keyword/keyword.types.js +22 -12
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.js +4 -4
- package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
- package/dist/src/keyword/rule-filter.js +1 -0
- package/dist/src/keyword/rule-filter.js.map +1 -1
- package/dist/src/main.js +12 -4
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/handlers/abstract-handler.d.ts +8 -0
- package/dist/src/mcp/handlers/abstract-handler.js +19 -0
- package/dist/src/mcp/handlers/abstract-handler.js.map +1 -0
- package/dist/src/mcp/handlers/agent.handler.d.ts +6 -4
- package/dist/src/mcp/handlers/agent.handler.js +8 -15
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
- package/dist/src/mcp/handlers/checklist-context.handler.d.ts +6 -4
- package/dist/src/mcp/handlers/checklist-context.handler.js +8 -12
- package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -1
- package/dist/src/mcp/handlers/config.handler.d.ts +6 -4
- package/dist/src/mcp/handlers/config.handler.js +12 -20
- package/dist/src/mcp/handlers/config.handler.js.map +1 -1
- package/dist/src/mcp/handlers/conventions.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/conventions.handler.js +73 -0
- package/dist/src/mcp/handlers/conventions.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +1 -0
- package/dist/src/mcp/handlers/index.js +3 -1
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/mode.handler.d.ts +6 -5
- package/dist/src/mcp/handlers/mode.handler.js +6 -13
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
- package/dist/src/mcp/handlers/rules.handler.d.ts +6 -4
- package/dist/src/mcp/handlers/rules.handler.js +8 -12
- package/dist/src/mcp/handlers/rules.handler.js.map +1 -1
- package/dist/src/mcp/handlers/skill.handler.d.ts +6 -4
- package/dist/src/mcp/handlers/skill.handler.js +8 -12
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
- package/dist/src/mcp/mcp-serverless.js +5 -0
- package/dist/src/mcp/mcp-serverless.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +1 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +0 -1
- package/dist/src/mcp/mcp.service.js +2 -5
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/src/model/model.constants.js.map +1 -1
- package/dist/src/model/model.resolver.js +8 -0
- package/dist/src/model/model.resolver.js.map +1 -1
- package/dist/src/shared/async.utils.d.ts +8 -0
- package/dist/src/shared/async.utils.js +18 -0
- package/dist/src/shared/async.utils.js.map +1 -0
- package/dist/src/shared/file.utils.d.ts +38 -2
- package/dist/src/shared/file.utils.js +104 -3
- package/dist/src/shared/file.utils.js.map +1 -1
- package/dist/src/shared/format.utils.d.ts +1 -0
- package/dist/src/shared/format.utils.js +19 -0
- package/dist/src/shared/format.utils.js.map +1 -0
- package/dist/src/shared/lru-cache.d.ts +21 -0
- package/dist/src/shared/lru-cache.js +70 -0
- package/dist/src/shared/lru-cache.js.map +1 -0
- package/dist/src/shared/validation.constants.d.ts +31 -0
- package/dist/src/shared/validation.constants.js +82 -8
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TypeScriptConfigSchema: z.ZodObject<{
|
|
3
|
+
compilerOptions: z.ZodOptional<z.ZodObject<{
|
|
4
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
5
|
+
noImplicitAny: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
strictNullChecks: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
strictFunctionTypes: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
strictBindCallApply: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
+
noImplicitThis: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
alwaysStrict: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
target: z.ZodOptional<z.ZodString>;
|
|
12
|
+
module: z.ZodOptional<z.ZodString>;
|
|
13
|
+
moduleResolution: z.ZodOptional<z.ZodString>;
|
|
14
|
+
esModuleInterop: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
paths: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
16
|
+
}, z.core.$loose>>;
|
|
17
|
+
extends: z.ZodOptional<z.ZodString>;
|
|
18
|
+
include: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type TypeScriptConfig = z.infer<typeof TypeScriptConfigSchema>;
|
|
22
|
+
export declare const ESLintConfigSchema: z.ZodObject<{
|
|
23
|
+
parser: z.ZodOptional<z.ZodString>;
|
|
24
|
+
parserOptions: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
ecmaVersion: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"latest">]>>;
|
|
26
|
+
sourceType: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
module: "module";
|
|
28
|
+
script: "script";
|
|
29
|
+
}>>;
|
|
30
|
+
ecmaFeatures: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
jsx: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
globalReturn: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
impliedStrict: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
}, z.core.$loose>>;
|
|
35
|
+
}, z.core.$loose>>;
|
|
36
|
+
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
37
|
+
extends: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
38
|
+
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type ESLintConfig = z.infer<typeof ESLintConfigSchema>;
|
|
42
|
+
export declare const PrettierConfigSchema: z.ZodObject<{
|
|
43
|
+
printWidth: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
tabWidth: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
useTabs: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
semi: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
singleQuote: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
quoteProps: z.ZodOptional<z.ZodEnum<{
|
|
49
|
+
"as-needed": "as-needed";
|
|
50
|
+
consistent: "consistent";
|
|
51
|
+
preserve: "preserve";
|
|
52
|
+
}>>;
|
|
53
|
+
jsxSingleQuote: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
trailingComma: z.ZodOptional<z.ZodEnum<{
|
|
55
|
+
none: "none";
|
|
56
|
+
es5: "es5";
|
|
57
|
+
all: "all";
|
|
58
|
+
}>>;
|
|
59
|
+
bracketSpacing: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
bracketSameLine: z.ZodOptional<z.ZodBoolean>;
|
|
61
|
+
arrowParens: z.ZodOptional<z.ZodEnum<{
|
|
62
|
+
avoid: "avoid";
|
|
63
|
+
always: "always";
|
|
64
|
+
}>>;
|
|
65
|
+
endOfLine: z.ZodOptional<z.ZodEnum<{
|
|
66
|
+
auto: "auto";
|
|
67
|
+
lf: "lf";
|
|
68
|
+
cr: "cr";
|
|
69
|
+
crlf: "crlf";
|
|
70
|
+
}>>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
export type PrettierConfig = z.infer<typeof PrettierConfigSchema>;
|
|
73
|
+
export declare const MarkdownLintConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
74
|
+
style: z.ZodOptional<z.ZodString>;
|
|
75
|
+
}, z.core.$loose>]>>;
|
|
76
|
+
export type MarkdownLintConfig = z.infer<typeof MarkdownLintConfigSchema>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarkdownLintConfigSchema = exports.PrettierConfigSchema = exports.ESLintConfigSchema = exports.TypeScriptConfigSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.TypeScriptConfigSchema = zod_1.z.object({
|
|
6
|
+
compilerOptions: zod_1.z
|
|
7
|
+
.object({
|
|
8
|
+
strict: zod_1.z.boolean().optional(),
|
|
9
|
+
noImplicitAny: zod_1.z.boolean().optional(),
|
|
10
|
+
strictNullChecks: zod_1.z.boolean().optional(),
|
|
11
|
+
strictFunctionTypes: zod_1.z.boolean().optional(),
|
|
12
|
+
strictBindCallApply: zod_1.z.boolean().optional(),
|
|
13
|
+
noImplicitThis: zod_1.z.boolean().optional(),
|
|
14
|
+
alwaysStrict: zod_1.z.boolean().optional(),
|
|
15
|
+
target: zod_1.z.string().optional(),
|
|
16
|
+
module: zod_1.z.string().optional(),
|
|
17
|
+
moduleResolution: zod_1.z.string().optional(),
|
|
18
|
+
esModuleInterop: zod_1.z.boolean().optional(),
|
|
19
|
+
paths: zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.string())).optional(),
|
|
20
|
+
})
|
|
21
|
+
.passthrough()
|
|
22
|
+
.optional(),
|
|
23
|
+
extends: zod_1.z.string().optional(),
|
|
24
|
+
include: zod_1.z.array(zod_1.z.string()).optional(),
|
|
25
|
+
exclude: zod_1.z.array(zod_1.z.string()).optional(),
|
|
26
|
+
});
|
|
27
|
+
exports.ESLintConfigSchema = zod_1.z.object({
|
|
28
|
+
parser: zod_1.z.string().optional(),
|
|
29
|
+
parserOptions: zod_1.z
|
|
30
|
+
.object({
|
|
31
|
+
ecmaVersion: zod_1.z.union([zod_1.z.number(), zod_1.z.literal('latest')]).optional(),
|
|
32
|
+
sourceType: zod_1.z.enum(['script', 'module']).optional(),
|
|
33
|
+
ecmaFeatures: zod_1.z
|
|
34
|
+
.object({
|
|
35
|
+
jsx: zod_1.z.boolean().optional(),
|
|
36
|
+
globalReturn: zod_1.z.boolean().optional(),
|
|
37
|
+
impliedStrict: zod_1.z.boolean().optional(),
|
|
38
|
+
})
|
|
39
|
+
.passthrough()
|
|
40
|
+
.optional(),
|
|
41
|
+
})
|
|
42
|
+
.passthrough()
|
|
43
|
+
.optional(),
|
|
44
|
+
rules: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
|
|
45
|
+
extends: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
46
|
+
plugins: zod_1.z.array(zod_1.z.string()).optional(),
|
|
47
|
+
env: zod_1.z.record(zod_1.z.string(), zod_1.z.boolean()).optional(),
|
|
48
|
+
});
|
|
49
|
+
exports.PrettierConfigSchema = zod_1.z.object({
|
|
50
|
+
printWidth: zod_1.z.number().optional(),
|
|
51
|
+
tabWidth: zod_1.z.number().optional(),
|
|
52
|
+
useTabs: zod_1.z.boolean().optional(),
|
|
53
|
+
semi: zod_1.z.boolean().optional(),
|
|
54
|
+
singleQuote: zod_1.z.boolean().optional(),
|
|
55
|
+
quoteProps: zod_1.z.enum(['as-needed', 'consistent', 'preserve']).optional(),
|
|
56
|
+
jsxSingleQuote: zod_1.z.boolean().optional(),
|
|
57
|
+
trailingComma: zod_1.z.enum(['none', 'es5', 'all']).optional(),
|
|
58
|
+
bracketSpacing: zod_1.z.boolean().optional(),
|
|
59
|
+
bracketSameLine: zod_1.z.boolean().optional(),
|
|
60
|
+
arrowParens: zod_1.z.enum(['avoid', 'always']).optional(),
|
|
61
|
+
endOfLine: zod_1.z.enum(['lf', 'crlf', 'cr', 'auto']).optional(),
|
|
62
|
+
});
|
|
63
|
+
exports.MarkdownLintConfigSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.union([
|
|
64
|
+
zod_1.z.boolean(),
|
|
65
|
+
zod_1.z
|
|
66
|
+
.object({
|
|
67
|
+
style: zod_1.z.string().optional(),
|
|
68
|
+
})
|
|
69
|
+
.passthrough(),
|
|
70
|
+
]));
|
|
71
|
+
//# sourceMappingURL=conventions.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventions.schemas.js","sourceRoot":"","sources":["../../../src/analyzer/conventions.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export interface EditorConfigConventions {
|
|
2
|
+
indent_style?: 'space' | 'tab';
|
|
3
|
+
indent_size?: number;
|
|
4
|
+
tab_width?: number;
|
|
5
|
+
end_of_line?: 'lf' | 'cr' | 'crlf';
|
|
6
|
+
charset?: 'latin1' | 'utf-8' | 'utf-16be' | 'utf-16le' | 'utf-8-bom';
|
|
7
|
+
trim_trailing_whitespace?: boolean;
|
|
8
|
+
insert_final_newline?: boolean;
|
|
9
|
+
max_line_length?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface TypeScriptConventions {
|
|
12
|
+
strict?: boolean;
|
|
13
|
+
noImplicitAny?: boolean;
|
|
14
|
+
strictNullChecks?: boolean;
|
|
15
|
+
strictFunctionTypes?: boolean;
|
|
16
|
+
strictBindCallApply?: boolean;
|
|
17
|
+
noImplicitThis?: boolean;
|
|
18
|
+
alwaysStrict?: boolean;
|
|
19
|
+
target?: string;
|
|
20
|
+
module?: string;
|
|
21
|
+
moduleResolution?: string;
|
|
22
|
+
esModuleInterop?: boolean;
|
|
23
|
+
paths?: Record<string, string[]>;
|
|
24
|
+
}
|
|
25
|
+
export type ESLintRuleSeverity = 'off' | 'warn' | 'error' | 0 | 1 | 2;
|
|
26
|
+
export type ESLintRuleConfig = ESLintRuleSeverity | [ESLintRuleSeverity, ...unknown[]];
|
|
27
|
+
export interface ESLintParserOptions {
|
|
28
|
+
ecmaVersion?: number | 'latest';
|
|
29
|
+
sourceType?: 'script' | 'module';
|
|
30
|
+
ecmaFeatures?: {
|
|
31
|
+
jsx?: boolean;
|
|
32
|
+
globalReturn?: boolean;
|
|
33
|
+
impliedStrict?: boolean;
|
|
34
|
+
};
|
|
35
|
+
[key: string]: unknown;
|
|
36
|
+
}
|
|
37
|
+
export interface ESLintConventions {
|
|
38
|
+
configType: 'flat' | 'legacy';
|
|
39
|
+
parser?: string;
|
|
40
|
+
parserOptions?: ESLintParserOptions;
|
|
41
|
+
rules?: Record<string, ESLintRuleConfig>;
|
|
42
|
+
extends?: string | string[];
|
|
43
|
+
}
|
|
44
|
+
export interface PrettierConventions {
|
|
45
|
+
printWidth?: number;
|
|
46
|
+
tabWidth?: number;
|
|
47
|
+
useTabs?: boolean;
|
|
48
|
+
semi?: boolean;
|
|
49
|
+
singleQuote?: boolean;
|
|
50
|
+
quoteProps?: 'as-needed' | 'consistent' | 'preserve';
|
|
51
|
+
jsxSingleQuote?: boolean;
|
|
52
|
+
trailingComma?: 'none' | 'es5' | 'all';
|
|
53
|
+
bracketSpacing?: boolean;
|
|
54
|
+
bracketSameLine?: boolean;
|
|
55
|
+
arrowParens?: 'always' | 'avoid';
|
|
56
|
+
endOfLine?: 'lf' | 'crlf' | 'cr' | 'auto';
|
|
57
|
+
}
|
|
58
|
+
export type MarkdownLintRuleConfig = boolean | {
|
|
59
|
+
style?: string;
|
|
60
|
+
[key: string]: unknown;
|
|
61
|
+
};
|
|
62
|
+
export interface MarkdownLintConventions {
|
|
63
|
+
default?: boolean;
|
|
64
|
+
[rule: string]: boolean | MarkdownLintRuleConfig | undefined;
|
|
65
|
+
}
|
|
66
|
+
export interface ProjectConventions {
|
|
67
|
+
projectRoot: string;
|
|
68
|
+
typescript: TypeScriptConventions;
|
|
69
|
+
eslint: ESLintConventions;
|
|
70
|
+
prettier: PrettierConventions;
|
|
71
|
+
editorconfig: EditorConfigConventions;
|
|
72
|
+
markdownlint: MarkdownLintConventions;
|
|
73
|
+
}
|
|
74
|
+
export interface GetCodeConventionsParams {
|
|
75
|
+
projectRoot?: string;
|
|
76
|
+
}
|
|
77
|
+
export declare const DEFAULT_EDITOR_CONFIG: EditorConfigConventions;
|
|
78
|
+
export declare const DEFAULT_TYPESCRIPT_CONFIG: TypeScriptConventions;
|
|
79
|
+
export declare const DEFAULT_ESLINT_CONFIG: ESLintConventions;
|
|
80
|
+
export declare const DEFAULT_PRETTIER_CONFIG: PrettierConventions;
|
|
81
|
+
export declare const DEFAULT_MARKDOWNLINT_CONFIG: MarkdownLintConventions;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_MARKDOWNLINT_CONFIG = exports.DEFAULT_PRETTIER_CONFIG = exports.DEFAULT_ESLINT_CONFIG = exports.DEFAULT_TYPESCRIPT_CONFIG = exports.DEFAULT_EDITOR_CONFIG = void 0;
|
|
4
|
+
exports.DEFAULT_EDITOR_CONFIG = {
|
|
5
|
+
indent_style: 'space',
|
|
6
|
+
indent_size: 2,
|
|
7
|
+
end_of_line: 'lf',
|
|
8
|
+
charset: 'utf-8',
|
|
9
|
+
trim_trailing_whitespace: true,
|
|
10
|
+
insert_final_newline: true,
|
|
11
|
+
};
|
|
12
|
+
exports.DEFAULT_TYPESCRIPT_CONFIG = {
|
|
13
|
+
strict: true,
|
|
14
|
+
noImplicitAny: true,
|
|
15
|
+
target: 'ES2021',
|
|
16
|
+
module: 'commonjs',
|
|
17
|
+
};
|
|
18
|
+
exports.DEFAULT_ESLINT_CONFIG = {
|
|
19
|
+
configType: 'flat',
|
|
20
|
+
rules: {},
|
|
21
|
+
};
|
|
22
|
+
exports.DEFAULT_PRETTIER_CONFIG = {
|
|
23
|
+
tabWidth: 2,
|
|
24
|
+
semi: true,
|
|
25
|
+
singleQuote: true,
|
|
26
|
+
trailingComma: 'es5',
|
|
27
|
+
bracketSpacing: true,
|
|
28
|
+
arrowParens: 'avoid',
|
|
29
|
+
};
|
|
30
|
+
exports.DEFAULT_MARKDOWNLINT_CONFIG = {
|
|
31
|
+
default: true,
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=conventions.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventions.types.js","sourceRoot":"","sources":["../../../src/analyzer/conventions.types.ts"],"names":[],"mappings":";;;AA+Ha,QAAA,qBAAqB,GAA4B;IAC5D,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,OAAO;IAChB,wBAAwB,EAAE,IAAI;IAC9B,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEW,QAAA,yBAAyB,GAA0B;IAC9D,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEW,QAAA,qBAAqB,GAAsB;IACtD,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,EAAE;CACV,CAAC;AAEW,QAAA,uBAAuB,GAAwB;IAC1D,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,OAAO;CACrB,CAAC;AAEW,QAAA,2BAA2B,GAA4B;IAClE,OAAO,EAAE,IAAI;CACd,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const CHECKLIST_PRIORITIES: readonly ["critical", "high", "medium", "low"];
|
|
2
|
-
export declare const CHECKLIST_DOMAINS: readonly ["security", "accessibility", "performance", "testing", "code-quality", "seo"];
|
|
2
|
+
export declare const CHECKLIST_DOMAINS: readonly ["security", "accessibility", "performance", "testing", "code-quality", "seo", "conventions"];
|
|
3
3
|
export declare const PRIORITY_VALUES: Record<ChecklistPriority, number>;
|
|
4
4
|
export type ChecklistPriority = (typeof CHECKLIST_PRIORITIES)[number];
|
|
5
5
|
export type ChecklistDomain = (typeof CHECKLIST_DOMAINS)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checklist.types.js","sourceRoot":"","sources":["../../../src/checklist/checklist.types.ts"],"names":[],"mappings":";;;AAOa,QAAA,oBAAoB,GAAG;IAClC,UAAU;IACV,MAAM;IACN,QAAQ;IACR,KAAK;CACG,CAAC;AAKE,QAAA,iBAAiB,GAAG;IAC/B,UAAU;IACV,eAAe;IACf,aAAa;IACb,SAAS;IACT,cAAc;IACd,KAAK;
|
|
1
|
+
{"version":3,"file":"checklist.types.js","sourceRoot":"","sources":["../../../src/checklist/checklist.types.ts"],"names":[],"mappings":";;;AAOa,QAAA,oBAAoB,GAAG;IAClC,UAAU;IACV,MAAM;IACN,QAAQ;IACR,KAAK;CACG,CAAC;AAKE,QAAA,iBAAiB,GAAG;IAC/B,UAAU;IACV,eAAe;IACf,aAAa;IACb,SAAS;IACT,cAAc;IACd,KAAK;IACL,aAAa;CACL,CAAC;AAKE,QAAA,eAAe,GAAsC;IAChE,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC"}
|
package/dist/src/cli/cli.js
CHANGED
|
@@ -14,6 +14,7 @@ function parseArgs(args) {
|
|
|
14
14
|
projectRoot: process.cwd(),
|
|
15
15
|
format: 'js',
|
|
16
16
|
force: false,
|
|
17
|
+
useDefaults: false,
|
|
17
18
|
};
|
|
18
19
|
if (args.includes('--help') || args.includes('-h')) {
|
|
19
20
|
return { command: 'help', options };
|
|
@@ -33,6 +34,9 @@ function parseArgs(args) {
|
|
|
33
34
|
if (arg === '--force' || arg === '-f') {
|
|
34
35
|
options.force = true;
|
|
35
36
|
}
|
|
37
|
+
else if (arg === '--yes' || arg === '-y') {
|
|
38
|
+
options.useDefaults = true;
|
|
39
|
+
}
|
|
36
40
|
else if (arg === '--format') {
|
|
37
41
|
const format = args[++i];
|
|
38
42
|
if (format === 'js' || format === 'json') {
|
|
@@ -61,6 +65,7 @@ Usage:
|
|
|
61
65
|
Options:
|
|
62
66
|
--format <js|json> Output format (default: js)
|
|
63
67
|
--force, -f Overwrite existing config
|
|
68
|
+
--yes, -y Accept detected defaults (quick setup)
|
|
64
69
|
--api-key <key> Anthropic API key (or set ANTHROPIC_API_KEY env)
|
|
65
70
|
|
|
66
71
|
Examples:
|
package/dist/src/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":";;;AAyBA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,20 +7,11 @@ const config_generator_1 = require("./config.generator");
|
|
|
7
7
|
const config_writer_1 = require("./config.writer");
|
|
8
8
|
const console_1 = require("../utils/console");
|
|
9
9
|
const templates_1 = require("./templates");
|
|
10
|
-
const
|
|
11
|
-
function
|
|
12
|
-
if (options.apiKey) {
|
|
13
|
-
return options.apiKey;
|
|
14
|
-
}
|
|
15
|
-
if (process.env.ANTHROPIC_API_KEY) {
|
|
16
|
-
return process.env.ANTHROPIC_API_KEY;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
async function runTemplateInit(options, console) {
|
|
10
|
+
const init_wizard_1 = require("./init.wizard");
|
|
11
|
+
async function analyzeProjectWithLogging(projectRoot, console) {
|
|
21
12
|
console.log.step('🔍', 'Analyzing project...');
|
|
22
13
|
const analyzer = new analyzer_1.AnalyzerService();
|
|
23
|
-
const analysis = await analyzer.analyzeProject(
|
|
14
|
+
const analysis = await analyzer.analyzeProject(projectRoot);
|
|
24
15
|
console.log.success('Project analysis complete');
|
|
25
16
|
if (analysis.packageInfo) {
|
|
26
17
|
console.log.step('📦', `Package: ${analysis.packageInfo.name}`);
|
|
@@ -29,39 +20,35 @@ async function runTemplateInit(options, console) {
|
|
|
29
20
|
console.log.step('🏗️', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
30
21
|
}
|
|
31
22
|
console.log.step('📁', `Files: ${analysis.directoryStructure.totalFiles}`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
console.log.info(` Detected: ${detectedFrameworks.join(', ')}`);
|
|
23
|
+
return analysis;
|
|
24
|
+
}
|
|
25
|
+
function getApiKey(options) {
|
|
26
|
+
if (options.apiKey) {
|
|
27
|
+
return options.apiKey;
|
|
38
28
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
29
|
+
if (process.env.ANTHROPIC_API_KEY) {
|
|
30
|
+
return process.env.ANTHROPIC_API_KEY;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
async function runTemplateInit(options, console) {
|
|
35
|
+
const analysis = await analyzeProjectWithLogging(options.projectRoot, console);
|
|
36
|
+
const wizardData = await (0, init_wizard_1.runInitWizard)({
|
|
37
|
+
analysis,
|
|
38
|
+
useDefaults: options.useDefaults,
|
|
39
|
+
skipPrompts: options.skipPrompts,
|
|
40
|
+
});
|
|
41
|
+
if (wizardData === null) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: 'Configuration cancelled by user.',
|
|
45
|
+
};
|
|
53
46
|
}
|
|
54
47
|
console.log.step('✨', 'Generating configuration...');
|
|
55
|
-
const
|
|
56
|
-
const renderOptions = {
|
|
57
|
-
projectName,
|
|
58
|
-
language: selectedLanguage,
|
|
59
|
-
defaultModel: selectedModel,
|
|
60
|
-
primaryAgent: selectedAgent,
|
|
61
|
-
};
|
|
48
|
+
const config = (0, init_wizard_1.wizardDataToConfig)(wizardData);
|
|
62
49
|
const configContent = options.format === 'json'
|
|
63
|
-
? (0, templates_1.
|
|
64
|
-
: (0, templates_1.
|
|
50
|
+
? (0, templates_1.renderConfigObjectAsJson)(config)
|
|
51
|
+
: (0, templates_1.renderConfigObjectAsJs)(config);
|
|
65
52
|
console.log.step('💾', 'Writing configuration file...');
|
|
66
53
|
const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, configContent, {
|
|
67
54
|
format: options.format,
|
|
@@ -93,17 +80,7 @@ async function runAiInit(options, console) {
|
|
|
93
80
|
error: 'No API key provided. Set ANTHROPIC_API_KEY or remove --ai flag for template mode.',
|
|
94
81
|
};
|
|
95
82
|
}
|
|
96
|
-
|
|
97
|
-
const analyzer = new analyzer_1.AnalyzerService();
|
|
98
|
-
const analysis = await analyzer.analyzeProject(options.projectRoot);
|
|
99
|
-
console.log.success('Project analysis complete');
|
|
100
|
-
if (analysis.packageInfo) {
|
|
101
|
-
console.log.step('📦', `Package: ${analysis.packageInfo.name}`);
|
|
102
|
-
}
|
|
103
|
-
if (analysis.detectedPatterns.length > 0) {
|
|
104
|
-
console.log.step('🏗️', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
105
|
-
}
|
|
106
|
-
console.log.step('📁', `Files: ${analysis.directoryStructure.totalFiles}`);
|
|
83
|
+
const analysis = await analyzeProjectWithLogging(options.projectRoot, console);
|
|
107
84
|
console.log.step('🤖', 'AI is generating configuration...');
|
|
108
85
|
const generator = new config_generator_1.ConfigGenerator({ apiKey });
|
|
109
86
|
const config = await generator.generate(analysis);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProjectAnalysis } from '../../analyzer';
|
|
2
|
+
import { type BasicSettings, type TechStackSettings, type ArchitectureSettings, type ConventionsSettings, type TestStrategySettings, type ActPrimaryAgent } from './prompts';
|
|
3
|
+
export interface WizardData {
|
|
4
|
+
basic: BasicSettings & {
|
|
5
|
+
language: string;
|
|
6
|
+
};
|
|
7
|
+
techStack: TechStackSettings;
|
|
8
|
+
architecture: ArchitectureSettings;
|
|
9
|
+
conventions: ConventionsSettings;
|
|
10
|
+
testStrategy: TestStrategySettings;
|
|
11
|
+
ai: {
|
|
12
|
+
defaultModel: string;
|
|
13
|
+
primaryAgent: ActPrimaryAgent;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface WizardOptions {
|
|
17
|
+
useDefaults?: boolean;
|
|
18
|
+
skipPrompts?: boolean;
|
|
19
|
+
analysis: ProjectAnalysis;
|
|
20
|
+
}
|
|
21
|
+
export declare function runInitWizard(options: WizardOptions): Promise<WizardData | null>;
|
|
22
|
+
export declare function wizardDataToConfig(data: WizardData): Record<string, unknown>;
|