@superblocksteam/cli 2.0.3-next.147 → 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 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.147 linux-x64 node-v20.19.0
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 yaml4 = require_js_yaml();
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 } = yaml4.load(config2.orchestrion);
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.147",
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.147",
331256
- "@superblocksteam/vite-plugin-file-sync": "2.0.3-next.147",
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.147";
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
- console.debug("Pre-fetching node_modules for", templateName);
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
- console.debug("Rendering template", templateName, "to", templateDir);
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
- console.warn(`No transition for event '${event.type}' from state '${fromState}'`);
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
- await this.onTransition?.({
382339
- from: fromState,
382340
- to: toState,
382341
- event
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
- console.warn("Generated markdown modules not found. Run `pnpm generate:markdown` first.");
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
- console.warn(`Invalid path format: ${path45}. Expected "module/name"`);
382578
+ getLogger().warn(`[ai-service] Invalid path format: ${path45}. Expected "module/name"`);
382579
+ return "";
382570
382580
  }
382571
- } catch (_error) {
382572
- console.warn(`Could not load subprompt: ${path45}`);
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
- console.warn(`Could not load library component: ${name17}, using file name: ${fileName}`);
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
- console.debug("No files matched any patterns", {
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
- console.debug("Transforming files", {
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
- console.error(`Error in transformer ${transformer.constructor.name}:`, error, "matchingFilesMap:", matchingInput);
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
- console.debug("Evaluating in", cwd);
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
- console.log("tsc stdout", data.toString());
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
- console.log("=".repeat(80));
383221
- console.log("SYSTEM PROMPT:");
383222
- console.log(systemPrompt);
383223
- console.log("=".repeat(80));
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
- console.debug("Step started:", chunk.messageId);
389492
+ logger3.debug("[ai-service] Step started:", chunk.messageId);
389478
389493
  break;
389479
389494
  case "step-finish":
389480
389495
  resultBuffer.maybeFlush(true);
389481
- console.debug("Step finished:", chunk.messageId);
389496
+ logger3.debug("[ai-service] Step finished:", chunk.messageId);
389482
389497
  break;
389483
389498
  case "error":
389484
389499
  {
389485
- console.error("LLM error chunk:", chunk);
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
- console.error("Unhandled chunk type:", chunk.type);
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 yaml3 = __toESM(require_dist(), 1);
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 = yaml3.parse(api.content);
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 = yaml3.stringify(apiDefinition, {
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
- console.error(`Failed to add metadata:`, error, "yaml:", api);
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
- console.log(`Transitioned from ${from} to ${to} with event ${event.type}`);
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
- console.error("Service is busy. state:", this.clark.state);
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
- console.warn("Build system error occurred but AI service is not in runtime reviewing state", error);
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);
@@ -509,5 +509,5 @@
509
509
  "strict": true
510
510
  }
511
511
  },
512
- "version": "2.0.3-next.147"
512
+ "version": "2.0.3-next.149"
513
513
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/cli",
3
- "version": "2.0.3-next.147",
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.147",
45
+ "@superblocksteam/sdk": "2.0.3-next.149",
46
46
  "@superblocksteam/shared": "0.9115.0",
47
- "@superblocksteam/util": "2.0.3-next.147",
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",