@bonginkan/maria 4.2.25 → 4.2.26
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 +5 -5
- package/dist/READY.manifest.json +1 -1
- package/dist/bin/maria.cjs +131 -13
- package/dist/bin/maria.cjs.map +1 -1
- package/dist/cli.cjs +201 -83
- package/dist/cli.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/server/express-server.cjs +2 -2
- package/dist/server/express-server.cjs.map +1 -1
- package/package.json +2 -2
- package/src/slash-commands/READY.manifest.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# MARIA - AI Development Platform v4.2.
|
|
1
|
+
# MARIA - AI Development Platform v4.2.26
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@bonginkan/maria)
|
|
4
4
|
[](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.
|
|
13
|
+
## 🚀 What's New in v4.2.26 (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.
|
|
751
|
+
npm install -g @bonginkan/maria@4.2.26
|
|
752
752
|
|
|
753
753
|
# Verify installation
|
|
754
|
-
maria --version # Should show v4.2.
|
|
754
|
+
maria --version # Should show v4.2.26
|
|
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.
|
|
955
|
+
**Transform your development experience today**: `npm install -g @bonginkan/maria@4.2.26`
|
|
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)
|
package/dist/READY.manifest.json
CHANGED
package/dist/bin/maria.cjs
CHANGED
|
@@ -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.
|
|
24333
|
-
description: "\u{1F680} MARIA v4.2.
|
|
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.",
|
|
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.
|
|
26539
|
+
"User-Agent": `maria-cli/${process.env.CLI_VERSION || "4.2.26"}`
|
|
26540
26540
|
}
|
|
26541
26541
|
});
|
|
26542
26542
|
if (response2.status === 401) {
|
|
@@ -29659,6 +29659,79 @@ var init_autocomplete_dropdown = __esm({
|
|
|
29659
29659
|
}
|
|
29660
29660
|
});
|
|
29661
29661
|
|
|
29662
|
+
// node_modules/.pnpm/string-width@8.0.0/node_modules/string-width/index.js
|
|
29663
|
+
function baseVisible(segment) {
|
|
29664
|
+
return segment.replace(leadingNonPrintingRegex, "");
|
|
29665
|
+
}
|
|
29666
|
+
function isZeroWidthCluster(segment) {
|
|
29667
|
+
return zeroWidthClusterRegex.test(segment);
|
|
29668
|
+
}
|
|
29669
|
+
function isDoubleWidthEmojiCluster(segment) {
|
|
29670
|
+
const visible = baseVisible(segment);
|
|
29671
|
+
const baseScalar = visible.codePointAt(0);
|
|
29672
|
+
const baseChar = String.fromCodePoint(baseScalar);
|
|
29673
|
+
const baseIsEmojiPresentation = emojiPresentationRegex.test(baseChar);
|
|
29674
|
+
const hasVs16 = segment.includes("\uFE0F");
|
|
29675
|
+
const hasVs15 = segment.includes("\uFE0E");
|
|
29676
|
+
const codePointCount = [...segment].length;
|
|
29677
|
+
const multiScalarMeaningful = codePointCount > 1 && !(codePointCount === 2 && hasVs15 && !hasVs16);
|
|
29678
|
+
return hasVs16 || baseIsEmojiPresentation && !hasVs15 || multiScalarMeaningful;
|
|
29679
|
+
}
|
|
29680
|
+
function trailingHalfwidthWidth(segment, eastAsianWidthOptions) {
|
|
29681
|
+
let extra = 0;
|
|
29682
|
+
if (segment.length > 1) {
|
|
29683
|
+
for (const char of segment.slice(1)) {
|
|
29684
|
+
if (char >= "\uFF00" && char <= "\uFFEF") {
|
|
29685
|
+
extra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);
|
|
29686
|
+
}
|
|
29687
|
+
}
|
|
29688
|
+
}
|
|
29689
|
+
return extra;
|
|
29690
|
+
}
|
|
29691
|
+
function stringWidth2(input3, options2 = {}) {
|
|
29692
|
+
if (typeof input3 !== "string" || input3.length === 0) {
|
|
29693
|
+
return 0;
|
|
29694
|
+
}
|
|
29695
|
+
const {
|
|
29696
|
+
ambiguousIsNarrow = true,
|
|
29697
|
+
countAnsiEscapeCodes = false
|
|
29698
|
+
} = options2;
|
|
29699
|
+
let string = input3;
|
|
29700
|
+
if (!countAnsiEscapeCodes) {
|
|
29701
|
+
string = stripAnsi(string);
|
|
29702
|
+
}
|
|
29703
|
+
if (string.length === 0) {
|
|
29704
|
+
return 0;
|
|
29705
|
+
}
|
|
29706
|
+
let width = 0;
|
|
29707
|
+
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
29708
|
+
for (const { segment } of segmenter2.segment(string)) {
|
|
29709
|
+
if (isZeroWidthCluster(segment)) {
|
|
29710
|
+
continue;
|
|
29711
|
+
}
|
|
29712
|
+
if (rgiEmojiRegex.test(segment) && isDoubleWidthEmojiCluster(segment)) {
|
|
29713
|
+
width += 2;
|
|
29714
|
+
continue;
|
|
29715
|
+
}
|
|
29716
|
+
const codePoint = baseVisible(segment).codePointAt(0);
|
|
29717
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
29718
|
+
width += trailingHalfwidthWidth(segment, eastAsianWidthOptions);
|
|
29719
|
+
}
|
|
29720
|
+
return width;
|
|
29721
|
+
}
|
|
29722
|
+
var segmenter2, zeroWidthClusterRegex, leadingNonPrintingRegex, rgiEmojiRegex, emojiPresentationRegex;
|
|
29723
|
+
var init_string_width2 = __esm({
|
|
29724
|
+
"node_modules/.pnpm/string-width@8.0.0/node_modules/string-width/index.js"() {
|
|
29725
|
+
init_strip_ansi();
|
|
29726
|
+
init_get_east_asian_width();
|
|
29727
|
+
segmenter2 = new Intl.Segmenter();
|
|
29728
|
+
zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Mark}|\\p{Surrogate})+$", "v");
|
|
29729
|
+
leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
|
|
29730
|
+
rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
29731
|
+
emojiPresentationRegex = new RegExp("^\\p{Emoji_Presentation}$", "v");
|
|
29732
|
+
}
|
|
29733
|
+
});
|
|
29734
|
+
|
|
29662
29735
|
// src/services/interactive-cli.ts
|
|
29663
29736
|
var interactive_cli_exports = {};
|
|
29664
29737
|
__export(interactive_cli_exports, {
|
|
@@ -29669,6 +29742,7 @@ var init_interactive_cli = __esm({
|
|
|
29669
29742
|
"src/services/interactive-cli.ts"() {
|
|
29670
29743
|
init_command_groups();
|
|
29671
29744
|
init_autocomplete_dropdown();
|
|
29745
|
+
init_string_width2();
|
|
29672
29746
|
InteractiveCLI = class {
|
|
29673
29747
|
rl;
|
|
29674
29748
|
currentInput = "";
|
|
@@ -29683,6 +29757,7 @@ var init_interactive_cli = __esm({
|
|
|
29683
29757
|
// Added: suspend overlays during /code execution
|
|
29684
29758
|
isWaitingForInput = false;
|
|
29685
29759
|
// Added: prevent duplicate enter handling
|
|
29760
|
+
segmenter = null;
|
|
29686
29761
|
constructor(options2 = {}) {
|
|
29687
29762
|
this.options = {
|
|
29688
29763
|
maxSuggestions: options2.maxSuggestions || 5,
|
|
@@ -29695,6 +29770,11 @@ var init_interactive_cli = __esm({
|
|
|
29695
29770
|
terminal: true
|
|
29696
29771
|
});
|
|
29697
29772
|
this.dropdown = new AutocompleteDropdown();
|
|
29773
|
+
try {
|
|
29774
|
+
this.segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
29775
|
+
} catch {
|
|
29776
|
+
this.segmenter = null;
|
|
29777
|
+
}
|
|
29698
29778
|
if (process.stdin.isTTY) {
|
|
29699
29779
|
process.stdin.setRawMode(true);
|
|
29700
29780
|
}
|
|
@@ -29820,7 +29900,9 @@ var init_interactive_cli = __esm({
|
|
|
29820
29900
|
* Handle character input
|
|
29821
29901
|
*/
|
|
29822
29902
|
handleCharacter(char) {
|
|
29823
|
-
|
|
29903
|
+
const left = this.sliceByGraphemes(this.currentInput, 0, this.cursorPosition);
|
|
29904
|
+
const right = this.sliceByGraphemes(this.currentInput, this.cursorPosition);
|
|
29905
|
+
this.currentInput = left + char + right;
|
|
29824
29906
|
this.cursorPosition++;
|
|
29825
29907
|
void this.updateSuggestions();
|
|
29826
29908
|
this.render();
|
|
@@ -29830,7 +29912,9 @@ var init_interactive_cli = __esm({
|
|
|
29830
29912
|
*/
|
|
29831
29913
|
handleBackspace() {
|
|
29832
29914
|
if (this.cursorPosition > 0) {
|
|
29833
|
-
|
|
29915
|
+
const left = this.sliceByGraphemes(this.currentInput, 0, this.cursorPosition - 1);
|
|
29916
|
+
const right = this.sliceByGraphemes(this.currentInput, this.cursorPosition);
|
|
29917
|
+
this.currentInput = left + right;
|
|
29834
29918
|
this.cursorPosition--;
|
|
29835
29919
|
void this.updateSuggestions();
|
|
29836
29920
|
this.render();
|
|
@@ -29917,7 +30001,7 @@ var init_interactive_cli = __esm({
|
|
|
29917
30001
|
* Move cursor right
|
|
29918
30002
|
*/
|
|
29919
30003
|
moveCursorRight() {
|
|
29920
|
-
if (this.cursorPosition < this.currentInput
|
|
30004
|
+
if (this.cursorPosition < this.countGraphemes(this.currentInput)) {
|
|
29921
30005
|
this.cursorPosition++;
|
|
29922
30006
|
this.render();
|
|
29923
30007
|
}
|
|
@@ -29959,10 +30043,42 @@ var init_interactive_cli = __esm({
|
|
|
29959
30043
|
const prompt = chalk28__default.default.cyan("> ");
|
|
29960
30044
|
const displayInput = this.currentInput;
|
|
29961
30045
|
process.stdout.write(prompt + displayInput);
|
|
29962
|
-
const
|
|
29963
|
-
const
|
|
30046
|
+
const promptColumns = 2;
|
|
30047
|
+
const leftText = this.sliceByGraphemes(displayInput, 0, this.cursorPosition);
|
|
30048
|
+
const leftColumns = stringWidth2(leftText);
|
|
30049
|
+
const actualCursorPos = promptColumns + leftColumns;
|
|
29964
30050
|
readline3__namespace.cursorTo(process.stdout, actualCursorPos);
|
|
29965
30051
|
}
|
|
30052
|
+
/**
|
|
30053
|
+
* Count graphemes (visible characters)
|
|
30054
|
+
*/
|
|
30055
|
+
countGraphemes(input3) {
|
|
30056
|
+
if (!input3) return 0;
|
|
30057
|
+
if (this.segmenter) {
|
|
30058
|
+
let count = 0;
|
|
30059
|
+
for (const _ of this.segmenter.segment(input3)) count++;
|
|
30060
|
+
return count;
|
|
30061
|
+
}
|
|
30062
|
+
return Array.from(input3).length;
|
|
30063
|
+
}
|
|
30064
|
+
/**
|
|
30065
|
+
* Slice string by grapheme indices [start, end)
|
|
30066
|
+
*/
|
|
30067
|
+
sliceByGraphemes(input3, start, end) {
|
|
30068
|
+
if (!input3) return "";
|
|
30069
|
+
if (start < 0) start = 0;
|
|
30070
|
+
if (end !== void 0 && end < start) end = start;
|
|
30071
|
+
if (this.segmenter) {
|
|
30072
|
+
const segs = Array.from(this.segmenter.segment(input3));
|
|
30073
|
+
const s3 = Math.min(start, segs.length);
|
|
30074
|
+
const e3 = end === void 0 ? segs.length : Math.min(end, segs.length);
|
|
30075
|
+
return segs.slice(s3, e3).map((seg) => seg.segment).join("");
|
|
30076
|
+
}
|
|
30077
|
+
const arr = Array.from(input3);
|
|
30078
|
+
const s2 = Math.min(start, arr.length);
|
|
30079
|
+
const e2 = end === void 0 ? arr.length : Math.min(end, arr.length);
|
|
30080
|
+
return arr.slice(s2, e2).join("");
|
|
30081
|
+
}
|
|
29966
30082
|
/**
|
|
29967
30083
|
* Update only the selection indicator without redrawing the entire box
|
|
29968
30084
|
*/
|
|
@@ -29970,8 +30086,9 @@ var init_interactive_cli = __esm({
|
|
|
29970
30086
|
if (!this.isShowingSuggestions || this.suggestions.length === 0) {
|
|
29971
30087
|
return;
|
|
29972
30088
|
}
|
|
29973
|
-
const
|
|
29974
|
-
const
|
|
30089
|
+
const promptColumns = 2;
|
|
30090
|
+
const leftText = this.sliceByGraphemes(this.currentInput, 0, this.cursorPosition);
|
|
30091
|
+
const savedX = promptColumns + stringWidth2(leftText);
|
|
29975
30092
|
readline3__namespace.moveCursor(process.stdout, 0, 2);
|
|
29976
30093
|
this.suggestions.forEach((suggestion, index2) => {
|
|
29977
30094
|
const isSelected = index2 === this.selectedIndex;
|
|
@@ -29995,8 +30112,9 @@ var init_interactive_cli = __esm({
|
|
|
29995
30112
|
* Render autocomplete suggestions - downward only
|
|
29996
30113
|
*/
|
|
29997
30114
|
renderSuggestionsDownward() {
|
|
29998
|
-
const
|
|
29999
|
-
const
|
|
30115
|
+
const promptColumns = 2;
|
|
30116
|
+
const leftText = this.sliceByGraphemes(this.currentInput, 0, this.cursorPosition);
|
|
30117
|
+
const savedX = promptColumns + stringWidth2(leftText);
|
|
30000
30118
|
process.stdout.write("\n");
|
|
30001
30119
|
process.stdout.write(chalk28__default.default.white("\u256D\u2500\u2500\u2500\u2500 Command Suggestions \u2500\u2500\u2500\u2500\u256E\n"));
|
|
30002
30120
|
this.suggestions.forEach((suggestion, index2) => {
|
|
@@ -48291,7 +48409,7 @@ var init_about_command = __esm({
|
|
|
48291
48409
|
async execute(args2, context2) {
|
|
48292
48410
|
const output3 = [];
|
|
48293
48411
|
output3.push("");
|
|
48294
|
-
output3.push(chalk28__default.default.cyan.bold("\u{1F916} About MARIA v4.2.
|
|
48412
|
+
output3.push(chalk28__default.default.cyan.bold("\u{1F916} About MARIA v4.2.26"));
|
|
48295
48413
|
output3.push(chalk28__default.default.gray("\u2550".repeat(40)));
|
|
48296
48414
|
output3.push("");
|
|
48297
48415
|
output3.push(chalk28__default.default.white.bold("MARIA - Minimal API, Maximum Power"));
|