multimodel-dev-os 2.6.0 → 2.8.1

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/README.md +30 -0
  2. package/.ai/plugins/plugin.example.yaml +32 -0
  3. package/.ai/schema/plugin.schema.json +56 -0
  4. package/README.md +76 -219
  5. package/assets/adapter-sync-flow.svg +84 -0
  6. package/assets/architecture-preview.svg +46 -31
  7. package/assets/onboarding-flow.svg +79 -0
  8. package/assets/social-preview.svg +1 -1
  9. package/assets/terminal-demo.svg +22 -23
  10. package/bin/multimodel-dev-os.js +683 -2
  11. package/docs/.vitepress/config.js +25 -8
  12. package/docs/5-day-roadmap.md +9 -9
  13. package/docs/CLI.md +250 -111
  14. package/docs/architecture.md +31 -7
  15. package/docs/comparison.md +72 -25
  16. package/docs/compatibility.md +2 -2
  17. package/docs/dashboard.md +107 -0
  18. package/docs/demo.md +23 -60
  19. package/docs/demos/adapter-sync.md +103 -0
  20. package/docs/demos/existing-repo-onboarding.md +125 -0
  21. package/docs/demos/index.md +91 -0
  22. package/docs/demos/multi-agent-handoff.md +88 -0
  23. package/docs/demos/release-check.md +109 -0
  24. package/docs/demos/safe-improvement-loop.md +119 -0
  25. package/docs/distribution.md +195 -0
  26. package/docs/faq.md +91 -24
  27. package/docs/index.md +192 -81
  28. package/docs/installers.md +18 -4
  29. package/docs/launch-kit.md +97 -49
  30. package/docs/npm-publishing.md +6 -6
  31. package/docs/plugin-authoring.md +99 -0
  32. package/docs/plugin-hooks.md +89 -0
  33. package/docs/public/assets/adapter-sync-flow.svg +84 -0
  34. package/docs/public/assets/onboarding-flow.svg +79 -0
  35. package/docs/public/llms-full.txt +16 -3
  36. package/docs/public/llms.txt +13 -1
  37. package/docs/public/sitemap.xml +55 -0
  38. package/docs/quickstart.md +80 -26
  39. package/docs/repository-command-center.md +16 -0
  40. package/docs/tui-safety.md +59 -0
  41. package/docs/use-cases.md +21 -0
  42. package/docs/v2-roadmap.md +80 -88
  43. package/docs/workflow-orchestration.md +3 -0
  44. package/examples/adapter-sync/README.md +45 -0
  45. package/examples/command-center/README.md +59 -0
  46. package/examples/real-repo-onboarding/README.md +53 -0
  47. package/examples/safe-improvement-loop/README.md +48 -0
  48. package/package.json +1 -1
  49. package/scripts/install.ps1 +1 -1
  50. package/scripts/install.sh +1 -1
  51. package/scripts/verify.js +88 -0
@@ -0,0 +1,48 @@
1
+ # Example: Safe Improvement Loop
2
+
3
+ Capture developer corrections, propose improvements, validate safety gates, and apply changes with full audit trails.
4
+
5
+ ## Prerequisites
6
+
7
+ - Node.js 18+
8
+ - A MultiModel Dev OS workspace (`npx multimodel-dev-os@latest init`)
9
+
10
+ ## Commands
11
+
12
+ ```bash
13
+ # Record developer feedback
14
+ npx multimodel-dev-os@latest feedback add "Always use TypeScript strict mode" --type preference
15
+
16
+ # Compile feedback into learning rules
17
+ npx multimodel-dev-os@latest feedback summarize
18
+
19
+ # Draft an improvement proposal
20
+ npx multimodel-dev-os@latest improve propose --title "Add strict mode config"
21
+
22
+ # Review all proposals
23
+ npx multimodel-dev-os@latest improve review
24
+
25
+ # Validate a proposal's safety gates (12 checks)
26
+ npx multimodel-dev-os@latest improve validate .ai/proposals/proposal-XXXX.md
27
+
28
+ # Preview changes without modifying files
29
+ npx multimodel-dev-os@latest improve diff .ai/proposals/proposal-XXXX.md
30
+
31
+ # Apply approved proposal with audit logging
32
+ npx multimodel-dev-os@latest improve apply .ai/proposals/proposal-XXXX.md --approved
33
+
34
+ # View the audit log
35
+ npx multimodel-dev-os@latest improve log
36
+ ```
37
+
38
+ ## Safety
39
+
40
+ - Feedback logging, proposal drafting, review, and diff are non-destructive
41
+ - `improve apply` requires explicit `--approved` flag
42
+ - 12 safety gates validated before any apply
43
+ - Protected paths blocked: `.git/`, `.env`, `node_modules/`, `apply-log.jsonl`
44
+ - All operations audited with SHA-256 pre/post file hashes
45
+
46
+ ## Full Demo
47
+
48
+ See the [complete walkthrough](/demos/safe-improvement-loop) for detailed explanations and expected output.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multimodel-dev-os",
3
- "version": "2.6.0",
3
+ "version": "2.8.1",
4
4
  "bin": {
5
5
  "multimodel-dev-os": "bin/multimodel-dev-os.js"
6
6
  },
@@ -11,7 +11,7 @@ param(
11
11
  [switch]$Help
12
12
  )
13
13
 
14
- $Version = "2.6.0"
14
+ $Version = "2.8.1"
15
15
  $RepoUrl = "https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
16
16
 
