ai-first-cli 1.2.1 → 1.2.3

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 (45) hide show
  1. package/ANALISIS_COMPLETO.md +424 -0
  2. package/ANALISIS_MEJORAS.md +327 -0
  3. package/README.es.md +104 -82
  4. package/README.md +116 -113
  5. package/TEST_RESULTS.md +198 -0
  6. package/TEST_RESULTS_COMPARATIVE.md +159 -0
  7. package/TEST_RESULTS_COMPLETE.md +127 -0
  8. package/TEST_RESULTS_COMPREHENSIVE.md +208 -0
  9. package/ai/dependencies.json +15 -0
  10. package/ai/graph/knowledge-graph.json +4 -2
  11. package/ai-context/ai_context.md +7 -7
  12. package/ai-context/ai_rules.md +2 -2
  13. package/ai-context/architecture.md +17 -17
  14. package/ai-context/dependencies.json +34 -2
  15. package/ai-context/entrypoints.md +1 -1
  16. package/ai-context/graph/knowledge-graph.json +14 -199
  17. package/ai-context/index-state.json +386 -22
  18. package/ai-context/modules.json +685 -284
  19. package/ai-context/project.json +1 -1
  20. package/ai-context/repo_map.json +5317 -2019
  21. package/ai-context/repo_map.md +751 -17
  22. package/ai-context/schema.json +1 -1
  23. package/ai-context/summary.md +13 -8
  24. package/ai-context/symbols.json +65349 -5
  25. package/ai-context/tech_stack.md +4 -3
  26. package/dist/analyzers/symbols.js +9 -9
  27. package/dist/analyzers/symbols.js.map +1 -1
  28. package/dist/commands/ai-first.js +17 -0
  29. package/dist/commands/ai-first.js.map +1 -1
  30. package/dist/core/adapters/baseAdapter.d.ts +1 -1
  31. package/dist/core/adapters/baseAdapter.d.ts.map +1 -1
  32. package/dist/core/adapters/baseAdapter.js +50 -12
  33. package/dist/core/adapters/baseAdapter.js.map +1 -1
  34. package/dist/core/semanticContexts.d.ts.map +1 -1
  35. package/dist/core/semanticContexts.js +22 -60
  36. package/dist/core/semanticContexts.js.map +1 -1
  37. package/homebrew/af.rb +18 -0
  38. package/install.sh +188 -0
  39. package/package.json +2 -2
  40. package/src/analyzers/symbols.ts +9 -9
  41. package/src/commands/ai-first.ts +19 -1
  42. package/src/core/adapters/baseAdapter.ts +61 -12
  43. package/src/core/semanticContexts.ts +24 -66
  44. package/tests/knowledgeGraph.test.ts +1 -1
  45. package/tests/phase2-fixes.test.ts +4 -4
