multimodel-dev-os 0.3.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 (105) hide show
  1. package/.ai/agents/README.md +23 -0
  2. package/.ai/agents/coder.md +11 -0
  3. package/.ai/agents/devops.md +8 -0
  4. package/.ai/agents/multimodel-orchestrator.md +105 -0
  5. package/.ai/agents/planner.md +11 -0
  6. package/.ai/agents/qa-tester.md +8 -0
  7. package/.ai/agents/reviewer.md +11 -0
  8. package/.ai/agents/security-auditor.md +8 -0
  9. package/.ai/agents/seo-auditor.md +8 -0
  10. package/.ai/checks/README.md +38 -0
  11. package/.ai/checks/context-budget.md +7 -0
  12. package/.ai/checks/pre-commit.md +8 -0
  13. package/.ai/checks/pre-deploy.md +8 -0
  14. package/.ai/checks/pre-implementation.md +7 -0
  15. package/.ai/checks/regression-checklist.md +8 -0
  16. package/.ai/config.yaml +60 -0
  17. package/.ai/context/README.md +18 -0
  18. package/.ai/context/architecture.md +15 -0
  19. package/.ai/context/business-rules.md +12 -0
  20. package/.ai/context/context-budget.md +12 -0
  21. package/.ai/context/deployment-rules.md +15 -0
  22. package/.ai/context/model-map.md +11 -0
  23. package/.ai/context/project-brief.md +17 -0
  24. package/.ai/context/seo-rules.md +15 -0
  25. package/.ai/prompts/README.md +37 -0
  26. package/.ai/prompts/generate-tests.md +5 -0
  27. package/.ai/prompts/handoff-to-next-model.md +5 -0
  28. package/.ai/prompts/implement-safely.md +5 -0
  29. package/.ai/prompts/plan-first.md +5 -0
  30. package/.ai/prompts/review-diff.md +5 -0
  31. package/.ai/prompts/summarize-session.md +5 -0
  32. package/.ai/session-logs/.gitkeep +1 -0
  33. package/.ai/session-logs/README.md +49 -0
  34. package/.ai/skills/README.md +34 -0
  35. package/.ai/skills/bug-fix.md +9 -0
  36. package/.ai/skills/caveman-bug-fix.md +2 -0
  37. package/.ai/skills/caveman-context-handoff.md +2 -0
  38. package/.ai/skills/caveman-feature-build.md +2 -0
  39. package/.ai/skills/context-routing.md +8 -0
  40. package/.ai/skills/cpanel-deploy.md +9 -0
  41. package/.ai/skills/example-skill.md +38 -0
  42. package/.ai/skills/landing-page-optimization.md +8 -0
  43. package/.ai/skills/model-routing.md +7 -0
  44. package/.ai/skills/nextjs-feature-build.md +9 -0
  45. package/.ai/skills/refactor.md +9 -0
  46. package/.ai/skills/seo-implementation.md +8 -0
  47. package/.ai/templates/AGENTS.caveman.md +12 -0
  48. package/.ai/templates/MEMORY.caveman.md +14 -0
  49. package/.ai/templates/RUNBOOK.caveman.md +22 -0
  50. package/.ai/templates/TASKS.caveman.md +7 -0
  51. package/.ai/templates/bug-report-template.md +14 -0
  52. package/.ai/templates/feature-spec-template.md +14 -0
  53. package/.ai/templates/project-memory-template.md +12 -0
  54. package/.ai/templates/session-log-template.md +16 -0
  55. package/.ai/templates/task-template.md +16 -0
  56. package/AGENTS.md +79 -0
  57. package/LICENSE +21 -0
  58. package/MEMORY.md +42 -0
  59. package/README.md +197 -0
  60. package/RUNBOOK.md +73 -0
  61. package/TASKS.md +28 -0
  62. package/adapters/antigravity/.gemini/settings.json +13 -0
  63. package/adapters/antigravity/AGENTS.md +29 -0
  64. package/adapters/antigravity/setup.md +36 -0
  65. package/adapters/claude/CLAUDE.md +31 -0
  66. package/adapters/claude/setup.md +35 -0
  67. package/adapters/codex/AGENTS.md +27 -0
  68. package/adapters/codex/setup.md +25 -0
  69. package/adapters/cursor/.cursorrules +30 -0
  70. package/adapters/cursor/setup.md +35 -0
  71. package/adapters/gemini/GEMINI.md +31 -0
  72. package/adapters/gemini/setup.md +34 -0
  73. package/adapters/vscode/.vscode/settings.json +21 -0
  74. package/adapters/vscode/setup.md +40 -0
  75. package/bin/multimodel-dev-os.js +267 -0
  76. package/docs/adapters.md +79 -0
  77. package/docs/architecture.md +64 -0
  78. package/docs/caveman-mode.md +74 -0
  79. package/docs/cli-roadmap.md +44 -0
  80. package/docs/faq.md +66 -0
  81. package/docs/installers.md +58 -0
  82. package/docs/multimodel-workflow.md +121 -0
  83. package/docs/npm-publishing.md +74 -0
  84. package/docs/quickstart.md +85 -0
  85. package/docs/testing-v0.2.md +73 -0
  86. package/examples/ecommerce-store/.ai/config.yaml +4 -0
  87. package/examples/ecommerce-store/AGENTS.md +5 -0
  88. package/examples/ecommerce-store/MEMORY.md +4 -0
  89. package/examples/general-app/.ai/config.yaml +4 -0
  90. package/examples/general-app/AGENTS.md +5 -0
  91. package/examples/general-app/MEMORY.md +4 -0
  92. package/examples/nextjs-saas/.ai/config.yaml +4 -0
  93. package/examples/nextjs-saas/AGENTS.md +13 -0
  94. package/examples/nextjs-saas/MEMORY.md +5 -0
  95. package/examples/seo-landing-page/.ai/config.yaml +4 -0
  96. package/examples/seo-landing-page/AGENTS.md +5 -0
  97. package/examples/seo-landing-page/MEMORY.md +5 -0
  98. package/examples/wordpress-site/.ai/config.yaml +4 -0
  99. package/examples/wordpress-site/AGENTS.md +5 -0
  100. package/examples/wordpress-site/MEMORY.md +4 -0
  101. package/package.json +43 -0
  102. package/scripts/install.ps1 +230 -0
  103. package/scripts/install.sh +237 -0
  104. package/scripts/pack-template.sh +39 -0
  105. package/scripts/verify.sh +271 -0
