@stackbilt/cli 0.16.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.
Files changed (110) hide show
  1. package/dist/__tests__/adf-init.test.js +31 -0
  2. package/dist/__tests__/adf-init.test.js.map +1 -1
  3. package/dist/__tests__/bootstrap.test.js +107 -0
  4. package/dist/__tests__/bootstrap.test.js.map +1 -1
  5. package/dist/__tests__/context-refresh-repo-intel.test.d.ts +9 -0
  6. package/dist/__tests__/context-refresh-repo-intel.test.d.ts.map +1 -0
  7. package/dist/__tests__/context-refresh-repo-intel.test.js +228 -0
  8. package/dist/__tests__/context-refresh-repo-intel.test.js.map +1 -0
  9. package/dist/__tests__/context-refresh.test.d.ts +2 -0
  10. package/dist/__tests__/context-refresh.test.d.ts.map +1 -0
  11. package/dist/__tests__/context-refresh.test.js +198 -0
  12. package/dist/__tests__/context-refresh.test.js.map +1 -0
  13. package/dist/__tests__/context.test.js +62 -0
  14. package/dist/__tests__/context.test.js.map +1 -1
  15. package/dist/__tests__/hook.test.js +25 -0
  16. package/dist/__tests__/hook.test.js.map +1 -1
  17. package/dist/__tests__/score.test.js +58 -0
  18. package/dist/__tests__/score.test.js.map +1 -1
  19. package/dist/__tests__/serve-context.test.d.ts +2 -0
  20. package/dist/__tests__/serve-context.test.d.ts.map +1 -0
  21. package/dist/__tests__/serve-context.test.js +112 -0
  22. package/dist/__tests__/serve-context.test.js.map +1 -0
  23. package/dist/__tests__/setup.test.js +48 -0
  24. package/dist/__tests__/setup.test.js.map +1 -1
  25. package/dist/__tests__/why.test.d.ts +2 -0
  26. package/dist/__tests__/why.test.d.ts.map +1 -0
  27. package/dist/__tests__/why.test.js +145 -0
  28. package/dist/__tests__/why.test.js.map +1 -0
  29. package/dist/commands/adf.d.ts +2 -2
  30. package/dist/commands/adf.d.ts.map +1 -1
  31. package/dist/commands/adf.js +12 -0
  32. package/dist/commands/adf.js.map +1 -1
  33. package/dist/commands/bootstrap.d.ts.map +1 -1
  34. package/dist/commands/bootstrap.js +145 -34
  35. package/dist/commands/bootstrap.js.map +1 -1
  36. package/dist/commands/context-refresh.d.ts +16 -0
  37. package/dist/commands/context-refresh.d.ts.map +1 -0
  38. package/dist/commands/context-refresh.js +841 -0
  39. package/dist/commands/context-refresh.js.map +1 -0
  40. package/dist/commands/context.d.ts.map +1 -1
  41. package/dist/commands/context.js +104 -7
  42. package/dist/commands/context.js.map +1 -1
  43. package/dist/commands/hook.d.ts +1 -0
  44. package/dist/commands/hook.d.ts.map +1 -1
  45. package/dist/commands/hook.js +30 -1
  46. package/dist/commands/hook.js.map +1 -1
  47. package/dist/commands/score.js +76 -14
  48. package/dist/commands/score.js.map +1 -1
  49. package/dist/commands/serve.d.ts +22 -1
  50. package/dist/commands/serve.d.ts.map +1 -1
  51. package/dist/commands/serve.js +70 -3
  52. package/dist/commands/serve.js.map +1 -1
  53. package/dist/commands/setup.d.ts.map +1 -1
  54. package/dist/commands/setup.js +47 -1
  55. package/dist/commands/setup.js.map +1 -1
  56. package/dist/commands/why.d.ts.map +1 -1
  57. package/dist/commands/why.js +44 -0
  58. package/dist/commands/why.js.map +1 -1
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +10 -28
  61. package/dist/index.js.map +1 -1
  62. package/package.json +27 -15
  63. package/dist/__tests__/auth-wiring.test.d.ts +0 -2
  64. package/dist/__tests__/auth-wiring.test.d.ts.map +0 -1
  65. package/dist/__tests__/auth-wiring.test.js +0 -158
  66. package/dist/__tests__/auth-wiring.test.js.map +0 -1
  67. package/dist/__tests__/credentials.test.d.ts +0 -2
  68. package/dist/__tests__/credentials.test.d.ts.map +0 -1
  69. package/dist/__tests__/credentials.test.js +0 -145
  70. package/dist/__tests__/credentials.test.js.map +0 -1
  71. package/dist/__tests__/deprecated-commands.test.d.ts +0 -2
  72. package/dist/__tests__/deprecated-commands.test.d.ts.map +0 -1
  73. package/dist/__tests__/deprecated-commands.test.js +0 -59
  74. package/dist/__tests__/deprecated-commands.test.js.map +0 -1
  75. package/dist/__tests__/login.test.d.ts +0 -2
  76. package/dist/__tests__/login.test.d.ts.map +0 -1
  77. package/dist/__tests__/login.test.js +0 -66
  78. package/dist/__tests__/login.test.js.map +0 -1
  79. package/dist/commands/architect.d.ts +0 -12
  80. package/dist/commands/architect.d.ts.map +0 -1
  81. package/dist/commands/architect.js +0 -167
  82. package/dist/commands/architect.js.map +0 -1
  83. package/dist/commands/deprecation-warning.d.ts +0 -4
  84. package/dist/commands/deprecation-warning.d.ts.map +0 -1
  85. package/dist/commands/deprecation-warning.js +0 -20
  86. package/dist/commands/deprecation-warning.js.map +0 -1
  87. package/dist/commands/login.d.ts +0 -13
  88. package/dist/commands/login.d.ts.map +0 -1
  89. package/dist/commands/login.js +0 -80
  90. package/dist/commands/login.js.map +0 -1
  91. package/dist/commands/run.d.ts +0 -18
  92. package/dist/commands/run.d.ts.map +0 -1
  93. package/dist/commands/run.js +0 -247
  94. package/dist/commands/run.js.map +0 -1
  95. package/dist/commands/scaffold.d.ts +0 -11
  96. package/dist/commands/scaffold.d.ts.map +0 -1
  97. package/dist/commands/scaffold.js +0 -112
  98. package/dist/commands/scaffold.js.map +0 -1
  99. package/dist/credentials.d.ts +0 -34
  100. package/dist/credentials.d.ts.map +0 -1
  101. package/dist/credentials.js +0 -108
  102. package/dist/credentials.js.map +0 -1
  103. package/dist/http-client.d.ts +0 -114
  104. package/dist/http-client.d.ts.map +0 -1
  105. package/dist/http-client.js +0 -69
  106. package/dist/http-client.js.map +0 -1
  107. package/dist/types/scaffold-contract-types.d.ts +0 -90
  108. package/dist/types/scaffold-contract-types.d.ts.map +0 -1
  109. package/dist/types/scaffold-contract-types.js +0 -22
  110. package/dist/types/scaffold-contract-types.js.map +0 -1
