multimodel-dev-os 0.3.0 → 0.5.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/README.md +103 -98
- package/bin/multimodel-dev-os.js +351 -35
- package/docs/caveman-mode.md +7 -3
- package/docs/cli-roadmap.md +33 -21
- package/docs/comparison.md +33 -0
- package/docs/faq.md +21 -4
- package/docs/installers.md +1 -1
- package/docs/launch-kit.md +99 -0
- package/docs/multimodel-workflow.md +10 -11
- package/docs/npm-publishing.md +2 -2
- package/docs/quickstart.md +42 -29
- package/docs/templates-guide.md +65 -0
- package/docs/use-cases.md +39 -0
- package/examples/ecommerce-store/.ai/config.yaml +7 -4
- package/examples/ecommerce-store/.ai/context/architecture.md +6 -0
- package/examples/ecommerce-store/.ai/context/context-budget.md +4 -0
- package/examples/ecommerce-store/.ai/context/model-map.md +4 -0
- package/examples/ecommerce-store/.ai/context/project-brief.md +3 -0
- package/examples/ecommerce-store/.ai/skills/webhook-handler.md +15 -0
- package/examples/ecommerce-store/AGENTS.md +15 -2
- package/examples/ecommerce-store/MEMORY.md +4 -3
- package/examples/ecommerce-store/TASKS.md +10 -0
- package/examples/general-app/.ai/config.yaml +7 -4
- package/examples/general-app/.ai/context/architecture.md +12 -0
- package/examples/general-app/.ai/context/context-budget.md +5 -0
- package/examples/general-app/.ai/context/model-map.md +7 -0
- package/examples/general-app/.ai/context/project-brief.md +6 -0
- package/examples/general-app/.ai/skills/example-skill.md +8 -0
- package/examples/general-app/AGENTS.md +69 -4
- package/examples/general-app/MEMORY.md +32 -2
- package/examples/general-app/TASKS.md +9 -0
- package/examples/nextjs-saas/.ai/config.yaml +7 -4
- package/examples/nextjs-saas/.ai/context/architecture.md +8 -0
- package/examples/nextjs-saas/.ai/context/context-budget.md +4 -0
- package/examples/nextjs-saas/.ai/context/model-map.md +4 -0
- package/examples/nextjs-saas/.ai/context/project-brief.md +5 -0
- package/examples/nextjs-saas/.ai/skills/nextjs-action-build.md +16 -0
- package/examples/nextjs-saas/AGENTS.md +8 -2
- package/examples/nextjs-saas/MEMORY.md +7 -4
- package/examples/nextjs-saas/TASKS.md +12 -0
- package/examples/seo-landing-page/.ai/config.yaml +0 -0
- package/examples/seo-landing-page/.ai/context/architecture.md +12 -0
- package/examples/seo-landing-page/.ai/context/context-budget.md +5 -0
- package/examples/seo-landing-page/.ai/context/model-map.md +7 -0
- package/examples/seo-landing-page/.ai/context/project-brief.md +6 -0
- package/examples/seo-landing-page/.ai/skills/seo-audit.md +21 -0
- package/examples/seo-landing-page/AGENTS.md +69 -4
- package/examples/seo-landing-page/MEMORY.md +33 -4
- package/examples/seo-landing-page/TASKS.md +9 -0
- package/examples/wordpress-site/.ai/config.yaml +7 -4
- package/examples/wordpress-site/.ai/context/architecture.md +7 -0
- package/examples/wordpress-site/.ai/context/context-budget.md +4 -0
- package/examples/wordpress-site/.ai/context/model-map.md +4 -0
- package/examples/wordpress-site/.ai/context/project-brief.md +3 -0
- package/examples/wordpress-site/.ai/skills/plugin-boilerplate.md +21 -0
- package/examples/wordpress-site/AGENTS.md +16 -3
- package/examples/wordpress-site/MEMORY.md +4 -3
- package/examples/wordpress-site/TASKS.md +10 -0
- package/package.json +1 -1
- package/scripts/install.ps1 +1 -1
- package/scripts/install.sh +1 -1
- package/scripts/verify.sh +12 -12
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Next.js SaaS — Architecture Map
|
|
2
|
+
|
|
3
|
+
## Directory Boundaries
|
|
4
|
+
- `/app` — Route groups, API routes, and Server Actions controllers.
|
|
5
|
+
- `/components` — React UI components (Tailwind classes ordered).
|
|
6
|
+
- `/lib` — Prisma database Client singleton, helper utilities.
|
|
7
|
+
- `/prisma` — Postgres SQL schemas definitions, migrations files.
|
|
8
|
+
- `/tests` — Unit tests using vitest or Jest.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# Next.js SaaS — Model Map
|
|
2
|
+
|
|
3
|
+
- **Claude / Antigravity:** Best for designing database schemas modifications, Next.js Server Actions layouts, and Stripe integrations routing.
|
|
4
|
+
- **Cursor / Codex:** Ideal for refactoring react hooks, compiling component styling, and implementing unit tests.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Next.js SaaS — Project Brief
|
|
2
|
+
|
|
3
|
+
This project is a high-performance, TypeScript-based SaaS platform boilerplate that provides secure database persistence, stripe-based subscription tiers, and standard authentication modules.
|
|
4
|
+
|
|
5
|
+
The goal is to enable AI coding tools to safely construct, refine, and deploy features under strict TypeScript constraints.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Skill: React Server Actions secure implementation
|
|
2
|
+
|
|
3
|
+
Use this skill when implementing a secure React Server Action in Next.js:
|
|
4
|
+
|
|
5
|
+
1. **State Isolation:** Ensure actions include `"use server"` at the top of the file or module.
|
|
6
|
+
2. **Parameters validation:** Validate all input parameters via Zod schema parsers.
|
|
7
|
+
3. **Connection safety:** Ensure Prisma queries inside the Action execute within try-catch blocks:
|
|
8
|
+
```typescript
|
|
9
|
+
try {
|
|
10
|
+
const data = await prisma.user.update({...});
|
|
11
|
+
return { success: true, data };
|
|
12
|
+
} catch (e) {
|
|
13
|
+
return { success: false, error: e.message };
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
4. **No secret exposure:** Never return raw sensitive fields (like password hashes or API private keys) to the UI client layer.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Next.js SaaS — Agent Instructions
|
|
2
2
|
|
|
3
3
|
project: nextjs-saas-starter
|
|
4
|
-
stack: Next.js 14 (App Router), TypeScript, Tailwind CSS, Prisma,
|
|
5
|
-
description: Subscription-based
|
|
4
|
+
stack: Next.js 14 (App Router), React 18, TypeScript, Tailwind CSS, Prisma ORM, Stripe, PostgreSQL
|
|
5
|
+
description: Subscription-based SaaS boilerplate with checkout modules and database triggers.
|
|
6
6
|
|
|
7
7
|
## Build Commands
|
|
8
8
|
```
|
|
@@ -11,3 +11,9 @@ build: npm run build
|
|
|
11
11
|
test: npm run test
|
|
12
12
|
lint: npm run lint
|
|
13
13
|
```
|
|
14
|
+
|
|
15
|
+
## Coding Conventions
|
|
16
|
+
- **Language:** TypeScript (strict mode enabled).
|
|
17
|
+
- **Framework:** Next.js App Router. Enforce Server Components by default; add `"use client"` only for files requiring state, effects, or user event handlers.
|
|
18
|
+
- **Data Access:** Enforce Prisma Client operations inside Server Actions or Route Handlers; keep connection pools under limits (e.g. `npx prisma db push`).
|
|
19
|
+
- **Styling:** Vanilla CSS modules or Tailwind CSS utilities classes. Order Tailwind classes systematically (layout first, then spacing, then typography).
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Next.js SaaS — Memory
|
|
1
|
+
# Next.js SaaS — Project Memory
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
-
|
|
5
|
-
-
|
|
3
|
+
## Architectural Decisions
|
|
4
|
+
- **React Server Actions:** Adopted Server Actions for form submissions and mutation endpoints. Kept Route Handlers only for webhooks (like Stripe Webhook events).
|
|
5
|
+
- **Prisma Connection Pooling:** Instantiated PrismaClient as a global singleton on development to prevent socket fatigue on hot-reloading.
|
|
6
|
+
|
|
7
|
+
## Active Conventions
|
|
8
|
+
- Always wrap database actions in standard try-catch blocks returning custom objects `{ success: boolean, data?: any, error?: string }` to simplify frontend feedback.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Next.js SaaS — Starter Tasks
|
|
2
|
+
|
|
3
|
+
- [ ] Core Setup & Auth Integration
|
|
4
|
+
- [ ] Configure Prisma schema and run local DB migrations
|
|
5
|
+
- [ ] Connect NextAuth/Auth0 provider credentials inside `.env`
|
|
6
|
+
- [ ] Subscription Flows & Webhooks
|
|
7
|
+
- [ ] Set up Stripe product prices and API keys
|
|
8
|
+
- [ ] Implement secure order checkout Server Action
|
|
9
|
+
- [ ] Write secure endpoint under `/api/webhook/stripe` to handle billing updates
|
|
10
|
+
- [ ] Quality Assurance
|
|
11
|
+
- [ ] Run full build check `npm run build`
|
|
12
|
+
- [ ] Audit Lighthouse core web vitals parameters on landing pages
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Architecture Map
|
|
2
|
+
|
|
3
|
+
```mermaid
|
|
4
|
+
graph TD
|
|
5
|
+
Markdown[Content Files] --> Astro[Astro Engine]
|
|
6
|
+
Components[React/Astro Components] --> Astro
|
|
7
|
+
Astro --> Static[Static Assets: HTML, JS, CSS]
|
|
8
|
+
Static --> Purge[PurgeCSS Optimization]
|
|
9
|
+
Purge --> CDN[Edge CDN Distribution]
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Static sites are distributed strictly through static hosting with zero server overhead.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Model Map
|
|
2
|
+
|
|
3
|
+
Define LLM task allocations for the SEO Landing Page context:
|
|
4
|
+
|
|
5
|
+
- **Coding & Implementation:** Gemini 3.5 Pro or Claude 3.5 Sonnet for Astro component templates.
|
|
6
|
+
- **Refactoring & Styling:** Gemini 3.5 Flash for rapid CSS class styling.
|
|
7
|
+
- **SEO Optimization & Content Auditing:** Claude 3.5 Sonnet for structured schema compliance.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
This project acts as an ultra-fast static landing page optimized for Astro, targeting high Core Web Vitals and structured JSON-LD SEO markup.
|
|
4
|
+
- Core Web Vitals target: 100/100 on Mobile and Desktop.
|
|
5
|
+
- Native CSS/purge pipelines configured.
|
|
6
|
+
- Structured content layouts for perfect semantic indexing.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Skill: Google Lighthouse optimization
|
|
2
|
+
|
|
3
|
+
Use this skill when auditing and optimizing a static landing page:
|
|
4
|
+
|
|
5
|
+
1. **Meta Descriptions Verification:** Every page layout must contain:
|
|
6
|
+
```html
|
|
7
|
+
<meta name="description" content="Precise SEO description (under 160 characters)" />
|
|
8
|
+
```
|
|
9
|
+
2. **Alt Tags Check:** Ensure every `<img>` tag has a valid, descriptively non-empty `alt` string.
|
|
10
|
+
3. **Structured Schemas:** Embed JSON-LD maps:
|
|
11
|
+
```html
|
|
12
|
+
<script type="application/ld+json">
|
|
13
|
+
{
|
|
14
|
+
"@context": "https://schema.org",
|
|
15
|
+
"@type": "WebSite",
|
|
16
|
+
"name": "Custom Profile",
|
|
17
|
+
"url": "https://example.com"
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
```
|
|
21
|
+
4. **Compression Audits:** Enforce `.webp` or `.avif` extensions for large backgrounds instead of uncompressed PNGs.
|
|
@@ -1,5 +1,70 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Agent Instructions
|
|
2
2
|
|
|
3
|
-
project
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
> This file is the **source of truth** for all AI coding agents working on this project.
|
|
4
|
+
> Tool-specific adapters in `adapters/` read from this file. Do not duplicate instructions there.
|
|
5
|
+
|
|
6
|
+
## Project Overview
|
|
7
|
+
|
|
8
|
+
project: seo-landing-page
|
|
9
|
+
stack: Astro, React, Tailwind CSS, HTML5, JSON-LD
|
|
10
|
+
description: Premium static landing page optimized for high SEO performance and Core Web Vitals.
|
|
11
|
+
|
|
12
|
+
## Build Commands
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
dev: npm run dev
|
|
16
|
+
build: npm run build
|
|
17
|
+
test: npm run test
|
|
18
|
+
lint: npm run lint
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Coding Conventions
|
|
22
|
+
|
|
23
|
+
- Language: JavaScript / TypeScript
|
|
24
|
+
- Framework: Astro
|
|
25
|
+
- Style guide: Astro Standard
|
|
26
|
+
- Type checking: none
|
|
27
|
+
- Formatting: Prettier
|
|
28
|
+
|
|
29
|
+
## File Structure Rules
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
src/ → Application source code
|
|
33
|
+
lib/ → Shared libraries and utilities
|
|
34
|
+
tests/ → Test files
|
|
35
|
+
docs/ → Documentation
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Boundaries
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
no-touch:
|
|
42
|
+
- .env
|
|
43
|
+
- .env.local
|
|
44
|
+
- node_modules/
|
|
45
|
+
- package-lock.json (do not manually edit)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Agent Roles
|
|
49
|
+
|
|
50
|
+
| Role | Tool | Scope | Permissions |
|
|
51
|
+
|------|------|-------|-------------|
|
|
52
|
+
| default | any | all files | read + write |
|
|
53
|
+
|
|
54
|
+
## Dependencies
|
|
55
|
+
|
|
56
|
+
- astro
|
|
57
|
+
- tailwindcss
|
|
58
|
+
- @astrojs/react
|
|
59
|
+
|
|
60
|
+
## Testing Strategy
|
|
61
|
+
|
|
62
|
+
- Unit tests: none
|
|
63
|
+
- Integration tests: Playwright
|
|
64
|
+
- E2E tests: Lighthouse audits
|
|
65
|
+
|
|
66
|
+
## Additional Context
|
|
67
|
+
|
|
68
|
+
- See `MEMORY.md` for project history and decisions
|
|
69
|
+
- See `TASKS.md` for current work items
|
|
70
|
+
- See `RUNBOOK.md` for operational procedures
|
|
@@ -1,5 +1,34 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Project Memory
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
> Persistent context that AI agents carry across sessions.
|
|
4
|
+
> Update this file as the project evolves. Keep it under 200 lines.
|
|
5
|
+
|
|
6
|
+
## Architecture Decisions
|
|
7
|
+
|
|
8
|
+
| Date | Decision | Rationale |
|
|
9
|
+
|------|----------|-----------|
|
|
10
|
+
| 2026-05-30 | Astro for static rendering | Astro offers zero-JS by default, ensuring perfect Lighthouse performance. |
|
|
11
|
+
| 2026-05-30 | Tailwind CSS for styling | Utility-first classes optimized and purged during the production build. |
|
|
12
|
+
|
|
13
|
+
## Key Patterns
|
|
14
|
+
|
|
15
|
+
- **Structured Metadata:** Always include custom JSON-LD schemas in layout headers.
|
|
16
|
+
- **Image Optimization:** Enforce specific width/height ratios and lazy loading on all non-above-the-fold assets.
|
|
17
|
+
|
|
18
|
+
## Known Issues
|
|
19
|
+
|
|
20
|
+
- External font loading might trigger visual flashes (CLS). Font display swapping is enabled.
|
|
21
|
+
|
|
22
|
+
## Environment Notes
|
|
23
|
+
|
|
24
|
+
- OS: Platform independent
|
|
25
|
+
- CI: GitHub Actions
|
|
26
|
+
- Hosting: Vercel Static
|
|
27
|
+
|
|
28
|
+
## Session Notes
|
|
29
|
+
|
|
30
|
+
### Session: Baseline Scaffold
|
|
31
|
+
**Date:** 2026-05-30
|
|
32
|
+
**Agent:** Antigravity
|
|
33
|
+
**Summary:** Created layout structure and integrated SEO-audit skills guidelines.
|
|
34
|
+
**Files changed:** AGENTS.md, MEMORY.md, TASKS.md
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Tasks
|
|
2
|
+
|
|
3
|
+
## Active Tasks
|
|
4
|
+
- [ ] Scaffold standard layout inside Astro project
|
|
5
|
+
- [ ] Embed JSON-LD structured data in header layout
|
|
6
|
+
- [ ] Perform Lighthouse performance audit and optimize styles
|
|
7
|
+
|
|
8
|
+
## Completed Tasks
|
|
9
|
+
- [x] Set up initial project boundaries and configuration yaml
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# WordPress Site — Architecture Map
|
|
2
|
+
|
|
3
|
+
## Directory Boundaries
|
|
4
|
+
- `/inc` — Helper PHP classes and functions.
|
|
5
|
+
- `/src` — CSS/JS resources before build/compilation.
|
|
6
|
+
- `/languages` — Internationalization translation files (.pot).
|
|
7
|
+
- `plugin.php` — Core entry point defining plugin headers and activations.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Skill: WordPress secure plugin structure
|
|
2
|
+
|
|
3
|
+
Use this skill when scaffolding a secure WordPress plugin or PHP module:
|
|
4
|
+
|
|
5
|
+
1. **Direct Access Protection:** Ensure every PHP file starts with direct execution guards:
|
|
6
|
+
```php
|
|
7
|
+
if ( ! defined( 'ABSPATH' ) ) {
|
|
8
|
+
exit; // Exit if accessed directly.
|
|
9
|
+
}
|
|
10
|
+
```
|
|
11
|
+
2. **Class Namespacing:** Namespace your classes to prevent namespace collisions (e.g. `namespace WP_Custom_Plugin;`).
|
|
12
|
+
3. **Database Escaping:** Use prepared statements for direct database calls:
|
|
13
|
+
```php
|
|
14
|
+
global $wpdb;
|
|
15
|
+
$query = $wpdb->prepare(
|
|
16
|
+
"SELECT * FROM {$wpdb->prefix}custom_table WHERE id = %d",
|
|
17
|
+
$item_id
|
|
18
|
+
);
|
|
19
|
+
$results = $wpdb->get_results( $query );
|
|
20
|
+
```
|
|
21
|
+
4. **Hook Verification:** Register all activations cleanly inside a central bootstrap hook.
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# WordPress Site — Agent Instructions
|
|
2
2
|
|
|
3
|
-
project: custom-
|
|
4
|
-
stack:
|
|
5
|
-
description: Custom theme
|
|
3
|
+
project: wordpress-custom-profile
|
|
4
|
+
stack: WordPress Core, Gutenberg Block Editor, PHP, custom plugins, MySQL
|
|
5
|
+
description: Custom theme and plugin scaffolding targeting sanitized PHP database queries.
|
|
6
|
+
|
|
7
|
+
## Build Commands
|
|
8
|
+
```
|
|
9
|
+
dev: composer run dev
|
|
10
|
+
build: composer run build
|
|
11
|
+
test: composer run test
|
|
12
|
+
lint: composer run lint
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Coding Conventions
|
|
16
|
+
- **Language:** PHP 8.1+ and ES6 Javascript for Gutenberg custom blocks.
|
|
17
|
+
- **Sanitization Gates:** Enforce output escaping: `esc_attr()`, `esc_html()`, `esc_url()`, and `wp_kses()`.
|
|
18
|
+
- **Database Safety:** Always use `$wpdb->prepare()` for custom SQL queries to avoid SQL Injection vulnerabilities.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
# WordPress Site — Memory
|
|
1
|
+
# WordPress Site — Project Memory
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
-
|
|
3
|
+
## Architectural Decisions
|
|
4
|
+
- **Custom Post Types (CPT):** Registered custom post types strictly using the `init` action hook to ensure URL rewrite rules initialize cleanly.
|
|
5
|
+
- **WP Transients:** Cached heavy database option operations using WordPress Transients API to preserve SQL query load budgets.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# WordPress Site — Starter Tasks
|
|
2
|
+
|
|
3
|
+
- [ ] Core Setup & Setup hooks
|
|
4
|
+
- [ ] Scaffold the base plugin class structure
|
|
5
|
+
- [ ] Register the action and filter hooks in `plugin.php`
|
|
6
|
+
- [ ] Database Schema Setup
|
|
7
|
+
- [ ] Implement secure custom query wrapper using `$wpdb`
|
|
8
|
+
- [ ] Setup transient caches for complex queries
|
|
9
|
+
- [ ] Block Editor (Gutenberg)
|
|
10
|
+
- [ ] Build a custom block boilerplate matching registerBlockType parameters
|
package/package.json
CHANGED
package/scripts/install.ps1
CHANGED
package/scripts/install.sh
CHANGED
package/scripts/verify.sh
CHANGED
|
@@ -197,30 +197,30 @@ check_file "docs/npm-publishing.md"
|
|
|
197
197
|
echo ""
|
|
198
198
|
echo "Running CLI & Packaging Pre-Flight Tests..."
|
|
199
199
|
|
|
200
|
-
# Verify package.json version is exactly 0.
|
|
201
|
-
if ! grep -q '"version": "0.
|
|
202
|
-
echo -e " ${RED}✗${NC} package.json version is not 0.
|
|
200
|
+
# Verify package.json version is exactly 0.5.0
|
|
201
|
+
if ! grep -q '"version": "0.5.0"' package.json; then
|
|
202
|
+
echo -e " ${RED}✗${NC} package.json version is not 0.5.0"
|
|
203
203
|
FAIL=$((FAIL + 1))
|
|
204
204
|
else
|
|
205
|
-
echo -e " ${GREEN}✓${NC} package.json version is exactly 0.
|
|
205
|
+
echo -e " ${GREEN}✓${NC} package.json version is exactly 0.5.0"
|
|
206
206
|
PASS=$((PASS + 1))
|
|
207
207
|
fi
|
|
208
208
|
|
|
209
|
-
# Verify CLI version matches v0.
|
|
210
|
-
if ! node bin/multimodel-dev-os.js --help | grep -q 'v0.
|
|
211
|
-
echo -e " ${RED}✗${NC} CLI help does not display v0.
|
|
209
|
+
# Verify CLI version matches v0.5.0
|
|
210
|
+
if ! node bin/multimodel-dev-os.js --help | grep -q 'v0.5.0'; then
|
|
211
|
+
echo -e " ${RED}✗${NC} CLI help does not display v0.5.0"
|
|
212
212
|
FAIL=$((FAIL + 1))
|
|
213
213
|
else
|
|
214
|
-
echo -e " ${GREEN}✓${NC} CLI help displays v0.
|
|
214
|
+
echo -e " ${GREEN}✓${NC} CLI help displays v0.5.0"
|
|
215
215
|
PASS=$((PASS + 1))
|
|
216
216
|
fi
|
|
217
217
|
|
|
218
|
-
# Verify npm pack dry-run shows v0.
|
|
219
|
-
if ! npm pack --dry-run 2>&1 | grep -q 'multimodel-dev-os@0.
|
|
220
|
-
echo -e " ${RED}✗${NC} npm pack --dry-run does not report version 0.
|
|
218
|
+
# Verify npm pack dry-run shows v0.5.0
|
|
219
|
+
if ! npm pack --dry-run 2>&1 | grep -q 'multimodel-dev-os@0.5.0'; then
|
|
220
|
+
echo -e " ${RED}✗${NC} npm pack --dry-run does not report version 0.5.0"
|
|
221
221
|
FAIL=$((FAIL + 1))
|
|
222
222
|
else
|
|
223
|
-
echo -e " ${GREEN}✓${NC} npm pack --dry-run reports version 0.
|
|
223
|
+
echo -e " ${GREEN}✓${NC} npm pack --dry-run reports version 0.5.0"
|
|
224
224
|
PASS=$((PASS + 1))
|
|
225
225
|
fi
|
|
226
226
|
|