@@ -1,68 +1,27 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { ensureDir, writeFile, readJsonFile } from "../utils/fileUtils.js";
4
- // ============================================================
5
- // CONFIGURATION - Feature Detection Rules
6
- // ============================================================
7
- // 1. Candidate roots - scan inside these directories
8
- const CANDIDATE_ROOTS = [
9
- "src", "app", "packages", "services", "modules", "features",
10
- // MVC patterns - for projects without src/ prefix
11
- "controllers", "routes", "handlers", "views", "pages"
12
- ];
13
- // 2. Ignore folders - these are technical, not business features
14
- const IGNORED_FOLDERS = new Set([
15
- "utils",
16
- "helpers",
17
- "types",
18
- "interfaces",
19
- "constants",
20
- "config",
21
- "dto",
22
- "common",
23
- "shared"
24
- ]);
25
- // 3. Entrypoint patterns - files that indicate a business feature
26
- const ENTRYPOINT_PATTERNS = [
27
- "controller",
28
- "route",
29
- "handler",
30
- "command",
31
- "service"
32
- ];
33
- // 4. Flow-specific patterns
34
- const FLOW_ENTRY_PATTERNS = [
35
- "controller", "route", "handler", "command",
36
- // Frontend patterns
37
- "page", "screen", "view", "component"
38
- ];
39
- // 5. Flow exclusion patterns
40
- const FLOW_EXCLUDE = new Set([
41
- "repository", "repo", "utils", "helper", "model", "entity",
42
- "dto", "type", "interface", "constant", "config"
43
- ]);
44
- // 6. Layer detection
45
- const LAYER_PATTERNS = {
46
- api: ["controller", "handler", "route", "router", "api", "endpoint"],
47
- service: ["service", "services", "usecase", "interactor"],
48
- data: ["repository", "repo", "dal", "dao", "data", "persistence"],
49
- domain: ["model", "entity", "schema", "domain"],
50
- util: ["util", "helper", "lib", "common"]
51
- };
52
- const LAYER_PRIORITY = {
53
- api: 1, controller: 1, handler: 1, route: 1, router: 1,
54
- service: 2, usecase: 2, interactor: 2,
55
- data: 3, repository: 3, repo: 3, dal: 3, dao: 3, persistence: 3,
56
- model: 4, entity: 4, domain: 4,
57
- };
4
+ import { DEFAULT_ADAPTER } from "./adapters/baseAdapter.js";
5
+ // Use DEFAULT_ADAPTER which has universal patterns for ALL languages/frameworks
6
+ const ADAPTER = DEFAULT_ADAPTER;
7
+ const CANDIDATE_ROOTS = ADAPTER.featureRoots;
8
+ const IGNORED_FOLDERS = new Set(ADAPTER.ignoredFolders);
9
+ const ENTRYPOINT_PATTERNS = ADAPTER.entrypointPatterns;
10
+ const FLOW_ENTRY_PATTERNS = ADAPTER.flowEntrypointPatterns;
11
+ const FLOW_EXCLUDE = new Set(ADAPTER.flowExcludePatterns);
12
+ const LAYER_PATTERNS = {};
13
+ for (const layer of ADAPTER.layerRules) {
14
+ LAYER_PATTERNS[layer.name] = layer.patterns;
15
+ }
16
+ const LAYER_PRIORITY = {};
17
+ for (const layer of ADAPTER.layerRules) {
18
+ for (const pattern of layer.patterns) {
19
+ LAYER_PRIORITY[pattern] = layer.priority;
20
+ }
21
+ }
58
22
  const MAX_FLOW_DEPTH = 5;
59
23
  const MAX_FLOW_FILES = 30;
60
- // Supported source file extensions
61
- const SOURCE_EXTENSIONS = new Set([
62
- ".ts", ".tsx", ".js", ".jsx", ".py", ".java", ".kt", ".go", ".rs", ".rb", ".php", ".cs", ".vue", ".svelte",
63
- // Salesforce/Apex
64
- ".cls", ".trigger", ".apex", ".object"
65
- ]);
24
+ const SOURCE_EXTENSIONS = new Set(ADAPTER.supportedExtensions);
66
25
  // ============================================================
67
26
  // HELPER FUNCTIONS
68
27
  // ============================================================
