@opensaas/stack-cli 0.1.0 → 0.1.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 (44) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +13 -0
  3. package/CLAUDE.md +249 -0
  4. package/LICENSE +21 -0
  5. package/dist/commands/generate.d.ts.map +1 -1
  6. package/dist/commands/generate.js +6 -1
  7. package/dist/commands/generate.js.map +1 -1
  8. package/dist/commands/init.js +2 -2
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/generator/context.d.ts.map +1 -1
  11. package/dist/generator/context.js +78 -3
  12. package/dist/generator/context.js.map +1 -1
  13. package/dist/generator/index.d.ts +1 -0
  14. package/dist/generator/index.d.ts.map +1 -1
  15. package/dist/generator/index.js +1 -0
  16. package/dist/generator/index.js.map +1 -1
  17. package/dist/generator/mcp.d.ts +14 -0
  18. package/dist/generator/mcp.d.ts.map +1 -0
  19. package/dist/generator/mcp.js +193 -0
  20. package/dist/generator/mcp.js.map +1 -0
  21. package/dist/generator/types.d.ts.map +1 -1
  22. package/dist/generator/types.js +11 -33
  23. package/dist/generator/types.js.map +1 -1
  24. package/package.json +9 -3
  25. package/src/commands/__snapshots__/generate.test.ts.snap +265 -0
  26. package/src/commands/dev.test.ts +216 -0
  27. package/src/commands/generate.test.ts +272 -0
  28. package/src/commands/generate.ts +7 -0
  29. package/src/commands/init.test.ts +308 -0
  30. package/src/commands/init.ts +2 -2
  31. package/src/generator/__snapshots__/context.test.ts.snap +137 -0
  32. package/src/generator/__snapshots__/prisma.test.ts.snap +182 -0
  33. package/src/generator/__snapshots__/types.test.ts.snap +512 -0
  34. package/src/generator/context.test.ts +145 -0
  35. package/src/generator/context.ts +80 -3
  36. package/src/generator/index.ts +1 -0
  37. package/src/generator/mcp.test.ts +393 -0
  38. package/src/generator/mcp.ts +221 -0
  39. package/src/generator/prisma.test.ts +221 -0
  40. package/src/generator/types.test.ts +280 -0
  41. package/src/generator/types.ts +14 -36
  42. package/tsconfig.json +1 -1
  43. package/tsconfig.tsbuildinfo +1 -1
  44. package/vitest.config.ts +26 -0
@@ -1,4 +1,4 @@
1
1
 
2
- > @opensaas/stack-cli@0.1.0 build /home/runner/work/stack/stack/packages/cli
2
+ > @opensaas/stack-cli@0.1.1 build /home/runner/work/stack/stack/packages/cli
3
3
  > tsc
