multimodel-dev-os 1.1.0 → 2.0.0
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/.ai/adapters/custom-adapter.example.yaml +9 -0
- package/.ai/adapters/registry.yaml +56 -0
- package/.ai/models/README.md +14 -0
- package/.ai/models/local-models.yaml +20 -0
- package/.ai/models/providers.yaml +29 -0
- package/.ai/models/registry.yaml +73 -0
- package/.ai/models/routing-presets.yaml +23 -0
- package/.ai/skills/custom-skill.example.md +15 -0
- package/.ai/templates/custom-template.example.yaml +19 -0
- package/.ai/templates/registry.yaml +522 -0
- package/README.md +30 -18
- package/bin/multimodel-dev-os.js +810 -91
- package/docs/.vitepress/config.js +36 -1
- package/docs/adapter-authoring.md +46 -0
- package/docs/agent-compatibility.md +51 -0
- package/docs/cli-roadmap.md +15 -18
- package/docs/final-launch.md +5 -4
- package/docs/local-models.md +48 -0
- package/docs/mobile-android.md +75 -0
- package/docs/model-compatibility.md +65 -0
- package/docs/model-routing.md +45 -0
- package/docs/npm-publishing.md +27 -0
- package/docs/package-safety.md +29 -0
- package/docs/provider-strategy.md +44 -0
- package/docs/public/llms-full.txt +82 -73
- package/docs/public/llms.txt +36 -34
- package/docs/quickstart.md +7 -6
- package/docs/registry-contribution.md +20 -0
- package/docs/release-policy.md +26 -0
- package/docs/skill-authoring.md +56 -0
- package/docs/template-authoring.md +65 -0
- package/docs/token-optimization.md +27 -0
- package/docs/v2-migration.md +31 -0
- package/docs/v2-release-checklist.md +30 -0
- package/docs/v2-roadmap.md +95 -0
- package/examples/expo-react-native-android/.ai/config.yaml +22 -0
- package/examples/expo-react-native-android/.ai/context/architecture.md +18 -0
- package/examples/expo-react-native-android/.ai/context/context-budget.md +4 -0
- package/examples/expo-react-native-android/.ai/context/model-map.md +6 -0
- package/examples/expo-react-native-android/.ai/context/project-brief.md +9 -0
- package/examples/expo-react-native-android/.ai/session-logs/.gitkeep +1 -0
- package/examples/expo-react-native-android/.ai/skills/expo-android-build.md +11 -0
- package/examples/expo-react-native-android/AGENTS.md +20 -0
- package/examples/expo-react-native-android/MEMORY.md +13 -0
- package/examples/expo-react-native-android/README.md +101 -0
- package/examples/expo-react-native-android/RUNBOOK.md +36 -0
- package/examples/expo-react-native-android/TASKS.md +14 -0
- package/examples/expo-react-native-android/app.config.ts +40 -0
- package/examples/expo-react-native-android/app.json +34 -0
- package/examples/expo-react-native-android/eas.json +26 -0
- package/examples/expo-react-native-android/jest.config.js +11 -0
- package/examples/expo-react-native-android/src/app/_layout.tsx +89 -0
- package/examples/expo-react-native-android/src/lib/secure-storage.ts +63 -0
- package/examples/expo-react-native-android/src/services/api-client.ts +106 -0
- package/package.json +3 -2
- package/scripts/install.ps1 +230 -230
- package/scripts/install.sh +1 -1
- package/scripts/prepublish-guard.js +43 -0
- package/scripts/verify.js +178 -1
|
@@ -32,7 +32,7 @@ export default {
|
|
|
32
32
|
'license': 'https://opensource.org/licenses/MIT',
|
|
33
33
|
'url': 'https://github.com/rizvee/multimodel-dev-os',
|
|
34
34
|
'downloadUrl': 'https://www.npmjs.com/package/multimodel-dev-os',
|
|
35
|
-
'softwareVersion': '
|
|
35
|
+
'softwareVersion': '2.0.0',
|
|
36
36
|
'description': 'Portable, vendor-neutral AI Developer OS for multi-agent coding workflows.'
|
|
37
37
|
})
|
|
38
38
|
]
|
|
@@ -62,10 +62,44 @@ export default {
|
|
|
62
62
|
{ text: 'Stable Protocol Specification', link: '/stable-protocol' },
|
|
63
63
|
{ text: 'Adapter Compatibility', link: '/compatibility' },
|
|
64
64
|
{ text: 'Upgrades & Migration', link: '/migration-guide' },
|
|
65
|
+
{ text: 'v2 Migration Guide', link: '/v2-migration' },
|
|
66
|
+
{ text: 'v2 Release Checklist', link: '/v2-release-checklist' },
|
|
67
|
+
{ text: 'Package Safety', link: '/package-safety' },
|
|
65
68
|
{ text: 'Templates QA Blueprint', link: '/template-qa' },
|
|
66
69
|
{ text: 'v1.0.0 Readiness Checklist', link: '/v1-readiness' }
|
|
67
70
|
]
|
|
68
71
|
},
|
|
72
|
+
{
|
|
73
|
+
text: 'Model Compatibility Layer',
|
|
74
|
+
items: [
|
|
75
|
+
{ text: 'Model Capabilities Registry', link: '/model-compatibility' },
|
|
76
|
+
{ text: 'Model Routing & Presets', link: '/model-routing' },
|
|
77
|
+
{ text: 'Local & Offline Models', link: '/local-models' },
|
|
78
|
+
{ text: 'API Provider Strategy', link: '/provider-strategy' }
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
text: 'Agent & IDE Extensions',
|
|
83
|
+
items: [
|
|
84
|
+
{ text: 'Agent Compatibility Mappings', link: '/agent-compatibility' },
|
|
85
|
+
{ text: 'Custom Adapters Guide', link: '/adapter-authoring' },
|
|
86
|
+
{ text: 'Template Authoring Guide', link: '/template-authoring' },
|
|
87
|
+
{ text: 'Skill Authoring Guide', link: '/skill-authoring' },
|
|
88
|
+
{ text: 'Registry Contribution Guide', link: '/registry-contribution' }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
text: 'Mobile Integration & Delivery',
|
|
93
|
+
items: [
|
|
94
|
+
{ text: 'Expo Android Delivery', link: '/mobile-android' }
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
text: 'Token Cost Optimization',
|
|
99
|
+
items: [
|
|
100
|
+
{ text: 'Token Budgets & Optimization', link: '/token-optimization' }
|
|
101
|
+
]
|
|
102
|
+
},
|
|
69
103
|
{
|
|
70
104
|
text: 'Case Studies & Playbooks',
|
|
71
105
|
items: [
|
|
@@ -108,6 +142,7 @@ export default {
|
|
|
108
142
|
{ text: 'Public Launch Checklist', link: '/launch-checklist' },
|
|
109
143
|
{ text: 'Release Playbook Template', link: '/release-template' },
|
|
110
144
|
{ text: 'CLI Roadmap', link: '/cli-roadmap' },
|
|
145
|
+
{ text: 'v2.0.0 Roadmap', link: '/v2-roadmap' },
|
|
111
146
|
{ text: 'NPM Publishing Runbook', link: '/npm-publishing' },
|
|
112
147
|
{ text: 'Pre-flight Release Testing', link: '/testing-v0.2' },
|
|
113
148
|
{ text: 'Release Policy', link: '/release-policy' },
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Custom IDE Adapter Authoring Guide
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS is fully extensible. Developers and teams can build custom adapters to route protocol directives to new IDE interfaces, command-line coding agents, or company-proprietary AI environments.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Authoring Workflow
|
|
8
|
+
|
|
9
|
+
To construct a new adapter:
|
|
10
|
+
|
|
11
|
+
### 1. Register the Adapter Metadata
|
|
12
|
+
Open [.ai/adapters/registry.yaml](file:///F:/multimodel-dev-os/.ai/adapters/registry.yaml) and declare the adapter properties:
|
|
13
|
+
```yaml
|
|
14
|
+
adapters:
|
|
15
|
+
my-custom-agent:
|
|
16
|
+
name: "My Custom Agent"
|
|
17
|
+
config_file: ".mycustomrules"
|
|
18
|
+
type: "coding-agent"
|
|
19
|
+
docs: "docs/adapters/my-custom-agent.md"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 2. Scaffold the Adapter Assets
|
|
23
|
+
Create the adapter assets directory under `adapters/my-custom-agent/`:
|
|
24
|
+
* **`adapters/my-custom-agent/setup.md`**: Guide for developers enabling this adapter.
|
|
25
|
+
* **`adapters/my-custom-agent/.mycustomrules`**: Rule boilerplate template which contains variables (e.g. system prompts or build scripts references) to be copied to project root during CLI initialization.
|
|
26
|
+
|
|
27
|
+
### 3. Register in CLI
|
|
28
|
+
Open `bin/multimodel-dev-os.js` and extend the `handleInit` mapping:
|
|
29
|
+
```javascript
|
|
30
|
+
} else if (adapter === 'my-custom-agent') {
|
|
31
|
+
const srcFile = join(sourceRoot, 'adapters/my-custom-agent/.mycustomrules');
|
|
32
|
+
const destFile = join(options.target, '.mycustomrules');
|
|
33
|
+
if (existsSync(srcFile)) {
|
|
34
|
+
writeFileSync(destFile, readFileSync(srcFile));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 4. Verify Compliance
|
|
40
|
+
Extend `scripts/verify.js` to ensure the new files are verified:
|
|
41
|
+
```javascript
|
|
42
|
+
checkFile('adapters/my-custom-agent/setup.md');
|
|
43
|
+
checkFile('adapters/my-custom-agent/.mycustomrules');
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Run `npm run verify` to confirm all assertions pass cleanly.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Coding Agent & IDE Adapter Compatibility
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS acts as an interoperability layer across modern developer agents, terminal assistants, and IDE extensions.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Agent Registry Mapping
|
|
8
|
+
Compatible configurations and destination files are detailed in [.ai/adapters/registry.yaml](file:///F:/multimodel-dev-os/.ai/adapters/registry.yaml):
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
adapters:
|
|
12
|
+
continue:
|
|
13
|
+
name: "Continue"
|
|
14
|
+
config_file: ".continue/config.json"
|
|
15
|
+
type: "editor-extension"
|
|
16
|
+
docs: "docs/adapters.md"
|
|
17
|
+
cline:
|
|
18
|
+
name: "Cline"
|
|
19
|
+
config_file: ".clinerules"
|
|
20
|
+
type: "coding-agent"
|
|
21
|
+
docs: "docs/agent-compatibility.md"
|
|
22
|
+
roo-code:
|
|
23
|
+
name: "Roo Code"
|
|
24
|
+
config_file: ".clinerules"
|
|
25
|
+
type: "coding-agent"
|
|
26
|
+
docs: "docs/agent-compatibility.md"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Supported Agent Configurations
|
|
32
|
+
|
|
33
|
+
### 1. Continue
|
|
34
|
+
* **File Target**: `.continue/config.json`
|
|
35
|
+
* **Workflow**: Integrates custom system prompts and routing matrices into the VS Code / JetBrains sidebar panel.
|
|
36
|
+
|
|
37
|
+
### 2. Cline / Roo Code
|
|
38
|
+
* **File Target**: `.clinerules`
|
|
39
|
+
* **Workflow**: Feeds strict directory layout schemas and role assignments directly to agent context loops during project scans.
|
|
40
|
+
|
|
41
|
+
### 3. Aider
|
|
42
|
+
* **File Target**: `.aider.conf.yml`
|
|
43
|
+
* **Workflow**: Centralizes exclude filters, auto-commit actions, and CLI test verification shortcuts.
|
|
44
|
+
|
|
45
|
+
### 4. Windsurf
|
|
46
|
+
* **File Target**: `.windsurfrules`
|
|
47
|
+
* **Workflow**: Injects development constraints and build commands into the IDE context window.
|
|
48
|
+
|
|
49
|
+
### 5. OpenHands / Terminal Agents
|
|
50
|
+
* **File Target**: `CLAUDE.md` / `adapters/codex/AGENTS.md`
|
|
51
|
+
* **Workflow**: Standardize shell execution targets and error-handling steps for autonomous agents.
|
package/docs/cli-roadmap.md
CHANGED
|
@@ -39,26 +39,23 @@ node bin/multimodel-dev-os.js verify
|
|
|
39
39
|
| `validate` | Strict directory schema compliance checks | v0.5.0 | ✅ Completed |
|
|
40
40
|
| `sync` | Regenerate adapter files from root AGENTS.md | v0.6.0 | 📋 Planned |
|
|
41
41
|
| `add-adapter` | Add a new adapter to the project | v0.6.0 | 📋 Planned |
|
|
42
|
+
| `models` | List configured model registry entries | v1.2.0 | Source Only |
|
|
43
|
+
| `show-model` | Inspect settings for a model registry entry | v1.2.0 | Source Only |
|
|
44
|
+
| `providers` | List configured model registry providers | v1.2.0 | Source Only |
|
|
45
|
+
| `route-model`| Route a target prompt based on presets | v1.2.0 | Source Only |
|
|
46
|
+
| `adapters` | List configured adapter registry entries | v1.2.0 | Source Only |
|
|
47
|
+
| `show-adapter`| Inspect settings for an adapter registry entry | v1.2.0 | Source Only |
|
|
48
|
+
| `skills` | List configured skill registry entries | v1.2.0 | Source Only |
|
|
49
|
+
| `show-skill` | Inspect settings for a skill registry entry | v1.2.0 | Source Only |
|
|
42
50
|
|
|
43
|
-
|
|
51
|
+
> [!NOTE]
|
|
52
|
+
> All new `v1.2.0` subcommands listed as **Source Only** are fully implemented in the source code but are unreleased on the npm package registry. To run them, execute from a clone of the GitHub repository. They will be packaged officially in the `v2.0.0` stable release.
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
- [x] Implemented advisory `doctor` command for project compatibility warnings.
|
|
47
|
-
- [x] Implemented `templates` and `show-template` commands for built-in profiles inspection.
|
|
48
|
-
- [x] Upgraded all 5 built-in template profiles with practical real-world contents.
|
|
49
|
-
- [x] Implemented dynamic context budgetary constraints and skills validation.
|
|
50
|
-
- [x] Preserved zero-dependency pure Node CLI implementations.
|
|
54
|
+
## CLI v2.0.0 Stabilization Goal
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
Ahead of the `v2.0.0` release, we will run a comprehensive compatibility pass:
|
|
57
|
+
* **Backward Compatibility**: Ensure that all new registries configurations and subcommand syntax do not break the stable `v1.0.0` and `v1.1.0` CLI behaviors.
|
|
58
|
+
* **Unified Quality Gates**: Integrate model registry and adapter configuration validation parameters directly into the standard `validate` and `doctor` command pipelines.
|
|
59
|
+
* **Cross-Platform Hardening**: Audit all commands on Windows (PowerShell/CMD), macOS, and Linux bash environments before resuming npm package publishing.
|
|
53
60
|
|
|
54
|
-
* **Adapter Autoregeneration (`sync`):** Parse custom override boundaries inside adapters and automatically synchronize them with updates in the root markdown source of truth.
|
|
55
|
-
* **Interactive Mode:** Provide step-by-step CLI options if run without arguments.
|
|
56
|
-
|
|
57
|
-
## Protocol Stabilization & v1.0.0 Freeze (v0.9.0)
|
|
58
|
-
|
|
59
|
-
In version **v0.9.0**, we pivot the roadmap to focus on **stabilization and hardening** ahead of the official `v1.0.0` freeze:
|
|
60
|
-
- **API Freeze:** The CLI syntax, standard command names (`init`, `verify`, `validate`, `doctor`, `templates`), and dynamic flags are frozen to ensure zero breaking changes in future minor patches.
|
|
61
|
-
- **Robust JSON Schemas:** Added standard validators inside `.ai/schema/` to define config and template formats.
|
|
62
|
-
- **Continuous Integration Gates:** Transitioning `validate` to serve as a strict build blocker for pulling and publishing code.
|
|
63
|
-
- **Enhanced Warning Paths:** Hardened CLI error messaging when directory write conflicts occur, mapping absolute paths cleanly.
|
|
64
61
|
|
package/docs/final-launch.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
# Final Launch Guidelines (
|
|
1
|
+
# Final Launch Guidelines (v2.0.0 Target)
|
|
2
2
|
|
|
3
3
|
This document details the final launch guidelines and distribution routines for the public releases of MultiModel Dev OS.
|
|
4
4
|
|
|
5
|
-
>
|
|
5
|
+
> [!IMPORTANT]
|
|
6
|
+
> **v2.0.0 is the active stable release.** NPM publishing is no longer paused. All Template Galaxy and Model Compatibility features are now available on the public registry.
|
|
6
7
|
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
## 1. Local Pre-flight Verification
|
|
10
11
|
|
|
11
|
-
Prior to pushing files
|
|
12
|
-
- The exact target version `
|
|
12
|
+
Prior to pushing files or preparing a release, ensure that:
|
|
13
|
+
- The exact target version starts with `2.` (e.g. `2.0.0`) in `package.json` for publishing, or remains at `1.2.0` for local development.
|
|
13
14
|
- The cross-platform verify script completes cleanly:
|
|
14
15
|
```bash
|
|
15
16
|
npm run verify
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Local & Open-Weight Offline Models Guide
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS supports offline development workflows utilizing open-weight models running on local developer hardware (via Ollama, Llama.cpp, or vLLM).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Local Models Configuration
|
|
8
|
+
Local model bindings are defined in [.ai/models/local-models.yaml](file:///F:/multimodel-dev-os/.ai/models/local-models.yaml):
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
local_engines:
|
|
12
|
+
ollama:
|
|
13
|
+
base_url: "http://localhost:11434/v1"
|
|
14
|
+
models:
|
|
15
|
+
- alias: local-coder-model
|
|
16
|
+
official_id: qwen2.5-coder:7b
|
|
17
|
+
- alias: open-weight-reasoner
|
|
18
|
+
official_id: deepseek-r1:8b
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Local Setup Instructions
|
|
24
|
+
|
|
25
|
+
### 1. Using Ollama
|
|
26
|
+
To spin up a local model runner and pull target coding weights:
|
|
27
|
+
```bash
|
|
28
|
+
# Install Ollama and run server
|
|
29
|
+
ollama run qwen2.5-coder:7b
|
|
30
|
+
|
|
31
|
+
# In another terminal tab, run MultiModel Dev OS verify
|
|
32
|
+
node bin/multimodel-dev-os.js verify
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 2. Local fallback routing
|
|
36
|
+
To configure local fallback when remote APIs are unavailable, set your primary model map to point to the local coder model:
|
|
37
|
+
```yaml
|
|
38
|
+
# .ai/context/model-map.md
|
|
39
|
+
Planning: open-weight-reasoner
|
|
40
|
+
Execution: local-coder-model
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Benefits & Optimization
|
|
46
|
+
* **Zero API Cost**: Local model queries carry no token charges.
|
|
47
|
+
* **Privacy Compliance**: No code snippets or workspace context files leave the local host machine.
|
|
48
|
+
* **Offline-Ready**: Develop and build applications on flights or remote zones with zero internet dependencies.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Production Mobile Android Setup (Expo + React Native)
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS v1.2.0 adds a dedicated production-ready template for mobile Android clients under [examples/expo-react-native-android/](file:///F:/multimodel-dev-os/examples/expo-react-native-android/).
|
|
4
|
+
|
|
5
|
+
This guide describes how to customize and deploy this template using Expo EAS Build pipelines.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Directory Structure
|
|
10
|
+
|
|
11
|
+
The `expo-react-native-android` template structures standard mobile files:
|
|
12
|
+
|
|
13
|
+
* **`app.json`**: Global metadata mapping package namespaces (`com.multimodel.devos`), app icons, orientation constraints, and runtime permissions.
|
|
14
|
+
* **`eas.json`**: Configuration profile mapping for Expo EAS Build pipelines.
|
|
15
|
+
* **`app.config.ts`**: TypeScript config dynamically mapping environment profiles.
|
|
16
|
+
* **`src/services/api-client.ts`**: Standardized fetch client with connection timeout limits.
|
|
17
|
+
* **`src/lib/secure-storage.ts`**: Storage wrapper interface utilizing `expo-secure-store`.
|
|
18
|
+
* **`src/app/_layout.tsx`**: Expo Router root Layout component displaying loading/offline network states.
|
|
19
|
+
* **`jest.config.js`**: Jest configuration setting up native Expo mocks and test suites.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Environment Configurations
|
|
24
|
+
|
|
25
|
+
EAS Build uses the `APP_ENV` environment variable to direct endpoint paths:
|
|
26
|
+
|
|
27
|
+
| Profile / APP_ENV | Target API BaseUrl | Distribution Method |
|
|
28
|
+
| :--- | :--- | :--- |
|
|
29
|
+
| `development` | `http://10.0.2.2:3000/api` | Expo Go Dev Client |
|
|
30
|
+
| `staging` | `https://staging-api.multimodel.dev` | Internal testing APK |
|
|
31
|
+
| `production` | `https://api.multimodel.dev` | Play Store AAB Bundle |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Build & Submission Command Lines
|
|
36
|
+
|
|
37
|
+
To trigger builds on EAS servers:
|
|
38
|
+
```bash
|
|
39
|
+
# Build development client APK
|
|
40
|
+
eas build --profile development --platform android
|
|
41
|
+
|
|
42
|
+
# Build staging preview APK
|
|
43
|
+
eas build --profile preview --platform android
|
|
44
|
+
|
|
45
|
+
# Build production bundle AAB
|
|
46
|
+
eas build --profile production --platform android
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 4. Mobile Quality Assurance (QA) Checklist
|
|
52
|
+
|
|
53
|
+
To verify app compliance before distribution:
|
|
54
|
+
1. **No committed secrets**: Do not write keys inside `app.config.ts` or `app.json`. Use EAS secrets vault.
|
|
55
|
+
2. **Offline Handlers**: Verify layout redirects properly to connection failure views when network states drop.
|
|
56
|
+
3. **Session Encryptions**: Confirm tokens are stored exclusively inside `secure-storage.ts` (`expo-secure-store`), not `AsyncStorage`.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 5. Android & Expo Template FAQ
|
|
61
|
+
|
|
62
|
+
### Q: Why does the API call fail in the Android Emulator when using localhost?
|
|
63
|
+
In Android emulators, `localhost` or `127.0.0.1` refers to the emulator's loopback interface itself, not your host computer. The host computer's loopback interface is mapped to the special IP address `10.0.2.2`. The `api-client` automatically resolves this default when `APP_ENV` is set to `development`.
|
|
64
|
+
|
|
65
|
+
### Q: How do I handle EAS credentials errors during eas build?
|
|
66
|
+
EAS credentials errors usually occur when the `projectId` or `owner` in `app.config.ts` does not match your Expo Developer account. To resolve this:
|
|
67
|
+
1. Log in to your Expo account via command line: `npx eas login`.
|
|
68
|
+
2. Configure your own Expo username in `app.config.ts` under `owner`.
|
|
69
|
+
3. Generate a project ID on your Expo dashboard and update the `projectId` placeholder in `app.config.ts`.
|
|
70
|
+
|
|
71
|
+
### Q: How do I test the API client's retry mechanism locally?
|
|
72
|
+
You can toggle offline mock responses by setting `useMockData: true` inside [api-client.ts](file:///f:/multimodel-dev-os/examples/expo-react-native-android/src/services/api-client.ts) constructor, or you can temporarily disconnect your development server to watch the console log warning attempts:
|
|
73
|
+
`[ApiClient] Attempt 1 failed: fetch failed. Retrying...`
|
|
74
|
+
The client will automatically retry up to 3 times before returning a `Max retries exceeded` error.
|
|
75
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Model Compatibility & Capabilities Registry
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS v1.2.0 introduces a centralized, registry-driven configuration layer to specify target AI model behaviors, token windows, cost metrics, and specialized capabilities.
|
|
4
|
+
|
|
5
|
+
This ensures that agentic coding workflows are future-proof, allowing developers to route prompts to optimal engines without updating core codebase packages.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Central Registry File
|
|
10
|
+
The core system registry resides in [.ai/models/registry.yaml](file:///F:/multimodel-dev-os/.ai/models/registry.yaml):
|
|
11
|
+
|
|
12
|
+
```yaml
|
|
13
|
+
models:
|
|
14
|
+
claude-sonnet-latest:
|
|
15
|
+
provider: anthropic
|
|
16
|
+
alias: claude-3-5-sonnet
|
|
17
|
+
official_id: claude-3-5-sonnet-20241022
|
|
18
|
+
context_window: 200000
|
|
19
|
+
tiers:
|
|
20
|
+
cost: high
|
|
21
|
+
speed: medium
|
|
22
|
+
reasoning: premium
|
|
23
|
+
coding: premium
|
|
24
|
+
capabilities:
|
|
25
|
+
vision: true
|
|
26
|
+
tool_use: true
|
|
27
|
+
|
|
28
|
+
gemini-flash-latest:
|
|
29
|
+
provider: google
|
|
30
|
+
alias: gemini-1.5-flash
|
|
31
|
+
official_id: gemini-1.5-flash-001
|
|
32
|
+
context_window: 1048576
|
|
33
|
+
tiers:
|
|
34
|
+
cost: low
|
|
35
|
+
speed: fast
|
|
36
|
+
reasoning: medium
|
|
37
|
+
coding: medium
|
|
38
|
+
capabilities:
|
|
39
|
+
vision: true
|
|
40
|
+
tool_use: true
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Schema Attributes Reference
|
|
46
|
+
|
|
47
|
+
| Property | Type | Description |
|
|
48
|
+
| :--- | :--- | :--- |
|
|
49
|
+
| `provider` | String | Matches identifier in [providers.yaml](file:///F:/multimodel-dev-os/.ai/models/providers.yaml). |
|
|
50
|
+
| `alias` | String | Common developer name or shortcut (e.g. `gpt-4o`). |
|
|
51
|
+
| `official_id` | String | Precise API endpoint identifier string. |
|
|
52
|
+
| `context_window` | Integer | Maximum token capacity of the model. |
|
|
53
|
+
| `tiers` | Object | Speed, cost, reasoning, and coding classifications (low/medium/high/premium). |
|
|
54
|
+
| `capabilities` | Object | Toggles indicating `vision` or `tool_use` (function calling) support. |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Dynamic Placeholders
|
|
59
|
+
If a model name is future-facing or unverified, it is registered as a configurable placeholder or alias:
|
|
60
|
+
* `gpt-coding-latest`
|
|
61
|
+
* `deepseek-coder-latest`
|
|
62
|
+
* `local-coder-model`
|
|
63
|
+
* `open-weight-reasoner`
|
|
64
|
+
|
|
65
|
+
This strategy prevents hardcoding unverified API configurations and allows instant mapping via localized parameters.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Multi-Model Routing & Presets Guide
|
|
2
|
+
|
|
3
|
+
To optimize context budgets and API costs, MultiModel Dev OS separates agent roles and routes tasks to specialized model families based on their complexity.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Central Routing Configuration
|
|
8
|
+
Routing policies and presets reside in [.ai/models/routing-presets.yaml](file:///F:/multimodel-dev-os/.ai/models/routing-presets.yaml):
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
presets:
|
|
12
|
+
planning:
|
|
13
|
+
primary: claude-sonnet-latest
|
|
14
|
+
fallback: gemini-pro-latest
|
|
15
|
+
debugging:
|
|
16
|
+
primary: deepseek-coder-latest
|
|
17
|
+
fallback: gemini-flash-latest
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Standard Presets Matrix
|
|
23
|
+
|
|
24
|
+
### 1. Planning (`planning` Preset)
|
|
25
|
+
* **Goal**: Architect implementation files, outline tasks checklists, and coordinate directory hierarchies.
|
|
26
|
+
* **Primary Target**: Premium reasoning models (e.g. `claude-sonnet-latest`, `gemini-pro-latest`).
|
|
27
|
+
* **Requirements**: Comprehensive context processing, high structured-output obedience.
|
|
28
|
+
|
|
29
|
+
### 2. Code Writing (`coding` Preset)
|
|
30
|
+
* **Goal**: Generate precise diffs and write modular, functional scripts.
|
|
31
|
+
* **Primary Target**: Fast, high-accuracy coding models (e.g. `deepseek-coder-latest`, `claude-sonnet-latest`).
|
|
32
|
+
* **Requirements**: Coding tier premium classification.
|
|
33
|
+
|
|
34
|
+
### 3. Quick Fixes & Verification (`verification` Preset)
|
|
35
|
+
* **Goal**: Run unit tests, verify CLI diagnostic outputs, and perform style compliance checks.
|
|
36
|
+
* **Primary Target**: Low-cost, fast inference models (e.g. `gemini-flash-latest`).
|
|
37
|
+
* **Requirements**: Speed tier fast classification, tool calling support.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Fallback Routing Logic
|
|
42
|
+
When executing commands via terminal agents or local adapters:
|
|
43
|
+
1. Verify target provider key exists (e.g. `GEMINI_API_KEY`).
|
|
44
|
+
2. If primary model endpoint fails, check `capabilities.fallback` mapping in `registry.yaml`.
|
|
45
|
+
3. Route queries automatically to fallback options or fallback to `local-coder-model`.
|
package/docs/npm-publishing.md
CHANGED
|
@@ -72,3 +72,30 @@ Execute these validation actions strictly in sequence before triggering a releas
|
|
|
72
72
|
```bash
|
|
73
73
|
npm deprecate multimodel-dev-os@0.3.0 "Critical bug found, please use v0.3.1 instead."
|
|
74
74
|
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 4. Prepublish Safety Guard (v2.0.0 Stable)
|
|
79
|
+
|
|
80
|
+
> [!IMPORTANT]
|
|
81
|
+
> **v2.0.0 is the active stable release.** NPM publishing is no longer paused.
|
|
82
|
+
|
|
83
|
+
### Source vs. Registry Strategy
|
|
84
|
+
* **GitHub main branch (Source)**: Contains the current stable `v2.0.0` codebase.
|
|
85
|
+
* **npm latest (Registry)**: Pulled and installed globally or via npx.
|
|
86
|
+
|
|
87
|
+
### Prepublish Safety Guard
|
|
88
|
+
To prevent accidental `npm publish` executions on developer environments, a local validation script has been added to package hooks. If you run `npm publish`, it is blocked by default.
|
|
89
|
+
|
|
90
|
+
To bypass this check during the approved `v2.0.0` release window:
|
|
91
|
+
1. Ensure the version in `package.json` starts with `2.` (e.g. `2.0.0`).
|
|
92
|
+
2. Run publication with the override env variable:
|
|
93
|
+
```powershell
|
|
94
|
+
# PowerShell
|
|
95
|
+
$env:MMDO_ALLOW_PUBLISH="true"
|
|
96
|
+
npm publish --access public
|
|
97
|
+
```
|
|
98
|
+
```bash
|
|
99
|
+
# Bash
|
|
100
|
+
MMDO_ALLOW_PUBLISH=true npm publish --access public
|
|
101
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Package Safety and Security Hygiene
|
|
2
|
+
|
|
3
|
+
This document defines strict safety guidelines for the MultiModel Dev OS workspace.
|
|
4
|
+
|
|
5
|
+
## Excluded Items List
|
|
6
|
+
|
|
7
|
+
To prevent security compromises, credential exposure, or prompt bloating, the following files must **never** be included in git pushes or packaged in NPM releases:
|
|
8
|
+
|
|
9
|
+
1. **Local Credentials & API Keys:**
|
|
10
|
+
* `.npmrc` (specifically containing authentication tokens)
|
|
11
|
+
* `.env` / `.env.local`
|
|
12
|
+
2. **Build and Cache Artifacts:**
|
|
13
|
+
* `node_modules/`
|
|
14
|
+
* `dist/` / `build/`
|
|
15
|
+
* `docs/.vitepress/dist/`
|
|
16
|
+
* `docs/.vitepress/cache/`
|
|
17
|
+
3. **Mobile & Android Signing Artifacts:**
|
|
18
|
+
* `*.keystore` / `*.jks` files
|
|
19
|
+
* `google-services.json`
|
|
20
|
+
* `GoogleService-Info.plist`
|
|
21
|
+
* Signing configuration credentials
|
|
22
|
+
|
|
23
|
+
## Enforcement
|
|
24
|
+
|
|
25
|
+
The project release audit scripts strictly enforce these checks:
|
|
26
|
+
```bash
|
|
27
|
+
npm run verify
|
|
28
|
+
```
|
|
29
|
+
Any violation will cause verification and build pipelines to fail immediately.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Provider Strategy & API Keys Reference
|
|
2
|
+
|
|
3
|
+
MultiModel Dev OS supports multi-vendor API routing by centralizing provider properties, endpoints, and credentials reference schemas.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Provider Registry Configuration
|
|
8
|
+
Configure base URLs and API environment variables in [.ai/models/providers.yaml](file:///F:/multimodel-dev-os/.ai/models/providers.yaml):
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
providers:
|
|
12
|
+
anthropic:
|
|
13
|
+
name: "Anthropic"
|
|
14
|
+
api_endpoint: "https://api.anthropic.com/v1"
|
|
15
|
+
env_key: "ANTHROPIC_API_KEY"
|
|
16
|
+
default_headers:
|
|
17
|
+
"anthropic-version": "2023-06-01"
|
|
18
|
+
|
|
19
|
+
google:
|
|
20
|
+
name: "Google Gemini"
|
|
21
|
+
api_endpoint: "https://generativelanguage.googleapis.com/v1beta"
|
|
22
|
+
env_key: "GEMINI_API_KEY"
|
|
23
|
+
|
|
24
|
+
openai:
|
|
25
|
+
name: "OpenAI"
|
|
26
|
+
api_endpoint: "https://api.openai.com/v1"
|
|
27
|
+
env_key: "OPENAI_API_KEY"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## API Key Security Rules
|
|
33
|
+
|
|
34
|
+
To guarantee credential safety during agentic loops:
|
|
35
|
+
1. **Never commit raw keys**: Add `.env` and `.env.local` files to `.gitignore` to prevent committing secrets to version control.
|
|
36
|
+
2. **Centralized Environment Variables**: Centralize keys inside local shell environments or local `.env` configs.
|
|
37
|
+
3. **No hardcoded defaults**: The default `providers.yaml` refers only to standard environment variable keys (e.g. `ANTHROPIC_API_KEY`), never API secrets.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## custom endpoint routing (e.g. proxy/gateways)
|
|
42
|
+
For companies routing traffic through centralized proxy interfaces (such as OpenRouter, Cloudflare AI Gateway, or local mocks):
|
|
43
|
+
* Edit `.ai/models/providers.yaml` and update the `api_endpoint` parameter of the targeted provider.
|
|
44
|
+
* Update `default_headers` to inject custom authentication tokens or routing parameters required by the gateway.
|