@@ -0,0 +1,230 @@
1
+ # multimodel-dev-os installer for Windows (PowerShell)
2
+ # Usage: irm https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main/scripts/install.ps1 | iex
3
+ # Flags: -Caveman (use minimal-token templates)
4
+ # -All (install all adapters)
5
+ # -DryRun (show what would be created without creating)
6
+
7
+ param(
8
+ [switch]$Caveman,
9
+ [switch]$All,
10
+ [switch]$DryRun,
11
+ [switch]$Help
12
+ )
13
+
14
+ $Version = "0.1.0"
15
+ $RepoUrl = "https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
16
+
17
+ if ($Help) {
18
+ Write-Host "multimodel-dev-os installer v$Version" -ForegroundColor Blue
19
+ Write-Host ""
20
+ Write-Host "Usage: irm .../install.ps1 | iex"
21
+ Write-Host ""
22
+ Write-Host "Options:"
23
+ Write-Host " -Caveman Use minimal-token templates (~79% fewer tokens)"
24
+ Write-Host " -All Install all adapters"
25
+ Write-Host " -DryRun Show what would be created without creating"
26
+ Write-Host " -Help Show this help message"
27
+ return
28
+ }
29
+
30
+ Write-Host "multimodel-dev-os installer v$Version" -ForegroundColor Blue
31
+ Write-Host ""
32
+
33
+ # --- Helper Functions ---
34
+
35
+ function New-ProjectFile {
36
+ param(
37
+ [string]$Path,
38
+ [string]$Url
39
+ )
40
+
41
+ if (Test-Path $Path) {
42
+ Write-Host " SKIP $Path (already exists)" -ForegroundColor Yellow
43
+ return
44
+ }
45
+
46
+ if ($DryRun) {
47
+ Write-Host " WOULD CREATE $Path" -ForegroundColor Blue
48
+ return
49
+ }
50
+
51
+ $dir = Split-Path -Parent $Path
52
+ if ($dir -and !(Test-Path $dir)) {
53
+ New-Item -ItemType Directory -Path $dir -Force | Out-Null
54
+ }
55
+
56
+ try {
57
+ Invoke-WebRequest -Uri $Url -OutFile $Path -UseBasicParsing -ErrorAction Stop
58
+ Write-Host " CREATE $Path" -ForegroundColor Green
59
+ }
60
+ catch {
61
+ Write-Host " FAIL $Path (download failed)" -ForegroundColor Red
62
+ }
63
+ }
64
+
65
+ function New-ProjectDir {
66
+ param([string]$Path)
67
+
68
+ if (Test-Path $Path) {
69
+ Write-Host " SKIP $Path/ (already exists)" -ForegroundColor Yellow
70
+ return
71
+ }
72
+
73
+ if ($DryRun) {
74
+ Write-Host " WOULD CREATE $Path/" -ForegroundColor Blue
75
+ return
76
+ }
77
+
78
+ New-Item -ItemType Directory -Path $Path -Force | Out-Null
79
+ Write-Host " CREATE $Path/" -ForegroundColor Green
80
+ }
81
+
82
+ # --- Phase 1: Core Files ---
83
+
84
+ Write-Host "Creating core files..." -ForegroundColor Blue
85
+
86
+ if ($Caveman) {
87
+ New-ProjectFile "AGENTS.md" "$RepoUrl/.ai/templates/AGENTS.caveman.md"
88
+ New-ProjectFile "MEMORY.md" "$RepoUrl/.ai/templates/MEMORY.caveman.md"
89
+ New-ProjectFile "TASKS.md" "$RepoUrl/.ai/templates/TASKS.caveman.md"
90
+ New-ProjectFile "RUNBOOK.md" "$RepoUrl/.ai/templates/RUNBOOK.caveman.md"
91
+ }
92
+ else {
93
+ New-ProjectFile "AGENTS.md" "$RepoUrl/AGENTS.md"
94
+ New-ProjectFile "MEMORY.md" "$RepoUrl/MEMORY.md"
95
+ New-ProjectFile "TASKS.md" "$RepoUrl/TASKS.md"
96
+ New-ProjectFile "RUNBOOK.md" "$RepoUrl/RUNBOOK.md"
97
+ }
98
+ New-ProjectFile ".gitattributes" "$RepoUrl/.gitattributes"
99
+ New-ProjectFile "bin/multimodel-dev-os.js" "$RepoUrl/bin/multimodel-dev-os.js"
100
+
101
+ # --- Phase 2: .ai/ Directory ---
102
+
103
+ Write-Host ""
104
+ Write-Host "Creating .ai/ directory..." -ForegroundColor Blue
105
+
106
+ New-ProjectFile ".ai/config.yaml" "$RepoUrl/.ai/config.yaml"
107
+ New-ProjectDir ".ai/context"
108
+ New-ProjectFile ".ai/context/README.md" "$RepoUrl/.ai/context/README.md"
109
+ New-ProjectDir ".ai/agents"
110
+ New-ProjectFile ".ai/agents/README.md" "$RepoUrl/.ai/agents/README.md"
111
+ New-ProjectFile ".ai/agents/multimodel-orchestrator.md" "$RepoUrl/.ai/agents/multimodel-orchestrator.md"
112
+ New-ProjectDir ".ai/skills"
113
+ New-ProjectFile ".ai/skills/README.md" "$RepoUrl/.ai/skills/README.md"
114
+ New-ProjectFile ".ai/skills/example-skill.md" "$RepoUrl/.ai/skills/example-skill.md"
115
+ New-ProjectDir ".ai/prompts"
116
+ New-ProjectFile ".ai/prompts/README.md" "$RepoUrl/.ai/prompts/README.md"
117
+ New-ProjectDir ".ai/checks"
118
+ New-ProjectFile ".ai/checks/README.md" "$RepoUrl/.ai/checks/README.md"
119
+ New-ProjectFile ".ai/checks/pre-commit.md" "$RepoUrl/.ai/checks/pre-commit.md"
120
+ New-ProjectDir ".ai/session-logs"
121
+ New-ProjectFile ".ai/session-logs/README.md" "$RepoUrl/.ai/session-logs/README.md"
122
+ New-ProjectDir ".ai/templates"
123
+ New-ProjectFile ".ai/templates/AGENTS.caveman.md" "$RepoUrl/.ai/templates/AGENTS.caveman.md"
124
+ New-ProjectFile ".ai/templates/MEMORY.caveman.md" "$RepoUrl/.ai/templates/MEMORY.caveman.md"
125
+ New-ProjectFile ".ai/templates/TASKS.caveman.md" "$RepoUrl/.ai/templates/TASKS.caveman.md"
126
+ New-ProjectFile ".ai/templates/RUNBOOK.caveman.md" "$RepoUrl/.ai/templates/RUNBOOK.caveman.md"
127
+
128
+ # --- Phase 3: Adapters ---
129
+
130
+ Write-Host ""
131
+
132
+ function Install-Adapter {
133
+ param([string]$Name)
134
+
135
+ Write-Host "Installing $Name adapter..." -ForegroundColor Blue
136
+
137
+ switch ($Name) {
138
+ "codex" {
139
+ New-ProjectFile "adapters/codex/AGENTS.md" "$RepoUrl/adapters/codex/AGENTS.md"
140
+ New-ProjectFile "adapters/codex/setup.md" "$RepoUrl/adapters/codex/setup.md"
141
+ }
142
+ "antigravity" {
143
+ New-ProjectFile "adapters/antigravity/AGENTS.md" "$RepoUrl/adapters/antigravity/AGENTS.md"
144
+ New-ProjectFile "adapters/antigravity/.gemini/settings.json" "$RepoUrl/adapters/antigravity/.gemini/settings.json"
145
+ New-ProjectFile "adapters/antigravity/setup.md" "$RepoUrl/adapters/antigravity/setup.md"
146
+ }
147
+ "cursor" {
148
+ New-ProjectFile "adapters/cursor/.cursorrules" "$RepoUrl/adapters/cursor/.cursorrules"
149
+ New-ProjectFile "adapters/cursor/setup.md" "$RepoUrl/adapters/cursor/setup.md"
150
+ }
151
+ "claude" {
152
+ New-ProjectFile "adapters/claude/CLAUDE.md" "$RepoUrl/adapters/claude/CLAUDE.md"
153
+ New-ProjectFile "adapters/claude/setup.md" "$RepoUrl/adapters/claude/setup.md"
154
+ }
155
+ "gemini" {
156
+ New-ProjectFile "adapters/gemini/GEMINI.md" "$RepoUrl/adapters/gemini/GEMINI.md"
157
+ New-ProjectFile "adapters/gemini/setup.md" "$RepoUrl/adapters/gemini/setup.md"
158
+ }
159
+ "vscode" {
160
+ New-ProjectFile "adapters/vscode/.vscode/settings.json" "$RepoUrl/adapters/vscode/.vscode/settings.json"
161
+ New-ProjectFile "adapters/vscode/setup.md" "$RepoUrl/adapters/vscode/setup.md"
162
+ }
163
+ }
164
+ }
165
+
166
+ if ($All) {
167
+ foreach ($adapter in @("codex", "antigravity", "cursor", "claude", "gemini", "vscode")) {
168
+ Install-Adapter $adapter
169
+ }
170
+ }
171
+ else {
172
+ Write-Host "Which adapters do you want to install?" -ForegroundColor Yellow
173
+ Write-Host " 1) all"
174
+ Write-Host " 2) codex"
175
+ Write-Host " 3) antigravity"
176
+ Write-Host " 4) cursor"
177
+ Write-Host " 5) claude"
178
+ Write-Host " 6) gemini"
179
+ Write-Host " 7) vscode"
180
+ Write-Host " 8) none"
181
+ Write-Host ""
182
+ $choices = Read-Host "Enter choices (comma-separated, e.g., 2,4,5)"
183
+
184
+ if ([string]::IsNullOrWhiteSpace($choices) -or $choices -eq "8") {
185
+ Write-Host "Skipping adapters." -ForegroundColor Yellow
186
+ }
187
+ elseif ($choices -eq "1") {
188
+ foreach ($adapter in @("codex", "antigravity", "cursor", "claude", "gemini", "vscode")) {
189
+ Install-Adapter $adapter
190
+ }
191
+ }
192
+ else {
193
+ $selected = $choices -split "," | ForEach-Object { $_.Trim() }
194
+ foreach ($choice in $selected) {
195
+ switch ($choice) {
196
+ "2" { Install-Adapter "codex" }
197
+ "3" { Install-Adapter "antigravity" }
198
+ "4" { Install-Adapter "cursor" }
199
+ "5" { Install-Adapter "claude" }
200
+ "6" { Install-Adapter "gemini" }
201
+ "7" { Install-Adapter "vscode" }
202
+ default { Write-Host "Unknown choice: $choice" -ForegroundColor Red }
203
+ }
204
+ }
205
+ }
206
+ }
207
+
208
+ # --- Summary ---
209
+
210
+ Write-Host ""
211
+ Write-Host "multimodel-dev-os installed!" -ForegroundColor Green
212
+ Write-Host ""
213
+ Write-Host "Next steps:"
214
+ Write-Host " 1. Edit AGENTS.md with your project details"
215
+ Write-Host " 2. Edit .ai/config.yaml to enable your adapters"
216
+ Write-Host " 3. Copy adapter files to your project root as needed:"
217
+ Write-Host " - Cursor: Copy-Item adapters/cursor/.cursorrules .cursorrules"
218
+ Write-Host " - Claude: Copy-Item adapters/claude/CLAUDE.md CLAUDE.md"
219
+ Write-Host " - VS Code: Copy-Item -Recurse adapters/vscode/.vscode/ .vscode/"
220
+ Write-Host ""
221
+ Write-Host " Docs: https://github.com/rizvee/multimodel-dev-os"
222
+ Write-Host ""
223
+
224
+ if ($Caveman) {
225
+ Write-Host " Caveman Mode active - minimal-token templates installed" -ForegroundColor Yellow
226
+ }
227
+
228
+ if ($DryRun) {
229
+ Write-Host " Dry run - no files were created" -ForegroundColor Blue
230
+ }
@@ -0,0 +1,237 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # multimodel-dev-os installer for macOS / Linux / WSL
5
+ # Usage: curl -fsSL https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main/scripts/install.sh | bash
6
+ # Flags: --caveman (use minimal-token templates)
7
+ # --all (install all adapters)
8
+ # --dry-run (show what would be created without creating)
9
+
10
+ VERSION="0.1.0"
11
+ REPO_URL="https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
12
+ CAVEMAN=false
13
+ DRY_RUN=false
14
+ INSTALL_ALL=false
15
+
16
+ # Colors
17
+ RED='\033[0;31m'
18
+ GREEN='\033[0;32m'
19
+ YELLOW='\033[0;33m'
20
+ BLUE='\033[0;34m'
21
+ NC='\033[0m' # No Color
22
+
23
+ # Parse arguments
24
+ for arg in "$@"; do
25
+ case $arg in
26
+ --caveman) CAVEMAN=true ;;
27
+ --dry-run) DRY_RUN=true ;;
28
+ --all) INSTALL_ALL=true ;;
29
+ --help)
30
+ echo "multimodel-dev-os installer v${VERSION}"
31
+ echo ""
32
+ echo "Usage: curl -fsSL .../install.sh | bash [-s -- OPTIONS]"
33
+ echo ""
34
+ echo "Options:"
35
+ echo " --caveman Use minimal-token templates (~79% fewer tokens)"
36
+ echo " --all Install all adapters"
37
+ echo " --dry-run Show what would be created without creating"
38
+ echo " --help Show this help message"
39
+ exit 0
40
+ ;;
41
+ *)
42
+ echo -e "${RED}Unknown option: $arg${NC}"
43
+ exit 1
44
+ ;;
45
+ esac
46
+ done
47
+
48
+ echo -e "${BLUE}multimodel-dev-os installer v${VERSION}${NC}"
49
+ echo ""
50
+
51
+ # --- Helper Functions ---
52
+
53
+ create_file() {
54
+ local path="$1"
55
+ local url="$2"
56
+
57
+ if [ -f "$path" ]; then
58
+ echo -e " ${YELLOW}SKIP${NC} $path (already exists)"
59
+ return
60
+ fi
61
+
62
+ if [ "$DRY_RUN" = true ]; then
63
+ echo -e " ${BLUE}WOULD CREATE${NC} $path"
64
+ return
65
+ fi
66
+
67
+ mkdir -p "$(dirname "$path")"
68
+ if curl -fsSL "$url" -o "$path" 2>/dev/null; then
69
+ echo -e " ${GREEN}CREATE${NC} $path"
70
+ else
71
+ echo -e " ${RED}FAIL${NC} $path (download failed)"
72
+ fi
73
+ }
74
+
75
+ create_dir() {
76
+ local path="$1"
77
+
78
+ if [ -d "$path" ]; then
79
+ echo -e " ${YELLOW}SKIP${NC} $path/ (already exists)"
80
+ return
81
+ fi
82
+
83
+ if [ "$DRY_RUN" = true ]; then
84
+ echo -e " ${BLUE}WOULD CREATE${NC} $path/"
85
+ return
86
+ fi
87
+
88
+ mkdir -p "$path"
89
+ echo -e " ${GREEN}CREATE${NC} $path/"
90
+ }
91
+
92
+ # --- Phase 1: Core Files ---
93
+
94
+ echo -e "${BLUE}Creating core files...${NC}"
95
+
96
+ if [ "$CAVEMAN" = true ]; then
97
+ create_file "AGENTS.md" "${REPO_URL}/.ai/templates/AGENTS.caveman.md"
98
+ create_file "MEMORY.md" "${REPO_URL}/.ai/templates/MEMORY.caveman.md"
99
+ create_file "TASKS.md" "${REPO_URL}/.ai/templates/TASKS.caveman.md"
100
+ create_file "RUNBOOK.md" "${REPO_URL}/.ai/templates/RUNBOOK.caveman.md"
101
+ else
102
+ create_file "AGENTS.md" "${REPO_URL}/AGENTS.md"
103
+ create_file "MEMORY.md" "${REPO_URL}/MEMORY.md"
104
+ create_file "TASKS.md" "${REPO_URL}/TASKS.md"
105
+ create_file "RUNBOOK.md" "${REPO_URL}/RUNBOOK.md"
106
+ fi
107
+ create_file ".gitattributes" "${REPO_URL}/.gitattributes"
108
+ create_file "bin/multimodel-dev-os.js" "${REPO_URL}/bin/multimodel-dev-os.js"
109
+
110
+ # --- Phase 2: .ai/ Directory ---
111
+
112
+ echo ""
113
+ echo -e "${BLUE}Creating .ai/ directory...${NC}"
114
+
115
+ create_file ".ai/config.yaml" "${REPO_URL}/.ai/config.yaml"
116
+ create_dir ".ai/context"
117
+ create_file ".ai/context/README.md" "${REPO_URL}/.ai/context/README.md"
118
+ create_dir ".ai/agents"
119
+ create_file ".ai/agents/README.md" "${REPO_URL}/.ai/agents/README.md"
120
+ create_file ".ai/agents/multimodel-orchestrator.md" "${REPO_URL}/.ai/agents/multimodel-orchestrator.md"
121
+ create_dir ".ai/skills"
122
+ create_file ".ai/skills/README.md" "${REPO_URL}/.ai/skills/README.md"
123
+ create_file ".ai/skills/example-skill.md" "${REPO_URL}/.ai/skills/example-skill.md"
124
+ create_dir ".ai/prompts"
125
+ create_file ".ai/prompts/README.md" "${REPO_URL}/.ai/prompts/README.md"
126
+ create_dir ".ai/checks"
127
+ create_file ".ai/checks/README.md" "${REPO_URL}/.ai/checks/README.md"
128
+ create_file ".ai/checks/pre-commit.md" "${REPO_URL}/.ai/checks/pre-commit.md"
129
+ create_dir ".ai/session-logs"
130
+ create_file ".ai/session-logs/README.md" "${REPO_URL}/.ai/session-logs/README.md"
131
+ create_dir ".ai/templates"
132
+ create_file ".ai/templates/AGENTS.caveman.md" "${REPO_URL}/.ai/templates/AGENTS.caveman.md"
133
+ create_file ".ai/templates/MEMORY.caveman.md" "${REPO_URL}/.ai/templates/MEMORY.caveman.md"
134
+ create_file ".ai/templates/TASKS.caveman.md" "${REPO_URL}/.ai/templates/TASKS.caveman.md"
135
+ create_file ".ai/templates/RUNBOOK.caveman.md" "${REPO_URL}/.ai/templates/RUNBOOK.caveman.md"
136
+
137
+ # --- Phase 3: Adapters ---
138
+
139
+ echo ""
140
+
141
+ install_adapter() {
142
+ local name="$1"
143
+ echo -e "${BLUE}Installing $name adapter...${NC}"
144
+
145
+ case $name in
146
+ codex)
147
+ create_file "adapters/codex/AGENTS.md" "${REPO_URL}/adapters/codex/AGENTS.md"
148
+ create_file "adapters/codex/setup.md" "${REPO_URL}/adapters/codex/setup.md"
149
+ ;;
150
+ antigravity)
151
+ create_file "adapters/antigravity/AGENTS.md" "${REPO_URL}/adapters/antigravity/AGENTS.md"
152
+ create_file "adapters/antigravity/.gemini/settings.json" "${REPO_URL}/adapters/antigravity/.gemini/settings.json"
153
+ create_file "adapters/antigravity/setup.md" "${REPO_URL}/adapters/antigravity/setup.md"
154
+ ;;
155
+ cursor)
156
+ create_file "adapters/cursor/.cursorrules" "${REPO_URL}/adapters/cursor/.cursorrules"
157
+ create_file "adapters/cursor/setup.md" "${REPO_URL}/adapters/cursor/setup.md"
158
+ ;;
159
+ claude)
160
+ create_file "adapters/claude/CLAUDE.md" "${REPO_URL}/adapters/claude/CLAUDE.md"
161
+ create_file "adapters/claude/setup.md" "${REPO_URL}/adapters/claude/setup.md"
162
+ ;;
163
+ gemini)
164
+ create_file "adapters/gemini/GEMINI.md" "${REPO_URL}/adapters/gemini/GEMINI.md"
165
+ create_file "adapters/gemini/setup.md" "${REPO_URL}/adapters/gemini/setup.md"
166
+ ;;
167
+ vscode)
168
+ create_file "adapters/vscode/.vscode/settings.json" "${REPO_URL}/adapters/vscode/.vscode/settings.json"
169
+ create_file "adapters/vscode/setup.md" "${REPO_URL}/adapters/vscode/setup.md"
170
+ ;;
171
+ esac
172
+ }
173
+
174
+ if [ "$INSTALL_ALL" = true ]; then
175
+ for adapter in codex antigravity cursor claude gemini vscode; do
176
+ install_adapter "$adapter"
177
+ done
178
+ else
179
+ echo -e "${YELLOW}Which adapters do you want to install?${NC}"
180
+ echo " 1) all"
181
+ echo " 2) codex"
182
+ echo " 3) antigravity"
183
+ echo " 4) cursor"
184
+ echo " 5) claude"
185
+ echo " 6) gemini"
186
+ echo " 7) vscode"
187
+ echo " 8) none"
188
+ echo ""
189
+ echo -n "Enter choices (comma-separated, e.g., 2,4,5): "
190
+ read -r choices
191
+
192
+ if [ -z "$choices" ] || [ "$choices" = "8" ]; then
193
+ echo -e "${YELLOW}Skipping adapters.${NC}"
194
+ elif [ "$choices" = "1" ]; then
195
+ for adapter in codex antigravity cursor claude gemini vscode; do
196
+ install_adapter "$adapter"
197
+ done
198
+ else
199
+ IFS=',' read -ra selected <<< "$choices"
200
+ for choice in "${selected[@]}"; do
201
+ choice=$(echo "$choice" | tr -d ' ')
202
+ case $choice in
203
+ 2) install_adapter "codex" ;;
204
+ 3) install_adapter "antigravity" ;;
205
+ 4) install_adapter "cursor" ;;
206
+ 5) install_adapter "claude" ;;
207
+ 6) install_adapter "gemini" ;;
208
+ 7) install_adapter "vscode" ;;
209
+ *) echo -e "${RED}Unknown choice: $choice${NC}" ;;
210
+ esac
211
+ done
212
+ fi
213
+ fi
214
+
215
+ # --- Summary ---
216
+
217
+ echo ""
218
+ echo -e "${GREEN}✅ multimodel-dev-os installed!${NC}"
219
+ echo ""
220
+ echo "Next steps:"
221
+ echo " 1. Edit AGENTS.md with your project details"
222
+ echo " 2. Edit .ai/config.yaml to enable your adapters"
223
+ echo " 3. Copy adapter files to your project root as needed:"
224
+ echo " - Cursor: cp adapters/cursor/.cursorrules .cursorrules"
225
+ echo " - Claude: cp adapters/claude/CLAUDE.md CLAUDE.md"
226
+ echo " - VS Code: cp -r adapters/vscode/.vscode/ .vscode/"
227
+ echo ""
228
+ echo " Docs: https://github.com/rizvee/multimodel-dev-os"
229
+ echo ""
230
+
231
+ if [ "$CAVEMAN" = true ]; then
232
+ echo -e " ${YELLOW}ðŸĶī Caveman Mode active — minimal-token templates installed${NC}"
233
+ fi
234
+
235
+ if [ "$DRY_RUN" = true ]; then
236
+ echo -e " ${BLUE}🔍 Dry run — no files were created${NC}"
237
+ fi
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Pack multimodel-dev-os template files into a distributable archive.
5
+ # Used for future npm/CLI packaging. Does not include .git, examples, or docs.
6
+
7
+ VERSION="${1:-0.1.0}"
8
+ OUTPUT="multimodel-dev-os-${VERSION}.tar.gz"
9
+
10
+ echo "Packing multimodel-dev-os v${VERSION}..."
11
+
12
+ INCLUDE=(
13
+ AGENTS.md
14
+ MEMORY.md
15
+ TASKS.md
16
+ RUNBOOK.md
17
+ .ai/
18
+ adapters/
19
+ )
20
+
21
+ # Check that required files exist
22
+ for item in "${INCLUDE[@]}"; do
23
+ if [ ! -e "$item" ]; then
24
+ echo "ERROR: $item not found. Run from the repo root."
25
+ exit 1
26
+ fi
27
+ done
28
+
29
+ tar -czf "$OUTPUT" \
30
+ --exclude='*.gitkeep' \
31
+ --exclude='.ai/session-logs/*.md' \
32
+ --exclude='!.ai/session-logs/README.md' \
33
+ "${INCLUDE[@]}"
34
+
35
+ echo "Created: $OUTPUT"
36
+ echo "Contents:"
37
+ tar -tzf "$OUTPUT" | head -30
38
+ echo "..."
39
+ echo "Done."