@mantajs/core 0.2.0-beta.4 → 0.2.0-beta.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"auto-routes.d.ts","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,WAAW,CAAA;IACvB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAiID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA0NpE;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA2GxE;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAyHtE;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAEvE;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpD"}
1
+ {"version":3,"file":"auto-routes.d.ts","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,WAAW,CAAA;IACvB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAiID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAsOpE;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA2GxE;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAyHtE;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CAEvE;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpD"}
@@ -148,13 +148,22 @@ export function generateAuthRoutes(deps) {
148
148
  public: true,
149
149
  handler: async (req) => {
150
150
  const token = extractToken(req);
151
+ let revoked = false;
152
+ let revocationError;
151
153
  if (token) {
152
154
  const payload = await authService.verifyToken(token, jwtSecret).catch(() => null);
153
155
  if (payload) {
154
- await cache.set(`auth:blacklist:${payload.auth_identity_id}`, '1', 2592000);
156
+ try {
157
+ await cache.set(`auth:blacklist:${payload.auth_identity_id}`, '1', 2592000);
158
+ revoked = true;
159
+ }
160
+ catch (err) {
161
+ revocationError = err instanceof Error ? err.message : String(err);
162
+ logger.warn(`[auth] Logout token revocation failed: ${revocationError}`);
163
+ }
155
164
  }
156
165
  }
157
- return Response.json({ success: true }, { headers: clearAuthCookieHeaders(ctx, authCookie) });
166
+ return Response.json({ success: true, revoked, ...(revocationError ? { warning: 'TOKEN_REVOCATION_FAILED' } : {}) }, { headers: clearAuthCookieHeaders(ctx, authCookie) });
158
167
  },
159
168
  },
160
169
  // POST /api/{ctx}/refresh
