@bonginkan/maria 2.0.5 → 2.0.6
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 +4 -4
- package/dist/bin/maria.js +134 -30
- package/dist/bin/maria.js.map +1 -1
- package/dist/cli.js +133 -29
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +307 -1
- package/dist/index.js +2388 -537
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 🤖 MARIA Platform
|
|
1
|
+
# 🤖 MARIA Platform v2.0.6 "Memory Intelligence Edition"
|
|
2
2
|
|
|
3
3
|
[](https://www.typescriptlang.org/)
|
|
4
4
|
[](https://nodejs.org/)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[](https://github.com/bonginkan/maria)
|
|
10
10
|
[](https://github.com/bonginkan/maria)
|
|
11
11
|
|
|
12
|
-
> 🎉 **MARIA Platform
|
|
12
|
+
> 🎉 **MARIA Platform v2.0.6** - Enterprise AI Development CLI with **100% Tested & Verified Commands**, **Revolutionary Dual-Layer Memory System**, **Context-Aware Intelligence**, **Complete Local LLM Integration** (Ollama, vLLM, LM Studio), **Personalized Learning**, 50+ Interactive Commands, and **Privacy-First Development** Environment!
|
|
13
13
|
|
|
14
14
|
## 🖥️ **MARIA CODE CLI Interface**
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ _MARIA's beautiful startup interface with automatic AI service initialization an
|
|
|
19
19
|
|
|
20
20
|
## 🌟 Key Features - Local AI & Privacy-First Development
|
|
21
21
|
|
|
22
|
-
### 🧠 **
|
|
22
|
+
### 🧠 **Revolutionary Dual-Layer Memory System (v2.0.6)**
|
|
23
23
|
|
|
24
24
|
- **System 1 (Fast/Intuitive)**: Instant pattern recognition and cache-based responses
|
|
25
25
|
- **System 2 (Deliberate/Analytical)**: Deep reasoning traces and decision trees
|
|
@@ -178,7 +178,7 @@ npm install -g @bonginkan/maria
|
|
|
178
178
|
|
|
179
179
|
# Verify installation
|
|
180
180
|
maria --version
|
|
181
|
-
# Output: MARIA Platform
|
|
181
|
+
# Output: MARIA Platform v2.0.6 "Memory Intelligence Edition"
|
|
182
182
|
|
|
183
183
|
# Setup local AI models (optional)
|
|
184
184
|
maria setup-ollama # Install and configure Ollama
|
package/dist/bin/maria.js
CHANGED
|
@@ -157,8 +157,8 @@ var init_openai_provider = __esm({
|
|
|
157
157
|
}
|
|
158
158
|
name = "OpenAI";
|
|
159
159
|
models = [
|
|
160
|
-
"gpt-5
|
|
161
|
-
"gpt-5-mini
|
|
160
|
+
"gpt-5",
|
|
161
|
+
"gpt-5-mini",
|
|
162
162
|
"gpt-4o",
|
|
163
163
|
"gpt-4o-mini",
|
|
164
164
|
"gpt-4-turbo",
|
|
@@ -286,7 +286,7 @@ var init_anthropic_provider = __esm({
|
|
|
286
286
|
}
|
|
287
287
|
name = "Anthropic";
|
|
288
288
|
models = [
|
|
289
|
-
"claude-
|
|
289
|
+
"claude-4.1",
|
|
290
290
|
"claude-3-5-sonnet-20241022",
|
|
291
291
|
"claude-3-5-haiku-20241022",
|
|
292
292
|
"claude-3-opus-20240229",
|
|
@@ -584,7 +584,9 @@ var init_grok_provider = __esm({
|
|
|
584
584
|
}
|
|
585
585
|
name = "Grok";
|
|
586
586
|
models = [
|
|
587
|
-
"grok-4
|
|
587
|
+
"grok-4",
|
|
588
|
+
"grok-beta",
|
|
589
|
+
"grok-2",
|
|
588
590
|
"llama-3.3-70b-versatile",
|
|
589
591
|
"llama-3.1-70b-versatile",
|
|
590
592
|
"llama-3.1-8b-instant",
|
|
@@ -1703,6 +1705,30 @@ var init_manager = __esm({
|
|
|
1703
1705
|
}
|
|
1704
1706
|
}
|
|
1705
1707
|
}
|
|
1708
|
+
const cloudProviders = ["openai", "anthropic", "google", "grok"];
|
|
1709
|
+
const defaultCloudModels = {
|
|
1710
|
+
openai: ["gpt-5", "gpt-5-mini", "gpt-4o", "gpt-4o-mini", "o1-preview", "o1-mini"],
|
|
1711
|
+
anthropic: ["claude-4.1", "claude-3-5-sonnet-20241022", "claude-3-5-haiku-20241022", "claude-3-opus-20240229"],
|
|
1712
|
+
google: ["gemini-2.5-pro", "gemini-2.5-flash", "gemini-1.5-pro", "gemini-1.5-flash"],
|
|
1713
|
+
grok: ["grok-4", "grok-beta", "grok-2"]
|
|
1714
|
+
};
|
|
1715
|
+
for (const providerName of cloudProviders) {
|
|
1716
|
+
if (!this.availableProviders.has(providerName)) {
|
|
1717
|
+
const models = defaultCloudModels[providerName] || [];
|
|
1718
|
+
const modelInfos = models.map((modelName) => ({
|
|
1719
|
+
id: `${providerName}-${modelName}`,
|
|
1720
|
+
name: modelName,
|
|
1721
|
+
provider: providerName,
|
|
1722
|
+
description: `${modelName} from ${providerName}`,
|
|
1723
|
+
contextLength: 8192,
|
|
1724
|
+
capabilities: ["text", "code", "vision"],
|
|
1725
|
+
available: false,
|
|
1726
|
+
// Mark as unavailable (need API key)
|
|
1727
|
+
recommendedFor: ["general"]
|
|
1728
|
+
}));
|
|
1729
|
+
allModels.push(...modelInfos);
|
|
1730
|
+
}
|
|
1731
|
+
}
|
|
1706
1732
|
return allModels;
|
|
1707
1733
|
}
|
|
1708
1734
|
selectOptimalProvider(_taskType, priorityMode = "auto") {
|
|
@@ -2422,7 +2448,9 @@ var init_config_manager = __esm({
|
|
|
2422
2448
|
autoStart: true,
|
|
2423
2449
|
healthMonitoring: true,
|
|
2424
2450
|
language: "auto",
|
|
2425
|
-
offlineMode: false
|
|
2451
|
+
offlineMode: false,
|
|
2452
|
+
model: "gpt-5-mini",
|
|
2453
|
+
provider: "openai"
|
|
2426
2454
|
};
|
|
2427
2455
|
}
|
|
2428
2456
|
mergeConfig(newConfig) {
|
|
@@ -2645,6 +2673,50 @@ Context from memory:
|
|
|
2645
2673
|
this.config.set("priority", mode);
|
|
2646
2674
|
this.router.updatePriorityMode(mode);
|
|
2647
2675
|
}
|
|
2676
|
+
/**
|
|
2677
|
+
* Switch to a specific model
|
|
2678
|
+
*/
|
|
2679
|
+
async switchModel(modelId) {
|
|
2680
|
+
try {
|
|
2681
|
+
const models = await this.getModels();
|
|
2682
|
+
const targetModel = models.find((m) => m.id === modelId || m.name === modelId);
|
|
2683
|
+
if (!targetModel) {
|
|
2684
|
+
return {
|
|
2685
|
+
success: false,
|
|
2686
|
+
message: `Model not found: ${modelId}`
|
|
2687
|
+
};
|
|
2688
|
+
}
|
|
2689
|
+
if (!targetModel.available) {
|
|
2690
|
+
return {
|
|
2691
|
+
success: false,
|
|
2692
|
+
message: `Model ${targetModel.name} is not available. Please check API keys.`
|
|
2693
|
+
};
|
|
2694
|
+
}
|
|
2695
|
+
this.config.set("model", targetModel.name);
|
|
2696
|
+
this.config.set("provider", targetModel.provider);
|
|
2697
|
+
this.router.updatePreferredProvider(targetModel.provider, targetModel.name);
|
|
2698
|
+
return {
|
|
2699
|
+
success: true,
|
|
2700
|
+
message: `Switched to ${targetModel.name} (${targetModel.provider})`
|
|
2701
|
+
};
|
|
2702
|
+
} catch (error) {
|
|
2703
|
+
return {
|
|
2704
|
+
success: false,
|
|
2705
|
+
message: `Failed to switch model: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
2706
|
+
};
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
/**
|
|
2710
|
+
* Get current active model
|
|
2711
|
+
*/
|
|
2712
|
+
getCurrentModel() {
|
|
2713
|
+
const currentModel = this.config.get("model");
|
|
2714
|
+
const currentProvider = this.config.get("provider");
|
|
2715
|
+
if (currentModel && currentProvider) {
|
|
2716
|
+
return { name: currentModel, provider: currentProvider };
|
|
2717
|
+
}
|
|
2718
|
+
return null;
|
|
2719
|
+
}
|
|
2648
2720
|
/**
|
|
2649
2721
|
* Get current configuration
|
|
2650
2722
|
*/
|
|
@@ -25597,17 +25669,36 @@ async function showModels(maria) {
|
|
|
25597
25669
|
try {
|
|
25598
25670
|
const models = await maria.getModels();
|
|
25599
25671
|
const available = models.filter((m) => m.available);
|
|
25600
|
-
|
|
25601
|
-
|
|
25672
|
+
const unavailable = models.filter((m) => !m.available);
|
|
25673
|
+
if (available.length === 0 && unavailable.length === 0) {
|
|
25674
|
+
console.log(chalk13__default.default.yellow("No models found"));
|
|
25602
25675
|
return;
|
|
25603
25676
|
}
|
|
25604
|
-
|
|
25605
|
-
|
|
25606
|
-
const
|
|
25607
|
-
|
|
25608
|
-
|
|
25677
|
+
if (available.length > 0) {
|
|
25678
|
+
console.log(chalk13__default.default.green("\u2705 Available Models:"));
|
|
25679
|
+
for (const model of available) {
|
|
25680
|
+
const provider = chalk13__default.default.gray(`[${model.provider}]`);
|
|
25681
|
+
const capabilities = model.capabilities ? model.capabilities.join(", ") : "No capabilities listed";
|
|
25682
|
+
console.log(` \u2705 ${chalk13__default.default.bold(model.name)} ${provider}`);
|
|
25683
|
+
console.log(` ${chalk13__default.default.gray(capabilities)}`);
|
|
25684
|
+
}
|
|
25685
|
+
console.log("");
|
|
25686
|
+
}
|
|
25687
|
+
if (unavailable.length > 0) {
|
|
25688
|
+
console.log(chalk13__default.default.yellow("\u26A0\uFE0F Cloud Models (Require API Keys):"));
|
|
25689
|
+
for (const model of unavailable) {
|
|
25690
|
+
const provider = chalk13__default.default.gray(`[${model.provider}]`);
|
|
25691
|
+
const capabilities = model.capabilities ? model.capabilities.join(", ") : "No capabilities listed";
|
|
25692
|
+
console.log(` \u274C ${chalk13__default.default.white(model.name)} ${provider}`);
|
|
25693
|
+
console.log(` ${chalk13__default.default.gray(capabilities)}`);
|
|
25694
|
+
}
|
|
25695
|
+
console.log("");
|
|
25696
|
+
console.log(chalk13__default.default.gray("\u{1F4A1} To use cloud models, set environment variables:"));
|
|
25697
|
+
console.log(chalk13__default.default.cyan(" export OPENAI_API_KEY=your_key"));
|
|
25698
|
+
console.log(chalk13__default.default.cyan(" export ANTHROPIC_API_KEY=your_key"));
|
|
25699
|
+
console.log(chalk13__default.default.cyan(" export GOOGLE_API_KEY=your_key"));
|
|
25700
|
+
console.log("");
|
|
25609
25701
|
}
|
|
25610
|
-
console.log("");
|
|
25611
25702
|
} catch (error) {
|
|
25612
25703
|
console.error(chalk13__default.default.red("\u274C Failed to get models:"), error);
|
|
25613
25704
|
}
|
|
@@ -25672,26 +25763,34 @@ async function showModelSelector(maria, args) {
|
|
|
25672
25763
|
try {
|
|
25673
25764
|
const models = await maria.getModels();
|
|
25674
25765
|
const available = models.filter((m) => m.available);
|
|
25766
|
+
const allModels = models;
|
|
25675
25767
|
if (args.length > 0) {
|
|
25676
25768
|
const modelName = args.join(" ");
|
|
25677
|
-
const targetModel =
|
|
25769
|
+
const targetModel = allModels.find(
|
|
25678
25770
|
(m) => m.name.toLowerCase().includes(modelName.toLowerCase()) || m.provider.toLowerCase().includes(modelName.toLowerCase())
|
|
25679
25771
|
);
|
|
25680
25772
|
if (targetModel) {
|
|
25681
|
-
|
|
25682
|
-
|
|
25683
|
-
|
|
25684
|
-
|
|
25685
|
-
|
|
25686
|
-
|
|
25687
|
-
|
|
25773
|
+
if (targetModel.available) {
|
|
25774
|
+
console.log(
|
|
25775
|
+
chalk13__default.default.green(`\u2705 Target model found: ${targetModel.name} (${targetModel.provider})`)
|
|
25776
|
+
);
|
|
25777
|
+
console.log(chalk13__default.default.yellow("Note: Model switching will be implemented in a future version"));
|
|
25778
|
+
console.log(
|
|
25779
|
+
chalk13__default.default.gray("Currently, you can switch models using environment variables or CLI options")
|
|
25780
|
+
);
|
|
25781
|
+
} else {
|
|
25782
|
+
console.log(
|
|
25783
|
+
chalk13__default.default.yellow(`\u26A0\uFE0F Target model found but unavailable: ${targetModel.name} (${targetModel.provider})`)
|
|
25784
|
+
);
|
|
25785
|
+
console.log(chalk13__default.default.gray(`This model requires API key for ${targetModel.provider}`));
|
|
25786
|
+
}
|
|
25688
25787
|
} else {
|
|
25689
25788
|
console.log(chalk13__default.default.red(`\u274C Model not found: ${modelName}`));
|
|
25690
25789
|
console.log(chalk13__default.default.gray("Available models listed below:"));
|
|
25691
25790
|
}
|
|
25692
25791
|
return;
|
|
25693
25792
|
}
|
|
25694
|
-
await showInteractiveModelSelector(
|
|
25793
|
+
await showInteractiveModelSelector(allModels);
|
|
25695
25794
|
} catch (error) {
|
|
25696
25795
|
console.error(chalk13__default.default.red("\u274C Failed to access model selector:"), error);
|
|
25697
25796
|
}
|
|
@@ -25712,25 +25811,33 @@ async function showInteractiveModelSelector(models) {
|
|
|
25712
25811
|
console.log(chalk13__default.default.gray("Use \u2191/\u2193 to navigate, Enter to select, Esc to cancel\n"));
|
|
25713
25812
|
console.log(chalk13__default.default.yellow("\u{1F4CB} Available AI Models:\n"));
|
|
25714
25813
|
models.forEach((model, index) => {
|
|
25715
|
-
const status = model.available ? "\u2705" : "\
|
|
25814
|
+
const status = model.available ? "\u2705" : "\u274C";
|
|
25716
25815
|
const pricing = model.pricing ? ` ($${model.pricing.input}/${model.pricing.output})` : "";
|
|
25717
25816
|
const isSelected = index === selectedIndex;
|
|
25817
|
+
const availabilityNote = model.available ? "" : " (API key required)";
|
|
25718
25818
|
if (isSelected) {
|
|
25719
25819
|
console.log(
|
|
25720
|
-
chalk13__default.default.bgBlue.white(` \u25B6 ${status} ${model.name} [${model.provider}]${pricing}`)
|
|
25820
|
+
chalk13__default.default.bgBlue.white(` \u25B6 ${status} ${model.name} [${model.provider}]${pricing}${availabilityNote}`)
|
|
25721
25821
|
);
|
|
25722
25822
|
console.log(chalk13__default.default.bgBlue.white(` ${model.description}`));
|
|
25723
25823
|
if (model.capabilities && model.capabilities.length > 0) {
|
|
25724
25824
|
console.log(chalk13__default.default.bgBlue.white(` Capabilities: ${model.capabilities.join(", ")}`));
|
|
25725
25825
|
}
|
|
25826
|
+
if (!model.available) {
|
|
25827
|
+
console.log(chalk13__default.default.bgBlue.white(` Status: Requires ${model.provider.toUpperCase()}_API_KEY environment variable`));
|
|
25828
|
+
}
|
|
25726
25829
|
} else {
|
|
25830
|
+
const nameColor = model.available ? chalk13__default.default.bold : chalk13__default.default.white;
|
|
25727
25831
|
console.log(
|
|
25728
|
-
` ${status} ${
|
|
25832
|
+
` ${status} ${nameColor(model.name)} ${chalk13__default.default.gray(`[${model.provider}]`)}${pricing}${availabilityNote}`
|
|
25729
25833
|
);
|
|
25730
25834
|
console.log(` ${chalk13__default.default.gray(model.description)}`);
|
|
25731
25835
|
if (model.capabilities && model.capabilities.length > 0) {
|
|
25732
25836
|
console.log(` ${chalk13__default.default.cyan("Capabilities:")} ${model.capabilities.join(", ")}`);
|
|
25733
25837
|
}
|
|
25838
|
+
if (!model.available) {
|
|
25839
|
+
console.log(` ${chalk13__default.default.yellow("Status:")} Requires ${model.provider.toUpperCase()}_API_KEY environment variable`);
|
|
25840
|
+
}
|
|
25734
25841
|
}
|
|
25735
25842
|
console.log("");
|
|
25736
25843
|
});
|
|
@@ -25753,7 +25860,6 @@ async function showInteractiveModelSelector(models) {
|
|
|
25753
25860
|
renderModels();
|
|
25754
25861
|
break;
|
|
25755
25862
|
case "\r":
|
|
25756
|
-
isSelecting = false;
|
|
25757
25863
|
cleanup();
|
|
25758
25864
|
const selectedModel = models[selectedIndex];
|
|
25759
25865
|
console.log(
|
|
@@ -25771,13 +25877,11 @@ async function showInteractiveModelSelector(models) {
|
|
|
25771
25877
|
resolve();
|
|
25772
25878
|
break;
|
|
25773
25879
|
case "\x1B":
|
|
25774
|
-
isSelecting = false;
|
|
25775
25880
|
cleanup();
|
|
25776
25881
|
console.log(chalk13__default.default.gray("\n\u{1F4CB} Model selection cancelled\n"));
|
|
25777
25882
|
resolve();
|
|
25778
25883
|
break;
|
|
25779
25884
|
case "":
|
|
25780
|
-
isSelecting = false;
|
|
25781
25885
|
cleanup();
|
|
25782
25886
|
console.log(chalk13__default.default.gray("\n\u{1F4CB} Model selection cancelled\n"));
|
|
25783
25887
|
resolve();
|
|
@@ -28359,8 +28463,8 @@ var init_package = __esm({
|
|
|
28359
28463
|
"package.json"() {
|
|
28360
28464
|
package_default = {
|
|
28361
28465
|
name: "@bonginkan/maria",
|
|
28362
|
-
version: "2.0.
|
|
28363
|
-
description: "\u{1F9E0} MARIA Platform v2.0.
|
|
28466
|
+
version: "2.0.5",
|
|
28467
|
+
description: "\u{1F9E0} MARIA Platform v2.0.5 Memory Intelligence Edition - Revolutionary Dual-Layer Memory System with Complete Local AI Integration (Ollama + vLLM + LM Studio), Context-Aware Learning, 50+ Cognitive Modes, and Enterprise-Grade Development Intelligence",
|
|
28364
28468
|
keywords: [
|
|
28365
28469
|
"ai",
|
|
28366
28470
|
"cli",
|