@@ -231,6 +190,9 @@ export function generateFeatures(modulesJsonPath, _symbolsJsonPath) {
231
190
  continue;
232
191
  // Extract feature name from path - get the last segment
233
192
  const featureName = mod.path.split("/").pop() || moduleName;
193
+ // Skip ignored folders (utils, helpers, types, etc.)
194
+ if (isIgnoredFolder(featureName))
195
+ continue;
234
196
  features.push({
235
197
  name: featureName,
236
198
  path: mod.path,
@@ -1 +1 @@
1
- {"version":3,"file":"semanticContexts.js","sourceRoot":"","sources":["../../src/core/semanticContexts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semanticContexts.js","sourceRoot":"","sources":["../../src/core/semanticContexts.ts"],"names":[],"mappings":"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"}
package/homebrew/af.rb ADDED
@@ -0,0 +1,18 @@
1
+ class Af < Formula
2
+ desc "AI-First: Generate instant project context for AI coding agents"
3
+ homepage "https://github.com/julianperezpesce/ai-first"
4
+ url "https://registry.npmjs.org/af/-/af-1.2.1.tgz"
5
+ sha256 "TODO: calculate sha256 after first publish"
6
+ license "MIT"
7
+ version "1.2.1"
8
+
9
+ depends_on "node@18"
10
+
11
+ def install
12
+ system "npm", "install", "-g", "af@#{version}"
13
+ end
14
+
15
+ test do
16
+ assert_match "ai-first", shell_output("af --version")
17
+ end
18
+ end
package/install.sh ADDED
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env bash
2
+ # af (AI-First) Installer
3
+ # Usage: curl -fsSL https://raw.githubusercontent.com/julianperezpesce/ai-first/master/install.sh | bash
4
+ set -e
5
+
6
+ AF_VERSION="${AF_VERSION:-1.2.2}"
7
+
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ BLUE='\033[0;34m'
12
+ NC='\033[0m'
13
+
14
+ log_info() { echo -e "${GREEN}✓${NC} $1"; }
15
+ log_warn() { echo -e "${YELLOW}⚠${NC} $1"; }
16
+ log_error() { echo -e "${RED}✗${NC} $1"; }
17
+ log_step() { echo -e "${BLUE}→${NC} $1"; }
18
+
19
+ # Detect npm's global bin directory
20
+ get_npm_global_bin() {
21
+ npm config get prefix --global 2>/dev/null
22
+ }
23
+
24
+ # Try to create symlink in a PATH directory
25
+ setup_symlink() {
26
+ local src="$1"
27
+ local name="af"
28
+
29
+ # Try /usr/local/bin first (standard)
30
+ if [ -w /usr/local/bin ] 2>/dev/null; then
31
+ ln -sf "$src" /usr/local/bin/$name
32
+ echo "/usr/local/bin/$name"
33
+ return 0
34
+ fi
35
+
36
+ # Try ~/.local/bin (Freedesktop standard)
37
+ if [ -w "$HOME/.local/bin" ] 2>/dev/null || mkdir -p "$HOME/.local/bin" 2>/dev/null; then
38
+ ln -sf "$src" "$HOME/.local/bin/$name"
39
+ echo "$HOME/.local/bin/$name"
40
+ return 0
41
+ fi
42
+
43
+ # Try ~/bin (legacy)
44
+ if [ -w "$HOME/bin" ] 2>/dev/null || mkdir -p "$HOME/bin" 2>/dev/null; then
45
+ ln -sf "$src" "$HOME/bin/$name"
46
+ echo "$HOME/bin/$name"
47
+ return 0
48
+ fi
49
+
50
+ return 1
51
+ }
52
+
53
+ # Add directory to PATH in shell RC if not already present
54
+ ensure_path() {
55
+ local dir="$1"
56
+ local rcfile=""
57
+
58
+ # Find the active shell RC file
59
+ if [ -n "$ZSH_VERSION" ]; then
60
+ rcfile="$HOME/.zshrc"
61
+ elif [ -n "$BASH_VERSION" ]; then
62
+ rcfile="$HOME/.bashrc"
63
+ else
64
+ rcfile="$HOME/.profile"
65
+ fi
66
+
67
+ # Check if dir is already in PATH
68
+ if echo "$PATH" | tr ':' '\n' | grep -qx "$dir"; then
69
+ return 0
70
+ fi
71
+
72
+ # Check if already added in RC
73
+ if [ -f "$rcfile" ] && grep -q "$dir" "$rcfile" 2>/dev/null; then
74
+ return 0
75
+ fi
76
+
77
+ # Add to RC
78
+ echo "" >> "$rcfile"
79
+ echo "# Added by ai-first-cli installer" >> "$rcfile"
80
+ echo "export PATH=\"$dir:\$PATH\"" >> "$rcfile"
81
+
82
+ log_warn "Added $dir to PATH in $rcfile"
83
+ log_warn "Run: source $rcfile"
84
+ }
85
+
86
+ check_node() {
87
+ if ! command -v node &> /dev/null; then
88
+ log_error "Node.js not installed. Install Node.js 18+ first: https://nodejs.org"
89
+ exit 1
90
+ fi
91
+ NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
92
+ if [ "$NODE_VERSION" -lt 18 ]; then
93
+ log_error "Node.js 18+ required. Current: $(node -v)"
94
+ exit 1
95
+ fi
96
+ log_info "Node.js $(node -v) detected"
97
+ }
98
+
99
+ install_af() {
100
+ log_step "Installing af@${AF_VERSION}..."
101
+ npm install -g "ai-first-cli@${AF_VERSION}" 2>&1
102
+ log_info "npm install completed"
103
+ }
104
+
105
+ find_af_binary() {
106
+ # Find the af binary in npm's global bin directory
107
+ local prefix
108
+ prefix=$(npm config get prefix --global 2>/dev/null || npm config get prefix 2>/dev/null)
109
+
110
+ if [ -n "$prefix" ] && [ -f "$prefix/bin/af" ]; then
111
+ echo "$prefix/bin/af"
112
+ return 0
113
+ fi
114
+
115
+ if [ -n "$prefix" ] && [ -f "$prefix/bin/ai-first" ]; then
116
+ echo "$prefix/bin/ai-first"
117
+ return 0
118
+ fi
119
+
120
+ # Try common locations
121
+ for dir in "$prefix/bin" "$HOME/.npm-global/bin" "/usr/local/bin" "$HOME/.local/bin" "$HOME/bin"; do
122
+ if [ -f "$dir/af" ]; then
123
+ echo "$dir/af"
124
+ return 0
125
+ fi
126
+ if [ -f "$dir/ai-first" ]; then
127
+ echo "$dir/ai-first"
128
+ return 0
129
+ fi
130
+ done
131
+
132
+ return 1
133
+ }
134
+
135
+ verify_install() {
136
+ log_step "Verifying installation..."
137
+
138
+ local af_path
139
+ af_path=$(find_af_binary) || {
140
+ log_error "Could not find af binary after installation"
141
+ log_error "npm prefix: $(npm config get prefix 2>/dev/null)"
142
+ exit 1
143
+ }
144
+
145
+ log_info "Found af at: $af_path"
146
+
147
+ # Try to create symlink in PATH
148
+ local symlink
149
+ if symlink=$(setup_symlink "$af_path"); then
150
+ log_info "Created symlink: $symlink"
151
+ else
152
+ log_warn "Could not create symlink in standard PATH location"
153
+ # Try adding the binary's directory to PATH
154
+ local bindir
155
+ bindir=$(dirname "$af_path")
156
+ ensure_path "$bindir"
157
+ fi
158
+
159
+ echo ""
160
+ echo " ╔══════════════════════════════════════╗"
161
+ echo " ║ af installation complete! ║"
162
+ echo " ╚══════════════════════════════════════╝"
163
+ echo ""
164
+ echo " Commands:"
165
+ echo " af init Initialize AI context"
166
+ echo " af index Generate SQLite index"
167
+ echo " af doctor Check repository health"
168
+ echo " af --help Show all commands"
169
+ echo ""
170
+ echo " Quick start:"
171
+ echo " af init # Generate context files"
172
+ echo " af doctor # Check repository health"
173
+ echo ""
174
+ }
175
+
176
+ echo ""
177
+ echo " ██╗ ██╗ ██████╗ ████████╗███████╗"
178
+ echo " ██║ ██║██╔═══██╗╚══██╔══╝██╔════╝"
179
+ echo " ███████║██║ ██║ ██║ █████╗ "
180
+ echo " ██╔══██║██║ ██║ ██║ ██╔══╝ "
181
+ echo " ██║ ██║╚██████╔╝ ██║ ███████╗"
182
+ echo " ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝"
183
+ echo " AI-First CLI Installer v${AF_VERSION}"
184
+ echo ""
185
+
186
+ check_node
187
+ install_af
188
+ verify_install
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "ai-first-cli",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "CLI tool that prepares any repository to be used effectively by AI coding agents",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "ai-first": "dist/commands/ai-first.js"
8
+ "af": "dist/commands/ai-first.js"
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
@@ -66,23 +66,23 @@ function parseFileForSymbols(file: FileInfo): Symbol[] {
66
66
  const content = readFile(file.path);
67
67
  const lines = content.split("\n");
68
68
 
69
- if (file.extension === ".ts" || file.extension === ".tsx" || file.extension === ".js" || file.extension === ".jsx") {
69
+ if (file.extension === "ts" || file.extension === "tsx" || file.extension === "js" || file.extension === "jsx") {
70
70
  parseJavaScriptTypeScript(file, content, lines, symbols);
71
- } else if (file.extension === ".py") {
71
+ } else if (file.extension === "py") {
72
72
  parsePython(file, content, lines, symbols);
73
- } else if (file.extension === ".go") {
73
+ } else if (file.extension === "go") {
74
74
  parseGo(file, content, lines, symbols);
75
- } else if (file.extension === ".rs") {
75
+ } else if (file.extension === "rs") {
76
76
  parseRust(file, content, lines, symbols);
77
- } else if (file.extension === ".java") {
77
+ } else if (file.extension === "java") {
78
78
  parseJava(file, content, lines, symbols);
79
- } else if (file.extension === ".cs") {
79
+ } else if (file.extension === "cs") {
80
80
  parseCSharp(file, content, lines, symbols);
81
- } else if (file.extension === ".cls" || file.extension === ".trigger") {
81
+ } else if (file.extension === "cls" || file.extension === "trigger") {
82
82
  parseApex(file, content, lines, symbols);
83
- } else if (file.extension === ".php") {
83
+ } else if (file.extension === "php") {
84
84
  parsePHP(file, content, lines, symbols);
85
- } else if (file.extension === ".rb") {
85
+ } else if (file.extension === "rb") {
86
86
  parseRuby(file, content, lines, symbols);
87
87
  }
88
88
  } catch {}
@@ -357,13 +357,31 @@ function generateUnifiedContext(
357
357
  // CLI entry point
358
358
  // Check if run directly (not imported as module)
359
359
  const isMain = !import.meta.url ||
360
- process.argv[1]?.includes('ai-first') ||
360
+ process.argv[1]?.includes('ai-first') ||
361
+ process.argv[1]?.includes('af') ||
361
362
  process.argv[1] === undefined;
362
363
 
363
364
  if (isMain) {
364
365
  const args = process.argv.slice(2);
365
366
  const options: AIFirstOptions = {};
366
367
 
368
+ if (args.includes('--completions') || args.includes('-c')) {
369
+ const script = `#!/bin/bash
370
+ _af_completions() {
371
+ local cur prev
372
+ COMPREPLY=()
373
+ cur="\${COMP_WORDS[COMP_CWORD]}"
374
+ prev="\${COMP_WORDS[COMP_CWORD-1]}"
375
+ commands="init index watch context summarize query doctor explore map adapters git graph update"
376
+ if [ $COMP_CWORD -eq 1 ]; then
377
+ COMPREPLY=( $(compgen -W "$commands" -- "$cur") )
378
+ fi
379
+ }
380
+ complete -F _af_completions af`;
381
+ console.log(script);
382
+ process.exit(0);
383
+ }
384
+
367
385
  // Handle commands
368
386
  const command = args[0];
369
387
 
@@ -60,23 +60,72 @@ export interface LayerRule {
60
60
  }
61
61
 
62
62
  /**
63
- * Default adapter configuration
63
+ * Universal entrypoint patterns - work across ALL languages and frameworks
64
+ */
65
+ const UNIVERSAL_ENTRYPOINTS = [
66
+ // CLI/Tool entrypoints
67
+ 'main', 'cli', 'cmd', 'command', 'run', 'exec', 'task', 'runner',
68
+
69
+ // App/Plugin/Extension entrypoints
70
+ 'app', 'plugin', 'extension', 'entrypoint', 'bootstrap', 'setup',
71
+ 'initialize', 'init', 'start', 'launch',
72
+
73
+ // Module entrypoints
74
+ 'index', '__main__', 'main',
75
+
76
+ // API/Server entrypoints
77
+ 'api', 'server', 'router', 'gateway',
78
+
79
+ // Web framework entrypoints
80
+ 'controller', 'handler', 'endpoint', 'view', 'page', 'screen', 'component',
81
+ 'route', 'routes', 'resource',
82
+
83
+ // Business logic entrypoints
84
+ 'service', 'usecase', 'interactor', 'action', 'actor',
85
+
86
+ // Async/Distributed entrypoints
87
+ 'job', 'worker', 'consumer', 'producer', 'queue', 'cron', 'schedule',
88
+
89
+ // Framework-agnostic patterns
90
+ 'serializer', 'mutation', 'query', 'resolver',
91
+ 'management', 'admin',
92
+
93
+ // Mobile entrypoints
94
+ 'activity', 'fragment', 'viewcontroller',
95
+
96
+ // Database entrypoints
97
+ 'repository', 'dao', 'mapper',
98
+ ];
99
+
100
+ /**
101
+ * Universal feature roots - directories that typically contain business features
102
+ */
103
+ const UNIVERSAL_FEATURE_ROOTS = [
104
+ 'src', 'app', 'lib', 'source', 'sources', 'modules', 'features',
105
+ 'services', 'internal', 'core', 'domain', 'business',
106
+ 'packages', 'components', 'pages', 'screens', 'views',
107
+ 'handlers', 'controllers', 'routes', 'api', 'api/src',
108
+ 'cmd', 'commands', 'scripts',
109
+ ];
110
+
111
+ /**
112
+ * Default adapter configuration - works for ANY project type
64
113
  */
65
114
  export const DEFAULT_ADAPTER: AnalysisAdapter = {
66
115
  name: 'default',
67
116
  displayName: 'Default',
68
117
  detectionSignals: [],
69
- featureRoots: ['src', 'app', 'lib', 'modules'],
70
- ignoredFolders: ['utils', 'helpers', 'types', 'interfaces', 'constants', 'config', 'dto', 'models', 'common', 'shared', 'node_modules', '.git'],
71
- entrypointPatterns: ['controller', 'route', 'handler', 'command', 'service'],
118
+ featureRoots: UNIVERSAL_FEATURE_ROOTS,
119
+ ignoredFolders: ['utils', 'helpers', 'types', 'interfaces', 'constants', 'config', 'dto', 'models', 'common', 'shared', 'node_modules', '.git', 'dist', 'build', 'coverage', '__tests__', 'test', 'tests', '.next', '.nuxt', '.vite', '__pycache__', '.venv', 'venv', 'scripts', 'docs', 'migrations', 'spec', 'test'],
120
+ entrypointPatterns: UNIVERSAL_ENTRYPOINTS,
72
121
  layerRules: [
73
- { name: 'api', priority: 1, patterns: ['controller', 'handler', 'route', 'router', 'api', 'endpoint'] },
74
- { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'interactor'] },
75
- { name: 'data', priority: 3, patterns: ['repository', 'repo', 'dal', 'dao', 'data', 'persistence'] },
76
- { name: 'domain', priority: 4, patterns: ['model', 'entity', 'schema', 'domain'] },
77
- { name: 'util', priority: 5, patterns: ['util', 'helper', 'lib', 'common'] }
122
+ { name: 'api', priority: 1, patterns: ['controller', 'handler', 'route', 'router', 'api', 'endpoint', 'page', 'screen', 'view', 'component', 'gateway', 'resource'] },
123
+ { name: 'service', priority: 2, patterns: ['service', 'services', 'usecase', 'interactor', 'action', 'actor', 'mutation', 'query', 'resolver'] },
124
+ { name: 'data', priority: 3, patterns: ['repository', 'repo', 'dal', 'dao', 'data', 'persistence', 'mapper', 'dto'] },
125
+ { name: 'domain', priority: 4, patterns: ['model', 'entity', 'schema', 'domain', 'event'] },
126
+ { name: 'util', priority: 5, patterns: ['util', 'helper', 'lib', 'common', 'static', 'constants'] }
78
127
  ],
79
- supportedExtensions: ['.ts', '.tsx', '.js', '.jsx', '.py', '.java', '.kt', '.go', '.rs', '.rb', '.php', '.cs', '.vue', '.svelte'],
80
- flowEntrypointPatterns: ['controller', 'route', 'handler', 'command'],
81
- flowExcludePatterns: ['repository', 'repo', 'utils', 'helper', 'model', 'entity', 'dto', 'type', 'interface', 'constant', 'config']
128
+ supportedExtensions: ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.py', '.java', '.kt', '.go', '.rs', '.rb', '.php', '.cs', '.vue', '.svelte', '.swift', '.h', '.m', '.fs', '.fsx', '.rake', '.erb', '.html', '.css', '.scss', '.sass', '.less'],
129
+ flowEntrypointPatterns: UNIVERSAL_ENTRYPOINTS,
130
+ flowExcludePatterns: ['repository', 'repo', 'utils', 'helper', 'model', 'entity', 'dto', 'type', 'interface', 'constant', 'config', 'spec', 'test', 'tests', '__init__', '__pycache__', 'migrations']
82
131
  };