@opensaas/stack-cli 0.4.0 → 0.6.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 (90) hide show
  1. package/README.md +76 -0
  2. package/dist/commands/migrate.d.ts +9 -0
  3. package/dist/commands/migrate.d.ts.map +1 -0
  4. package/dist/commands/migrate.js +299 -0
  5. package/dist/commands/migrate.js.map +1 -0
  6. package/dist/index.js +3 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp/lib/documentation-provider.d.ts +23 -0
  9. package/dist/mcp/lib/documentation-provider.d.ts.map +1 -1
  10. package/dist/mcp/lib/documentation-provider.js +471 -0
  11. package/dist/mcp/lib/documentation-provider.js.map +1 -1
  12. package/dist/mcp/lib/wizards/migration-wizard.d.ts +80 -0
  13. package/dist/mcp/lib/wizards/migration-wizard.d.ts.map +1 -0
  14. package/dist/mcp/lib/wizards/migration-wizard.js +499 -0
  15. package/dist/mcp/lib/wizards/migration-wizard.js.map +1 -0
  16. package/dist/mcp/server/index.d.ts.map +1 -1
  17. package/dist/mcp/server/index.js +103 -0
  18. package/dist/mcp/server/index.js.map +1 -1
  19. package/dist/mcp/server/stack-mcp-server.d.ts +85 -0
  20. package/dist/mcp/server/stack-mcp-server.d.ts.map +1 -1
  21. package/dist/mcp/server/stack-mcp-server.js +219 -0
  22. package/dist/mcp/server/stack-mcp-server.js.map +1 -1
  23. package/dist/migration/generators/migration-generator.d.ts +60 -0
  24. package/dist/migration/generators/migration-generator.d.ts.map +1 -0
  25. package/dist/migration/generators/migration-generator.js +510 -0
  26. package/dist/migration/generators/migration-generator.js.map +1 -0
  27. package/dist/migration/introspectors/index.d.ts +12 -0
  28. package/dist/migration/introspectors/index.d.ts.map +1 -0
  29. package/dist/migration/introspectors/index.js +10 -0
  30. package/dist/migration/introspectors/index.js.map +1 -0
  31. package/dist/migration/introspectors/keystone-introspector.d.ts +59 -0
  32. package/dist/migration/introspectors/keystone-introspector.d.ts.map +1 -0
  33. package/dist/migration/introspectors/keystone-introspector.js +229 -0
  34. package/dist/migration/introspectors/keystone-introspector.js.map +1 -0
  35. package/dist/migration/introspectors/nextjs-introspector.d.ts +59 -0
  36. package/dist/migration/introspectors/nextjs-introspector.d.ts.map +1 -0
  37. package/dist/migration/introspectors/nextjs-introspector.js +159 -0
  38. package/dist/migration/introspectors/nextjs-introspector.js.map +1 -0
  39. package/dist/migration/introspectors/prisma-introspector.d.ts +45 -0
  40. package/dist/migration/introspectors/prisma-introspector.d.ts.map +1 -0
  41. package/dist/migration/introspectors/prisma-introspector.js +190 -0
  42. package/dist/migration/introspectors/prisma-introspector.js.map +1 -0
  43. package/dist/migration/types.d.ts +86 -0
  44. package/dist/migration/types.d.ts.map +1 -0
  45. package/dist/migration/types.js +5 -0
  46. package/dist/migration/types.js.map +1 -0
  47. package/package.json +10 -2
  48. package/plugin/.claude-plugin/plugin.json +15 -0
  49. package/plugin/README.md +112 -0
  50. package/plugin/agents/migration-assistant.md +150 -0
  51. package/plugin/commands/analyze-schema.md +34 -0
  52. package/plugin/commands/generate-config.md +33 -0
  53. package/plugin/commands/validate-migration.md +34 -0
  54. package/plugin/skills/opensaas-migration/SKILL.md +192 -0
  55. package/.turbo/turbo-build.log +0 -4
  56. package/CHANGELOG.md +0 -410
  57. package/CLAUDE.md +0 -298
  58. package/src/commands/__snapshots__/generate.test.ts.snap +0 -413
  59. package/src/commands/dev.test.ts +0 -215
  60. package/src/commands/dev.ts +0 -48
  61. package/src/commands/generate.test.ts +0 -282
  62. package/src/commands/generate.ts +0 -182
  63. package/src/commands/init.ts +0 -34
  64. package/src/commands/mcp.ts +0 -135
  65. package/src/generator/__snapshots__/context.test.ts.snap +0 -361
  66. package/src/generator/__snapshots__/prisma.test.ts.snap +0 -174
  67. package/src/generator/__snapshots__/types.test.ts.snap +0 -1702
  68. package/src/generator/context.test.ts +0 -139
  69. package/src/generator/context.ts +0 -227
  70. package/src/generator/index.ts +0 -7
  71. package/src/generator/lists.test.ts +0 -335
  72. package/src/generator/lists.ts +0 -140
  73. package/src/generator/plugin-types.ts +0 -147
  74. package/src/generator/prisma-config.ts +0 -46
  75. package/src/generator/prisma-extensions.ts +0 -159
  76. package/src/generator/prisma.test.ts +0 -211
  77. package/src/generator/prisma.ts +0 -161
  78. package/src/generator/types.test.ts +0 -268
  79. package/src/generator/types.ts +0 -537
  80. package/src/index.ts +0 -42
  81. package/src/mcp/lib/documentation-provider.ts +0 -203
  82. package/src/mcp/lib/features/catalog.ts +0 -301
  83. package/src/mcp/lib/generators/feature-generator.ts +0 -598
  84. package/src/mcp/lib/types.ts +0 -89
  85. package/src/mcp/lib/wizards/wizard-engine.ts +0 -427
  86. package/src/mcp/server/index.ts +0 -240
  87. package/src/mcp/server/stack-mcp-server.ts +0 -301
  88. package/tsconfig.json +0 -13
  89. package/tsconfig.tsbuildinfo +0 -1
  90. package/vitest.config.ts +0 -26
