@superblocksteam/cli 2.0.3-next.148 → 2.0.3-next.149
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/README.md +1 -1
- package/dist/index.js +54 -39
- package/oclif.manifest.json +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ $ npm install -g @superblocksteam/cli
|
|
|
14
14
|
$ superblocks COMMAND
|
|
15
15
|
running command...
|
|
16
16
|
$ superblocks (--version)
|
|
17
|
-
@superblocksteam/cli/2.0.3-next.
|
|
17
|
+
@superblocksteam/cli/2.0.3-next.149 linux-x64 node-v20.19.0
|
|
18
18
|
$ superblocks --help [COMMAND]
|
|
19
19
|
USAGE
|
|
20
20
|
$ superblocks COMMAND
|
package/dist/index.js
CHANGED
|
@@ -175965,7 +175965,7 @@ var require_main2 = __commonJS({
|
|
|
175965
175965
|
var { getPrepareStackTrace, kSymbolPrepareStackTrace } = require_stack_trace2();
|
|
175966
175966
|
var { cacheRewrittenSourceMap, getOriginalPathAndLineFromSourceMap } = require_source_map();
|
|
175967
175967
|
var getNameAndVersion = require_module_details();
|
|
175968
|
-
var
|
|
175968
|
+
var yaml3 = require_js_yaml();
|
|
175969
175969
|
var DummyRewriter = class {
|
|
175970
175970
|
rewrite(code, file, passes, moduleName2, moduleVersion) {
|
|
175971
175971
|
return {
|
|
@@ -175986,7 +175986,7 @@ var require_main2 = __commonJS({
|
|
|
175986
175986
|
this.nativeRewriter = new DummyRewriter();
|
|
175987
175987
|
}
|
|
175988
175988
|
if (config2?.orchestrion) {
|
|
175989
|
-
const { instrumentations } =
|
|
175989
|
+
const { instrumentations } = yaml3.load(config2.orchestrion);
|
|
175990
175990
|
this.orchestrionModules = new Set(instrumentations.map((i2) => i2.module_name));
|
|
175991
175991
|
}
|
|
175992
175992
|
}
|
|
@@ -331222,7 +331222,7 @@ var import_dd_trace = __toESM(require_dd_trace2(), 1);
|
|
|
331222
331222
|
// ../sdk/package.json
|
|
331223
331223
|
var package_default = {
|
|
331224
331224
|
name: "@superblocksteam/sdk",
|
|
331225
|
-
version: "2.0.3-next.
|
|
331225
|
+
version: "2.0.3-next.149",
|
|
331226
331226
|
type: "module",
|
|
331227
331227
|
description: "Superblocks JS SDK",
|
|
331228
331228
|
homepage: "https://www.superblocks.com",
|
|
@@ -331252,8 +331252,8 @@ var package_default = {
|
|
|
331252
331252
|
"@rollup/wasm-node": "^4.35.0",
|
|
331253
331253
|
"@superblocksteam/bucketeer-sdk": "0.4.1",
|
|
331254
331254
|
"@superblocksteam/shared": "0.9115.0",
|
|
331255
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
331256
|
-
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.
|
|
331255
|
+
"@superblocksteam/util": "2.0.3-next.149",
|
|
331256
|
+
"@superblocksteam/vite-plugin-file-sync": "2.0.3-next.149",
|
|
331257
331257
|
"@vitejs/plugin-react": "^4.3.4",
|
|
331258
331258
|
axios: "^1.4.0",
|
|
331259
331259
|
chokidar: "^4.0.3",
|
|
@@ -375836,7 +375836,7 @@ async function startVite({ app, httpServer: httpServer2, root: root2, mode, port
|
|
|
375836
375836
|
};
|
|
375837
375837
|
const isCustomBuildEnabled2 = await isCustomComponentsEnabled();
|
|
375838
375838
|
const customFolder = path21.join(root2, "custom");
|
|
375839
|
-
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.
|
|
375839
|
+
const cdnUrl = "https://assets-cdn.superblocks.com/library/2.0.3-next.149";
|
|
375840
375840
|
const env3 = loadEnv(mode, root2, "");
|
|
375841
375841
|
const hmrPort = await getFreePort();
|
|
375842
375842
|
const hmrOptions = {
|
|
@@ -382180,7 +382180,7 @@ var TemplateRenderer = class {
|
|
|
382180
382180
|
this.nodeModuleDirs = {};
|
|
382181
382181
|
if (prefetchNodeModules) {
|
|
382182
382182
|
for (const [templateName, template] of Object.entries(templates)) {
|
|
382183
|
-
|
|
382183
|
+
getLogger().debug("[ai-service] Pre-fetching node_modules for", templateName);
|
|
382184
382184
|
this.templateModulesDir(templateName, template);
|
|
382185
382185
|
}
|
|
382186
382186
|
}
|
|
@@ -382192,7 +382192,7 @@ var TemplateRenderer = class {
|
|
|
382192
382192
|
const template = templates[templateName];
|
|
382193
382193
|
const templateNodeModules = await this.templateModulesDir(templateName, template);
|
|
382194
382194
|
const templateDir = path25.join(this.workDir, templateName, `gen-${randomUUID()}`);
|
|
382195
|
-
|
|
382195
|
+
getLogger().debug("[ai-service] Rendering template", templateName, "to", templateDir);
|
|
382196
382196
|
reifyTemplate(templateDir, templates[templateName]);
|
|
382197
382197
|
if (templateNodeModules) {
|
|
382198
382198
|
await fs12.cp(templateNodeModules, path25.join(templateDir, "node_modules"), {
|
|
@@ -382330,16 +382330,22 @@ var FSM = class {
|
|
|
382330
382330
|
async send(event) {
|
|
382331
382331
|
const fromState = this.state;
|
|
382332
382332
|
const toState = this.transitions[fromState]?.[event.type];
|
|
382333
|
+
const logger3 = getLogger();
|
|
382333
382334
|
if (!toState) {
|
|
382334
|
-
|
|
382335
|
+
logger3.warn(`[ai-service] No transition for event '${event.type}' from state '${fromState}'`);
|
|
382335
382336
|
return;
|
|
382336
382337
|
}
|
|
382337
382338
|
this._state = toState;
|
|
382338
|
-
|
|
382339
|
-
|
|
382340
|
-
|
|
382341
|
-
|
|
382342
|
-
|
|
382339
|
+
try {
|
|
382340
|
+
await this.onTransition?.({
|
|
382341
|
+
from: fromState,
|
|
382342
|
+
to: toState,
|
|
382343
|
+
event
|
|
382344
|
+
});
|
|
382345
|
+
} catch (error) {
|
|
382346
|
+
logger3.error(`[ai-service] Transition handler threw an error for ${toState}:`, getErrorMeta(error));
|
|
382347
|
+
throw error;
|
|
382348
|
+
}
|
|
382343
382349
|
}
|
|
382344
382350
|
};
|
|
382345
382351
|
|
|
@@ -382545,10 +382551,13 @@ var generated = {};
|
|
|
382545
382551
|
try {
|
|
382546
382552
|
generated = await import("./generated-RWPUAFSG.js");
|
|
382547
382553
|
} catch (_error) {
|
|
382548
|
-
|
|
382554
|
+
getLogger().warn("[ai-service] Generated markdown modules not found. Run `pnpm generate:markdown` first.");
|
|
382549
382555
|
}
|
|
382550
382556
|
var processedCache = /* @__PURE__ */ new Map();
|
|
382551
382557
|
function loadSubprompt(path45, variables = {}) {
|
|
382558
|
+
if (!path45.includes("/")) {
|
|
382559
|
+
getLogger().warn(`Subprompt path "${path45}" should include module and name (e.g., "api/create")`);
|
|
382560
|
+
}
|
|
382552
382561
|
const cacheKey = JSON.stringify(variables);
|
|
382553
382562
|
if (!processedCache.has(path45)) {
|
|
382554
382563
|
processedCache.set(path45, /* @__PURE__ */ new Map());
|
|
@@ -382566,10 +382575,12 @@ function loadSubprompt(path45, variables = {}) {
|
|
|
382566
382575
|
content2 = generated[module2][name17] || "";
|
|
382567
382576
|
}
|
|
382568
382577
|
} else {
|
|
382569
|
-
|
|
382578
|
+
getLogger().warn(`[ai-service] Invalid path format: ${path45}. Expected "module/name"`);
|
|
382579
|
+
return "";
|
|
382570
382580
|
}
|
|
382571
|
-
} catch (
|
|
382572
|
-
|
|
382581
|
+
} catch (error) {
|
|
382582
|
+
getLogger().warn(`[ai-service] Failed to load subprompt at ${path45}:`, error instanceof Error ? error.message : String(error));
|
|
382583
|
+
return "";
|
|
382573
382584
|
}
|
|
382574
382585
|
let processedContent = content2;
|
|
382575
382586
|
Object.entries(variables).forEach(([key2, value2]) => {
|
|
@@ -382583,7 +382594,7 @@ function loadLibraryComponent(name17) {
|
|
|
382583
382594
|
try {
|
|
382584
382595
|
return generated.library_components?.[fileName] || "";
|
|
382585
382596
|
} catch (_error) {
|
|
382586
|
-
|
|
382597
|
+
getLogger().warn(`[ai-service] Could not load library component: ${name17}, using file name: ${fileName}`);
|
|
382587
382598
|
return "";
|
|
382588
382599
|
}
|
|
382589
382600
|
}
|
|
@@ -382800,6 +382811,7 @@ var renderPath = (path45, params) => {
|
|
|
382800
382811
|
};
|
|
382801
382812
|
var pathKey = Symbol("pathKey");
|
|
382802
382813
|
async function applyFileTransformations(files, transformers2) {
|
|
382814
|
+
const logger3 = getLogger();
|
|
382803
382815
|
let currentFiles = files;
|
|
382804
382816
|
for (const transformer of transformers2) {
|
|
382805
382817
|
const matchingInput = {};
|
|
@@ -382818,13 +382830,13 @@ async function applyFileTransformations(files, transformers2) {
|
|
|
382818
382830
|
}).filter(Boolean);
|
|
382819
382831
|
}
|
|
382820
382832
|
if (Object.values(matchingInput).every((arr) => arr.length === 0)) {
|
|
382821
|
-
|
|
382833
|
+
logger3.debug("[ai-service] No files matched any patterns", {
|
|
382822
382834
|
transformer: transformer.constructor.name,
|
|
382823
382835
|
inputFiles: currentFiles.map((file) => file.filePath)
|
|
382824
382836
|
});
|
|
382825
382837
|
continue;
|
|
382826
382838
|
}
|
|
382827
|
-
|
|
382839
|
+
logger3.debug("[ai-service] Transforming files", {
|
|
382828
382840
|
transformer: transformer.constructor.name,
|
|
382829
382841
|
matchingFilesMap: Object.fromEntries(Object.entries(matchingInput).map(([key2, inputs]) => [
|
|
382830
382842
|
key2,
|
|
@@ -382852,7 +382864,7 @@ async function applyFileTransformations(files, transformers2) {
|
|
|
382852
382864
|
}
|
|
382853
382865
|
}
|
|
382854
382866
|
} catch (error) {
|
|
382855
|
-
|
|
382867
|
+
logger3.error(`[ai-service] Error in transformer ${transformer.constructor.name}:`, error, "matchingFilesMap:", matchingInput);
|
|
382856
382868
|
throw error;
|
|
382857
382869
|
}
|
|
382858
382870
|
const matchedFilePaths = /* @__PURE__ */ new Set();
|
|
@@ -382879,10 +382891,11 @@ var ApiBuilderTransformer = class extends FileTransformer {
|
|
|
382879
382891
|
}
|
|
382880
382892
|
runEvaluation(cwd) {
|
|
382881
382893
|
return new Promise((resolve8, reject) => {
|
|
382882
|
-
|
|
382894
|
+
const logger3 = getLogger();
|
|
382895
|
+
logger3.debug("[ai-service] Evaluating in", cwd);
|
|
382883
382896
|
const tsc = spawn3("npx", ["tsc", "--noEmitOnError", "false"], { cwd });
|
|
382884
382897
|
tsc.stdout.on("data", (data) => {
|
|
382885
|
-
|
|
382898
|
+
logger3.info("[ai-service] tsc stdout", data.toString());
|
|
382886
382899
|
});
|
|
382887
382900
|
tsc.on("close", (code) => {
|
|
382888
382901
|
if (code !== 0) {
|
|
@@ -383217,10 +383230,11 @@ ${artifactContext.content}
|
|
|
383217
383230
|
`;
|
|
383218
383231
|
}
|
|
383219
383232
|
if (LOG_SYSTEM_PROMPT) {
|
|
383220
|
-
|
|
383221
|
-
|
|
383222
|
-
|
|
383223
|
-
|
|
383233
|
+
const logger3 = getLogger();
|
|
383234
|
+
logger3.info("[ai-service] " + "=".repeat(80));
|
|
383235
|
+
logger3.info("SYSTEM PROMPT:");
|
|
383236
|
+
logger3.info(systemPrompt);
|
|
383237
|
+
logger3.info("[ai-service] " + "=".repeat(80));
|
|
383224
383238
|
}
|
|
383225
383239
|
return systemPrompt;
|
|
383226
383240
|
};
|
|
@@ -389415,6 +389429,7 @@ var doLLMGenerating = (clark, { anthropicProvider, artifactProcessor }) => {
|
|
|
389415
389429
|
const transitionTo = transitionFrom(clark);
|
|
389416
389430
|
const sendUserMessage = sendUserMessageChannel(clark);
|
|
389417
389431
|
const sendUserCompletion = sendUserCompletionChannel(clark);
|
|
389432
|
+
const logger3 = getLogger();
|
|
389418
389433
|
return async ({ event }) => {
|
|
389419
389434
|
switch (event.type) {
|
|
389420
389435
|
case AGENT_PLANNED: {
|
|
@@ -389474,15 +389489,15 @@ var doLLMGenerating = (clark, { anthropicProvider, artifactProcessor }) => {
|
|
|
389474
389489
|
case "file":
|
|
389475
389490
|
break;
|
|
389476
389491
|
case "step-start":
|
|
389477
|
-
|
|
389492
|
+
logger3.debug("[ai-service] Step started:", chunk.messageId);
|
|
389478
389493
|
break;
|
|
389479
389494
|
case "step-finish":
|
|
389480
389495
|
resultBuffer.maybeFlush(true);
|
|
389481
|
-
|
|
389496
|
+
logger3.debug("[ai-service] Step finished:", chunk.messageId);
|
|
389482
389497
|
break;
|
|
389483
389498
|
case "error":
|
|
389484
389499
|
{
|
|
389485
|
-
|
|
389500
|
+
logger3.error("[ai-service] LLM error chunk:", chunk);
|
|
389486
389501
|
let error = {
|
|
389487
389502
|
type: "unknown"
|
|
389488
389503
|
};
|
|
@@ -389534,7 +389549,7 @@ var doLLMGenerating = (clark, { anthropicProvider, artifactProcessor }) => {
|
|
|
389534
389549
|
case "source":
|
|
389535
389550
|
break;
|
|
389536
389551
|
default:
|
|
389537
|
-
|
|
389552
|
+
logger3.error("[ai-service] Unhandled chunk type:", chunk.type);
|
|
389538
389553
|
break;
|
|
389539
389554
|
}
|
|
389540
389555
|
}
|
|
@@ -389560,7 +389575,7 @@ init_cjs_shims();
|
|
|
389560
389575
|
|
|
389561
389576
|
// ../../../vite-plugin-file-sync/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js
|
|
389562
389577
|
init_cjs_shims();
|
|
389563
|
-
var
|
|
389578
|
+
var import_yaml4 = __toESM(require_dist(), 1);
|
|
389564
389579
|
var src2 = { apis: Paths.ApiYamls };
|
|
389565
389580
|
var dest2 = src2;
|
|
389566
389581
|
var AddMetadataToApiYamlTransformer = class extends FileTransformer {
|
|
@@ -389573,7 +389588,7 @@ var AddMetadataToApiYamlTransformer = class extends FileTransformer {
|
|
|
389573
389588
|
const transformed = [];
|
|
389574
389589
|
for (const api of src6.apis) {
|
|
389575
389590
|
try {
|
|
389576
|
-
const apiDefinition =
|
|
389591
|
+
const apiDefinition = (0, import_yaml4.parse)(api.content);
|
|
389577
389592
|
if (!apiDefinition.metadata) {
|
|
389578
389593
|
apiDefinition.metadata = {};
|
|
389579
389594
|
}
|
|
@@ -389585,7 +389600,7 @@ var AddMetadataToApiYamlTransformer = class extends FileTransformer {
|
|
|
389585
389600
|
apiDefinition.trigger.application = {};
|
|
389586
389601
|
}
|
|
389587
389602
|
apiDefinition.trigger.application.id = this.config.applicationId;
|
|
389588
|
-
const updatedContent =
|
|
389603
|
+
const updatedContent = (0, import_yaml4.stringify)(apiDefinition, {
|
|
389589
389604
|
aliasDuplicateObjects: false,
|
|
389590
389605
|
lineWidth: 120
|
|
389591
389606
|
});
|
|
@@ -389594,7 +389609,7 @@ var AddMetadataToApiYamlTransformer = class extends FileTransformer {
|
|
|
389594
389609
|
content: updatedContent
|
|
389595
389610
|
});
|
|
389596
389611
|
} catch (error) {
|
|
389597
|
-
|
|
389612
|
+
getLogger().error(`[ai-service] Failed to add metadata:`, error, "yaml:", api);
|
|
389598
389613
|
transformed.push(api);
|
|
389599
389614
|
}
|
|
389600
389615
|
}
|
|
@@ -389901,7 +389916,7 @@ var AiService = class extends EventEmitter10 {
|
|
|
389901
389916
|
if (!handler) {
|
|
389902
389917
|
throw new Error(`No handler for state ${to}`);
|
|
389903
389918
|
}
|
|
389904
|
-
|
|
389919
|
+
getLogger().info(`[ai-service] Transitioned from ${from} to ${to} with event ${event.type}`);
|
|
389905
389920
|
await handler(transition);
|
|
389906
389921
|
};
|
|
389907
389922
|
};
|
|
@@ -389911,7 +389926,7 @@ var AiService = class extends EventEmitter10 {
|
|
|
389911
389926
|
throw new Error("Service is unavailable");
|
|
389912
389927
|
}
|
|
389913
389928
|
if (this.isBusy()) {
|
|
389914
|
-
|
|
389929
|
+
getLogger().warn("[ai-service] Service is busy. State:", this.clark.state);
|
|
389915
389930
|
throw new Error("Service is busy");
|
|
389916
389931
|
}
|
|
389917
389932
|
const transitionTo = transitionFrom(this.clark);
|
|
@@ -389947,7 +389962,7 @@ var AiService = class extends EventEmitter10 {
|
|
|
389947
389962
|
}
|
|
389948
389963
|
handleBuildSystemError(error) {
|
|
389949
389964
|
if (this.clark.state !== ClarkStateNames.RuntimeReviewing) {
|
|
389950
|
-
|
|
389965
|
+
getLogger().warn("[ai-service] Build system error occurred but AI service is not in runtime reviewing state", getErrorMeta(error));
|
|
389951
389966
|
return;
|
|
389952
389967
|
}
|
|
389953
389968
|
const transitionTo = transitionFrom(this.clark);
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/cli",
|
|
3
|
-
"version": "2.0.3-next.
|
|
3
|
+
"version": "2.0.3-next.149",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Official Superblocks CLI",
|
|
6
6
|
"homepage": "https://www.superblocks.com",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@eslint/js": "^9.16.0",
|
|
44
44
|
"@oclif/test": "^4.1.11",
|
|
45
|
-
"@superblocksteam/sdk": "2.0.3-next.
|
|
45
|
+
"@superblocksteam/sdk": "2.0.3-next.149",
|
|
46
46
|
"@superblocksteam/shared": "0.9115.0",
|
|
47
|
-
"@superblocksteam/util": "2.0.3-next.
|
|
47
|
+
"@superblocksteam/util": "2.0.3-next.149",
|
|
48
48
|
"@types/babel__core": "^7.20.0",
|
|
49
49
|
"@types/chai": "^4",
|
|
50
50
|
"@types/fs-extra": "^11.0.1",
|