ai-first-cli 1.1.1 → 1.1.2

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 (192) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.es.md +137 -1
  3. package/README.md +136 -4
  4. package/ai/ai_context.md +2 -2
  5. package/ai/architecture.md +3 -3
  6. package/ai/cache.json +85 -57
  7. package/ai/ccp/jira-123/context.json +7 -0
  8. package/ai/context/repo.json +56 -0
  9. package/ai/context/utils.json +7 -0
  10. package/ai/dependencies.json +51 -1026
  11. package/ai/files.json +195 -3
  12. package/ai/git/commit-activity.json +8646 -0
  13. package/ai/git/recent-features.json +1 -0
  14. package/ai/git/recent-files.json +52 -0
  15. package/ai/git/recent-flows.json +1 -0
  16. package/ai/graph/knowledge-graph.json +43643 -0
  17. package/ai/graph/module-graph.json +4 -0
  18. package/ai/graph/symbol-graph.json +3307 -879
  19. package/ai/graph/symbol-references.json +119 -32
  20. package/ai/index-state.json +843 -188
  21. package/ai/index.db +0 -0
  22. package/ai/modules.json +4 -0
  23. package/ai/repo-map.json +81 -17
  24. package/ai/repo_map.json +81 -17
  25. package/ai/repo_map.md +21 -7
  26. package/ai/summary.md +5 -5
  27. package/ai/symbols.json +1 -20287
  28. package/dist/analyzers/androidResources.d.ts +23 -0
  29. package/dist/analyzers/androidResources.d.ts.map +1 -0
  30. package/dist/analyzers/androidResources.js +93 -0
  31. package/dist/analyzers/androidResources.js.map +1 -0
  32. package/dist/analyzers/dependencies.d.ts.map +1 -1
  33. package/dist/analyzers/dependencies.js +37 -0
  34. package/dist/analyzers/dependencies.js.map +1 -1
  35. package/dist/analyzers/entrypoints.d.ts.map +1 -1
  36. package/dist/analyzers/entrypoints.js +71 -1
  37. package/dist/analyzers/entrypoints.js.map +1 -1
  38. package/dist/analyzers/gradleModules.d.ts +22 -0
  39. package/dist/analyzers/gradleModules.d.ts.map +1 -0
  40. package/dist/analyzers/gradleModules.js +75 -0
  41. package/dist/analyzers/gradleModules.js.map +1 -0
  42. package/dist/analyzers/techStack.d.ts +7 -0
  43. package/dist/analyzers/techStack.d.ts.map +1 -1
  44. package/dist/analyzers/techStack.js +44 -1
  45. package/dist/analyzers/techStack.js.map +1 -1
  46. package/dist/commands/ai-first.d.ts.map +1 -1
  47. package/dist/commands/ai-first.js +311 -1
  48. package/dist/commands/ai-first.js.map +1 -1
  49. package/dist/core/adapters/adapterRegistry.d.ts +39 -0
  50. package/dist/core/adapters/adapterRegistry.d.ts.map +1 -0
  51. package/dist/core/adapters/adapterRegistry.js +155 -0
  52. package/dist/core/adapters/adapterRegistry.js.map +1 -0
  53. package/dist/core/adapters/baseAdapter.d.ts +49 -0
  54. package/dist/core/adapters/baseAdapter.d.ts.map +1 -0
  55. package/dist/core/adapters/baseAdapter.js +28 -0
  56. package/dist/core/adapters/baseAdapter.js.map +1 -0
  57. package/dist/core/adapters/community/fastapiAdapter.d.ts +7 -0
  58. package/dist/core/adapters/community/fastapiAdapter.d.ts.map +1 -0
  59. package/dist/core/adapters/community/fastapiAdapter.js +40 -0
  60. package/dist/core/adapters/community/fastapiAdapter.js.map +1 -0
  61. package/dist/core/adapters/community/index.d.ts +11 -0
  62. package/dist/core/adapters/community/index.d.ts.map +1 -0
  63. package/dist/core/adapters/community/index.js +11 -0
  64. package/dist/core/adapters/community/index.js.map +1 -0
  65. package/dist/core/adapters/community/laravelAdapter.d.ts +7 -0
  66. package/dist/core/adapters/community/laravelAdapter.d.ts.map +1 -0
  67. package/dist/core/adapters/community/laravelAdapter.js +47 -0
  68. package/dist/core/adapters/community/laravelAdapter.js.map +1 -0
  69. package/dist/core/adapters/community/nestjsAdapter.d.ts +7 -0
  70. package/dist/core/adapters/community/nestjsAdapter.d.ts.map +1 -0
  71. package/dist/core/adapters/community/nestjsAdapter.js +48 -0
  72. package/dist/core/adapters/community/nestjsAdapter.js.map +1 -0
  73. package/dist/core/adapters/community/phoenixAdapter.d.ts +7 -0
  74. package/dist/core/adapters/community/phoenixAdapter.d.ts.map +1 -0
  75. package/dist/core/adapters/community/phoenixAdapter.js +45 -0
  76. package/dist/core/adapters/community/phoenixAdapter.js.map +1 -0
  77. package/dist/core/adapters/community/springBootAdapter.d.ts +7 -0
  78. package/dist/core/adapters/community/springBootAdapter.d.ts.map +1 -0
  79. package/dist/core/adapters/community/springBootAdapter.js +44 -0
  80. package/dist/core/adapters/community/springBootAdapter.js.map +1 -0
  81. package/dist/core/adapters/dotnetAdapter.d.ts +20 -0
  82. package/dist/core/adapters/dotnetAdapter.d.ts.map +1 -0
  83. package/dist/core/adapters/dotnetAdapter.js +86 -0
  84. package/dist/core/adapters/dotnetAdapter.js.map +1 -0
  85. package/dist/core/adapters/index.d.ts +18 -0
  86. package/dist/core/adapters/index.d.ts.map +1 -0
  87. package/dist/core/adapters/index.js +19 -0
  88. package/dist/core/adapters/index.js.map +1 -0
  89. package/dist/core/adapters/javascriptAdapter.d.ts +11 -0
  90. package/dist/core/adapters/javascriptAdapter.d.ts.map +1 -0
  91. package/dist/core/adapters/javascriptAdapter.js +47 -0
  92. package/dist/core/adapters/javascriptAdapter.js.map +1 -0
  93. package/dist/core/adapters/pythonAdapter.d.ts +20 -0
  94. package/dist/core/adapters/pythonAdapter.d.ts.map +1 -0
  95. package/dist/core/adapters/pythonAdapter.js +99 -0
  96. package/dist/core/adapters/pythonAdapter.js.map +1 -0
  97. package/dist/core/adapters/railsAdapter.d.ts +10 -0
  98. package/dist/core/adapters/railsAdapter.d.ts.map +1 -0
  99. package/dist/core/adapters/railsAdapter.js +52 -0
  100. package/dist/core/adapters/railsAdapter.js.map +1 -0
  101. package/dist/core/adapters/salesforceAdapter.d.ts +16 -0
  102. package/dist/core/adapters/salesforceAdapter.d.ts.map +1 -0
  103. package/dist/core/adapters/salesforceAdapter.js +64 -0
  104. package/dist/core/adapters/salesforceAdapter.js.map +1 -0
  105. package/dist/core/adapters/sdk.d.ts +83 -0
  106. package/dist/core/adapters/sdk.d.ts.map +1 -0
  107. package/dist/core/adapters/sdk.js +114 -0
  108. package/dist/core/adapters/sdk.js.map +1 -0
  109. package/dist/core/ccp.d.ts +37 -0
  110. package/dist/core/ccp.d.ts.map +1 -0
  111. package/dist/core/ccp.js +184 -0
  112. package/dist/core/ccp.js.map +1 -0
  113. package/dist/core/gitAnalyzer.d.ts +74 -0
  114. package/dist/core/gitAnalyzer.d.ts.map +1 -0
  115. package/dist/core/gitAnalyzer.js +298 -0
  116. package/dist/core/gitAnalyzer.js.map +1 -0
  117. package/dist/core/incrementalAnalyzer.d.ts +28 -0
  118. package/dist/core/incrementalAnalyzer.d.ts.map +1 -0
  119. package/dist/core/incrementalAnalyzer.js +343 -0
  120. package/dist/core/incrementalAnalyzer.js.map +1 -0
  121. package/dist/core/knowledgeGraphBuilder.d.ts +31 -0
  122. package/dist/core/knowledgeGraphBuilder.d.ts.map +1 -0
  123. package/dist/core/knowledgeGraphBuilder.js +197 -0
  124. package/dist/core/knowledgeGraphBuilder.js.map +1 -0
  125. package/dist/core/lazyAnalyzer.d.ts +57 -0
  126. package/dist/core/lazyAnalyzer.d.ts.map +1 -0
  127. package/dist/core/lazyAnalyzer.js +204 -0
  128. package/dist/core/lazyAnalyzer.js.map +1 -0
  129. package/dist/core/schema.d.ts +57 -0
  130. package/dist/core/schema.d.ts.map +1 -0
  131. package/dist/core/schema.js +131 -0
  132. package/dist/core/schema.js.map +1 -0
  133. package/dist/core/semanticContexts.d.ts +40 -0
  134. package/dist/core/semanticContexts.d.ts.map +1 -0
  135. package/dist/core/semanticContexts.js +454 -0
  136. package/dist/core/semanticContexts.js.map +1 -0
  137. package/docs/es/guide/adapters.md +143 -0
  138. package/docs/es/guide/ai-repository-schema.md +119 -0
  139. package/docs/es/guide/features.md +67 -0
  140. package/docs/es/guide/flows.md +134 -0
  141. package/docs/es/guide/git-intelligence.md +170 -0
  142. package/docs/es/guide/incremental-analysis.md +131 -0
  143. package/docs/es/guide/knowledge-graph.md +135 -0
  144. package/docs/es/guide/lazy-indexing.md +144 -0
  145. package/docs/es/guide/performance.md +125 -0
  146. package/docs/guide/adapters.md +225 -0
  147. package/docs/guide/ai-repository-schema.md +119 -0
  148. package/docs/guide/architecture.md +69 -1
  149. package/docs/guide/flows.md +134 -0
  150. package/docs/guide/git-intelligence.md +170 -0
  151. package/docs/guide/incremental-analysis.md +131 -0
  152. package/docs/guide/knowledge-graph.md +135 -0
  153. package/docs/guide/lazy-indexing.md +144 -0
  154. package/docs/guide/performance.md +125 -0
  155. package/package.json +5 -2
  156. package/src/analyzers/androidResources.ts +113 -0
  157. package/src/analyzers/dependencies.ts +41 -0
  158. package/src/analyzers/entrypoints.ts +80 -1
  159. package/src/analyzers/gradleModules.ts +100 -0
  160. package/src/analyzers/techStack.ts +56 -0
  161. package/src/commands/ai-first.ts +342 -1
  162. package/src/core/adapters/adapterRegistry.ts +187 -0
  163. package/src/core/adapters/baseAdapter.ts +82 -0
  164. package/src/core/adapters/community/fastapiAdapter.ts +50 -0
  165. package/src/core/adapters/community/index.ts +11 -0
  166. package/src/core/adapters/community/laravelAdapter.ts +56 -0
  167. package/src/core/adapters/community/nestjsAdapter.ts +57 -0
  168. package/src/core/adapters/community/phoenixAdapter.ts +54 -0
  169. package/src/core/adapters/community/springBootAdapter.ts +53 -0
  170. package/src/core/adapters/dotnetAdapter.ts +104 -0
  171. package/src/core/adapters/index.ts +24 -0
  172. package/src/core/adapters/javascriptAdapter.ts +56 -0
  173. package/src/core/adapters/pythonAdapter.ts +118 -0
  174. package/src/core/adapters/railsAdapter.ts +65 -0
  175. package/src/core/adapters/salesforceAdapter.ts +76 -0
  176. package/src/core/adapters/sdk.ts +172 -0
  177. package/src/core/ccp.ts +240 -0
  178. package/src/core/gitAnalyzer.ts +391 -0
  179. package/src/core/incrementalAnalyzer.ts +382 -0
  180. package/src/core/knowledgeGraphBuilder.ts +181 -0
  181. package/src/core/lazyAnalyzer.ts +261 -0
  182. package/src/core/schema.ts +157 -0
  183. package/src/core/semanticContexts.ts +575 -0
  184. package/tests/adapters.test.ts +159 -0
  185. package/tests/gitAnalyzer.test.ts +133 -0
  186. package/tests/incrementalAnalyzer.test.ts +83 -0
  187. package/tests/knowledgeGraph.test.ts +146 -0
  188. package/tests/lazyAnalyzer.test.ts +230 -0
  189. package/tests/schema.test.ts +203 -0
  190. package/tests/semanticContexts.test.ts +435 -0
  191. package/ai/context/analyzers.Symbol.json +0 -19
  192. package/ai/context/analyzers.extractSymbols.json +0 -19
