@axboot-mcp/mcp-server 1.0.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 (78) hide show
  1. package/CLAUDE.md +119 -0
  2. package/MCP_TOOL_PLAN.md +710 -0
  3. package/MCP_USAGE.md +914 -0
  4. package/README.md +168 -0
  5. package/REPOSITORY_CONVENTIONS.md +250 -0
  6. package/SEARCH_PARAMS_MCP_TOOL_COMPLETE_PLAN.md +646 -0
  7. package/SEARCH_PARAMS_PLAN.md +2570 -0
  8. package/STORE_PATTERNS.md +1178 -0
  9. package/debug-dto.js +72 -0
  10. package/generate-banner-store.js +62 -0
  11. package/generation-plan.json +2176 -0
  12. package/generation-results.json +1817 -0
  13. package/package.json +45 -0
  14. package/scripts/batch-generate-all.js +159 -0
  15. package/scripts/batch-generate-mcp.js +329 -0
  16. package/scripts/batch-generate-stores-v2.js +272 -0
  17. package/scripts/batch-generate-stores.js +179 -0
  18. package/scripts/batch-plan.json +3810 -0
  19. package/scripts/batch-process.py +90 -0
  20. package/scripts/batch-regenerate.js +356 -0
  21. package/scripts/direct-generate.js +227 -0
  22. package/scripts/execute-batches.js +1911 -0
  23. package/scripts/generate-all-stores.js +144 -0
  24. package/scripts/generate-stores-mcp.js +161 -0
  25. package/scripts/generate-stores-v2.js +450 -0
  26. package/scripts/generate-stores-v3.js +412 -0
  27. package/scripts/generate-stores-v4.js +521 -0
  28. package/scripts/generate-stores.js +382 -0
  29. package/scripts/repos-to-process.json +1899 -0
  30. package/src/config/nh-layout-patterns.ts +166 -0
  31. package/src/docs/HOOK_GENERATION_PLAN.md +2226 -0
  32. package/src/docs/NH_STORE_PATTERNS.md +297 -0
  33. package/src/docs/README.md +216 -0
  34. package/src/docs/index.ts +28 -0
  35. package/src/docs/loader.ts +568 -0
  36. package/src/docs/patterns.json +419 -0
  37. package/src/docs/practical-examples.md +732 -0
  38. package/src/docs/quick-start.md +257 -0
  39. package/src/docs/requirements-analysis-guide.md +364 -0
  40. package/src/docs/rules.json +321 -0
  41. package/src/docs/store-pattern-analysis.md +664 -0
  42. package/src/docs/store-patterns-rules.md +1168 -0
  43. package/src/docs/store-patterns-usage-guide.md +1835 -0
  44. package/src/docs/troubleshooting.md +544 -0
  45. package/src/docs/type-selection-guide.md +572 -0
  46. package/src/docs//354/202/254/354/232/251/353/262/225/AntD-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +1515 -0
  47. package/src/docs//354/202/254/354/232/251/353/262/225/DataGrid-/354/202/254/354/232/251/353/262/225.md +866 -0
  48. package/src/docs//354/202/254/354/232/251/353/262/225/FormItem-/354/202/254/354/232/251/353/262/225.md +903 -0
  49. package/src/docs//354/202/254/354/232/251/353/262/225/FormModal-/354/202/254/354/232/251/353/262/225.md +1155 -0
  50. package/src/docs//354/202/254/354/232/251/353/262/225/MCP-/353/260/224/354/235/264/353/270/214/354/275/224/353/224/251-/352/260/200/354/235/264/353/223/234.md +1133 -0
  51. package/src/docs//354/202/254/354/232/251/353/262/225/MSW-Mock-/353/215/260/354/235/264/355/204/260-/354/202/254/354/232/251/353/262/225.md +579 -0
  52. package/src/docs//354/202/254/354/232/251/353/262/225/Search-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +738 -0
  53. package/src/docs//354/202/254/354/232/251/353/262/225/Store-/355/214/250/355/204/264-/354/202/254/354/232/251/353/262/225.md +1135 -0
  54. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/352/265/254/354/204/261-/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234/354/210/234/354/204/234.md +1805 -0
  55. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234-/355/224/204/353/241/254/355/224/204/355/212/270-/352/260/200/354/235/264/353/223/234.md +946 -0
  56. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/225/354/236/245/355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/354/203/201/354/204/270-/355/224/204/353/241/254/355/224/204/355/212/270/352/260/200/354/235/264/353/223/234.md +2422 -0
  57. package/src/features/store-features.ts +232 -0
  58. package/src/handlers/analyze-requirements.ts +403 -0
  59. package/src/handlers/analyze.ts +1373 -0
  60. package/src/handlers/generate-from-requirements.ts +250 -0
  61. package/src/handlers/generate-hook.ts +950 -0
  62. package/src/handlers/generate-interactive.ts +840 -0
  63. package/src/handlers/generate-listdatagrid.ts +521 -0
  64. package/src/handlers/generate-multi-stores.ts +577 -0
  65. package/src/handlers/generate-requirements-from-layout.ts +160 -0
  66. package/src/handlers/generate-search-params.ts +717 -0
  67. package/src/handlers/generate.ts +911 -0
  68. package/src/handlers/list-templates.ts +104 -0
  69. package/src/handlers/scan-metadata.ts +485 -0
  70. package/src/handlers/suggest-layout.ts +326 -0
  71. package/src/index.ts +959 -0
  72. package/src/prompts/search-params.md +793 -0
  73. package/src/templates/index.ts +107 -0
  74. package/src/templates/unified.ts +462 -0
  75. package/store-generation-error-patterns.md +225 -0
  76. package/test/useAgentStore.ts +136 -0
  77. package/test-server.js +78 -0
  78. package/tsconfig.json +20 -0
