@bonginkan/maria 4.3.28 → 4.3.30

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
@@ -1,4 +1,4 @@
1
- # MARIA - AI Development Platform v4.3.28
1
+ # MARIA - AI Development Platform v4.3.30
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@bonginkan/maria.svg)](https://www.npmjs.com/package/@bonginkan/maria)
4
4
  [![License](https://img.shields.io/badge/license-Multi--tier-blue.svg)](LICENSE)
@@ -10,7 +10,7 @@
10
10
 
11
11
  > **Enterprise-grade AI development platform with 100% command availability and comprehensive fallback support**
12
12
 
13
- ## 🚀 What's New in v4.3.28 (September 16, 2025)
13
+ ## 🚀 What's New in v4.3.30 (September 16, 2025)
14
14
 
15
15
  ### 🎯 Interactive Improvements & Choice Memory
16
16
  - **Choice Memory System**: Smart persistence of user selections across sessions
@@ -922,7 +922,7 @@ await secureWorkflow.executeWithAuth(workflowDefinition, securityContext);
922
922
  ### Quick Installation
923
923
  ```bash
924
924
  # Install globally (recommended)
925
- npm install -g @bonginkan/maria@4.3.28
925
+ npm install -g @bonginkan/maria@4.3.30
926
926
 
927
927
  # Verify installation
928
928
  maria --version # Should show v4.3.9
@@ -1126,7 +1126,7 @@ MARIA CODE is distributed under a comprehensive licensing system designed for in
1126
1126
 
1127
1127
  *MARIA v4.1.4 represents the pinnacle of multimodal AI development platform evolution - combining revolutionary voice-to-code capabilities, advanced memory systems, and comprehensive command ecosystems with enterprise-grade security and performance. This release establishes MARIA as the definitive choice for developers and Fortune 500 enterprises seeking intelligent, multimodal development experiences with GraphRAG intelligence, multilingual support, and zero-anxiety coding workflows.*
1128
1128
 
1129
- **Transform your development experience today**: `npm install -g @bonginkan/maria@4.3.28`
1129
+ **Transform your development experience today**: `npm install -g @bonginkan/maria@4.3.30`
1130
1130
 
1131
1131
  🌐 **Official Website**: [https://maria-code.ai](https://maria-code.ai)
1132
1132
  💬 **Community**: [https://discord.gg/SMSmSGcEQy](https://discord.gg/SMSmSGcEQy)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "lite-1.0.0",
3
- "generatedAt": "2025-09-26T05:40:48.488Z",
3
+ "generatedAt": "2025-09-26T08:17:24.407Z",
4
4
  "totalCommands": 16,
5
5
  "readyCount": 16,
6
6
  "partialCount": 0,
@@ -26066,8 +26066,8 @@ var require_package = __commonJS({
26066
26066
  "package.json"(exports, module) {
26067
26067
  module.exports = {
26068
26068
  name: "@bonginkan/maria",
26069
- version: "4.3.28",
26070
- 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.",
26069
+ version: "4.3.30",
26070
+ description: "\u{1F680} MARIA v4.3.30 - 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.",
26071
26071
  keywords: [
26072
26072
  "ai",
26073
26073
  "cli",
@@ -28099,7 +28099,7 @@ var init_AuthenticationManager = __esm({
28099
28099
  const response = await fetch(`${this.apiBase}/api/user/profile`, {
28100
28100
  headers: {
28101
28101
  "Authorization": `Bearer ${tokens2.accessToken}`,
28102
- "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.28"}`
28102
+ "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.30"}`
28103
28103
  }
28104
28104
  });
28105
28105
  if (response.status === 401) {
@@ -28731,7 +28731,7 @@ async function callApi(path60, init3 = {}) {
28731
28731
  "Authorization": `Bearer ${token}`,
28732
28732
  "X-Device-Id": getDeviceId(),
28733
28733
  "X-Session-Id": getSessionId() || "",
28734
- "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.28"}`,
28734
+ "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.3.30"}`,
28735
28735
  "Content-Type": init3.headers?.["Content-Type"] || "application/json"
28736
28736
  });
28737
28737
  const doFetch = async (token) => {
@@ -47985,8 +47985,19 @@ async function runImagePipeline(params2, opts) {
47985
47985
  metrics: { durationMs, retries: totalRetries, fallbacks: 0 },
47986
47986
  trace: Math.random().toString(36).slice(2, 8).toUpperCase()
47987
47987
  };
47988
- const items = successes.filter(Boolean).map((b) => ({ bytes: b, ext: `.${params2.format}` }));
47989
- const saved = await saveArtifacts({ root: opts.root, kind: "image", baseDir: opts.outDir, flat: true, skipManifest: true }, items, manifest);
47988
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "image";
47989
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
47990
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
47991
+ if (!promptPrefix) promptPrefix = "untitled";
47992
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
47993
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
47994
+ const filtered = successes.filter(Boolean);
47995
+ const items = filtered.map((b, i2) => ({
47996
+ bytes: b,
47997
+ ext: `.${params2.format}`,
47998
+ logicalName: `${promptPrefix}-${utc}${filtered.length > 1 ? `-${String(i2 + 1).padStart(2, "0")}` : ""}`
47999
+ }));
48000
+ const saved = await saveArtifacts({ root: opts.root, kind: "image", baseDir, flat: true, skipManifest: true }, items, manifest);
47990
48001
  progress.done();
47991
48002
  return {
47992
48003
  saved,
@@ -48435,14 +48446,23 @@ var init_image_command = __esm({
48435
48446
  const pathMod = await import('path');
48436
48447
  const fsMod = await import('fs/promises');
48437
48448
  const savedPaths = [];
48449
+ const baseDir = "image";
48450
+ const rawPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_");
48451
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
48452
+ if (!promptPrefix) promptPrefix = "untitled";
48453
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
48454
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48455
+ let idx = 0;
48438
48456
  for (const f3 of filesInline) {
48439
48457
  const original = String(f3.file || "").replace(/^[\\/]+/, "");
48440
- const name2 = pathMod.basename(original);
48441
- const full = pathMod.resolve(root, name2);
48458
+ const ext2 = pathMod.extname(original) || `.${cli.format}`;
48459
+ const name2 = `${promptPrefix}-${utc}${filesInline.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
48460
+ const rel = pathMod.join(baseDir, name2);
48461
+ const full = pathMod.resolve(root, rel);
48442
48462
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
48443
48463
  const buf = Buffer.from(String(f3.bytesBase64 || ""), "base64");
48444
48464
  await fsMod.writeFile(full, buf);
48445
- savedPaths.push(name2);
48465
+ savedPaths.push(rel.replace(/\\/g, "/"));
48446
48466
  }
48447
48467
  const { formatImageOutput: formatImageOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
48448
48468
  const output4 = await formatImageOutput3(root, {
@@ -48468,18 +48488,24 @@ var init_image_command = __esm({
48468
48488
  const fsMod = await import('fs/promises');
48469
48489
  const base = (process.env.MARIA_API_BASE || "https://api.maria-code.ai").replace(/\/$/, "");
48470
48490
  const savedPaths = [];
48491
+ const baseDir = "image";
48492
+ const promptPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_").replace(/[^A-Za-z0-9_\-]/g, "_") || "untitled";
48493
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48494
+ let idx = 0;
48471
48495
  for (const relRaw of filesList) {
48472
48496
  const originalRel = String(relRaw || "").replace(/^[\\/]+/, "");
48473
48497
  const url2 = `${base}/${originalRel}`;
48474
- const name2 = pathMod.basename(originalRel);
48475
- const full = pathMod.resolve(root, name2);
48498
+ const ext2 = pathMod.extname(originalRel) || `.${cli.format}`;
48499
+ const name2 = `${promptPrefix}-${utc}${filesList.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
48500
+ const rel = pathMod.join(baseDir, name2);
48501
+ const full = pathMod.resolve(root, rel);
48476
48502
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
48477
48503
  const res2 = await fetch(url2);
48478
48504
  if (!res2.ok) throw new Error(`Failed to download image: ${res2.status}`);
48479
48505
  const arrayBuf = await res2.arrayBuffer();
48480
48506
  const buf = Buffer.from(arrayBuf);
48481
48507
  await fsMod.writeFile(full, buf);
48482
- savedPaths.push(name2);
48508
+ savedPaths.push(rel.replace(/\\/g, "/"));
48483
48509
  }
48484
48510
  const { formatImageOutput: formatImageOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
48485
48511
  const output4 = await formatImageOutput3(root, {
@@ -48735,8 +48761,17 @@ async function runVideoPipeline(params2, opts) {
48735
48761
  metrics: { durationMs: Date.now() - started, retries: 0, fallbacks: 0 },
48736
48762
  trace: Math.random().toString(36).slice(2, 8).toUpperCase()
48737
48763
  };
48738
- const baseDir = opts.outDir || path11__namespace.join("artifacts", "media", "videos", String(manifest2.trace));
48739
- const saved2 = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, [{ bytes, ext: ext2 }], manifest2);
48764
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
48765
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
48766
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
48767
+ if (!promptPrefix) promptPrefix = "untitled";
48768
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
48769
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48770
+ const saved2 = await saveArtifacts(
48771
+ { root: opts.root, kind: "video", baseDir, flat: true },
48772
+ [{ bytes, ext: ext2, logicalName: `${promptPrefix}-${utc}` }],
48773
+ manifest2
48774
+ );
48740
48775
  return { saved: saved2, durationMs: Date.now() - started, frames: 0, warnFallback: false, retries: 0 };
48741
48776
  }
48742
48777
  } catch {
@@ -48782,14 +48817,28 @@ async function runVideoPipeline(params2, opts) {
48782
48817
  }
48783
48818
  const outBuf = await muxFramesToMp4(tmpDir, params2.fps);
48784
48819
  {
48785
- const baseDir = opts.outDir || path11__namespace.join("artifacts", "media", "videos", String(manifest.trace));
48786
- saved = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, [{ bytes: outBuf, ext: ".mp4" }], manifest);
48820
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
48821
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
48822
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
48823
+ if (!promptPrefix) promptPrefix = "untitled";
48824
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
48825
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48826
+ saved = await saveArtifacts(
48827
+ { root: opts.root, kind: "video", baseDir, flat: true },
48828
+ [{ bytes: outBuf, ext: ".mp4", logicalName: `${promptPrefix}-${utc}` }],
48829
+ manifest
48830
+ );
48787
48831
  }
48788
48832
  await fsp__namespace.rm(tmpDir, { recursive: true, force: true });
48789
48833
  } else {
48790
- const items = frames.map((b, i2) => ({ bytes: b, ext: `.png`, logicalName: `frame-${String(i2 + 1).padStart(4, "0")}` }));
48834
+ const rawPrefix = (params2.prompt || "").slice(0, 20).replace(/\s+/g, "_");
48835
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:\"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
48836
+ if (!promptPrefix) promptPrefix = "untitled";
48837
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
48838
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48839
+ const items = frames.map((b, i2) => ({ bytes: b, ext: `.png`, logicalName: `${promptPrefix}-${utc}-frame-${String(i2 + 1).padStart(4, "0")}` }));
48791
48840
  {
48792
- const baseDir = opts.outDir || path11__namespace.join("artifacts", "media", "videos", String(manifest.trace));
48841
+ const baseDir = opts.outDir && opts.outDir.length > 0 ? opts.outDir : "video";
48793
48842
  saved = await saveArtifacts({ root: opts.root, kind: "video", baseDir, flat: true }, items, manifest);
48794
48843
  }
48795
48844
  warnFallback = true;
@@ -48881,14 +48930,23 @@ var init_video_command = __esm({
48881
48930
  const pathMod = await import('path');
48882
48931
  const fsMod = await import('fs/promises');
48883
48932
  const savedPaths = [];
48933
+ const baseDir = "video";
48934
+ const rawPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_");
48935
+ let promptPrefix = rawPrefix.replace(/[\x00-\x1F<>:"/\\|?*]/g, "_").replace(/[. ]+$/g, "");
48936
+ if (!promptPrefix) promptPrefix = "untitled";
48937
+ if (/^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i.test(promptPrefix)) promptPrefix = `${promptPrefix}_`;
48938
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48939
+ let idx = 0;
48884
48940
  for (const f3 of filesInline) {
48885
48941
  const original = String(f3.file || "").replace(/^[\\/]+/, "");
48886
- const name2 = pathMod.basename(original || `video.${cli.format}`);
48887
- const full = pathMod.resolve(root, name2);
48942
+ const ext2 = pathMod.extname(original) || `.${cli.format}`;
48943
+ const name2 = `${promptPrefix}-${utc}${filesInline.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
48944
+ const rel = pathMod.join(baseDir, name2);
48945
+ const full = pathMod.resolve(root, rel);
48888
48946
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
48889
48947
  const buf = Buffer.from(String(f3.bytesBase64 || ""), "base64");
48890
48948
  await fsMod.writeFile(full, buf);
48891
- savedPaths.push(name2);
48949
+ savedPaths.push(rel.replace(/\\/g, "/"));
48892
48950
  }
48893
48951
  const { formatVideoOutput: formatVideoOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
48894
48952
  const output4 = await formatVideoOutput3(root, {
@@ -48917,18 +48975,24 @@ var init_video_command = __esm({
48917
48975
  const fsMod = await import('fs/promises');
48918
48976
  const base = (process.env.MARIA_API_BASE || "https://api.maria-code.ai").replace(/\/$/, "");
48919
48977
  const savedPaths = [];
48978
+ const baseDir = "video";
48979
+ const promptPrefix = (cli.prompt || "").slice(0, 20).replace(/\s+/g, "_").replace(/[^A-Za-z0-9_\-]/g, "_") || "untitled";
48980
+ const utc = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
48981
+ let idx = 0;
48920
48982
  for (const relRaw of filesFromApi) {
48921
- const rel = String(relRaw || "").replace(/^[\\/]+/, "");
48922
- const url2 = `${base}/${rel}`;
48923
- const name2 = pathMod.basename(rel);
48924
- const full = pathMod.resolve(root, name2);
48983
+ const relApi = String(relRaw || "").replace(/^[\\/]+/, "");
48984
+ const url2 = `${base}/${relApi}`;
48985
+ const ext2 = pathMod.extname(relApi) || `.${cli.format}`;
48986
+ const name2 = `${promptPrefix}-${utc}${filesFromApi.length > 1 ? `-${String(++idx).padStart(2, "0")}` : ""}${ext2}`;
48987
+ const rel = pathMod.join(baseDir, name2);
48988
+ const full = pathMod.resolve(root, rel);
48925
48989
  await fsMod.mkdir(pathMod.dirname(full), { recursive: true });
48926
48990
  const res2 = await fetch(url2);
48927
48991
  if (!res2.ok) throw new Error(`Failed to download video: ${res2.status}`);
48928
48992
  const arrayBuf = await res2.arrayBuffer();
48929
48993
  const buf = Buffer.from(arrayBuf);
48930
48994
  await fsMod.writeFile(full, buf);
48931
- savedPaths.push(name2);
48995
+ savedPaths.push(rel.replace(/\\/g, "/"));
48932
48996
  }
48933
48997
  const { formatVideoOutput: formatVideoOutput3 } = await Promise.resolve().then(() => (init_cli_style(), cli_style_exports));
48934
48998
  const output4 = await formatVideoOutput3(root, {
@@ -50625,7 +50689,7 @@ var init_about_command = __esm({
50625
50689
  async execute(args2, context2) {
50626
50690
  const output3 = [];
50627
50691
  output3.push("");
50628
- output3.push(chalk14__default.default.cyan.bold("\u{1F916} About MARIA v4.3.28"));
50692
+ output3.push(chalk14__default.default.cyan.bold("\u{1F916} About MARIA v4.3.30"));
50629
50693
  output3.push(chalk14__default.default.gray("\u2550".repeat(40)));
50630
50694
  output3.push("");
50631
50695
  output3.push(chalk14__default.default.white.bold("MARIA - Minimal API, Maximum Power"));