multimodel-dev-os 2.8.1 → 3.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.
Files changed (51) hide show
  1. package/.ai/plugins/catalog/.ai/checks/pre-commit-gate.md +14 -0
  2. package/.ai/plugins/catalog/.ai/skills/checkout-ops.md +12 -0
  3. package/.ai/plugins/catalog/.ai/skills/git-operations.md +21 -0
  4. package/.ai/plugins/catalog/.ai/skills/nextjs-builder.md +12 -0
  5. package/.ai/plugins/catalog/.ai/skills/release-ops.md +12 -0
  6. package/.ai/plugins/catalog/.ai/skills/seo-audit-ops.md +14 -0
  7. package/.ai/plugins/catalog/.ai/skills/wp-helper.md +13 -0
  8. package/.ai/plugins/catalog/README.md +34 -0
  9. package/.ai/plugins/catalog/ecommerce-workflows.yaml +14 -0
  10. package/.ai/plugins/catalog/git-workflows.yaml +22 -0
  11. package/.ai/plugins/catalog/nextjs-workflows.yaml +14 -0
  12. package/.ai/plugins/catalog/release-workflows.yaml +14 -0
  13. package/.ai/plugins/catalog/seo-workflows.yaml +19 -0
  14. package/.ai/plugins/catalog/wordpress-workflows.yaml +14 -0
  15. package/.ai/plugins/catalog.yaml +161 -0
  16. package/.ai/policies/registry-policy.yaml +51 -0
  17. package/.ai/registries/sources.yaml +15 -0
  18. package/.ai/registry-cache/README.md +35 -0
  19. package/.ai/schema/registry-manifest.schema.json +57 -0
  20. package/.ai/schema/registry-policy.schema.json +66 -0
  21. package/README.md +6 -5
  22. package/bin/multimodel-dev-os.js +1309 -30
  23. package/docs/.vitepress/config.js +16 -2
  24. package/docs/CLI.md +54 -1
  25. package/docs/architecture.md +9 -3
  26. package/docs/catalog-authoring.md +63 -0
  27. package/docs/catalog.md +72 -0
  28. package/docs/comparison.md +1 -0
  29. package/docs/dashboard.md +13 -2
  30. package/docs/faq.md +19 -0
  31. package/docs/plugin-authoring.md +6 -0
  32. package/docs/plugin-catalog.md +35 -0
  33. package/docs/plugin-hooks.md +6 -0
  34. package/docs/public/llms-full.txt +18 -1
  35. package/docs/public/llms.txt +17 -1
  36. package/docs/public/sitemap.xml +248 -203
  37. package/docs/quickstart.md +17 -0
  38. package/docs/registry-policy.md +93 -0
  39. package/docs/registry-security.md +67 -0
  40. package/docs/registry-sync.md +106 -0
  41. package/docs/remote-catalog-authoring.md +139 -0
  42. package/docs/repository-command-center.md +2 -0
  43. package/docs/trusted-registries.md +77 -0
  44. package/docs/v2-roadmap.md +13 -4
  45. package/docs/workflow-marketplace.md +22 -0
  46. package/docs/workflow-orchestration.md +6 -0
  47. package/package.json +1 -1
  48. package/scripts/install.ps1 +1 -1
  49. package/scripts/install.sh +1 -1
  50. package/scripts/prepublish-guard.js +27 -5
  51. package/scripts/verify.js +523 -10
