@bonginkan/maria 4.2.26 → 4.2.27

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.2.26
1
+ # MARIA - AI Development Platform v4.2.27
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.2.26 (September 3, 2025)
13
+ ## 🚀 What's New in v4.2.27 (September 3, 2025)
14
14
 
15
15
  ### 🏗️ Build Status - All Systems Operational ✅
16
16
  - **CLI NPM Package**: ESM + CJS builds successful (2.02MB/1.16MB)
@@ -748,10 +748,10 @@ await secureWorkflow.executeWithAuth(workflowDefinition, securityContext);
748
748
  ### Quick Installation
749
749
  ```bash
750
750
  # Install globally (recommended)
751
- npm install -g @bonginkan/maria@4.2.26
751
+ npm install -g @bonginkan/maria@4.2.27
752
752
 
753
753
  # Verify installation
754
- maria --version # Should show v4.2.26
754
+ maria --version # Should show v4.2.27
755
755
 
756
756
  # Initialize with authentication
757
757
  maria /login # Setup OAuth2.0 + PKCE authentication
@@ -952,7 +952,7 @@ MARIA CODE is distributed under a comprehensive licensing system designed for in
952
952
 
953
953
  *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.*
954
954
 
955
- **Transform your development experience today**: `npm install -g @bonginkan/maria@4.2.26`
955
+ **Transform your development experience today**: `npm install -g @bonginkan/maria@4.2.27`
956
956
 
957
957
  🌐 **Official Website**: [https://maria-code.ai](https://maria-code.ai)
958
958
  💬 **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-11T03:44:20.654Z",
3
+ "generatedAt": "2025-09-11T06:54:41.422Z",
4
4
  "totalCommands": 12,
5
5
  "readyCount": 12,
6
6
  "partialCount": 0,
@@ -24329,8 +24329,8 @@ var require_package = __commonJS({
24329
24329
  "package.json"(exports, module) {
24330
24330
  module.exports = {
24331
24331
  name: "@bonginkan/maria",
24332
- version: "4.2.26",
24333
- description: "\u{1F680} MARIA v4.2.26 - Enterprise AI Development Platform with 100% Command Availability. 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.",
24332
+ version: "4.2.27",
24333
+ description: "\u{1F680} MARIA v4.2.27 - Enterprise AI Development Platform with 100% Command Availability. 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.",
24334
24334
  keywords: [
24335
24335
  "ai",
24336
24336
  "cli",
@@ -26536,7 +26536,7 @@ var init_AuthenticationManager = __esm({
26536
26536
  const response2 = await fetch(`${this.apiBase}/api/user/profile`, {
26537
26537
  headers: {
26538
26538
  "Authorization": `Bearer ${tokens.accessToken}`,
26539
- "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.2.26"}`
26539
+ "User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.2.27"}`
26540
26540
  }
26541
26541
  });
26542
26542
  if (response2.status === 401) {
@@ -28917,26 +28917,22 @@ var init_continuation = __esm({
28917
28917
 
28918
28918
  // src/services/ai-response/responders/question.ts
28919
28919
  function buildQuestionResponse(options2) {
28920
- const { question, isJapanese, topics = [], includeExample = true } = options2;
28920
+ const { question, topics = [], includeExample = true } = options2;
28921
+ const isJapanese = false;
28921
28922
  const parts = [];
28922
28923
  if (process.env.MARIA_PLAIN_OUTPUT === "1" || process.env.MARIA_DISABLE_GUIDED_FLOW === "1") {
28923
28924
  return "";
28924
28925
  }
28925
28926
  const cleanQuestion = cleanUserInput(question);
28926
28927
  parts.push(
28927
- isJapanese ? `\u3054\u8CEA\u554F\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u300C${cleanQuestion}\u300D\u306B\u3064\u3044\u3066\u8AAC\u660E\u3057\u307E\u3059\u3002` : `Great question about "${cleanQuestion}". Let me explain.`
28928
+ `Great question about "${cleanQuestion}". Let me explain.`
28928
28929
  );
28929
28930
  parts.push("");
28930
28931
  parts.push(
28931
- createSectionHeader(isJapanese ? "\u56DE\u7B54\u306E\u69CB\u6210" : "Answer Structure", 3)
28932
+ createSectionHeader("Answer Structure", 3)
28932
28933
  );
28933
28934
  parts.push("");
28934
- const structure = isJapanese ? [
28935
- "\u80CC\u666F\u3068\u57FA\u672C\u6982\u5FF5",
28936
- "\u5B9F\u88C5\u65B9\u6CD5(\u6700\u5C0F\u4F8B)",
28937
- "\u30D9\u30B9\u30C8\u30D7\u30E9\u30AF\u30C6\u30A3\u30B9\u3068\u6CE8\u610F\u70B9",
28938
- "\u5B9F\u969B\u306E\u4F7F\u7528\u4F8B"
28939
- ] : [
28935
+ const structure = [
28940
28936
  "Background & Concepts",
28941
28937
  "Implementation (minimal example)",
28942
28938
  "Best practices & pitfalls",
@@ -28945,14 +28941,14 @@ function buildQuestionResponse(options2) {
28945
28941
  parts.push(formatList(structure, true));
28946
28942
  parts.push("");
28947
28943
  parts.push(
28948
- createSectionHeader(isJapanese ? "\u7C21\u6F54\u306A\u56DE\u7B54" : "Quick Answer", 3)
28944
+ createSectionHeader("Quick Answer", 3)
28949
28945
  );
28950
28946
  parts.push("");
28951
28947
  parts.push(generateQuickAnswer(question, isJapanese, topics));
28952
28948
  parts.push("");
28953
28949
  if (includeExample && shouldIncludeCode(question)) {
28954
28950
  parts.push(
28955
- createSectionHeader(isJapanese ? "\u30B3\u30FC\u30C9\u4F8B" : "Code Example", 3)
28951
+ createSectionHeader("Code Example", 3)
28956
28952
  );
28957
28953
  parts.push("");
28958
28954
  parts.push(generateExampleCode(topics));
@@ -28960,17 +28956,12 @@ function buildQuestionResponse(options2) {
28960
28956
  }
28961
28957
  parts.push(
28962
28958
  createSectionHeader(
28963
- isJapanese ? "\u8A73\u7D30\u3092\u77E5\u308A\u305F\u3044\u5834\u5408" : "Want to know more?",
28959
+ "Want to know more?",
28964
28960
  3
28965
28961
  )
28966
28962
  );
28967
28963
  parts.push("");
28968
- const detailOptions = isJapanese ? [
28969
- "\u8A73\u7D30\u306A\u5B9F\u88C5\u4F8B\u3092\u898B\u308B",
28970
- "\u95A2\u9023\u3059\u308B\u6982\u5FF5\u3092\u5B66\u3076",
28971
- "\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0",
28972
- "\u5B9F\u969B\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3078\u306E\u9069\u7528"
28973
- ] : [
28964
+ const detailOptions = [
28974
28965
  "See detailed implementation",
28975
28966
  "Learn related concepts",
28976
28967
  "Troubleshooting guide",
@@ -28979,7 +28970,7 @@ function buildQuestionResponse(options2) {
28979
28970
  parts.push(formatList(detailOptions, true));
28980
28971
  parts.push("");
28981
28972
  parts.push(
28982
- isJapanese ? "\u756A\u53F7\u3092\u9078\u3093\u3067\u8A73\u7D30\u3092\u78BA\u8A8D\u3059\u308B\u304B\u3001\u8FFD\u52A0\u306E\u8CEA\u554F\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002" : "Choose a number for details or ask a follow-up question."
28973
+ "Choose a number for details or ask a follow-up question."
28983
28974
  );
28984
28975
  return parts.join("\n");
28985
28976
  }
@@ -29060,7 +29051,6 @@ function solution(input: string): string {
29060
29051
  function buildComprehensiveAnswer(question, detectedTopics, isJapanese) {
29061
29052
  return buildQuestionResponse({
29062
29053
  question,
29063
- isJapanese,
29064
29054
  topics: detectedTopics,
29065
29055
  includeExample: true
29066
29056
  });
@@ -29411,7 +29401,7 @@ ${prompt}`,
29411
29401
  return generateNextAPITemplate(isJapanese);
