carto-md 1.0.18 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.carto/config.json +79 -0
- package/.carto/context/CORE.md +253 -0
- package/.carto/context/DATABASE.md +19 -0
- package/.carto/map.json +83 -0
- package/AGENTS.md +37 -0
- package/CONTRIBUTING.md +8 -8
- package/README.md +11 -12
- package/mcp.md +0 -0
- package/package.json +2 -1
- package/src/agents/domains.js +188 -0
- package/src/agents/formatter.js +54 -101
- package/src/cli/impact.js +23 -53
- package/src/cli/index.js +3 -0
- package/src/cli/init.js +58 -0
- package/src/cli/serve.js +14 -0
- package/src/detector/files.js +39 -27
- package/src/extractors/imports.js +32 -0
- package/src/extractors/languages/r.js +19 -0
- package/src/extractors/languages/typescript.js +45 -1
- package/src/mcp/server.js +217 -0
- package/src/sync.js +46 -5
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1",
|
|
3
|
+
"framework": "node-generic",
|
|
4
|
+
"language": "javascript",
|
|
5
|
+
"projectRoot": "/Users/anshsonkar/carto-ansh",
|
|
6
|
+
"watch": {
|
|
7
|
+
"routeFiles": [
|
|
8
|
+
"src/agents/domains.js",
|
|
9
|
+
"src/agents/formatter.js",
|
|
10
|
+
"src/agents/merger.js",
|
|
11
|
+
"src/agents/validator.js",
|
|
12
|
+
"src/cli/impact.js",
|
|
13
|
+
"src/cli/index.js",
|
|
14
|
+
"src/cli/init.js",
|
|
15
|
+
"src/cli/remove.js",
|
|
16
|
+
"src/cli/sync.js",
|
|
17
|
+
"src/cli/update-check.js",
|
|
18
|
+
"src/cli/watch.js",
|
|
19
|
+
"src/detector/files.js",
|
|
20
|
+
"src/detector/framework.js",
|
|
21
|
+
"src/extractors/dbtables.js",
|
|
22
|
+
"src/extractors/envvars.js",
|
|
23
|
+
"src/extractors/filemap.js",
|
|
24
|
+
"src/extractors/frontend.js",
|
|
25
|
+
"src/extractors/functions.js",
|
|
26
|
+
"src/extractors/imports.js",
|
|
27
|
+
"src/extractors/languages/html.js",
|
|
28
|
+
"src/extractors/languages/javascript.js",
|
|
29
|
+
"src/extractors/languages/prisma.js",
|
|
30
|
+
"src/extractors/languages/python.js",
|
|
31
|
+
"src/extractors/languages/r.js",
|
|
32
|
+
"src/extractors/languages/typescript.js",
|
|
33
|
+
"src/extractors/loader.js",
|
|
34
|
+
"src/extractors/models.js",
|
|
35
|
+
"src/extractors/routes.js",
|
|
36
|
+
"src/extractors/stack.js",
|
|
37
|
+
"src/security/ignore.js",
|
|
38
|
+
"src/sync.js",
|
|
39
|
+
"src/watcher/watch.js"
|
|
40
|
+
],
|
|
41
|
+
"modelFiles": [
|
|
42
|
+
"src/agents/domains.js",
|
|
43
|
+
"src/agents/formatter.js",
|
|
44
|
+
"src/agents/merger.js",
|
|
45
|
+
"src/agents/validator.js",
|
|
46
|
+
"src/cli/impact.js",
|
|
47
|
+
"src/cli/index.js",
|
|
48
|
+
"src/cli/init.js",
|
|
49
|
+
"src/cli/remove.js",
|
|
50
|
+
"src/cli/sync.js",
|
|
51
|
+
"src/cli/update-check.js",
|
|
52
|
+
"src/cli/watch.js",
|
|
53
|
+
"src/detector/files.js",
|
|
54
|
+
"src/detector/framework.js",
|
|
55
|
+
"src/extractors/dbtables.js",
|
|
56
|
+
"src/extractors/envvars.js",
|
|
57
|
+
"src/extractors/filemap.js",
|
|
58
|
+
"src/extractors/frontend.js",
|
|
59
|
+
"src/extractors/functions.js",
|
|
60
|
+
"src/extractors/imports.js",
|
|
61
|
+
"src/extractors/languages/html.js",
|
|
62
|
+
"src/extractors/languages/javascript.js",
|
|
63
|
+
"src/extractors/languages/prisma.js",
|
|
64
|
+
"src/extractors/languages/python.js",
|
|
65
|
+
"src/extractors/languages/r.js",
|
|
66
|
+
"src/extractors/languages/typescript.js",
|
|
67
|
+
"src/extractors/loader.js",
|
|
68
|
+
"src/extractors/models.js",
|
|
69
|
+
"src/extractors/routes.js",
|
|
70
|
+
"src/extractors/stack.js",
|
|
71
|
+
"src/security/ignore.js",
|
|
72
|
+
"src/sync.js",
|
|
73
|
+
"src/watcher/watch.js"
|
|
74
|
+
],
|
|
75
|
+
"frontendFiles": []
|
|
76
|
+
},
|
|
77
|
+
"output": "AGENTS.md",
|
|
78
|
+
"generated": "2026-05-23T05:17:08.168Z"
|
|
79
|
+
}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# CORE (auto-generated by Carto)
|
|
2
|
+
|
|
3
|
+
> Read this when working on core features.
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
|
|
7
|
+
### src/agents/domains.js
|
|
8
|
+
| Function | Params | Returns |
|
|
9
|
+
|----------|--------|---------|
|
|
10
|
+
| getDomainForFile | relPath | — |
|
|
11
|
+
| buildFileAssignments | allFiles, importGraph | — |
|
|
12
|
+
| clusterByDomain | data | — |
|
|
13
|
+
|
|
14
|
+
### src/agents/formatter.js
|
|
15
|
+
| Function | Params | Returns |
|
|
16
|
+
|----------|--------|---------|
|
|
17
|
+
| formatSections | {...} | — |
|
|
18
|
+
| formatDomainFile | domainName, cluster | — |
|
|
19
|
+
|
|
20
|
+
### src/agents/merger.js
|
|
21
|
+
| Function | Params | Returns |
|
|
22
|
+
|----------|--------|---------|
|
|
23
|
+
| mergeIntoAgentsMd | agentsPath, autoContent | — |
|
|
24
|
+
|
|
25
|
+
### src/agents/validator.js
|
|
26
|
+
| Function | Params | Returns |
|
|
27
|
+
|----------|--------|---------|
|
|
28
|
+
| validateExtracted | {...} | — |
|
|
29
|
+
| validateRoutes | routes | — |
|
|
30
|
+
| validateModels | models | — |
|
|
31
|
+
| validateFunctions | functionsMap | — |
|
|
32
|
+
| validateEnvVars | envVars | — |
|
|
33
|
+
| validateDBTables | dbTables | — |
|
|
34
|
+
|
|
35
|
+
### src/cli/impact.js
|
|
36
|
+
| Function | Params | Returns |
|
|
37
|
+
|----------|--------|---------|
|
|
38
|
+
| run | projectRoot, fileArg | — |
|
|
39
|
+
| resolveFile | fileArg, imports | — |
|
|
40
|
+
| collectDependents | targetFile, imports, maxHops | — |
|
|
41
|
+
|
|
42
|
+
### src/cli/index.js
|
|
43
|
+
| Function | Params | Returns |
|
|
44
|
+
|----------|--------|---------|
|
|
45
|
+
| printUsage | — | — |
|
|
46
|
+
|
|
47
|
+
### src/cli/init.js
|
|
48
|
+
| Function | Params | Returns |
|
|
49
|
+
|----------|--------|---------|
|
|
50
|
+
| run | projectRoot | — |
|
|
51
|
+
| resolveConfig | projectRoot, config | — |
|
|
52
|
+
| installGitHook | projectRoot | — |
|
|
53
|
+
| wireIDEs | projectRoot | — |
|
|
54
|
+
|
|
55
|
+
### src/cli/remove.js
|
|
56
|
+
| Function | Params | Returns |
|
|
57
|
+
|----------|--------|---------|
|
|
58
|
+
| run | projectRoot | — |
|
|
59
|
+
|
|
60
|
+
### src/cli/sync.js
|
|
61
|
+
| Function | Params | Returns |
|
|
62
|
+
|----------|--------|---------|
|
|
63
|
+
| run | projectRoot | — |
|
|
64
|
+
|
|
65
|
+
### src/cli/update-check.js
|
|
66
|
+
| Function | Params | Returns |
|
|
67
|
+
|----------|--------|---------|
|
|
68
|
+
| checkForUpdate | — | — |
|
|
69
|
+
| isNewer | a, b | — |
|
|
70
|
+
|
|
71
|
+
### src/cli/watch.js
|
|
72
|
+
| Function | Params | Returns |
|
|
73
|
+
|----------|--------|---------|
|
|
74
|
+
| run | projectRoot | — |
|
|
75
|
+
|
|
76
|
+
### src/detector/files.js
|
|
77
|
+
| Function | Params | Returns |
|
|
78
|
+
|----------|--------|---------|
|
|
79
|
+
| discoverFiles | projectRoot, framework, isIgnored, secondaryFramework | — |
|
|
80
|
+
| discoverForFramework | projectRoot, framework, ignoreFn | — |
|
|
81
|
+
| smartSelect | allFiles, htmlFiles, projectRoot | — |
|
|
82
|
+
| isRouteFile | filePath | — |
|
|
83
|
+
| isModelFile | filePath | — |
|
|
84
|
+
| scoreRoute | filePath | — |
|
|
85
|
+
| scoreModel | filePath | — |
|
|
86
|
+
| countImportReferences | allFiles, projectRoot | — |
|
|
87
|
+
| tryResolve | importPath, fileDir, projectRoot, knownPaths | — |
|
|
88
|
+
| findFilesRecursive | dir, extensions, ignoreDirs, isIgnored, results | — |
|
|
89
|
+
|
|
90
|
+
### src/detector/framework.js
|
|
91
|
+
| Function | Params | Returns |
|
|
92
|
+
|----------|--------|---------|
|
|
93
|
+
| detectFramework | projectRoot | — |
|
|
94
|
+
| findFile | dir, fileNames, maxDepth, currentDepth | — |
|
|
95
|
+
| detectAllFromPythonDeps | filePath | — |
|
|
96
|
+
| detectAllFromPackageJson | filePath | — |
|
|
97
|
+
| detectAllFromRDescription | filePath | — |
|
|
98
|
+
| detectAllFromRFiles | projectRoot | — |
|
|
99
|
+
|
|
100
|
+
### src/extractors/dbtables.js
|
|
101
|
+
| Function | Params | Returns |
|
|
102
|
+
|----------|--------|---------|
|
|
103
|
+
| extractDBTables | content | — |
|
|
104
|
+
| toSnakeCase | str | — |
|
|
105
|
+
|
|
106
|
+
### src/extractors/envvars.js
|
|
107
|
+
| Function | Params | Returns |
|
|
108
|
+
|----------|--------|---------|
|
|
109
|
+
| extractEnvVars | content | — |
|
|
110
|
+
|
|
111
|
+
### src/extractors/filemap.js
|
|
112
|
+
| Function | Params | Returns |
|
|
113
|
+
|----------|--------|---------|
|
|
114
|
+
| inferResponsibility | filename, functionCount, routeCount | — |
|
|
115
|
+
|
|
116
|
+
### src/extractors/frontend.js
|
|
117
|
+
| Function | Params | Returns |
|
|
118
|
+
|----------|--------|---------|
|
|
119
|
+
| extractFrontend | content | — |
|
|
120
|
+
|
|
121
|
+
### src/extractors/functions.js
|
|
122
|
+
| Function | Params | Returns |
|
|
123
|
+
|----------|--------|---------|
|
|
124
|
+
| extractFunctions | content, filename | — |
|
|
125
|
+
| splitParams | rawParams | — |
|
|
126
|
+
|
|
127
|
+
### src/extractors/imports.js
|
|
128
|
+
| Function | Params | Returns |
|
|
129
|
+
|----------|--------|---------|
|
|
130
|
+
| extractImports | content, filePath, projectRoot | — |
|
|
131
|
+
| extractJSImports | content | — |
|
|
132
|
+
| extractRImports | content, filePath, projectRoot | — |
|
|
133
|
+
| extractPythonImports | content, filePath, projectRoot | — |
|
|
134
|
+
| tryResolvePythonModule | modulePath, baseDir | — |
|
|
135
|
+
| resolvePythonRelativeImport | importStr, fileDir | — |
|
|
136
|
+
| resolveImportPath | importPath, fileDir, projectRoot, sourceExt | — |
|
|
137
|
+
| buildImportGraph | fileContents, projectRoot | — |
|
|
138
|
+
|
|
139
|
+
### src/extractors/languages/javascript.js
|
|
140
|
+
| Function | Params | Returns |
|
|
141
|
+
|----------|--------|---------|
|
|
142
|
+
| walk | node, visitor | — |
|
|
143
|
+
| extractExpressRoutes | ast, filename | — |
|
|
144
|
+
| extractNextJSPagesRoutes | ast, filename | — |
|
|
145
|
+
| extractJSFunctions | ast | — |
|
|
146
|
+
| shouldSkipJSFunction | name, params | — |
|
|
147
|
+
| extractParams | params | — |
|
|
148
|
+
| extractProcessEnv | ast | — |
|
|
149
|
+
| extractJSFetches | ast | — |
|
|
150
|
+
|
|
151
|
+
### src/extractors/languages/r.js
|
|
152
|
+
| Function | Params | Returns |
|
|
153
|
+
|----------|--------|---------|
|
|
154
|
+
| pathToIdentifier | routePath | — |
|
|
155
|
+
| descToIdentifier | desc | — |
|
|
156
|
+
| extractRoutes | content | — |
|
|
157
|
+
| extractFunctions | content | — |
|
|
158
|
+
| collapseParens | content | — |
|
|
159
|
+
| findBalancedEnd | str, openPos | — |
|
|
160
|
+
| extractModels | content | — |
|
|
161
|
+
| extractEnvVars | content | — |
|
|
162
|
+
|
|
163
|
+
### src/extractors/languages/typescript.js
|
|
164
|
+
| Function | Params | Returns |
|
|
165
|
+
|----------|--------|---------|
|
|
166
|
+
| extractNextJSPagesRoutes | ast, filename | — |
|
|
167
|
+
| walk | node, visitor | — |
|
|
168
|
+
| extractTSFunctions | ast | — |
|
|
169
|
+
| extractFuncFromNode | node, functions | — |
|
|
170
|
+
| shouldSkip | name, params | — |
|
|
171
|
+
| extractTSParams | params | — |
|
|
172
|
+
| extractReturnType | funcNode | — |
|
|
173
|
+
| typeToString | typeNode | — |
|
|
174
|
+
| extractTSInterfaces | ast | — |
|
|
175
|
+
|
|
176
|
+
### src/extractors/loader.js
|
|
177
|
+
| Function | Params | Returns |
|
|
178
|
+
|----------|--------|---------|
|
|
179
|
+
| loadLanguagePlugins | — | — |
|
|
180
|
+
| getPluginForFile | plugins, filePath | — |
|
|
181
|
+
|
|
182
|
+
### src/extractors/models.js
|
|
183
|
+
| Function | Params | Returns |
|
|
184
|
+
|----------|--------|---------|
|
|
185
|
+
| extractModels | content | — |
|
|
186
|
+
|
|
187
|
+
### src/extractors/routes.js
|
|
188
|
+
| Function | Params | Returns |
|
|
189
|
+
|----------|--------|---------|
|
|
190
|
+
| collapseMultilineDecorators | content | — |
|
|
191
|
+
| extractRoutes | content | — |
|
|
192
|
+
|
|
193
|
+
### src/extractors/stack.js
|
|
194
|
+
| Function | Params | Returns |
|
|
195
|
+
|----------|--------|---------|
|
|
196
|
+
| detectStackFromContent | content, filename | — |
|
|
197
|
+
| detectStackFromPackageJson | projectRoot | — |
|
|
198
|
+
| detectStackFromRequirements | projectRoot | — |
|
|
199
|
+
| buildStackLine | fileContents, projectRoot | — |
|
|
200
|
+
| escapeRegex | str | — |
|
|
201
|
+
|
|
202
|
+
### src/security/ignore.js
|
|
203
|
+
| Function | Params | Returns |
|
|
204
|
+
|----------|--------|---------|
|
|
205
|
+
| parseCartoIgnore | projectRoot | — |
|
|
206
|
+
| matchPattern | str, pattern | — |
|
|
207
|
+
|
|
208
|
+
### src/sync.js
|
|
209
|
+
| Function | Params | Returns |
|
|
210
|
+
|----------|--------|---------|
|
|
211
|
+
| safeReadFile | filePath, warnings | — |
|
|
212
|
+
| scanStructure | basePath | — |
|
|
213
|
+
| runFullSync | config | — |
|
|
214
|
+
|
|
215
|
+
### src/watcher/watch.js
|
|
216
|
+
| Function | Params | Returns |
|
|
217
|
+
|----------|--------|---------|
|
|
218
|
+
| startWatcher | filePaths, onChange | — |
|
|
219
|
+
|
|
220
|
+
## Files
|
|
221
|
+
|
|
222
|
+
| File | Responsibility |
|
|
223
|
+
|------|----------------|
|
|
224
|
+
| src/agents/domains.js | AI/LLM integration |
|
|
225
|
+
| src/agents/formatter.js | 2 functions |
|
|
226
|
+
| src/agents/merger.js | 1 functions |
|
|
227
|
+
| src/agents/validator.js | 6 functions |
|
|
228
|
+
| src/cli/impact.js | 3 functions |
|
|
229
|
+
| src/cli/index.js | 1 functions |
|
|
230
|
+
| src/cli/init.js | 4 functions |
|
|
231
|
+
| src/cli/remove.js | 1 functions |
|
|
232
|
+
| src/cli/sync.js | 1 functions |
|
|
233
|
+
| src/cli/update-check.js | Rule checks (2 functions) |
|
|
234
|
+
| src/cli/watch.js | 1 functions |
|
|
235
|
+
| src/detector/files.js | 10 functions |
|
|
236
|
+
| src/detector/framework.js | 6 functions |
|
|
237
|
+
| src/extractors/dbtables.js | Database operations |
|
|
238
|
+
| src/extractors/envvars.js | 1 functions |
|
|
239
|
+
| src/extractors/filemap.js | 1 functions |
|
|
240
|
+
| src/extractors/frontend.js | 1 functions |
|
|
241
|
+
| src/extractors/functions.js | 2 functions |
|
|
242
|
+
| src/extractors/imports.js | 8 functions |
|
|
243
|
+
| src/extractors/languages/html.js | AI/LLM integration |
|
|
244
|
+
| src/extractors/languages/javascript.js | 8 functions |
|
|
245
|
+
| src/extractors/languages/r.js | 8 functions |
|
|
246
|
+
| src/extractors/languages/typescript.js | 9 functions |
|
|
247
|
+
| src/extractors/loader.js | 2 functions |
|
|
248
|
+
| src/extractors/models.js | Data models |
|
|
249
|
+
| src/extractors/routes.js | 2 functions |
|
|
250
|
+
| src/extractors/stack.js | 5 functions |
|
|
251
|
+
| src/security/ignore.js | 2 functions |
|
|
252
|
+
| src/sync.js | 3 functions |
|
|
253
|
+
| src/watcher/watch.js | 1 functions |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# DATABASE (auto-generated by Carto)
|
|
2
|
+
|
|
3
|
+
> Read this when working on database features.
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
|
|
7
|
+
### src/extractors/languages/prisma.js
|
|
8
|
+
| Function | Params | Returns |
|
|
9
|
+
|----------|--------|---------|
|
|
10
|
+
| extractPrismaModels | content | — |
|
|
11
|
+
| extractPrismaDBTables | content | — |
|
|
12
|
+
| extractModelBlocks | content | — |
|
|
13
|
+
| toSnakeCase | str | — |
|
|
14
|
+
|
|
15
|
+
## Files
|
|
16
|
+
|
|
17
|
+
| File | Responsibility |
|
|
18
|
+
|------|----------------|
|
|
19
|
+
| src/extractors/languages/prisma.js | 4 functions |
|
package/.carto/map.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1",
|
|
3
|
+
"generated": "2026-05-23T05:28:54.807Z",
|
|
4
|
+
"imports": {
|
|
5
|
+
"src/cli/index.js": [
|
|
6
|
+
"package.json",
|
|
7
|
+
"src/cli/impact.js",
|
|
8
|
+
"src/cli/init.js",
|
|
9
|
+
"src/cli/remove.js",
|
|
10
|
+
"src/cli/serve.js",
|
|
11
|
+
"src/cli/sync.js",
|
|
12
|
+
"src/cli/watch.js"
|
|
13
|
+
],
|
|
14
|
+
"src/cli/init.js": [
|
|
15
|
+
"src/detector/files.js",
|
|
16
|
+
"src/detector/framework.js",
|
|
17
|
+
"src/security/ignore.js",
|
|
18
|
+
"src/sync.js"
|
|
19
|
+
],
|
|
20
|
+
"src/cli/sync.js": [
|
|
21
|
+
"src/cli/init.js",
|
|
22
|
+
"src/cli/update-check.js",
|
|
23
|
+
"src/sync.js"
|
|
24
|
+
],
|
|
25
|
+
"src/cli/update-check.js": [
|
|
26
|
+
"package.json"
|
|
27
|
+
],
|
|
28
|
+
"src/cli/watch.js": [
|
|
29
|
+
"src/cli/init.js",
|
|
30
|
+
"src/cli/update-check.js",
|
|
31
|
+
"src/sync.js",
|
|
32
|
+
"src/watcher/watch.js"
|
|
33
|
+
],
|
|
34
|
+
"src/extractors/languages/html.js": [
|
|
35
|
+
"src/extractors/frontend.js"
|
|
36
|
+
],
|
|
37
|
+
"src/extractors/languages/python.js": [
|
|
38
|
+
"src/extractors/dbtables.js",
|
|
39
|
+
"src/extractors/envvars.js",
|
|
40
|
+
"src/extractors/functions.js",
|
|
41
|
+
"src/extractors/models.js",
|
|
42
|
+
"src/extractors/routes.js"
|
|
43
|
+
],
|
|
44
|
+
"src/extractors/languages/typescript.js": [
|
|
45
|
+
"src/extractors/languages/javascript.js"
|
|
46
|
+
],
|
|
47
|
+
"src/sync.js": [
|
|
48
|
+
"src/agents/domains.js",
|
|
49
|
+
"src/agents/formatter.js",
|
|
50
|
+
"src/agents/merger.js",
|
|
51
|
+
"src/agents/validator.js",
|
|
52
|
+
"src/extractors/filemap.js",
|
|
53
|
+
"src/extractors/imports.js",
|
|
54
|
+
"src/extractors/loader.js",
|
|
55
|
+
"src/extractors/stack.js"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"routes": [],
|
|
59
|
+
"routesByFile": {},
|
|
60
|
+
"highImpact": [
|
|
61
|
+
{
|
|
62
|
+
"file": "src/cli/init.js",
|
|
63
|
+
"dependents": 3
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"file": "src/sync.js",
|
|
67
|
+
"dependents": 3
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"file": "package.json",
|
|
71
|
+
"dependents": 2
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"file": "src/cli/update-check.js",
|
|
75
|
+
"dependents": 2
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"entryPoints": [
|
|
79
|
+
"src/cli/index.js",
|
|
80
|
+
"src/extractors/languages/python.js"
|
|
81
|
+
],
|
|
82
|
+
"stack": []
|
|
83
|
+
}
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- CARTO:AUTO:START -->
|
|
2
|
+
## Project Structure (auto)
|
|
3
|
+
|
|
4
|
+
- 📁 .kiro/
|
|
5
|
+
- 📁 src/
|
|
6
|
+
- 📁 test/
|
|
7
|
+
- 📄 .cartoignore
|
|
8
|
+
- 📄 .DS_Store
|
|
9
|
+
- 📄 .gitignore
|
|
10
|
+
- 📄 .npmignore
|
|
11
|
+
- 📄 CARTO_BRAIN.md
|
|
12
|
+
- 📄 CONTRIBUTING.md
|
|
13
|
+
- 📄 LICENSE
|
|
14
|
+
- 📄 mcp.md
|
|
15
|
+
- 📄 package-lock.json
|
|
16
|
+
- 📄 package.json
|
|
17
|
+
- 📄 PROGRESS.md
|
|
18
|
+
- 📄 README.md
|
|
19
|
+
**Entry points:** src/cli/index.js, src/extractors/languages/python.js
|
|
20
|
+
**High impact:** src/cli/init.js (3 dependents), src/sync.js (3 dependents), package.json (2 dependents), src/cli/update-check.js (2 dependents)
|
|
21
|
+
|
|
22
|
+
## Context Files (auto)
|
|
23
|
+
|
|
24
|
+
Carto generated domain-specific context files in `.carto/context/`.
|
|
25
|
+
Read the relevant file before working on that area:
|
|
26
|
+
|
|
27
|
+
| Domain | File | Read when... |
|
|
28
|
+
|--------|------|--------------|
|
|
29
|
+
| Auth | `.carto/context/AUTH.md` | Working on login, sessions, OAuth |
|
|
30
|
+
| Payments | `.carto/context/PAYMENTS.md` | Working on billing, Stripe |
|
|
31
|
+
| tRPC | `.carto/context/TRPC.md` | Working on API procedures |
|
|
32
|
+
| Database | `.carto/context/DATABASE.md` | Working on models, schema |
|
|
33
|
+
| Events | `.carto/context/EVENTS.md` | Working on webhooks, jobs |
|
|
34
|
+
| Core | `.carto/context/CORE.md` | General utilities, shared code |
|
|
35
|
+
|
|
36
|
+
> Run `carto serve` to enable live graph queries from Kiro, Cursor, and Claude.
|
|
37
|
+
<!-- CARTO:AUTO:END -->
|
package/CONTRIBUTING.md
CHANGED
|
@@ -8,9 +8,9 @@ Carto is free, open source, and community-maintained. The core team owns the mer
|
|
|
8
8
|
|
|
9
9
|
### Tier 1 — Languages (safe to add, easy to review)
|
|
10
10
|
|
|
11
|
-
New language support lives in `src/
|
|
11
|
+
New language support lives in `src/extractors/languages/`. Each language is an isolated module.
|
|
12
12
|
|
|
13
|
-
Currently supported: JavaScript/TypeScript, Python.
|
|
13
|
+
Currently supported: JavaScript/TypeScript, Python, R.
|
|
14
14
|
|
|
15
15
|
Wanted: Go, Rust, Ruby, Java, PHP, C#.
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ Wanted: Go, Rust, Ruby, Java, PHP, C#.
|
|
|
18
18
|
|
|
19
19
|
Framework-specific route and model extraction lives in `src/extractors/`. Each framework is an isolated module.
|
|
20
20
|
|
|
21
|
-
Currently supported: FastAPI, Express, Next.js App Router, Prisma, HTML fetch().
|
|
21
|
+
Currently supported: FastAPI, Express, Next.js App Router, Prisma, HTML fetch(), Plumber, Shiny.
|
|
22
22
|
|
|
23
23
|
Wanted: Django, Rails, Laravel, NestJS, Hono, Gin, Spring.
|
|
24
24
|
|
|
@@ -38,10 +38,10 @@ Wanted: Django, Rails, Laravel, NestJS, Hono, Gin, Spring.
|
|
|
38
38
|
3. Return:
|
|
39
39
|
```js
|
|
40
40
|
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
routes: [{ method, path, functionName }],
|
|
42
|
+
models: [{ className, fields: [{ name, type }] }],
|
|
43
|
+
functions: [{ name, params }],
|
|
44
|
+
envVars: ['VAR_NAME']
|
|
45
45
|
}
|
|
46
46
|
```
|
|
47
47
|
4. Add it to `src/extractors/loader.js` language map
|
|
@@ -81,7 +81,7 @@ Wanted: Django, Rails, Laravel, NestJS, Hono, Gin, Spring.
|
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
git clone https://github.com/theanshsonkar/carto
|
|
84
|
-
cd carto
|
|
84
|
+
cd carto
|
|
85
85
|
npm install
|
|
86
86
|
node src/cli/index.js init # test in any project
|
|
87
87
|
```
|
package/README.md
CHANGED
|
@@ -135,14 +135,13 @@ npx carto-md init
|
|
|
135
135
|
# 1. Go to your project
|
|
136
136
|
cd your-project
|
|
137
137
|
|
|
138
|
-
# 2.
|
|
138
|
+
# 2. Run once — like git init
|
|
139
139
|
carto init
|
|
140
|
-
|
|
141
|
-
# 3. Keep it live while you work
|
|
142
|
-
carto watch
|
|
143
140
|
```
|
|
144
141
|
|
|
145
|
-
|
|
142
|
+
That's it. Carto installs a git hook. Every `git commit` syncs AGENTS.md automatically — no watching, no manual runs, nothing to remember.
|
|
143
|
+
|
|
144
|
+
Want live updates on every file save too? Run `carto watch` in a background terminal.
|
|
146
145
|
|
|
147
146
|
---
|
|
148
147
|
|
|
@@ -150,17 +149,17 @@ Leave `carto watch` running in a background terminal. Every file save updates AG
|
|
|
150
149
|
|
|
151
150
|
| Command | What it does |
|
|
152
151
|
|---------|-------------|
|
|
153
|
-
| `carto init` | Detect stack, generate AGENTS.md, install git hook |
|
|
154
|
-
| `carto watch` |
|
|
155
|
-
| `carto sync` | One-time refresh
|
|
152
|
+
| `carto init` | Detect stack, generate AGENTS.md, install git hook — auto-syncs on every commit |
|
|
153
|
+
| `carto watch` | Live updates on every file save — optional, for between commits |
|
|
154
|
+
| `carto sync` | One-time manual refresh |
|
|
156
155
|
| `carto impact <file>` | Show blast radius before touching a file |
|
|
157
156
|
| `carto remove` | Remove AGENTS.md and .carto/ from this project |
|
|
158
157
|
| `carto --version` | Show version |
|
|
159
158
|
|
|
160
159
|
**When to use each:**
|
|
161
|
-
- `init` — once
|
|
162
|
-
- `watch` —
|
|
163
|
-
- `sync` — skipped watch and need a fresh snapshot
|
|
160
|
+
- `init` — once per project, sets everything up
|
|
161
|
+
- `watch` — optional, if you want updates between commits
|
|
162
|
+
- `sync` — if you skipped watch and need a fresh snapshot
|
|
164
163
|
- `impact` — before editing anything critical
|
|
165
164
|
|
|
166
165
|
---
|
|
@@ -172,7 +171,7 @@ Leave `carto watch` running in a background terminal. Every file save updates AG
|
|
|
172
171
|
| Python | FastAPI, Pydantic |
|
|
173
172
|
| JavaScript | Express, Next.js |
|
|
174
173
|
| TypeScript | Express, Next.js, Prisma |
|
|
175
|
-
| R | Plumber, Shiny |
|
|
174
|
+
| R | Plumber, Shiny, R6, S7 |
|
|
176
175
|
| HTML | fetch() calls |
|
|
177
176
|
|
|
178
177
|
More languages via community — open an issue or see [CONTRIBUTING.md](CONTRIBUTING.md).
|
package/mcp.md
ADDED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carto-md",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "The context layer for AI-native development.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"carto": "src/cli/index.js"
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@babel/parser": "^7.29.3",
|
|
14
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
14
15
|
"chokidar": "^3.6.0"
|
|
15
16
|
},
|
|
16
17
|
"engines": {
|