package/README.md CHANGED
@@ -143,6 +143,82 @@ pnpm db:push # Create database
143
143
  pnpm dev # Start dev server
144
144
  ```
145
145
 
146
+ ### `opensaas migrate`
147
+
148
+ Migrate an existing Prisma, KeystoneJS, or Next.js project to OpenSaas Stack.
149
+
150
+ ```bash
151
+ opensaas migrate [options]
152
+ ```
153
+
154
+ **Options:**
155
+
156
+ - `--with-ai` - Enable AI-guided migration with Claude Code
157
+ - `--type <type>` - Force project type detection (prisma, nextjs, keystone)
158
+
159
+ **What it does:**
160
+
161
+ 1. Detects project type (Prisma, KeystoneJS, Next.js)
162
+ 2. Analyzes schema and counts models
163
+ 3. With `--with-ai`: Sets up Claude Code integration
164
+ 4. Provides next steps for migration
165
+
166
+ **Examples:**
167
+
168
+ ```bash
169
+ # Basic migration analysis
170
+ opensaas migrate
171
+
172
+ # AI-guided migration (recommended)
173
+ opensaas migrate --with-ai
174
+
175
+ # Force project type
176
+ opensaas migrate --type prisma --with-ai
177
+ ```
178
+
179
+ **AI-Assisted Migration (with --with-ai):**
180
+
181
+ ```
182
+ 🚀 OpenSaas Stack Migration
183
+
184
+ ✔ Detected: prisma, nextjs
185
+ ✔ Found 8 models
186
+ ├─ User (6 fields)
187
+ ├─ Post (10 fields)
188
+ ├─ Comment (5 fields)
189
+ └─ ...
190
+ ✔ Claude Code ready
191
+ ├─ Created .claude directory
192
+ ├─ Generated migration assistant
193
+ └─ Registered MCP server
194
+
195
+ ✅ Analysis complete!
196
+
197
+ 🤖 Next Steps:
198
+
199
+ 1. Open this project in Claude Code
200
+ 2. Ask: "Help me migrate to OpenSaas Stack"
201
+ 3. Follow the interactive wizard
202
+ ```
203
+
204
+ **After running:**
205
+
206
+ 1. Open project in Claude Code
207
+ 2. Ask: "Help me migrate to OpenSaas Stack"
208
+ 3. Answer wizard questions about:
209
+ - Database configuration
210
+ - Authentication needs
211
+ - Access control patterns
212
+ - Admin UI preferences
213
+ 4. Claude generates `opensaas.config.ts`
214
+ 5. Install dependencies and run `opensaas generate`
215
+
216
+ **Manual Migration:**
217
+
218
+ Without `--with-ai`, the command provides project analysis and you create the config manually.
219
+
220
+ **See also:** [Migration Guide](https://stack.opensaas.au/docs/guides/migration)
221
+
146
222
  ## Usage in Projects
147
223
 
148
224
  ### Quick Start (New Projects)
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Migration command - Helps migrate existing projects to OpenSaaS Stack
3
+ */
4
+ import { Command } from 'commander';
5
+ /**
6
+ * Create the migrate command for Commander
7
+ */
8
+ export declare function createMigrateCommand(): Command;
9
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8UnC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAkB9C"}
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Migration command - Helps migrate existing projects to OpenSaaS Stack
3
+ */
4
+ import { Command } from 'commander';
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import chalk from 'chalk';
8
+ import ora from 'ora';
9
+ /**
10
+ * Detect what type of project this is
11
+ */
12
+ async function detectProjectType(cwd) {
13
+ const types = [];
14
+ // Check for Prisma
15
+ const prismaSchemaPath = path.join(cwd, 'prisma', 'schema.prisma');
16
+ if (fs.existsSync(prismaSchemaPath)) {
17
+ types.push('prisma');
18
+ }
19
+ // Check for KeystoneJS
20
+ const keystoneConfigPath = path.join(cwd, 'keystone.config.ts');
21
+ const keystoneAltPath = path.join(cwd, 'keystone.ts');
22
+ if (fs.existsSync(keystoneConfigPath) || fs.existsSync(keystoneAltPath)) {
23
+ types.push('keystone');
24
+ }
25
+ // Check for Next.js
26
+ const packageJsonPath = path.join(cwd, 'package.json');
27
+ if (fs.existsSync(packageJsonPath)) {
28
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
29
+ if (pkg.dependencies?.next || pkg.devDependencies?.next) {
30
+ types.push('nextjs');
31
+ }
32
+ }
33
+ return types;
34
+ }
35
+ /**
36
+ * Analyze a Prisma schema
37
+ */
38
+ async function analyzePrismaSchema(cwd) {
39
+ const schemaPath = path.join(cwd, 'prisma', 'schema.prisma');
40
+ const schema = fs.readFileSync(schemaPath, 'utf-8');
41
+ // Extract models
42
+ const modelRegex = /model\s+(\w+)\s*\{([^}]+)\}/g;
43
+ const models = [];
44
+ let match;
45
+ while ((match = modelRegex.exec(schema)) !== null) {
46
+ const name = match[1];
47
+ const body = match[2];
48
+ const fieldCount = body
49
+ .split('\n')
50
+ .filter((line) => line.trim() && !line.trim().startsWith('@@') && !line.trim().startsWith('//')).length;
51
+ models.push({ name, fieldCount });
52
+ }
53
+ // Extract provider
54
+ const providerMatch = schema.match(/provider\s*=\s*"(\w+)"/);
55
+ const provider = providerMatch ? providerMatch[1] : 'unknown';
56
+ return { models, provider };
57
+ }
58
+ /**
59
+ * Ensure directory exists
60
+ */
61
+ function ensureDir(dirPath) {
62
+ if (!fs.existsSync(dirPath)) {
63
+ fs.mkdirSync(dirPath, { recursive: true });
64
+ }
65
+ }
66
+ /**
67
+ * Get plugin source path (relative to CLI package)
68
+ */
69
+ function getPluginSourcePath() {
70
+ // This will be the path to the plugin directory within the installed CLI package
71
+ const cliPackageDir = path.dirname(path.dirname(new URL(import.meta.url).pathname));
72
+ return path.join(cliPackageDir, 'plugin');
73
+ }
74
+ /**
75
+ * Setup Claude Code integration with plugin
76
+ */
77
+ async function setupClaudeCode(cwd, analysis) {
78
+ const claudeDir = path.join(cwd, '.claude');
79
+ // Create .claude directory
80
+ ensureDir(claudeDir);
81
+ // Create .mcp.json at project root (project-scoped MCP configuration)
82
+ const mcpConfig = {
83
+ mcpServers: {
84
+ 'opensaas-migration': {
85
+ type: 'stdio',
86
+ command: 'npx',
87
+ args: ['-y', '@opensaas/stack-cli', 'mcp', 'start'],
88
+ env: {},
89
+ },
90
+ },
91
+ };
92
+ fs.writeFileSync(path.join(cwd, '.mcp.json'), JSON.stringify(mcpConfig, null, 2));
93
+ // Write project metadata file for the plugin to read
94
+ const projectMetadata = {
95
+ projectTypes: analysis.projectTypes,
96
+ provider: analysis.provider || 'sqlite',
97
+ models: analysis.models || [],
98
+ hasAuth: analysis.hasAuth || false,
99
+ cwd: analysis.cwd,
100
+ };
101
+ fs.writeFileSync(path.join(claudeDir, 'opensaas-project.json'), JSON.stringify(projectMetadata, null, 2));
102
+ // Configure Claude Code plugin in settings.json
103
+ const settingsPath = path.join(claudeDir, 'settings.json');
104
+ let settings = {};
105
+ // Read existing settings if they exist
106
+ if (fs.existsSync(settingsPath)) {
107
+ try {
108
+ settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
109
+ }
110
+ catch {
111
+ // If settings file is invalid, start fresh
112
+ settings = {};
113
+ }
114
+ }
115
+ // Get the plugin source path
116
+ const pluginSource = getPluginSourcePath();
117
+ // Add plugin configuration
118
+ if (!settings.plugins) {
119
+ settings.plugins = {};
120
+ }
121
+ if (!settings.plugins.installed) {
122
+ settings.plugins.installed = [];
123
+ }
124
+ // Check if plugin is already installed
125
+ const pluginId = 'opensaas-migration@local';
126
+ const isInstalled = settings.plugins.installed.some((p) => typeof p === 'string' ? p === pluginId : p.id === pluginId);
127
+ if (!isInstalled) {
128
+ settings.plugins.installed.push({
129
+ id: pluginId,
130
+ source: pluginSource,
131
+ enabled: true,
132
+ });
133
+ }
134
+ // Write settings back
135
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
136
+ // Create a simple README explaining the setup
137
+ const readmeContent = `# OpenSaaS Stack Migration
138
+
139
+ This project is set up for AI-assisted migration to OpenSaaS Stack.
140
+
141
+ ## Project Summary
142
+
143
+ - **Project Types:** ${analysis.projectTypes.join(', ')}
144
+ - **Database Provider:** ${analysis.provider || 'Not detected'}
145
+ - **Models Detected:** ${analysis.models?.length || 0}
146
+
147
+ ${analysis.models && analysis.models.length > 0
148
+ ? `\n### Models\n\n${analysis.models.map((m) => `- ${m.name} (${m.fieldCount} fields)`).join('\n')}`
149
+ : ''}
150
+
151
+ ## Quick Start
152
+
153
+ Ask Claude: **"Help me migrate to OpenSaaS Stack"**
154
+
155
+ Claude will guide you through:
156
+ 1. Reviewing your current schema
157
+ 2. Configuring access control
158
+ 3. Setting up authentication (optional)
159
+ 4. Generating \`opensaas.config.ts\`
160
+
161
+ ## What's Configured
162
+
163
+ ### OpenSaaS Migration Plugin
164
+
165
+ The migration assistant plugin provides:
166
+ - **Migration Assistant Agent**: Contextual help throughout the migration
167
+ - **Slash Commands**: \`/analyze-schema\`, \`/generate-config\`, \`/validate-migration\`
168
+ - **Migration Skill**: Expert knowledge about migration patterns
169
+
170
+ ### MCP Server
171
+
172
+ The \`.mcp.json\` file configures the OpenSaaS migration MCP server with tools for:
173
+ - Schema analysis
174
+ - Interactive migration wizard
175
+ - Documentation search
176
+ - Code generation
177
+
178
+ When you open this project in Claude Code, you may be prompted to approve the MCP server.
179
+
180
+ ## Resources
181
+
182
+ - [OpenSaaS Stack Documentation](https://stack.opensaas.au/)
183
+ - [Migration Guide](https://stack.opensaas.au/guides/migration)
184
+ - [GitHub Repository](https://github.com/OpenSaasAU/stack)
185
+
186
+ ---
187
+
188
+ *Generated by \`npx @opensaas/stack-cli migrate --with-ai\`*
189
+ `;
190
+ fs.writeFileSync(path.join(claudeDir, 'README.md'), readmeContent);
191
+ }
192
+ /**
193
+ * Main migrate command
194
+ */
195
+ async function migrateCommand(options) {
196
+ const cwd = process.cwd();
197
+ console.log(chalk.bold.cyan('\n🚀 OpenSaaS Stack Migration\n'));
198
+ // Step 1: Detect project type
199
+ const spinner = ora('Detecting project type...').start();
200
+ let projectTypes;
201
+ if (options.type) {
202
+ projectTypes = [options.type];
203
+ }
204
+ else {
205
+ projectTypes = await detectProjectType(cwd);
206
+ }
207
+ if (projectTypes.length === 0) {
208
+ spinner.fail(chalk.red('No recognizable project found'));
209
+ console.log(chalk.dim('\nThis command works with:'));
210
+ console.log(chalk.dim(' - Prisma projects (prisma/schema.prisma)'));
211
+ console.log(chalk.dim(' - KeystoneJS projects (keystone.config.ts)'));
212
+ console.log(chalk.dim(' - Next.js projects (package.json with next)'));
213
+ console.log(chalk.dim('\nUse --type to force a project type.'));
214
+ process.exit(1);
215
+ }
216
+ spinner.succeed(chalk.green(`Detected: ${projectTypes.join(', ')}`));
217
+ // Step 2: Analyze schema
218
+ const analysisSpinner = ora('Analyzing schema...').start();
219
+ const analysis = {
220
+ projectTypes,
221
+ cwd,
222
+ };
223
+ if (projectTypes.includes('prisma')) {
224
+ try {
225
+ const prismaAnalysis = await analyzePrismaSchema(cwd);
226
+ analysis.models = prismaAnalysis.models;
227
+ analysis.provider = prismaAnalysis.provider;
228
+ }
229
+ catch {
230
+ // Prisma analysis failed, continue without it
231
+ }
232
+ }
233
+ if (analysis.models && analysis.models.length > 0) {
234
+ analysisSpinner.succeed(chalk.green(`Found ${analysis.models.length} models`));
235
+ // Display model tree
236
+ const lastIndex = analysis.models.length - 1;
237
+ analysis.models.forEach((model, index) => {
238
+ const prefix = index === lastIndex ? '└─' : '├─';
239
+ console.log(chalk.dim(` ${prefix} ${model.name} (${model.fieldCount} fields)`));
240
+ });
241
+ }
242
+ else {
243
+ analysisSpinner.succeed(chalk.yellow('No models found (will create from scratch)'));
244
+ }
245
+ // Step 3: Setup Claude Code (if --with-ai)
246
+ if (options.withAi) {
247
+ const claudeSpinner = ora('Setting up Claude Code...').start();
248
+ try {
249
+ await setupClaudeCode(cwd, analysis);
250
+ claudeSpinner.succeed(chalk.green('Claude Code ready'));
251
+ console.log(chalk.dim(' ├─ Created .claude directory'));
252
+ console.log(chalk.dim(' ├─ Installed opensaas-migration plugin'));
253
+ console.log(chalk.dim(' ├─ Configured .claude/settings.json'));
254
+ console.log(chalk.dim(' ├─ Wrote opensaas-project.json (project metadata)'));
255
+ console.log(chalk.dim(' └─ Created .mcp.json (MCP server config)'));
256
+ }
257
+ catch (error) {
258
+ claudeSpinner.fail(chalk.red('Failed to setup Claude Code'));
259
+ console.error(error);
260
+ }
261
+ }
262
+ // Step 4: Display next steps
263
+ console.log(chalk.green('\n✅ Analysis complete!\n'));
264
+ if (options.withAi) {
265
+ console.log(chalk.bold('🤖 Next Steps:\n'));
266
+ console.log(chalk.cyan(' 1. Open this project in Claude Code'));
267
+ console.log(chalk.cyan(' 2. Ask: "Help me migrate to OpenSaaS Stack"'));
268
+ console.log(chalk.cyan(' 3. Follow the interactive wizard'));
269
+ }
270
+ else {
271
+ console.log(chalk.bold('📝 Next Steps:\n'));
272
+ console.log(chalk.cyan(' 1. Run with --with-ai for AI-guided migration'));
273
+ console.log(chalk.cyan(' 2. Or manually create opensaas.config.ts'));
274
+ console.log(chalk.dim('\n See: https://stack.opensaas.au/guides/migration'));
275
+ }
276
+ console.log(chalk.dim(`\n📚 Documentation: https://stack.opensaas.au/guides/migration\n`));
277
+ }
278
+ /**
279
+ * Create the migrate command for Commander
280
+ */
281
+ export function createMigrateCommand() {
282
+ const migrate = new Command('migrate');
283
+ migrate.description('Migrate an existing project to OpenSaaS Stack');
284
+ migrate
285
+ .option('--with-ai', 'Enable AI-guided migration with Claude Code')
286
+ .option('--type <type>', 'Force project type (prisma, nextjs, keystone)')
287
+ .action(async (options) => {
288
+ try {
289
+ await migrateCommand(options);
290
+ process.exit(0);
291
+ }
292
+ catch (error) {
293
+ console.error(chalk.red('\n❌ Migration failed:'), error);
294
+ process.exit(1);
295
+ }
296
+ });
297
+ return migrate;
298
+ }
299
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { generateCommand } from './commands/generate.js';
4
4
  import { initCommand } from './commands/init.js';