@@ -0,0 +1,86 @@
1
+ /**
2
+ * .NET Adapter
3
+ *
4
+ * Supports:
5
+ * - ASP.NET Core
6
+ * - .NET Framework
7
+ * - Blazor
8
+ * - Xamarin
9
+ */
10
+ export const dotnetAdapter = {
11
+ name: 'dotnet',
12
+ displayName: '.NET',
13
+ detectionSignals: [
14
+ { type: 'file', pattern: '*.csproj' },
15
+ { type: 'file', pattern: '*.sln' },
16
+ { type: 'file', pattern: '*.fsproj' },
17
+ { type: 'file', pattern: 'Program.cs' },
18
+ { type: 'file', pattern: 'Startup.cs' },
19
+ { type: 'file', pattern: 'appsettings.json' }
20
+ ],
21
+ featureRoots: ['src', 'app', 'Services', 'Controllers', 'Models', 'ViewModels', 'Components'],
22
+ ignoredFolders: [
23
+ 'bin', 'obj', 'Properties', 'wwwroot', 'Test', 'Tests',
24
+ 'node_modules', '.git', 'packages', '.vs', '.idea'
25
+ ],
26
+ entrypointPatterns: [
27
+ 'Controller', 'ApiController', 'Endpoint', 'Handler',
28
+ 'Service', 'Command', 'Query', 'Middleware', 'Component'
29
+ ],
30
+ layerRules: [
31
+ { name: 'api', priority: 1, patterns: ['Controller', 'ApiController', 'Endpoint', 'Handler', 'Middleware', 'Filter'] },
32
+ { name: 'service', priority: 2, patterns: ['Service', 'Services', 'Command', 'Query', 'Handler', 'Mediator'] },
33
+ { name: 'data', priority: 3, patterns: ['Repository', 'Repo', 'DbContext', 'Data', 'Entity'] },
34
+ { name: 'domain', priority: 4, patterns: ['Model', 'Entity', 'Domain', 'ValueObject', 'Aggregate'] },
35
+ { name: 'util', priority: 5, patterns: ['Helper', 'Util', 'Common', 'Extensions'] }
36
+ ],
37
+ supportedExtensions: ['.cs', '.fs', '.vb', '.razor', '.cshtml', '.xaml'],
38
+ flowEntrypointPatterns: ['Controller', 'ApiController', 'Endpoint', 'Handler', 'Command', 'Page'],
39
+ flowExcludePatterns: [
40
+ 'Repository', 'Service', 'Model', 'Entity', 'Dto',
41
+ 'ViewModel', 'Mapping', 'Configuration', 'Middleware',
42
+ 'Test', 'Tests', 'Helper', 'Util', 'Extensions'
43
+ ]
44
+ };
45
+ /**
46
+ * ASP.NET Core specific
47
+ */
48
+ export const aspnetCoreAdapter = {
49
+ ...dotnetAdapter,
50
+ name: 'aspnetcore',
51
+ displayName: 'ASP.NET Core',
52
+ detectionSignals: [
53
+ { type: 'file', pattern: '*.csproj' },
54
+ { type: 'content', pattern: 'Microsoft.AspNetCore', contentPattern: '' },
55
+ { type: 'file', pattern: 'Program.cs' },
56
+ { type: 'file', pattern: 'Startup.cs' }
57
+ ],
58
+ featureRoots: ['Controllers', 'Services', 'Models', 'Views', 'Pages', 'Components', 'Areas'],
59
+ entrypointPatterns: [
60
+ 'Controller', 'ApiController', 'Endpoint', 'MinimalApi',
61
+ 'Middleware', 'Filter', 'Service'
62
+ ]
63
+ };
64
+ /**
65
+ * Blazor specific
66
+ */
67
+ export const blazorAdapter = {
68
+ ...dotnetAdapter,
69
+ name: 'blazor',
70
+ displayName: 'Blazor',
71
+ detectionSignals: [
72
+ { type: 'file', pattern: '*.csproj' },
73
+ { type: 'file', pattern: '_Imports.razor' },
74
+ { type: 'content', pattern: '@page', contentPattern: '' }
75
+ ],
76
+ featureRoots: ['Components', 'Pages', 'Shared', 'Services'],
77
+ entrypointPatterns: ['Component', 'Page', 'Layout', 'Service', 'Controller'],
78
+ layerRules: [
79
+ { name: 'ui', priority: 1, patterns: ['Component', 'Page', 'Layout', 'Razor'] },
80
+ { name: 'service', priority: 2, patterns: ['Service', 'Services', 'State', 'Store'] },
81
+ { name: 'data', priority: 3, patterns: ['Repository', 'DbContext', 'Model', 'Entity'] },
82
+ { name: 'domain', priority: 4, patterns: ['Entity', 'Domain', 'Model'] },
83
+ { name: 'util', priority: 5, patterns: ['Helper', 'Util', 'Extensions'] }
84
+ ]
85
+ };
86
+ //# sourceMappingURL=dotnetAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnetAdapter.js","sourceRoot":"","sources":["../../../src/core/adapters/dotnetAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Analysis Adapters
3
+ *
4
+ * Language and framework-specific adapters for customizing
5
+ * feature and flow detection.
6
+ */
7
+ export { AnalysisAdapter, DetectionSignal, LayerRule, DEFAULT_ADAPTER } from './baseAdapter.js';
8
+ export { javascriptAdapter } from './javascriptAdapter.js';
9
+ export { pythonAdapter, djangoAdapter, flaskAdapter } from './pythonAdapter.js';
10
+ export { railsAdapter, rubyAdapter } from './railsAdapter.js';
11
+ export { salesforceAdapter, sfdxAdapter } from './salesforceAdapter.js';
12
+ export { dotnetAdapter, aspnetCoreAdapter, blazorAdapter } from './dotnetAdapter.js';
13
+ export { createAdapter, validateAdapter, fileSignal, directorySignal, contentSignal, layerRule } from './sdk.js';
14
+ export type { AdapterConfig } from './sdk.js';
15
+ export { laravelAdapter, nestjsAdapter, springBootAdapter, phoenixAdapter, fastapiAdapter } from './community/index.js';
16
+ export { detectAdapter, detectAllAdapters, getAdapter, listAdapters, ADAPTERS } from './adapterRegistry.js';
17
+ export type { AdapterDetectionResult } from './adapterRegistry.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjH,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGxH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5G,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Analysis Adapters
3
+ *
4
+ * Language and framework-specific adapters for customizing
5
+ * feature and flow detection.
6
+ */
7
+ export { DEFAULT_ADAPTER } from './baseAdapter.js';
8
+ export { javascriptAdapter } from './javascriptAdapter.js';
9
+ export { pythonAdapter, djangoAdapter, flaskAdapter } from './pythonAdapter.js';
10
+ export { railsAdapter, rubyAdapter } from './railsAdapter.js';
11
+ export { salesforceAdapter, sfdxAdapter } from './salesforceAdapter.js';
12
+ export { dotnetAdapter, aspnetCoreAdapter, blazorAdapter } from './dotnetAdapter.js';
13
+ // SDK exports
14
+ export { createAdapter, validateAdapter, fileSignal, directorySignal, contentSignal, layerRule } from './sdk.js';
15
+ // Community adapters
16
+ export { laravelAdapter, nestjsAdapter, springBootAdapter, phoenixAdapter, fastapiAdapter } from './community/index.js';
17
+ // Registry
18
+ export { detectAdapter, detectAllAdapters, getAdapter, listAdapters, ADAPTERS } from './adapterRegistry.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA+C,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErF,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjH,qBAAqB;AACrB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAExH,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { AnalysisAdapter } from './baseAdapter.js';
2
+ /**
3
+ * JavaScript/TypeScript Adapter
4
+ *
5
+ * Supports:
6
+ * - Node.js projects
7
+ * - React/Vue/Angular apps
8
+ * - TypeScript projects
9
+ */
10
+ export declare const javascriptAdapter: AnalysisAdapter;
11
+ //# sourceMappingURL=javascriptAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascriptAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/javascriptAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA8B,MAAM,kBAAkB,CAAC;AAE/E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA6C/B,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * JavaScript/TypeScript Adapter
3
+ *
4
+ * Supports:
5
+ * - Node.js projects
6
+ * - React/Vue/Angular apps
7
+ * - TypeScript projects
8
+ */
9
+ export const javascriptAdapter = {
10
+ name: 'javascript',
11
+ displayName: 'JavaScript / TypeScript',
12
+ detectionSignals: [
13
+ { type: 'file', pattern: 'package.json' },
14
+ { type: 'file', pattern: 'tsconfig.json' },
15
+ { type: 'file', pattern: 'jest.config.js' },
16
+ { type: 'file', pattern: 'vite.config.ts' },
17
+ { type: 'file', pattern: 'webpack.config.js' },
18
+ { type: 'file', pattern: 'next.config.js' },
19
+ { type: 'file', pattern: 'angular.json' }
20
+ ],
21
+ featureRoots: ['src', 'app', 'packages', 'services', 'modules', 'features', 'pages', 'components'],
22
+ ignoredFolders: [
23
+ 'utils', 'helpers', 'types', 'interfaces', 'constants', 'config',
24
+ 'dto', 'models', 'common', 'shared', 'node_modules', '.git',
25
+ 'dist', 'build', 'coverage', '__tests__', 'test', 'tests',
26
+ '.next', '.nuxt', '.vite'
27
+ ],
28
+ entrypointPatterns: [
29
+ 'controller', 'route', 'router', 'handler', 'command',
30
+ 'service', 'middleware', 'endpoint', 'api'
31
+ ],
32
+ layerRules: [
33
+ { name: 'api', priority: 1, patterns: ['controller', 'handler', 'route', 'router', 'api', 'endpoint', 'middleware'] },
34
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'interactor', 'business'] },
35
+ { name: 'data', priority: 3, patterns: ['repository', 'repo', 'dal', 'dao', 'data', 'persistence', 'db'] },
36
+ { name: 'domain', priority: 4, patterns: ['model', 'entity', 'schema', 'domain', 'type'] },
37
+ { name: 'util', priority: 5, patterns: ['util', 'helper', 'lib', 'common', 'static'] }
38
+ ],
39
+ supportedExtensions: ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.vue', '.svelte'],
40
+ flowEntrypointPatterns: ['controller', 'route', 'handler', 'command', 'router', 'api'],
41
+ flowExcludePatterns: [
42
+ 'repository', 'repo', 'utils', 'helper', 'model', 'entity',
43
+ 'dto', 'type', 'interface', 'constant', 'config', 'schema',
44
+ 'middleware', 'util', 'lib', 'test', 'spec'
45
+ ]
46
+ };
47
+ //# sourceMappingURL=javascriptAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascriptAdapter.js","sourceRoot":"","sources":["../../../src/core/adapters/javascriptAdapter.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,yBAAyB;IAEtC,gBAAgB,EAAE;QAChB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE;QAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;QAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;KAC1C;IAED,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC;IAElG,cAAc,EAAE;QACd,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ;QAChE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM;QAC3D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO;QACzD,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B;IAED,kBAAkB,EAAE;QAClB,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;QACrD,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK;KAC3C;IAED,UAAU,EAAE;QACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;QACrH,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE;QACxG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;QAC1G,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;QAC1F,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;KACvF;IAED,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAEtF,sBAAsB,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;IAEtF,mBAAmB,EAAE;QACnB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC1D,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;QAC1D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;KAC5C;CACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { AnalysisAdapter } from './baseAdapter.js';
2
+ /**
3
+ * Python Adapter
4
+ *
5
+ * Supports:
6
+ * - Django projects
7
+ * - Flask projects
8
+ * - FastAPI projects
9
+ * - Generic Python packages
10
+ */
11
+ export declare const pythonAdapter: AnalysisAdapter;
12
+ /**
13
+ * Django-specific adapter
14
+ */
15
+ export declare const djangoAdapter: AnalysisAdapter;
16
+ /**
17
+ * Flask/FastAPI adapter
18
+ */
19
+ export declare const flaskAdapter: AnalysisAdapter;
20
+ //# sourceMappingURL=pythonAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/pythonAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,eA4C3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,eA0B3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,eA0B1B,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Python Adapter
3
+ *
4
+ * Supports:
5
+ * - Django projects
6
+ * - Flask projects
7
+ * - FastAPI projects
8
+ * - Generic Python packages
9
+ */
10
+ export const pythonAdapter = {
11
+ name: 'python',
12
+ displayName: 'Python',
13
+ detectionSignals: [
14
+ { type: 'file', pattern: 'pyproject.toml' },
15
+ { type: 'file', pattern: 'requirements.txt' },
16
+ { type: 'file', pattern: 'Pipfile' },
17
+ { type: 'file', pattern: 'setup.py' },
18
+ { type: 'file', pattern: 'setup.cfg' },
19
+ { type: 'directory', pattern: 'venv' },
20
+ { type: 'directory', pattern: '.venv' },
21
+ { type: 'file', pattern: 'manage.py' }
22
+ ],
23
+ featureRoots: ['src', 'app', 'apps', 'modules', 'services', 'api', 'core'],
24
+ ignoredFolders: [
25
+ 'utils', 'helpers', 'types', 'constants', 'config',
26
+ 'migrations', '__pycache__', '.git', 'venv', '.venv',
27
+ 'tests', 'test', '.pytest_cache', 'docs', 'scripts'
28
+ ],
29
+ entrypointPatterns: [
30
+ 'view', 'views', 'controller', 'endpoint', 'api',
31
+ 'service', 'task', 'celery', 'command', 'management'
32
+ ],
33
+ layerRules: [
34
+ { name: 'api', priority: 1, patterns: ['view', 'views', 'controller', 'endpoint', 'api', 'route', 'resource'] },
35
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'interactor', 'business', 'logic'] },
36
+ { name: 'data', priority: 3, patterns: ['repository', 'repo', 'model', 'dao', 'data', 'persistence', 'db'] },
37
+ { name: 'domain', priority: 4, patterns: ['entity', 'schema', 'domain', 'core'] },
38
+ { name: 'util', priority: 5, patterns: ['util', 'helper', 'lib', 'common'] }
39
+ ],
40
+ supportedExtensions: ['.py'],
41
+ flowEntrypointPatterns: ['view', 'controller', 'endpoint', 'api', 'command', 'task'],
42
+ flowExcludePatterns: [
43
+ 'model', 'entity', 'utils', 'helper', 'migration',
44
+ 'test', 'tests', '__pycache__', 'conftest', 'schema'
45
+ ]
46
+ };
47
+ /**
48
+ * Django-specific adapter
49
+ */
50
+ export const djangoAdapter = {
51
+ ...pythonAdapter,
52
+ name: 'django',
53
+ displayName: 'Django',
54
+ detectionSignals: [
55
+ { type: 'file', pattern: 'manage.py' },
56
+ { type: 'file', pattern: 'settings.py' },
57
+ { type: 'file', pattern: 'wsgi.py' },
58
+ { type: 'content', pattern: 'DJANGO_SETTINGS_MODULE', contentPattern: '' }
59
+ ],
60
+ featureRoots: ['apps', 'modules', 'api', 'core'],
61
+ entrypointPatterns: [
62
+ 'view', 'views', 'api_view', 'controller', 'endpoint',
63
+ 'serializer', 'service', 'task', 'management'
64
+ ],
65
+ layerRules: [
66
+ { name: 'api', priority: 1, patterns: ['view', 'views', 'api_view', 'controller', 'endpoint', 'resource', 'serializer'] },
67
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'business', 'logic'] },
68
+ { name: 'data', priority: 3, patterns: ['model', 'models', 'repository', 'dao', 'manager'] },
69
+ { name: 'domain', priority: 4, patterns: ['entity', 'schema', 'domain', 'signals'] },
70
+ { name: 'util', priority: 5, patterns: ['util', 'helpers', 'lib', 'common', 'middleware'] }
71
+ ]
72
+ };
73
+ /**
74
+ * Flask/FastAPI adapter
75
+ */
76
+ export const flaskAdapter = {
77
+ ...pythonAdapter,
78
+ name: 'flask',
79
+ displayName: 'Flask / FastAPI',
80
+ detectionSignals: [
81
+ { type: 'file', pattern: 'app.py' },
82
+ { type: 'file', pattern: 'main.py' },
83
+ { type: 'content', pattern: 'from flask import', contentPattern: '' },
84
+ { type: 'content', pattern: 'from fastapi import', contentPattern: '' }
85
+ ],
86
+ featureRoots: ['src', 'app', 'api', 'routes', 'services', 'models'],
87
+ entrypointPatterns: [
88
+ 'route', 'routes', 'endpoint', 'api', 'view',
89
+ 'service', 'command', 'blueprint'
90
+ ],
91
+ layerRules: [
92
+ { name: 'api', priority: 1, patterns: ['route', 'routes', 'endpoint', 'api', 'blueprint', 'view'] },
93
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'business'] },
94
+ { name: 'data', priority: 3, patterns: ['model', 'models', 'repository', 'dao'] },
95
+ { name: 'domain', priority: 4, patterns: ['entity', 'schema', 'domain'] },
96
+ { name: 'util', priority: 5, patterns: ['util', 'helpers', 'lib'] }
97
+ ]
98
+ };
99
+ //# sourceMappingURL=pythonAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonAdapter.js","sourceRoot":"","sources":["../../../src/core/adapters/pythonAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { AnalysisAdapter } from './baseAdapter.js';
2
+ /**
3
+ * Ruby on Rails Adapter
4
+ */
5
+ export declare const railsAdapter: AnalysisAdapter;
6
+ /**
7
+ * Ruby Gem adapter
8
+ */
9
+ export declare const rubyAdapter: AnalysisAdapter;
10
+ //# sourceMappingURL=railsAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"railsAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/railsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,eAyC1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,eAazB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Ruby on Rails Adapter
3
+ */
4
+ export const railsAdapter = {
5
+ name: 'rails',
6
+ displayName: 'Ruby on Rails',
7
+ detectionSignals: [
8
+ { type: 'file', pattern: 'Gemfile' },
9
+ { type: 'file', pattern: 'config.ru' },
10
+ { type: 'file', pattern: 'Rakefile' },
11
+ { type: 'directory', pattern: 'app/controllers' },
12
+ { type: 'directory', pattern: 'app/models' }
13
+ ],
14
+ featureRoots: ['app', 'modules', 'lib', 'engines'],
15
+ ignoredFolders: [
16
+ 'assets', 'javascripts', 'stylesheets', 'images', 'fonts',
17
+ 'helpers', 'views', 'mailers', 'jobs', 'channels',
18
+ 'node_modules', '.git', 'log', 'tmp', 'coverage', 'spec', 'test'
19
+ ],
20
+ entrypointPatterns: [
21
+ 'controller', 'endpoint', 'api', 'service', 'job',
22
+ 'channel', 'mailer', 'serializer'
23
+ ],
24
+ layerRules: [
25
+ { name: 'api', priority: 1, patterns: ['controller', 'endpoint', 'api', 'channel', 'mailer'] },
26
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'interactor', 'operation'] },
27
+ { name: 'data', priority: 3, patterns: ['model', 'repository', 'record', 'concern'] },
28
+ { name: 'domain', priority: 4, patterns: ['entity', 'domain', 'value_object'] },
29
+ { name: 'util', priority: 5, patterns: ['helper', 'lib', 'concern', 'middleware'] }
30
+ ],
31
+ supportedExtensions: ['.rb', '.erb', '.rake'],
32
+ flowEntrypointPatterns: ['controller', 'endpoint', 'api', 'job', 'channel'],
33
+ flowExcludePatterns: [
34
+ 'model', 'helper', 'view', 'mailer', 'channel',
35
+ 'serializer', 'concern', 'lib', 'config', 'spec', 'test'
36
+ ]
37
+ };
38
+ /**
39
+ * Ruby Gem adapter
40
+ */
41
+ export const rubyAdapter = {
42
+ ...railsAdapter,
43
+ name: 'ruby',
44
+ displayName: 'Ruby',
45
+ detectionSignals: [
46
+ { type: 'file', pattern: '*.gemspec' },
47
+ { type: 'file', pattern: 'Gemfile' }
48
+ ],
49
+ featureRoots: ['lib', 'app'],
50
+ ignoredFolders: ['spec', 'test', 'examples', 'node_modules', '.git']
51
+ };
52
+ //# sourceMappingURL=railsAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"railsAdapter.js","sourceRoot":"","sources":["../../../src/core/adapters/railsAdapter.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,eAAe;IAE5B,gBAAgB,EAAE;QAChB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;QACtC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;QACjD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;KAC7C;IAED,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;IAElD,cAAc,EAAE;QACd,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO;QACzD,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU;QACjD,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;KACjE;IAED,kBAAkB,EAAE;QAClB,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;QACjD,SAAS,EAAE,QAAQ,EAAE,YAAY;KAClC;IAED,UAAU,EAAE;QACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;QAC9F,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;QACzG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;QACrF,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE;QAC/E,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE;KACpF;IAED,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IAE7C,sBAAsB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;IAE3E,mBAAmB,EAAE;QACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;QAC9C,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;KACzD;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,GAAG,YAAY;IACf,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IAEnB,gBAAgB,EAAE;QAChB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;QACtC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KACrC;IAED,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAE5B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC;CACrE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { AnalysisAdapter } from './baseAdapter.js';
2
+ /**
3
+ * Salesforce Adapter
4
+ *
5
+ * Supports:
6
+ * - Salesforce DX projects
7
+ * - Aura components
8
+ * - Lightning Web Components (LWC)
9
+ * - Apex classes
10
+ */
11
+ export declare const salesforceAdapter: AnalysisAdapter;
12
+ /**
13
+ * Salesforce DX specific
14
+ */
15
+ export declare const sfdxAdapter: AnalysisAdapter;
16
+ //# sourceMappingURL=salesforceAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salesforceAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/salesforceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA+C/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,eAYzB,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Salesforce Adapter
3
+ *
4
+ * Supports:
5
+ * - Salesforce DX projects
6
+ * - Aura components
7
+ * - Lightning Web Components (LWC)
8
+ * - Apex classes
9
+ */
10
+ export const salesforceAdapter = {
11
+ name: 'salesforce',
12
+ displayName: 'Salesforce',
13
+ detectionSignals: [
14
+ { type: 'file', pattern: 'sfdx-project.json' },
15
+ { type: 'file', pattern: 'project-scratch-def.json' },
16
+ { type: 'directory', pattern: 'force-app' },
17
+ { type: 'directory', pattern: 'src/classes' },
18
+ { type: 'file', pattern: 'package.xml' }
19
+ ],
20
+ featureRoots: [
21
+ 'force-app/main/default',
22
+ 'src',
23
+ 'src/classes',
24
+ 'src/objects',
25
+ 'src/triggers'
26
+ ],
27
+ ignoredFolders: [
28
+ 'node_modules', '.git', 'dist', 'build', 'coverage',
29
+ 'test', 'tests', 'mdapi', 'deploy', 'package.xml'
30
+ ],
31
+ entrypointPatterns: [
32
+ 'Controller', 'Trigger', 'Batch', 'Queueable', 'Schedulable',
33
+ 'AuraEnabled', 'RestResource', 'FlowAction', 'FlowConnector',
34
+ 'LWC', 'Component', 'App', 'Event', 'Interface'
35
+ ],
36
+ layerRules: [
37
+ { name: 'api', priority: 1, patterns: ['Controller', 'Trigger', 'RestResource', 'AuraEnabled', 'FlowAction'] },
38
+ { name: 'service', priority: 2, patterns: ['Service', 'Selector', 'Domain', 'UnitOfWork'] },
39
+ { name: 'data', priority: 3, patterns: ['Repository', 'DAO', 'Selector', 'Model'] },
40
+ { name: 'domain', priority: 4, patterns: ['Entity', 'SObject', 'Schema', 'Object'] },
41
+ { name: 'util', priority: 5, patterns: ['Util', 'Helper', 'Constants', 'Exception'] }
42
+ ],
43
+ supportedExtensions: ['.cls', '.trigger', '.apex', '.js', '.html', '.css', '.xml', '.meta.xml'],
44
+ flowEntrypointPatterns: ['Controller', 'Trigger', 'Batch', 'Queueable', 'RestResource', 'AuraEnabled', 'LWC'],
45
+ flowExcludePatterns: [
46
+ 'Test', 'TestSuite', 'Settings', 'PermissionSet', 'Profile',
47
+ 'SharingRule', 'ValidationRule', 'Workflow', 'Flow', 'ProcessBuilder'
48
+ ]
49
+ };
50
+ /**
51
+ * Salesforce DX specific
52
+ */
53
+ export const sfdxAdapter = {
54
+ ...salesforceAdapter,
55
+ name: 'sfdx',
56
+ displayName: 'Salesforce DX',
57
+ detectionSignals: [
58
+ { type: 'file', pattern: 'sfdx-project.json' },
59
+ { type: 'file', pattern: 'project-scratch-def.json' },
60
+ { type: 'file', pattern: '.forceignore' }
61
+ ],
62
+ featureRoots: ['force-app', 'src', 'unpackaged', 'mdapi']
63
+ };
64
+ //# sourceMappingURL=salesforceAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salesforceAdapter.js","sourceRoot":"","sources":["../../../src/core/adapters/salesforceAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Adapter SDK - Create custom adapters easily
3
+ *
4
+ * This module provides a developer-friendly API for creating
5
+ * ecosystem adapters for AI-First.
6
+ */
7
+ import { AnalysisAdapter, DetectionSignal, LayerRule } from './baseAdapter.js';
8
+ /**
9
+ * Configuration for creating a new adapter
10
+ */
11
+ export interface AdapterConfig {
12
+ /** Unique adapter name */
13
+ name: string;
14
+ /** Human-readable display name */
15
+ displayName: string;
16
+ /** Detection signals - what files/directories indicate this adapter */
17
+ detectionSignals?: DetectionSignal[];
18
+ /** Feature root directories */
19
+ featureRoots?: string[];
20
+ /** Folders to ignore */
21
+ ignoredFolders?: string[];
22
+ /** Entrypoint patterns */
23
+ entrypointPatterns?: string[];
24
+ /** Layer rules for flow detection */
25
+ layerRules?: LayerRule[];
26
+ /** Supported file extensions */
27
+ supportedExtensions?: string[];
28
+ /** Flow entrypoint patterns */
29
+ flowEntrypointPatterns?: string[];
30
+ /** Patterns to exclude from flows */
31
+ flowExcludePatterns?: string[];
32
+ }
33
+ /**
34
+ * Default layer rules for common architectures
35
+ */
36
+ export declare const DEFAULT_LAYER_RULES: LayerRule[];
37
+ /**
38
+ * Default ignored folders
39
+ */
40
+ export declare const DEFAULT_IGNORED_FOLDERS: string[];
41
+ /**
42
+ * Create a new adapter with sensible defaults
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import { createAdapter } from './adapters/sdk.js';
47
+ *
48
+ * export const myAdapter = createAdapter('laravel', {
49
+ * displayName: 'Laravel',
50
+ * detectionSignals: [
51
+ * { type: 'file', pattern: 'composer.json' },
52
+ * { type: 'file', pattern: 'artisan' }
53
+ * ],
54
+ * featureRoots: ['app/Http', 'app/Services', 'app/Models'],
55
+ * entrypointPatterns: ['Controller', 'Request', 'Command']
56
+ * });
57
+ * ```
58
+ */
59
+ export declare function createAdapter(config: AdapterConfig): AnalysisAdapter;
60
+ /**
61
+ * Create a file-based detection signal
62
+ */
63
+ export declare function fileSignal(pattern: string): DetectionSignal;
64
+ /**
65
+ * Create a directory-based detection signal
66
+ */
67
+ export declare function directorySignal(pattern: string): DetectionSignal;
68
+ /**
69
+ * Create a content-based detection signal
70
+ */
71
+ export declare function contentSignal(pattern: string, contentPattern?: string): DetectionSignal;
72
+ /**
73
+ * Create a layer rule
74
+ */
75
+ export declare function layerRule(name: string, priority: number, patterns: string[]): LayerRule;
76
+ /**
77
+ * Validate an adapter configuration
78
+ */
79
+ export declare function validateAdapter(adapter: AnalysisAdapter): {
80
+ valid: boolean;
81
+ errors: string[];
82
+ };
83
+ //# sourceMappingURL=sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,qCAAqC;IACrC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAEzB,gCAAgC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAElC,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAM1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAKnC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAuBpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CAEvF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAEvF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAgC9F"}