29412
29402
  return "";
29413
29403
  case "QUESTION":
29414
- return buildComprehensiveAnswer(userInput, topics, isJapanese);
29404
+ return buildComprehensiveAnswer(userInput, topics);
29415
29405
  case "CONTINUATION": {
29416
29406
  const contextPreview = context2.recentMessages.slice(-3).map((m2) => m2.content).join(" ");
29417
29407
  return buildSmartContinuation(contextPreview, topics, isJapanese);
@@ -29758,6 +29748,10 @@ var init_interactive_cli = __esm({
29758
29748
  isWaitingForInput = false;
29759
29749
  // Added: prevent duplicate enter handling
29760
29750
  segmenter = null;
29751
+ lastRenderLines = 0;
29752
+ // Track how many terminal lines the last render occupied
29753
+ lastCursorRowOffset = 0;
29754
+ // Row offset within the last rendered block where cursor ended
29761
29755
  constructor(options2 = {}) {
29762
29756
  this.options = {
29763
29757
  maxSuggestions: options2.maxSuggestions || 5,
@@ -29964,11 +29958,11 @@ var init_interactive_cli = __esm({
29964
29958
  this.dropdown.hide();
29965
29959
  this.isShowingSuggestions = false;
29966
29960
  this.suggestions = [];
29967
- const promptLength = 2;
29968
- readline3__namespace.cursorTo(process.stdout, this.cursorPosition + promptLength);
29961
+ this.render();
29969
29962
  } else {
29970
29963
  this.currentInput = "";
29971
29964
  this.cursorPosition = 0;
29965
+ this.lastRenderLines = 0;
29972
29966
  this.render();
29973
29967
  }
29974
29968
  }
@@ -30038,16 +30032,45 @@ var init_interactive_cli = __esm({
30038
30032
  if (this.overlaysSuspended) {
30039
30033
  return;
30040
30034
  }
30041
- readline3__namespace.cursorTo(process.stdout, 0);
30042
- readline3__namespace.clearLine(process.stdout, 0);
30035
+ const stdout2 = process.stdout;
30036
+ const columns = Math.max(1, stdout2.columns || 80);
30037
+ readline3__namespace.cursorTo(stdout2, 0);
30038
+ if (this.lastRenderLines > 0) {
30039
+ if (this.lastCursorRowOffset > 0) {
30040
+ readline3__namespace.moveCursor(stdout2, 0, -this.lastCursorRowOffset);
30041
+ }
30042
+ if (this.lastRenderLines > 1) {
30043
+ readline3__namespace.moveCursor(stdout2, 0, this.lastRenderLines - 1);
30044
+ }
30045
+ for (let i2 = 0; i2 < this.lastRenderLines; i2++) {
30046
+ readline3__namespace.clearLine(stdout2, 0);
30047
+ if (i2 < this.lastRenderLines - 1) {
30048
+ readline3__namespace.moveCursor(stdout2, 0, -1);
30049
+ }
30050
+ }
30051
+ readline3__namespace.cursorTo(stdout2, 0);
30052
+ }
30043
30053
  const prompt = chalk28__default.default.cyan("> ");
30044
30054
  const displayInput = this.currentInput;
30045
- process.stdout.write(prompt + displayInput);
30055
+ stdout2.write(prompt + displayInput);
30046
30056
  const promptColumns = 2;
30057
+ const totalColumns = promptColumns + stringWidth2(displayInput);
30058
+ const newRenderLines = Math.max(1, Math.ceil(totalColumns / columns));
30047
30059
  const leftText = this.sliceByGraphemes(displayInput, 0, this.cursorPosition);
30048
30060
  const leftColumns = stringWidth2(leftText);
30049
- const actualCursorPos = promptColumns + leftColumns;
30050
- readline3__namespace.cursorTo(process.stdout, actualCursorPos);
30061
+ const cursorAbsolute = promptColumns + leftColumns;
30062
+ const targetRowOffset = Math.floor(cursorAbsolute / columns);
30063
+ const targetCol = cursorAbsolute % columns;
30064
+ if (newRenderLines > 1) {
30065
+ readline3__namespace.moveCursor(stdout2, 0, -(newRenderLines - 1));
30066
+ }
30067
+ readline3__namespace.cursorTo(stdout2, 0);
30068
+ if (targetRowOffset > 0) {
30069
+ readline3__namespace.moveCursor(stdout2, 0, targetRowOffset);
30070
+ }
30071
+ readline3__namespace.cursorTo(stdout2, targetCol);
30072
+ this.lastRenderLines = newRenderLines;
30073
+ this.lastCursorRowOffset = targetRowOffset;
30051
30074
  }
30052
30075
  /**
30053
30076
  * Count graphemes (visible characters)
@@ -30157,6 +30180,7 @@ var init_interactive_cli = __esm({
30157
30180
  this.suggestions = [];
30158
30181
  this.selectedIndex = 0;
30159
30182
  this.previousSuggestionsCount = 0;
30183
+ this.lastRenderLines = 0;
30160
30184
  readline3__namespace.cursorTo(process.stdout, 0);
30161
30185
  readline3__namespace.clearLine(process.stdout, 0);
30162
30186
  }
@@ -30170,6 +30194,7 @@ var init_interactive_cli = __esm({
30170
30194
  this.selectedIndex = 0;
30171
30195
  this.isShowingSuggestions = false;
30172
30196
  this.isWaitingForInput = true;
30197
+ this.lastRenderLines = 0;
30173
30198
  process.stdout.write(prompt);
30174
30199
  return new Promise((resolve8) => {
30175
30200
  const handler = (input3) => {
@@ -30186,6 +30211,7 @@ var init_interactive_cli = __esm({
30186
30211
  prompt() {
30187
30212
  this.currentInput = "";
30188
30213
  this.cursorPosition = 0;
30214
+ this.lastRenderLines = 0;
30189
30215
  this.render();
30190
30216
  }
30191
30217
  /**
@@ -30199,6 +30225,7 @@ var init_interactive_cli = __esm({
30199
30225
  process.stdin.setRawMode(false);
30200
30226
  }
30201
30227
  this.rl.close();
30228
+ this.lastRenderLines = 0;
30202
30229
  }
30203
30230
  /**
30204
30231
  * Get readline interface
@@ -48409,7 +48436,7 @@ var init_about_command = __esm({
48409
48436
  async execute(args2, context2) {
48410
48437
  const output3 = [];
48411
48438
  output3.push("");
48412
- output3.push(chalk28__default.default.cyan.bold("\u{1F916} About MARIA v4.2.26"));
48439
+ output3.push(chalk28__default.default.cyan.bold("\u{1F916} About MARIA v4.2.27"));
48413
48440
  output3.push(chalk28__default.default.gray("\u2550".repeat(40)));
48414
48441
  output3.push("");
48415
48442
  output3.push(chalk28__default.default.white.bold("MARIA - Minimal API, Maximum Power"));
@@ -59916,8 +59943,7 @@ async function startInteractiveSession() {
59916
59943
  if (interactiveCLI) {
59917
59944
  while (true) {
59918
59945
  try {
59919
- const prompt = chalk28__default.default.gray("> ");
59920
- process.stdout.write(prompt);
59946
+ interactiveCLI.prompt();
59921
59947
  const line = await interactiveCLI.question("");
59922
59948
  console.log();
59923
59949
  if (line.toLowerCase() === "exit" || line.toLowerCase() === "quit") {