4
4
 
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # @opensaas/stack-cli
2
+
3
+ ## 0.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - f8ebc0e: Add base mcp server
8
+ - 045c071: Add field and image upload
9
+ - Updated dependencies [9a3fda5]
10
+ - Updated dependencies [f8ebc0e]
11
+ - Updated dependencies [045c071]
12
+ - @opensaas/stack-core@0.1.1
13
+ - @opensaas/stack-mcp@0.1.1
package/CLAUDE.md ADDED
@@ -0,0 +1,249 @@
1
+ # @opensaas/stack-cli
2
+
3
+ Command-line tools for OpenSaas Stack providing code generation and development utilities.
4
+
5
+ ## Purpose
6
+
7
+ Converts `opensaas.config.ts` into Prisma schema and TypeScript types. Provides watch mode for automatic regeneration during development.
8
+
9
+ ## Key Files & Commands
10
+
11
+ ### Binary (`bin/opensaas.js`)
12
+
13
+ Entry point exposing `opensaas` CLI command
14
+
15
+ ### Commands (`src/commands/`)
16
+
17
+ - `generate.ts` - One-time generation
18
+ - `dev.ts` - Watch mode with automatic regeneration
19
+ - `init.ts` - Project scaffolding (future)
20
+
21
+ ### Generators (`src/generator/`)
22
+
23
+ - `prisma.ts` - Generates `prisma/schema.prisma` from config
24
+ - `types.ts` - Generates `.opensaas/types.ts` TypeScript types
25
+ - `context.ts` - Generates `.opensaas/context.ts` context factory
26
+ - `mcp.ts` - Generates MCP tools metadata
27
+ - `type-patcher.ts` - Patches Prisma types for relationships
28
+
29
+ ## Architecture
30
+
31
+ ### Config Loading
32
+
33
+ Uses `jiti` to execute TypeScript config:
34
+
35
+ ```typescript
36
+ const jiti = createJiti(import.meta.url)
37
+ const config = jiti('./opensaas.config.ts').default
38
+ ```
39
+
40
+ ### Generator Pipeline
41
+
42
+ 1. Load config from `opensaas.config.ts`
43
+ 2. Generate Prisma schema → `prisma/schema.prisma`
44
+ 3. Generate TypeScript types → `.opensaas/types.ts`
45
+ 4. Generate context factory → `.opensaas/context.ts`
46
+ 5. Generate MCP tools (if enabled) → `.opensaas/mcp-tools.json`
47
+
48
+ ### Watch Mode
49
+
50
+ Uses `chokidar` to watch `opensaas.config.ts`:
51
+
52
+ ```typescript
53
+ const watcher = chokidar.watch('opensaas.config.ts')
54
+ watcher.on('change', () => runGenerator())
55
+ ```
56
+
57
+ ## CLI Usage
58
+
59
+ ### Generate Command
60
+
61
+ ```bash
62
+ opensaas generate
63
+ ```
64
+
65
+ Outputs:
66
+
67
+ - `✅ Prisma schema generated`
68
+ - `✅ TypeScript types generated`
69
+ - Next steps (run `prisma generate` and `db push`)
70
+
71
+ ### Dev Command
72
+
73
+ ```bash
74
+ opensaas dev
75
+ ```
76
+
77
+ Outputs:
78
+
79
+ - Initial generation
80
+ - `👀 Watching opensaas.config.ts for changes...`
81
+ - Auto-regenerates on file changes
82
+
83
+ ## Generated Files
84
+
85
+ ### Prisma Schema (`prisma/schema.prisma`)
86
+
87
+ ```prisma
88
+ datasource db {
89
+ provider = "sqlite"
90
+ url = env("DATABASE_URL")
91
+ }
92
+
93
+ generator client {
94
+ provider = "prisma-client-js"
95
+ }
96
+
97
+ model Post {
98
+ id String @id @default(cuid())
99
+ title String
100
+ createdAt DateTime @default(now())
101
+ updatedAt DateTime @updatedAt
102
+ }
103
+ ```
104
+
105
+ ### Types (`.opensaas/types.ts`)
106
+
107
+ ```typescript
108
+ export type Post = {
109
+ id: string
110
+ title: string
111
+ createdAt: Date
112
+ updatedAt: Date
113
+ }
114
+
115
+ export type PostCreateInput = {
116
+ title: string
117
+ }
118
+
119
+ export type PostUpdateInput = {
120
+ title?: string
121
+ }
122
+ ```
123
+
124
+ ### Context Factory (`.opensaas/context.ts`)
125
+
126
+ ```typescript
127
+ import { createContext } from '@opensaas/stack-core'
128
+ import { PrismaClient } from '@prisma/client'
129
+ import config from '../opensaas.config'
130
+
131
+ const prisma = new PrismaClient()
132
+
133
+ export function getContext(session?: any) {
134
+ return createContext(config, prisma, session)
135
+ }
136
+ ```
137
+
138
+ ## Integration Points
139
+
140
+ ### With @opensaas/stack-core
141
+
142
+ - Imports generator functions from core
143
+ - Delegates Prisma/TS generation to field methods via core
144
+
145
+ ### With @opensaas/stack-auth
146
+
147
+ - Context factory supports custom `prismaClientConstructor` for Better-auth session provider
148
+
149
+ ### With @opensaas/stack-mcp
150
+
151
+ - Generates MCP tools metadata when MCP enabled in config
152
+
153
+ ### With Prisma
154
+
155
+ Workflow:
156
+
157
+ 1. `opensaas generate` → creates `prisma/schema.prisma`
158
+ 2. `npx prisma generate` → creates Prisma Client
159
+ 3. `npx prisma db push` → pushes schema to database
160
+
161
+ ## Common Patterns
162
+
163
+ ### Development Workflow
164
+
165
+ ```bash
166
+ # Terminal 1: Watch and regenerate
167
+ opensaas dev
168
+
169
+ # Terminal 2: Run Next.js
170
+ pnpm next dev
171
+
172
+ # Edit opensaas.config.ts - auto regenerates!
173
+ ```
174
+
175
+ ### Package.json Scripts
176
+
177
+ ```json
178
+ {
179
+ "scripts": {
180
+ "generate": "opensaas generate",
181
+ "db:push": "prisma db push",
182
+ "db:studio": "prisma studio",
183
+ "dev": "opensaas dev"
184
+ }
185
+ }
186
+ ```
187
+
188
+ ### CI/CD Integration
189
+
190
+ ```yaml
191
+ - run: pnpm install
192
+ - run: opensaas generate
193
+ - run: npx prisma generate
194
+ - run: pnpm test
195
+ ```
196
+
197
+ ### Custom Prisma Client
198
+
199
+ Config with custom constructor:
200
+
201
+ ```typescript
202
+ config({
203
+ db: {
204
+ provider: 'postgresql',
205
+ url: process.env.DATABASE_URL,
206
+ prismaClientConstructor: (PrismaClient) => {
207
+ // Custom adapter setup
208
+ return new PrismaClient({ adapter })
209
+ },
210
+ },
211
+ })
212
+ ```
213
+
214
+ Generated context uses custom constructor:
215
+
216
+ ```typescript
217
+ // .opensaas/context.ts
218
+ const prisma = config.db.prismaClientConstructor
219
+ ? config.db.prismaClientConstructor(PrismaClient)
220
+ : new PrismaClient()
221
+ ```
222
+
223
+ ## Type Patching
224
+
225
+ CLI patches Prisma types for relationship fields to handle access control:
226
+
227
+ - Relationships can be `null` when access denied
228
+ - Adds `| null` to relationship field types in generated types
229
+
230
+ ## Error Handling
231
+
232
+ Common errors:
233
+
234
+ - Config not found → check file exists in CWD
235
+ - TypeScript errors in config → fix syntax in `opensaas.config.ts`
236
+ - Permission denied → ensure write access to `prisma/` and `.opensaas/`
237
+
238
+ ## Output Styling
239
+
240
+ Uses `chalk` and `ora` for colored, animated output:
241
+
242
+ - ✅ Green checkmarks for success
243
+ - ❌ Red X for errors
244
+ - 🚀 Emoji for branding
245
+ - Spinner animations during generation
246
+
247
+ ## Future Commands
248
+
249
+ `opensaas init` - Project scaffolding with templates (planned)
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 OpenSaas Stack Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAcA,wBAAsB,eAAe,kBAwFpC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAeA,wBAAsB,eAAe,kBA8FpC"}
@@ -4,7 +4,7 @@ import { execSync } from 'child_process';
4
4
  import chalk from 'chalk';