@@ -1,203 +1,248 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
- <url>
4
- <loc>https://rizvee.github.io/multimodel-dev-os/</loc>
5
- <changefreq>daily</changefreq>
6
- <priority>1.0</priority>
7
- </url>
8
- <url>
9
- <loc>https://rizvee.github.io/multimodel-dev-os/quickstart</loc>
10
- <changefreq>weekly</changefreq>
11
- <priority>0.8</priority>
12
- </url>
13
- <url>
14
- <loc>https://rizvee.github.io/multimodel-dev-os/templates/</loc>
15
- <changefreq>weekly</changefreq>
16
- <priority>0.8</priority>
17
- </url>
18
- <url>
19
- <loc>https://rizvee.github.io/multimodel-dev-os/protocol</loc>
20
- <changefreq>weekly</changefreq>
21
- <priority>0.7</priority>
22
- </url>
23
- <url>
24
- <loc>https://rizvee.github.io/multimodel-dev-os/stable-protocol</loc>
25
- <changefreq>weekly</changefreq>
26
- <priority>0.9</priority>
27
- </url>
28
- <url>
29
- <loc>https://rizvee.github.io/multimodel-dev-os/compatibility</loc>
30
- <changefreq>weekly</changefreq>
31
- <priority>0.7</priority>
32
- </url>
33
- <url>
34
- <loc>https://rizvee.github.io/multimodel-dev-os/migration-guide</loc>
35
- <changefreq>weekly</changefreq>
36
- <priority>0.7</priority>
37
- </url>
38
- <url>
39
- <loc>https://rizvee.github.io/multimodel-dev-os/cost-optimization</loc>
40
- <changefreq>weekly</changefreq>
41
- <priority>0.8</priority>
42
- </url>
43
- <url>
44
- <loc>https://rizvee.github.io/multimodel-dev-os/5-day-roadmap</loc>
45
- <changefreq>monthly</changefreq>
46
- <priority>0.6</priority>
47
- </url>
48
- <url>
49
- <loc>https://rizvee.github.io/multimodel-dev-os/case-studies/</loc>
50
- <changefreq>weekly</changefreq>
51
- <priority>0.8</priority>
52
- </url>
53
- <url>
54
- <loc>https://rizvee.github.io/multimodel-dev-os/demo</loc>
55
- <changefreq>weekly</changefreq>
56
- <priority>0.7</priority>
57
- </url>
58
- <url>
59
- <loc>https://rizvee.github.io/multimodel-dev-os/faq</loc>
60
- <changefreq>weekly</changefreq>
61
- <priority>0.6</priority>
62
- </url>
63
- <url>
64
- <loc>https://rizvee.github.io/multimodel-dev-os/v2-release-checklist</loc>
65
- <changefreq>weekly</changefreq>
66
- <priority>0.6</priority>
67
- </url>
68
- <url>
69
- <loc>https://rizvee.github.io/multimodel-dev-os/model-routing</loc>
70
- <changefreq>weekly</changefreq>
71
- <priority>0.7</priority>
72
- </url>
73
- <url>
74
- <loc>https://rizvee.github.io/multimodel-dev-os/local-models</loc>
75
- <changefreq>weekly</changefreq>
76
- <priority>0.7</priority>
77
- </url>
78
- <url>
79
- <loc>https://rizvee.github.io/multimodel-dev-os/provider-strategy</loc>
80
- <changefreq>weekly</changefreq>
81
- <priority>0.7</priority>
82
- </url>
83
- <url>
84
- <loc>https://rizvee.github.io/multimodel-dev-os/agent-compatibility</loc>
85
- <changefreq>weekly</changefreq>
86
- <priority>0.7</priority>
87
- </url>
88
- <url>
89
- <loc>https://rizvee.github.io/multimodel-dev-os/adapter-authoring</loc>
90
- <changefreq>weekly</changefreq>
91
- <priority>0.7</priority>
92
- </url>
93
- <url>
94
- <loc>https://rizvee.github.io/multimodel-dev-os/template-authoring</loc>
95
- <changefreq>weekly</changefreq>
96
- <priority>0.7</priority>
97
- </url>
98
- <url>
99
- <loc>https://rizvee.github.io/multimodel-dev-os/skill-authoring</loc>
100
- <changefreq>weekly</changefreq>
101
- <priority>0.7</priority>
102
- </url>
103
- <url>
104
- <loc>https://rizvee.github.io/multimodel-dev-os/v2-migration</loc>
105
- <changefreq>weekly</changefreq>
106
- <priority>0.7</priority>
107
- </url>
108
- <url>
109
- <loc>https://rizvee.github.io/multimodel-dev-os/package-safety</loc>
110
- <changefreq>weekly</changefreq>
111
- <priority>0.7</priority>
112
- </url>
113
- <url>
114
- <loc>https://rizvee.github.io/multimodel-dev-os/registry-contribution</loc>
115
- <changefreq>weekly</changefreq>
116
- <priority>0.7</priority>
117
- </url>
118
- <url>
119
- <loc>https://rizvee.github.io/multimodel-dev-os/future-proof-architecture</loc>
120
- <changefreq>weekly</changefreq>
121
- <priority>0.7</priority>
122
- </url>
123
- <url>
124
- <loc>https://rizvee.github.io/multimodel-dev-os/self-improving-codebase</loc>
125
- <changefreq>weekly</changefreq>
126
- <priority>0.7</priority>
127
- </url>
128
- <url>
129
- <loc>https://rizvee.github.io/multimodel-dev-os/hash-compressed-memory</loc>
130
- <changefreq>weekly</changefreq>
131
- <priority>0.7</priority>
132
- </url>
133
- <url>
134
- <loc>https://rizvee.github.io/multimodel-dev-os/feedback-learning</loc>
135
- <changefreq>weekly</changefreq>
136
- <priority>0.7</priority>
137
- </url>
138
- <url>
139
- <loc>https://rizvee.github.io/multimodel-dev-os/capability-registry</loc>
140
- <changefreq>weekly</changefreq>
141
- <priority>0.7</priority>
142
- </url>
143
- <url>
144
- <loc>https://rizvee.github.io/multimodel-dev-os/tool-registry</loc>
145
- <changefreq>weekly</changefreq>
146
- <priority>0.7</priority>
147
- </url>
148
- <url>
149
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/</loc>
150
- <changefreq>weekly</changefreq>
151
- <priority>0.8</priority>
152
- </url>
153
- <url>
154
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/existing-repo-onboarding</loc>
155
- <changefreq>weekly</changefreq>
156
- <priority>0.8</priority>
157
- </url>
158
- <url>
159
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/multi-agent-handoff</loc>
160
- <changefreq>weekly</changefreq>
161
- <priority>0.8</priority>
162
- </url>
163
- <url>
164
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/safe-improvement-loop</loc>
165
- <changefreq>weekly</changefreq>
166
- <priority>0.8</priority>
167
- </url>
168
- <url>
169
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/adapter-sync</loc>
170
- <changefreq>weekly</changefreq>
171
- <priority>0.8</priority>
172
- </url>
173
- <url>
174
- <loc>https://rizvee.github.io/multimodel-dev-os/demos/release-check</loc>
175
- <changefreq>weekly</changefreq>
176
- <priority>0.8</priority>
177
- </url>
178
- <url>
179
- <loc>https://rizvee.github.io/multimodel-dev-os/distribution</loc>
180
- <changefreq>weekly</changefreq>
181
- <priority>0.8</priority>
182
- </url>
183
- <url>
184
- <loc>https://rizvee.github.io/multimodel-dev-os/dashboard</loc>
185
- <changefreq>weekly</changefreq>
186
- <priority>0.7</priority>
187
- </url>
188
- <url>
189
- <loc>https://rizvee.github.io/multimodel-dev-os/plugin-hooks</loc>
190
- <changefreq>weekly</changefreq>
191
- <priority>0.7</priority>
192
- </url>
193
- <url>
194
- <loc>https://rizvee.github.io/multimodel-dev-os/plugin-authoring</loc>
195
- <changefreq>weekly</changefreq>
196
- <priority>0.7</priority>
197
- </url>
198
- <url>
199
- <loc>https://rizvee.github.io/multimodel-dev-os/tui-safety</loc>
200
- <changefreq>weekly</changefreq>
201
- <priority>0.7</priority>
202
- </url>
203
- </urlset>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://rizvee.github.io/multimodel-dev-os/</loc>
5
+ <changefreq>daily</changefreq>
6
+ <priority>1.0</priority>
7
+ </url>
8
+ <url>
9
+ <loc>https://rizvee.github.io/multimodel-dev-os/quickstart</loc>
10
+ <changefreq>weekly</changefreq>
11
+ <priority>0.8</priority>
12
+ </url>
13
+ <url>
14
+ <loc>https://rizvee.github.io/multimodel-dev-os/templates/</loc>
15
+ <changefreq>weekly</changefreq>
16
+ <priority>0.8</priority>
17
+ </url>
18
+ <url>
19
+ <loc>https://rizvee.github.io/multimodel-dev-os/protocol</loc>
20
+ <changefreq>weekly</changefreq>
21
+ <priority>0.7</priority>
22
+ </url>
23
+ <url>
24
+ <loc>https://rizvee.github.io/multimodel-dev-os/stable-protocol</loc>
25
+ <changefreq>weekly</changefreq>
26
+ <priority>0.9</priority>
27
+ </url>
28
+ <url>
29
+ <loc>https://rizvee.github.io/multimodel-dev-os/compatibility</loc>
30
+ <changefreq>weekly</changefreq>
31
+ <priority>0.7</priority>
32
+ </url>
33
+ <url>
34
+ <loc>https://rizvee.github.io/multimodel-dev-os/migration-guide</loc>
35
+ <changefreq>weekly</changefreq>
36
+ <priority>0.7</priority>
37
+ </url>
38
+ <url>
39
+ <loc>https://rizvee.github.io/multimodel-dev-os/cost-optimization</loc>
40
+ <changefreq>weekly</changefreq>
41
+ <priority>0.8</priority>
42
+ </url>
43
+ <url>
44
+ <loc>https://rizvee.github.io/multimodel-dev-os/5-day-roadmap</loc>
45
+ <changefreq>monthly</changefreq>
46
+ <priority>0.6</priority>
47
+ </url>
48
+ <url>
49
+ <loc>https://rizvee.github.io/multimodel-dev-os/case-studies/</loc>
50
+ <changefreq>weekly</changefreq>
51
+ <priority>0.8</priority>
52
+ </url>
53
+ <url>
54
+ <loc>https://rizvee.github.io/multimodel-dev-os/demo</loc>
55
+ <changefreq>weekly</changefreq>
56
+ <priority>0.7</priority>
57
+ </url>
58
+ <url>
59
+ <loc>https://rizvee.github.io/multimodel-dev-os/faq</loc>
60
+ <changefreq>weekly</changefreq>
61
+ <priority>0.6</priority>
62
+ </url>
63
+ <url>
64
+ <loc>https://rizvee.github.io/multimodel-dev-os/v2-release-checklist</loc>
65
+ <changefreq>weekly</changefreq>
66
+ <priority>0.6</priority>
67
+ </url>
68
+ <url>
69
+ <loc>https://rizvee.github.io/multimodel-dev-os/model-routing</loc>
70
+ <changefreq>weekly</changefreq>
71
+ <priority>0.7</priority>
72
+ </url>
73
+ <url>
74
+ <loc>https://rizvee.github.io/multimodel-dev-os/local-models</loc>
75
+ <changefreq>weekly</changefreq>
76
+ <priority>0.7</priority>
77
+ </url>
78
+ <url>
79
+ <loc>https://rizvee.github.io/multimodel-dev-os/provider-strategy</loc>
80
+ <changefreq>weekly</changefreq>
81
+ <priority>0.7</priority>
82
+ </url>
83
+ <url>
84
+ <loc>https://rizvee.github.io/multimodel-dev-os/agent-compatibility</loc>
85
+ <changefreq>weekly</changefreq>
86
+ <priority>0.7</priority>
87
+ </url>
88
+ <url>
89
+ <loc>https://rizvee.github.io/multimodel-dev-os/adapter-authoring</loc>
90
+ <changefreq>weekly</changefreq>
91
+ <priority>0.7</priority>
92
+ </url>
93
+ <url>
94
+ <loc>https://rizvee.github.io/multimodel-dev-os/template-authoring</loc>
95
+ <changefreq>weekly</changefreq>
96
+ <priority>0.7</priority>
97
+ </url>
98
+ <url>
99
+ <loc>https://rizvee.github.io/multimodel-dev-os/skill-authoring</loc>
100
+ <changefreq>weekly</changefreq>
101
+ <priority>0.7</priority>
102
+ </url>
103
+ <url>
104
+ <loc>https://rizvee.github.io/multimodel-dev-os/v2-migration</loc>
105
+ <changefreq>weekly</changefreq>
106
+ <priority>0.7</priority>
107
+ </url>
108
+ <url>
109
+ <loc>https://rizvee.github.io/multimodel-dev-os/package-safety</loc>
110
+ <changefreq>weekly</changefreq>
111
+ <priority>0.7</priority>
112
+ </url>
113
+ <url>
114
+ <loc>https://rizvee.github.io/multimodel-dev-os/registry-contribution</loc>
115
+ <changefreq>weekly</changefreq>
116
+ <priority>0.7</priority>
117
+ </url>
118
+ <url>
119
+ <loc>https://rizvee.github.io/multimodel-dev-os/future-proof-architecture</loc>
120
+ <changefreq>weekly</changefreq>
121
+ <priority>0.7</priority>
122
+ </url>
123
+ <url>
124
+ <loc>https://rizvee.github.io/multimodel-dev-os/self-improving-codebase</loc>
125
+ <changefreq>weekly</changefreq>
126
+ <priority>0.7</priority>
127
+ </url>
128
+ <url>
129
+ <loc>https://rizvee.github.io/multimodel-dev-os/hash-compressed-memory</loc>
130
+ <changefreq>weekly</changefreq>
131
+ <priority>0.7</priority>
132
+ </url>
133
+ <url>
134
+ <loc>https://rizvee.github.io/multimodel-dev-os/feedback-learning</loc>
135
+ <changefreq>weekly</changefreq>
136
+ <priority>0.7</priority>
137
+ </url>
138
+ <url>
139
+ <loc>https://rizvee.github.io/multimodel-dev-os/capability-registry</loc>
140
+ <changefreq>weekly</changefreq>
141
+ <priority>0.7</priority>
142
+ </url>
143
+ <url>
144
+ <loc>https://rizvee.github.io/multimodel-dev-os/tool-registry</loc>
145
+ <changefreq>weekly</changefreq>
146
+ <priority>0.7</priority>
147
+ </url>
148
+ <url>
149
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/</loc>
150
+ <changefreq>weekly</changefreq>
151
+ <priority>0.8</priority>
152
+ </url>
153
+ <url>
154
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/existing-repo-onboarding</loc>
155
+ <changefreq>weekly</changefreq>
156
+ <priority>0.8</priority>
157
+ </url>
158
+ <url>
159
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/multi-agent-handoff</loc>
160
+ <changefreq>weekly</changefreq>
161
+ <priority>0.8</priority>
162
+ </url>
163
+ <url>
164
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/safe-improvement-loop</loc>
165
+ <changefreq>weekly</changefreq>
166
+ <priority>0.8</priority>
167
+ </url>
168
+ <url>
169
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/adapter-sync</loc>
170
+ <changefreq>weekly</changefreq>
171
+ <priority>0.8</priority>
172
+ </url>
173
+ <url>
174
+ <loc>https://rizvee.github.io/multimodel-dev-os/demos/release-check</loc>
175
+ <changefreq>weekly</changefreq>
176
+ <priority>0.8</priority>
177
+ </url>
178
+ <url>
179
+ <loc>https://rizvee.github.io/multimodel-dev-os/distribution</loc>
180
+ <changefreq>weekly</changefreq>
181
+ <priority>0.8</priority>
182
+ </url>
183
+ <url>
184
+ <loc>https://rizvee.github.io/multimodel-dev-os/dashboard</loc>
185
+ <changefreq>weekly</changefreq>
186
+ <priority>0.7</priority>
187
+ </url>
188
+ <url>
189
+ <loc>https://rizvee.github.io/multimodel-dev-os/plugin-hooks</loc>
190
+ <changefreq>weekly</changefreq>
191
+ <priority>0.7</priority>
192
+ </url>
193
+ <url>
194
+ <loc>https://rizvee.github.io/multimodel-dev-os/plugin-authoring</loc>
195
+ <changefreq>weekly</changefreq>
196
+ <priority>0.7</priority>
197
+ </url>
198
+ <url>
199
+ <loc>https://rizvee.github.io/multimodel-dev-os/tui-safety</loc>
200
+ <changefreq>weekly</changefreq>
201
+ <priority>0.7</priority>
202
+ </url>
203
+ <url>
204
+ <loc>https://rizvee.github.io/multimodel-dev-os/catalog</loc>
205
+ <changefreq>weekly</changefreq>
206
+ <priority>0.7</priority>
207
+ </url>
208
+ <url>
209
+ <loc>https://rizvee.github.io/multimodel-dev-os/plugin-catalog</loc>
210
+ <changefreq>weekly</changefreq>
211
+ <priority>0.7</priority>
212
+ </url>
213
+ <url>
214
+ <loc>https://rizvee.github.io/multimodel-dev-os/workflow-marketplace</loc>
215
+ <changefreq>weekly</changefreq>
216
+ <priority>0.7</priority>
217
+ </url>
218
+ <url>
219
+ <loc>https://rizvee.github.io/multimodel-dev-os/catalog-authoring</loc>
220
+ <changefreq>weekly</changefreq>
221
+ <priority>0.7</priority>
222
+ </url>
223
+ <url>
224
+ <loc>https://rizvee.github.io/multimodel-dev-os/registry-sync</loc>
225
+ <changefreq>weekly</changefreq>
226
+ <priority>0.7</priority>
227
+ </url>
228
+ <url>
229
+ <loc>https://rizvee.github.io/multimodel-dev-os/trusted-registries</loc>
230
+ <changefreq>weekly</changefreq>
231
+ <priority>0.7</priority>
232
+ </url>
233
+ <url>
234
+ <loc>https://rizvee.github.io/multimodel-dev-os/registry-policy</loc>
235
+ <changefreq>weekly</changefreq>
236
+ <priority>0.7</priority>
237
+ </url>
238
+ <url>
239
+ <loc>https://rizvee.github.io/multimodel-dev-os/registry-security</loc>
240
+ <changefreq>weekly</changefreq>
241
+ <priority>0.7</priority>
242
+ </url>
243
+ <url>
244
+ <loc>https://rizvee.github.io/multimodel-dev-os/remote-catalog-authoring</loc>
245
+ <changefreq>weekly</changefreq>
246
+ <priority>0.7</priority>
247
+ </url>
248
+ </urlset>
@@ -94,6 +94,23 @@ npx multimodel-dev-os@latest dashboard
94
94
 