5
5
  import { devCommand } from './commands/dev.js';
6
6
  import { createMCPCommand } from './commands/mcp.js';
7
+ import { createMigrateCommand } from './commands/migrate.js';
7
8
  const program = new Command();
8
9
  program.name('opensaas').description('OpenSaas Stack CLI').version('0.1.0');
9
10
  program
@@ -33,5 +34,7 @@ program
33
34
  });
34
35
  // Add MCP command group
35
36
  program.addCommand(createMCPCommand());
37
+ // Add migrate command
38
+ program.addCommand(createMigrateCommand());
36
39
  program.parse();
37
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAE3E,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,eAAe,EAAE,CAAA;AACzB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,kBAAkB,EAAE,CAAC,sCAAsC;KAC3D,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,IAAI,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvC,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,UAAU,EAAE,CAAA;AACpB,CAAC,CAAC,CAAA;AAEJ,wBAAwB;AACxB,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;AAEtC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAE3E,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,eAAe,EAAE,CAAA;AACzB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,kBAAkB,EAAE,CAAC,sCAAsC;KAC3D,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,IAAI,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvC,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,UAAU,EAAE,CAAA;AACpB,CAAC,CAAC,CAAA;AAEJ,wBAAwB;AACxB,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;AAEtC,sBAAsB;AACtB,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAE1C,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -2,6 +2,16 @@
2
2
  * Documentation provider - Fetches documentation from the hosted docs site
