agenv-cli 0.1.0 → 1.0.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/cli/commands/init.js +45 -22
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/prompts/init-flow.d.ts +22 -5
- package/dist/cli/prompts/init-flow.js +45 -22
- package/dist/cli/prompts/init-flow.js.map +1 -1
- package/dist/cli/prompts/sessions/auth.d.ts +1 -0
- package/dist/cli/prompts/sessions/auth.js +11 -0
- package/dist/cli/prompts/sessions/auth.js.map +1 -1
- package/dist/cli/prompts/sessions/data.d.ts +5 -0
- package/dist/cli/prompts/sessions/data.js +18 -0
- package/dist/cli/prompts/sessions/data.js.map +1 -1
- package/dist/cli/prompts/sessions/output.d.ts +6 -0
- package/dist/cli/prompts/sessions/output.js +33 -0
- package/dist/cli/prompts/sessions/output.js.map +1 -1
- package/dist/cli/prompts/sessions/project-type.d.ts +1 -0
- package/dist/cli/prompts/sessions/project-type.js +12 -1
- package/dist/cli/prompts/sessions/project-type.js.map +1 -1
- package/dist/cli/prompts/sessions/quality.d.ts +6 -0
- package/dist/cli/prompts/sessions/quality.js +20 -0
- package/dist/cli/prompts/sessions/quality.js.map +1 -1
- package/dist/cli/prompts/sessions/setup-depth.d.ts +1 -0
- package/dist/cli/prompts/sessions/setup-depth.js +11 -0
- package/dist/cli/prompts/sessions/setup-depth.js.map +1 -1
- package/dist/cli/prompts/sessions/stack.d.ts +1 -0
- package/dist/cli/prompts/sessions/stack.js +25 -0
- package/dist/cli/prompts/sessions/stack.js.map +1 -1
- package/dist/cli/prompts/sessions/tooling.d.ts +1 -0
- package/dist/cli/prompts/sessions/tooling.js +12 -0
- package/dist/cli/prompts/sessions/tooling.js.map +1 -1
- package/dist/cli/prompts/sessions/tools.d.ts +6 -0
- package/dist/cli/prompts/sessions/tools.js +18 -0
- package/dist/cli/prompts/sessions/tools.js.map +1 -1
- package/dist/cli/prompts/sessions/ui.d.ts +8 -0
- package/dist/cli/prompts/sessions/ui.js +42 -0
- package/dist/cli/prompts/sessions/ui.js.map +1 -1
- package/dist/manifest/defaults.js +42 -16
- package/dist/manifest/defaults.js.map +1 -1
- package/dist/manifest/schema.d.ts +38 -2
- package/dist/manifest/schema.js +14 -3
- package/dist/manifest/schema.js.map +1 -1
- package/dist/render/shared.js +12 -2
- package/dist/render/shared.js.map +1 -1
- package/dist/templates/registry.d.ts +2 -2
- package/dist/templates/registry.js +18 -0
- package/dist/templates/registry.js.map +1 -1
- package/package.json +2 -1
|
@@ -4,7 +4,8 @@ import { saveManifest } from "../../manifest/save.js";
|
|
|
4
4
|
import { buildGenerationPlan } from "../../planner/build-plan.js";
|
|
5
5
|
import { ADAPTER_TARGETS } from "../../planner/output-map.js";
|
|
6
6
|
import { formatCommandOutput, formatTextBlock, parseCommaList } from "../../utils/format.js";
|
|
7
|
-
|
|
7
|
+
import { runInitFlow } from "../prompts/init-flow.js";
|
|
8
|
+
const SUPPORTED_PROJECT_TYPES = ["dashboard", "web-app", "api-service"];
|
|
8
9
|
function buildTargetFlags(targets) {
|
|
9
10
|
const selectedTargets = parseCommaList(targets);
|
|
10
11
|
if (selectedTargets.length === 0) {
|
|
@@ -31,39 +32,61 @@ export function registerInitCommand(program) {
|
|
|
31
32
|
program
|
|
32
33
|
.command("init")
|
|
33
34
|
.description("Create a canonical ai-workspace manifest from repo inspection and defaults.")
|
|
34
|
-
.option("--yes", "accept recommended defaults")
|
|
35
|
+
.option("--yes", "accept recommended defaults (skip interactive prompts)")
|
|
35
36
|
.option("--dry-run", "preview without writing files")
|
|
36
37
|
.option("--json", "emit machine-readable output")
|
|
37
38
|
.option("--targets <list>", "comma-separated targets such as codex,claude,copilot,mcp")
|
|
38
|
-
.option("--project-type <type>", "project type: dashboard or
|
|
39
|
+
.option("--project-type <type>", "project type: dashboard, web-app, or api-service", "dashboard")
|
|
39
40
|
.option("--framework <value>", "override detected framework")
|
|
40
41
|
.option("--setup-depth <value>", "recommended, semi-custom, or advanced")
|
|
41
42
|
.option("--setup-mode <value>", "base, skills, agents, or full")
|
|
42
43
|
.option("--config-scope <value>", "shared, local, or mixed")
|
|
43
44
|
.option("--prompts <value>", "none, starter, master, or pack")
|
|
44
45
|
.action(async (options) => {
|
|
45
|
-
if (!SUPPORTED_PROJECT_TYPES.includes(options.projectType)) {
|
|
46
|
-
throw new Error("Supported project types are 'dashboard' and 'web-app'.");
|
|
47
|
-
}
|
|
48
|
-
validateTargets(options.targets);
|
|
49
46
|
const cwd = process.cwd();
|
|
50
47
|
const inspection = await inspectRepo(cwd);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
let manifest;
|
|
49
|
+
if (options.yes) {
|
|
50
|
+
// Non-interactive: use CLI flags + defaults
|
|
51
|
+
if (!SUPPORTED_PROJECT_TYPES.includes(options.projectType)) {
|
|
52
|
+
throw new Error("Supported project types are 'dashboard', 'web-app', and 'api-service'.");
|
|
53
|
+
}
|
|
54
|
+
validateTargets(options.targets);
|
|
55
|
+
manifest = buildRecommendedManifest({
|
|
56
|
+
name: inspection.projectName,
|
|
57
|
+
framework: options.framework ?? inspection.framework ?? "react",
|
|
58
|
+
projectType: options.projectType,
|
|
59
|
+
...compactObject({
|
|
60
|
+
targets: buildTargetFlags(options.targets),
|
|
61
|
+
setup: compactObject({
|
|
62
|
+
depth: options.setupDepth,
|
|
63
|
+
mode: options.setupMode,
|
|
64
|
+
scope: options.configScope,
|
|
65
|
+
}),
|
|
66
|
+
generated: compactObject({
|
|
67
|
+
prompts: options.prompts,
|
|
68
|
+
}),
|
|
64
69
|
}),
|
|
65
|
-
})
|
|
66
|
-
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Interactive: run prompt flow
|
|
74
|
+
const answers = await runInitFlow(options.framework ?? inspection.framework);
|
|
75
|
+
manifest = buildRecommendedManifest({
|
|
76
|
+
name: inspection.projectName,
|
|
77
|
+
framework: answers.framework,
|
|
78
|
+
projectType: answers.projectType,
|
|
79
|
+
targets: answers.targets,
|
|
80
|
+
setup: {
|
|
81
|
+
depth: answers.setupDepth,
|
|
82
|
+
mode: answers.output.mode,
|
|
83
|
+
scope: answers.output.scope,
|
|
84
|
+
},
|
|
85
|
+
generated: {
|
|
86
|
+
prompts: answers.output.prompts,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
67
90
|
const plan = buildGenerationPlan(manifest);
|
|
68
91
|
const manifestPath = options.dryRun ? "ai-workspace.json" : await saveManifest(cwd, manifest);
|
|
69
92
|
const text = formatTextBlock([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAStD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAStD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAetD,MAAM,uBAAuB,GAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAEvF,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAoC,KAAQ;IAChE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAC7D,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAA0C,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,OAAO,EAAE,wDAAwD,CAAC;SACzE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,kBAAkB,EAAE,0DAA0D,CAAC;SACtF,MAAM,CAAC,uBAAuB,EAAE,kDAAkD,EAAE,WAAW,CAAC;SAChG,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;SACxE,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;SAC/D,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC;QAEb,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,4CAA4C;YAC5C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAA0B,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;YAC5F,CAAC;YAED,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEjC,QAAQ,GAAG,wBAAwB,CAAC;gBAClC,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,OAAO;gBAC/D,WAAW,EAAE,OAAO,CAAC,WAA0B;gBAC/C,GAAG,aAAa,CAAC;oBACf,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC1C,KAAK,EAAE,aAAa,CAAC;wBACnB,KAAK,EAAE,OAAO,CAAC,UAAU;wBACzB,IAAI,EAAE,OAAO,CAAC,SAAS;wBACvB,KAAK,EAAE,OAAO,CAAC,WAAW;qBAC3B,CAAC;oBACF,SAAS,EAAE,aAAa,CAAC;wBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC;iBACH,CAAC;aACH,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAC1C,CAAC;YAEF,QAAQ,GAAG,wBAAwB,CAAC;gBAClC,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,UAAU;oBACzB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;oBACzB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;iBAC5B;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;iBAChC;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAE9F,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,uBAAuB,UAAU,CAAC,SAAS,IAAI,SAAS,EAAE;YAC1D,oBAAoB,UAAU,CAAC,cAAc,IAAI,SAAS,EAAE;YAC5D,YAAY,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;iBACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YACf,kBAAkB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrC,aAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,uBAAuB,YAAY,GAAG;SACpG,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM;aACzB;YACD,IAAI;YACJ,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;SAChC,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -10,7 +10,7 @@ export function createCli() {
|
|
|
10
10
|
program
|
|
11
11
|
.name("agenv")
|
|
12
12
|
.description("Bootstrap a portable, reviewable AI workspace for web development repositories.")
|
|
13
|
-
.version("
|
|
13
|
+
.version("1.0.0");
|
|
14
14
|
registerInitCommand(program);
|
|
15
15
|
registerGenerateCommand(program);
|
|
16
16
|
registerDiffCommand(program);
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { UiAnswers } from "./sessions/ui.js";
|
|
2
|
+
import type { DataAnswers } from "./sessions/data.js";
|
|
3
|
+
import type { QualityAnswers } from "./sessions/quality.js";
|
|
4
|
+
import type { OutputAnswers } from "./sessions/output.js";
|
|
5
|
+
export type InitFlowAnswers = {
|
|
6
|
+
targets: {
|
|
7
|
+
copilot: boolean;
|
|
8
|
+
claude: boolean;
|
|
9
|
+
codex: boolean;
|
|
10
|
+
mcp: boolean;
|
|
11
|
+
};
|
|
12
|
+
projectType: "dashboard" | "web-app" | "api-service";
|
|
13
|
+
setupDepth: "recommended" | "semi-custom" | "advanced";
|
|
14
|
+
framework: "react" | "nextjs" | "vite-react" | "express" | "fastify" | "hono";
|
|
15
|
+
ui: UiAnswers | undefined;
|
|
16
|
+
data: DataAnswers | undefined;
|
|
17
|
+
authModel: "rbac" | "none" | "custom";
|
|
18
|
+
quality: QualityAnswers;
|
|
19
|
+
mcpPresets: string[];
|
|
20
|
+
output: OutputAnswers;
|
|
21
|
+
};
|
|
22
|
+
export declare function runInitFlow(detectedFramework?: string): Promise<InitFlowAnswers>;
|
|
@@ -1,23 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { runAuthPrompt } from "./sessions/auth.js";
|
|
2
|
+
import { runDataPrompt } from "./sessions/data.js";
|
|
3
|
+
import { runOutputPrompt } from "./sessions/output.js";
|
|
4
|
+
import { runProjectTypePrompt } from "./sessions/project-type.js";
|
|
5
|
+
import { runQualityPrompt } from "./sessions/quality.js";
|
|
6
|
+
import { runSetupDepthPrompt } from "./sessions/setup-depth.js";
|
|
7
|
+
import { runStackPrompt } from "./sessions/stack.js";
|
|
8
|
+
import { runToolsPrompt } from "./sessions/tools.js";
|
|
9
|
+
import { runToolingPrompt } from "./sessions/tooling.js";
|
|
10
|
+
import { runUiPrompt } from "./sessions/ui.js";
|
|
11
|
+
export async function runInitFlow(detectedFramework) {
|
|
12
|
+
console.log("\n🔧 agenv init — interactive setup\n");
|
|
13
|
+
const targets = await runToolsPrompt();
|
|
14
|
+
const projectType = await runProjectTypePrompt();
|
|
15
|
+
const setupDepth = await runSetupDepthPrompt();
|
|
16
|
+
const isApi = projectType === "api-service";
|
|
17
|
+
if (setupDepth === "recommended") {
|
|
18
|
+
return {
|
|
19
|
+
targets,
|
|
20
|
+
projectType,
|
|
21
|
+
setupDepth,
|
|
22
|
+
framework: isApi
|
|
23
|
+
? "express"
|
|
24
|
+
: (detectedFramework ?? "react"),
|
|
25
|
+
ui: isApi ? undefined : { styling: "tailwind", components: "shadcn-ui", charts: "recharts", forms: "react-hook-form-zod", tables: "tanstack-table" },
|
|
26
|
+
data: isApi ? undefined : { dataFetching: "tanstack-query", state: "local-first" },
|
|
27
|
+
authModel: isApi ? "custom" : (projectType === "dashboard" ? "rbac" : "custom"),
|
|
28
|
+
quality: { testing: isApi ? ["vitest"] : ["vitest", "rtl"], accessibility: !isApi, responsive: !isApi },
|
|
29
|
+
mcpPresets: [],
|
|
30
|
+
output: { mode: "full", scope: "mixed", prompts: "master" },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const framework = await runStackPrompt(detectedFramework, projectType);
|
|
34
|
+
// UI and data prompts only apply to frontend project types
|
|
35
|
+
const ui = isApi ? undefined : await runUiPrompt();
|
|
36
|
+
const data = isApi ? undefined : await runDataPrompt();
|
|
37
|
+
const authModel = await runAuthPrompt();
|
|
38
|
+
const quality = await runQualityPrompt();
|
|
39
|
+
const mcpPresets = targets.mcp ? await runToolingPrompt() : [];
|
|
40
|
+
let output = { mode: "full", scope: "mixed", prompts: "master" };
|
|
41
|
+
if (setupDepth === "advanced") {
|
|
42
|
+
output = await runOutputPrompt();
|
|
43
|
+
}
|
|
44
|
+
return { targets, projectType, setupDepth, framework, ui, data, authModel, quality, mcpPresets, output };
|
|
45
|
+
}
|
|
23
46
|
//# sourceMappingURL=init-flow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-flow.js","sourceRoot":"","sources":["../../../src/cli/prompts/init-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init-flow.js","sourceRoot":"","sources":["../../../src/cli/prompts/init-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const authSession = {
|
|
2
3
|
id: "auth",
|
|
3
4
|
title: "Auth and RBAC",
|
|
4
5
|
prompt: "Capture role-based access control and protected UI requirements.",
|
|
5
6
|
};
|
|
7
|
+
export async function runAuthPrompt() {
|
|
8
|
+
return select({
|
|
9
|
+
message: "Auth / access-control model?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Role-Based Access Control (RBAC)", value: "rbac" },
|
|
12
|
+
{ name: "None", value: "none" },
|
|
13
|
+
{ name: "Custom", value: "custom" },
|
|
14
|
+
],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
6
17
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/auth.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,kEAAkE;CAC3E,CAAC"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,kEAAkE;CAC3E,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,MAAM,CAAC;QACZ,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,MAAe,EAAE;YACpE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAe,EAAE;YACxC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const dataSession = {
|
|
2
3
|
id: "data",
|
|
3
4
|
title: "Data Patterns",
|
|
4
5
|
prompt: "Capture data fetching, caching, typing, and API client patterns.",
|
|
5
6
|
};
|
|
7
|
+
export async function runDataPrompt() {
|
|
8
|
+
const dataFetching = await select({
|
|
9
|
+
message: "Data fetching strategy?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "TanStack Query", value: "tanstack-query" },
|
|
12
|
+
{ name: "Custom", value: "custom" },
|
|
13
|
+
],
|
|
14
|
+
});
|
|
15
|
+
const state = await select({
|
|
16
|
+
message: "State management approach?",
|
|
17
|
+
choices: [
|
|
18
|
+
{ name: "Local-first (React state + context)", value: "local-first" },
|
|
19
|
+
{ name: "Zustand", value: "zustand" },
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
return { dataFetching, state };
|
|
23
|
+
}
|
|
6
24
|
//# sourceMappingURL=data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/data.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,kEAAkE;CAC3E,CAAC"}
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,kEAAkE;CAC3E,CAAC;AAOF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;QAChC,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAyB,EAAE;YAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;QACzB,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,qCAAqC,EAAE,KAAK,EAAE,aAAsB,EAAE;YAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;SAC/C;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -3,3 +3,9 @@ export declare const outputSession: {
|
|
|
3
3
|
title: string;
|
|
4
4
|
prompt: string;
|
|
5
5
|
};
|
|
6
|
+
export type OutputAnswers = {
|
|
7
|
+
mode: "base" | "skills" | "agents" | "full";
|
|
8
|
+
scope: "shared" | "local" | "mixed";
|
|
9
|
+
prompts: "none" | "starter" | "master" | "pack";
|
|
10
|
+
};
|
|
11
|
+
export declare function runOutputPrompt(): Promise<OutputAnswers>;
|
|
@@ -1,6 +1,39 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const outputSession = {
|
|
2
3
|
id: "output",
|
|
3
4
|
title: "Output Strategy",
|
|
4
5
|
prompt: "Choose setup mode, prompt generation behavior, and shared vs local scope.",
|
|
5
6
|
};
|
|
7
|
+
export async function runOutputPrompt() {
|
|
8
|
+
const mode = await select({
|
|
9
|
+
message: "Setup mode — which files should be generated?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Base — instructions only", value: "base" },
|
|
12
|
+
{ name: "Skills — instructions + skill files", value: "skills" },
|
|
13
|
+
{ name: "Agents — instructions + agent definitions", value: "agents" },
|
|
14
|
+
{ name: "Full — everything", value: "full" },
|
|
15
|
+
],
|
|
16
|
+
default: "full",
|
|
17
|
+
});
|
|
18
|
+
const scope = await select({
|
|
19
|
+
message: "Config scope — shared repo or local machine?",
|
|
20
|
+
choices: [
|
|
21
|
+
{ name: "Shared — committed to the repo", value: "shared" },
|
|
22
|
+
{ name: "Local — gitignored, per-developer", value: "local" },
|
|
23
|
+
{ name: "Mixed — shared base with local overrides", value: "mixed" },
|
|
24
|
+
],
|
|
25
|
+
default: "mixed",
|
|
26
|
+
});
|
|
27
|
+
const prompts = await select({
|
|
28
|
+
message: "Prompt generation level?",
|
|
29
|
+
choices: [
|
|
30
|
+
{ name: "None — no prompt files", value: "none" },
|
|
31
|
+
{ name: "Starter — basic prompts", value: "starter" },
|
|
32
|
+
{ name: "Master — comprehensive prompts", value: "master" },
|
|
33
|
+
{ name: "Pack — full prompt pack", value: "pack" },
|
|
34
|
+
],
|
|
35
|
+
default: "master",
|
|
36
|
+
});
|
|
37
|
+
return { mode, scope, prompts };
|
|
38
|
+
}
|
|
6
39
|
//# sourceMappingURL=output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/output.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,2EAA2E;CACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,2EAA2E;CACpF,CAAC;AAQF,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QACxB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAe,EAAE;YAC5D,EAAE,IAAI,EAAE,qCAAqC,EAAE,KAAK,EAAE,QAAiB,EAAE;YACzE,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,QAAiB,EAAE;YAC/E,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAe,EAAE;SACtD;QACD,OAAO,EAAE,MAAe;KACzB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;QACzB,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,gCAAgC,EAAE,KAAK,EAAE,QAAiB,EAAE;YACpE,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,OAAgB,EAAE;YACtE,EAAE,IAAI,EAAE,0CAA0C,EAAE,KAAK,EAAE,OAAgB,EAAE;SAC9E;QACD,OAAO,EAAE,OAAgB;KAC1B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC3B,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAe,EAAE;YAC1D,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,SAAkB,EAAE;YAC9D,EAAE,IAAI,EAAE,gCAAgC,EAAE,KAAK,EAAE,QAAiB,EAAE;YACpE,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAe,EAAE;SAC5D;QACD,OAAO,EAAE,QAAiB;KAC3B,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const projectTypeSession = {
|
|
2
3
|
id: "project-type",
|
|
3
4
|
title: "Project Type",
|
|
4
|
-
prompt: "Confirm the project type. Current support includes dashboard
|
|
5
|
+
prompt: "Confirm the project type. Current support includes dashboard, web-app, and api-service repositories.",
|
|
5
6
|
};
|
|
7
|
+
export async function runProjectTypePrompt() {
|
|
8
|
+
return select({
|
|
9
|
+
message: "What type of project is this?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Dashboard", value: "dashboard" },
|
|
12
|
+
{ name: "Web App", value: "web-app" },
|
|
13
|
+
{ name: "API Service", value: "api-service" },
|
|
14
|
+
],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
6
17
|
//# sourceMappingURL=project-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-type.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/project-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"project-type.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/project-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,sGAAsG;CAC/G,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,MAAM,CAAC;QACZ,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAoB,EAAE;YAClD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;YAC9C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAsB,EAAE;SACvD;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,3 +3,9 @@ export declare const qualitySession: {
|
|
|
3
3
|
title: string;
|
|
4
4
|
prompt: string;
|
|
5
5
|
};
|
|
6
|
+
export type QualityAnswers = {
|
|
7
|
+
testing: ("vitest" | "rtl" | "playwright")[];
|
|
8
|
+
accessibility: boolean;
|
|
9
|
+
responsive: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function runQualityPrompt(): Promise<QualityAnswers>;
|
|
@@ -1,6 +1,26 @@
|
|
|
1
|
+
import { checkbox, confirm } from "@inquirer/prompts";
|
|
1
2
|
export const qualitySession = {
|
|
2
3
|
id: "quality",
|
|
3
4
|
title: "Quality Rules",
|
|
4
5
|
prompt: "Capture testing, accessibility, responsive behavior, and review rules.",
|
|
5
6
|
};
|
|
7
|
+
export async function runQualityPrompt() {
|
|
8
|
+
const testing = await checkbox({
|
|
9
|
+
message: "Which testing tools should be enforced?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Vitest", value: "vitest", checked: true },
|
|
12
|
+
{ name: "React Testing Library", value: "rtl", checked: true },
|
|
13
|
+
{ name: "Playwright", value: "playwright", checked: false },
|
|
14
|
+
],
|
|
15
|
+
});
|
|
16
|
+
const accessibility = await confirm({
|
|
17
|
+
message: "Enforce accessibility rules?",
|
|
18
|
+
default: true,
|
|
19
|
+
});
|
|
20
|
+
const responsive = await confirm({
|
|
21
|
+
message: "Enforce responsive design rules?",
|
|
22
|
+
default: true,
|
|
23
|
+
});
|
|
24
|
+
return { testing: testing.length > 0 ? testing : ["vitest"], accessibility, responsive };
|
|
25
|
+
}
|
|
6
26
|
//# sourceMappingURL=quality.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/quality.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,wEAAwE;CACjF,CAAC"}
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/quality.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,wEAAwE;CACjF,CAAC;AAQF,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;QAC7B,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3D,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAqB,EAAE,OAAO,EAAE,KAAK,EAAE;SACrE;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;QAClC,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;QAC/B,OAAO,EAAE,kCAAkC;QAC3C,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAC3F,CAAC"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const setupDepthSession = {
|
|
2
3
|
id: "setup-depth",
|
|
3
4
|
title: "Setup Depth",
|
|
4
5
|
prompt: "Choose recommended, semi-custom, or advanced setup depth.",
|
|
5
6
|
};
|
|
7
|
+
export async function runSetupDepthPrompt() {
|
|
8
|
+
return select({
|
|
9
|
+
message: "How much control do you want over the configuration?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Recommended — sensible defaults, minimal input", value: "recommended" },
|
|
12
|
+
{ name: "Semi-custom — adjust key settings", value: "semi-custom" },
|
|
13
|
+
{ name: "Advanced — full control over every option", value: "advanced" },
|
|
14
|
+
],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
6
17
|
//# sourceMappingURL=setup-depth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-depth.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/setup-depth.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,2DAA2D;CACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup-depth.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/setup-depth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,2DAA2D;CACpE,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,MAAM,CAAC;QACZ,OAAO,EAAE,sDAAsD;QAC/D,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,gDAAgD,EAAE,KAAK,EAAE,aAAsB,EAAE;YACzF,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,aAAsB,EAAE;YAC5E,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,UAAmB,EAAE;SAClF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const stackSession = {
|
|
2
3
|
id: "stack",
|
|
3
4
|
title: "Stack Profile",
|
|
4
5
|
prompt: "Capture the framework and frontend stack choices for the repository.",
|
|
5
6
|
};
|
|
7
|
+
const FRONTEND_FRAMEWORKS = [
|
|
8
|
+
{ name: "React", value: "react" },
|
|
9
|
+
{ name: "Next.js", value: "nextjs" },
|
|
10
|
+
{ name: "Vite + React", value: "vite-react" },
|
|
11
|
+
];
|
|
12
|
+
const BACKEND_FRAMEWORKS = [
|
|
13
|
+
{ name: "Express", value: "express" },
|
|
14
|
+
{ name: "Fastify", value: "fastify" },
|
|
15
|
+
{ name: "Hono", value: "hono" },
|
|
16
|
+
];
|
|
17
|
+
export async function runStackPrompt(detected, projectType) {
|
|
18
|
+
const isApi = projectType === "api-service";
|
|
19
|
+
const choices = isApi ? BACKEND_FRAMEWORKS : FRONTEND_FRAMEWORKS;
|
|
20
|
+
const defaultValue = isApi
|
|
21
|
+
? "express"
|
|
22
|
+
: (detected ?? "react");
|
|
23
|
+
return select({
|
|
24
|
+
message: detected
|
|
25
|
+
? `Detected framework: ${detected}. Confirm or change:`
|
|
26
|
+
: `Which framework does this project use?`,
|
|
27
|
+
choices,
|
|
28
|
+
default: defaultValue,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
6
31
|
//# sourceMappingURL=stack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/stack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,sEAAsE;CAC/E,CAAC"}
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,sEAAsE;CAC/E,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAiB,EAAE;IAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAqB,EAAE;CACvD,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;IAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;IAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAe,EAAE;CACzC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAiB,EACjB,WAAoB;IAEpB,MAAM,KAAK,GAAG,WAAW,KAAK,aAAa,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK;QACxB,CAAC,CAAE,SAAmB;QACtB,CAAC,CAAE,CAAC,QAAQ,IAAI,OAAO,CAAuC,CAAC;IAEjE,OAAO,MAAM,CAAC;QACZ,OAAO,EAAE,QAAQ;YACf,CAAC,CAAC,uBAAuB,QAAQ,sBAAsB;YACvD,CAAC,CAAC,wCAAwC;QAC5C,OAAO;QACP,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
import { checkbox } from "@inquirer/prompts";
|
|
1
2
|
export const toolingSession = {
|
|
2
3
|
id: "tooling",
|
|
3
4
|
title: "Tooling and MCP",
|
|
4
5
|
prompt: "Capture MCP presets, docs sources, shell rules, and repo tooling needs.",
|
|
5
6
|
};
|
|
7
|
+
export async function runToolingPrompt() {
|
|
8
|
+
return checkbox({
|
|
9
|
+
message: "Include any MCP presets?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Filesystem", value: "filesystem" },
|
|
12
|
+
{ name: "GitHub", value: "github" },
|
|
13
|
+
{ name: "Postgres", value: "postgres" },
|
|
14
|
+
{ name: "None", value: "__none__" },
|
|
15
|
+
],
|
|
16
|
+
}).then((selected) => selected.filter((s) => s !== "__none__"));
|
|
17
|
+
}
|
|
6
18
|
//# sourceMappingURL=tooling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooling.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/tooling.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,yEAAyE;CAClF,CAAC"}
|
|
1
|
+
{"version":3,"file":"tooling.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/tooling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,yEAAyE;CAClF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACnC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACvC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;SACpC;KACF,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
|
+
import { checkbox } from "@inquirer/prompts";
|
|
1
2
|
export const toolsSession = {
|
|
2
3
|
id: "tools",
|
|
3
4
|
title: "Tool Selection",
|
|
4
5
|
prompt: "Choose which AI tools should be configured for this repository.",
|
|
5
6
|
};
|
|
7
|
+
export async function runToolsPrompt() {
|
|
8
|
+
const selected = await checkbox({
|
|
9
|
+
message: "Which AI tools should be configured?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "GitHub Copilot", value: "copilot", checked: true },
|
|
12
|
+
{ name: "Claude Code", value: "claude", checked: true },
|
|
13
|
+
{ name: "OpenAI Codex", value: "codex", checked: true },
|
|
14
|
+
{ name: "MCP Servers", value: "mcp", checked: false },
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
copilot: selected.includes("copilot"),
|
|
19
|
+
claude: selected.includes("claude"),
|
|
20
|
+
codex: selected.includes("codex"),
|
|
21
|
+
mcp: selected.includes("mcp"),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
6
24
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/tools.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,iEAAiE;CAC1E,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,iEAAiE;CAC1E,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc;IAMlC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC;QAC9B,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YACpE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;YAChE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAc,EAAE,OAAO,EAAE,KAAK,EAAE;SAC/D;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QACjC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -3,3 +3,11 @@ export declare const uiSession: {
|
|
|
3
3
|
title: string;
|
|
4
4
|
prompt: string;
|
|
5
5
|
};
|
|
6
|
+
export type UiAnswers = {
|
|
7
|
+
styling: "tailwind" | "custom";
|
|
8
|
+
components: "shadcn-ui" | "custom-design-system";
|
|
9
|
+
charts: "recharts" | "echarts" | "nivo" | "custom";
|
|
10
|
+
forms: "react-hook-form-zod" | "custom";
|
|
11
|
+
tables: "tanstack-table" | "ag-grid" | "custom";
|
|
12
|
+
};
|
|
13
|
+
export declare function runUiPrompt(): Promise<UiAnswers>;
|
|
@@ -1,6 +1,48 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
1
2
|
export const uiSession = {
|
|
2
3
|
id: "ui",
|
|
3
4
|
title: "UI Conventions",
|
|
4
5
|
prompt: "Capture component, layout, chart, and form conventions.",
|
|
5
6
|
};
|
|
7
|
+
export async function runUiPrompt() {
|
|
8
|
+
const styling = await select({
|
|
9
|
+
message: "CSS / styling approach?",
|
|
10
|
+
choices: [
|
|
11
|
+
{ name: "Tailwind CSS", value: "tailwind" },
|
|
12
|
+
{ name: "Custom", value: "custom" },
|
|
13
|
+
],
|
|
14
|
+
});
|
|
15
|
+
const components = await select({
|
|
16
|
+
message: "Component library?",
|
|
17
|
+
choices: [
|
|
18
|
+
{ name: "shadcn/ui", value: "shadcn-ui" },
|
|
19
|
+
{ name: "Custom design system", value: "custom-design-system" },
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
const charts = await select({
|
|
23
|
+
message: "Charts library?",
|
|
24
|
+
choices: [
|
|
25
|
+
{ name: "Recharts", value: "recharts" },
|
|
26
|
+
{ name: "ECharts", value: "echarts" },
|
|
27
|
+
{ name: "Nivo", value: "nivo" },
|
|
28
|
+
{ name: "Custom", value: "custom" },
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
const forms = await select({
|
|
32
|
+
message: "Forms library?",
|
|
33
|
+
choices: [
|
|
34
|
+
{ name: "React Hook Form + Zod", value: "react-hook-form-zod" },
|
|
35
|
+
{ name: "Custom", value: "custom" },
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
const tables = await select({
|
|
39
|
+
message: "Tables library?",
|
|
40
|
+
choices: [
|
|
41
|
+
{ name: "TanStack Table", value: "tanstack-table" },
|
|
42
|
+
{ name: "AG Grid", value: "ag-grid" },
|
|
43
|
+
{ name: "Custom", value: "custom" },
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
return { styling, components, charts, forms, tables };
|
|
47
|
+
}
|
|
6
48
|
//# sourceMappingURL=ui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/ui.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,yDAAyD;CAClE,CAAC"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/cli/prompts/sessions/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,yDAAyD;CAClE,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC3B,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAmB,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;QAC9B,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAoB,EAAE;YAClD,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAA+B,EAAE;SACzE;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAmB,EAAE;YAChD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAe,EAAE;YACxC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;QACzB,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,qBAA8B,EAAE;YACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAyB,EAAE;YAC5D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;YAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE;SAC7C;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -8,6 +8,14 @@ function buildCodingStyle(projectType) {
|
|
|
8
8
|
"Prefer reusable page sections and shared UI patterns over one-off code.",
|
|
9
9
|
];
|
|
10
10
|
}
|
|
11
|
+
if (projectType === "api-service") {
|
|
12
|
+
return [
|
|
13
|
+
"Use TypeScript strict mode.",
|
|
14
|
+
"Validate all inputs at the boundary with Zod or equivalent.",
|
|
15
|
+
"Return consistent error shapes with proper HTTP status codes.",
|
|
16
|
+
"Prefer thin controllers that delegate to service functions.",
|
|
17
|
+
];
|
|
18
|
+
}
|
|
11
19
|
return [
|
|
12
20
|
"Use TypeScript strict mode.",
|
|
13
21
|
"Handle loading, empty, error, and success states explicitly.",
|
|
@@ -16,6 +24,28 @@ function buildCodingStyle(projectType) {
|
|
|
16
24
|
}
|
|
17
25
|
export function buildRecommendedManifest(options) {
|
|
18
26
|
const projectType = options.projectType ?? "dashboard";
|
|
27
|
+
const projectTypeBlocks = projectType === "api-service"
|
|
28
|
+
? {
|
|
29
|
+
apiService: {
|
|
30
|
+
apiStyle: "rest",
|
|
31
|
+
validation: "zod",
|
|
32
|
+
orm: "prisma",
|
|
33
|
+
testing: ["vitest", "supertest"],
|
|
34
|
+
auth: "jwt",
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
: {
|
|
38
|
+
dashboard: {
|
|
39
|
+
styling: "tailwind",
|
|
40
|
+
components: "shadcn-ui",
|
|
41
|
+
dataFetching: "tanstack-query",
|
|
42
|
+
tables: "tanstack-table",
|
|
43
|
+
charts: "recharts",
|
|
44
|
+
forms: "react-hook-form-zod",
|
|
45
|
+
testing: ["vitest", "rtl"],
|
|
46
|
+
state: "local-first",
|
|
47
|
+
},
|
|
48
|
+
};
|
|
19
49
|
return manifestSchema.parse({
|
|
20
50
|
schemaVersion: DEFAULT_SCHEMA_VERSION,
|
|
21
51
|
project: {
|
|
@@ -37,27 +67,23 @@ export function buildRecommendedManifest(options) {
|
|
|
37
67
|
mcp: false,
|
|
38
68
|
...options.targets,
|
|
39
69
|
},
|
|
40
|
-
|
|
41
|
-
styling: "tailwind",
|
|
42
|
-
components: "shadcn-ui",
|
|
43
|
-
dataFetching: "tanstack-query",
|
|
44
|
-
tables: "tanstack-table",
|
|
45
|
-
charts: "recharts",
|
|
46
|
-
forms: "react-hook-form-zod",
|
|
47
|
-
testing: ["vitest", "rtl"],
|
|
48
|
-
state: "local-first",
|
|
49
|
-
},
|
|
70
|
+
...projectTypeBlocks,
|
|
50
71
|
conventions: {
|
|
51
|
-
accessibility:
|
|
52
|
-
responsive:
|
|
72
|
+
accessibility: projectType !== "api-service",
|
|
73
|
+
responsive: projectType !== "api-service",
|
|
53
74
|
authModel: projectType === "dashboard" ? "rbac" : "custom",
|
|
54
75
|
},
|
|
55
76
|
instructions: {
|
|
56
77
|
codingStyle: buildCodingStyle(projectType),
|
|
57
|
-
reviewRules:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
78
|
+
reviewRules: projectType === "api-service"
|
|
79
|
+
? [
|
|
80
|
+
"Validate all request inputs at the handler level.",
|
|
81
|
+
"Do not expose internal error details in API responses.",
|
|
82
|
+
]
|
|
83
|
+
: [
|
|
84
|
+
"Prefer existing design-system components first.",
|
|
85
|
+
"Do not introduce new UI libraries without approval.",
|
|
86
|
+
],
|
|
61
87
|
},
|
|
62
88
|
generated: {
|
|
63
89
|
prompts: "master",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/manifest/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAW1C,SAAS,gBAAgB,CAAC,WAAwB;IAChD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,6BAA6B;YAC7B,8DAA8D;YAC9D,yEAAyE;SAC1E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,6BAA6B;QAC7B,8DAA8D;QAC9D,4DAA4D;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAmC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC;IAEvD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,IAAI;SACf;QACD,KAAK,EAAE;YACL,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,GAAG,OAAO,CAAC,KAAK;SACjB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,KAAK;YACV,GAAG,OAAO,CAAC,OAAO;SACnB;QACD,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/manifest/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAW1C,SAAS,gBAAgB,CAAC,WAAwB;IAChD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,6BAA6B;YAC7B,8DAA8D;YAC9D,yEAAyE;SAC1E,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QAClC,OAAO;YACL,6BAA6B;YAC7B,6DAA6D;YAC7D,+DAA+D;YAC/D,6DAA6D;SAC9D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,6BAA6B;QAC7B,8DAA8D;QAC9D,4DAA4D;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAmC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC;IAEvD,MAAM,iBAAiB,GACrB,WAAW,KAAK,aAAa;QAC3B,CAAC,CAAC;YACE,UAAU,EAAE;gBACV,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,KAAK;gBACjB,GAAG,EAAE,QAAQ;gBACb,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;gBAChC,IAAI,EAAE,KAAK;aACZ;SACF;QACH,CAAC,CAAC;YACE,SAAS,EAAE;gBACT,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,gBAAgB;gBAC9B,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAC1B,KAAK,EAAE,aAAa;aACrB;SACF,CAAC;IAER,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,IAAI;SACf;QACD,KAAK,EAAE;YACL,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,GAAG,OAAO,CAAC,KAAK;SACjB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,KAAK;YACV,GAAG,OAAO,CAAC,OAAO;SACnB;QACD,GAAG,iBAAiB;QACpB,WAAW,EAAE;YACX,aAAa,EAAE,WAAW,KAAK,aAAa;YAC5C,UAAU,EAAE,WAAW,KAAK,aAAa;YACzC,SAAS,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SAC3D;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;YAC1C,WAAW,EACT,WAAW,KAAK,aAAa;gBAC3B,CAAC,CAAC;oBACE,mDAAmD;oBACnD,wDAAwD;iBACzD;gBACH,CAAC,CAAC;oBACE,iDAAiD;oBACjD,qDAAqD;iBACtD;SACR;QACD,SAAS,EAAE;YACT,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,EAAE;YACd,GAAG,OAAO,CAAC,SAAS;SACrB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,10 +3,14 @@ export declare const frameworkSchema: z.ZodEnum<{
|
|
|
3
3
|
react: "react";
|
|
4
4
|
nextjs: "nextjs";
|
|
5
5
|
"vite-react": "vite-react";
|
|
6
|
+
express: "express";
|
|
7
|
+
fastify: "fastify";
|
|
8
|
+
hono: "hono";
|
|
6
9
|
}>;
|
|
7
10
|
export declare const projectTypeSchema: z.ZodEnum<{
|
|
8
11
|
dashboard: "dashboard";
|
|
9
12
|
"web-app": "web-app";
|
|
13
|
+
"api-service": "api-service";
|
|
10
14
|
}>;
|
|
11
15
|
export declare const setupDepthSchema: z.ZodEnum<{
|
|
12
16
|
recommended: "recommended";
|
|
@@ -37,11 +41,15 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
37
41
|
type: z.ZodEnum<{
|
|
38
42
|
dashboard: "dashboard";
|
|
39
43
|
"web-app": "web-app";
|
|
44
|
+
"api-service": "api-service";
|
|
40
45
|
}>;
|
|
41
46
|
framework: z.ZodEnum<{
|
|
42
47
|
react: "react";
|
|
43
48
|
nextjs: "nextjs";
|
|
44
49
|
"vite-react": "vite-react";
|
|
50
|
+
express: "express";
|
|
51
|
+
fastify: "fastify";
|
|
52
|
+
hono: "hono";
|
|
45
53
|
}>;
|
|
46
54
|
language: z.ZodLiteral<"ts">;
|
|
47
55
|
}, z.core.$strict>;
|
|
@@ -69,7 +77,7 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
69
77
|
codex: z.ZodBoolean;
|
|
70
78
|
mcp: z.ZodBoolean;
|
|
71
79
|
}, z.core.$strict>;
|
|
72
|
-
dashboard: z.ZodObject<{
|
|
80
|
+
dashboard: z.ZodOptional<z.ZodObject<{
|
|
73
81
|
styling: z.ZodEnum<{
|
|
74
82
|
tailwind: "tailwind";
|
|
75
83
|
custom: "custom";
|
|
@@ -106,7 +114,35 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
106
114
|
"local-first": "local-first";
|
|
107
115
|
zustand: "zustand";
|
|
108
116
|
}>;
|
|
109
|
-
}, z.core.$strict
|
|
117
|
+
}, z.core.$strict>>;
|
|
118
|
+
apiService: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
apiStyle: z.ZodEnum<{
|
|
120
|
+
rest: "rest";
|
|
121
|
+
graphql: "graphql";
|
|
122
|
+
trpc: "trpc";
|
|
123
|
+
}>;
|
|
124
|
+
validation: z.ZodEnum<{
|
|
125
|
+
custom: "custom";
|
|
126
|
+
zod: "zod";
|
|
127
|
+
typebox: "typebox";
|
|
128
|
+
}>;
|
|
129
|
+
orm: z.ZodEnum<{
|
|
130
|
+
none: "none";
|
|
131
|
+
prisma: "prisma";
|
|
132
|
+
drizzle: "drizzle";
|
|
133
|
+
}>;
|
|
134
|
+
testing: z.ZodArray<z.ZodEnum<{
|
|
135
|
+
vitest: "vitest";
|
|
136
|
+
playwright: "playwright";
|
|
137
|
+
supertest: "supertest";
|
|
138
|
+
}>>;
|
|
139
|
+
auth: z.ZodEnum<{
|
|
140
|
+
none: "none";
|
|
141
|
+
custom: "custom";
|
|
142
|
+
jwt: "jwt";
|
|
143
|
+
session: "session";
|
|
144
|
+
}>;
|
|
145
|
+
}, z.core.$strict>>;
|
|
110
146
|
conventions: z.ZodObject<{
|
|
111
147
|
routing: z.ZodOptional<z.ZodString>;
|
|
112
148
|
folderStructure: z.ZodOptional<z.ZodString>;
|
package/dist/manifest/schema.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export const frameworkSchema = z.enum(["react", "nextjs", "vite-react"]);
|
|
3
|
-
export const projectTypeSchema = z.enum(["dashboard", "web-app"]);
|
|
2
|
+
export const frameworkSchema = z.enum(["react", "nextjs", "vite-react", "express", "fastify", "hono"]);
|
|
3
|
+
export const projectTypeSchema = z.enum(["dashboard", "web-app", "api-service"]);
|
|
4
4
|
export const setupDepthSchema = z.enum(["recommended", "semi-custom", "advanced"]);
|
|
5
5
|
export const setupModeSchema = z.enum(["base", "skills", "agents", "full"]);
|
|
6
6
|
export const setupScopeSchema = z.enum(["shared", "local", "mixed"]);
|
|
@@ -42,7 +42,18 @@ export const manifestSchema = z
|
|
|
42
42
|
testing: z.array(z.enum(["vitest", "rtl", "playwright"])).min(1),
|
|
43
43
|
state: z.enum(["local-first", "zustand"]),
|
|
44
44
|
})
|
|
45
|
-
.strict()
|
|
45
|
+
.strict()
|
|
46
|
+
.optional(),
|
|
47
|
+
apiService: z
|
|
48
|
+
.object({
|
|
49
|
+
apiStyle: z.enum(["rest", "graphql", "trpc"]),
|
|
50
|
+
validation: z.enum(["zod", "typebox", "custom"]),
|
|
51
|
+
orm: z.enum(["prisma", "drizzle", "none"]),
|
|
52
|
+
testing: z.array(z.enum(["vitest", "supertest", "playwright"])).min(1),
|
|
53
|
+
auth: z.enum(["jwt", "session", "none", "custom"]),
|
|
54
|
+
})
|
|
55
|
+
.strict()
|
|
56
|
+
.optional(),
|
|
46
57
|
conventions: z
|
|
47
58
|
.object({
|
|
48
59
|
routing: z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACvG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;IACX,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,gBAAgB;KACxB,CAAC;SACD,MAAM,EAAE;IACX,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;QAClB,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;KACjB,CAAC;SACD,MAAM,EAAE;IACX,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QACzD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KAC1C,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;KACnD,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;QAC1B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;QACvB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;KACzD,CAAC;SACD,MAAM,EAAE;IACX,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACxC,CAAC;SACD,MAAM,EAAE;IACX,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC;SACD,MAAM,EAAE;IACX,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAAE;KACnC,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;QACpC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC;KACD,MAAM,EAAE,CAAC"}
|
package/dist/render/shared.js
CHANGED
|
@@ -244,12 +244,19 @@ const PROMPT_TEMPLATE_DEFINITIONS = {
|
|
|
244
244
|
},
|
|
245
245
|
};
|
|
246
246
|
function describeProjectType(manifest) {
|
|
247
|
-
|
|
247
|
+
if (manifest.project.type === "web-app")
|
|
248
|
+
return "web app";
|
|
249
|
+
if (manifest.project.type === "api-service")
|
|
250
|
+
return "API service";
|
|
251
|
+
return "dashboard";
|
|
248
252
|
}
|
|
249
253
|
function describeProjectFocus(manifest) {
|
|
250
254
|
if (manifest.project.type === "web-app") {
|
|
251
255
|
return "Favor cohesive user journeys, responsive layouts, and reusable UI patterns that scale beyond a single page.";
|
|
252
256
|
}
|
|
257
|
+
if (manifest.project.type === "api-service") {
|
|
258
|
+
return "Favor clean request/response contracts, input validation at the boundary, consistent error shapes, and thin controllers delegating to well-tested service functions.";
|
|
259
|
+
}
|
|
253
260
|
return "Favor operational clarity, dense-but-readable interfaces, and explicit handling for data-heavy states and permissions.";
|
|
254
261
|
}
|
|
255
262
|
function formatBullets(items) {
|
|
@@ -270,9 +277,12 @@ function buildProjectContext(manifest) {
|
|
|
270
277
|
if (manifest.conventions.authModel) {
|
|
271
278
|
context.push(`Auth model: ${manifest.conventions.authModel}`);
|
|
272
279
|
}
|
|
273
|
-
if (manifest.project.type === "dashboard") {
|
|
280
|
+
if (manifest.project.type === "dashboard" && manifest.dashboard) {
|
|
274
281
|
context.push(`Styling: ${manifest.dashboard.styling}`, `Components: ${manifest.dashboard.components}`, `Data fetching: ${manifest.dashboard.dataFetching}`, `Tables: ${manifest.dashboard.tables}`, `Charts: ${manifest.dashboard.charts}`, `Forms: ${manifest.dashboard.forms}`, `State: ${manifest.dashboard.state}`, `Testing: ${manifest.dashboard.testing.join(", ")}`);
|
|
275
282
|
}
|
|
283
|
+
if (manifest.project.type === "api-service" && manifest.apiService) {
|
|
284
|
+
context.push(`API style: ${manifest.apiService.apiStyle}`, `Validation: ${manifest.apiService.validation}`, `ORM: ${manifest.apiService.orm}`, `Auth: ${manifest.apiService.auth}`, `Testing: ${manifest.apiService.testing.join(", ")}`);
|
|
285
|
+
}
|
|
276
286
|
return context;
|
|
277
287
|
}
|
|
278
288
|
function renderPromptBlock(manifest, goal, focusAreas, deliverables) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/render/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/render/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export type TemplateDefinition = {
|
|
2
2
|
id: string;
|
|
3
3
|
name: string;
|
|
4
|
-
projectType: "dashboard" | "web-app";
|
|
5
|
-
framework: "react" | "nextjs" | "vite-react";
|
|
4
|
+
projectType: "dashboard" | "web-app" | "api-service";
|
|
5
|
+
framework: "react" | "nextjs" | "vite-react" | "express" | "fastify" | "hono";
|
|
6
6
|
setupDepth: "recommended" | "semi-custom";
|
|
7
7
|
defaultTargets: string[];
|
|
8
8
|
description: string;
|
|
@@ -44,5 +44,23 @@ export const TEMPLATE_REGISTRY = [
|
|
|
44
44
|
defaultTargets: ["codex", "copilot", "claude", "mcp"],
|
|
45
45
|
description: "Manual-friendly React web app starter with broader tool selection.",
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
id: "api-service-express-recommended",
|
|
49
|
+
name: "API Service Express Recommended",
|
|
50
|
+
projectType: "api-service",
|
|
51
|
+
framework: "express",
|
|
52
|
+
setupDepth: "recommended",
|
|
53
|
+
defaultTargets: ["codex", "copilot", "claude"],
|
|
54
|
+
description: "Opinionated Express API service setup with validation, testing, and auth defaults.",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "api-service-fastify-recommended",
|
|
58
|
+
name: "API Service Fastify Recommended",
|
|
59
|
+
projectType: "api-service",
|
|
60
|
+
framework: "fastify",
|
|
61
|
+
setupDepth: "recommended",
|
|
62
|
+
defaultTargets: ["codex", "copilot", "claude"],
|
|
63
|
+
description: "Opinionated Fastify API service setup with schema-first validation and testing defaults.",
|
|
64
|
+
},
|
|
47
65
|
];
|
|
48
66
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/templates/registry.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD;QACE,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,oEAAoE;KAClF;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;QACrD,WAAW,EAAE,sEAAsE;KACpF;IACD;QACE,EAAE,EAAE,4BAA4B;QAChC,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,sEAAsE;KACpF;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;QACrD,WAAW,EAAE,oEAAoE;KAClF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/templates/registry.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD;QACE,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,oEAAoE;KAClF;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;QACrD,WAAW,EAAE,sEAAsE;KACpF;IACD;QACE,EAAE,EAAE,4BAA4B;QAChC,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,sEAAsE;KACpF;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;QACrD,WAAW,EAAE,oEAAoE;KAClF;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,oFAAoF;KAClG;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,0FAA0F;KACxG;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agenv-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Bootstrap a portable, reviewable AI workspace for web development repositories.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"node": ">=20"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@inquirer/prompts": "^8.3.2",
|
|
45
46
|
"commander": "^13.1.0",
|
|
46
47
|
"zod": "^4.1.5"
|
|
47
48
|
},
|