@stackbilt/cli 0.15.1 → 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/__tests__/adf-init.test.js +31 -0
- package/dist/__tests__/adf-init.test.js.map +1 -1
- package/dist/__tests__/adf-patch.test.d.ts +2 -0
- package/dist/__tests__/adf-patch.test.d.ts.map +1 -0
- package/dist/__tests__/adf-patch.test.js +192 -0
- package/dist/__tests__/adf-patch.test.js.map +1 -0
- package/dist/__tests__/bootstrap.test.js +107 -0
- package/dist/__tests__/bootstrap.test.js.map +1 -1
- package/dist/__tests__/context-refresh-repo-intel.test.d.ts +9 -0
- package/dist/__tests__/context-refresh-repo-intel.test.d.ts.map +1 -0
- package/dist/__tests__/context-refresh-repo-intel.test.js +228 -0
- package/dist/__tests__/context-refresh-repo-intel.test.js.map +1 -0
- package/dist/__tests__/context-refresh.test.d.ts +2 -0
- package/dist/__tests__/context-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/context-refresh.test.js +198 -0
- package/dist/__tests__/context-refresh.test.js.map +1 -0
- package/dist/__tests__/context.test.js +62 -0
- package/dist/__tests__/context.test.js.map +1 -1
- package/dist/__tests__/hook.test.js +25 -0
- package/dist/__tests__/hook.test.js.map +1 -1
- package/dist/__tests__/score.test.js +58 -0
- package/dist/__tests__/score.test.js.map +1 -1
- package/dist/__tests__/serve-context.test.d.ts +2 -0
- package/dist/__tests__/serve-context.test.d.ts.map +1 -0
- package/dist/__tests__/serve-context.test.js +112 -0
- package/dist/__tests__/serve-context.test.js.map +1 -0
- package/dist/__tests__/setup.test.js +48 -0
- package/dist/__tests__/setup.test.js.map +1 -1
- package/dist/__tests__/why.test.d.ts +2 -0
- package/dist/__tests__/why.test.d.ts.map +1 -0
- package/dist/__tests__/why.test.js +145 -0
- package/dist/__tests__/why.test.js.map +1 -0
- package/dist/commands/adf.d.ts +2 -2
- package/dist/commands/adf.d.ts.map +1 -1
- package/dist/commands/adf.js +94 -1
- package/dist/commands/adf.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +145 -34
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/context-refresh.d.ts +16 -0
- package/dist/commands/context-refresh.d.ts.map +1 -0
- package/dist/commands/context-refresh.js +841 -0
- package/dist/commands/context-refresh.js.map +1 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +104 -7
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/hook.d.ts +1 -0
- package/dist/commands/hook.d.ts.map +1 -1
- package/dist/commands/hook.js +30 -1
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/score.js +76 -14
- package/dist/commands/score.js.map +1 -1
- package/dist/commands/serve.d.ts +22 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +206 -7
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +47 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +44 -0
- package/dist/commands/why.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -28
- package/dist/index.js.map +1 -1
- package/package.json +27 -15
- package/dist/__tests__/auth-wiring.test.d.ts +0 -2
- package/dist/__tests__/auth-wiring.test.d.ts.map +0 -1
- package/dist/__tests__/auth-wiring.test.js +0 -158
- package/dist/__tests__/auth-wiring.test.js.map +0 -1
- package/dist/__tests__/credentials.test.d.ts +0 -2
- package/dist/__tests__/credentials.test.d.ts.map +0 -1
- package/dist/__tests__/credentials.test.js +0 -145
- package/dist/__tests__/credentials.test.js.map +0 -1
- package/dist/__tests__/deprecated-commands.test.d.ts +0 -2
- package/dist/__tests__/deprecated-commands.test.d.ts.map +0 -1
- package/dist/__tests__/deprecated-commands.test.js +0 -59
- package/dist/__tests__/deprecated-commands.test.js.map +0 -1
- package/dist/__tests__/login.test.d.ts +0 -2
- package/dist/__tests__/login.test.d.ts.map +0 -1
- package/dist/__tests__/login.test.js +0 -66
- package/dist/__tests__/login.test.js.map +0 -1
- package/dist/commands/architect.d.ts +0 -12
- package/dist/commands/architect.d.ts.map +0 -1
- package/dist/commands/architect.js +0 -167
- package/dist/commands/architect.js.map +0 -1
- package/dist/commands/deprecation-warning.d.ts +0 -4
- package/dist/commands/deprecation-warning.d.ts.map +0 -1
- package/dist/commands/deprecation-warning.js +0 -20
- package/dist/commands/deprecation-warning.js.map +0 -1
- package/dist/commands/login.d.ts +0 -13
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -80
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/run.d.ts +0 -18
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -247
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/scaffold.d.ts +0 -11
- package/dist/commands/scaffold.d.ts.map +0 -1
- package/dist/commands/scaffold.js +0 -112
- package/dist/commands/scaffold.js.map +0 -1
- package/dist/credentials.d.ts +0 -34
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -108
- package/dist/credentials.js.map +0 -1
- package/dist/http-client.d.ts +0 -114
- package/dist/http-client.d.ts.map +0 -1
- package/dist/http-client.js +0 -69
- package/dist/http-client.js.map +0 -1
- package/dist/types/scaffold-contract-types.d.ts +0 -90
- package/dist/types/scaffold-contract-types.d.ts.map +0 -1
- package/dist/types/scaffold-contract-types.js +0 -22
- package/dist/types/scaffold-contract-types.js.map +0 -1
package/dist/commands/run.js
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* charter run / stackbilt run — architect + scaffold in one step.
|
|
4
|
-
*
|
|
5
|
-
* Uses the MCP gateway scaffold endpoint (TarotScript → materializer)
|
|
6
|
-
* when an API key is available, producing deployment-ready Cloudflare
|
|
7
|
-
* Workers with wrangler.toml, .ai/ governance, tests, and typed handlers.
|
|
8
|
-
*
|
|
9
|
-
* Falls back to the engine /build endpoint when no API key is set.
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
* stackbilt run "Multi-tenant SaaS API with auth and billing"
|
|
13
|
-
* stackbilt run --file spec.md
|
|
14
|
-
* stackbilt run "API backend" --cloudflare-only --framework Hono --output ./my-api
|
|
15
|
-
* stackbilt run "Simple landing page" --dry-run
|
|
16
|
-
*/
|
|
17
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
-
var ownKeys = function(o) {
|
|
35
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
-
var ar = [];
|
|
37
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
40
|
-
return ownKeys(o);
|
|
41
|
-
};
|
|
42
|
-
return function (mod) {
|
|
43
|
-
if (mod && mod.__esModule) return mod;
|
|
44
|
-
var result = {};
|
|
45
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
-
__setModuleDefault(result, mod);
|
|
47
|
-
return result;
|
|
48
|
-
};
|
|
49
|
-
})();
|
|
50
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.runCommand = runCommand;
|
|
52
|
-
const fs = __importStar(require("node:fs"));
|
|
53
|
-
const path = __importStar(require("node:path"));
|
|
54
|
-
const index_1 = require("../index");
|
|
55
|
-
const flags_1 = require("../flags");
|
|
56
|
-
const credentials_1 = require("../credentials");
|
|
57
|
-
const http_client_1 = require("../http-client");
|
|
58
|
-
const deprecation_warning_1 = require("./deprecation-warning");
|
|
59
|
-
// ─── Animation ──────────────────────────────────────────────
|
|
60
|
-
const PHASE_LABELS = ['PRODUCT', 'UX', 'RISK', 'ARCHITECT', 'TDD', 'SPRINT'];
|
|
61
|
-
const SPINNER = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
62
|
-
function delay(ms) {
|
|
63
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
64
|
-
}
|
|
65
|
-
function clearLine() {
|
|
66
|
-
process.stdout.write('\x1b[2K\r');
|
|
67
|
-
}
|
|
68
|
-
function cursorUp(n) {
|
|
69
|
-
if (n > 0)
|
|
70
|
-
process.stdout.write(`\x1b[${n}A`);
|
|
71
|
-
}
|
|
72
|
-
function slugify(description) {
|
|
73
|
-
const stopWords = new Set(['a', 'an', 'the', 'with', 'and', 'or', 'for', 'in', 'on', 'to', 'my', 'build', 'create', 'make']);
|
|
74
|
-
const words = description.toLowerCase()
|
|
75
|
-
.replace(/[^a-z0-9\s-]/g, '')
|
|
76
|
-
.split(/\s+/)
|
|
77
|
-
.filter(w => !stopWords.has(w))
|
|
78
|
-
.slice(0, 4);
|
|
79
|
-
return words.join('-') || 'my-project';
|
|
80
|
-
}
|
|
81
|
-
function phaseDetail(label, result) {
|
|
82
|
-
const fileCount = result.files.length;
|
|
83
|
-
const adfFiles = result.files.filter(f => f.path.endsWith('.adf')).length;
|
|
84
|
-
const testFiles = result.files.filter(f => f.path.includes('test')).length;
|
|
85
|
-
const configFiles = result.files.filter(f => f.path === 'wrangler.toml' || f.path === 'package.json' || f.path === 'tsconfig.json').length;
|
|
86
|
-
switch (label) {
|
|
87
|
-
case 'PRODUCT': return `requirements extracted from intent`;
|
|
88
|
-
case 'UX': return `interface patterns mapped`;
|
|
89
|
-
case 'RISK': return `threats identified and mitigated`;
|
|
90
|
-
case 'ARCHITECT': return `${fileCount} files, ${configFiles} configs generated`;
|
|
91
|
-
case 'TDD': return `${testFiles || 1} test file${testFiles !== 1 ? 's' : ''} generated`;
|
|
92
|
-
case 'SPRINT': return `${adfFiles} governance files, sprint ready`;
|
|
93
|
-
default: return 'done';
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// ─── Command ────────────────────────────────────────────────
|
|
97
|
-
async function runCommand(options, args) {
|
|
98
|
-
(0, deprecation_warning_1.printBuildCommandDeprecationWarning)('run', args);
|
|
99
|
-
// Parse flags first (getFlag consumes flag + value from args)
|
|
100
|
-
const filePath = (0, flags_1.getFlag)(args, '--file');
|
|
101
|
-
const outputDir = (0, flags_1.getFlag)(args, '--output');
|
|
102
|
-
const seedStr = (0, flags_1.getFlag)(args, '--seed');
|
|
103
|
-
const urlOverride = (0, flags_1.getFlag)(args, '--url');
|
|
104
|
-
const fwOverride = (0, flags_1.getFlag)(args, '--framework');
|
|
105
|
-
const dbOverride = (0, flags_1.getFlag)(args, '--database');
|
|
106
|
-
// Collect flag values to exclude from positional args
|
|
107
|
-
const flagValues = new Set([filePath, outputDir, seedStr, urlOverride, fwOverride, dbOverride].filter(Boolean));
|
|
108
|
-
// Parse description from remaining positional args
|
|
109
|
-
const positional = args.filter(a => !a.startsWith('-') && !flagValues.has(a));
|
|
110
|
-
let description;
|
|
111
|
-
if (filePath) {
|
|
112
|
-
if (!fs.existsSync(filePath))
|
|
113
|
-
throw new index_1.CLIError(`File not found: ${filePath}`);
|
|
114
|
-
description = fs.readFileSync(filePath, 'utf-8').trim();
|
|
115
|
-
}
|
|
116
|
-
else if (positional.length > 0) {
|
|
117
|
-
description = positional.join(' ');
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
throw new index_1.CLIError('Provide a project description:\n stackbilt run "Build a real-time chat app"\n stackbilt run --file spec.md');
|
|
121
|
-
}
|
|
122
|
-
if (!description)
|
|
123
|
-
throw new index_1.CLIError('Empty description.');
|
|
124
|
-
const resolvedOutput = outputDir ?? `./${slugify(description)}`;
|
|
125
|
-
const dryRun = args.includes('--dry-run');
|
|
126
|
-
// Engine client — env var wins over stored credentials.
|
|
127
|
-
const resolved = (0, credentials_1.resolveApiKey)();
|
|
128
|
-
const baseUrl = urlOverride;
|
|
129
|
-
const client = new http_client_1.EngineClient({
|
|
130
|
-
baseUrl: baseUrl ?? resolved?.baseUrl,
|
|
131
|
-
apiKey: resolved?.apiKey ?? null,
|
|
132
|
-
});
|
|
133
|
-
// Determine path: gateway (with API key) or engine fallback
|
|
134
|
-
const useGateway = !!resolved?.apiKey;
|
|
135
|
-
let scaffoldPromise;
|
|
136
|
-
if (useGateway) {
|
|
137
|
-
// Gateway path — produces deployment-ready output (wrangler.toml, .ai/, tests)
|
|
138
|
-
scaffoldPromise = client.scaffold({
|
|
139
|
-
description,
|
|
140
|
-
project_type: args.includes('--cloudflare-only') ? 'worker' : undefined,
|
|
141
|
-
complexity: undefined,
|
|
142
|
-
seed: seedStr ? parseInt(seedStr, 10) : undefined,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
// Engine fallback — basic scaffold
|
|
147
|
-
const request = { description, constraints: {} };
|
|
148
|
-
if (args.includes('--cloudflare-only'))
|
|
149
|
-
request.constraints.cloudflareOnly = true;
|
|
150
|
-
if (fwOverride)
|
|
151
|
-
request.constraints.framework = fwOverride;
|
|
152
|
-
if (dbOverride)
|
|
153
|
-
request.constraints.database = dbOverride;
|
|
154
|
-
if (seedStr)
|
|
155
|
-
request.seed = parseInt(seedStr, 10);
|
|
156
|
-
scaffoldPromise = client.build(request).then(r => ({
|
|
157
|
-
files: Object.entries(r.scaffold).map(([p, content]) => ({ path: p, content, role: 'scaffold' })),
|
|
158
|
-
fileSource: 'engine',
|
|
159
|
-
nextSteps: ['npm install', 'npm run dev'],
|
|
160
|
-
seed: r.seed,
|
|
161
|
-
receipt: r.receipt,
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
164
|
-
// JSON mode — no animation
|
|
165
|
-
if (options.format === 'json') {
|
|
166
|
-
const result = await scaffoldPromise;
|
|
167
|
-
console.log(JSON.stringify({ ...result, outputDir: resolvedOutput, dryRun }, null, 2));
|
|
168
|
-
if (!dryRun) {
|
|
169
|
-
writeFiles(resolvedOutput, result.files);
|
|
170
|
-
}
|
|
171
|
-
return index_1.EXIT_CODE.SUCCESS;
|
|
172
|
-
}
|
|
173
|
-
// Interactive mode — animated output
|
|
174
|
-
const isTTY = process.stdout.isTTY === true;
|
|
175
|
-
console.log('');
|
|
176
|
-
if (!useGateway) {
|
|
177
|
-
console.log(' \x1b[2m(tip: run `charter login --key sb_live_xxx` for deployment-ready scaffolds)\x1b[0m');
|
|
178
|
-
console.log('');
|
|
179
|
-
}
|
|
180
|
-
if (isTTY) {
|
|
181
|
-
let spinIdx = 0;
|
|
182
|
-
for (const label of PHASE_LABELS) {
|
|
183
|
-
console.log(`\x1b[2m ${SPINNER[0]} ${label.padEnd(12)} working...\x1b[0m`);
|
|
184
|
-
}
|
|
185
|
-
let done = false;
|
|
186
|
-
let result;
|
|
187
|
-
scaffoldPromise.then(r => { result = r; done = true; }).catch(() => { done = true; });
|
|
188
|
-
while (!done) {
|
|
189
|
-
spinIdx = (spinIdx + 1) % SPINNER.length;
|
|
190
|
-
cursorUp(PHASE_LABELS.length);
|
|
191
|
-
for (const label of PHASE_LABELS) {
|
|
192
|
-
clearLine();
|
|
193
|
-
process.stdout.write(`\x1b[2m ${SPINNER[spinIdx]} ${label.padEnd(12)} working...\x1b[0m\n`);
|
|
194
|
-
}
|
|
195
|
-
await delay(80);
|
|
196
|
-
}
|
|
197
|
-
result = await scaffoldPromise;
|
|
198
|
-
cursorUp(PHASE_LABELS.length);
|
|
199
|
-
for (const label of PHASE_LABELS) {
|
|
200
|
-
clearLine();
|
|
201
|
-
const detail = phaseDetail(label, result);
|
|
202
|
-
process.stdout.write(` \x1b[32m❩\x1b[0m ${label.padEnd(12)} ${detail.padEnd(36)} \x1b[32m✓\x1b[0m\n`);
|
|
203
|
-
await delay(120);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
const result = await scaffoldPromise;
|
|
208
|
-
for (const label of PHASE_LABELS) {
|
|
209
|
-
console.log(` ❩ ${label.padEnd(12)} ${phaseDetail(label, result).padEnd(36)} ✓`);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
const result = await scaffoldPromise;
|
|
213
|
-
console.log('');
|
|
214
|
-
if (dryRun) {
|
|
215
|
-
console.log(` → ${result.files.length} files would be scaffolded to ${resolvedOutput}/`);
|
|
216
|
-
for (const f of result.files) {
|
|
217
|
-
console.log(` ${f.path}`);
|
|
218
|
-
}
|
|
219
|
-
console.log('');
|
|
220
|
-
console.log(' (dry run — no files written)');
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
writeFiles(resolvedOutput, result.files);
|
|
224
|
-
console.log(` → ${result.files.length} files scaffolded to ${resolvedOutput}/`);
|
|
225
|
-
console.log(` → Architecture governed · seed: ${result.seed ?? 'deterministic'}`);
|
|
226
|
-
if (result.nextSteps && result.nextSteps.length > 0) {
|
|
227
|
-
console.log('');
|
|
228
|
-
console.log(' Next steps:');
|
|
229
|
-
for (const step of result.nextSteps) {
|
|
230
|
-
console.log(` ${step}`);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
console.log('');
|
|
235
|
-
return index_1.EXIT_CODE.SUCCESS;
|
|
236
|
-
}
|
|
237
|
-
function writeFiles(outputDir, files) {
|
|
238
|
-
for (const { path: name, content } of files) {
|
|
239
|
-
const target = path.join(outputDir, name);
|
|
240
|
-
const dir = path.dirname(target);
|
|
241
|
-
if (!fs.existsSync(dir)) {
|
|
242
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
243
|
-
}
|
|
244
|
-
fs.writeFileSync(target, content);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=run.js.map
|
package/dist/commands/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* charter scaffold — write scaffold files from the last build.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* charter scaffold Write to current directory
|
|
6
|
-
* charter scaffold --output ./my-app Write to specific directory
|
|
7
|
-
* charter scaffold --dry-run Show what would be created
|
|
8
|
-
*/
|
|
9
|
-
import type { CLIOptions } from '../index';
|
|
10
|
-
export declare function scaffoldCommand(options: CLIOptions, args: string[]): Promise<number>;
|
|
11
|
-
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6D1F"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* charter scaffold — write scaffold files from the last build.
|
|
4
|
-
*
|
|
5
|
-
* Usage:
|
|
6
|
-
* charter scaffold Write to current directory
|
|
7
|
-
* charter scaffold --output ./my-app Write to specific directory
|
|
8
|
-
* charter scaffold --dry-run Show what would be created
|
|
9
|
-
*/
|
|
10
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(o, k2, desc);
|
|
17
|
-
}) : (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
o[k2] = m[k];
|
|
20
|
-
}));
|
|
21
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
-
}) : function(o, v) {
|
|
24
|
-
o["default"] = v;
|
|
25
|
-
});
|
|
26
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
-
var ownKeys = function(o) {
|
|
28
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
-
var ar = [];
|
|
30
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
return ownKeys(o);
|
|
34
|
-
};
|
|
35
|
-
return function (mod) {
|
|
36
|
-
if (mod && mod.__esModule) return mod;
|
|
37
|
-
var result = {};
|
|
38
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
-
__setModuleDefault(result, mod);
|
|
40
|
-
return result;
|
|
41
|
-
};
|
|
42
|
-
})();
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.scaffoldCommand = scaffoldCommand;
|
|
45
|
-
const fs = __importStar(require("node:fs"));
|
|
46
|
-
const path = __importStar(require("node:path"));
|
|
47
|
-
const index_1 = require("../index");
|
|
48
|
-
const flags_1 = require("../flags");
|
|
49
|
-
const deprecation_warning_1 = require("./deprecation-warning");
|
|
50
|
-
async function scaffoldCommand(options, args) {
|
|
51
|
-
(0, deprecation_warning_1.printBuildCommandDeprecationWarning)('scaffold', args);
|
|
52
|
-
const configPath = options.configPath || '.charter';
|
|
53
|
-
const cachePath = path.join(configPath, 'last-build.json');
|
|
54
|
-
if (!fs.existsSync(cachePath)) {
|
|
55
|
-
throw new index_1.CLIError('No cached build found. Run `charter architect "..."` first.');
|
|
56
|
-
}
|
|
57
|
-
let result;
|
|
58
|
-
try {
|
|
59
|
-
result = JSON.parse(fs.readFileSync(cachePath, 'utf-8'));
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
throw new index_1.CLIError('Could not parse cached build. Run `charter architect "..."` again.');
|
|
63
|
-
}
|
|
64
|
-
if (!result.scaffold || Object.keys(result.scaffold).length === 0) {
|
|
65
|
-
throw new index_1.CLIError('Cached build has no scaffold files.');
|
|
66
|
-
}
|
|
67
|
-
const outputDir = (0, flags_1.getFlag)(args, '--output') ?? '.';
|
|
68
|
-
const dryRun = args.includes('--dry-run');
|
|
69
|
-
const files = Object.entries(result.scaffold).sort(([a], [b]) => a.localeCompare(b));
|
|
70
|
-
if (options.format === 'json') {
|
|
71
|
-
const manifest = files.map(([name, content]) => ({
|
|
72
|
-
path: path.join(outputDir, name),
|
|
73
|
-
lines: content.split('\n').length,
|
|
74
|
-
}));
|
|
75
|
-
console.log(JSON.stringify({ outputDir, dryRun, files: manifest }, null, 2));
|
|
76
|
-
if (!dryRun)
|
|
77
|
-
writeFiles(outputDir, files);
|
|
78
|
-
return index_1.EXIT_CODE.SUCCESS;
|
|
79
|
-
}
|
|
80
|
-
console.log('');
|
|
81
|
-
console.log(` Scaffold from build (seed: ${result.seed})`);
|
|
82
|
-
console.log(` Stack: ${result.stack.map(s => s.name).join(' + ')}`);
|
|
83
|
-
console.log(` Output: ${path.resolve(outputDir)}`);
|
|
84
|
-
console.log('');
|
|
85
|
-
for (const [name, content] of files) {
|
|
86
|
-
const lines = content.split('\n').length;
|
|
87
|
-
const target = path.join(outputDir, name);
|
|
88
|
-
const exists = fs.existsSync(target);
|
|
89
|
-
const marker = exists ? ' (exists, will overwrite)' : '';
|
|
90
|
-
console.log(` ${name} (${lines} lines)${marker}`);
|
|
91
|
-
}
|
|
92
|
-
if (dryRun) {
|
|
93
|
-
console.log('');
|
|
94
|
-
console.log(' (dry run — no files written)');
|
|
95
|
-
return index_1.EXIT_CODE.SUCCESS;
|
|
96
|
-
}
|
|
97
|
-
writeFiles(outputDir, files);
|
|
98
|
-
console.log('');
|
|
99
|
-
console.log(` ${files.length} files written.`);
|
|
100
|
-
return index_1.EXIT_CODE.SUCCESS;
|
|
101
|
-
}
|
|
102
|
-
function writeFiles(outputDir, files) {
|
|
103
|
-
for (const [name, content] of files) {
|
|
104
|
-
const target = path.join(outputDir, name);
|
|
105
|
-
const dir = path.dirname(target);
|
|
106
|
-
if (!fs.existsSync(dir)) {
|
|
107
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
108
|
-
}
|
|
109
|
-
fs.writeFileSync(target, content);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=scaffold.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/credentials.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Credential storage for Stackbilt API key.
|
|
3
|
-
*
|
|
4
|
-
* Two auth sources are supported:
|
|
5
|
-
* 1. STACKBILT_API_KEY environment variable (preferred; no on-disk state).
|
|
6
|
-
* 2. ~/.charter/credentials.json (mode 0o600; populated by `charter login`).
|
|
7
|
-
*
|
|
8
|
-
* `charter login` will be removed in 1.0 — on-disk credential storage moves
|
|
9
|
-
* out of this OSS package. New integrations should use the env var.
|
|
10
|
-
*/
|
|
11
|
-
export interface Credentials {
|
|
12
|
-
apiKey: string;
|
|
13
|
-
baseUrl?: string;
|
|
14
|
-
}
|
|
15
|
-
declare const API_KEY_ENV_VAR = "STACKBILT_API_KEY";
|
|
16
|
-
declare const API_BASE_URL_ENV_VAR = "STACKBILT_API_BASE_URL";
|
|
17
|
-
export declare function loadCredentials(): Credentials | null;
|
|
18
|
-
export declare function saveCredentials(creds: Credentials): void;
|
|
19
|
-
export declare function clearCredentials(): void;
|
|
20
|
-
export interface ResolvedApiKey {
|
|
21
|
-
apiKey: string;
|
|
22
|
-
source: 'env' | 'credentials';
|
|
23
|
-
baseUrl?: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Resolve the Stackbilt API key from env var (preferred) or stored credentials.
|
|
27
|
-
* Returns null when neither source has a key.
|
|
28
|
-
*
|
|
29
|
-
* When the env path is taken, an optional STACKBILT_API_BASE_URL env var may
|
|
30
|
-
* carry a custom engine base URL — keeping parity with `charter login --url`.
|
|
31
|
-
*/
|
|
32
|
-
export declare function resolveApiKey(): ResolvedApiKey | null;
|
|
33
|
-
export { API_KEY_ENV_VAR, API_BASE_URL_ENV_VAR };
|
|
34
|
-
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,QAAA,MAAM,eAAe,sBAAsB,CAAC;AAC5C,QAAA,MAAM,oBAAoB,2BAA2B,CAAC;AAEtD,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAUpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAKxD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,cAAc,GAAG,IAAI,CAerD;AAED,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC"}
|
package/dist/credentials.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Credential storage for Stackbilt API key.
|
|
4
|
-
*
|
|
5
|
-
* Two auth sources are supported:
|
|
6
|
-
* 1. STACKBILT_API_KEY environment variable (preferred; no on-disk state).
|
|
7
|
-
* 2. ~/.charter/credentials.json (mode 0o600; populated by `charter login`).
|
|
8
|
-
*
|
|
9
|
-
* `charter login` will be removed in 1.0 — on-disk credential storage moves
|
|
10
|
-
* out of this OSS package. New integrations should use the env var.
|
|
11
|
-
*/
|
|
12
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
-
}
|
|
18
|
-
Object.defineProperty(o, k2, desc);
|
|
19
|
-
}) : (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
o[k2] = m[k];
|
|
22
|
-
}));
|
|
23
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
-
}) : function(o, v) {
|
|
26
|
-
o["default"] = v;
|
|
27
|
-
});
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.API_BASE_URL_ENV_VAR = exports.API_KEY_ENV_VAR = void 0;
|
|
47
|
-
exports.loadCredentials = loadCredentials;
|
|
48
|
-
exports.saveCredentials = saveCredentials;
|
|
49
|
-
exports.clearCredentials = clearCredentials;
|
|
50
|
-
exports.resolveApiKey = resolveApiKey;
|
|
51
|
-
const fs = __importStar(require("node:fs"));
|
|
52
|
-
const path = __importStar(require("node:path"));
|
|
53
|
-
const os = __importStar(require("node:os"));
|
|
54
|
-
const CRED_DIR = path.join(os.homedir(), '.charter');
|
|
55
|
-
const CRED_FILE = path.join(CRED_DIR, 'credentials.json');
|
|
56
|
-
const API_KEY_ENV_VAR = 'STACKBILT_API_KEY';
|
|
57
|
-
exports.API_KEY_ENV_VAR = API_KEY_ENV_VAR;
|
|
58
|
-
const API_BASE_URL_ENV_VAR = 'STACKBILT_API_BASE_URL';
|
|
59
|
-
exports.API_BASE_URL_ENV_VAR = API_BASE_URL_ENV_VAR;
|
|
60
|
-
function loadCredentials() {
|
|
61
|
-
if (!fs.existsSync(CRED_FILE))
|
|
62
|
-
return null;
|
|
63
|
-
try {
|
|
64
|
-
const raw = fs.readFileSync(CRED_FILE, 'utf-8');
|
|
65
|
-
const parsed = JSON.parse(raw);
|
|
66
|
-
if (!parsed.apiKey || typeof parsed.apiKey !== 'string')
|
|
67
|
-
return null;
|
|
68
|
-
return parsed;
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function saveCredentials(creds) {
|
|
75
|
-
if (!fs.existsSync(CRED_DIR)) {
|
|
76
|
-
fs.mkdirSync(CRED_DIR, { recursive: true });
|
|
77
|
-
}
|
|
78
|
-
fs.writeFileSync(CRED_FILE, JSON.stringify(creds, null, 2), { mode: 0o600 });
|
|
79
|
-
}
|
|
80
|
-
function clearCredentials() {
|
|
81
|
-
if (fs.existsSync(CRED_FILE)) {
|
|
82
|
-
fs.unlinkSync(CRED_FILE);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Resolve the Stackbilt API key from env var (preferred) or stored credentials.
|
|
87
|
-
* Returns null when neither source has a key.
|
|
88
|
-
*
|
|
89
|
-
* When the env path is taken, an optional STACKBILT_API_BASE_URL env var may
|
|
90
|
-
* carry a custom engine base URL — keeping parity with `charter login --url`.
|
|
91
|
-
*/
|
|
92
|
-
function resolveApiKey() {
|
|
93
|
-
const fromEnv = process.env[API_KEY_ENV_VAR];
|
|
94
|
-
if (fromEnv && fromEnv.trim().length > 0) {
|
|
95
|
-
const baseUrlFromEnv = process.env[API_BASE_URL_ENV_VAR]?.trim();
|
|
96
|
-
return {
|
|
97
|
-
apiKey: fromEnv.trim(),
|
|
98
|
-
source: 'env',
|
|
99
|
-
baseUrl: baseUrlFromEnv && baseUrlFromEnv.length > 0 ? baseUrlFromEnv : undefined,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
const stored = loadCredentials();
|
|
103
|
-
if (stored) {
|
|
104
|
-
return { apiKey: stored.apiKey, source: 'credentials', baseUrl: stored.baseUrl };
|
|
105
|
-
}
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=credentials.js.map
|
package/dist/credentials.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,0CAUC;AAED,0CAKC;AAED,4CAIC;AAeD,sCAeC;AAnED,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAO9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,mBAAmB,CAAC;AA0DnC,0CAAe;AAzDxB,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAyD5B,oDAAoB;AAvD9C,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACrE,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAQD;;;;;;GAMG;AACH,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SAClF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/http-client.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP client for the Stackbilt Engine API.
|
|
3
|
-
*
|
|
4
|
-
* Uses native fetch() (Node 18+). Zero external dependencies.
|
|
5
|
-
*/
|
|
6
|
-
import type { ScaffoldFileType, GovernanceDocsType, PromptContextType } from './types/scaffold-contract-types';
|
|
7
|
-
export interface BuildRequest {
|
|
8
|
-
description: string;
|
|
9
|
-
constraints?: {
|
|
10
|
-
cloudflareOnly?: boolean;
|
|
11
|
-
framework?: string;
|
|
12
|
-
database?: string;
|
|
13
|
-
needsAuth?: boolean;
|
|
14
|
-
needsRealtime?: boolean;
|
|
15
|
-
needsQueue?: boolean;
|
|
16
|
-
needsStorage?: boolean;
|
|
17
|
-
};
|
|
18
|
-
seed?: number;
|
|
19
|
-
tier?: 'blessed' | 'all';
|
|
20
|
-
}
|
|
21
|
-
export interface DrawnTech {
|
|
22
|
-
id: number;
|
|
23
|
-
name: string;
|
|
24
|
-
category: string;
|
|
25
|
-
element: string;
|
|
26
|
-
maturity: string;
|
|
27
|
-
tier: string;
|
|
28
|
-
cloudflareNative: boolean;
|
|
29
|
-
traits: string[];
|
|
30
|
-
keywords: {
|
|
31
|
-
upright: string[];
|
|
32
|
-
reversed: string[];
|
|
33
|
-
};
|
|
34
|
-
orientation: 'upright' | 'reversed';
|
|
35
|
-
position: string;
|
|
36
|
-
}
|
|
37
|
-
export interface CompatPair {
|
|
38
|
-
positions: [string, string];
|
|
39
|
-
techs: [string, string];
|
|
40
|
-
elements: [string, string];
|
|
41
|
-
relationship: string;
|
|
42
|
-
score: number;
|
|
43
|
-
description: string;
|
|
44
|
-
}
|
|
45
|
-
export interface BuildResult {
|
|
46
|
-
stack: DrawnTech[];
|
|
47
|
-
compatibility: {
|
|
48
|
-
pairs: CompatPair[];
|
|
49
|
-
totalScore: number;
|
|
50
|
-
normalizedScore: number;
|
|
51
|
-
dominant: string;
|
|
52
|
-
tensions: {
|
|
53
|
-
elements: [string, string];
|
|
54
|
-
description: string;
|
|
55
|
-
}[];
|
|
56
|
-
};
|
|
57
|
-
scaffold: Record<string, string>;
|
|
58
|
-
seed: number;
|
|
59
|
-
receipt: string;
|
|
60
|
-
requirements: {
|
|
61
|
-
description: string;
|
|
62
|
-
keywords: string[];
|
|
63
|
-
constraints: Record<string, unknown>;
|
|
64
|
-
complexity: string;
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/** Canonical scaffold file shape — vendored from @stackbilt/contracts (see ./types/scaffold-contract-types). */
|
|
68
|
-
export type ScaffoldFile = ScaffoldFileType;
|
|
69
|
-
/**
|
|
70
|
-
* CLI-specific superset of MaterializerResult.
|
|
71
|
-
*
|
|
72
|
-
* Includes the contract's shape (files with role, nextSteps, promptContext,
|
|
73
|
-
* governance) plus CLI-only fields (fileSource, seed, receipt, facts).
|
|
74
|
-
* promptContext and governance are optional because the engine fallback
|
|
75
|
-
* path does not produce them.
|
|
76
|
-
*/
|
|
77
|
-
export interface ScaffoldResult {
|
|
78
|
-
files: ScaffoldFile[];
|
|
79
|
-
fileSource: 'engine' | 'basic' | 'none';
|
|
80
|
-
nextSteps: string[];
|
|
81
|
-
seed?: number;
|
|
82
|
-
receipt?: string;
|
|
83
|
-
facts?: Record<string, unknown>;
|
|
84
|
-
promptContext?: PromptContextType;
|
|
85
|
-
governance?: GovernanceDocsType;
|
|
86
|
-
}
|
|
87
|
-
export interface HealthResponse {
|
|
88
|
-
status: string;
|
|
89
|
-
version: string;
|
|
90
|
-
engine: string;
|
|
91
|
-
catalog: number;
|
|
92
|
-
positions: string[];
|
|
93
|
-
}
|
|
94
|
-
export declare class EngineClient {
|
|
95
|
-
private baseUrl;
|
|
96
|
-
private apiKey;
|
|
97
|
-
constructor(options: {
|
|
98
|
-
baseUrl?: string;
|
|
99
|
-
apiKey?: string | null;
|
|
100
|
-
});
|
|
101
|
-
health(): Promise<HealthResponse>;
|
|
102
|
-
build(request: BuildRequest): Promise<BuildResult>;
|
|
103
|
-
scaffold(request: {
|
|
104
|
-
description: string;
|
|
105
|
-
project_type?: string;
|
|
106
|
-
complexity?: string;
|
|
107
|
-
seed?: number;
|
|
108
|
-
}): Promise<ScaffoldResult>;
|
|
109
|
-
catalog(category?: string): Promise<{
|
|
110
|
-
primitives: DrawnTech[];
|
|
111
|
-
total: number;
|
|
112
|
-
}>;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=http-client.d.ts.map
|