3
3
  */
4
4
  import type { DocumentationLookup } from './types.js';
5
+ interface LocalDocResult {
6
+ content: string;
7
+ files: string[];
8
+ }
9
+ interface ExampleConfig {
10
+ description: string;
11
+ code: string;
12
+ notes?: string;
13
+ sourcePath: string;
14
+ }
5
15
  export declare class OpenSaasDocumentationProvider {
6
16
  private readonly DOCS_API;
7
17
  private cache;
@@ -31,6 +41,18 @@ export declare class OpenSaasDocumentationProvider {
31
41
  * Fallback documentation when API is unavailable
32
42
  */
33
43
  private getFallbackDocs;
44
+ /**
45
+ * Search local CLAUDE.md files in the monorepo
46
+ */
47
+ searchLocalDocs(query: string): Promise<LocalDocResult>;
48
+ /**
49
+ * Get example config code for a feature
50
+ */
51
+ getExampleConfig(feature: string): Promise<ExampleConfig | null>;
52
+ /**
53
+ * Get migration-specific documentation for a project type
54
+ */
55
+ findMigrationGuide(projectType: string): Promise<string>;
34
56
  /**
35
57
  * Clear expired cache entries
36
58
  */
@@ -40,4 +62,5 @@ export declare class OpenSaasDocumentationProvider {
40
62
  */
41
63
  clearCache(): void;
42
64
  }
65
+ export {};
43
66
  //# sourceMappingURL=documentation-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"documentation-provider.d.ts","sourceRoot":"","sources":["../../../src/mcp/lib/documentation-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAkBrD,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,OAAO,CAAC,KAAK,CAAsE;IACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAG3C,OAAO,CAAC,aAAa,CA4BpB;IAED;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,QAAQ,SAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0CxF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO/D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IASzB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
1
+ {"version":3,"file":"documentation-provider.d.ts","sourceRoot":"","sources":["../../../src/mcp/lib/documentation-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAkBrD,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,OAAO,CAAC,KAAK,CAAsE;IACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAG3C,OAAO,CAAC,aAAa,CA4BpB;IAED;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,QAAQ,SAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0CxF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO/D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsF7D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA0OtE;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmK9D;;OAEG;IACH,iBAAiB,IAAI,IAAI;IASzB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}