@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.
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/scaffold-stage.d.ts +29 -0
- package/dist/scaffold-stage.d.ts.map +1 -0
- package/dist/scaffold-stage.js +222 -0
- package/dist/scaffold-stage.js.map +1 -0
- package/package.json +25 -0
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|
+
}
|