@hstm-labs/forge-scaffold 0.1.11

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @hstm-labs/forge-scaffold — Project scaffolding stage for the Forge pipeline.
3
+ */
4
+ export { ScaffoldStage } from './scaffold-stage.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @hstm-labs/forge-scaffold — Project scaffolding stage for the Forge pipeline.
3
+ */
4
+ export { ScaffoldStage } from './scaffold-stage.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * ScaffoldStage — pipeline stage that generates project config and entry files.
3
+ *
4
+ * Runs after architect. No LLM. Reads architecture and profile, writes
5
+ * package.json, tsconfig.json, .gitignore, .env.example, and optional
6
+ * entry points to its staging area (deliver maps scaffold -> project root).
7
+ */
8
+ import type { StageName } from '@hstm-labs/forge-common';
9
+ import type { PipelineStage, PipelineStageInput, PipelineStageOutput, PipelineContext } from '@hstm-labs/forge-core';
10
+ /**
11
+ * Pipeline stage that generates scaffolding files from architecture and profile.
12
+ *
13
+ * Writes to .forge/runs/{id}/stages/scaffold/artifacts/; deliver stage
14
+ * maps these to project root via layout (scaffold -> '.').
15
+ */
16
+ export declare class ScaffoldStage implements PipelineStage {
17
+ readonly name: StageName;
18
+ readonly dependsOn: StageName[];
19
+ readonly requiresLLM = false;
20
+ /**
21
+ * Execute the scaffold stage.
22
+ *
23
+ * @param input - Input from prior stages (reads architect.data.architecture)
24
+ * @param context - Pipeline context with config and workspace
25
+ * @returns Stage output with generated file artifacts
26
+ */
27
+ execute(input: PipelineStageInput, context: PipelineContext): Promise<PipelineStageOutput>;
28
+ }
29
+ //# sourceMappingURL=scaffold-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-stage.d.ts","sourceRoot":"","sources":["../src/scaffold-stage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,aAAa;IACjD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAc;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,CAAiB;IAChD,QAAQ,CAAC,WAAW,SAAS;IAE7B;;;;;;OAMG;IACG,OAAO,CACX,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC;CAwOhC"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * ScaffoldStage — pipeline stage that generates project config and entry files.
3
+ *
4
+ * Runs after architect. No LLM. Reads architecture and profile, writes
5
+ * package.json, tsconfig.json, .gitignore, .env.example, and optional
6
+ * entry points to its staging area (deliver maps scaffold -> project root).
7
+ */
8
+ import { join } from 'node:path';
9
+ import { mkdirSync, writeFileSync } from 'node:fs';
10
+ import { getLayout, hashContent } from '@hstm-labs/forge-common';
11
+ /**
12
+ * Pipeline stage that generates scaffolding files from architecture and profile.
13
+ *
14
+ * Writes to .forge/runs/{id}/stages/scaffold/artifacts/; deliver stage
15
+ * maps these to project root via layout (scaffold -> '.').
16
+ */
17
+ export class ScaffoldStage {
18
+ name = 'scaffold';
19
+ dependsOn = ['architect'];
20
+ requiresLLM = false;
21
+ /**
22
+ * Execute the scaffold stage.
23
+ *
24
+ * @param input - Input from prior stages (reads architect.data.architecture)
25
+ * @param context - Pipeline context with config and workspace
26
+ * @returns Stage output with generated file artifacts
27
+ */
28
+ async execute(input, context) {
29
+ const architecture = input['architect']?.data?.['architecture'];
30
+ const outputDir = join(context.workspace.forgeDir, 'runs', context.runId, 'stages', 'scaffold', 'artifacts');
31
+ mkdirSync(outputDir, { recursive: true });
32
+ const layoutName = context.config.layout ?? 'standard';
33
+ const layout = getLayout(layoutName);
34
+ const isScalableMonorepo = layout.name === 'scalable-monorepo';
35
+ const artifacts = [];
36
+ // .editorconfig
37
+ const editorconfig = [
38
+ 'root = true',
39
+ '[*]',
40
+ 'indent_style = space',
41
+ 'indent_size = 2',
42
+ 'end_of_line = lf',
43
+ 'charset = utf-8',
44
+ 'trim_trailing_whitespace = true',
45
+ '',
46
+ ].join('\n');
47
+ writeFileSync(join(outputDir, '.editorconfig'), editorconfig, 'utf-8');
48
+ artifacts.push({ filePath: '.editorconfig', content: editorconfig });
49
+ // .gitattributes
50
+ const gitattributes = [
51
+ '* text=auto eol=lf',
52
+ '*.{cmd,[cC][mM][dD]} text eol=crlf',
53
+ '*.{sh,[sS][hH]} text eol=lf',
54
+ '',
55
+ ].join('\n');
56
+ writeFileSync(join(outputDir, '.gitattributes'), gitattributes, 'utf-8');
57
+ artifacts.push({ filePath: '.gitattributes', content: gitattributes });
58
+ // package.json — minimal with scripts; profile can expand later
59
+ const workspaces = layout.name === 'standard'
60
+ ? ['apps/*', 'services/*', 'shared/*']
61
+ : ['apps/*', 'services/*', 'packages/*'];
62
+ const packageJson = {
63
+ name: 'forge-generated-project',
64
+ version: '1.0.0',
65
+ private: true,
66
+ workspaces,
67
+ type: 'module',
68
+ scripts: {
69
+ build: 'tsc',
70
+ start: 'node dist/server.js',
71
+ dev: 'tsc --watch',
72
+ test: 'vitest run',
73
+ },
74
+ dependencies: {
75
+ express: '^4.21.0',
76
+ graphql: '^16.9.0',
77
+ '@apollo/server': '^4.10.0',
78
+ '@prisma/client': '^5.22.0',
79
+ react: '^18.3.0',
80
+ 'react-dom': '^18.3.0',
81
+ 'react-router-dom': '^6.28.0',
82
+ '@apollo/client': '^3.11.0',
83
+ },
84
+ devDependencies: {
85
+ typescript: '^5.6.0',
86
+ '@types/node': '^22.0.0',
87
+ '@types/react': '^18.3.0',
88
+ '@types/react-dom': '^18.3.0',
89
+ vitest: '^2.1.0',
90
+ '@vitejs/plugin-react': '^4.3.0',
91
+ vite: '^5.4.0',
92
+ prisma: '^5.22.0',
93
+ },
94
+ };
95
+ const packageStr = JSON.stringify(packageJson, null, 2) + '\n';
96
+ writeFileSync(join(outputDir, 'package.json'), packageStr, 'utf-8');
97
+ artifacts.push({ filePath: 'package.json', content: packageStr });
98
+ // tsconfig.json
99
+ const tsconfig = {
100
+ compilerOptions: {
101
+ target: 'ES2022',
102
+ module: 'NodeNext',
103
+ moduleResolution: 'NodeNext',
104
+ strict: true,
105
+ outDir: 'dist',
106
+ rootDir: 'src',
107
+ skipLibCheck: true,
108
+ },
109
+ include: ['src/**/*'],
110
+ exclude: ['node_modules', 'dist'],
111
+ };
112
+ const tsconfigStr = JSON.stringify(tsconfig, null, 2) + '\n';
113
+ writeFileSync(join(outputDir, 'tsconfig.json'), tsconfigStr, 'utf-8');
114
+ artifacts.push({ filePath: 'tsconfig.json', content: tsconfigStr });
115
+ // .gitignore
116
+ const gitignore = [
117
+ 'node_modules/',
118
+ 'dist/',
119
+ '.env',
120
+ '*.log',
121
+ '.forge/',
122
+ '',
123
+ ].join('\n');
124
+ writeFileSync(join(outputDir, '.gitignore'), gitignore, 'utf-8');
125
+ artifacts.push({ filePath: '.gitignore', content: gitignore });
126
+ // .env.example
127
+ const envExample = [
128
+ '# Database',
129
+ 'DATABASE_URL="postgresql://user:pass@localhost:5432/dbname"',
130
+ '# Auth',
131
+ 'JWT_SECRET=your-secret-here',
132
+ '',
133
+ ].join('\n');
134
+ writeFileSync(join(outputDir, '.env.example'), envExample, 'utf-8');
135
+ artifacts.push({ filePath: '.env.example', content: envExample });
136
+ // Directory.Packages.props (MSBuild central package management)
137
+ const directoryPackagesProps = [
138
+ '<?xml version="1.0" encoding="utf-8"?>',
139
+ '<Project>',
140
+ ' <PropertyGroup>',
141
+ ' <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>',
142
+ ' </PropertyGroup>',
143
+ '</Project>',
144
+ '',
145
+ ].join('\n');
146
+ writeFileSync(join(outputDir, 'Directory.Packages.props'), directoryPackagesProps, 'utf-8');
147
+ artifacts.push({
148
+ filePath: 'Directory.Packages.props',
149
+ content: directoryPackagesProps,
150
+ });
151
+ // README.md
152
+ const readme = [
153
+ '# Forge-generated project',
154
+ '',
155
+ 'Generated by Forge. See `.forge/` for run metadata and artifacts.',
156
+ '',
157
+ ].join('\n');
158
+ writeFileSync(join(outputDir, 'README.md'), readme, 'utf-8');
159
+ artifacts.push({ filePath: 'README.md', content: readme });
160
+ if (isScalableMonorepo) {
161
+ const pnpmWorkspace = [
162
+ 'packages:',
163
+ ' - "apps/*"',
164
+ ' - "services/*"',
165
+ ' - "packages/*"',
166
+ '',
167
+ ].join('\n');
168
+ writeFileSync(join(outputDir, 'pnpm-workspace.yaml'), pnpmWorkspace, 'utf-8');
169
+ artifacts.push({
170
+ filePath: 'pnpm-workspace.yaml',
171
+ content: pnpmWorkspace,
172
+ });
173
+ const turboJson = [
174
+ '{',
175
+ ' "$schema": "https://turbo.build/schema.json",',
176
+ ' "tasks": {',
177
+ ' "build": { "outputs": ["dist/**"] },',
178
+ ' "test": { "outputs": [] },',
179
+ ' "dev": { "cache": false }',
180
+ ' }',
181
+ '}',
182
+ '',
183
+ ].join('\n');
184
+ writeFileSync(join(outputDir, 'turbo.json'), turboJson, 'utf-8');
185
+ artifacts.push({ filePath: 'turbo.json', content: turboJson });
186
+ }
187
+ // prisma/schema.prisma — minimal placeholder from architecture entities if present
188
+ const prismaDir = join(outputDir, 'prisma');
189
+ mkdirSync(prismaDir, { recursive: true });
190
+ const entities = architecture?.dataModel ?? [];
191
+ const models = Array.isArray(entities) && entities.length > 0
192
+ ? entities
193
+ .map((e) => ` model ${String(e.tableName ?? 'Entity').replace(/-/g, '_')} {\n id String @id @default(uuid())\n }`)
194
+ .join('\n\n')
195
+ : ' model Example {\n id String @id @default(uuid())\n }';
196
+ const prismaSchema = [
197
+ 'generator client {',
198
+ ' provider = "prisma-client-js"',
199
+ '}',
200
+ '',
201
+ 'datasource db {',
202
+ ' provider = "postgresql"',
203
+ ' url = env("DATABASE_URL")',
204
+ '}',
205
+ '',
206
+ models,
207
+ '',
208
+ ].join('\n');
209
+ writeFileSync(join(prismaDir, 'schema.prisma'), prismaSchema, 'utf-8');
210
+ artifacts.push({ filePath: 'prisma/schema.prisma', content: prismaSchema });
211
+ return {
212
+ artifacts: artifacts.map((a) => ({
213
+ filePath: a.filePath,
214
+ content: a.content,
215
+ contentHash: hashContent(a.content),
216
+ sizeBytes: Buffer.byteLength(a.content, 'utf-8'),
217
+ })),
218
+ data: { scaffold: true },
219
+ };
220
+ }
221
+ }
222
+ //# sourceMappingURL=scaffold-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-stage.js","sourceRoot":"","sources":["../src/scaffold-stage.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@hstm-labs/forge-scaffold",
3
+ "version": "0.1.11",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "test": "vitest run",
16
+ "prepublishOnly": "npm run build"
17
+ },
18
+ "dependencies": {
19
+ "@hstm-labs/forge-common": "0.1.11",
20
+ "@hstm-labs/forge-core": "0.1.11"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^25.2.3"
24
+ }
25
+ }