@bonginkan/maria 4.3.28 → 4.3.29

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/cli.cjs CHANGED
@@ -1704,7 +1704,7 @@ var init_AuthenticationManager = __esm({
1704
1704
  const response = await fetch(`${this.apiBase}/api/user/profile`, {
1705
1705
  headers: {
1706
1706
  "Authorization": `Bearer ${tokens2.accessToken}`,
1707
- "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.28"}`
1707
+ "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.29"}`
1708
1708
  }
1709
1709
  });
1710
1710
  if (response.status === 401) {
@@ -2407,7 +2407,7 @@ async function callApi(path60, init3 = {}) {
2407
2407
  "Authorization": `Bearer ${token}`,
2408
2408
  "X-Device-Id": getDeviceId(),
2409
2409
  "X-Session-Id": getSessionId() || "",
2410
- "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.28"}`,
2410
+ "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.29"}`,
2411
2411
  "Content-Type": init3.headers?.["Content-Type"] || "application/json"
2412
2412
  });
2413
2413
  const doFetch = async (token) => {
@@ -16121,8 +16121,8 @@ var require_package = __commonJS({
16121
16121
  "package.json"(exports, module) {
16122
16122
  module.exports = {
16123
16123
  name: "@bonginkan/maria",
16124
- version: "4.3.28",
16125
- description: "\u{1F680} MARIA v4.3.28 - Enterprise AI Development Platform with identity system and character voice implementation. Features 74 production-ready commands with comprehensive fallback implementation, local LLM support, and zero external dependencies. Includes natural language coding, AI safety evaluation, intelligent evolution system, episodic memory with PII masking, and real-time monitoring dashboard. Built with TypeScript AST-powered code generation, OAuth2.0 + PKCE authentication, quantum-resistant cryptography, and enterprise-grade performance.",
16124
+ version: "4.3.29",
16125
+ description: "\u{1F680} MARIA v4.3.29 - Enterprise AI Development Platform with identity system and character voice implementation. Features 74 production-ready commands with comprehensive fallback implementation, local LLM support, and zero external dependencies. Includes natural language coding, AI safety evaluation, intelligent evolution system, episodic memory with PII masking, and real-time monitoring dashboard. Built with TypeScript AST-powered code generation, OAuth2.0 + PKCE authentication, quantum-resistant cryptography, and enterprise-grade performance.",
16126
16126
  keywords: [
16127
16127
  "ai",
16128
16128
  "cli",
@@ -22827,8 +22827,19 @@ async function runImagePipeline(params2, opts) {
22827
22827
  metrics: { durationMs, retries: totalRetries, fallbacks: 0 },
22828
22828
  trace: Math.random().toString(36).slice(2, 8).toUpperCase()
22829
22829
  };
22830
- const items = successes.filter(Boolean).map((b) => ({ bytes: b, ext: `.${params2.format}` }));
22831
- const saved = await saveArtifacts({ root: opts.root, kind: "image", baseDir: opts.outDir, flat: true, skipManifest: true }, items, manifest);
22830
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "image";
22831
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
22832
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
22833
+ if (!promptPrefix) promptPrefix = "untitled";
22834
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
22835
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
22836
+ const filtered = successes.filter(Boolean);
22837
+ const items = filtered.map((b, i2) => ({
22838
+ bytes: b,
22839
+ ext: `.${params2.format}`,
22840
+ logicalName: `${promptPrefix}-${utc}${filtered.length > 1 ? `-${String(i2 + 1).padStart(2, "0")}` : ""}`
22841
+ }));
22842
+ const saved = await saveArtifacts({ root: opts.root, kind: "image", baseDir, flat: true, skipManifest: true }, items, manifest);
22832
22843
  progress.done();
22833
22844
  return {
22834
22845
  saved,
@@ -23244,7 +23255,6 @@ var init_image_command = __esm({
23244
23255
  const spinner = new ProcessAnimation();
23245
23256
  spinner.start();
23246
23257
  try {
23247
- const useRemote = String(process.env.MARIA_USE_REMOTE_MEDIA || "").toLowerCase() === "1" && await authManager.isAuthenticated();
23248
23258
  if (useRemote) {
23249
23259
  try {
23250
23260
  const body = {
@@ -23277,14 +23287,23 @@ var init_image_command = __esm({
23277
23287
  const pathMod = await import('path');
23278
23288
  const fsMod = await import('fs/promises');
23279
23289
  const savedPaths = [];
23290
+ const baseDir = "image";
23291
+ const rawPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_");
23292
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
23293
+ if (!promptPrefix) promptPrefix = "untitled";
23294
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
23295
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23296
+ let idx = 0;
23280
23297
  for (const f3 of filesInline) {
23281
23298
  const original = String(f3.file || "").replace(/^[\\/]+/, "");
23282
- const name2 = pathMod.basename(original);
23283
- const full = pathMod.resolve(root, name2);
23299
+ const ext2 = pathMod.extname(original) || `.${cli.format}`;
23300
+ const name2 = `${promptPrefix}-${utc}${filesInline.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
23301
+ const rel = pathMod.join(baseDir, name2);
23302
+ const full = pathMod.resolve(root, rel);
23284
23303
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
23285
23304
  const buf = Buffer.from(String(f3.bytesBase64 || ""), "base64");
23286
23305
  await fsMod.writeFile(full, buf);
23287
- savedPaths.push(name2);
23306
+ savedPaths.push(rel.replace(/\\/g, "/"));
23288
23307
  }
23289
23308
  const { formatImageOutput: formatImageOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
23290
23309
  const output4 = await formatImageOutput3(root, {
@@ -23310,18 +23329,24 @@ var init_image_command = __esm({
23310
23329
  const fsMod = await import('fs/promises');
23311
23330
  const base = (process.env.MARIA_API_BASE || "https://api.maria-code.ai").replace(/\/$/, "");
23312
23331
  const savedPaths = [];
23332
+ const baseDir = "image";
23333
+ const promptPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_").replace(/[^A-Za-z0-9_\-]/g, "_") || "untitled";
23334
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23335
+ let idx = 0;
23313
23336
  for (const relRaw of filesList) {
23314
23337
  const originalRel = String(relRaw || "").replace(/^[\\/]+/, "");
23315
23338
  const url2 = `${base}/${originalRel}`;
23316
- const name2 = pathMod.basename(originalRel);
23317
- const full = pathMod.resolve(root, name2);
23339
+ const ext2 = pathMod.extname(originalRel) || `.${cli.format}`;
23340
+ const name2 = `${promptPrefix}-${utc}${filesList.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
23341
+ const rel = pathMod.join(baseDir, name2);
23342
+ const full = pathMod.resolve(root, rel);
23318
23343
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
23319
23344
  const res2 = await fetch(url2);
23320
23345
  if (!res2.ok) throw new Error(`Failed to download image: ${res2.status}`);
23321
23346
  const arrayBuf = await res2.arrayBuffer();
23322
23347
  const buf = Buffer.from(arrayBuf);
23323
23348
  await fsMod.writeFile(full, buf);
23324
- savedPaths.push(name2);
23349
+ savedPaths.push(rel.replace(/\\/g, "/"));
23325
23350
  }
23326
23351
  const { formatImageOutput: formatImageOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
23327
23352
  const output4 = await formatImageOutput3(root, {
@@ -23577,8 +23602,17 @@ async function runVideoPipeline(params2, opts) {
23577
23602
  metrics: { durationMs: Date.now() - started, retries: 0, fallbacks: 0 },
23578
23603
  trace: Math.random().toString(36).slice(2, 8).toUpperCase()
23579
23604
  };
23580
- const baseDir = opts.outDir || path10__namespace.join("artifacts", "media", "videos", String(manifest2.trace));
23581
- const saved2 = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, [{ bytes, ext: ext2 }], manifest2);
23605
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
23606
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
23607
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
23608
+ if (!promptPrefix) promptPrefix = "untitled";
23609
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
23610
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23611
+ const saved2 = await saveArtifacts(
23612
+ { root: opts.root, kind: "video", baseDir, flat: true },
23613
+ [{ bytes, ext: ext2, logicalName: `${promptPrefix}-${utc}` }],
23614
+ manifest2
23615
+ );
23582
23616
  return { saved: saved2, durationMs: Date.now() - started, frames: 0, warnFallback: false, retries: 0 };
23583
23617
  }
23584
23618
  } catch {
@@ -23624,14 +23658,28 @@ async function runVideoPipeline(params2, opts) {
23624
23658
  }
23625
23659
  const outBuf = await muxFramesToMp4(tmpDir, params2.fps);
23626
23660
  {
23627
- const baseDir = opts.outDir || path10__namespace.join("artifacts", "media", "videos", String(manifest.trace));
23628
- saved = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, [{ bytes: outBuf, ext: ".mp4" }], manifest);
23661
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
23662
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
23663
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
23664
+ if (!promptPrefix) promptPrefix = "untitled";
23665
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
23666
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23667
+ saved = await saveArtifacts(
23668
+ { root: opts.root, kind: "video", baseDir, flat: true },
23669
+ [{ bytes: outBuf, ext: ".mp4", logicalName: `${promptPrefix}-${utc}` }],
23670
+ manifest
23671
+ );
23629
23672
  }
23630
23673
  await fsp__namespace.rm(tmpDir, { recursive: true, force: true });
23631
23674
  } else {
23632
- const items = frames.map((b, i2) => ({ bytes: b, ext: `.png`, logicalName: `frame-${String(i2 + 1).padStart(4, "0")}` }));
23675
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
23676
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
23677
+ if (!promptPrefix) promptPrefix = "untitled";
23678
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
23679
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23680
+ const items = frames.map((b, i2) => ({ bytes: b, ext: `.png`, logicalName: `${promptPrefix}-${utc}-frame-${String(i2 + 1).padStart(4, "0")}` }));
23633
23681
  {
23634
- const baseDir = opts.outDir || path10__namespace.join("artifacts", "media", "videos", String(manifest.trace));
23682
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
23635
23683
  saved = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, items, manifest);
23636
23684
  }
23637
23685
  warnFallback = true;
@@ -23692,8 +23740,8 @@ var init_video_command = __esm({
23692
23740
  const spinner = new ProcessAnimation();
23693
23741
  spinner.start();
23694
23742
  try {
23695
- const useRemote = String(process.env.MARIA_USE_REMOTE_MEDIA || "").toLowerCase() === "1" && await authManager.isAuthenticated();
23696
- if (useRemote) {
23743
+ const useRemote2 = String(process.env.MARIA_USE_REMOTE_MEDIA || "").toLowerCase() === "1" && await authManager.isAuthenticated();
23744
+ if (useRemote2) {
23697
23745
  try {
23698
23746
  const body = {
23699
23747
  prompt: cli.prompt,
@@ -23723,14 +23771,23 @@ var init_video_command = __esm({
23723
23771
  const pathMod = await import('path');
23724
23772
  const fsMod = await import('fs/promises');
23725
23773
  const savedPaths = [];
23774
+ const baseDir = "video";
23775
+ const rawPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_");
23776
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
23777
+ if (!promptPrefix) promptPrefix = "untitled";
23778
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
23779
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23780
+ let idx = 0;
23726
23781
  for (const f3 of filesInline) {
23727
23782
  const original = String(f3.file || "").replace(/^[\\/]+/, "");
23728
- const name2 = pathMod.basename(original || `video.${cli.format}`);
23729
- const full = pathMod.resolve(root, name2);
23783
+ const ext2 = pathMod.extname(original) || `.${cli.format}`;
23784
+ const name2 = `${promptPrefix}-${utc}${filesInline.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
23785
+ const rel = pathMod.join(baseDir, name2);
23786
+ const full = pathMod.resolve(root, rel);
23730
23787
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
23731
23788
  const buf = Buffer.from(String(f3.bytesBase64 || ""), "base64");
23732
23789
  await fsMod.writeFile(full, buf);
23733
- savedPaths.push(name2);
23790
+ savedPaths.push(rel.replace(/\\/g, "/"));
23734
23791
  }
23735
23792
  const { formatVideoOutput: formatVideoOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
23736
23793
  const output4 = await formatVideoOutput3(root, {
@@ -23759,18 +23816,24 @@ var init_video_command = __esm({
23759
23816
  const fsMod = await import('fs/promises');
23760
23817
  const base = (process.env.MARIA_API_BASE || "https://api.maria-code.ai").replace(/\/$/, "");
23761
23818
  const savedPaths = [];
23819
+ const baseDir = "video";
23820
+ const promptPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_").replace(/[^A-Za-z0-9_\-]/g, "_") || "untitled";
23821
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
23822
+ let idx = 0;
23762
23823
  for (const relRaw of filesFromApi) {
23763
- const rel = String(relRaw || "").replace(/^[\\/]+/, "");
23764
- const url2 = `${base}/${rel}`;
23765
- const name2 = pathMod.basename(rel);
23766
- const full = pathMod.resolve(root, name2);
23824
+ const relApi = String(relRaw || "").replace(/^[\\/]+/, "");
23825
+ const url2 = `${base}/${relApi}`;
23826
+ const ext2 = pathMod.extname(relApi) || `.${cli.format}`;
23827
+ const name2 = `${promptPrefix}-${utc}${filesFromApi.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
23828
+ const rel = pathMod.join(baseDir, name2);
23829
+ const full = pathMod.resolve(root, rel);
23767
23830
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
23768
23831
  const res2 = await fetch(url2);
23769
23832
  if (!res2.ok) throw new Error(`Failed to download video: ${res2.status}`);
23770
23833
  const arrayBuf = await res2.arrayBuffer();
23771
23834
  const buf = Buffer.from(arrayBuf);
23772
23835
  await fsMod.writeFile(full, buf);
23773
- savedPaths.push(name2);
23836
+ savedPaths.push(rel.replace(/\\/g, "/"));
23774
23837
  }
23775
23838
  const { formatVideoOutput: formatVideoOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
23776
23839
  const output4 = await formatVideoOutput3(root, {
@@ -25753,7 +25816,7 @@ var init_about_command = __esm({
25753
25816
  async execute(args2, context2) {
25754
25817
  const output3 = [];
25755
25818
  output3.push("");
25756
- output3.push(chalk40__default.default.cyan.bold("\u{1F916} About MARIA v4.3.28"));
25819
+ output3.push(chalk40__default.default.cyan.bold("\u{1F916} About MARIA v4.3.29"));
25757
25820
  output3.push(chalk40__default.default.gray("\u2550".repeat(40)));
25758
25821
  output3.push("");
25759
25822
  output3.push(chalk40__default.default.white.bold("MARIA - Minimal API, Maximum Power"));