95
95
  ---
96
96
 
97
+ ## Option G: Local Workflow Marketplace & Plugin Catalog
98
+
99
+ Discover and install safe, curated first-party plugin packs to extend your workflows:
100
+
101
+ ```bash
102
+ # Get recommendations for your workspace
103
+ npx multimodel-dev-os@latest catalog recommend
104
+
105
+ # List all catalog plugins
106
+ npx multimodel-dev-os@latest catalog list
107
+
108
+ # Install a plugin
109
+ npx multimodel-dev-os@latest catalog install git-workflows --approved
110
+ ```
111
+
112
+ ---
113
+
97
114
  ## After Install
98
115
 
99
116
  1. **Edit `AGENTS.md`** — fill in your project name, stack, and build commands.
@@ -0,0 +1,93 @@
1
+ # Registry Policy Engine
2
+
3
+ The Policy Engine governs how remote registries are synchronized and how plugins are installed in the workspace. It enforces strict directory boundaries, file limitations, and network controls to prevent unauthorized access and malicious file writes.
4
+
5
+ ## Configuration File
6
+
7
+ Registry policies are configured in `.ai/policies/registry-policy.yaml`. If this file does not exist, the engine falls back to strict default settings.
8
+
9
+ > [!NOTE]
10
+ > The policy file is read dynamically from the target workspace. If none is found there, it falls back to the bundled defaults in the package root.
11
+
12
+ ---
13
+
14
+ ## Policy Options Reference
15
+
16
+ Here is a list of all fields supported in `.ai/policies/registry-policy.yaml`:
17
+
18
+ ### `allow_remote_registries` (Boolean)
19
+ * **Default:** `false`
20
+ * **Description:** Master switch to enable remote registry operations. If set to `false`, `registry add` and `registry sync` commands will fail.
21
+
22
+ ### `require_approval_for_remote_sync` (Boolean)
23
+ * **Default:** `true`
24
+ * **Description:** Requires the `--approved` flag on the command line to synchronize a remote registry.
25
+
26
+ ### `require_checksum` (Boolean)
27
+ * **Default:** `true`
28
+ * **Description:** Requires SHA256 checksum validation for all remote assets fetched during a sync.
29
+
30
+ ### `require_signature` (Boolean)
31
+ * **Default:** `false`
32
+ * **Description:** Reserved for future cryptographic signature validation.
33
+
34
+ ### `allow_untrusted_install` (Boolean)
35
+ * **Default:** `false`
36
+ * **Description:** When `false`, blocks installation of plugins originating from registries with `trust_level` set to `community` or `untrusted`.
37
+
38
+ ### `allowed_write_roots` (Array of Strings)
39
+ * **Default:** `['.ai/', 'adapters/']`
40
+ * **Description:** A whitelist of directory paths relative to the project root. Plugins are only permitted to write files into these directories.
41
+
42
+ ### `blocked_paths` (Array of Strings)
43
+ * **Default:** `['.env', '.npmrc', '.git/', 'node_modules/', 'package.json', 'package-lock.json', 'pnpm-lock.yaml', 'yarn.lock']`
44
+ * **Description:** A blacklist of specific paths or filenames. Plugins are strictly blocked from writing to or modifying these files, even if they reside within an allowed directory.
45
+
46
+ ### `max_plugin_files` (Integer)
47
+ * **Default:** `20`
48
+ * **Description:** The maximum number of files that a single plugin is allowed to write to the workspace.
49
+
50
+ ### `max_plugin_size_kb` (Integer)
51
+ * **Default:** `100`
52
+ * **Description:** The maximum combined file size (in KB) that a single plugin's assets can occupy.
53
+
54
+ ### `max_registry_cache_size_kb` (Integer)
55
+ * **Default:** `512`
56
+ * **Description:** The maximum cache size (in KB) permitted per remote registry in `.ai/registry-cache/`.
57
+
58
+ ### `allowed_file_extensions` (Array of Strings)
59
+ * **Default:** `['.md', '.yaml', '.yml', '.json']`
60
+ * **Description:** Whitelisted extensions for plugin assets. Any attempt to write files with different extensions (e.g. `.js`, `.sh`, `.exe`) is rejected.
61
+
62
+ ---
63
+
64
+ ## Example Policy Configuration
65
+
66
+ Below is a typical policy file enabling secure remote synchronization while enforcing strict safety gates:
67
+
68
+ ```yaml
69
+ # .ai/policies/registry-policy.yaml
70
+ allow_remote_registries: true
71
+ require_approval_for_remote_sync: true
72
+ require_checksum: true
73
+ allow_untrusted_install: false
74
+
75
+ allowed_write_roots:
76
+ - ".ai/"
77
+ - "adapters/"
78
+
79
+ blocked_paths:
80
+ - ".env"
81
+ - ".npmrc"
82
+ - ".git/"
83
+ - "package.json"
84
+
85
+ max_plugin_files: 10
86
+ max_plugin_size_kb: 50
87
+ max_registry_cache_size_kb: 256
88
+
89
+ allowed_file_extensions:
90
+ - ".md"
91
+ - ".yaml"
92
+ - ".json"
93
+ ```
@@ -0,0 +1,67 @@
1
+ # Registry Security Model
2
+
3
+ MultiModel Dev OS is designed with a **zero-trust architecture** for remote registries and plugins. Because plugins configure coding guidelines, workflows, and prompts for AI coding agents, securing the distribution channel is critical.
4
+
5
+ This document describes the threat model, safety boundaries, and mitigation strategies implemented in `v3.0.0`.
6
+
7
+ ---
8
+
9
+ ## Threat Model & Mitigations
10
+
11
+ ```
12
+ Threat: Malicious Remote Registry
13
+ |--> Arbitrary Code Execution (Mitigated: Declarative-only YAML)
14
+ |--> Path Traversal / Overwrite (Mitigated: Resolve path bounds + Blacklist)
15
+ |--> Dependency Poisoning (Mitigated: No automated package installation)
16
+ ```
17
+
18
+ ### 1. Arbitrary Code Execution
19
+ * **Threat:** A remote registry delivers a plugin containing malicious scripts (`shell`, `javascript`, etc.) that execute on the developer's machine.
20
+ * **Mitigation:**
21
+ * **Declarative-only manifests:** Plugins are purely declarative YAML manifests defining workflows, skills, and checks.
22
+ * **No runtime scripts:** Plugins cannot contain JavaScript files, shell scripts, or binary assets.
23
+ * **No eval/exec:** The CLI parser reads manifests using a custom regex-based parser, strictly avoiding `eval` or dynamic JS execution.
24
+
25
+ ### 2. Path Traversal & Unauthorized Overwrites
26
+ * **Threat:** A plugin manifest contains destination paths like `../../.ssh/authorized_keys` or `/etc/hosts` to write files outside the workspace.
27
+ * **Mitigation:**
28
+ * **Allowed Write Roots:** The policy engine enforces that all destination paths must resolve within whitelisted directories (defaulting to `.ai/` and `adapters/`).
29
+ * **Path Resolution Checks:** The installer uses `path.resolve` and `path.relative` to ensure destinations do not escape the target root or cache root.
30
+ * **Blocked Paths Blacklist:** Sensitive files (e.g. `.env`, `.npmrc`, `.git/`, `package.json`) are blacklisted and cannot be overwritten under any circumstances.
31
+
32
+ ### 3. Dependency Poisoning
33
+ * **Threat:** A synced plugin runs `npm install` to inject malicious dependencies into the project.
34
+ * **Mitigation:**
35
+ * **Zero dependency installer:** The installation process does not interact with the npm registry, execute package managers, or modify `node_modules`.
36
+ * **Ignored package files:** The blacklist blocks writes to `package.json`, `package-lock.json`, `pnpm-lock.yaml`, and `yarn.lock`.
37
+
38
+ ### 4. Cache Poisoning / Tampering
39
+ * **Threat:** An attacker modifies cached remote files on disk to bypass verification.
40
+ * **Mitigation:**
41
+ * **In-process verification:** The `registry verify` command performs SHA256 checksum checks against the manifest.
42
+ * **ReadOnly Dashboard:** The interactive TUI Dashboard is completely read-only for registry and plugin operations, preventing UI-driven privilege escalation.
43
+
44
+ ---
45
+
46
+ ## Safety Boundaries Matrix
47
+
48
+ The following table summarizes the enforcement gates for different registry types:
49
+
50
+ | Capability | Local Bundled | Verified Remote | Community Remote |
51
+ |---|---|---|---|
52
+ | **Requires Approved Flag** | Yes | Yes | Yes |
53
+ | **Integrity Check** | Yes (Built-in) | Yes (SHA256 Manifest) | Yes (SHA256 Manifest) |
54
+ | **Write Directory Restricted** | Yes (`.ai/`, `adapters/`) | Yes (`.ai/`, `adapters/`) | Yes (`.ai/`, `adapters/`) |
55
+ | **Size Limit Enforced** | No | Yes (max 100KB) | Yes (max 100KB) |
56
+ | **File Limit Enforced** | No | Yes (max 20 files) | Yes (max 20 files) |
57
+ | **Allowed Extensions Only** | Yes | Yes | Yes |
58
+ | **Automatic Activation** | No | No | No |
59
+
60
+ ---
61
+
62
+ ## Best Practices for Enterprise
63
+
64
+ For teams deploying MultiModel Dev OS in sensitive environments, we recommend:
65
+ 1. Keeping `allow_remote_registries: false` (the default) if no third-party plugins are needed.
66
+ 2. If remote plugins are required, set `allow_untrusted_install: false` to only permit plugins from official, signed corporate registries.
67
+ 3. Commit `.ai/policies/registry-policy.yaml` to version control to enforce uniform governance across all developer machines.