5
5
  import ora from 'ora';
6
6
  import { createJiti } from 'jiti';
7
- import { writePrismaSchema, writeTypes, writeContext, patchPrismaTypes, } from '../generator/index.js';
7
+ import { writePrismaSchema, writeTypes, writeContext, patchPrismaTypes, writeMcp, } from '../generator/index.js';
8
8
  export async function generateCommand() {
9
9
  console.log(chalk.bold('\n🚀 OpenSaas Generator\n'));
10
10
  const cwd = process.cwd();
@@ -29,10 +29,15 @@ export async function generateCommand() {
29
29
  writePrismaSchema(config, path.join(cwd, 'prisma', 'schema.prisma'));
30
30
  writeTypes(config, path.join(cwd, '.opensaas', 'types.ts'));
31
31
  writeContext(config, path.join(cwd, '.opensaas', 'context.ts'));
32
+ // Generate MCP metadata if enabled
33
+ const mcpGenerated = writeMcp(config, cwd);
32
34
  generatorSpinner.succeed(chalk.green('Schema generation complete'));
33
35
  console.log(chalk.green('✅ Prisma schema generated'));
34
36
  console.log(chalk.green('✅ TypeScript types generated'));
35
37
  console.log(chalk.green('✅ Context factory generated'));
38
+ if (mcpGenerated) {
39
+ console.log(chalk.green('✅ MCP metadata generated'));
40
+ }
36
41
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
42
  }
38
43
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -70,8 +70,8 @@ export async function initCommand(projectName) {
70
70
  devDependencies: {
71
71
  '@opensaas/stack-cli': '^0.1.0',
72
72
  '@types/node': '^20.10.0',
73
- '@types/react': '^18.2.45',
74
- '@types/react-dom': '^18.2.18',
73
+ '@types/react': '^19.2.2',
74
+ '@types/react-dom': '^19.2.2',
75
75
  prisma: '^5.7.1',
76
76
  tsx: '^4.7.0',
77
77
  typescript: '^5.3.3',
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiD9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAU7E"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA8H9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAU7E"}
@@ -9,10 +9,78 @@ import * as path from 'path';
9
9
  export function generateContext(config) {
10
10
  // Check if custom Prisma client constructor is provided
11
11
  const hasCustomConstructor = !!config.db.prismaClientConstructor;
12
+ // Check if storage is configured
13
+ const hasStorage = !!config.storage && Object.keys(config.storage).length > 0;
12
14
  // Generate the Prisma client instantiation code
13
15
  const prismaInstantiation = hasCustomConstructor
14
16
  ? `config.db.prismaClientConstructor!(PrismaClient)`
15
17
  : `new PrismaClient()`;
18
+ // Generate storage utilities if storage is configured
19
+ const storageUtilities = hasStorage
20
+ ? `
21
+ /**
22
+ * Lazy-loaded storage runtime functions
23
+ * Prevents sharp and other storage dependencies from being bundled in client code
24
+ */
25
+ let storageRuntime: typeof import('@opensaas/stack-storage/runtime') | null = null
26
+
27
+ async function getStorageRuntime() {
28
+ if (!storageRuntime) {
29
+ try {
30
+ storageRuntime = await import('@opensaas/stack-storage/runtime')
31
+ } catch (error) {
32
+ throw new Error(
33
+ 'Failed to load @opensaas/stack-storage/runtime. Make sure @opensaas/stack-storage is installed.'
34
+ )
35
+ }
36
+ }
37
+ return storageRuntime
38
+ }
39
+
40
+ /**
41
+ * Storage utilities for file/image uploads
42
+ */
43
+ const storage = {
44
+ uploadFile: async (providerName: string, file: File, buffer: Buffer, options?: unknown) => {
45
+ const runtime = await getStorageRuntime()
46
+ return runtime.uploadFile(config, providerName, { file, buffer }, options as any)
47
+ },
48
+
49
+ uploadImage: async (providerName: string, file: File, buffer: Buffer, options?: unknown) => {
50
+ const runtime = await getStorageRuntime()
51
+ return runtime.uploadImage(config, providerName, { file, buffer }, options as any)
52
+ },
53
+
54
+ deleteFile: async (providerName: string, filename: string) => {
55
+ const runtime = await getStorageRuntime()
56
+ return runtime.deleteFile(config, providerName, filename)
57
+ },
58
+
59
+ deleteImage: async (metadata: unknown) => {
60
+ const runtime = await getStorageRuntime()
61
+ return runtime.deleteImage(config, metadata as any)
62
+ },
63
+ }
64
+ `
65
+ : `
66
+ /**
67
+ * Storage utilities (not configured)
68
+ */
69
+ const storage = {
70
+ uploadFile: async () => {
71
+ throw new Error('Storage is not configured. Add storage providers to your opensaas.config.ts')
72
+ },
73
+ uploadImage: async () => {
74
+ throw new Error('Storage is not configured. Add storage providers to your opensaas.config.ts')
75
+ },
76
+ deleteFile: async () => {
77
+ throw new Error('Storage is not configured. Add storage providers to your opensaas.config.ts')
78
+ },
79
+ deleteImage: async () => {
80
+ throw new Error('Storage is not configured. Add storage providers to your opensaas.config.ts')
81
+ },
82
+ }
83
+ `;
16
84
  return `/**
17
85
  * Auto-generated context factory
18
86
  *
@@ -23,14 +91,16 @@ export function generateContext(config) {
23
91
  */
24
92
 
25
93
  import { getContext as getOpensaasContext } from '@opensaas/stack-core'
94
+ import type { Session as OpensaasSession } from '@opensaas/stack-core'
26
95
  import { PrismaClient } from './prisma-client'
96
+ import type { Context } from './types'
27
97
  import config from '../opensaas.config'
28
98
 
29
99
  // Internal Prisma singleton - managed automatically
30
100
  const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined }
31
101
  const prisma = globalForPrisma.prisma ?? ${prismaInstantiation}
32
102
  if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
33
-
103
+ ${storageUtilities}
34
104
  /**
35
105
  * Get OpenSaas context with optional session
36
106
  *
@@ -45,10 +115,15 @@ if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
45
115
  * // Authenticated access
46
116
  * const context = getContext({ userId: 'user-123' })
47
117
  * const myPosts = await context.db.post.findMany()
118
+ *
119
+ * // With custom session type
120
+ * type CustomSession = { userId: string; email: string; role: string } | null
121
+ * const context = getContext<CustomSession>({ userId: '123', email: 'user@example.com', role: 'admin' })
122
+ * // context.session is now typed as CustomSession
48
123
  * \`\`\`
49
124
  */
50
- export function getContext(session?: { userId?: string; [key: string]: unknown } | null) {
51
- return getOpensaasContext(config, prisma, session ?? null)
125
+ export function getContext<TSession extends OpensaasSession = OpensaasSession>(session?: TSession): Context<TSession> {
126
+ return getOpensaasContext(config, prisma, session ?? null, storage) as Context<TSession>
52
127
  }
53
128
 
54
129
  export const rawOpensaasContext = getContext()
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,wDAAwD;IACxD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAA;IAEhE,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,oBAAoB;QAC9C,CAAC,CAAC,kDAAkD;QACpD,CAAC,CAAC,oBAAoB,CAAA;IAExB,OAAO;;;;;;;;;;;;;;;2CAekC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;CAwB7D,CAAA;AACD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,UAAkB;IACrE,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvC,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,wDAAwD;IACxD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAA;IAEhE,iCAAiC;IACjC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAE7E,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,oBAAoB;QAC9C,CAAC,CAAC,kDAAkD;QACpD,CAAC,CAAC,oBAAoB,CAAA;IAExB,sDAAsD;IACtD,MAAM,gBAAgB,GAAG,UAAU;QACjC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CL;QACG,CAAC,CAAC;;;;;;;;;;;;;;;;;;CAkBL,CAAA;IAEC,OAAO;;;;;;;;;;;;;;;;;2CAiBkC,mBAAmB;;EAE5D,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BjB,CAAA;AACD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,UAAkB;IACrE,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvC,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
@@ -2,4 +2,5 @@ export { generatePrismaSchema, writePrismaSchema } from './prisma.js';
2
2
  export { generateTypes, writeTypes } from './types.js';
3
3
  export { patchPrismaTypes } from './type-patcher.js';
4
4
  export { generateContext, writeContext } from './context.js';
5
+ export { generateMcp, writeMcp } from './mcp.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA"}
@@ -2,4 +2,5 @@ export { generatePrismaSchema, writePrismaSchema } from './prisma.js';
2
2
  export { generateTypes, writeTypes } from './types.js';
3
3
  export { patchPrismaTypes } from './type-patcher.js';
4
4
  export { generateContext, writeContext } from './context.js';
5
+ export { generateMcp, writeMcp } from './mcp.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MCP metadata generation
3
+ * Generates reference files for MCP configuration
4
+ */
5
+ import type { OpenSaasConfig } from '@opensaas/stack-core';
6
+ /**
7
+ * Generate MCP metadata if MCP is enabled
8
+ */
9
+ export declare function generateMcp(config: OpenSaasConfig, outputPath: string): boolean;
10
+ /**
11
+ * Write MCP metadata to disk
12
+ */
13
+ export declare function writeMcp(config: OpenSaasConfig, outputPath: string): boolean;
14
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/generator/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CA8L/E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAYlE"}