carto-md 1.0.19 → 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.
@@ -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 |
@@ -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/ast/languages/`. Each language is an isolated module.
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
- functions: [{ name, params, returns }],
42
- classes: [{ name, fields }],
43
- imports: [{ from, symbols }],
44
- exports: [{ name }]
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-ansh
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
@@ -171,7 +171,7 @@ Want live updates on every file save too? Run `carto watch` in a background term
171
171
  | Python | FastAPI, Pydantic |
172
172
  | JavaScript | Express, Next.js |
173
173
  | TypeScript | Express, Next.js, Prisma |
174
- | R | Plumber, Shiny |
174
+ | R | Plumber, Shiny, R6, S7 |
175
175
  | HTML | fetch() calls |
176
176
 
177
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.19",
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": {