@stackbilt/cli 0.9.0 → 0.9.1
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/commands/run.d.ts +6 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +91 -65
- package/dist/commands/run.js.map +1 -1
- package/dist/http-client.d.ts +18 -0
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +19 -0
- package/dist/http-client.js.map +1 -1
- package/package.json +8 -8
package/dist/commands/run.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* charter run / stackbilt run — architect + scaffold in one step.
|
|
3
3
|
*
|
|
4
|
+
* Uses the MCP gateway scaffold endpoint (TarotScript → materializer)
|
|
5
|
+
* when an API key is available, producing deployment-ready Cloudflare
|
|
6
|
+
* Workers with wrangler.toml, .ai/ governance, tests, and typed handlers.
|
|
7
|
+
*
|
|
8
|
+
* Falls back to the engine /build endpoint when no API key is set.
|
|
9
|
+
*
|
|
4
10
|
* Usage:
|
|
5
11
|
* stackbilt run "Multi-tenant SaaS API with auth and billing"
|
|
6
12
|
* stackbilt run --file spec.md
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoD3C,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6IrF"}
|
package/dist/commands/run.js
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* charter run / stackbilt run — architect + scaffold in one step.
|
|
4
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
|
+
*
|
|
5
11
|
* Usage:
|
|
6
12
|
* stackbilt run "Multi-tenant SaaS API with auth and billing"
|
|
7
13
|
* stackbilt run --file spec.md
|
|
@@ -49,14 +55,8 @@ const index_1 = require("../index");
|
|
|
49
55
|
const flags_1 = require("../flags");
|
|
50
56
|
const credentials_1 = require("../credentials");
|
|
51
57
|
const http_client_1 = require("../http-client");
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{ label: 'UX', extract: r => `${Math.max(1, Math.ceil(r.requirements.keywords.length / 4))} user journeys mapped` },
|
|
55
|
-
{ label: 'RISK', extract: r => `${r.compatibility.tensions.length + 3} risks identified, ${Math.max(1, r.compatibility.tensions.length)} critical` },
|
|
56
|
-
{ label: 'ARCHITECT', extract: r => `${r.stack.length} components, ${r.compatibility.pairs.length} integrations` },
|
|
57
|
-
{ label: 'TDD', extract: r => `${Object.keys(r.scaffold).filter(f => f.includes('test')).length + 5} test scenarios generated` },
|
|
58
|
-
{ label: 'SPRINT', extract: r => `${Object.keys(r.scaffold).filter(f => f.endsWith('.adf') || f.endsWith('.md')).length} ADRs, sprint plan ready` },
|
|
59
|
-
];
|
|
58
|
+
// ─── Animation ──────────────────────────────────────────────
|
|
59
|
+
const PHASE_LABELS = ['PRODUCT', 'UX', 'RISK', 'ARCHITECT', 'TDD', 'SPRINT'];
|
|
60
60
|
const SPINNER = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
61
61
|
function delay(ms) {
|
|
62
62
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
@@ -77,6 +77,21 @@ function slugify(description) {
|
|
|
77
77
|
.slice(0, 4);
|
|
78
78
|
return words.join('-') || 'my-project';
|
|
79
79
|
}
|
|
80
|
+
function phaseDetail(label, result) {
|
|
81
|
+
const fileCount = result.files.length;
|
|
82
|
+
const adfFiles = result.files.filter(f => f.path.endsWith('.adf')).length;
|
|
83
|
+
const testFiles = result.files.filter(f => f.path.includes('test')).length;
|
|
84
|
+
const configFiles = result.files.filter(f => f.path === 'wrangler.toml' || f.path === 'package.json' || f.path === 'tsconfig.json').length;
|
|
85
|
+
switch (label) {
|
|
86
|
+
case 'PRODUCT': return `requirements extracted from intent`;
|
|
87
|
+
case 'UX': return `interface patterns mapped`;
|
|
88
|
+
case 'RISK': return `threats identified and mitigated`;
|
|
89
|
+
case 'ARCHITECT': return `${fileCount} files, ${configFiles} configs generated`;
|
|
90
|
+
case 'TDD': return `${testFiles || 1} test file${testFiles !== 1 ? 's' : ''} generated`;
|
|
91
|
+
case 'SPRINT': return `${adfFiles} governance files, sprint ready`;
|
|
92
|
+
default: return 'done';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
80
95
|
// ─── Command ────────────────────────────────────────────────
|
|
81
96
|
async function runCommand(options, args) {
|
|
82
97
|
// Parse description
|
|
@@ -97,103 +112,121 @@ async function runCommand(options, args) {
|
|
|
97
112
|
if (!description)
|
|
98
113
|
throw new index_1.CLIError('Empty description.');
|
|
99
114
|
// Parse flags
|
|
100
|
-
const request = { description, constraints: {} };
|
|
101
|
-
if (args.includes('--cloudflare-only'))
|
|
102
|
-
request.constraints.cloudflareOnly = true;
|
|
103
|
-
const fw = (0, flags_1.getFlag)(args, '--framework');
|
|
104
|
-
if (fw)
|
|
105
|
-
request.constraints.framework = fw;
|
|
106
|
-
const db = (0, flags_1.getFlag)(args, '--database');
|
|
107
|
-
if (db)
|
|
108
|
-
request.constraints.database = db;
|
|
109
115
|
const seedStr = (0, flags_1.getFlag)(args, '--seed');
|
|
110
|
-
if (seedStr)
|
|
111
|
-
request.seed = parseInt(seedStr, 10);
|
|
112
116
|
const outputDir = (0, flags_1.getFlag)(args, '--output') ?? `./${slugify(description)}`;
|
|
113
117
|
const dryRun = args.includes('--dry-run');
|
|
114
118
|
// Engine client
|
|
115
119
|
const creds = (0, credentials_1.loadCredentials)();
|
|
116
120
|
const baseUrl = (0, flags_1.getFlag)(args, '--url');
|
|
117
121
|
const client = new http_client_1.EngineClient({ baseUrl: baseUrl ?? creds?.baseUrl, apiKey: creds?.apiKey });
|
|
122
|
+
// Determine path: gateway (with API key) or engine fallback
|
|
123
|
+
const useGateway = !!creds?.apiKey;
|
|
124
|
+
let scaffoldPromise;
|
|
125
|
+
if (useGateway) {
|
|
126
|
+
// Gateway path — produces deployment-ready output (wrangler.toml, .ai/, tests)
|
|
127
|
+
scaffoldPromise = client.scaffold({
|
|
128
|
+
description,
|
|
129
|
+
project_type: args.includes('--cloudflare-only') ? 'worker' : undefined,
|
|
130
|
+
complexity: undefined,
|
|
131
|
+
seed: seedStr ? parseInt(seedStr, 10) : undefined,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Engine fallback — basic scaffold
|
|
136
|
+
const request = { description, constraints: {} };
|
|
137
|
+
if (args.includes('--cloudflare-only'))
|
|
138
|
+
request.constraints.cloudflareOnly = true;
|
|
139
|
+
const fw = (0, flags_1.getFlag)(args, '--framework');
|
|
140
|
+
if (fw)
|
|
141
|
+
request.constraints.framework = fw;
|
|
142
|
+
const db = (0, flags_1.getFlag)(args, '--database');
|
|
143
|
+
if (db)
|
|
144
|
+
request.constraints.database = db;
|
|
145
|
+
if (seedStr)
|
|
146
|
+
request.seed = parseInt(seedStr, 10);
|
|
147
|
+
scaffoldPromise = client.build(request).then(r => ({
|
|
148
|
+
files: Object.entries(r.scaffold).map(([p, content]) => ({ path: p, content })),
|
|
149
|
+
fileSource: 'engine',
|
|
150
|
+
nextSteps: ['npm install', 'npm run dev'],
|
|
151
|
+
seed: r.seed,
|
|
152
|
+
receipt: r.receipt,
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
118
155
|
// JSON mode — no animation
|
|
119
156
|
if (options.format === 'json') {
|
|
120
|
-
const result = await
|
|
157
|
+
const result = await scaffoldPromise;
|
|
121
158
|
console.log(JSON.stringify({ ...result, outputDir, dryRun }, null, 2));
|
|
122
159
|
if (!dryRun) {
|
|
123
|
-
writeFiles(outputDir,
|
|
124
|
-
cacheResult(result, options.configPath);
|
|
160
|
+
writeFiles(outputDir, result.files);
|
|
125
161
|
}
|
|
126
162
|
return index_1.EXIT_CODE.SUCCESS;
|
|
127
163
|
}
|
|
128
164
|
// Interactive mode — animated output
|
|
129
165
|
const isTTY = process.stdout.isTTY === true;
|
|
130
|
-
const buildPromise = client.build(request);
|
|
131
166
|
console.log('');
|
|
167
|
+
if (!useGateway) {
|
|
168
|
+
console.log(' \x1b[2m(tip: run `charter login --key sb_live_xxx` for deployment-ready scaffolds)\x1b[0m');
|
|
169
|
+
console.log('');
|
|
170
|
+
}
|
|
132
171
|
if (isTTY) {
|
|
133
|
-
// Show spinner phases while build is in-flight
|
|
134
172
|
let spinIdx = 0;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
for (const line of phaseLines) {
|
|
138
|
-
console.log(`\x1b[2m${line}\x1b[0m`);
|
|
173
|
+
for (const label of PHASE_LABELS) {
|
|
174
|
+
console.log(`\x1b[2m ${SPINNER[0]} ${label.padEnd(12)} working...\x1b[0m`);
|
|
139
175
|
}
|
|
140
|
-
// Animate spinners until build completes
|
|
141
176
|
let done = false;
|
|
142
177
|
let result;
|
|
143
|
-
|
|
178
|
+
scaffoldPromise.then(r => { result = r; done = true; }).catch(() => { done = true; });
|
|
144
179
|
while (!done) {
|
|
145
180
|
spinIdx = (spinIdx + 1) % SPINNER.length;
|
|
146
|
-
cursorUp(
|
|
147
|
-
for (
|
|
181
|
+
cursorUp(PHASE_LABELS.length);
|
|
182
|
+
for (const label of PHASE_LABELS) {
|
|
148
183
|
clearLine();
|
|
149
|
-
process.stdout.write(`\x1b[2m ${SPINNER[spinIdx]} ${
|
|
184
|
+
process.stdout.write(`\x1b[2m ${SPINNER[spinIdx]} ${label.padEnd(12)} working...\x1b[0m\n`);
|
|
150
185
|
}
|
|
151
186
|
await delay(80);
|
|
152
187
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
cursorUp(PHASES.length);
|
|
157
|
-
for (const phase of PHASES) {
|
|
188
|
+
result = await scaffoldPromise;
|
|
189
|
+
cursorUp(PHASE_LABELS.length);
|
|
190
|
+
for (const label of PHASE_LABELS) {
|
|
158
191
|
clearLine();
|
|
159
|
-
const detail =
|
|
160
|
-
process.stdout.write(` \x1b[32m❩\x1b[0m ${
|
|
192
|
+
const detail = phaseDetail(label, result);
|
|
193
|
+
process.stdout.write(` \x1b[32m❩\x1b[0m ${label.padEnd(12)} ${detail.padEnd(36)} \x1b[32m✓\x1b[0m\n`);
|
|
161
194
|
await delay(120);
|
|
162
195
|
}
|
|
163
196
|
}
|
|
164
197
|
else {
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
console.log(` ❩ ${phase.label.padEnd(12)} ${phase.extract(result).padEnd(36)} ✓`);
|
|
198
|
+
const result = await scaffoldPromise;
|
|
199
|
+
for (const label of PHASE_LABELS) {
|
|
200
|
+
console.log(` ❩ ${label.padEnd(12)} ${phaseDetail(label, result).padEnd(36)} ✓`);
|
|
169
201
|
}
|
|
170
|
-
await writeResult(result);
|
|
171
202
|
}
|
|
172
|
-
|
|
173
|
-
const result = await buildPromise;
|
|
174
|
-
const files = Object.entries(result.scaffold).sort(([a], [b]) => a.localeCompare(b));
|
|
203
|
+
const result = await scaffoldPromise;
|
|
175
204
|
console.log('');
|
|
176
205
|
if (dryRun) {
|
|
177
|
-
console.log(` → ${files.length} files would be scaffolded to ${outputDir}/`);
|
|
178
|
-
for (const
|
|
179
|
-
console.log(` ${
|
|
206
|
+
console.log(` → ${result.files.length} files would be scaffolded to ${outputDir}/`);
|
|
207
|
+
for (const f of result.files) {
|
|
208
|
+
console.log(` ${f.path}`);
|
|
180
209
|
}
|
|
181
210
|
console.log('');
|
|
182
211
|
console.log(' (dry run — no files written)');
|
|
183
212
|
}
|
|
184
213
|
else {
|
|
185
|
-
writeFiles(outputDir, files);
|
|
186
|
-
|
|
187
|
-
console.log(` →
|
|
188
|
-
|
|
214
|
+
writeFiles(outputDir, result.files);
|
|
215
|
+
console.log(` → ${result.files.length} files scaffolded to ${outputDir}/`);
|
|
216
|
+
console.log(` → Architecture governed · seed: ${result.seed ?? 'deterministic'}`);
|
|
217
|
+
if (result.nextSteps && result.nextSteps.length > 0) {
|
|
218
|
+
console.log('');
|
|
219
|
+
console.log(' Next steps:');
|
|
220
|
+
for (const step of result.nextSteps) {
|
|
221
|
+
console.log(` ${step}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
189
224
|
}
|
|
190
225
|
console.log('');
|
|
191
226
|
return index_1.EXIT_CODE.SUCCESS;
|
|
192
227
|
}
|
|
193
|
-
// Placeholder for non-TTY path
|
|
194
|
-
async function writeResult(_r) { }
|
|
195
228
|
function writeFiles(outputDir, files) {
|
|
196
|
-
for (const
|
|
229
|
+
for (const { path: name, content } of files) {
|
|
197
230
|
const target = path.join(outputDir, name);
|
|
198
231
|
const dir = path.dirname(target);
|
|
199
232
|
if (!fs.existsSync(dir)) {
|
|
@@ -202,11 +235,4 @@ function writeFiles(outputDir, files) {
|
|
|
202
235
|
fs.writeFileSync(target, content);
|
|
203
236
|
}
|
|
204
237
|
}
|
|
205
|
-
function cacheResult(result, configPath) {
|
|
206
|
-
const dir = configPath || '.charter';
|
|
207
|
-
if (!fs.existsSync(dir)) {
|
|
208
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
209
|
-
}
|
|
210
|
-
fs.writeFileSync(path.join(dir, 'last-build.json'), JSON.stringify(result, null, 2));
|
|
211
|
-
}
|
|
212
238
|
//# sourceMappingURL=run.js.map
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDH,gCA6IC;AAnMD,4CAA8B;AAC9B,gDAAkC;AAElC,oCAA+C;AAC/C,oCAAmC;AACnC,gDAAiD;AACjD,gDAAsF;AAEtF,+DAA+D;AAE/D,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7E,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnE,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,OAAO,CAAC,WAAmB;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7H,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE;SACpC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC9B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAsB;IACxD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC;IAE3I,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS,CAAC,CAAC,OAAO,oCAAoC,CAAC;QAC5D,KAAK,IAAI,CAAC,CAAC,OAAO,2BAA2B,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,OAAO,kCAAkC,CAAC;QACvD,KAAK,WAAW,CAAC,CAAC,OAAO,GAAG,SAAS,WAAW,WAAW,oBAAoB,CAAC;QAChF,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,SAAS,IAAI,CAAC,aAAa,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QACxF,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,QAAQ,iCAAiC,CAAC;QACnE,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC;AAED,+DAA+D;AAExD,KAAK,UAAU,UAAU,CAAC,OAAmB,EAAE,IAAc;IAClE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC1E,IAAI,WAAmB,CAAC;IAExB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,gBAAQ,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAChF,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,gBAAQ,CAAC,8GAA8G,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,gBAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE3D,cAAc;IACd,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1C,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,0BAAY,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/F,4DAA4D;IAC5D,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC;IAEnC,IAAI,eAAwC,CAAC;IAE7C,IAAI,UAAU,EAAE,CAAC;QACf,+EAA+E;QAC/E,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACvE,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAClD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,MAAM,OAAO,GAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAAE,OAAO,CAAC,WAAY,CAAC,cAAc,GAAG,IAAI,CAAC;QACnF,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxC,IAAI,EAAE;YAAE,OAAO,CAAC,WAAY,CAAC,SAAS,GAAG,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACvC,IAAI,EAAE;YAAE,OAAO,CAAC,WAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC3C,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAElD,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/E,UAAU,EAAE,QAAiB;YAC7B,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,iBAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,qCAAqC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,MAAuB,CAAC;QAE5B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtF,OAAO,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACzC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,MAAM,eAAe,CAAC;QAE/B,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;YACvG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,iCAAiC,SAAS,GAAG,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,wBAAwB,SAAS,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,iBAAS,CAAC,OAAO,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,KAA+C;IACpF,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/dist/http-client.d.ts
CHANGED
|
@@ -63,6 +63,18 @@ export interface BuildResult {
|
|
|
63
63
|
complexity: string;
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
+
export interface ScaffoldFile {
|
|
67
|
+
path: string;
|
|
68
|
+
content: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ScaffoldResult {
|
|
71
|
+
files: ScaffoldFile[];
|
|
72
|
+
fileSource: 'engine' | 'basic' | 'none';
|
|
73
|
+
nextSteps: string[];
|
|
74
|
+
seed?: number;
|
|
75
|
+
receipt?: string;
|
|
76
|
+
facts?: Record<string, unknown>;
|
|
77
|
+
}
|
|
66
78
|
export interface HealthResponse {
|
|
67
79
|
status: string;
|
|
68
80
|
version: string;
|
|
@@ -79,6 +91,12 @@ export declare class EngineClient {
|
|
|
79
91
|
});
|
|
80
92
|
health(): Promise<HealthResponse>;
|
|
81
93
|
build(request: BuildRequest): Promise<BuildResult>;
|
|
94
|
+
scaffold(request: {
|
|
95
|
+
description: string;
|
|
96
|
+
project_type?: string;
|
|
97
|
+
complexity?: string;
|
|
98
|
+
seed?: number;
|
|
99
|
+
}): Promise<ScaffoldResult>;
|
|
82
100
|
catalog(category?: string): Promise<{
|
|
83
101
|
primitives: DrawnTech[];
|
|
84
102
|
total: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/http-client.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.EngineClient = void 0;
|
|
9
9
|
const DEFAULT_BASE_URL = 'https://stackbilt-engine.blue-pine-edf6.workers.dev';
|
|
10
|
+
const GATEWAY_BASE_URL = 'https://mcp.stackbilt.dev';
|
|
10
11
|
class EngineClient {
|
|
11
12
|
baseUrl;
|
|
12
13
|
apiKey;
|
|
@@ -35,6 +36,24 @@ class EngineClient {
|
|
|
35
36
|
}
|
|
36
37
|
return res.json();
|
|
37
38
|
}
|
|
39
|
+
async scaffold(request) {
|
|
40
|
+
if (!this.apiKey) {
|
|
41
|
+
throw new Error('API key required for scaffold. Run `charter login --key sb_live_xxx` first.');
|
|
42
|
+
}
|
|
43
|
+
const res = await fetch(`${GATEWAY_BASE_URL}/api/scaffold`, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
48
|
+
},
|
|
49
|
+
body: JSON.stringify(request),
|
|
50
|
+
});
|
|
51
|
+
if (!res.ok) {
|
|
52
|
+
const text = await res.text();
|
|
53
|
+
throw new Error(`Scaffold failed (${res.status}): ${text}`);
|
|
54
|
+
}
|
|
55
|
+
return res.json();
|
|
56
|
+
}
|
|
38
57
|
async catalog(category) {
|
|
39
58
|
const url = new URL(`${this.baseUrl}/catalog`);
|
|
40
59
|
if (category)
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,MAAM,gBAAgB,GAAG,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackbilt/cli",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.1",
|
|
5
5
|
"description": "Charter CLI — repo-level governance checks + architecture scaffolding",
|
|
6
6
|
"bin": {
|
|
7
7
|
"charter": "./dist/bin.js",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
40
|
-
"@stackbilt/
|
|
41
|
-
"@stackbilt/
|
|
42
|
-
"@stackbilt/classify": "^0.9.
|
|
43
|
-
"@stackbilt/
|
|
44
|
-
"@stackbilt/git": "^0.9.
|
|
45
|
-
"@stackbilt/types": "^0.9.
|
|
46
|
-
"@stackbilt/validate": "^0.9.
|
|
40
|
+
"@stackbilt/adf": "^0.9.1",
|
|
41
|
+
"@stackbilt/drift": "^0.9.1",
|
|
42
|
+
"@stackbilt/classify": "^0.9.1",
|
|
43
|
+
"@stackbilt/core": "^0.9.1",
|
|
44
|
+
"@stackbilt/git": "^0.9.1",
|
|
45
|
+
"@stackbilt/types": "^0.9.1",
|
|
46
|
+
"@stackbilt/validate": "^0.9.1"
|
|
47
47
|
},
|
|
48
48
|
"license": "Apache-2.0",
|
|
49
49
|
"scripts": {
|