sourcecode 0.9.0__tar.gz → 0.11.0__tar.gz

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 (103) hide show
  1. sourcecode-0.11.0/-o +296 -0
  2. {sourcecode-0.9.0 → sourcecode-0.11.0}/PKG-INFO +7 -6
  3. {sourcecode-0.9.0 → sourcecode-0.11.0}/README.md +6 -5
  4. {sourcecode-0.9.0 → sourcecode-0.11.0}/docs/schema.md +12 -11
  5. {sourcecode-0.9.0 → sourcecode-0.11.0}/pyproject.toml +1 -1
  6. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/__init__.py +1 -1
  7. sourcecode-0.11.0/src/sourcecode/architecture_summary.py +248 -0
  8. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/cli.py +34 -1
  9. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/go.py +7 -1
  10. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/nodejs.py +30 -11
  11. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/python.py +28 -6
  12. sourcecode-0.11.0/src/sourcecode/prepare_context.py +197 -0
  13. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/schema.py +2 -0
  14. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/serializer.py +2 -2
  15. sourcecode-0.11.0/src/sourcecode/summarizer.py +177 -0
  16. sourcecode-0.11.0/tests/test_architecture_summary.py +72 -0
  17. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_go_rust_java.py +2 -0
  18. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_nodejs.py +24 -0
  19. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_python.py +22 -0
  20. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detectors_base.py +1 -0
  21. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_lqn.py +21 -0
  22. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_schema.py +22 -12
  23. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_summarizer.py +47 -0
  24. sourcecode-0.9.0/src/sourcecode/summarizer.py +0 -68
  25. {sourcecode-0.9.0 → sourcecode-0.11.0}/.gitignore +0 -0
  26. {sourcecode-0.9.0 → sourcecode-0.11.0}/.ruff.toml +0 -0
  27. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/classifier.py +0 -0
  28. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/coverage_parser.py +0 -0
  29. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/dependency_analyzer.py +0 -0
  30. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/__init__.py +0 -0
  31. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/base.py +0 -0
  32. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/dart.py +0 -0
  33. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/dotnet.py +0 -0
  34. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/elixir.py +0 -0
  35. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/heuristic.py +0 -0
  36. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/java.py +0 -0
  37. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  38. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/parsers.py +0 -0
  39. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/php.py +0 -0
  40. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/project.py +0 -0
  41. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/ruby.py +0 -0
  42. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/rust.py +0 -0
  43. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/systems.py +0 -0
  44. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/terraform.py +0 -0
  45. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/detectors/tooling.py +0 -0
  46. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/doc_analyzer.py +0 -0
  47. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/graph_analyzer.py +0 -0
  48. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/metrics_analyzer.py +0 -0
  49. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/redactor.py +0 -0
  50. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/scanner.py +0 -0
  51. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/semantic_analyzer.py +0 -0
  52. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/tree_utils.py +0 -0
  53. {sourcecode-0.9.0 → sourcecode-0.11.0}/src/sourcecode/workspace.py +0 -0
  54. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/__init__.py +0 -0
  55. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/conftest.py +0 -0
  56. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/coverage.xml +0 -0
  57. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  58. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
  59. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  60. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/go_service/go.mod +0 -0
  61. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/jacoco.xml +0 -0
  62. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/lcov.info +0 -0
  63. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  64. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/nextjs_app/package.json +0 -0
  65. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  66. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  67. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  68. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  69. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  70. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  71. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_classifier.py +0 -0
  72. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_cli.py +0 -0
  73. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_coverage_parser.py +0 -0
  74. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_dependency_analyzer_node_python.py +0 -0
  75. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
  76. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_dependency_schema.py +0 -0
  77. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_php_ruby_dart.py +0 -0
  78. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_universal_managed.py +0 -0
  79. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_detector_universal_systems.py +0 -0
  80. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_doc_analyzer_jsdom.py +0 -0
  81. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_doc_analyzer_python.py +0 -0
  82. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_graph_analyzer_polyglot.py +0 -0
  83. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_graph_analyzer_python_node.py +0 -0
  84. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_graph_schema.py +0 -0
  85. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration.py +0 -0
  86. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_dependencies.py +0 -0
  87. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_detection.py +0 -0
  88. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_docs.py +0 -0
  89. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_graph_modules.py +0 -0
  90. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_metrics.py +0 -0
  91. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_multistack.py +0 -0
  92. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_semantics.py +0 -0
  93. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_integration_universal.py +0 -0
  94. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_metrics_analyzer.py +0 -0
  95. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_packaging.py +0 -0
  96. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_real_projects.py +0 -0
  97. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_redactor.py +0 -0
  98. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_scanner.py +0 -0
  99. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_semantic_analyzer_node.py +0 -0
  100. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_semantic_analyzer_python.py +0 -0
  101. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_semantic_import_resolution.py +0 -0
  102. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_semantic_schema.py +0 -0
  103. {sourcecode-0.9.0 → sourcecode-0.11.0}/tests/test_workspace_analyzer.py +0 -0