@@ -1 +1 @@
1
- {"version":3,"file":"auto-routes.js","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-routes.js","sourceRoot":"","sources":["../../src/user/auto-routes.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ defineConfig() — Configuration (database, presets, features)
46
46
  definePreset() — Reusable config preset
47
47
  ```
48
48
 
49
- **Plus helpers**: `field`, `many`, `z` (Zod), `MantaError`, `service`. All globals — zero imports needed. Contexts are filesystem-derived in V2 (`src/contexts/*.ts`) no `defineContext()` function.
49
+ **Plus helpers**: `field`, `many`, `z` (Zod), `MantaError`, `service`. All globals — zero imports needed. Contexts are filesystem-derived in V2 from `src/commands/{context}/` and `src/queries/{context}/`; `defineContext()` is legacy/deprecated.
50
50
 
51
51
  ## The module rule
52
52
 
@@ -108,7 +108,7 @@ Manta uses the same file-based convention for local code and packages. This make
108
108
 
109
109
  This separation is enforced at build time. A plugin that contains `defineModel()` or `defineService()` calls will fail validation. This forces module authors to publish modules independently, making them reusable across plugins.
110
110
 
111
- See [Config — Publishing](./08-config.md#publishing-modules-and-plugins) for CLI details.
111
+ See [Configuration — Publishing](./11-config.md#publishing-modules-and-plugins) for CLI details.
112
112
 
113
113
  #### Why plugins can't contain modules
114
114
 
@@ -137,8 +137,8 @@ By forcing separation:
137
137
  | `defineSubscriber({ event: 'product.created', ... })` | Event bus wiring |
138
138
  | `defineJob({ name: 'cleanup', schedule: '0 * * * *', ... })` | Cron scheduling, job history |
139
139
  | `defineLink((model) => [model.product, many(model.variant)])` | Pivot table, auto-cascade logic |
140
- | `defineContext({ name: 'store', basePath: '/api/store', ... })` | Route filtering, auth checks |
141
- | `manta dev` | `.manta/types/` — full TypeScript autocomplete for app.modules.*, events, entities |
140
+ | `src/commands/admin/*` + `src/queries/admin/*` | Context-scoped HTTP routes under `/api/admin/*` |
141
+ | `manta dev` | `.manta/generated.d.ts` — full TypeScript autocomplete for app.modules.*, events, entities |
142
142
 
143
143
  ## Constraint as Convention
144
144
 
@@ -173,7 +173,7 @@ All the following are available at compile time without any import:
173
173
 
174
174
  | Global | Type |
175
175
  |--------|------|
176
- | `defineCommand`, `defineQuery`, `defineModel`, `defineService`, `defineLink`, `defineSubscriber`, `defineJob`, `defineAgent`, `defineContext`, `defineWorkflow`, `defineUserModel`, `defineConfig`, `definePreset`, `defineMiddleware` | Type-safe |
176
+ | `defineCommand`, `defineQuery`, `defineModel`, `defineService`, `defineLink`, `defineSubscriber`, `defineJob`, `defineAgent`, `defineWorkflow`, `defineUserModel`, `defineConfig`, `definePreset`, `defineMiddleware` | Type-safe |
177
177
  | `field`, `many`, `service` | Type-safe |
178
178
  | `z` (Zod) | Type-safe |
179
179
 
@@ -244,11 +244,10 @@ my-app/
244
244
  │ │ └── product-inventory.ts # defineLink({...}) — cross-module ONLY
245
245
  │ ├── agents/
246
246
  │ │ └── categorize.ts # defineAgent({...})
247
- │ └── contexts/
248
- ├── admin.ts # defineContext({...})
249
- │ └── store.ts
250
- ├── .manta/types/ # Auto-generated TypeScript types
247
+ │ └── spa/
248
+ └── admin/ # Dashboard SPA (optional)
249
+ ├── .manta/generated.d.ts # Auto-generated TypeScript types
251
250
  └── drizzle/migrations/ # Auto-generated SQL migrations
252
251
  ```
253
252
 
254
- Every directory is auto-discovered. The `export default` of each file is registered automatically at boot.
253
+ Every directory is auto-discovered. The `export default` of each file is registered automatically at boot. Context routing is derived from folders: `src/commands/admin/create-product.ts` becomes `POST /api/admin/command/create-product`; `src/queries/store/catalog.ts` becomes `GET /api/store/catalog`.
@@ -3,6 +3,7 @@
3
3
  ## Prerequisites
4
4
 
5
5
  - Node.js 18+ (AsyncLocalStorage required)
6
+ - Manta packages require Node.js 20+ in published projects
6
7
  - PostgreSQL (local or cloud — Neon, Supabase, etc.)
7
8
  - pnpm
8
9
 
@@ -26,8 +27,11 @@ my-app/
26
27
  │ ├── subscribers/
27
28
  │ ├── jobs/
28
29
  │ ├── links/
29
- │ └── contexts/
30
+ │ └── spa/
30
31
  ├── drizzle/migrations/
32
+ ├── AGENT.md
33
+ ├── .codex/skills/mantajs/
34
+ ├── .claude/skills/mantajs/
31
35
  └── tsconfig.json
32
36
  ```
33
37
 
@@ -86,7 +90,7 @@ This gives you 8 CRUD methods for free + the custom `publish` method. No imports
86
90
 
87
91
  ## Step 4 — Define a command
88
92
 
89
- Create `src/commands/create-post.ts`:
93
+ Create `src/commands/admin/create-post.ts`:
90
94
 
91
95
  ```typescript
92
96
  export default defineCommand({
@@ -131,21 +135,14 @@ export default defineSubscriber({
131
135
  })
132
136
  ```
133
137
 
134
- ## Step 6 — Define a context
138
+ ## Step 6 — Expose reads for the admin context
135
139
 
136
- Create `src/contexts/admin.ts`:
140
+ In Manta V2, the context is the folder name under `src/commands/{context}` and `src/queries/{context}`. `src/commands/admin/create-post.ts` creates `POST /api/admin/command/create-post`.
141
+
142
+ Create `src/queries/admin/graph.ts` so the dashboard and SDK can read blog data:
137
143
 
138
144
  ```typescript
139
- export default defineContext({
140
- name: 'admin',
141
- basePath: '/api/admin',
142
- actors: ['admin'],
143
- modules: {
144
- blog: { expose: '*' },
145
- },
146
- commands: ['create-post'],
147
- ai: { enabled: true },
148
- })
145
+ export default defineQueryGraph('*')
149
146
  ```
150
147
 
151
148
  ## Step 7 — Generate migrations and run
@@ -163,14 +160,13 @@ manta dev
163
160
 
164
161
  Output:
165
162
  ```
166
- [codegen] .manta/types/ (1 modules, 3 events)
163
+ [codegen] .manta/generated.d.ts (1 entities, 1 commands, 0 agents, 1 actors, 3 events)
167
164
  Module: blog (Post) ✓
168
165
  Subscriber: post.created → post-created ✓
169
- Command: create-post ✓
170
- Context: admin → /api/admin ✓
166
+ Command: admin/create-post ✓
171
167
 
172
168
  Server running at http://localhost:9000
173
- API docs at http://localhost:9000/api/docs
169
+ OpenAPI at http://localhost:9000/api/openapi.json
174
170
  ```
175
171
 
176
172
  ## Step 9 — Test it
@@ -188,37 +184,38 @@ curl -X POST http://localhost:9000/api/admin/command/create-post \
188
184
  }'
189
185
  ```
190
186
 
191
- Query posts:
187
+ Query posts through the graph:
192
188
  ```bash
193
- curl -X POST http://localhost:9000/api/admin/query/blog \
189
+ curl -X POST http://localhost:9000/api/admin/graph \
194
190
  -H "Content-Type: application/json" \
195
191
  -H "Authorization: Bearer <jwt>" \
196
- -d '{"filters": {"status": "published"}}'
192
+ -d '{"entity":"post","filters":{"status":"published"}}'
197
193
  ```
198
194
 
199
195
  View API docs:
200
196
  ```
201
- open http://localhost:9000/api/docs
197
+ open http://localhost:9000/api/openapi.json
202
198
  ```
203
199
 
204
200
  ## What happened automatically
205
201
 
206
- From your 4 files (model, service, command, context), Manta generated:
202
+ From your files (model, service, command, query graph), Manta generated:
207
203
 
208
204
  - PostgreSQL table `posts` with all columns + indexes
209
205
  - 8 CRUD methods on `app.modules.blog`
210
206
  - HTTP endpoint `POST /api/admin/command/create-post`
211
- - HTTP endpoint `POST /api/admin/query/blog`
207
+ - HTTP endpoint `POST /api/admin/graph`
212
208
  - AI tool schema for `create-post` (Zod → JSON Schema)
213
209
  - OpenAPI spec with full schema documentation
214
- - TypeScript types for autocomplete (`.manta/types/`)
210
+ - TypeScript types for autocomplete (`.manta/generated.d.ts`)
215
211
  - Event wiring for `post.created` subscriber
216
212
  - Compensation logic (if create-post fails, the post is deleted)
213
+ - Codex and Claude skills pointing to `node_modules/@mantajs/core/docs/`
217
214
 
218
215
  ## Next steps
219
216
 
220
217
  - Add more modules (see [Models](./02-models.md) and [Services](./03-services.md))
221
- - Add cross-module relations (see [Links](./07-links.md))
222
- - Add scheduled tasks (see [Events](./06-events.md))
223
- - Expose a storefront API (see [Contexts](./08-contexts.md))
224
- - Deploy to production (see [Config](./09-config.md))
218
+ - Add cross-module relations (see [Links](./08-links.md))
219
+ - Add scheduled tasks (see [Events](./07-events.md))
220
+ - Expose a storefront API with `src/commands/store/` and `src/queries/store/` (see [Queries](./06-queries.md))
221
+ - Deploy to production (see [Config](./11-config.md))
package/docs/04-users.md CHANGED
@@ -63,7 +63,7 @@ All on `/api/admin/`:
63
63
  | Route | Method | Auth | Description |
64
64
  |-------|--------|------|-------------|
65
65
  | `/login` | POST | Public | Email/password → JWT (`{ id, type: 'admin' }`) |
66
- | `/logout` | DELETE | Public | Blacklists token in cache |
66
+ | `/logout` | DELETE | Public | Clears auth cookies/local credentials and attempts server-side token revocation |
67
67
  | `/refresh` | POST | Public | Exchange refresh token for new JWT |
68
68
  | `/forgot-password` | POST | Public | Generates reset token |
69
69
  | `/reset-password` | POST | Public | Validates token + resets password |
@@ -80,8 +80,52 @@ All on `/api/admin/`:
80
80
 
81
81
  All `/api/admin/*` routes (except public auth routes):
82
82
  1. Verify JWT Bearer token
83
- 2. Check `auth.type === 'admin'`
84
- 3. Reject with 401/403 if invalid
83
+ 2. Reject tokens present in `auth:blacklist:{auth_identity_id}` when a durable cache is reachable
84
+ 3. Check `auth.type === 'admin'`
85
+ 4. Reject with 401/403 if invalid
86
+
87
+ ### Logout and token revocation
88
+
89
+ `DELETE /api/{context}/logout` always clears framework auth cookies and returns a successful logout response for the browser. If a Bearer/access token is present, Manta also writes `auth:blacklist:{auth_identity_id}` to `ICachePort` for 30 days.
90
+
91
+ Response shape:
92
+
93
+ ```json
94
+ { "success": true, "revoked": true }
95
+ ```
96
+
97
+ If the cache backend is temporarily unreachable, the route still clears cookies and returns:
98
+
99
+ ```json
100
+ { "success": true, "revoked": false, "warning": "TOKEN_REVOCATION_FAILED" }
101
+ ```
102
+
103
+ In that degraded case, a JWT already issued remains valid until its normal expiry unless the client discards it. Production deployments that use `defineUserModel()` therefore need a durable, reachable `ICachePort`.
104
+
105
+ Supported durable cache choices:
106
+
107
+ ```typescript
108
+ // Default Vercel/Cloudflare-style production cache
109
+ adapters: {
110
+ ICachePort: {
111
+ adapter: '@mantajs/adapter-cache-upstash',
112
+ options: {
113
+ url: process.env.UPSTASH_REDIS_REST_URL,
114
+ token: process.env.UPSTASH_REDIS_REST_TOKEN,
115
+ },
116
+ },
117
+ }
118
+ ```
119
+
120
+ ```typescript
121
+ // Durable Postgres fallback, reusing the configured IDatabasePort connection
122
+ adapters: {
123
+ ICachePort: {
124
+ adapter: '@mantajs/adapter-database-pg/cache',
125
+ options: { tableName: 'manta_cache' },
126
+ },
127
+ }
128
+ ```
85
129
 
86
130
  ### Dev seed
87
131
 
@@ -95,7 +95,7 @@ await step.service.inventory.adjustQuantity(inventoryId, -1)
95
95
  Every `step.service.*` call is:
96
96
  - **Checkpointed** — saved to storage, skipped on retry
97
97
  - **Compensated** — rollback registered in LIFO order
98
- - **Typed** — autocomplete from codegen (`.manta/types/`)
98
+ - **Typed** — autocomplete from codegen (`.manta/generated.d.ts`)
99
99
 
100
100
  ### step.service.MODULE.link — Create links
101
101
 
package/docs/10-spa.md CHANGED
@@ -34,7 +34,13 @@ src/spa/admin/
34
34
  - **`.ts`** — exports `definePage()` or `defineForm()` spec (declarative, no React)
35
35
  - **`.tsx`** — exports a React component (full control, for complex cases)
36
36
 
37
- **Defaults**: `@mantajs/dashboard` shell + `@mantajs/ui` preset. Override in config if needed:
37
+ **Defaults**: `@mantajs/dashboard` shell + `@mantajs/ui` preset. The generated entry imports the public stylesheet export:
38
+
39
+ ```typescript
40
+ import '@mantajs/dashboard/index.css'
41
+ ```
42
+
43
+ Override in config if needed:
38
44
 
39
45
  ```typescript
40
46
  // manta.config.ts — optional, only for overrides
@@ -46,6 +52,30 @@ export default defineConfig({
46
52
  })
47
53
  ```
48
54
 
55
+ ### Mount path
56
+
57
+ By default, a SPA named `admin` is mounted at `/admin`:
58
+
59
+ | Generated setting | Default for `src/spa/admin` |
60
+ | --- | --- |
61
+ | React Router basename | `/admin` |
62
+ | Vite `base` | `/admin/` |
63
+ | Static output | `public/admin` |
64
+ | Vercel SPA rewrite | `/admin/:path*` → `/admin/index.html` |
65
+
66
+ Use `mountPath: '/'` for a dashboard on a dedicated subdomain, such as `admin.fancypalas.com/paniers`:
67
+
68
+ ```typescript
69
+ // manta.config.ts
70
+ export default defineConfig({
71
+ spa: {
72
+ admin: { mountPath: '/' },
73
+ },
74
+ })
75
+ ```
76
+
77
+ With `mountPath: '/'`, React Router uses `basename="/"`, Vite uses `base: '/'`, the SPA builds into `public/`, and generated Vercel rewrites exclude `/api/*`.
78
+
49
79
  ---
50
80
 
51
81
  ## SPA Configuration — defineSpa()
package/docs/11-config.md CHANGED
@@ -17,12 +17,15 @@ Creates a complete, functional Manta project. After `pnpm install`, the project
17
17
 
18
18
  ```
19
19
  my-app/
20
- ├── manta.config.ts # defineConfig() — database, http, admin: true
20
+ ├── manta.config.ts # defineConfig() — database, http, spa, presets
21
+ ├── nitro.config.ts # Nitro host config for standalone builds
21
22
  ├── package.json # @mantajs/core, @mantajs/cli, @mantajs/host-nitro, @mantajs/dashboard
22
23
  ├── tsconfig.json # ES2022, ESNext, JSX support, strict
23
24
  ├── .env / .env.example # DATABASE_URL, PORT, ANTHROPIC_API_KEY
24
- ├── .gitignore # .manta/, .manta/types/, node_modules/, .env
25
+ ├── .gitignore # .manta/, node_modules/, .env
25
26
  ├── AGENT.md # AI instructions (copied from @mantajs/core/docs/)
27
+ ├── .codex/skills/mantajs/ # Codex skill pointing to the shipped Manta docs
28
+ ├── .claude/skills/mantajs/ # Claude skill pointing to the same docs
26
29
  └── src/
27
30
  ├── modules/ # Your business modules (entities + services)
28
31
  ├── commands/ # Application commands (cross-module workflows)
@@ -31,48 +34,44 @@ my-app/
31
34
  ├── links/ # Cross-module relations
32
35
  ├── queries/ # CQRS read endpoints (defineQuery, defineQueryGraph)
33
36
  ├── agents/ # AI steps
34
- └── admin/ # Dashboard (index.html + main.tsx)
35
- ├── index.html
36
- └── main.tsx
37
+ └── spa/admin/ # Dashboard SPA pages, config, blocks
38
+ ├── config.ts
39
+ ├── pages/
40
+ └── blocks/
37
41
  ```
38
42
 
39
43
  **What it does NOT generate:**
40
- - No `nitro.config.ts` — the host adapter handles this internally
41
44
  - No `drizzle.config.ts` — the CLI handles this internally
42
45
  - No `src/api/` — routes are auto-generated from commands + queries
43
46
 
44
- The only config file the developer maintains is `manta.config.ts`.
47
+ The developer normally maintains `manta.config.ts`, `nitro.config.ts` only when deployment/static asset behavior needs customization, and the generated `AGENT.md` when project-specific conventions need to be added.
45
48
 
46
- ### `manta setup` — Add Manta to existing project
49
+ ### Existing projects
50
+
51
+ The current CLI does not expose a separate `manta setup` command. Existing projects should install or update the Manta packages, keep a `manta.config.ts` at the project root, then run:
47
52
 
48
53
  ```bash
49
- cd my-nextjs-app
50
- npx manta setup
54
+ manta dev
51
55
  ```
52
56
 
53
- Detects the existing framework and adapts:
54
-
55
- | Detected | Context | What it generates |
56
- |----------|---------|------------------|
57
- | `next.config.*` | Next.js | `AGENT.md` with Next.js + Manta instructions, `src/manta/` subdirectory |
58
- | `nuxt.config.*` | Nuxt | `AGENT.md` with Nuxt + Manta instructions, `server/manta/` subdirectory |
59
- | `workspaces` in package.json | Monorepo | `AGENT.md` at root, `packages/backend/` with Manta structure |
60
- | Nothing detected | Standalone | Full Manta project structure in current directory |
57
+ `manta dev` refreshes **`.codex/skills/mantajs/SKILL.md`** and **`.claude/skills/mantajs/SKILL.md`** from the installed `@mantajs/core` package before boot validation. This keeps Codex and Claude pointed at the docs shipped in `node_modules/@mantajs/core/docs/` even when a project already existed before the current framework version.
61
58
 
62
- In all cases, `manta setup`:
63
- 1. Creates `manta.config.ts`
64
- 2. Creates module/command/subscriber directories
65
- 3. Generates **`AGENT.md` at the project root** — the first file an AI reads
66
- 4. The `AGENT.md` is context-aware (mentions the detected framework)
67
- 5. `AGENT.md` is committed to git (not gitignored) — every clone has it
68
-
69
- ### The AGENT.md
59
+ ### Agent docs and Codex skill
70
60
 
71
61
  The `AGENT.md` lives at the root of every Manta project. It's the first file an AI reads.
72
62
 
73
63
  **Canonical location:** `@mantajs/core/docs/AGENT.md` — alongside all other framework documentation. The CLI copies it to the project root during `manta init`.
74
64
 
75
- For `manta setup` (existing projects), context-specific templates exist in the CLI:
65
+ The Codex skill is intentionally separate and smaller:
66
+
67
+ ```
68
+ .codex/skills/mantajs/SKILL.md
69
+ .claude/skills/mantajs/SKILL.md
70
+ ```
71
+
72
+ It is copied from `@mantajs/core/skills/mantajs/SKILL.md` and tells Codex/Claude to load the relevant file from `node_modules/@mantajs/core/docs/` before changing Manta code. It is not installed with an npm `postinstall` hook; `manta init` creates it and `manta dev` refreshes it so existing projects stay aligned with the installed framework docs.
73
+
74
+ For future setup flows and framework-specific projects, context-specific templates exist in the CLI:
76
75
 
77
76
  ```
78
77
  packages/cli/src/templates/agent/
@@ -80,7 +79,7 @@ packages/cli/src/templates/agent/
80
79
  └── nuxt.md # Nuxt + Manta
81
80
  ```
82
81
 
83
- `manta init` copies the canonical AGENT.md from `@mantajs/core/docs/`. `manta setup` detects the context and uses the appropriate template. The developer can then edit it to add project-specific context (business domain, team conventions, etc.).
82
+ `manta init` copies the canonical AGENT.md from `@mantajs/core/docs/`. Framework-specific templates can be used by future setup flows or custom scaffolding. The developer can then edit the project AGENT.md to add project-specific context (business domain, team conventions, etc.).
84
83
 
85
84
  Each AGENT.md contains:
86
85
  - Stack description (what framework + Manta)
@@ -100,7 +99,9 @@ export default {
100
99
  pool: { min: 2, max: 10 },
101
100
  },
102
101
  http: { port: 3000 },
103
- admin: { enabled: true },
102
+ spa: {
103
+ admin: {}, // mounted at /admin by default
104
+ },
104
105
  }
105
106
  ```
106
107
 
@@ -113,7 +114,12 @@ export default defineConfig({
113
114
  auth: {
114
115
  jwtSecret: process.env.JWT_SECRET,
115
116
  },
116
- admin: { enabled: true },
117
+ spa: {
118
+ admin: {
119
+ // Default mount path is "/admin"; use "/" for admin.example.com routes.
120
+ mountPath: '/admin',
121
+ },
122
+ },
117
123
  strict: false,
118
124
  })
119
125
  ```
@@ -127,12 +133,37 @@ export default defineConfig({
127
133
  | `database` | `url`, `pool.min`, `pool.max` | Required |
128
134
  | `http` | `port` | `9000` |
129
135
  | `auth` | `jwtSecret`, `session.enabled`, `session.cookieName` | Dev: auto-generated secret |
130
- | `query` | `maxEntities`, `defaultLimit` | `10000`, `100` |
131
- | `admin` | `enabled` | `false` |
132
- | `preset` | `'dev'`, `'vercel'` | Auto-detected from `APP_ENV` |
136
+ | `query` | `maxTotalEntities` | `10000` |
137
+ | `admin` | Reserved legacy object | `{}` |
138
+ | `spa` | `{ [name]: { dashboard, preset, mountPath } }` | Auto-detected from `src/spa/{name}` |
139
+ | `preset` | `'dev'`, `'vercel'`, custom preset object | Auto-detected from `APP_ENV` |
133
140
  | `strict` | `true`/`false` | `false` |
134
141
  | `plugins` | Array of plugin configs | `[]` |
135
142
 
143
+ ### SPA mount path
144
+
145
+ Standalone/Nitro SPAs are discovered from `src/spa/{name}/`. By default, the public mount path is `/{name}`:
146
+
147
+ ```typescript
148
+ export default defineConfig({
149
+ spa: {
150
+ admin: {}, // mounted at /admin
151
+ },
152
+ })
153
+ ```
154
+
155
+ For a dedicated admin subdomain such as `admin.fancypalas.com`, mount the SPA at the root:
156
+
157
+ ```typescript
158
+ export default defineConfig({
159
+ spa: {
160
+ admin: { mountPath: '/' },
161
+ },
162
+ })
163
+ ```
164
+
165
+ With `mountPath: '/'`, the Vite SPA uses `base: '/'`, builds into `public/`, and generated Vercel rewrites exclude `/api/*` so API routes remain server-side.
166
+
136
167
  ## Presets (adapter bundles)
137
168
 
138
169
  The framework auto-detects the environment and loads appropriate adapters:
@@ -149,6 +180,43 @@ The framework auto-detects the environment and loads appropriate adapters:
149
180
 
150
181
  Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
151
182
 
183
+ ### Durable cache for auth revocation
184
+
185
+ Production auth uses `ICachePort` for logout token revocation, refresh-token blacklist checks, reset flows, and session state. The Vercel and Cloudflare presets default to Upstash:
186
+
187
+ ```typescript
188
+ export default defineConfig({
189
+ preset: 'vercel',
190
+ adapters: {
191
+ ICachePort: {
192
+ adapter: '@mantajs/adapter-cache-upstash',
193
+ options: {
194
+ url: process.env.UPSTASH_REDIS_REST_URL,
195
+ token: process.env.UPSTASH_REDIS_REST_TOKEN,
196
+ },
197
+ },
198
+ },
199
+ })
200
+ ```
201
+
202
+ If Upstash REST credentials are not available or not reliable in the deployment runtime, use the Postgres-backed cache adapter:
203
+
204
+ ```typescript
205
+ export default defineConfig({
206
+ preset: 'vercel',
207
+ adapters: {
208
+ ICachePort: {
209
+ adapter: '@mantajs/adapter-database-pg/cache',
210
+ options: {
211
+ tableName: 'manta_cache',
212
+ },
213
+ },
214
+ },
215
+ })
216
+ ```
217
+
218
+ The Postgres cache reuses the configured `IDatabasePort` connection when bootstrapped by the Manta CLI and creates the cache table automatically by default.
219
+
152
220
  ## Environment variables
153
221
 
154
222
  | Variable | Required | Description |
@@ -156,6 +224,8 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
156
224
  | `DATABASE_URL` | Yes | PostgreSQL connection string |
157
225
  | `JWT_SECRET` | Prod only | JWT signing secret (dev: auto-generated) |
158
226
  | `APP_ENV` | No | Force environment (`development` or `production`) |
227
+ | `UPSTASH_REDIS_REST_URL` | Prod when using Upstash cache | Upstash Redis REST endpoint |
228
+ | `UPSTASH_REDIS_REST_TOKEN` | Prod when using Upstash cache | Upstash Redis REST token |
159
229
  | `ANTHROPIC_API_KEY` | No | Enable AI chat in admin dashboard |
160
230
 
161
231
  ## CLI commands
@@ -178,15 +248,21 @@ Detection: `APP_ENV` > `NODE_ENV` > default `'development'`.
178
248
 
179
249
  Starts development server. Auto-performs:
180
250
  1. Load env + config
181
- 2. Generate `.manta/types/` (TypeScript types for autocomplete)
251
+ 2. Generate `.manta/generated.d.ts` (TypeScript types for autocomplete)
182
252
  3. Start Nitro dev server with HMR
183
253
  4. On first request: connect DB, instantiate adapters, discover modules/commands/subscribers/jobs/links/queries
184
254
  5. Auto-create tables in dev mode (no manual migration needed)
185
255
  6. Wire all routes, subscribers, jobs
186
256
 
257
+ ### manta build --preset vercel
258
+
259
+ For Vercel deployments, `manta build --preset vercel` generates the framework-owned SPA rewrites and cron routes in `vercel.json`.
260
+
261
+ If `vercel.json` already exists, Manta preserves custom top-level project settings such as `buildCommand`, `installCommand`, `outputDirectory`, `functions`, `headers`, and other Vercel options. It also preserves custom `redirects`, `rewrites`, and `crons` unless they collide on the same `source` or `path` as a framework-generated entry.
262
+
187
263
  ### manta db:generate
188
264
 
189
- Scans `src/modules/*/models/` and `src/links/` to generate SQL migrations:
265
+ Scans entity definitions from `src/modules/*/entities/` and relation links from `src/links/` to generate SQL migrations:
190
266
 
191
267
  ```bash
192
268
  manta db:generate --name add-blog-post
@@ -212,15 +288,13 @@ manta exec scripts/seed.ts
212
288
  manta exec scripts/seed.ts --dry-run # Rollback after execution (test mode)
213
289
  ```
214
290
 
215
- ## Codegen (.manta/types/)
291
+ ## Codegen (`.manta/generated.d.ts`)
216
292
 
217
293
  On `manta dev` or `manta build`, the framework generates:
218
294
 
219
295
  | File | Content |
220
296
  |------|---------|
221
- | `types.ts` | `MantaEntities` typed step proxy for `step.service.catalog.create()` |
222
- | `app.d.ts` | `MantaAppModules` — typed `app.modules.catalog.listProducts()` |
223
- | `events.d.ts` | `MantaEventName` — union of all known event names |
297
+ | `.manta/generated.d.ts` | `MantaEntities`, `MantaAppModules`, `MantaEventName`, and module augmentation used by IDE autocomplete |
224
298
 
225
299
  These are TypeScript module augmentations. After codegen, `app.modules.*` has full autocomplete in your IDE.
226
300
 
@@ -8,7 +8,7 @@ Every infrastructure concern is abstracted behind a port. Here are all ports you
8
8
 
9
9
  | Port | Responsibility | Dev adapter | Prod adapter |
10
10
  |------|---------------|-------------|--------------|
11
- | `ICachePort` | Key-value cache | InMemoryCacheAdapter | UpstashCacheAdapter |
11
+ | `ICachePort` | Key-value cache | InMemoryCacheAdapter | UpstashCacheAdapter, PostgresCacheAdapter |
12
12
  | `IEventBusPort` | Event pub/sub | InMemoryEventBusAdapter | Upstash Queues |
13
13
  | `IFilePort` | File storage | InMemoryFileAdapter | VercelBlobAdapter |
14
14
  | `ILoggerPort` | Structured logging | TestLogger | PinoLoggerAdapter |
@@ -67,6 +67,25 @@ export class RedisCacheAdapter implements ICachePort {
67
67
  }
68
68
  ```
69
69
 
70
+ ## Built-in durable Postgres cache
71
+
72
+ When Redis/Upstash is not desirable, `@mantajs/adapter-database-pg` exposes a durable cache adapter:
73
+
74
+ ```typescript
75
+ export default defineConfig({
76
+ adapters: {
77
+ ICachePort: {
78
+ adapter: '@mantajs/adapter-database-pg/cache',
79
+ options: {
80
+ tableName: 'manta_cache',
81
+ },
82
+ },
83
+ },
84
+ })
85
+ ```
86
+
87
+ The CLI factory reuses the active `IDatabasePort` Postgres connection. This adapter is appropriate for auth logout/reset/session revocation state where durability matters more than sub-millisecond Redis latency.
88
+
70
89
  ### 2. Create the barrel export
71
90
 
72
91
  ```typescript
package/docs/15-hosts.md CHANGED
@@ -33,7 +33,7 @@ export async function startExpressHost(options: { port?: number; cwd?: string }
33
33
  // Bootstrap the Manta app (same as manta dev / manta start)
34
34
  const { app, adapter, logger, shutdown } = await bootstrapApp({
35
35
  cwd,
36
- mode: 'production',
36
+ mode: 'prod',
37
37
  })
38
38
 
39
39
  // Create Express app
@@ -84,7 +84,7 @@ let bootstrapped: Awaited<ReturnType<typeof bootstrapApp>> | null = null
84
84
  export async function handler(event: APIGatewayProxyEventV2) {
85
85
  // Cold start: bootstrap once
86
86
  if (!bootstrapped) {
87
- bootstrapped = await bootstrapApp({ cwd: process.cwd(), mode: 'production' })
87
+ bootstrapped = await bootstrapApp({ cwd: process.cwd(), mode: 'prod' })
88
88
  }
89
89
 
90
90
  // Translate Lambda event to Web Request
@@ -117,6 +117,12 @@ A host must:
117
117
 
118
118
  The H3Adapter's `handleRequest(request: Request): Promise<Response>` is the single entry point. It runs the full 12-step pipeline (auth, validation, routing, error handling).
119
119
 
120
+ ## Production bootstrap mode
121
+
122
+ Production hosts must call `bootstrapApp()` with `mode: 'prod'`. Development tooling uses `mode: 'dev'`.
123
+
124
+ The Nitro production build generated by `@mantajs/host-nitro` writes a production bootstrap with `mode: 'prod'` for both manifest-based builds and runtime-discovery fallback builds. This matters because production error handling must not expose development stack traces.
125
+
120
126
  ## What the pipeline provides
121
127
 
122
128
  Every request passing through `adapter.handleRequest()` goes through:
@@ -58,7 +58,7 @@ function defineLink(
58
58
  ): ResolvedLink
59
59
  ```
60
60
 
61
- ### defineContext(config)
61
+ ### defineContext(config) — legacy
62
62
 
63
63
  ```typescript
64
64
  function defineContext(config: {
@@ -71,12 +71,32 @@ function defineContext(config: {
71
71
  }): ContextDefinition
72
72
  ```
73
73
 
74
+ `defineContext()` is kept for legacy compatibility. New Manta apps should use filesystem contexts: `src/commands/{context}/` and `src/queries/{context}/` map to `/api/{context}/...`.
75
+
74
76
  ### defineConfig(config?)
75
77
 
76
78
  ```typescript
77
79
  function defineConfig(config?: Partial<MantaConfig>): MantaConfig
78
80
  ```
79
81
 
82
+ Common SPA config shape:
83
+
84
+ ```typescript
85
+ type SpaConfig = {
86
+ dashboard?: string | null // default: '@mantajs/dashboard'; null disables the shell
87
+ preset?: string | null // default: '@mantajs/ui'; null disables the preset
88
+ mountPath?: string | null // default: /{spaName}; use '/' for root-mounted SPA
89
+ }
90
+ ```
91
+
92
+ ```typescript
93
+ export default defineConfig({
94
+ spa: {
95
+ admin: { mountPath: '/' },
96
+ },
97
+ })
98
+ ```
99
+
80
100
  ## Helpers
81
101
 
82
102
  ### field property types
@@ -102,7 +122,7 @@ Modifiers: `.nullable()`, `.unique()`, `.indexed()`, `.searchable()`, `.default(
102
122
  function many(entity: DmlEntity): Many<DmlEntity>
103
123
  ```
104
124
 
105
- Cardinality modifier for `defineLink()`. See [Links](./07-links.md).
125
+ Cardinality modifier for `defineLink()`. See [Links](./08-links.md).
106
126
 
107
127
  ### Globals
108
128
 
@@ -111,7 +131,8 @@ All `define*` functions and helpers are globals — zero imports needed:
111
131
  | Global | Purpose |
112
132
  |--------|---------|
113
133
  | `defineModel`, `defineService`, `defineLink`, `defineCommand` | Core primitives |
114
- | `defineAgent`, `defineSubscriber`, `defineJob`, `defineContext` | Extended primitives |
134
+ | `defineAgent`, `defineSubscriber`, `defineJob` | Extended primitives |
135
+ | `defineContext` | Legacy context primitive; prefer filesystem contexts |
115
136
  | `defineConfig` | Configuration |
116
137
  | `field` | Property type factory |
117
138
  | `many` | Cardinality modifier |
@@ -137,6 +158,14 @@ function makeIdempotent<T>(
137
158
  ): (event: Message<T>) => Promise<void>
138
159
  ```
139
160
 
161
+ ### ICachePort production adapters
162
+
163
+ | Adapter | Package path | Notes |
164
+ | --- | --- | --- |
165
+ | Upstash Redis | `@mantajs/adapter-cache-upstash` | Default production cache for Vercel/Cloudflare presets |
166
+ | Postgres | `@mantajs/adapter-database-pg/cache` | Durable DB-backed fallback for auth revocation/session state |
167
+ | In-memory | `InMemoryCacheAdapter` | Dev/test only; not durable across instances |
168
+
140
169
  ## step API
141
170
 
142
171
  Used inside `defineCommand({ workflow: (input, { step }) => {...} })`:
@@ -51,6 +51,8 @@ src/spa/admin/
51
51
 
52
52
  **`.ts` not `.tsx`** — pages export `definePage()` or `defineForm()` specs (pure data), not JSX. Only files in `blocks/` and `components/` are `.tsx`.
53
53
 
54
+ **Mount path is project config, not page config.** A SPA named `admin` defaults to `/admin`. For a dedicated admin subdomain, set `spa.admin.mountPath = "/"` in `manta.config.ts`; page routes and navigation items remain SPA-local (`/products`, `/dashboard`, etc.).
55
+
54
56
  ---
55
57
 
56
58
  ## defineSpa()
@@ -141,7 +143,7 @@ export default definePage({
141
143
  { key: 'created_at', label: 'Created', format: 'date' },
142
144
  ],
143
145
  searchable: ['title'],
144
- navigateTo: '/admin/products/:id',
146
+ navigateTo: '/products/:id',
145
147
  },
146
148
  ],
147
149
  })
@@ -564,7 +566,7 @@ header: {
564
566
  actions: [
565
567
  'create',
566
568
  { label: 'Export', command: 'export-products' },
567
- { label: 'Import', to: '/admin/products/import' },
569
+ { label: 'Import', to: '/products/import' },
568
570
  ],
569
571
  }
570
572
  ```
package/docs/AGENT.md CHANGED
@@ -350,7 +350,7 @@ Tables: `admin_user`, `admin_invite`
350
350
 
351
351
  Auth routes (on `/api/admin/`):
352
352
  - `POST /login` (public) — returns JWT with `{ id, type: 'admin' }`
353
- - `DELETE /logout` (public) — blacklists token
353
+ - `DELETE /logout` (public) — clears auth cookies and attempts server-side token revocation
354
354
  - `POST /refresh` (public) — refresh token
355
355
  - `POST /forgot-password` (public) — reset flow
356
356
  - `POST /reset-password` (public) — confirm reset
@@ -362,7 +362,9 @@ Protected routes (JWT required, `type === 'admin'`):
362
362
  - `POST /create-user`, `POST /update-user`, `POST /delete-user`
363
363
  - `POST /create-invite`, `POST /refresh-invite`
364
364
 
365
- Middleware: all `/api/admin/*` routes verify JWT + `type === 'admin'`
365
+ Middleware: all `/api/admin/*` routes verify JWT, reject cache-blacklisted identities when cache is reachable, then require `type === 'admin'`
366
+
367
+ Production auth requires a durable `ICachePort` for logout/reset/session revocation. Default production presets use `@mantajs/adapter-cache-upstash`; use `@mantajs/adapter-database-pg/cache` when Postgres should be the durable cache backend.
366
368
 
367
369
  Override: create `src/commands/admin/login.ts` to replace auto-generated login.
368
370
  Override: create `src/middleware/admin.ts` to replace auto-generated middleware.
@@ -396,7 +398,13 @@ src/spa/admin/
396
398
  └── page.tsx # → /admin/products
397
399
  ```
398
400
 
399
- Defaults: `@mantajs/dashboard` (shell) + `@mantajs/ui` (preset). Override in config:
401
+ Defaults: `@mantajs/dashboard` (shell) + `@mantajs/ui` (preset). The generated Vite entry imports the dashboard CSS through the package export:
402
+
403
+ ```typescript
404
+ import '@mantajs/dashboard/index.css'
405
+ ```
406
+
407
+ Override in config:
400
408
 
401
409
  ```typescript
402
410
  // manta.config.ts
@@ -408,6 +416,21 @@ export default defineConfig({
408
416
  })
409
417
  ```
410
418
 
419
+ Mount paths:
420
+
421
+ ```typescript
422
+ export default defineConfig({
423
+ spa: {
424
+ admin: {}, // default: /admin
425
+ // admin: { mountPath: '/' } // root mount for admin.example.com
426
+ },
427
+ })
428
+ ```
429
+
430
+ When `mountPath` is `/`, generated Vercel rewrites exclude `/api/*` so API routes remain server-side.
431
+
432
+ `manta build --preset vercel` preserves existing custom `vercel.json` project settings such as `buildCommand`, `installCommand`, `outputDirectory`, `functions`, `headers`, plus custom redirects/rewrites/crons that do not collide with framework-generated SPA or cron entries.
433
+
411
434
  ### SDK — Frontend hooks
412
435
 
413
436
  ```typescript
@@ -497,5 +520,8 @@ Complete framework documentation is in `node_modules/@mantajs/core/docs/`:
497
520
  | [14-adapters](node_modules/@mantajs/core/docs/14-adapters.md) | Custom adapters |
498
521
  | [15-hosts](node_modules/@mantajs/core/docs/15-hosts.md) | Custom hosts |
499
522
  | [16-reference](node_modules/@mantajs/core/docs/16-reference.md) | API reference |
523
+ | [17-dashboard](node_modules/@mantajs/core/docs/17-dashboard.md) | Dashboard specs, pages, forms, blocks |
524
+
525
+ Projects generated by `manta init` include `.codex/skills/mantajs/SKILL.md` and `.claude/skills/mantajs/SKILL.md`. `manta dev` refreshes both from `@mantajs/core/skills/mantajs/SKILL.md` so Codex and Claude keep pointing at this same docs directory.
500
526
 
501
- **Read the relevant doc BEFORE writing code.** When in doubt, check [04-commands.md](node_modules/@mantajs/core/docs/04-commands.md) for workflow patterns.
527
+ **Read the relevant doc BEFORE writing code.** When in doubt, check [05-commands.md](node_modules/@mantajs/core/docs/05-commands.md) for workflow patterns.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantajs/core",
3
- "version": "0.2.0-beta.4",
3
+ "version": "0.2.0-beta.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -36,7 +36,8 @@
36
36
  "default": "./dist/testing/relational-query-suite.js"
37
37
  },
38
38
  "./package.json": "./package.json",
39
- "./docs/*": "./docs/*"
39
+ "./docs/*": "./docs/*",
40
+ "./skills/*": "./skills/*"
40
41
  },
41
42
  "dependencies": {
42
43
  "drizzle-orm": "^0.35.0",
@@ -51,6 +52,7 @@
51
52
  },
52
53
  "files": [
53
54
  "dist",
54
- "docs"
55
+ "docs",
56
+ "skills"
55
57
  ]
56
58
  }
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: mantajs
3
+ description: Use when working inside a Manta/Mantajs project: creating models, services, commands, queries, workflows, dashboards/SPAs, adapters, plugins, hosts, tests, or deployment config. Loads the canonical framework documentation shipped by @mantajs/core.
4
+ ---
5
+
6
+ # Mantajs
7
+
8
+ Before changing Manta code in an application, read the project root `AGENT.md` if it exists. It contains project-specific conventions plus links to the framework docs.
9
+
10
+ The canonical framework documentation is shipped with `@mantajs/core`:
11
+
12
+ ```
13
+ node_modules/@mantajs/core/docs/
14
+ ```
15
+
16
+ If this skill was installed or refreshed by the Manta CLI, it should live at:
17
+
18
+ ```
19
+ .codex/skills/mantajs/SKILL.md
20
+ .claude/skills/mantajs/SKILL.md
21
+ ```
22
+
23
+ `manta init` writes the skill for new projects. `manta dev` refreshes it for existing projects so it stays aligned with the installed `@mantajs/core` docs.
24
+
25
+ ## Workflow
26
+
27
+ 1. Identify the primitive or area involved.
28
+ 2. Read only the matching doc file from `node_modules/@mantajs/core/docs/`.
29
+ 3. Follow the existing project structure and generated `AGENT.md`.
30
+ 4. Prefer Manta primitives over hand-written routes or custom framework glue.
31
+
32
+ ## Doc Map
33
+
34
+ | Need | Read |
35
+ | --- | --- |
36
+ | Mental model, project structure | `00-overview.md` |
37
+ | First project or scaffolded layout | `01-getting-started.md` |
38
+ | Entities and fields | `02-models.md` |
39
+ | Services and repositories | `03-services.md` |
40
+ | Users, auth, sessions | `04-users.md` |
41
+ | Commands, workflows, long-running runs | `05-commands.md` |
42
+ | Queries and external query graph | `06-queries.md` |
43
+ | Events, jobs, workflows | `07-events.md` |
44
+ | Links and relations | `08-links.md` |
45
+ | AI agents and typed LLM steps | `09-agents.md` |
46
+ | SPA generation, dashboard mount path, SDK | `10-spa.md` |
47
+ | `defineConfig`, CLI, presets, release config | `11-config.md` |
48
+ | Constraints and validation rules | `12-constraints.md` |
49
+ | Tests and conformance suites | `13-testing.md` |
50
+ | Adapter authoring | `14-adapters.md` |
51
+ | Host authoring and production bootstrap | `15-hosts.md` |
52
+ | API surface reference | `16-reference.md` |
53
+ | Dashboard specs, pages, forms, blocks | `17-dashboard.md` |
54
+
55
+ ## Current SPA Rules
56
+
57
+ - Standalone/Nitro SPAs live in `src/spa/{name}/`.
58
+ - The default mount path is `/{name}`; set `spa.{name}.mountPath = "/"` in `manta.config.ts` for a root-mounted SPA on a dedicated subdomain.
59
+ - `@mantajs/dashboard/index.css` is the public dashboard stylesheet export.
60
+ - Root-mounted SPAs must not capture `/api/*`; keep API routes under `/api`.
61
+
62
+ ## Hard Rules
63
+
64
+ - Do not create ad hoc API routes for business behavior; use `defineCommand()` or `defineQuery()`.
65
+ - Do not bypass generated services for simple entity writes.
66
+ - Keep module entities/services together under `src/modules/{module}/entities/{entity}/`.
67
+ - Read the relevant doc before inventing a new pattern.
@@ -0,0 +1,3 @@
1
+ display_name: Mantajs
2
+ short_description: Work with Mantajs projects using the docs shipped by @mantajs/core.
3
+ default_prompt: Read the Mantajs project AGENT.md, then use the relevant @mantajs/core docs before changing code.