package/debug-dto.js ADDED
@@ -0,0 +1,72 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ const REPO_DIR = '/Users/kyle/Desktop/nh-fe-bo/src/services/@interface/repository';
5
+ const STORE_DIR = '/Users/kyle/Desktop/nh-fe-bo/src/pages/resources/NH';
6
+
7
+ function analyzeRepository(filePath) {
8
+ const content = fs.readFileSync(filePath, 'utf-8');
9
+ const classNameMatch = content.match(/export class (\w+)Repository/);
10
+ const className = classNameMatch ? classNameMatch[1] : '';
11
+
12
+ const methods = [];
13
+ const methodBlocks = content.split(/async\s+/).slice(1);
14
+
15
+ methodBlocks.forEach(block => {
16
+ const methodNameMatch = block.match(/(\w+)\s*\(([^)]*)\)/);
17
+ if (!methodNameMatch) return;
18
+
19
+ const methodName = methodNameMatch[1];
20
+ const apiWrapperMatch = block.match(/this\._apiWrapper<([^>]+)>/);
21
+ if (!apiWrapperMatch) return;
22
+
23
+ methods.push({
24
+ name: methodName,
25
+ returnType: apiWrapperMatch[1],
26
+ });
27
+ });
28
+
29
+ return { className, methods };
30
+ }
31
+
32
+ function findExistingStore(baseName) {
33
+ const kebabName = baseName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
34
+ const possiblePaths = [
35
+ path.join(STORE_DIR, kebabName + '.use' + baseName + 'Store.ts'),
36
+ path.join(STORE_DIR, 'use' + baseName + 'Store.ts'),
37
+ ];
38
+
39
+ for (const p of possiblePaths) {
40
+ if (fs.existsSync(p)) return p;
41
+ }
42
+
43
+ const dirs = fs.readdirSync(STORE_DIR, { withFileTypes: true })
44
+ .filter(d => d.isDirectory())
45
+ .map(d => d.name);
46
+
47
+ for (const dir of dirs) {
48
+ const filePath = path.join(STORE_DIR, dir, 'use' + baseName + 'Store.ts');
49
+ if (fs.existsSync(filePath)) return filePath;
50
+ }
51
+
52
+ return null;
53
+ }
54
+
55
+ // Test with OrderMng
56
+ const repoPath = path.join(REPO_DIR, 'OrderMngRepository.ts');
57
+ const repoInfo = analyzeRepository(repoPath);
58
+
59
+ console.log('OrderMng methods with detail/info:');
60
+ repoInfo.methods.filter(m =>
61
+ m.name.toLowerCase().includes('detail') ||
62
+ m.name.toLowerCase().includes('info')
63
+ ).forEach(m => console.log(' ', m.name, '->', m.returnType));
64
+
65
+ const existingStore = findExistingStore('OrderMng');
66
+ console.log('\nExisting store found:', existingStore);
67
+
68
+ if (existingStore) {
69
+ const content = fs.readFileSync(existingStore, 'utf-8');
70
+ const dtoMatch = content.match(/interface DtoItem extends (\w+)/);
71
+ console.log('DtoItem from existing store:', dtoMatch ? dtoMatch[1] : 'not found');
72
+ }
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawn } = require('child_process');
4
+
5
+ const serverProcess = spawn('node', ['/Users/kyle/work/mcp-axboot/dist/index.js'], {
6
+ stdio: ['pipe', 'pipe', 'inherit']
7
+ });
8
+
9
+ let messageId = 0;
10
+ let responseBuffer = '';
11
+
12
+ const sendRequest = (method, params = {}) => {
13
+ const request = {
14
+ jsonrpc: '2.0',
15
+ id: messageId++,
16
+ method,
17
+ params
18
+ };
19
+ serverProcess.stdin.write(JSON.stringify(request) + '\n');
20
+ };
21
+
22
+ setTimeout(() => {
23
+ sendRequest('tools/call', {
24
+ name: 'generate_store',
25
+ arguments: {
26
+ interfacePath: '/Users/kyle/Desktop/nh-fe-bo/src/services/@interface/repository/AppBannerMgmtRepository.ts',
27
+ outputPath: '/Users/kyle/Desktop/nh-fe-bo/src/pages/resources/NH/test/useAppBannerMgmtStore.ts',
28
+ storeType: 10,
29
+ storeName: 'useAppBannerMgmtStore'
30
+ }
31
+ });
32
+ }, 1000);
33
+
34
+ serverProcess.stdout.on('data', (data) => {
35
+ responseBuffer += data.toString();
36
+ const lines = responseBuffer.split('\n');
37
+ responseBuffer = lines.pop() || '';
38
+
39
+ for (const line of lines) {
40
+ if (!line.trim()) continue;
41
+ try {
42
+ const response = JSON.parse(line);
43
+ if (response.error) {
44
+ console.error('ERROR:', response.error);
45
+ serverProcess.kill();
46
+ process.exit(1);
47
+ }
48
+ if (response.result?.content) {
49
+ console.log(JSON.stringify(response.result, null, 2));
50
+ serverProcess.kill();
51
+ process.exit(0);
52
+ }
53
+ } catch (e) {
54
+ console.log('STDERR:', line);
55
+ }
56
+ }
57
+ });
58
+
59
+ setTimeout(() => {
60
+ serverProcess.kill();
61
+ process.exit(0);
62
+ }, 10000);