sourcecode-0.11.0/-o ADDED
@@ -0,0 +1,296 @@
1
+ {
2
+ "metadata": {
3
+ "schema_version": "1.0",
4
+ "generated_at": "2026-04-14T20:22:58.957857+00:00",
5
+ "sourcecode_version": "0.11.0",
6
+ "analyzed_path": "/Users/user/Downloads/atlas-cli"
7
+ },
8
+ "file_tree": {
9
+ "pyproject.toml": null,
10
+ "README.md": null,
11
+ ".gitignore": null,
12
+ ".ruff.toml": null,
13
+ "tests": {
14
+ "test_detector_go_rust_java.py": null,
15
+ "test_integration_graph_modules.py": null,
16
+ "test_real_projects.py": null,
17
+ "conftest.py": null,
18
+ "test_detector_python.py": null,
19
+ "test_dependency_analyzer_polyglot.py": null,
20
+ "test_redactor.py": null,
21
+ "test_semantic_schema.py": null,
22
+ "test_integration_detection.py": null,
23
+ "test_dependency_schema.py": null,
24
+ "test_packaging.py": null,
25
+ "test_semantic_analyzer_node.py": null,
26
+ "test_integration_docs.py": null,
27
+ "test_coverage_parser.py": null,
28
+ "test_scanner.py": null,
29
+ "test_detector_universal_systems.py": null,
30
+ "test_integration_semantics.py": null,
31
+ "test_summarizer.py": null,
32
+ "__init__.py": null,
33
+ "test_detector_php_ruby_dart.py": null,
34
+ "test_integration_multistack.py": null,
35
+ "test_dependency_analyzer_node_python.py": null,
36
+ "test_architecture_summary.py": null,
37
+ "test_schema.py": null,
38
+ "test_integration_dependencies.py": null,
39
+ "test_workspace_analyzer.py": null,
40
+ "test_integration_lqn.py": null,
41
+ "test_doc_analyzer_jsdom.py": null,
42
+ "test_integration_metrics.py": null,
43
+ "test_semantic_analyzer_python.py": null,
44
+ "test_graph_analyzer_python_node.py": null,
45
+ "test_graph_analyzer_polyglot.py": null,
46
+ "test_metrics_analyzer.py": null,
47
+ "test_integration.py": null,
48
+ "test_semantic_import_resolution.py": null,
49
+ "test_detector_universal_managed.py": null,
50
+ "test_cli.py": null,
51
+ "test_graph_schema.py": null,
52
+ "test_detector_nodejs.py": null,
53
+ "test_detectors_base.py": null,
54
+ "test_doc_analyzer_python.py": null,
55
+ "test_classifier.py": null,
56
+ "test_integration_universal.py": null,
57
+ "fixtures": {
58
+ "lcov.info": null,
59
+ "coverage.xml": null,
60
+ "jacoco.xml": null,
61
+ "pnpm_monorepo": {
62
+ "pnpm-workspace.yaml": null,
63
+ "packages": {},
64
+ "apps": {}
65
+ },
66
+ "fastapi_app": {
67
+ "pyproject.toml": null,
68
+ "src": {}
69
+ },
70
+ "nextjs_app": {
71
+ "pnpm-lock.yaml": null,
72
+ "package.json": null,
73
+ "app": {}
74
+ },
75
+ "go_service": {
76
+ "go.mod": null,
77
+ "cmd": {}
78
+ }
79
+ }
80
+ },
81
+ "docs": {
82
+ "schema.md": null
83
+ },
84
+ "src": {
85
+ "sourcecode": {
86
+ "scanner.py": null,
87
+ "semantic_analyzer.py": null,
88
+ "classifier.py": null,
89
+ "doc_analyzer.py": null,
90
+ "redactor.py": null,
91
+ "dependency_analyzer.py": null,
92
+ "__init__.py": null,
93
+ "metrics_analyzer.py": null,
94
+ "cli.py": null,
95
+ "coverage_parser.py": null,
96
+ "tree_utils.py": null,
97
+ "serializer.py": null,
98
+ "summarizer.py": null,
99
+ "workspace.py": null,
100
+ "graph_analyzer.py": null,
101
+ "architecture_summary.py": null,
102
+ "schema.py": null,
103
+ "detectors": {
104
+ "java.py": null,
105
+ "systems.py": null,
106
+ "terraform.py": null,
107
+ "nodejs.py": null,
108
+ "__init__.py": null,
109
+ "ruby.py": null,
110
+ "dart.py": null,
111
+ "parsers.py": null,
112
+ "elixir.py": null,
113
+ "python.py": null,
114
+ "tooling.py": null,
115
+ "go.py": null,
116
+ "php.py": null,
117
+ "dotnet.py": null,
118
+ "jvm_ext.py": null,
119
+ "base.py": null,
120
+ "project.py": null,
121
+ "heuristic.py": null,
122
+ "rust.py": null
123
+ }
124
+ }
125
+ }
126
+ },
127
+ "stacks": [
128
+ {
129
+ "stack": "python",
130
+ "detection_method": "manifest",
131
+ "confidence": "high",
132
+ "frameworks": [
133
+ {
134
+ "name": "Typer",
135
+ "source": "manifest"
136
+ }
137
+ ],
138
+ "package_manager": "pip",
139
+ "manifests": [
140
+ "pyproject.toml"
141
+ ],
142
+ "primary": false,
143
+ "root": ".",
144
+ "workspace": null,
145
+ "signals": [
146
+ "manifest:pyproject.toml",
147
+ "framework:Typer",
148
+ "package_manager:pip",
149
+ "extensions:79"
150
+ ]
151
+ },
152
+ {
153
+ "stack": "nodejs",
154
+ "detection_method": "manifest",
155
+ "confidence": "medium",
156
+ "frameworks": [],
157
+ "package_manager": null,
158
+ "manifests": [
159
+ "package.json"
160
+ ],
161
+ "primary": true,
162
+ "root": ".claude",
163
+ "workspace": ".claude",
164
+ "signals": [
165
+ "manifest:package.json",
166
+ "extensions:6"
167
+ ]
168
+ }
169
+ ],
170
+ "project_type": "fullstack",
171
+ "entry_points": [],
172
+ "dependencies": [],
173
+ "dependency_summary": null,
174
+ "module_graph": null,
175
+ "module_graph_summary": null,
176
+ "docs": [],
177
+ "doc_summary": null,
178
+ "file_paths": [
179
+ "pyproject.toml",
180
+ "README.md",
181
+ ".gitignore",
182
+ ".ruff.toml",
183
+ "tests",
184
+ "tests/test_detector_go_rust_java.py",
185
+ "tests/test_integration_graph_modules.py",
186
+ "tests/test_real_projects.py",
187
+ "tests/conftest.py",
188
+ "tests/test_detector_python.py",
189
+ "tests/test_dependency_analyzer_polyglot.py",
190
+ "tests/test_redactor.py",
191
+ "tests/test_semantic_schema.py",
192
+ "tests/test_integration_detection.py",
193
+ "tests/test_dependency_schema.py",
194
+ "tests/test_packaging.py",
195
+ "tests/test_semantic_analyzer_node.py",
196
+ "tests/test_integration_docs.py",
197
+ "tests/test_coverage_parser.py",
198
+ "tests/test_scanner.py",
199
+ "tests/test_detector_universal_systems.py",
200
+ "tests/test_integration_semantics.py",
201
+ "tests/test_summarizer.py",
202
+ "tests/__init__.py",
203
+ "tests/test_detector_php_ruby_dart.py",
204
+ "tests/test_integration_multistack.py",
205
+ "tests/test_dependency_analyzer_node_python.py",
206
+ "tests/test_architecture_summary.py",
207
+ "tests/test_schema.py",
208
+ "tests/test_integration_dependencies.py",
209
+ "tests/test_workspace_analyzer.py",
210
+ "tests/test_integration_lqn.py",
211
+ "tests/test_doc_analyzer_jsdom.py",
212
+ "tests/test_integration_metrics.py",
213
+ "tests/test_semantic_analyzer_python.py",
214
+ "tests/test_graph_analyzer_python_node.py",
215
+ "tests/test_graph_analyzer_polyglot.py",
216
+ "tests/test_metrics_analyzer.py",
217
+ "tests/test_integration.py",
218
+ "tests/test_semantic_import_resolution.py",
219
+ "tests/test_detector_universal_managed.py",
220
+ "tests/test_cli.py",
221
+ "tests/test_graph_schema.py",
222
+ "tests/test_detector_nodejs.py",
223
+ "tests/test_detectors_base.py",
224
+ "tests/test_doc_analyzer_python.py",
225
+ "tests/test_classifier.py",
226
+ "tests/test_integration_universal.py",
227
+ "tests/fixtures",
228
+ "tests/fixtures/lcov.info",
229
+ "tests/fixtures/coverage.xml",
230
+ "tests/fixtures/jacoco.xml",
231
+ "tests/fixtures/pnpm_monorepo",
232
+ "tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml",
233
+ "tests/fixtures/pnpm_monorepo/packages",
234
+ "tests/fixtures/pnpm_monorepo/apps",
235
+ "tests/fixtures/fastapi_app",
236
+ "tests/fixtures/fastapi_app/pyproject.toml",
237
+ "tests/fixtures/fastapi_app/src",
238
+ "tests/fixtures/nextjs_app",
239
+ "tests/fixtures/nextjs_app/pnpm-lock.yaml",
240
+ "tests/fixtures/nextjs_app/package.json",
241
+ "tests/fixtures/nextjs_app/app",
242
+ "tests/fixtures/go_service",
243
+ "tests/fixtures/go_service/go.mod",
244
+ "tests/fixtures/go_service/cmd",
245
+ "docs",
246
+ "docs/schema.md",
247
+ "src",
248
+ "src/sourcecode",
249
+ "src/sourcecode/scanner.py",
250
+ "src/sourcecode/semantic_analyzer.py",
251
+ "src/sourcecode/classifier.py",
252
+ "src/sourcecode/doc_analyzer.py",
253
+ "src/sourcecode/redactor.py",
254
+ "src/sourcecode/dependency_analyzer.py",
255
+ "src/sourcecode/__init__.py",
256
+ "src/sourcecode/metrics_analyzer.py",
257
+ "src/sourcecode/cli.py",
258
+ "src/sourcecode/coverage_parser.py",
259
+ "src/sourcecode/tree_utils.py",
260
+ "src/sourcecode/serializer.py",
261
+ "src/sourcecode/summarizer.py",
262
+ "src/sourcecode/workspace.py",
263
+ "src/sourcecode/graph_analyzer.py",
264
+ "src/sourcecode/architecture_summary.py",
265
+ "src/sourcecode/schema.py",
266
+ "src/sourcecode/detectors",
267
+ "src/sourcecode/detectors/java.py",
268
+ "src/sourcecode/detectors/systems.py",
269
+ "src/sourcecode/detectors/terraform.py",
270
+ "src/sourcecode/detectors/nodejs.py",
271
+ "src/sourcecode/detectors/__init__.py",
272
+ "src/sourcecode/detectors/ruby.py",
273
+ "src/sourcecode/detectors/dart.py",
274
+ "src/sourcecode/detectors/parsers.py",
275
+ "src/sourcecode/detectors/elixir.py",
276
+ "src/sourcecode/detectors/python.py",
277
+ "src/sourcecode/detectors/tooling.py",
278
+ "src/sourcecode/detectors/go.py",
279
+ "src/sourcecode/detectors/php.py",
280
+ "src/sourcecode/detectors/dotnet.py",
281
+ "src/sourcecode/detectors/jvm_ext.py",
282
+ "src/sourcecode/detectors/base.py",
283
+ "src/sourcecode/detectors/project.py",
284
+ "src/sourcecode/detectors/heuristic.py",
285
+ "src/sourcecode/detectors/rust.py"
286
+ ],
287
+ "project_summary": "Genera un mapa de contexto estructurado de proyectos de software para agentes IA. Stack principal: Python (Typer).",
288
+ "architecture_summary": "Entry point principal: src/sourcecode/cli.py expone la CLI del proyecto.\nOrquesta modulos internos: dependency_analyzer, detectors, doc_analyzer, graph_analyzer, metrics_analyzer, redactor, scanner, schema.\nActiva analisis opcionales: DependencyAnalyzer (--dependencies), GraphAnalyzer (--graph-modules), DocAnalyzer (--docs), MetricsAnalyzer (--full-metrics), SemanticAnalyzer (--semantics).\nProduce un SourceMap serializado en JSON/YAML y una vista compacta con redaccion de secretos.",
289
+ "key_dependencies": [],
290
+ "file_metrics": [],
291
+ "metrics_summary": null,
292
+ "semantic_calls": [],
293
+ "semantic_symbols": [],
294
+ "semantic_links": [],
295
+ "semantic_summary": null
296
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 0.9.0
3
+ Version: 0.11.0
4
4
  Summary: Genera un mapa de contexto estructurado de proyectos de software para agentes IA
5
5
  License: MIT
6
6
  Requires-Python: >=3.9
@@ -94,7 +94,7 @@ sourcecode --version
94
94
  | `PATH` | `.` | Directory to analyze. |
95
95
  | `--format json\|yaml` | `json` | Output format. |
96
96
  | `--output PATH` | stdout | Write to a file instead of stdout. |
97
- | `--compact` | off | Reduced output (~500-700 tokens): `schema_version`, `project_type`, `project_summary`, `stacks`, `entry_points`, `file_paths`, `file_tree_depth1`, and `dependency_summary` when available. |
97
+ | `--compact` | off | Reduced output (~500-700 tokens): `schema_version`, `project_type`, `project_summary`, `architecture_summary`, `stacks`, `entry_points`, `file_tree_depth1`, and `dependency_summary` when available. |
98
98
  | `--dependencies` | off | Include direct dependencies, resolved versions, and transitive relationships when lockfiles make that possible. Also populates `key_dependencies`. |
99
99
  | `--graph-modules` | off | Include a structural module graph with imports and simple relations. |
100
100
  | `--graph-detail high\|medium\|full` | `high` | Graph detail level: summarized (high), balanced (medium), or full-fidelity (full). |
@@ -118,6 +118,7 @@ The full schema (`SourceMap`) includes the following fields:
118
118
  | `file_tree` | object | Repository tree where `null` represents a file and `{}` represents a directory. |
119
119
  | `file_paths` | array | Flat list of all project paths derived from `file_tree`, with forward-slash separators. Always present; respects `--depth`. |
120
120
  | `project_summary` | string\|null | Deterministic natural-language description of the project generated from detected stacks, entry points, and dependencies. Present when stacks are detected. |
121
+ | `architecture_summary` | string\|null | Static summary of the main execution flow, orchestrated modules, and output produced by the project. Present when enough structural evidence is available. |
121
122
  | `stacks` | array | Stack detections with confidence, frameworks, manifests, `primary`, `root`, `workspace`, and `signals`. |
122
123
  | `project_type` | string\|null | Overall project classification. |
123
124
  | `entry_points` | array | Detected entry points by stack. |
@@ -155,6 +156,7 @@ Real output from a Python FastAPI project:
155
156
  "schema_version": "1.0",
156
157
  "project_type": "api",
157
158
  "project_summary": "API en Python (FastAPI). Entry points: src/main.py. 12 dependencias (python).",
159
+ "architecture_summary": null,
158
160
  "stacks": [
159
161
  {
160
162
  "stack": "python",
@@ -179,7 +181,6 @@ Real output from a Python FastAPI project:
179
181
  "source": "manifest"
180
182
  }
181
183
  ],
182
- "file_paths": ["pyproject.toml", "src/main.py", "src/routes.py", "tests/test_main.py"],
183
184
  "file_tree_depth1": {
184
185
  "pyproject.toml": null,
185
186
  "src": {},
@@ -371,7 +372,7 @@ Different modes optimize for different tradeoffs between context size and depth
371
372
 
372
373
  Best for: initial orientation, deciding what to explore next, fast handoffs between agents.
373
374
 
374
- Includes: `project_summary` (instant project description), `stacks`, `entry_points`, `file_paths` (flat path list for easy grep/reasoning), `file_tree_depth1`, and `dependency_summary` when `--dependencies` was also requested.
375
+ Includes: `project_summary` (instant project description), `architecture_summary` (execution-oriented static summary), `stacks`, `entry_points`, `file_tree_depth1`, and `dependency_summary` when `--dependencies` was also requested.
375
376
 
376
377
  ```bash
377
378
  sourcecode --compact .
@@ -404,9 +405,9 @@ sourcecode --docs --docs-depth full . # include methods
404
405
  - `"Aplicacion web en Node.js (Next.js, React). Entry points: app/page.tsx."`
405
406
  - `"Monorepo con 2 workspaces en Node.js, Python."`
406
407
 
407
- **`file_paths` field**
408
+ **`architecture_summary` field**
408
409
 
409
- `file_paths` is a flat list of all project paths (forward-slash separated). It is easier for LLMs to reason about than the nested `file_tree` dict grep it, count by extension, or identify modules by path pattern without recursive traversal.
410
+ `architecture_summary` is a static 3-5 line summary oriented to execution flow. It answers what the main entry point does, which modules it orchestrates, and what the project produces. In compact mode it replaces the low-signal value that `file_paths` used to occupy.
410
411
 
411
412
  **`key_dependencies` field**
412
413
 
@@ -78,7 +78,7 @@ sourcecode --version
78
78
  | `PATH` | `.` | Directory to analyze. |
79
79
  | `--format json\|yaml` | `json` | Output format. |
80
80
  | `--output PATH` | stdout | Write to a file instead of stdout. |
81
- | `--compact` | off | Reduced output (~500-700 tokens): `schema_version`, `project_type`, `project_summary`, `stacks`, `entry_points`, `file_paths`, `file_tree_depth1`, and `dependency_summary` when available. |
81
+ | `--compact` | off | Reduced output (~500-700 tokens): `schema_version`, `project_type`, `project_summary`, `architecture_summary`, `stacks`, `entry_points`, `file_tree_depth1`, and `dependency_summary` when available. |
82
82
  | `--dependencies` | off | Include direct dependencies, resolved versions, and transitive relationships when lockfiles make that possible. Also populates `key_dependencies`. |
83
83
  | `--graph-modules` | off | Include a structural module graph with imports and simple relations. |
84
84
  | `--graph-detail high\|medium\|full` | `high` | Graph detail level: summarized (high), balanced (medium), or full-fidelity (full). |
@@ -102,6 +102,7 @@ The full schema (`SourceMap`) includes the following fields:
102
102
  | `file_tree` | object | Repository tree where `null` represents a file and `{}` represents a directory. |
103
103
  | `file_paths` | array | Flat list of all project paths derived from `file_tree`, with forward-slash separators. Always present; respects `--depth`. |
104
104
  | `project_summary` | string\|null | Deterministic natural-language description of the project generated from detected stacks, entry points, and dependencies. Present when stacks are detected. |
105
+ | `architecture_summary` | string\|null | Static summary of the main execution flow, orchestrated modules, and output produced by the project. Present when enough structural evidence is available. |
105
106
  | `stacks` | array | Stack detections with confidence, frameworks, manifests, `primary`, `root`, `workspace`, and `signals`. |
106
107
  | `project_type` | string\|null | Overall project classification. |
107
108
  | `entry_points` | array | Detected entry points by stack. |
@@ -139,6 +140,7 @@ Real output from a Python FastAPI project:
139
140
  "schema_version": "1.0",
140
141
  "project_type": "api",
141
142
  "project_summary": "API en Python (FastAPI). Entry points: src/main.py. 12 dependencias (python).",
143
+ "architecture_summary": null,
142
144
  "stacks": [
143
145
  {
144
146
  "stack": "python",
@@ -163,7 +165,6 @@ Real output from a Python FastAPI project:
163
165
  "source": "manifest"
164
166
  }
165
167
  ],
166
- "file_paths": ["pyproject.toml", "src/main.py", "src/routes.py", "tests/test_main.py"],
167
168
  "file_tree_depth1": {
168
169
  "pyproject.toml": null,
169
170
  "src": {},
@@ -355,7 +356,7 @@ Different modes optimize for different tradeoffs between context size and depth
355
356
 
356
357
  Best for: initial orientation, deciding what to explore next, fast handoffs between agents.
357
358
 
358
- Includes: `project_summary` (instant project description), `stacks`, `entry_points`, `file_paths` (flat path list for easy grep/reasoning), `file_tree_depth1`, and `dependency_summary` when `--dependencies` was also requested.
359
+ Includes: `project_summary` (instant project description), `architecture_summary` (execution-oriented static summary), `stacks`, `entry_points`, `file_tree_depth1`, and `dependency_summary` when `--dependencies` was also requested.
359
360
 
360
361
  ```bash
361
362
  sourcecode --compact .
@@ -388,9 +389,9 @@ sourcecode --docs --docs-depth full . # include methods
388
389
  - `"Aplicacion web en Node.js (Next.js, React). Entry points: app/page.tsx."`
389
390
  - `"Monorepo con 2 workspaces en Node.js, Python."`
390
391
 
391
- **`file_paths` field**
392
+ **`architecture_summary` field**
392
393
 
393
- `file_paths` is a flat list of all project paths (forward-slash separated). It is easier for LLMs to reason about than the nested `file_tree` dict grep it, count by extension, or identify modules by path pattern without recursive traversal.
394
+ `architecture_summary` is a static 3-5 line summary oriented to execution flow. It answers what the main entry point does, which modules it orchestrates, and what the project produces. In compact mode it replaces the low-signal value that `file_paths` used to occupy.
394
395
 
395
396
  **`key_dependencies` field**
396
397
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  `sourcecode` serializa un objeto `SourceMap` con schema `1.0`.
5
5
 
6
- Los campos **siempre presentes** son: `metadata`, `file_tree`, `file_paths`, `stacks`, `project_type`, `entry_points` y `project_summary`.
6
+ Los campos **siempre presentes** son: `metadata`, `file_tree`, `file_paths`, `stacks`, `project_type`, `entry_points`, `project_summary` y `architecture_summary`.
7
7
 
8
8
  Los campos **opcionales** dependen de los flags activos en la invocacion:
9
9
 
@@ -28,6 +28,7 @@ Los campos **opcionales** dependen de los flags activos en la invocacion:
28
28
  "project_type": "webapp",
29
29
  "entry_points": [],
30
30
  "project_summary": "Aplicacion web en Nodejs (Next.js). Entry points: app/page.tsx.",
31
+ "architecture_summary": null,
31
32
  "dependencies": [],
32
33
  "dependency_summary": null,
33
34
  "key_dependencies": [],
@@ -47,6 +48,7 @@ Campos:
47
48
  - `project_type`: clasificacion general del proyecto. Siempre presente (puede ser `null`).
48
49
  - `entry_points`: puntos de entrada relevantes. Siempre presente (puede ser lista vacia).
49
50
  - `project_summary`: descripcion en lenguaje natural del proyecto generada deterministicamente. Presente cuando hay stacks detectados; `null` si no (Phase 9).
51
+ - `architecture_summary`: resumen arquitectonico estatico del flujo principal, modulos orquestados y output producido. `null` si no hay evidencia suficiente (Phase 13).
50
52
  - `dependencies`: dependencias detectadas. Solo presente con `--dependencies`; lista vacia por defecto.
51
53
  - `dependency_summary`: resumen del analisis de dependencias. Solo presente con `--dependencies`; `null` por defecto.
52
54
  - `key_dependencies`: top-15 dependencias directas relevantes. Solo presente con `--dependencies`; lista vacia por defecto (Phase 9).
@@ -61,7 +63,7 @@ Campos:
61
63
  {
62
64
  "schema_version": "1.0",
63
65
  "generated_at": "2026-04-07T19:41:05.686277+00:00",
64
- "sourcecode_version": "0.9.0",
66
+ "sourcecode_version": "0.11.0",
65
67
  "analyzed_path": "/abs/path/to/project"
66
68
  }
67
69
  ```
@@ -232,7 +234,8 @@ Cada elemento de `entry_points` sigue este shape:
232
234
  "path": "app/page.tsx",
233
235
  "stack": "nodejs",
234
236
  "kind": "web",
235
- "source": "package.json"
237
+ "source": "package.json",
238
+ "confidence": "high"
236
239
  }
237
240
  ```
238
241
 
@@ -242,6 +245,7 @@ Campos:
242
245
  - `stack`: stack al que pertenece.
243
246
  - `kind`: tipo de entry point, por ejemplo `web`, `api`, `cli` o `entry`.
244
247
  - `source`: origen de la deteccion.
248
+ - `confidence`: confianza del entry point detectado (`high`, `medium` o `low`).
245
249
 
246
250
  ## dependencies
247
251
 
@@ -536,13 +540,9 @@ Con `--compact`, la salida omite `metadata`, el arbol completo, `dependencies`,
536
540
  "schema_version": "1.0",
537
541
  "project_type": "webapp",
538
542
  "project_summary": "Aplicacion web en Nodejs (Next.js, React). Entry points: app/page.tsx.",
543
+ "architecture_summary": null,
539
544
  "stacks": [],
540
545
  "entry_points": [],
541
- "file_paths": [
542
- "package.json",
543
- "app/page.tsx",
544
- "app/layout.tsx"
545
- ],
546
546
  "file_tree_depth1": {
547
547
  "package.json": null,
548
548
  "app": {}
@@ -556,16 +556,17 @@ Campos incluidos en el modo compacto:
556
556
  - `schema_version`: version del schema.
557
557
  - `project_type`: clasificacion general.
558
558
  - `project_summary`: descripcion NL del proyecto. Siempre incluido (Phase 9).
559
+ - `architecture_summary`: resumen arquitectonico estatico del flujo principal. Siempre incluido; puede ser `null` si la evidencia es insuficiente (Phase 13).
559
560
  - `stacks`: stacks detectados serializados.
560
561
  - `entry_points`: entry points serializados.
561
- - `file_paths`: lista plana de todos los paths con separador forward-slash. Siempre incluido (Phase 9).
562
562
  - `file_tree_depth1`: solo el primer nivel del `file_tree`. Se conserva por compatibilidad retroactiva.
563
563
  - `dependency_summary`: resumen de dependencias cuando `--dependencies` esta activo y `dependency_summary.requested == True`; `null` en cualquier otro caso (Phase 9).
564
564
 
565
565
  Campos **excluidos** en modo compacto aunque se combinen con otros flags:
566
566
 
567
567
  - `metadata`
568
- - `file_tree` (sustituido por `file_tree_depth1` y `file_paths`)
568
+ - `file_tree` (sustituido por `file_tree_depth1`)
569
+ - `file_paths`
569
570
  - `dependencies`
570
571
  - `key_dependencies`
571
572
  - `module_graph`
@@ -582,7 +583,7 @@ Ejemplo de salida para un monorepo con web Node.js y API Python con `--dependenc
582
583
  "metadata": {
583
584
  "schema_version": "1.0",
584
585
  "generated_at": "2026-04-07T19:41:05.686277+00:00",
585
- "sourcecode_version": "0.9.0",
586
+ "sourcecode_version": "0.11.0",
586
587
  "analyzed_path": "/abs/path/to/project"
587
588
  },
588
589
  "file_tree": {
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "0.9.0"
7
+ version = "0.11.0"
8
8
  description = "Genera un mapa de contexto estructurado de proyectos de software para agentes IA"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Genera mapas de contexto estructurado para agentes IA."""
2
2
 
3
- __version__ = "0.9.0"
3
+ __version__ = "0.11.0"