@@ -1,167 +0,0 @@
1
- "use strict";
2
- /**
3
- * charter architect — generate a tech stack from a project description.
4
- *
5
- * Usage:
6
- * charter architect "Build a real-time chat app on Cloudflare"
7
- * charter architect --file spec.md
8
- * charter architect "API backend" --cloudflare-only --framework Hono --database D1
9
- * charter architect "Simple landing page" --dry-run
10
- */
11
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- var desc = Object.getOwnPropertyDescriptor(m, k);
14
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
- desc = { enumerable: true, get: function() { return m[k]; } };
16
- }
17
- Object.defineProperty(o, k2, desc);
18
- }) : (function(o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- }));
22
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
- Object.defineProperty(o, "default", { enumerable: true, value: v });
24
- }) : function(o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = (this && this.__importStar) || (function () {
28
- var ownKeys = function(o) {
29
- ownKeys = Object.getOwnPropertyNames || function (o) {
30
- var ar = [];
31
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
- return ar;
33
- };
34
- return ownKeys(o);
35
- };
36
- return function (mod) {
37
- if (mod && mod.__esModule) return mod;
38
- var result = {};
39
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
- __setModuleDefault(result, mod);
41
- return result;
42
- };
43
- })();
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.architectCommand = architectCommand;
46
- const fs = __importStar(require("node:fs"));
47
- const path = __importStar(require("node:path"));
48
- const index_1 = require("../index");
49
- const flags_1 = require("../flags");
50
- const credentials_1 = require("../credentials");
51
- const http_client_1 = require("../http-client");
52
- const deprecation_warning_1 = require("./deprecation-warning");
53
- async function architectCommand(options, args) {
54
- (0, deprecation_warning_1.printBuildCommandDeprecationWarning)('architect', args);
55
- // Parse description from positional arg or --file
56
- const filePath = (0, flags_1.getFlag)(args, '--file');
57
- const positional = args.filter(a => !a.startsWith('-') && a !== filePath);
58
- let description;
59
- if (filePath) {
60
- if (!fs.existsSync(filePath))
61
- throw new index_1.CLIError(`File not found: ${filePath}`);
62
- description = fs.readFileSync(filePath, 'utf-8').trim();
63
- }
64
- else if (positional.length > 0) {
65
- description = positional.join(' ');
66
- }
67
- else {
68
- throw new index_1.CLIError('Provide a project description:\n charter architect "Build a real-time chat app"\n charter architect --file spec.md');
69
- }
70
- if (!description)
71
- throw new index_1.CLIError('Empty description.');
72
- // Parse constraint flags
73
- const request = { description, constraints: {} };
74
- if (args.includes('--cloudflare-only'))
75
- request.constraints.cloudflareOnly = true;
76
- const fw = (0, flags_1.getFlag)(args, '--framework');
77
- if (fw)
78
- request.constraints.framework = fw;
79
- const db = (0, flags_1.getFlag)(args, '--database');
80
- if (db)
81
- request.constraints.database = db;
82
- const seedStr = (0, flags_1.getFlag)(args, '--seed');
83
- if (seedStr)
84
- request.seed = parseInt(seedStr, 10);
85
- // Resolve API key — env var wins over stored credentials. Engine /build is
86
- // currently unauthenticated, so missing credentials is not an error here.
87
- const resolved = (0, credentials_1.resolveApiKey)();
88
- const baseUrl = (0, flags_1.getFlag)(args, '--url');
89
- const client = new http_client_1.EngineClient({
90
- baseUrl: baseUrl ?? resolved?.baseUrl,
91
- apiKey: resolved?.apiKey ?? null,
92
- });
93
- // Build
94
- let result;
95
- try {
96
- result = await client.build(request);
97
- }
98
- catch (err) {
99
- throw new index_1.CLIError(`Build failed: ${err.message}`);
100
- }
101
- const dryRun = args.includes('--dry-run');
102
- // JSON output
103
- if (options.format === 'json') {
104
- console.log(JSON.stringify(result, null, 2));
105
- if (!dryRun)
106
- cacheResult(result, options.configPath);
107
- return index_1.EXIT_CODE.SUCCESS;
108
- }
109
- // Text output
110
- printResult(result);
111
- // Write scaffold
112
- if (!dryRun) {
113
- cacheResult(result, options.configPath);
114
- console.log('');
115
- console.log(`Build cached. Run \`charter scaffold\` to write files.`);
116
- }
117
- else {
118
- console.log('');
119
- console.log('(dry run — no files written)');
120
- }
121
- return index_1.EXIT_CODE.SUCCESS;
122
- }
123
- function printResult(r) {
124
- const c = r.compatibility;
125
- console.log('');
126
- console.log(` Stack (seed: ${r.seed}, ${r.requirements.complexity})`);
127
- console.log('');
128
- const maxPos = Math.max(...r.stack.map(s => s.position.length));
129
- const maxName = Math.max(...r.stack.map(s => s.name.length));
130
- for (const s of r.stack) {
131
- const pos = s.position.padEnd(maxPos);
132
- const name = s.name.padEnd(maxName);
133
- const orient = s.orientation === 'reversed' ? '↓' : '↑';
134
- const cf = s.cloudflareNative ? ' [CF]' : '';
135
- console.log(` ${pos} ${name} (${s.element}, ${orient})${cf}`);
136
- }
137
- console.log('');
138
- console.log(` Compatibility: ${c.normalizedScore} (${c.pairs.length} pairs, ${c.tensions.length} tensions)`);
139
- for (const p of c.pairs) {
140
- const sign = p.score > 0 ? '+' : p.score < 0 ? '' : ' ';
141
- console.log(` ${p.techs[0]} + ${p.techs[1]} = ${p.relationship} (${sign}${p.score})`);
142
- }
143
- if (c.tensions.length > 0) {
144
- console.log('');
145
- console.log(' Tensions:');
146
- for (const t of c.tensions) {
147
- console.log(` ⚡ ${t.description}`);
148
- }
149
- }
150
- console.log('');
151
- console.log(` Scaffold: ${Object.keys(r.scaffold).length} files`);
152
- for (const f of Object.keys(r.scaffold).sort()) {
153
- const lines = r.scaffold[f].split('\n').length;
154
- console.log(` ${f} (${lines} lines)`);
155
- }
156
- console.log('');
157
- console.log(` Keywords: ${r.requirements.keywords.slice(0, 8).join(', ')}`);
158
- console.log(` Receipt: ${r.receipt.slice(0, 16)}`);
159
- }
160
- function cacheResult(result, configPath) {
161
- const dir = configPath || '.charter';
162
- if (!fs.existsSync(dir)) {
163
- fs.mkdirSync(dir, { recursive: true });
164
- }
165
- fs.writeFileSync(path.join(dir, 'last-build.json'), JSON.stringify(result, null, 2));
166
- }
167
- //# sourceMappingURL=architect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/commands/architect.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare const DEPRECATION_WARNING_ENV_VAR = "CHARTER_NO_DEPRECATION_WARNING";
2
- export declare const DEPRECATION_WARNING_FLAG = "--no-deprecation-warning";
3
- export declare function printBuildCommandDeprecationWarning(command: string, args: string[]): void;
4
- //# sourceMappingURL=deprecation-warning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecation-warning.d.ts","sourceRoot":"","sources":["../../src/commands/deprecation-warning.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAC5E,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAMnE,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAWzF"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEPRECATION_WARNING_FLAG = exports.DEPRECATION_WARNING_ENV_VAR = void 0;
4
- exports.printBuildCommandDeprecationWarning = printBuildCommandDeprecationWarning;
5
- const RFC_112_URL = 'https://github.com/Stackbilt-dev/charter/issues/112';
6
- exports.DEPRECATION_WARNING_ENV_VAR = 'CHARTER_NO_DEPRECATION_WARNING';
7
- exports.DEPRECATION_WARNING_FLAG = '--no-deprecation-warning';
8
- function warningSuppressed(args) {
9
- return args.includes(exports.DEPRECATION_WARNING_FLAG) || process.env[exports.DEPRECATION_WARNING_ENV_VAR] === '1';
10
- }
11
- function printBuildCommandDeprecationWarning(command, args) {
12
- if (warningSuppressed(args)) {
13
- return;
14
- }
15
- process.stderr.write(`⚠ charter ${command} is deprecated and will be removed in Charter 1.0.\n` +
16
- ' Install @stackbilt/build for the long-term home of this command:\n' +
17
- ' npm install -g @stackbilt/build\n' +
18
- ` See ${RFC_112_URL} for context.\n`);
19
- }
20
- //# sourceMappingURL=deprecation-warning.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deprecation-warning.js","sourceRoot":"","sources":["../../src/commands/deprecation-warning.ts"],"names":[],"mappings":";;;AAQA,kFAWC;AAnBD,MAAM,WAAW,GAAG,qDAAqD,CAAC;AAC7D,QAAA,2BAA2B,GAAG,gCAAgC,CAAC;AAC/D,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAEnE,SAAS,iBAAiB,CAAC,IAAc;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,gCAAwB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mCAA2B,CAAC,KAAK,GAAG,CAAC;AACrG,CAAC;AAED,SAAgB,mCAAmC,CAAC,OAAe,EAAE,IAAc;IACjF,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,OAAO,sDAAsD;QACxE,sEAAsE;QACtE,uCAAuC;QACvC,SAAS,WAAW,iBAAiB,CACxC,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * charter login — API key management for Stackbilt Engine.
3
- *
4
- * DEPRECATED: on-disk credential storage moves out of this OSS package in 1.0.
5
- * Set STACKBILT_API_KEY in the environment instead.
6
- *
7
- * Usage:
8
- * charter login --key sb_live_xxx Store API key (deprecated)
9
- * charter login --logout Clear stored credentials
10
- */
11
- import type { CLIOptions } from '../index';
12
- export declare function loginCommand(options: CLIOptions, args: string[]): Promise<number>;
13
- //# sourceMappingURL=login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAY3C,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEvF"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- /**
3
- * charter login — API key management for Stackbilt Engine.
4
- *
5
- * DEPRECATED: on-disk credential storage moves out of this OSS package in 1.0.
6
- * Set STACKBILT_API_KEY in the environment instead.
7
- *
8
- * Usage:
9
- * charter login --key sb_live_xxx Store API key (deprecated)
10
- * charter login --logout Clear stored credentials
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.loginCommand = loginCommand;
14
- const index_1 = require("../index");
15
- const flags_1 = require("../flags");
16
- const deprecation_warning_1 = require("./deprecation-warning");
17
- const credentials_1 = require("../credentials");
18
- const http_client_1 = require("../http-client");
19
- async function loginCommand(options, args) {
20
- (0, deprecation_warning_1.printBuildCommandDeprecationWarning)('login', args);
21
- if (args.includes('--logout')) {
22
- (0, credentials_1.clearCredentials)();
23
- console.log('Credentials cleared.');
24
- return index_1.EXIT_CODE.SUCCESS;
25
- }
26
- const key = (0, flags_1.getFlag)(args, '--key');
27
- if (!key) {
28
- const existing = (0, credentials_1.loadCredentials)();
29
- const envKey = process.env[credentials_1.API_KEY_ENV_VAR];
30
- if (envKey && envKey.trim().length > 0) {
31
- const masked = envKey.slice(0, 12) + '...' + envKey.slice(-4);
32
- console.log(`Using ${credentials_1.API_KEY_ENV_VAR} from environment: ${masked}`);
33
- return index_1.EXIT_CODE.SUCCESS;
34
- }
35
- if (existing) {
36
- const masked = existing.apiKey.slice(0, 12) + '...' + existing.apiKey.slice(-4);
37
- console.log(`Logged in as: ${masked}`);
38
- if (existing.baseUrl)
39
- console.log(`Engine: ${existing.baseUrl}`);
40
- }
41
- else {
42
- console.log('Not logged in.');
43
- console.log('');
44
- console.log(`Preferred: export ${credentials_1.API_KEY_ENV_VAR}=ea_xxx (or sb_live_xxx, sb_test_xxx).`);
45
- console.log('');
46
- console.log('Deprecated alternative:');
47
- console.log(' charter login --key ea_xxx');
48
- console.log(' charter login --key sb_live_xxx');
49
- console.log(' charter login --key sb_test_xxx');
50
- console.log('');
51
- console.log('Get your API key from auth.stackbilt.dev (ea_) or the Stackbilt dashboard (sb_).');
52
- }
53
- return index_1.EXIT_CODE.SUCCESS;
54
- }
55
- const VALID_PREFIXES = ['ea_', 'sb_live_', 'sb_test_'];
56
- if (!VALID_PREFIXES.some((p) => key.startsWith(p))) {
57
- throw new index_1.CLIError(`Invalid API key format. Keys must start with one of: ${VALID_PREFIXES.join(', ')}.`);
58
- }
59
- const baseUrl = (0, flags_1.getFlag)(args, '--url');
60
- // Verify connectivity
61
- const client = new http_client_1.EngineClient({ baseUrl, apiKey: key });
62
- try {
63
- const health = await client.health();
64
- (0, credentials_1.saveCredentials)({ apiKey: key, baseUrl });
65
- if (options.format === 'json') {
66
- console.log(JSON.stringify({ status: 'authenticated', engine: health.version, catalog: health.catalog }));
67
- }
68
- else {
69
- console.log(`Authenticated. Engine v${health.version} (${health.catalog} primitives)`);
70
- if (key.startsWith('sb_test_')) {
71
- console.log('Using test mode.');
72
- }
73
- }
74
- return index_1.EXIT_CODE.SUCCESS;
75
- }
76
- catch (err) {
77
- throw new index_1.CLIError(`Could not reach engine: ${err.message}`);
78
- }
79
- }
80
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * charter run / stackbilt run — architect + scaffold in one step.
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
- *
10
- * Usage:
11
- * stackbilt run "Multi-tenant SaaS API with auth and billing"
12
- * stackbilt run --file spec.md
13
- * stackbilt run "API backend" --cloudflare-only --framework Hono --output ./my-api
14
- * stackbilt run "Simple landing page" --dry-run
15
- */
16
- import type { CLIOptions } from '../index';
17
- export declare function runCommand(options: CLIOptions, args: string[]): Promise<number>;
18
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
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;AAqD3C,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwJrF"}
@@ -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
@@ -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"}