17
17
  if ($Help) {
@@ -7,7 +7,7 @@ set -euo pipefail
7
7
  # --all (install all adapters)
8
8
  # --dry-run (show what would be created without creating)
9
9
 
10
- VERSION="2.6.0"
10
+ VERSION="2.8.1"
11
11
  REPO_URL="https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
12
12
  CAVEMAN=false
13
13
  DRY_RUN=false
package/scripts/verify.js CHANGED
@@ -456,11 +456,99 @@ try {
456
456
  console.error(` ${RED}✗${NC} CLI help is missing scan, memory, status, workflow, or handoff commands`);
457
457
  fail++;
458
458
  }
459
+
460
+ if (helpOutput.includes('dashboard') && helpOutput.includes('ui') && helpOutput.includes('plugin')) {
461
+ console.log(` ${GREEN}✓${NC} CLI help includes dashboard, ui, and plugin commands`);
462
+ pass++;
463
+ } else {
464
+ console.error(` ${RED}✗${NC} CLI help is missing dashboard, ui, or plugin commands`);
465
+ fail++;
466
+ }
459
467
  } catch (e) {
460
468
  console.error(` ${RED}✗${NC} node bin/multimodel-dev-os.js --help failed: ${e.message}`);
461
469
  fail++;
462
470
  }
463
471
 
472
+ // --- v2.8.0 / v2.8.1 Dashboard & Plugin Tests ---
473
+ console.log('\nRunning TUI Dashboard & Plugin Pre-Flight Tests...');
474
+
475
+ // 1. Dashboard dry-run check
476
+ try {
477
+ const output = execSync('node bin/multimodel-dev-os.js dashboard --dry-run', { cwd: projectRoot, encoding: 'utf8' });
478
+ if (output.includes('Headless/CI Preview') && output.includes('npx multimodel-dev-os')) {
479
+ console.log(` ${GREEN}✓${NC} dashboard --dry-run executes successfully and displays headless preview`);
480
+ pass++;
481
+ } else {
482
+ console.error(` ${RED}✗${NC} dashboard --dry-run output is missing preview strings`);
483
+ fail++;
484
+ }
485
+ } catch (e) {
486
+ console.error(` ${RED}✗${NC} dashboard --dry-run execution failed: ${e.message}`);
487
+ fail++;
488
+ }
489
+
490
+ // 2. Dashboard list-actions check
491
+ try {
492
+ const output = execSync('node bin/multimodel-dev-os.js dashboard --list-actions', { cwd: projectRoot, encoding: 'utf8' });
493
+ if (output.includes('Headless/CI Preview') && output.includes('npx multimodel-dev-os')) {
494
+ console.log(` ${GREEN}✓${NC} dashboard --list-actions executes successfully and displays headless preview`);
495
+ pass++;
496
+ } else {
497
+ console.error(` ${RED}✗${NC} dashboard --list-actions output is missing preview strings`);
498
+ fail++;
499
+ }
500
+ } catch (e) {
501
+ console.error(` ${RED}✗${NC} dashboard --list-actions execution failed: ${e.message}`);
502
+ fail++;
503
+ }
504
+
505
+ // 3. Plugin validation check
506
+ try {
507
+ const output = execSync('node bin/multimodel-dev-os.js plugin validate .ai/plugins/plugin.example.yaml', { cwd: projectRoot, encoding: 'utf8' });
508
+ if (output.includes('fully valid and compliant')) {
509
+ console.log(` ${GREEN}✓${NC} plugin validate on example manifest passes successfully`);
510
+ pass++;
511
+ } else {
512
+ console.error(` ${RED}✗${NC} plugin validate on example manifest failed to report compliance`);
513
+ fail++;
514
+ }
515
+ } catch (e) {
516
+ console.error(` ${RED}✗${NC} plugin validate execution failed: ${e.message}`);
517
+ fail++;
518
+ }
519
+
520
+ // 4. Plugin install refusal check (no --approved, should exit with code 1)
521
+ try {
522
+ execSync('node bin/multimodel-dev-os.js plugin install .ai/plugins/plugin.example.yaml', { cwd: projectRoot, stdio: 'pipe' });
523
+ console.error(` ${RED}✗${NC} plugin install without --approved should have exited with code 1, but exited with 0`);
524
+ fail++;
525
+ } catch (e) {
526
+ if (e.status === 1) {
527
+ const stdErrOut = e.stderr ? e.stderr.toString() : '';
528
+ const stdOutOut = e.stdout ? e.stdout.toString() : '';
529
+ if (stdErrOut.includes('Installation refused') || stdOutOut.includes('Installation refused')) {
530
+ console.log(` ${GREEN}✓${NC} plugin install without --approved correctly refuses and exits with code 1`);
531
+ pass++;
532
+ } else {
533
+ console.error(` ${RED}✗${NC} plugin install without --approved exited with 1 but missing refusal message`);
534
+ fail++;
535
+ }
536
+ } else {
537
+ console.error(` ${RED}✗${NC} plugin install without --approved failed with unexpected code ${e.status}: ${e.message}`);
538
+ fail++;
539
+ }
540
+ }
541
+
542
+ // 5. Plugin status check
543
+ try {
544
+ execSync('node bin/multimodel-dev-os.js plugin status', { cwd: projectRoot, stdio: 'ignore' });
545
+ console.log(` ${GREEN}✓${NC} plugin status executes without crashing`);
546
+ pass++;
547
+ } catch (e) {
548
+ console.error(` ${RED}✗${NC} plugin status execution failed: ${e.message}`);
549
+ fail++;
550
+ }
551
+
464
552
  // Verify docs mention memory build
465
553
  try {
466
554
  const mdContent = readFileSync(join(projectRoot, 'docs', 'hash-compressed-memory.md'), 'utf8');