codingbuddy 2.0.0 → 2.2.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/dist/src/agent/agent-prompt.builder.js +6 -0
- package/dist/src/agent/agent-prompt.builder.js.map +1 -1
- package/dist/src/app.module.js +4 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/checklist/checklist.module.d.ts +2 -0
- package/dist/src/checklist/checklist.module.js +29 -0
- package/dist/src/checklist/checklist.module.js.map +1 -0
- package/dist/src/checklist/checklist.schema.d.ts +14 -0
- package/dist/src/checklist/checklist.schema.js +189 -0
- package/dist/src/checklist/checklist.schema.js.map +1 -0
- package/dist/src/checklist/checklist.service.d.ts +21 -0
- package/dist/src/checklist/checklist.service.js +258 -0
- package/dist/src/checklist/checklist.service.js.map +1 -0
- package/dist/src/checklist/checklist.types.d.ts +56 -0
- package/dist/src/checklist/checklist.types.js +24 -0
- package/dist/src/checklist/checklist.types.js.map +1 -0
- package/dist/src/checklist/index.d.ts +3 -0
- package/dist/src/checklist/index.js +20 -0
- package/dist/src/checklist/index.js.map +1 -0
- 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 -6
- package/dist/src/cli/index.d.ts +1 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/init/init.command.js +29 -43
- 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/agent-prompt.d.ts +9 -0
- package/dist/src/cli/init/prompts/agent-prompt.js +28 -0
- package/dist/src/cli/init/prompts/agent-prompt.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 +15 -0
- package/dist/src/cli/init/prompts/index.js +35 -1
- package/dist/src/cli/init/prompts/index.js.map +1 -1
- package/dist/src/cli/init/prompts/language-prompt.d.ts +8 -0
- package/dist/src/cli/init/prompts/language-prompt.js +30 -0
- package/dist/src/cli/init/prompts/language-prompt.js.map +1 -0
- 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/init/templates/template.renderer.js +16 -6
- package/dist/src/cli/init/templates/template.renderer.js.map +1 -1
- package/dist/src/cli/init/templates/template.types.d.ts +1 -0
- 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 +1 -0
- package/dist/src/config/config.loader.js +23 -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/context/context.module.d.ts +2 -0
- package/dist/src/context/context.module.js +23 -0
- package/dist/src/context/context.module.js.map +1 -0
- package/dist/src/context/context.service.d.ts +21 -0
- package/dist/src/context/context.service.js +286 -0
- package/dist/src/context/context.service.js.map +1 -0
- package/dist/src/context/context.types.d.ts +50 -0
- package/dist/src/context/context.types.js +42 -0
- package/dist/src/context/context.types.js.map +1 -0
- package/dist/src/context/index.d.ts +3 -0
- package/dist/src/context/index.js +20 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/intent-patterns.d.ts +7 -0
- package/dist/src/context/intent-patterns.js +50 -0
- package/dist/src/context/intent-patterns.js.map +1 -0
- package/dist/src/keyword/auto-executor.d.ts +17 -0
- package/dist/src/keyword/auto-executor.js +95 -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/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.service.d.ts +6 -2
- package/dist/src/keyword/keyword.service.js +24 -6
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +24 -5
- package/dist/src/keyword/keyword.types.js +78 -3
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.d.ts +6 -0
- package/dist/src/keyword/primary-agent-resolver.js +211 -0
- 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/mcp/handlers/agent.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/agent.handler.js +167 -0
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -0
- package/dist/src/mcp/handlers/base.handler.d.ts +15 -0
- package/dist/src/mcp/handlers/base.handler.js +3 -0
- package/dist/src/mcp/handlers/base.handler.js.map +1 -0
- package/dist/src/mcp/handlers/checklist-context.handler.d.ts +13 -0
- package/dist/src/mcp/handlers/checklist-context.handler.js +141 -0
- package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -0
- package/dist/src/mcp/handlers/config.handler.d.ts +15 -0
- package/dist/src/mcp/handlers/config.handler.js +104 -0
- package/dist/src/mcp/handlers/config.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +8 -0
- package/dist/src/mcp/handlers/index.js +17 -0
- package/dist/src/mcp/handlers/index.js.map +1 -0
- package/dist/src/mcp/handlers/mode.handler.d.ts +16 -0
- package/dist/src/mcp/handlers/mode.handler.js +100 -0
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rules.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/rules.handler.js +99 -0
- package/dist/src/mcp/handlers/rules.handler.js.map +1 -0
- package/dist/src/mcp/handlers/skill.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/skill.handler.js +111 -0
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -0
- 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 +26 -1
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +3 -25
- package/dist/src/mcp/mcp.service.js +13 -366
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/src/model/index.d.ts +1 -0
- package/dist/src/model/index.js +3 -0
- package/dist/src/model/index.js.map +1 -1
- package/dist/src/model/model-resolver.service.d.ts +13 -0
- package/dist/src/model/model-resolver.service.js +63 -0
- package/dist/src/model/model-resolver.service.js.map +1 -0
- package/dist/src/model/model.constants.js.map +1 -1
- package/dist/src/model/model.resolver.js +10 -1
- package/dist/src/model/model.resolver.js.map +1 -1
- package/dist/src/shared/filesystem.interface.d.ts +15 -0
- package/dist/src/shared/filesystem.interface.js +14 -0
- package/dist/src/shared/filesystem.interface.js.map +1 -0
- package/dist/src/shared/node-filesystem.service.d.ts +5 -0
- package/dist/src/shared/node-filesystem.service.js +25 -0
- package/dist/src/shared/node-filesystem.service.js.map +1 -0
- package/dist/src/shared/path.utils.js.map +1 -1
- package/dist/src/shared/pattern-matcher.d.ts +11 -0
- package/dist/src/shared/pattern-matcher.js +39 -0
- package/dist/src/shared/pattern-matcher.js.map +1 -0
- package/dist/src/shared/security.utils.d.ts +17 -0
- package/dist/src/shared/security.utils.js +63 -0
- package/dist/src/shared/security.utils.js.map +1 -1
- package/dist/src/shared/validation.constants.d.ts +10 -0
- package/dist/src/shared/validation.constants.js +42 -1
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/src/config/config.types.d.ts +0 -2
- package/dist/src/config/config.types.js +0 -6
- package/dist/src/config/config.types.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_PRIMARY_AGENT = void 0;
|
|
4
|
+
exports.getPrimaryAgentChoices = getPrimaryAgentChoices;
|
|
5
|
+
exports.promptPrimaryAgentSelection = promptPrimaryAgentSelection;
|
|
6
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
7
|
+
const keyword_types_1 = require("../../../keyword/keyword.types");
|
|
8
|
+
exports.DEFAULT_PRIMARY_AGENT = keyword_types_1.DEFAULT_ACT_AGENT;
|
|
9
|
+
function getPrimaryAgentChoices() {
|
|
10
|
+
return keyword_types_1.ACT_PRIMARY_AGENTS.map(agentId => {
|
|
11
|
+
const info = keyword_types_1.ACT_AGENT_DISPLAY_INFO[agentId];
|
|
12
|
+
const isDefault = agentId === exports.DEFAULT_PRIMARY_AGENT;
|
|
13
|
+
return {
|
|
14
|
+
name: isDefault ? `${info.name} (Recommended)` : info.name,
|
|
15
|
+
value: agentId,
|
|
16
|
+
description: info.description,
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async function promptPrimaryAgentSelection(message = 'Select your primary development agent:') {
|
|
21
|
+
const choices = getPrimaryAgentChoices();
|
|
22
|
+
return (0, prompts_1.select)({
|
|
23
|
+
message,
|
|
24
|
+
choices,
|
|
25
|
+
default: exports.DEFAULT_PRIMARY_AGENT,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=agent-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/agent-prompt.ts"],"names":[],"mappings":";;;AA+BA,wDAUC;AAOD,kEAUC;AApDD,+CAA2C;AAC3C,kEAKwC;AAc3B,QAAA,qBAAqB,GAAG,iCAAiB,CAAC;AAKvD,SAAgB,sBAAsB;IACpC,OAAO,kCAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,IAAI,GAAG,sCAAsB,CAAC,OAA0B,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,OAAO,KAAK,6BAAqB,CAAC;QACpD,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC1D,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAOM,KAAK,UAAU,2BAA2B,CAC/C,OAAO,GAAG,wCAAwC;IAElD,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,OAAO,IAAA,gBAAM,EAAC;QACZ,OAAO;QACP,OAAO;QACP,OAAO,EAAE,6BAAqB;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ArchChoice {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ArchitectureSettings {
|
|
7
|
+
pattern: string;
|
|
8
|
+
componentStyle: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const PATTERN_CHOICES: ArchChoice[];
|
|
11
|
+
export declare const COMPONENT_STYLE_CHOICES: ArchChoice[];
|
|
12
|
+
export interface ArchitecturePromptOptions {
|
|
13
|
+
detectedPattern?: string;
|
|
14
|
+
detectedComponentStyle?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function promptArchitectureSettings(options?: ArchitecturePromptOptions): Promise<ArchitectureSettings>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COMPONENT_STYLE_CHOICES = exports.PATTERN_CHOICES = void 0;
|
|
4
|
+
exports.promptArchitectureSettings = promptArchitectureSettings;
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
exports.PATTERN_CHOICES = [
|
|
7
|
+
{
|
|
8
|
+
name: 'Monorepo',
|
|
9
|
+
value: 'monorepo',
|
|
10
|
+
description: 'Multiple packages in one repository (apps/, packages/)',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'Modular',
|
|
14
|
+
value: 'modular',
|
|
15
|
+
description: 'Feature-based modules with clear boundaries',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Layered',
|
|
19
|
+
value: 'layered',
|
|
20
|
+
description: 'Traditional layers (presentation, business, data)',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Clean Architecture',
|
|
24
|
+
value: 'clean',
|
|
25
|
+
description: 'Domain-centric with dependency inversion',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'Microservices',
|
|
29
|
+
value: 'microservices',
|
|
30
|
+
description: 'Distributed services architecture',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
exports.COMPONENT_STYLE_CHOICES = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Feature-based',
|
|
36
|
+
value: 'feature-based',
|
|
37
|
+
description: 'Group by feature (auth/, users/, products/)',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'Flat',
|
|
41
|
+
value: 'flat',
|
|
42
|
+
description: 'All components in one directory',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Grouped',
|
|
46
|
+
value: 'grouped',
|
|
47
|
+
description: 'Group by type (components/, hooks/, utils/)',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
async function promptArchitectureSettings(options = {}) {
|
|
51
|
+
const pattern = await (0, prompts_1.select)({
|
|
52
|
+
message: 'Select architecture pattern:',
|
|
53
|
+
choices: exports.PATTERN_CHOICES,
|
|
54
|
+
default: options.detectedPattern ?? 'modular',
|
|
55
|
+
});
|
|
56
|
+
const componentStyle = await (0, prompts_1.select)({
|
|
57
|
+
message: 'Select component organization style:',
|
|
58
|
+
choices: exports.COMPONENT_STYLE_CHOICES,
|
|
59
|
+
default: options.detectedComponentStyle ?? 'feature-based',
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
pattern,
|
|
63
|
+
componentStyle,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=architecture-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architecture-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/architecture-prompt.ts"],"names":[],"mappings":";;;AA0FA,gEAmBC;AAvGD,+CAA2C;AAsB9B,QAAA,eAAe,GAAiB;IAC3C;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,wDAAwD;KACtE;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,0CAA0C;KACxD;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,mCAAmC;KACjD;CACF,CAAC;AAKW,QAAA,uBAAuB,GAAiB;IACnD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,6CAA6C;KAC3D;CACF,CAAC;AAeK,KAAK,UAAU,0BAA0B,CAC9C,UAAqC,EAAE;IAEvC,MAAM,OAAO,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC3B,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE,uBAAe;QACxB,OAAO,EAAE,OAAO,CAAC,eAAe,IAAI,SAAS;KAC9C,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,IAAA,gBAAM,EAAC;QAClC,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,+BAAuB;QAChC,OAAO,EAAE,OAAO,CAAC,sBAAsB,IAAI,eAAe;KAC3D,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface BasicSettings {
|
|
2
|
+
projectName: string;
|
|
3
|
+
description: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const DEFAULT_PROJECT_NAME = "my-project";
|
|
6
|
+
export declare const DEFAULT_DESCRIPTION = "";
|
|
7
|
+
export declare function validateProjectName(name: string): true | string;
|
|
8
|
+
export declare function validateDescription(description: string): true | string;
|
|
9
|
+
export interface BasicPromptOptions {
|
|
10
|
+
detectedProjectName?: string;
|
|
11
|
+
detectedDescription?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function promptBasicSettings(options?: BasicPromptOptions): Promise<BasicSettings>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_DESCRIPTION = exports.DEFAULT_PROJECT_NAME = void 0;
|
|
4
|
+
exports.validateProjectName = validateProjectName;
|
|
5
|
+
exports.validateDescription = validateDescription;
|
|
6
|
+
exports.promptBasicSettings = promptBasicSettings;
|
|
7
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
8
|
+
exports.DEFAULT_PROJECT_NAME = 'my-project';
|
|
9
|
+
exports.DEFAULT_DESCRIPTION = '';
|
|
10
|
+
const MAX_PROJECT_NAME_LENGTH = 214;
|
|
11
|
+
const MAX_DESCRIPTION_LENGTH = 250;
|
|
12
|
+
const PROJECT_NAME_PATTERN = /^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9][a-z0-9-._~]*$/;
|
|
13
|
+
function validateProjectName(name) {
|
|
14
|
+
if (!name || name.trim() === '') {
|
|
15
|
+
return 'Project name is required';
|
|
16
|
+
}
|
|
17
|
+
if (name.length > MAX_PROJECT_NAME_LENGTH) {
|
|
18
|
+
return `Project name must be ${MAX_PROJECT_NAME_LENGTH} characters or less`;
|
|
19
|
+
}
|
|
20
|
+
if (!PROJECT_NAME_PATTERN.test(name)) {
|
|
21
|
+
return 'Project name must be lowercase, alphanumeric, with hyphens or underscores only (e.g., my-project, @scope/my-package)';
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
function validateDescription(description) {
|
|
26
|
+
if (!description) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (description.length > MAX_DESCRIPTION_LENGTH) {
|
|
30
|
+
return `Description must be ${MAX_DESCRIPTION_LENGTH} characters or less`;
|
|
31
|
+
}
|
|
32
|
+
if (/[\x00-\x1f\x7f]/.test(description)) {
|
|
33
|
+
return 'Description cannot contain control characters (newlines, tabs, etc.)';
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
async function promptBasicSettings(options = {}) {
|
|
38
|
+
const projectName = await (0, prompts_1.input)({
|
|
39
|
+
message: 'Project name:',
|
|
40
|
+
default: options.detectedProjectName ?? exports.DEFAULT_PROJECT_NAME,
|
|
41
|
+
validate: validateProjectName,
|
|
42
|
+
});
|
|
43
|
+
const description = await (0, prompts_1.input)({
|
|
44
|
+
message: 'Project description:',
|
|
45
|
+
default: options.detectedDescription ?? exports.DEFAULT_DESCRIPTION,
|
|
46
|
+
validate: validateDescription,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
projectName,
|
|
50
|
+
description,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=basic-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/basic-prompt.ts"],"names":[],"mappings":";;;AAmDA,kDAcC;AAQD,kDAiBC;AAkBD,kDAmBC;AAzHD,+CAA0C;AAa7B,QAAA,oBAAoB,GAAG,YAAY,CAAC;AAKpC,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAKtC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAKpC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAQnC,MAAM,oBAAoB,GACxB,wDAAwD,CAAC;AAQ3D,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAChC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC1C,OAAO,wBAAwB,uBAAuB,qBAAqB,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,sHAAsH,CAAC;IAChI,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,SAAgB,mBAAmB,CAAC,WAAmB;IAErD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;QAChD,OAAO,uBAAuB,sBAAsB,qBAAqB,CAAC;IAC5E,CAAC;IAID,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,sEAAsE,CAAC;IAChF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAkBM,KAAK,UAAU,mBAAmB,CACvC,UAA8B,EAAE;IAEhC,MAAM,WAAW,GAAG,MAAM,IAAA,eAAK,EAAC;QAC9B,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,OAAO,CAAC,mBAAmB,IAAI,4BAAoB;QAC5D,QAAQ,EAAE,mBAAmB;KAC9B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,IAAA,eAAK,EAAC;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,OAAO,CAAC,mBAAmB,IAAI,2BAAmB;QAC3D,QAAQ,EAAE,mBAAmB;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ConvChoice<T = string> {
|
|
2
|
+
name: string;
|
|
3
|
+
value: T;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ConventionsSettings {
|
|
7
|
+
fileNaming: string;
|
|
8
|
+
quotes: 'single' | 'double';
|
|
9
|
+
semicolons: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const FILE_NAMING_CHOICES: ConvChoice[];
|
|
12
|
+
export declare const QUOTES_CHOICES: ConvChoice<'single' | 'double'>[];
|
|
13
|
+
export declare const SEMICOLONS_CHOICES: ConvChoice<boolean>[];
|
|
14
|
+
export interface ConventionsPromptOptions {
|
|
15
|
+
detectedFileNaming?: string;
|
|
16
|
+
detectedQuotes?: 'single' | 'double';
|
|
17
|
+
detectedSemicolons?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function promptConventionsSettings(options?: ConventionsPromptOptions): Promise<ConventionsSettings>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SEMICOLONS_CHOICES = exports.QUOTES_CHOICES = exports.FILE_NAMING_CHOICES = void 0;
|
|
4
|
+
exports.promptConventionsSettings = promptConventionsSettings;
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
exports.FILE_NAMING_CHOICES = [
|
|
7
|
+
{
|
|
8
|
+
name: 'kebab-case',
|
|
9
|
+
value: 'kebab-case',
|
|
10
|
+
description: 'my-component.ts (recommended for most projects)',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'camelCase',
|
|
14
|
+
value: 'camelCase',
|
|
15
|
+
description: 'myComponent.ts',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'PascalCase',
|
|
19
|
+
value: 'PascalCase',
|
|
20
|
+
description: 'MyComponent.ts (common for React components)',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'snake_case',
|
|
24
|
+
value: 'snake_case',
|
|
25
|
+
description: 'my_component.ts (common for Python)',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
exports.QUOTES_CHOICES = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Single quotes',
|
|
31
|
+
value: 'single',
|
|
32
|
+
description: "const x = 'hello'",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'Double quotes',
|
|
36
|
+
value: 'double',
|
|
37
|
+
description: 'const x = "hello"',
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
exports.SEMICOLONS_CHOICES = [
|
|
41
|
+
{
|
|
42
|
+
name: 'With semicolons',
|
|
43
|
+
value: true,
|
|
44
|
+
description: 'const x = 1;',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Without semicolons',
|
|
48
|
+
value: false,
|
|
49
|
+
description: 'const x = 1',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
async function promptConventionsSettings(options = {}) {
|
|
53
|
+
const fileNaming = await (0, prompts_1.select)({
|
|
54
|
+
message: 'Select file naming convention:',
|
|
55
|
+
choices: exports.FILE_NAMING_CHOICES,
|
|
56
|
+
default: options.detectedFileNaming ?? 'kebab-case',
|
|
57
|
+
});
|
|
58
|
+
const quotes = await (0, prompts_1.select)({
|
|
59
|
+
message: 'Select quote style:',
|
|
60
|
+
choices: exports.QUOTES_CHOICES,
|
|
61
|
+
default: options.detectedQuotes ?? 'single',
|
|
62
|
+
});
|
|
63
|
+
const semicolons = await (0, prompts_1.select)({
|
|
64
|
+
message: 'Use semicolons?',
|
|
65
|
+
choices: exports.SEMICOLONS_CHOICES,
|
|
66
|
+
default: options.detectedSemicolons ?? true,
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
fileNaming,
|
|
70
|
+
quotes,
|
|
71
|
+
semicolons,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=conventions-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventions-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/conventions-prompt.ts"],"names":[],"mappings":";;;AAmGA,8DA0BC;AAvHD,+CAA2C;AAuB9B,QAAA,mBAAmB,GAAiB;IAC/C;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,iDAAiD;KAC/D;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,gBAAgB;KAC9B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,8CAA8C;KAC5D;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,qCAAqC;KACnD;CACF,CAAC;AAKW,QAAA,cAAc,GAAsC;IAC/D;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,mBAAmB;KACjC;CACF,CAAC;AAKW,QAAA,kBAAkB,GAA0B;IACvD;QACE,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,aAAa;KAC3B;CACF,CAAC;AAiBK,KAAK,UAAU,yBAAyB,CAC7C,UAAoC,EAAE;IAEtC,MAAM,UAAU,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC9B,OAAO,EAAE,gCAAgC;QACzC,OAAO,EAAE,2BAAmB;QAC5B,OAAO,EAAE,OAAO,CAAC,kBAAkB,IAAI,YAAY;KACpD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC1B,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,sBAAc;QACvB,OAAO,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ;KAC5C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC9B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,0BAAkB;QAC3B,OAAO,EAAE,OAAO,CAAC,kBAAkB,IAAI,IAAI;KAC5C,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,MAAM;QACN,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
1
|
export { getModelChoices, promptModelSelection, DEFAULT_MODEL_CHOICE, } from './model-prompt';
|
|
2
2
|
export type { ModelChoice } from './model-prompt';
|
|
3
|
+
export { getLanguageChoices, promptLanguageSelection, DEFAULT_LANGUAGE, } from './language-prompt';
|
|
4
|
+
export type { LanguageChoice } from './language-prompt';
|
|
5
|
+
export { getPrimaryAgentChoices, promptPrimaryAgentSelection, DEFAULT_PRIMARY_AGENT, } from './agent-prompt';
|
|
6
|
+
export type { AgentChoice } from './agent-prompt';
|
|
7
|
+
export type { ActPrimaryAgent } from '../../../keyword/keyword.types';
|
|
8
|
+
export { promptBasicSettings, validateProjectName, validateDescription, DEFAULT_PROJECT_NAME, DEFAULT_DESCRIPTION, } from './basic-prompt';
|
|
9
|
+
export type { BasicSettings, BasicPromptOptions } from './basic-prompt';
|
|
10
|
+
export { promptTechStackSettings, LANGUAGE_CHOICES, FRONTEND_CHOICES, BACKEND_CHOICES, TOOL_CHOICES, } from './tech-stack-prompt';
|
|
11
|
+
export type { TechStackSettings, TechStackPromptOptions, StackChoice, } from './tech-stack-prompt';
|
|
12
|
+
export { promptArchitectureSettings, PATTERN_CHOICES, COMPONENT_STYLE_CHOICES, } from './architecture-prompt';
|
|
13
|
+
export type { ArchitectureSettings, ArchitecturePromptOptions, ArchChoice, } from './architecture-prompt';
|
|
14
|
+
export { promptConventionsSettings, FILE_NAMING_CHOICES, QUOTES_CHOICES, SEMICOLONS_CHOICES, } from './conventions-prompt';
|
|
15
|
+
export type { ConventionsSettings, ConventionsPromptOptions, ConvChoice, } from './conventions-prompt';
|
|
16
|
+
export { promptTestStrategySettings, APPROACH_CHOICES, MOCKING_STRATEGY_CHOICES, DEFAULT_COVERAGE, } from './test-strategy-prompt';
|
|
17
|
+
export type { TestStrategySettings, TestStrategyPromptOptions, TestChoice, } from './test-strategy-prompt';
|
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MODEL_CHOICE = exports.promptModelSelection = exports.getModelChoices = void 0;
|
|
3
|
+
exports.DEFAULT_COVERAGE = exports.MOCKING_STRATEGY_CHOICES = exports.APPROACH_CHOICES = exports.promptTestStrategySettings = exports.SEMICOLONS_CHOICES = exports.QUOTES_CHOICES = exports.FILE_NAMING_CHOICES = exports.promptConventionsSettings = exports.COMPONENT_STYLE_CHOICES = exports.PATTERN_CHOICES = exports.promptArchitectureSettings = exports.TOOL_CHOICES = exports.BACKEND_CHOICES = exports.FRONTEND_CHOICES = exports.LANGUAGE_CHOICES = exports.promptTechStackSettings = exports.DEFAULT_DESCRIPTION = exports.DEFAULT_PROJECT_NAME = exports.validateDescription = exports.validateProjectName = exports.promptBasicSettings = exports.DEFAULT_PRIMARY_AGENT = exports.promptPrimaryAgentSelection = exports.getPrimaryAgentChoices = exports.DEFAULT_LANGUAGE = exports.promptLanguageSelection = exports.getLanguageChoices = exports.DEFAULT_MODEL_CHOICE = exports.promptModelSelection = exports.getModelChoices = void 0;
|
|
4
4
|
var model_prompt_1 = require("./model-prompt");
|
|
5
5
|
Object.defineProperty(exports, "getModelChoices", { enumerable: true, get: function () { return model_prompt_1.getModelChoices; } });
|
|
6
6
|
Object.defineProperty(exports, "promptModelSelection", { enumerable: true, get: function () { return model_prompt_1.promptModelSelection; } });
|
|
7
7
|
Object.defineProperty(exports, "DEFAULT_MODEL_CHOICE", { enumerable: true, get: function () { return model_prompt_1.DEFAULT_MODEL_CHOICE; } });
|
|
8
|
+
var language_prompt_1 = require("./language-prompt");
|
|
9
|
+
Object.defineProperty(exports, "getLanguageChoices", { enumerable: true, get: function () { return language_prompt_1.getLanguageChoices; } });
|
|
10
|
+
Object.defineProperty(exports, "promptLanguageSelection", { enumerable: true, get: function () { return language_prompt_1.promptLanguageSelection; } });
|
|
11
|
+
Object.defineProperty(exports, "DEFAULT_LANGUAGE", { enumerable: true, get: function () { return language_prompt_1.DEFAULT_LANGUAGE; } });
|
|
12
|
+
var agent_prompt_1 = require("./agent-prompt");
|
|
13
|
+
Object.defineProperty(exports, "getPrimaryAgentChoices", { enumerable: true, get: function () { return agent_prompt_1.getPrimaryAgentChoices; } });
|
|
14
|
+
Object.defineProperty(exports, "promptPrimaryAgentSelection", { enumerable: true, get: function () { return agent_prompt_1.promptPrimaryAgentSelection; } });
|
|
15
|
+
Object.defineProperty(exports, "DEFAULT_PRIMARY_AGENT", { enumerable: true, get: function () { return agent_prompt_1.DEFAULT_PRIMARY_AGENT; } });
|
|
16
|
+
var basic_prompt_1 = require("./basic-prompt");
|
|
17
|
+
Object.defineProperty(exports, "promptBasicSettings", { enumerable: true, get: function () { return basic_prompt_1.promptBasicSettings; } });
|
|
18
|
+
Object.defineProperty(exports, "validateProjectName", { enumerable: true, get: function () { return basic_prompt_1.validateProjectName; } });
|
|
19
|
+
Object.defineProperty(exports, "validateDescription", { enumerable: true, get: function () { return basic_prompt_1.validateDescription; } });
|
|
20
|
+
Object.defineProperty(exports, "DEFAULT_PROJECT_NAME", { enumerable: true, get: function () { return basic_prompt_1.DEFAULT_PROJECT_NAME; } });
|
|
21
|
+
Object.defineProperty(exports, "DEFAULT_DESCRIPTION", { enumerable: true, get: function () { return basic_prompt_1.DEFAULT_DESCRIPTION; } });
|
|
22
|
+
var tech_stack_prompt_1 = require("./tech-stack-prompt");
|
|
23
|
+
Object.defineProperty(exports, "promptTechStackSettings", { enumerable: true, get: function () { return tech_stack_prompt_1.promptTechStackSettings; } });
|
|
24
|
+
Object.defineProperty(exports, "LANGUAGE_CHOICES", { enumerable: true, get: function () { return tech_stack_prompt_1.LANGUAGE_CHOICES; } });
|
|
25
|
+
Object.defineProperty(exports, "FRONTEND_CHOICES", { enumerable: true, get: function () { return tech_stack_prompt_1.FRONTEND_CHOICES; } });
|
|
26
|
+
Object.defineProperty(exports, "BACKEND_CHOICES", { enumerable: true, get: function () { return tech_stack_prompt_1.BACKEND_CHOICES; } });
|
|
27
|
+
Object.defineProperty(exports, "TOOL_CHOICES", { enumerable: true, get: function () { return tech_stack_prompt_1.TOOL_CHOICES; } });
|
|
28
|
+
var architecture_prompt_1 = require("./architecture-prompt");
|
|
29
|
+
Object.defineProperty(exports, "promptArchitectureSettings", { enumerable: true, get: function () { return architecture_prompt_1.promptArchitectureSettings; } });
|
|
30
|
+
Object.defineProperty(exports, "PATTERN_CHOICES", { enumerable: true, get: function () { return architecture_prompt_1.PATTERN_CHOICES; } });
|
|
31
|
+
Object.defineProperty(exports, "COMPONENT_STYLE_CHOICES", { enumerable: true, get: function () { return architecture_prompt_1.COMPONENT_STYLE_CHOICES; } });
|
|
32
|
+
var conventions_prompt_1 = require("./conventions-prompt");
|
|
33
|
+
Object.defineProperty(exports, "promptConventionsSettings", { enumerable: true, get: function () { return conventions_prompt_1.promptConventionsSettings; } });
|
|
34
|
+
Object.defineProperty(exports, "FILE_NAMING_CHOICES", { enumerable: true, get: function () { return conventions_prompt_1.FILE_NAMING_CHOICES; } });
|
|
35
|
+
Object.defineProperty(exports, "QUOTES_CHOICES", { enumerable: true, get: function () { return conventions_prompt_1.QUOTES_CHOICES; } });
|
|
36
|
+
Object.defineProperty(exports, "SEMICOLONS_CHOICES", { enumerable: true, get: function () { return conventions_prompt_1.SEMICOLONS_CHOICES; } });
|
|
37
|
+
var test_strategy_prompt_1 = require("./test-strategy-prompt");
|
|
38
|
+
Object.defineProperty(exports, "promptTestStrategySettings", { enumerable: true, get: function () { return test_strategy_prompt_1.promptTestStrategySettings; } });
|
|
39
|
+
Object.defineProperty(exports, "APPROACH_CHOICES", { enumerable: true, get: function () { return test_strategy_prompt_1.APPROACH_CHOICES; } });
|
|
40
|
+
Object.defineProperty(exports, "MOCKING_STRATEGY_CHOICES", { enumerable: true, get: function () { return test_strategy_prompt_1.MOCKING_STRATEGY_CHOICES; } });
|
|
41
|
+
Object.defineProperty(exports, "DEFAULT_COVERAGE", { enumerable: true, get: function () { return test_strategy_prompt_1.DEFAULT_COVERAGE; } });
|
|
8
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/index.ts"],"names":[],"mappings":";;;AAOA,+CAIwB;AAHtB,+GAAA,eAAe,OAAA;AACf,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AAKtB,qDAI2B;AAHzB,qHAAA,kBAAkB,OAAA;AAClB,0HAAA,uBAAuB,OAAA;AACvB,mHAAA,gBAAgB,OAAA;AAKlB,+CAIwB;AAHtB,sHAAA,sBAAsB,OAAA;AACtB,2HAAA,2BAA2B,OAAA;AAC3B,qHAAA,qBAAqB,OAAA;AAMvB,+CAMwB;AALtB,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,mHAAA,mBAAmB,OAAA;AAKrB,yDAM6B;AAL3B,4HAAA,uBAAuB,OAAA;AACvB,qHAAA,gBAAgB,OAAA;AAChB,qHAAA,gBAAgB,OAAA;AAChB,oHAAA,eAAe,OAAA;AACf,iHAAA,YAAY,OAAA;AASd,6DAI+B;AAH7B,iIAAA,0BAA0B,OAAA;AAC1B,sHAAA,eAAe,OAAA;AACf,8HAAA,uBAAuB,OAAA;AASzB,2DAK8B;AAJ5B,+HAAA,yBAAyB,OAAA;AACzB,yHAAA,mBAAmB,OAAA;AACnB,oHAAA,cAAc,OAAA;AACd,wHAAA,kBAAkB,OAAA;AASpB,+DAKgC;AAJ9B,kIAAA,0BAA0B,OAAA;AAC1B,wHAAA,gBAAgB,OAAA;AAChB,gIAAA,wBAAwB,OAAA;AACxB,wHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface LanguageChoice {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const DEFAULT_LANGUAGE: "en";
|
|
7
|
+
export declare function getLanguageChoices(): LanguageChoice[];
|
|
8
|
+
export declare function promptLanguageSelection(message?: string): Promise<string>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_LANGUAGE = void 0;
|
|
4
|
+
exports.getLanguageChoices = getLanguageChoices;
|
|
5
|
+
exports.promptLanguageSelection = promptLanguageSelection;
|
|
6
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
7
|
+
const keyword_types_1 = require("../../../keyword/keyword.types");
|
|
8
|
+
exports.DEFAULT_LANGUAGE = keyword_types_1.DEFAULT_LANGUAGE_CODE;
|
|
9
|
+
function getLanguageChoices() {
|
|
10
|
+
return keyword_types_1.SUPPORTED_LANGUAGE_CODES.map(code => {
|
|
11
|
+
const info = keyword_types_1.SUPPORTED_LANGUAGES[code];
|
|
12
|
+
const name = info.nativeName === info.name
|
|
13
|
+
? info.name
|
|
14
|
+
: `${info.nativeName} (${info.name})`;
|
|
15
|
+
return {
|
|
16
|
+
name,
|
|
17
|
+
value: code,
|
|
18
|
+
description: info.description,
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async function promptLanguageSelection(message = 'Select response language:') {
|
|
23
|
+
const choices = getLanguageChoices();
|
|
24
|
+
return (0, prompts_1.select)({
|
|
25
|
+
message,
|
|
26
|
+
choices,
|
|
27
|
+
default: exports.DEFAULT_LANGUAGE,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=language-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/language-prompt.ts"],"names":[],"mappings":";;;AAgCA,gDAcC;AAOD,0DAUC;AAzDD,+CAA2C;AAC3C,kEAIwC;AAc3B,QAAA,gBAAgB,GAAG,qCAAqB,CAAC;AAOtD,SAAgB,kBAAkB;IAChC,OAAO,wCAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,IAAI,GAAG,mCAAmB,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,IAAI,GACR,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI;YAC3B,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC;QAC1C,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAOM,KAAK,UAAU,uBAAuB,CAC3C,OAAO,GAAG,2BAA2B;IAErC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,OAAO,IAAA,gBAAM,EAAC;QACZ,OAAO;QACP,OAAO;QACP,OAAO,EAAE,wBAAgB;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -19,9 +19,9 @@ function getModelChoices() {
|
|
|
19
19
|
description: 'Most capable, best for complex tasks',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
name: 'Claude Haiku 3.5',
|
|
22
|
+
name: 'Claude Haiku 3.5 (Not recommended)',
|
|
23
23
|
value: model_1.CLAUDE_HAIKU_35,
|
|
24
|
-
description: 'Fastest
|
|
24
|
+
description: 'Fastest but least capable - not recommended for coding tasks',
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/model-prompt.ts"],"names":[],"mappings":";;;AA+BA,
|
|
1
|
+
{"version":3,"file":"model-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/model-prompt.ts"],"names":[],"mappings":";;;AA+BA,0CAmBC;AAOD,oDAUC;AA7DD,+CAA2C;AAC3C,0CAKwB;AAcX,QAAA,oBAAoB,GAAG,qBAAa,CAAC;AAKlD,SAAgB,eAAe;IAC7B,OAAO;QACL;YACE,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,uBAAe;YACtB,WAAW,EAAE,+BAA+B;SAC7C;QACD;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,qBAAa;YACpB,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,uBAAe;YACtB,WAAW,EACT,8DAA8D;SACjE;KACF,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,oBAAoB,CACxC,OAAO,GAAG,0BAA0B;IAEpC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,OAAO,IAAA,gBAAM,EAAC;QACZ,OAAO;QACP,OAAO;QACP,OAAO,EAAE,4BAAoB;KAC9B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface StackChoice {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface TechStackSettings {
|
|
7
|
+
languages: string[];
|
|
8
|
+
frontend: string[];
|
|
9
|
+
backend: string[];
|
|
10
|
+
tools: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const LANGUAGE_CHOICES: StackChoice[];
|
|
13
|
+
export declare const FRONTEND_CHOICES: StackChoice[];
|
|
14
|
+
export declare const BACKEND_CHOICES: StackChoice[];
|
|
15
|
+
export declare const TOOL_CHOICES: StackChoice[];
|
|
16
|
+
export interface TechStackPromptOptions {
|
|
17
|
+
detectedLanguages?: string[];
|
|
18
|
+
detectedFrontend?: string[];
|
|
19
|
+
detectedBackend?: string[];
|
|
20
|
+
detectedTools?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function promptTechStackSettings(options?: TechStackPromptOptions): Promise<TechStackSettings>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOOL_CHOICES = exports.BACKEND_CHOICES = exports.FRONTEND_CHOICES = exports.LANGUAGE_CHOICES = void 0;
|
|
4
|
+
exports.promptTechStackSettings = promptTechStackSettings;
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
exports.LANGUAGE_CHOICES = [
|
|
7
|
+
{ name: 'TypeScript', value: 'TypeScript' },
|
|
8
|
+
{ name: 'JavaScript', value: 'JavaScript' },
|
|
9
|
+
{ name: 'Python', value: 'Python' },
|
|
10
|
+
{ name: 'Go', value: 'Go' },
|
|
11
|
+
{ name: 'Rust', value: 'Rust' },
|
|
12
|
+
{ name: 'Java', value: 'Java' },
|
|
13
|
+
];
|
|
14
|
+
exports.FRONTEND_CHOICES = [
|
|
15
|
+
{ name: 'React', value: 'React' },
|
|
16
|
+
{ name: 'Next.js', value: 'Next.js' },
|
|
17
|
+
{ name: 'Vue', value: 'Vue' },
|
|
18
|
+
{ name: 'Nuxt', value: 'Nuxt' },
|
|
19
|
+
{ name: 'Svelte', value: 'Svelte' },
|
|
20
|
+
{ name: 'Angular', value: 'Angular' },
|
|
21
|
+
];
|
|
22
|
+
exports.BACKEND_CHOICES = [
|
|
23
|
+
{ name: 'NestJS', value: 'NestJS' },
|
|
24
|
+
{ name: 'Express', value: 'Express' },
|
|
25
|
+
{ name: 'Fastify', value: 'Fastify' },
|
|
26
|
+
{ name: 'FastAPI', value: 'FastAPI' },
|
|
27
|
+
{ name: 'Django', value: 'Django' },
|
|
28
|
+
{ name: 'Spring Boot', value: 'Spring Boot' },
|
|
29
|
+
];
|
|
30
|
+
exports.TOOL_CHOICES = [
|
|
31
|
+
{ name: 'Vitest', value: 'Vitest' },
|
|
32
|
+
{ name: 'Jest', value: 'Jest' },
|
|
33
|
+
{ name: 'ESLint', value: 'ESLint' },
|
|
34
|
+
{ name: 'Prettier', value: 'Prettier' },
|
|
35
|
+
{ name: 'Docker', value: 'Docker' },
|
|
36
|
+
{ name: 'GitHub Actions', value: 'GitHub Actions' },
|
|
37
|
+
];
|
|
38
|
+
function getChoicesWithDefaults(choices, detected = []) {
|
|
39
|
+
return choices.map(choice => ({
|
|
40
|
+
...choice,
|
|
41
|
+
checked: detected.includes(choice.value),
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
async function promptTechStackSettings(options = {}) {
|
|
45
|
+
const languages = await (0, prompts_1.checkbox)({
|
|
46
|
+
message: 'Select programming languages:',
|
|
47
|
+
choices: getChoicesWithDefaults(exports.LANGUAGE_CHOICES, options.detectedLanguages),
|
|
48
|
+
});
|
|
49
|
+
const frontend = await (0, prompts_1.checkbox)({
|
|
50
|
+
message: 'Select frontend frameworks:',
|
|
51
|
+
choices: getChoicesWithDefaults(exports.FRONTEND_CHOICES, options.detectedFrontend),
|
|
52
|
+
});
|
|
53
|
+
const backend = await (0, prompts_1.checkbox)({
|
|
54
|
+
message: 'Select backend frameworks:',
|
|
55
|
+
choices: getChoicesWithDefaults(exports.BACKEND_CHOICES, options.detectedBackend),
|
|
56
|
+
});
|
|
57
|
+
const tools = await (0, prompts_1.checkbox)({
|
|
58
|
+
message: 'Select tools:',
|
|
59
|
+
choices: getChoicesWithDefaults(exports.TOOL_CHOICES, options.detectedTools),
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
languages,
|
|
63
|
+
frontend,
|
|
64
|
+
backend,
|
|
65
|
+
tools,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=tech-stack-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tech-stack-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/tech-stack-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface TestChoice<T = string> {
|
|
2
|
+
name: string;
|
|
3
|
+
value: T;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TestStrategySettings {
|
|
7
|
+
approach: 'tdd' | 'bdd' | 'test-after' | 'mixed';
|
|
8
|
+
coverage: number;
|
|
9
|
+
mockingStrategy: 'minimal' | 'extensive' | 'no-mocks';
|
|
10
|
+
}
|
|
11
|
+
export declare const DEFAULT_COVERAGE = 90;
|
|
12
|
+
export declare const APPROACH_CHOICES: TestChoice<TestStrategySettings['approach']>[];
|
|
13
|
+
export declare const MOCKING_STRATEGY_CHOICES: TestChoice<TestStrategySettings['mockingStrategy']>[];
|
|
14
|
+
export interface TestStrategyPromptOptions {
|
|
15
|
+
detectedApproach?: TestStrategySettings['approach'];
|
|
16
|
+
detectedCoverage?: number;
|
|
17
|
+
detectedMockingStrategy?: TestStrategySettings['mockingStrategy'];
|
|
18
|
+
}
|
|
19
|
+
export declare function promptTestStrategySettings(options?: TestStrategyPromptOptions): Promise<TestStrategySettings>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MOCKING_STRATEGY_CHOICES = exports.APPROACH_CHOICES = exports.DEFAULT_COVERAGE = void 0;
|
|
4
|
+
exports.promptTestStrategySettings = promptTestStrategySettings;
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
exports.DEFAULT_COVERAGE = 90;
|
|
7
|
+
exports.APPROACH_CHOICES = [
|
|
8
|
+
{
|
|
9
|
+
name: 'TDD (Test-Driven Development)',
|
|
10
|
+
value: 'tdd',
|
|
11
|
+
description: 'Write tests first, then implement',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'BDD (Behavior-Driven Development)',
|
|
15
|
+
value: 'bdd',
|
|
16
|
+
description: 'Focus on behavior specifications',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Test-After',
|
|
20
|
+
value: 'test-after',
|
|
21
|
+
description: 'Write tests after implementation',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Mixed',
|
|
25
|
+
value: 'mixed',
|
|
26
|
+
description: 'TDD for core logic, test-after for UI',
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
exports.MOCKING_STRATEGY_CHOICES = [
|
|
30
|
+
{
|
|
31
|
+
name: 'Minimal',
|
|
32
|
+
value: 'minimal',
|
|
33
|
+
description: 'Mock only external services (recommended)',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'Extensive',
|
|
37
|
+
value: 'extensive',
|
|
38
|
+
description: 'Mock most dependencies',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'No Mocks',
|
|
42
|
+
value: 'no-mocks',
|
|
43
|
+
description: 'Integration tests with real implementations',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
async function promptTestStrategySettings(options = {}) {
|
|
47
|
+
const approach = await (0, prompts_1.select)({
|
|
48
|
+
message: 'Select test approach:',
|
|
49
|
+
choices: exports.APPROACH_CHOICES,
|
|
50
|
+
default: options.detectedApproach ?? 'tdd',
|
|
51
|
+
});
|
|
52
|
+
const coverageInput = await (0, prompts_1.input)({
|
|
53
|
+
message: 'Target test coverage (%):',
|
|
54
|
+
default: String(options.detectedCoverage ?? exports.DEFAULT_COVERAGE),
|
|
55
|
+
validate: value => {
|
|
56
|
+
const num = parseInt(value, 10);
|
|
57
|
+
if (isNaN(num) || num < 0 || num > 100) {
|
|
58
|
+
return 'Please enter a number between 0 and 100';
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const coverage = parseInt(coverageInput, 10);
|
|
64
|
+
const mockingStrategy = await (0, prompts_1.select)({
|
|
65
|
+
message: 'Select mocking strategy:',
|
|
66
|
+
choices: exports.MOCKING_STRATEGY_CHOICES,
|
|
67
|
+
default: options.detectedMockingStrategy ?? 'minimal',
|
|
68
|
+
});
|
|
69
|
+
return {
|
|
70
|
+
approach,
|
|
71
|
+
coverage,
|
|
72
|
+
mockingStrategy,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=test-strategy-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-strategy-prompt.js","sourceRoot":"","sources":["../../../../../src/cli/init/prompts/test-strategy-prompt.ts"],"names":[],"mappings":";;;AAgGA,gEAiCC;AA3HD,+CAAkD;AAuBrC,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAKtB,QAAA,gBAAgB,GAC3B;IACE;QACE,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,kCAAkC;KAChD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,kCAAkC;KAChD;IACD;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,uCAAuC;KACrD;CACF,CAAC;AAKS,QAAA,wBAAwB,GAE/B;IACJ;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,wBAAwB;KACtC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,6CAA6C;KAC3D;CACF,CAAC;AAiBK,KAAK,UAAU,0BAA0B,CAC9C,UAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC5B,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,wBAAgB;QACzB,OAAO,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;KAC3C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,IAAA,eAAK,EAAC;QAChC,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,wBAAgB,CAAC;QAC7D,QAAQ,EAAE,KAAK,CAAC,EAAE;YAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;gBACvC,OAAO,yCAAyC,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAE7C,MAAM,eAAe,GAAG,MAAM,IAAA,gBAAM,EAAC;QACnC,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,gCAAwB;QACjC,OAAO,EAAE,OAAO,CAAC,uBAAuB,IAAI,SAAS;KACtD,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,eAAe;KAChB,CAAC;AACJ,CAAC"}
|