-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtmp-graph.json
More file actions
1 lines (1 loc) · 143 KB
/
tmp-graph.json
File metadata and controls
1 lines (1 loc) · 143 KB
1
{"version":"0.1.0","projectPath":"C:\\projects\\CodeAtlas","analyzedAt":"2026-04-02T00:37:55.093Z","stats":{"totalFiles":196,"analyzedFiles":196,"skippedFiles":0,"failedFiles":0,"totalNodes":518,"totalEdges":393,"analysisDurationMs":6613,"totalFunctions":274,"totalClasses":9,"totalCallEdges":265},"graph":{"nodes":[{"id":"design","type":"directory","label":"design","filePath":"design","metadata":{"role":"infrastructure"}},{"id":"design/sprint2-theme-draft.ts","type":"file","label":"sprint2-theme-draft.ts","filePath":"design/sprint2-theme-draft.ts","metadata":{"fileSize":18792,"language":"typescript","lastModified":"2026-03-30T11:15:42.748Z","importCount":0,"exportCount":11,"role":"infrastructure"}},{"id":"packages","type":"directory","label":"packages","filePath":"packages","metadata":{"role":"infrastructure"}},{"id":"packages/cli","type":"directory","label":"cli","filePath":"packages/cli","metadata":{"role":"infrastructure"}},{"id":"packages/cli/src","type":"directory","label":"src","filePath":"packages/cli/src","metadata":{"role":"infrastructure"}},{"id":"packages/cli/src/commands","type":"directory","label":"commands","filePath":"packages/cli/src/commands","metadata":{"role":"infrastructure"}},{"id":"packages/cli/src/commands/analyze.ts","type":"file","label":"analyze.ts","filePath":"packages/cli/src/commands/analyze.ts","metadata":{"fileSize":3201,"language":"typescript","lastModified":"2026-03-30T06:28:57.911Z","importCount":3,"exportCount":2,"role":"business-logic"}},{"id":"packages/cli/src/commands/web.ts","type":"file","label":"web.ts","filePath":"packages/cli/src/commands/web.ts","metadata":{"fileSize":5995,"language":"typescript","lastModified":"2026-03-31T04:59:57.714Z","importCount":7,"exportCount":2,"role":"business-logic"}},{"id":"packages/cli/src/cache.ts","type":"file","label":"cache.ts","filePath":"packages/cli/src/cache.ts","metadata":{"fileSize":2912,"language":"typescript","lastModified":"2026-03-30T20:10:44.540Z","importCount":3,"exportCount":3,"role":"utility"}},{"id":"packages/cli/src/config.ts","type":"file","label":"config.ts","filePath":"packages/cli/src/config.ts","metadata":{"fileSize":5279,"language":"typescript","lastModified":"2026-03-31T03:06:43.245Z","importCount":2,"exportCount":7,"role":"infrastructure"}},{"id":"packages/cli/src/index.ts","type":"file","label":"index.ts","filePath":"packages/cli/src/index.ts","metadata":{"fileSize":1839,"language":"typescript","lastModified":"2026-03-31T10:05:01.193Z","importCount":3,"exportCount":0,"role":"utility"}},{"id":"packages/cli/src/server.ts","type":"file","label":"server.ts","filePath":"packages/cli/src/server.ts","metadata":{"fileSize":18622,"language":"typescript","lastModified":"2026-04-01T12:21:20.487Z","importCount":7,"exportCount":2,"role":"utility"}},{"id":"packages/cli/__tests__","type":"directory","label":"__tests__","filePath":"packages/cli/__tests__","metadata":{"role":"infrastructure"}},{"id":"packages/cli/__tests__/cache.test.ts","type":"file","label":"cache.test.ts","filePath":"packages/cli/__tests__/cache.test.ts","metadata":{"fileSize":3086,"language":"typescript","lastModified":"2026-03-30T20:20:27.314Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/cli/__tests__/config.test.ts","type":"file","label":"config.test.ts","filePath":"packages/cli/__tests__/config.test.ts","metadata":{"fileSize":13565,"language":"typescript","lastModified":"2026-03-31T05:18:42.552Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/cli/tsup.config.ts","type":"file","label":"tsup.config.ts","filePath":"packages/cli/tsup.config.ts","metadata":{"fileSize":477,"language":"typescript","lastModified":"2026-03-30T06:45:24.567Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":"packages/cli/vitest.config.ts","type":"file","label":"vitest.config.ts","filePath":"packages/cli/vitest.config.ts","metadata":{"fileSize":365,"language":"typescript","lastModified":"2026-03-30T07:40:59.132Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":"packages/core","type":"directory","label":"core","filePath":"packages/core","metadata":{"role":"infrastructure"}},{"id":"packages/core/scripts","type":"directory","label":"scripts","filePath":"packages/core/scripts","metadata":{"role":"infrastructure"}},{"id":"packages/core/scripts/verify-parser.ts","type":"file","label":"verify-parser.ts","filePath":"packages/core/scripts/verify-parser.ts","metadata":{"fileSize":3679,"language":"typescript","lastModified":"2026-03-30T06:12:47.940Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/core/src","type":"directory","label":"src","filePath":"packages/core/src","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/ai","type":"directory","label":"ai","filePath":"packages/core/src/ai","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/ai/anthropic.ts","type":"file","label":"anthropic.ts","filePath":"packages/core/src/ai/anthropic.ts","metadata":{"fileSize":3361,"language":"typescript","lastModified":"2026-03-30T20:08:56.310Z","importCount":2,"exportCount":1,"role":"infrastructure"}},{"id":"packages/core/src/ai/disabled.ts","type":"file","label":"disabled.ts","filePath":"packages/core/src/ai/disabled.ts","metadata":{"fileSize":518,"language":"typescript","lastModified":"2026-03-30T06:18:47.469Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":"packages/core/src/ai/index.ts","type":"file","label":"index.ts","filePath":"packages/core/src/ai/index.ts","metadata":{"fileSize":2585,"language":"typescript","lastModified":"2026-03-31T08:32:34.771Z","importCount":5,"exportCount":11,"role":"utility"}},{"id":"packages/core/src/ai/ollama.ts","type":"file","label":"ollama.ts","filePath":"packages/core/src/ai/ollama.ts","metadata":{"fileSize":3606,"language":"typescript","lastModified":"2026-03-31T03:04:52.819Z","importCount":2,"exportCount":2,"role":"infrastructure"}},{"id":"packages/core/src/ai/openai.ts","type":"file","label":"openai.ts","filePath":"packages/core/src/ai/openai.ts","metadata":{"fileSize":3256,"language":"typescript","lastModified":"2026-03-30T20:08:44.303Z","importCount":2,"exportCount":1,"role":"infrastructure"}},{"id":"packages/core/src/ai/overview-builder.ts","type":"file","label":"overview-builder.ts","filePath":"packages/core/src/ai/overview-builder.ts","metadata":{"fileSize":5082,"language":"typescript","lastModified":"2026-03-31T08:32:25.542Z","importCount":1,"exportCount":3,"role":"infrastructure"}},{"id":"packages/core/src/ai/types.ts","type":"file","label":"types.ts","filePath":"packages/core/src/ai/types.ts","metadata":{"fileSize":259,"language":"typescript","lastModified":"2026-03-30T06:18:43.174Z","importCount":0,"exportCount":1,"role":"utility"}},{"id":"packages/core/src/ai/utils.ts","type":"file","label":"utils.ts","filePath":"packages/core/src/ai/utils.ts","metadata":{"fileSize":2199,"language":"typescript","lastModified":"2026-03-30T20:08:25.423Z","importCount":1,"exportCount":3,"role":"infrastructure"}},{"id":"packages/core/src/analyzer","type":"directory","label":"analyzer","filePath":"packages/core/src/analyzer","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/analyzer/call-analyzer.ts","type":"file","label":"call-analyzer.ts","filePath":"packages/core/src/analyzer/call-analyzer.ts","metadata":{"fileSize":11660,"language":"typescript","lastModified":"2026-03-31T06:11:09.363Z","importCount":2,"exportCount":2,"role":"infrastructure"}},{"id":"packages/core/src/analyzer/graph-builder.ts","type":"file","label":"graph-builder.ts","filePath":"packages/core/src/analyzer/graph-builder.ts","metadata":{"fileSize":15213,"language":"typescript","lastModified":"2026-04-01T00:28:33.349Z","importCount":10,"exportCount":5,"role":"utility"}},{"id":"packages/core/src/analyzer/index.ts","type":"file","label":"index.ts","filePath":"packages/core/src/analyzer/index.ts","metadata":{"fileSize":3376,"language":"typescript","lastModified":"2026-03-31T06:13:50.849Z","importCount":4,"exportCount":2,"role":"utility"}},{"id":"packages/core/src/analyzer/role-classifier.ts","type":"file","label":"role-classifier.ts","filePath":"packages/core/src/analyzer/role-classifier.ts","metadata":{"fileSize":8584,"language":"typescript","lastModified":"2026-04-01T00:27:27.960Z","importCount":1,"exportCount":3,"role":"infrastructure"}},{"id":"packages/core/src/analyzers","type":"directory","label":"analyzers","filePath":"packages/core/src/analyzers","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/analyzers/directory-aggregator.ts","type":"file","label":"directory-aggregator.ts","filePath":"packages/core/src/analyzers/directory-aggregator.ts","metadata":{"fileSize":11601,"language":"typescript","lastModified":"2026-04-01T13:58:34.092Z","importCount":1,"exportCount":5,"role":"infrastructure"}},{"id":"packages/core/src/parser","type":"directory","label":"parser","filePath":"packages/core/src/parser","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/parser/providers","type":"directory","label":"providers","filePath":"packages/core/src/parser/providers","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/parser/providers/native-tree-sitter.ts","type":"file","label":"native-tree-sitter.ts","filePath":"packages/core/src/parser/providers/native-tree-sitter.ts","metadata":{"fileSize":3469,"language":"typescript","lastModified":"2026-03-30T06:14:46.350Z","importCount":5,"exportCount":1,"role":"utility"}},{"id":"packages/core/src/parser/providers/typescript-compiler.ts","type":"file","label":"typescript-compiler.ts","filePath":"packages/core/src/parser/providers/typescript-compiler.ts","metadata":{"fileSize":3173,"language":"typescript","lastModified":"2026-03-30T06:12:15.589Z","importCount":4,"exportCount":1,"role":"utility"}},{"id":"packages/core/src/parser/providers/wasm-tree-sitter.ts","type":"file","label":"wasm-tree-sitter.ts","filePath":"packages/core/src/parser/providers/wasm-tree-sitter.ts","metadata":{"fileSize":3339,"language":"typescript","lastModified":"2026-03-30T06:11:59.859Z","importCount":6,"exportCount":1,"role":"utility"}},{"id":"packages/core/src/parser/ast-provider.ts","type":"file","label":"ast-provider.ts","filePath":"packages/core/src/parser/ast-provider.ts","metadata":{"fileSize":2392,"language":"typescript","lastModified":"2026-03-30T06:11:24.536Z","importCount":0,"exportCount":3,"role":"infrastructure"}},{"id":"packages/core/src/parser/function-extractor.ts","type":"file","label":"function-extractor.ts","filePath":"packages/core/src/parser/function-extractor.ts","metadata":{"fileSize":19131,"language":"typescript","lastModified":"2026-03-31T06:09:55.841Z","importCount":2,"exportCount":4,"role":"infrastructure"}},{"id":"packages/core/src/parser/import-extractor.ts","type":"file","label":"import-extractor.ts","filePath":"packages/core/src/parser/import-extractor.ts","metadata":{"fileSize":17626,"language":"typescript","lastModified":"2026-03-30T06:21:00.540Z","importCount":2,"exportCount":4,"role":"infrastructure"}},{"id":"packages/core/src/parser/import-resolver.ts","type":"file","label":"import-resolver.ts","filePath":"packages/core/src/parser/import-resolver.ts","metadata":{"fileSize":10347,"language":"typescript","lastModified":"2026-03-30T06:23:04.957Z","importCount":4,"exportCount":5,"role":"utility"}},{"id":"packages/core/src/parser/index.ts","type":"file","label":"index.ts","filePath":"packages/core/src/parser/index.ts","metadata":{"fileSize":1182,"language":"typescript","lastModified":"2026-03-31T06:09:22.704Z","importCount":0,"exportCount":11,"role":"infrastructure"}},{"id":"packages/core/src/parser/parser-factory.ts","type":"file","label":"parser-factory.ts","filePath":"packages/core/src/parser/parser-factory.ts","metadata":{"fileSize":1989,"language":"typescript","lastModified":"2026-03-30T06:12:25.880Z","importCount":4,"exportCount":2,"role":"utility"}},{"id":"packages/core/src/scanner","type":"directory","label":"scanner","filePath":"packages/core/src/scanner","metadata":{"role":"infrastructure"}},{"id":"packages/core/src/scanner/index.ts","type":"file","label":"index.ts","filePath":"packages/core/src/scanner/index.ts","metadata":{"fileSize":7442,"language":"typescript","lastModified":"2026-03-30T06:20:36.296Z","importCount":4,"exportCount":3,"role":"utility"}},{"id":"packages/core/src/index.ts","type":"file","label":"index.ts","filePath":"packages/core/src/index.ts","metadata":{"fileSize":906,"language":"typescript","lastModified":"2026-04-01T12:20:58.616Z","importCount":0,"exportCount":9,"role":"infrastructure"}},{"id":"packages/core/src/types.ts","type":"file","label":"types.ts","filePath":"packages/core/src/types.ts","metadata":{"fileSize":3485,"language":"typescript","lastModified":"2026-04-01T00:22:22.368Z","importCount":0,"exportCount":13,"role":"utility"}},{"id":"packages/core/__tests__","type":"directory","label":"__tests__","filePath":"packages/core/__tests__","metadata":{"role":"infrastructure"}},{"id":"packages/core/__tests__/fixtures","type":"directory","label":"fixtures","filePath":"packages/core/__tests__/fixtures","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/cjs-project","type":"directory","label":"cjs-project","filePath":"packages/core/__tests__/fixtures/cjs-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/cjs-project/config.js","type":"file","label":"config.js","filePath":"packages/core/__tests__/fixtures/cjs-project/config.js","metadata":{"fileSize":34,"language":"javascript","lastModified":"2026-03-30T06:47:42.791Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/cjs-project/index.js","type":"file","label":"index.js","filePath":"packages/core/__tests__/fixtures/cjs-project/index.js","metadata":{"fileSize":46,"language":"javascript","lastModified":"2026-03-30T06:47:41.247Z","importCount":1,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/cjs-project/loader.js","type":"file","label":"loader.js","filePath":"packages/core/__tests__/fixtures/cjs-project/loader.js","metadata":{"fileSize":77,"language":"javascript","lastModified":"2026-03-30T06:47:42.115Z","importCount":1,"exportCount":0,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/error-project","type":"directory","label":"error-project","filePath":"packages/core/__tests__/fixtures/error-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/error-project/bad.ts","type":"file","label":"bad.ts","filePath":"packages/core/__tests__/fixtures/error-project/bad.ts","metadata":{"fileSize":22,"language":"typescript","lastModified":"2026-03-30T06:47:55.509Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/error-project/good.ts","type":"file","label":"good.ts","filePath":"packages/core/__tests__/fixtures/error-project/good.ts","metadata":{"fileSize":20,"language":"typescript","lastModified":"2026-03-30T06:47:54.786Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level","type":"directory","label":"function-level","filePath":"packages/core/__tests__/fixtures/function-level","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/basic-functions.ts","type":"file","label":"basic-functions.ts","filePath":"packages/core/__tests__/fixtures/function-level/basic-functions.ts","metadata":{"fileSize":770,"language":"typescript","lastModified":"2026-03-31T07:10:34.496Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/call-relations.ts","type":"file","label":"call-relations.ts","filePath":"packages/core/__tests__/fixtures/function-level/call-relations.ts","metadata":{"fileSize":515,"language":"typescript","lastModified":"2026-03-31T07:10:46.013Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/class-example.ts","type":"file","label":"class-example.ts","filePath":"packages/core/__tests__/fixtures/function-level/class-example.ts","metadata":{"fileSize":570,"language":"typescript","lastModified":"2026-03-31T07:10:39.363Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/cross-file-callee.ts","type":"file","label":"cross-file-callee.ts","filePath":"packages/core/__tests__/fixtures/function-level/cross-file-callee.ts","metadata":{"fileSize":368,"language":"typescript","lastModified":"2026-03-31T07:10:50.088Z","importCount":0,"exportCount":3,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/cross-file-caller.ts","type":"file","label":"cross-file-caller.ts","filePath":"packages/core/__tests__/fixtures/function-level/cross-file-caller.ts","metadata":{"fileSize":353,"language":"typescript","lastModified":"2026-03-31T07:10:53.923Z","importCount":1,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/dynamic-calls.ts","type":"file","label":"dynamic-calls.ts","filePath":"packages/core/__tests__/fixtures/function-level/dynamic-calls.ts","metadata":{"fileSize":595,"language":"typescript","lastModified":"2026-03-31T07:10:59.854Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/function-level/nested-functions.ts","type":"file","label":"nested-functions.ts","filePath":"packages/core/__tests__/fixtures/function-level/nested-functions.ts","metadata":{"fileSize":685,"language":"typescript","lastModified":"2026-03-31T07:11:07.148Z","importCount":0,"exportCount":2,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ignore-project","type":"directory","label":"ignore-project","filePath":"packages/core/__tests__/fixtures/ignore-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ignore-project/index.js","type":"file","label":"index.js","filePath":"packages/core/__tests__/fixtures/ignore-project/index.js","metadata":{"fileSize":22,"language":"javascript","lastModified":"2026-03-30T06:47:58.337Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/mixed-project","type":"directory","label":"mixed-project","filePath":"packages/core/__tests__/fixtures/mixed-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/mixed-project/api.ts","type":"file","label":"api.ts","filePath":"packages/core/__tests__/fixtures/mixed-project/api.ts","metadata":{"fileSize":41,"language":"typescript","lastModified":"2026-03-30T06:47:51.232Z","importCount":0,"exportCount":1,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/mixed-project/index.ts","type":"file","label":"index.ts","filePath":"packages/core/__tests__/fixtures/mixed-project/index.ts","metadata":{"fileSize":64,"language":"typescript","lastModified":"2026-03-30T06:47:46.165Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/mixed-project/legacy.js","type":"file","label":"legacy.js","filePath":"packages/core/__tests__/fixtures/mixed-project/legacy.js","metadata":{"fileSize":33,"language":"javascript","lastModified":"2026-03-30T06:47:51.801Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/simple-project","type":"directory","label":"simple-project","filePath":"packages/core/__tests__/fixtures/simple-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/simple-project/utils","type":"directory","label":"utils","filePath":"packages/core/__tests__/fixtures/simple-project/utils","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/simple-project/utils/helper.js","type":"file","label":"helper.js","filePath":"packages/core/__tests__/fixtures/simple-project/utils/helper.js","metadata":{"fileSize":45,"language":"javascript","lastModified":"2026-03-30T06:47:31.230Z","importCount":0,"exportCount":1,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/simple-project/utils/math.js","type":"file","label":"math.js","filePath":"packages/core/__tests__/fixtures/simple-project/utils/math.js","metadata":{"fileSize":36,"language":"javascript","lastModified":"2026-03-30T06:47:31.966Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/simple-project/index.js","type":"file","label":"index.js","filePath":"packages/core/__tests__/fixtures/simple-project/index.js","metadata":{"fileSize":64,"language":"javascript","lastModified":"2026-03-30T06:47:30.821Z","importCount":1,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project","type":"directory","label":"ts-project","filePath":"packages/core/__tests__/fixtures/ts-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/services","type":"directory","label":"services","filePath":"packages/core/__tests__/fixtures/ts-project/services","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/services/greeter.ts","type":"file","label":"greeter.ts","filePath":"packages/core/__tests__/fixtures/ts-project/services/greeter.ts","metadata":{"fileSize":102,"language":"typescript","lastModified":"2026-03-30T06:47:37.443Z","importCount":1,"exportCount":1,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/utils","type":"directory","label":"utils","filePath":"packages/core/__tests__/fixtures/ts-project/utils","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/utils/format.ts","type":"file","label":"format.ts","filePath":"packages/core/__tests__/fixtures/ts-project/utils/format.ts","metadata":{"fileSize":72,"language":"typescript","lastModified":"2026-03-30T06:47:37.930Z","importCount":0,"exportCount":1,"dependencyCount":2,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/utils/index.ts","type":"file","label":"index.ts","filePath":"packages/core/__tests__/fixtures/ts-project/utils/index.ts","metadata":{"fileSize":26,"language":"typescript","lastModified":"2026-03-30T06:47:38.487Z","importCount":0,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/index.ts","type":"file","label":"index.ts","filePath":"packages/core/__tests__/fixtures/ts-project/index.ts","metadata":{"fileSize":105,"language":"typescript","lastModified":"2026-03-30T06:47:35.762Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/ts-project/types.ts","type":"file","label":"types.ts","filePath":"packages/core/__tests__/fixtures/ts-project/types.ts","metadata":{"fileSize":42,"language":"typescript","lastModified":"2026-03-30T06:47:37.280Z","importCount":0,"exportCount":1,"dependencyCount":1,"role":"noise"}},{"id":"packages/core/__tests__/fixtures/unresolvable-project","type":"directory","label":"unresolvable-project","filePath":"packages/core/__tests__/fixtures/unresolvable-project","metadata":{"role":"noise"}},{"id":"packages/core/__tests__/fixtures/unresolvable-project/index.ts","type":"file","label":"index.ts","filePath":"packages/core/__tests__/fixtures/unresolvable-project/index.ts","metadata":{"fileSize":107,"language":"typescript","lastModified":"2026-03-30T07:35:21.685Z","importCount":2,"exportCount":1,"role":"noise"}},{"id":"packages/core/__tests__/ai-anthropic.test.ts","type":"file","label":"ai-anthropic.test.ts","filePath":"packages/core/__tests__/ai-anthropic.test.ts","metadata":{"fileSize":4153,"language":"typescript","lastModified":"2026-03-30T20:19:39.573Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/ai-ollama.test.ts","type":"file","label":"ai-ollama.test.ts","filePath":"packages/core/__tests__/ai-ollama.test.ts","metadata":{"fileSize":8911,"language":"typescript","lastModified":"2026-03-31T05:17:39.611Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/ai-openai.test.ts","type":"file","label":"ai-openai.test.ts","filePath":"packages/core/__tests__/ai-openai.test.ts","metadata":{"fileSize":4110,"language":"typescript","lastModified":"2026-03-30T20:19:25.754Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/ai-provider.test.ts","type":"file","label":"ai-provider.test.ts","filePath":"packages/core/__tests__/ai-provider.test.ts","metadata":{"fileSize":8180,"language":"typescript","lastModified":"2026-03-30T20:10:01.456Z","importCount":6,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/ai-utils.test.ts","type":"file","label":"ai-utils.test.ts","filePath":"packages/core/__tests__/ai-utils.test.ts","metadata":{"fileSize":2359,"language":"typescript","lastModified":"2026-03-30T20:19:53.145Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/analyzer.test.ts","type":"file","label":"analyzer.test.ts","filePath":"packages/core/__tests__/analyzer.test.ts","metadata":{"fileSize":17069,"language":"typescript","lastModified":"2026-03-30T07:35:30.613Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/call-analyzer.test.ts","type":"file","label":"call-analyzer.test.ts","filePath":"packages/core/__tests__/call-analyzer.test.ts","metadata":{"fileSize":10447,"language":"typescript","lastModified":"2026-03-31T07:12:56.008Z","importCount":8,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/directory-aggregator.test.ts","type":"file","label":"directory-aggregator.test.ts","filePath":"packages/core/__tests__/directory-aggregator.test.ts","metadata":{"fileSize":14852,"language":"typescript","lastModified":"2026-04-01T14:00:54.808Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/function-extractor.test.ts","type":"file","label":"function-extractor.test.ts","filePath":"packages/core/__tests__/function-extractor.test.ts","metadata":{"fileSize":10931,"language":"typescript","lastModified":"2026-03-31T07:11:39.902Z","importCount":7,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/integration-s6.test.ts","type":"file","label":"integration-s6.test.ts","filePath":"packages/core/__tests__/integration-s6.test.ts","metadata":{"fileSize":6103,"language":"typescript","lastModified":"2026-03-31T05:17:59.591Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/integration-s7.test.ts","type":"file","label":"integration-s7.test.ts","filePath":"packages/core/__tests__/integration-s7.test.ts","metadata":{"fileSize":8691,"language":"typescript","lastModified":"2026-03-31T07:24:32.430Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/overview-builder.test.ts","type":"file","label":"overview-builder.test.ts","filePath":"packages/core/__tests__/overview-builder.test.ts","metadata":{"fileSize":11934,"language":"typescript","lastModified":"2026-03-31T09:37:14.215Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/parser-extractor-treesitter.test.ts","type":"file","label":"parser-extractor-treesitter.test.ts","filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","metadata":{"fileSize":8053,"language":"typescript","lastModified":"2026-03-30T06:58:37.296Z","importCount":12,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/parser-extractor-ts-compiler.test.ts","type":"file","label":"parser-extractor-ts-compiler.test.ts","filePath":"packages/core/__tests__/parser-extractor-ts-compiler.test.ts","metadata":{"fileSize":9490,"language":"typescript","lastModified":"2026-03-30T07:32:21.685Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/parser-extractor-ts-path.test.ts","type":"file","label":"parser-extractor-ts-path.test.ts","filePath":"packages/core/__tests__/parser-extractor-ts-path.test.ts","metadata":{"fileSize":7505,"language":"typescript","lastModified":"2026-03-30T07:34:20.782Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/parser.test.ts","type":"file","label":"parser.test.ts","filePath":"packages/core/__tests__/parser.test.ts","metadata":{"fileSize":15254,"language":"typescript","lastModified":"2026-03-30T06:49:22.651Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/providers.test.ts","type":"file","label":"providers.test.ts","filePath":"packages/core/__tests__/providers.test.ts","metadata":{"fileSize":7785,"language":"typescript","lastModified":"2026-03-30T06:55:16.979Z","importCount":8,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/role-classifier.test.ts","type":"file","label":"role-classifier.test.ts","filePath":"packages/core/__tests__/role-classifier.test.ts","metadata":{"fileSize":14321,"language":"typescript","lastModified":"2026-04-01T00:28:15.204Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/core/__tests__/scanner.test.ts","type":"file","label":"scanner.test.ts","filePath":"packages/core/__tests__/scanner.test.ts","metadata":{"fileSize":10124,"language":"typescript","lastModified":"2026-03-30T06:48:37.220Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/core/tsup.config.ts","type":"file","label":"tsup.config.ts","filePath":"packages/core/tsup.config.ts","metadata":{"fileSize":485,"language":"typescript","lastModified":"2026-03-30T06:15:50.114Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":"packages/core/vitest.config.ts","type":"file","label":"vitest.config.ts","filePath":"packages/core/vitest.config.ts","metadata":{"fileSize":1320,"language":"typescript","lastModified":"2026-03-30T07:36:08.651Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":"packages/web","type":"directory","label":"web","filePath":"packages/web","metadata":{"role":"infrastructure"}},{"id":"packages/web/src","type":"directory","label":"src","filePath":"packages/web/src","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/adapters","type":"directory","label":"adapters","filePath":"packages/web/src/adapters","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/adapters/dagre-layout.ts","type":"file","label":"dagre-layout.ts","filePath":"packages/web/src/adapters/dagre-layout.ts","metadata":{"fileSize":7023,"language":"typescript","lastModified":"2026-04-01T13:59:57.211Z","importCount":4,"exportCount":1,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/adapters/graph-adapter.ts","type":"file","label":"graph-adapter.ts","filePath":"packages/web/src/adapters/graph-adapter.ts","metadata":{"fileSize":11402,"language":"typescript","lastModified":"2026-04-01T13:59:27.144Z","importCount":4,"exportCount":11,"dependencyCount":20,"role":"infrastructure"}},{"id":"packages/web/src/adapters/layout-router.ts","type":"file","label":"layout-router.ts","filePath":"packages/web/src/adapters/layout-router.ts","metadata":{"fileSize":2698,"language":"typescript","lastModified":"2026-04-01T07:42:28.268Z","importCount":4,"exportCount":5,"dependencyCount":5,"role":"infrastructure"}},{"id":"packages/web/src/adapters/path-tracing-layout.ts","type":"file","label":"path-tracing-layout.ts","filePath":"packages/web/src/adapters/path-tracing-layout.ts","metadata":{"fileSize":1178,"language":"typescript","lastModified":"2026-04-01T07:50:46.903Z","importCount":1,"exportCount":2,"role":"infrastructure"}},{"id":"packages/web/src/adapters/perspective-presets.ts","type":"file","label":"perspective-presets.ts","filePath":"packages/web/src/adapters/perspective-presets.ts","metadata":{"fileSize":1883,"language":"typescript","lastModified":"2026-04-01T12:30:22.097Z","importCount":1,"exportCount":1,"dependencyCount":2,"role":"business-logic"}},{"id":"packages/web/src/adapters/view-modes.ts","type":"file","label":"view-modes.ts","filePath":"packages/web/src/adapters/view-modes.ts","metadata":{"fileSize":2275,"language":"typescript","lastModified":"2026-04-01T07:42:13.591Z","importCount":1,"exportCount":2,"dependencyCount":2,"role":"business-logic"}},{"id":"packages/web/src/api","type":"directory","label":"api","filePath":"packages/web/src/api","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/api/ai.ts","type":"file","label":"ai.ts","filePath":"packages/web/src/api/ai.ts","metadata":{"fileSize":5863,"language":"typescript","lastModified":"2026-03-31T08:42:16.401Z","importCount":1,"exportCount":5,"dependencyCount":2,"role":"business-logic"}},{"id":"packages/web/src/api/graph.ts","type":"file","label":"graph.ts","filePath":"packages/web/src/api/graph.ts","metadata":{"fileSize":2937,"language":"typescript","lastModified":"2026-03-31T06:22:20.564Z","importCount":1,"exportCount":6,"dependencyCount":2,"role":"business-logic"}},{"id":"packages/web/src/api/node.ts","type":"file","label":"node.ts","filePath":"packages/web/src/api/node.ts","metadata":{"fileSize":1982,"language":"typescript","lastModified":"2026-03-30T20:13:29.417Z","importCount":1,"exportCount":2,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components","type":"directory","label":"components","filePath":"packages/web/src/components","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/components/AiSummary.tsx","type":"file","label":"AiSummary.tsx","filePath":"packages/web/src/components/AiSummary.tsx","metadata":{"fileSize":4206,"language":"typescript","lastModified":"2026-03-31T04:58:18.587Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/CallEdge.tsx","type":"file","label":"CallEdge.tsx","filePath":"packages/web/src/components/CallEdge.tsx","metadata":{"fileSize":3052,"language":"typescript","lastModified":"2026-03-31T06:23:53.657Z","importCount":3,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/CameraPresets.tsx","type":"file","label":"CameraPresets.tsx","filePath":"packages/web/src/components/CameraPresets.tsx","metadata":{"fileSize":4219,"language":"typescript","lastModified":"2026-03-31T00:08:10.418Z","importCount":4,"exportCount":1,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/ChainInfoPanel.tsx","type":"file","label":"ChainInfoPanel.tsx","filePath":"packages/web/src/components/ChainInfoPanel.tsx","metadata":{"fileSize":2202,"language":"typescript","lastModified":"2026-04-01T12:38:30.445Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/ClassNode.tsx","type":"file","label":"ClassNode.tsx","filePath":"packages/web/src/components/ClassNode.tsx","metadata":{"fileSize":3522,"language":"typescript","lastModified":"2026-03-31T06:23:37.541Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/CodePreview.tsx","type":"file","label":"CodePreview.tsx","filePath":"packages/web/src/components/CodePreview.tsx","metadata":{"fileSize":3458,"language":"typescript","lastModified":"2026-03-30T20:15:56.628Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/ContextMenu.tsx","type":"file","label":"ContextMenu.tsx","filePath":"packages/web/src/components/ContextMenu.tsx","metadata":{"fileSize":9104,"language":"typescript","lastModified":"2026-03-31T12:58:31.518Z","importCount":2,"exportCount":2,"role":"business-logic"}},{"id":"packages/web/src/components/ControlPanel.tsx","type":"file","label":"ControlPanel.tsx","filePath":"packages/web/src/components/ControlPanel.tsx","metadata":{"fileSize":19667,"language":"typescript","lastModified":"2026-04-01T07:41:09.765Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/ControlPanelSection.tsx","type":"file","label":"ControlPanelSection.tsx","filePath":"packages/web/src/components/ControlPanelSection.tsx","metadata":{"fileSize":3536,"language":"typescript","lastModified":"2026-03-31T12:47:30.716Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/DirectoryCard.tsx","type":"file","label":"DirectoryCard.tsx","filePath":"packages/web/src/components/DirectoryCard.tsx","metadata":{"fileSize":6046,"language":"typescript","lastModified":"2026-04-01T12:38:25.080Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/DirectoryNode.tsx","type":"file","label":"DirectoryNode.tsx","filePath":"packages/web/src/components/DirectoryNode.tsx","metadata":{"fileSize":5556,"language":"typescript","lastModified":"2026-03-31T01:35:35.122Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/DisplayPrefsSection.tsx","type":"file","label":"DisplayPrefsSection.tsx","filePath":"packages/web/src/components/DisplayPrefsSection.tsx","metadata":{"fileSize":7359,"language":"typescript","lastModified":"2026-03-31T13:00:35.411Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/E2EPanel.tsx","type":"file","label":"E2EPanel.tsx","filePath":"packages/web/src/components/E2EPanel.tsx","metadata":{"fileSize":22602,"language":"typescript","lastModified":"2026-04-01T09:13:11.579Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/EdgeSymbolLabel.tsx","type":"file","label":"EdgeSymbolLabel.tsx","filePath":"packages/web/src/components/EdgeSymbolLabel.tsx","metadata":{"fileSize":3407,"language":"typescript","lastModified":"2026-03-31T01:39:22.457Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/ElbowEdge.tsx","type":"file","label":"ElbowEdge.tsx","filePath":"packages/web/src/components/ElbowEdge.tsx","metadata":{"fileSize":2649,"language":"typescript","lastModified":"2026-04-01T12:38:41.431Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/FilterPanel.tsx","type":"file","label":"FilterPanel.tsx","filePath":"packages/web/src/components/FilterPanel.tsx","metadata":{"fileSize":21140,"language":"typescript","lastModified":"2026-04-01T00:53:53.307Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/FunctionNode.tsx","type":"file","label":"FunctionNode.tsx","filePath":"packages/web/src/components/FunctionNode.tsx","metadata":{"fileSize":4190,"language":"typescript","lastModified":"2026-03-31T06:23:26.307Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/FunctionPanel.tsx","type":"file","label":"FunctionPanel.tsx","filePath":"packages/web/src/components/FunctionPanel.tsx","metadata":{"fileSize":9401,"language":"typescript","lastModified":"2026-03-31T06:29:09.828Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/Graph3DCanvas.tsx","type":"file","label":"Graph3DCanvas.tsx","filePath":"packages/web/src/components/Graph3DCanvas.tsx","metadata":{"fileSize":63126,"language":"typescript","lastModified":"2026-04-01T13:58:24.794Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/GraphCanvas.tsx","type":"file","label":"GraphCanvas.tsx","filePath":"packages/web/src/components/GraphCanvas.tsx","metadata":{"fileSize":52093,"language":"typescript","lastModified":"2026-04-01T13:57:54.661Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/GraphContainer.tsx","type":"file","label":"GraphContainer.tsx","filePath":"packages/web/src/components/GraphContainer.tsx","metadata":{"fileSize":5591,"language":"typescript","lastModified":"2026-04-01T12:33:47.014Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/HeatmapToggle.tsx","type":"file","label":"HeatmapToggle.tsx","filePath":"packages/web/src/components/HeatmapToggle.tsx","metadata":{"fileSize":3842,"language":"typescript","lastModified":"2026-03-31T01:56:33.303Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/ImpactPanel.tsx","type":"file","label":"ImpactPanel.tsx","filePath":"packages/web/src/components/ImpactPanel.tsx","metadata":{"fileSize":8797,"language":"typescript","lastModified":"2026-03-31T08:48:35.209Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/JourneyPanel.tsx","type":"file","label":"JourneyPanel.tsx","filePath":"packages/web/src/components/JourneyPanel.tsx","metadata":{"fileSize":7399,"language":"typescript","lastModified":"2026-04-01T12:39:13.134Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/NeonEdge.tsx","type":"file","label":"NeonEdge.tsx","filePath":"packages/web/src/components/NeonEdge.tsx","metadata":{"fileSize":7336,"language":"typescript","lastModified":"2026-04-01T12:27:17.543Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/NeonNode.tsx","type":"file","label":"NeonNode.tsx","filePath":"packages/web/src/components/NeonNode.tsx","metadata":{"fileSize":10751,"language":"typescript","lastModified":"2026-04-01T12:27:09.166Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/NodeIOBadge.tsx","type":"file","label":"NodeIOBadge.tsx","filePath":"packages/web/src/components/NodeIOBadge.tsx","metadata":{"fileSize":3054,"language":"typescript","lastModified":"2026-03-31T01:34:43.105Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/NodePanel.tsx","type":"file","label":"NodePanel.tsx","filePath":"packages/web/src/components/NodePanel.tsx","metadata":{"fileSize":12969,"language":"typescript","lastModified":"2026-03-31T09:06:00.650Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/OverviewPanel.tsx","type":"file","label":"OverviewPanel.tsx","filePath":"packages/web/src/components/OverviewPanel.tsx","metadata":{"fileSize":12783,"language":"typescript","lastModified":"2026-03-31T08:44:14.757Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/PerspectiveHint.tsx","type":"file","label":"PerspectiveHint.tsx","filePath":"packages/web/src/components/PerspectiveHint.tsx","metadata":{"fileSize":3124,"language":"typescript","lastModified":"2026-04-01T12:39:51.591Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/PrivacyBadge.tsx","type":"file","label":"PrivacyBadge.tsx","filePath":"packages/web/src/components/PrivacyBadge.tsx","metadata":{"fileSize":1999,"language":"typescript","lastModified":"2026-03-31T04:57:38.912Z","importCount":2,"exportCount":1,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/SearchBar.tsx","type":"file","label":"SearchBar.tsx","filePath":"packages/web/src/components/SearchBar.tsx","metadata":{"fileSize":7457,"language":"typescript","lastModified":"2026-03-31T09:16:14.813Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/TabBar.tsx","type":"file","label":"TabBar.tsx","filePath":"packages/web/src/components/TabBar.tsx","metadata":{"fileSize":5461,"language":"typescript","lastModified":"2026-04-01T12:30:55.387Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/Toolbar.tsx","type":"file","label":"Toolbar.tsx","filePath":"packages/web/src/components/Toolbar.tsx","metadata":{"fileSize":12061,"language":"typescript","lastModified":"2026-04-01T13:00:45.974Z","importCount":0,"exportCount":0,"role":"business-logic"}},{"id":"packages/web/src/components/TracingPanel.tsx","type":"file","label":"TracingPanel.tsx","filePath":"packages/web/src/components/TracingPanel.tsx","metadata":{"fileSize":8730,"language":"typescript","lastModified":"2026-03-31T01:56:14.224Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/components/ViewToggle.tsx","type":"file","label":"ViewToggle.tsx","filePath":"packages/web/src/components/ViewToggle.tsx","metadata":{"fileSize":3210,"language":"typescript","lastModified":"2026-03-30T22:47:44.829Z","importCount":3,"exportCount":1,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/contexts","type":"directory","label":"contexts","filePath":"packages/web/src/contexts","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/contexts/ViewStateContext.tsx","type":"file","label":"ViewStateContext.tsx","filePath":"packages/web/src/contexts/ViewStateContext.tsx","metadata":{"fileSize":18943,"language":"typescript","lastModified":"2026-04-01T07:40:04.446Z","importCount":2,"exportCount":8,"dependencyCount":21,"role":"business-logic"}},{"id":"packages/web/src/hooks","type":"directory","label":"hooks","filePath":"packages/web/src/hooks","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/hooks/useAiSummary.ts","type":"file","label":"useAiSummary.ts","filePath":"packages/web/src/hooks/useAiSummary.ts","metadata":{"fileSize":2922,"language":"typescript","lastModified":"2026-03-31T04:58:02.815Z","importCount":2,"exportCount":2,"role":"infrastructure"}},{"id":"packages/web/src/hooks/useBfsClickFocus.ts","type":"file","label":"useBfsClickFocus.ts","filePath":"packages/web/src/hooks/useBfsClickFocus.ts","metadata":{"fileSize":3339,"language":"typescript","lastModified":"2026-04-01T12:38:07.633Z","importCount":2,"exportCount":2,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/hooks/useBfsHoverHighlight.ts","type":"file","label":"useBfsHoverHighlight.ts","filePath":"packages/web/src/hooks/useBfsHoverHighlight.ts","metadata":{"fileSize":2459,"language":"typescript","lastModified":"2026-04-01T07:51:47.182Z","importCount":2,"exportCount":2,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/hooks/useCallChain.ts","type":"file","label":"useCallChain.ts","filePath":"packages/web/src/hooks/useCallChain.ts","metadata":{"fileSize":2823,"language":"typescript","lastModified":"2026-03-31T06:25:07.514Z","importCount":2,"exportCount":3,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/hooks/useE2ETracing.ts","type":"file","label":"useE2ETracing.ts","filePath":"packages/web/src/hooks/useE2ETracing.ts","metadata":{"fileSize":5572,"language":"typescript","lastModified":"2026-03-31T12:53:56.326Z","importCount":3,"exportCount":2,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useEdgeSymbols.ts","type":"file","label":"useEdgeSymbols.ts","filePath":"packages/web/src/hooks/useEdgeSymbols.ts","metadata":{"fileSize":1809,"language":"typescript","lastModified":"2026-03-31T01:39:09.097Z","importCount":1,"exportCount":2,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/hooks/useForceLayout.ts","type":"file","label":"useForceLayout.ts","filePath":"packages/web/src/hooks/useForceLayout.ts","metadata":{"fileSize":4189,"language":"typescript","lastModified":"2026-03-30T12:01:04.199Z","importCount":4,"exportCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useGraphData.ts","type":"file","label":"useGraphData.ts","filePath":"packages/web/src/hooks/useGraphData.ts","metadata":{"fileSize":2448,"language":"typescript","lastModified":"2026-04-01T12:32:23.831Z","importCount":6,"exportCount":2,"role":"utility"}},{"id":"packages/web/src/hooks/useHeatmap.ts","type":"file","label":"useHeatmap.ts","filePath":"packages/web/src/hooks/useHeatmap.ts","metadata":{"fileSize":3227,"language":"typescript","lastModified":"2026-03-31T01:47:13.230Z","importCount":3,"exportCount":3,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useHoverHighlight.ts","type":"file","label":"useHoverHighlight.ts","filePath":"packages/web/src/hooks/useHoverHighlight.ts","metadata":{"fileSize":3607,"language":"typescript","lastModified":"2026-03-30T12:01:17.530Z","importCount":3,"exportCount":2,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useImpactAnalysis.ts","type":"file","label":"useImpactAnalysis.ts","filePath":"packages/web/src/hooks/useImpactAnalysis.ts","metadata":{"fileSize":3992,"language":"typescript","lastModified":"2026-03-31T08:40:33.747Z","importCount":3,"exportCount":2,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useNodeDetail.ts","type":"file","label":"useNodeDetail.ts","filePath":"packages/web/src/hooks/useNodeDetail.ts","metadata":{"fileSize":1459,"language":"typescript","lastModified":"2026-03-30T20:13:37.675Z","importCount":3,"exportCount":2,"role":"utility"}},{"id":"packages/web/src/hooks/usePathTracing.ts","type":"file","label":"usePathTracing.ts","filePath":"packages/web/src/hooks/usePathTracing.ts","metadata":{"fileSize":3579,"language":"typescript","lastModified":"2026-03-31T01:51:40.560Z","importCount":3,"exportCount":2,"role":"utility"}},{"id":"packages/web/src/hooks/useSearch.ts","type":"file","label":"useSearch.ts","filePath":"packages/web/src/hooks/useSearch.ts","metadata":{"fileSize":7805,"language":"typescript","lastModified":"2026-03-31T09:15:53.803Z","importCount":5,"exportCount":4,"role":"utility"}},{"id":"packages/web/src/hooks/useStaggerAnimation.ts","type":"file","label":"useStaggerAnimation.ts","filePath":"packages/web/src/hooks/useStaggerAnimation.ts","metadata":{"fileSize":4494,"language":"typescript","lastModified":"2026-04-01T12:40:20.793Z","importCount":1,"exportCount":3,"dependencyCount":2,"role":"business-logic"}},{"id":"packages/web/src/hooks/useViewportAnimation.ts","type":"file","label":"useViewportAnimation.ts","filePath":"packages/web/src/hooks/useViewportAnimation.ts","metadata":{"fileSize":1013,"language":"typescript","lastModified":"2026-03-30T12:08:53.701Z","importCount":3,"exportCount":1,"role":"utility"}},{"id":"packages/web/src/hooks/useZoomIntoFile.ts","type":"file","label":"useZoomIntoFile.ts","filePath":"packages/web/src/hooks/useZoomIntoFile.ts","metadata":{"fileSize":1850,"language":"typescript","lastModified":"2026-03-31T06:25:58.021Z","importCount":4,"exportCount":1,"role":"utility"}},{"id":"packages/web/src/styles","type":"directory","label":"styles","filePath":"packages/web/src/styles","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/styles/theme.ts","type":"file","label":"theme.ts","filePath":"packages/web/src/styles/theme.ts","metadata":{"fileSize":13515,"language":"typescript","lastModified":"2026-04-01T12:35:00.320Z","importCount":0,"exportCount":17,"dependencyCount":6,"role":"business-logic"}},{"id":"packages/web/src/types","type":"directory","label":"types","filePath":"packages/web/src/types","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/types/graph.ts","type":"file","label":"graph.ts","filePath":"packages/web/src/types/graph.ts","metadata":{"fileSize":6522,"language":"typescript","lastModified":"2026-04-01T12:31:38.522Z","importCount":0,"exportCount":35,"dependencyCount":37,"role":"business-logic"}},{"id":"packages/web/src/utils","type":"directory","label":"utils","filePath":"packages/web/src/utils","metadata":{"role":"infrastructure"}},{"id":"packages/web/src/utils/layout.ts","type":"file","label":"layout.ts","filePath":"packages/web/src/utils/layout.ts","metadata":{"fileSize":2522,"language":"typescript","lastModified":"2026-03-30T12:05:04.736Z","importCount":2,"exportCount":7,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/utils/path-tracer.ts","type":"file","label":"path-tracer.ts","filePath":"packages/web/src/utils/path-tracer.ts","metadata":{"fileSize":3400,"language":"typescript","lastModified":"2026-03-31T01:33:22.360Z","importCount":0,"exportCount":3,"dependencyCount":2,"role":"utility"}},{"id":"packages/web/src/utils/three-helpers.ts","type":"file","label":"three-helpers.ts","filePath":"packages/web/src/utils/three-helpers.ts","metadata":{"fileSize":1560,"language":"typescript","lastModified":"2026-03-31T00:33:01.248Z","importCount":1,"exportCount":2,"dependencyCount":1,"role":"utility"}},{"id":"packages/web/src/App.tsx","type":"file","label":"App.tsx","filePath":"packages/web/src/App.tsx","metadata":{"fileSize":7208,"language":"typescript","lastModified":"2026-04-01T12:46:41.415Z","importCount":0,"exportCount":0,"dependencyCount":1,"role":"business-logic"}},{"id":"packages/web/src/main.tsx","type":"file","label":"main.tsx","filePath":"packages/web/src/main.tsx","metadata":{"fileSize":290,"language":"typescript","lastModified":"2026-04-01T07:58:14.800Z","importCount":5,"exportCount":0,"role":"utility"}},{"id":"packages/web/__tests__","type":"directory","label":"__tests__","filePath":"packages/web/__tests__","metadata":{"role":"infrastructure"}},{"id":"packages/web/__tests__/bfs-hover-highlight.test.ts","type":"file","label":"bfs-hover-highlight.test.ts","filePath":"packages/web/__tests__/bfs-hover-highlight.test.ts","metadata":{"fileSize":7025,"language":"typescript","lastModified":"2026-04-01T08:06:10.187Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/call-chain.test.ts","type":"file","label":"call-chain.test.ts","filePath":"packages/web/__tests__/call-chain.test.ts","metadata":{"fileSize":6975,"language":"typescript","lastModified":"2026-03-31T07:25:39.888Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/camera-presets.test.tsx","type":"file","label":"camera-presets.test.tsx","filePath":"packages/web/__tests__/camera-presets.test.tsx","metadata":{"fileSize":5594,"language":"typescript","lastModified":"2026-03-31T00:37:07.969Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/curation.test.ts","type":"file","label":"curation.test.ts","filePath":"packages/web/__tests__/curation.test.ts","metadata":{"fileSize":13496,"language":"typescript","lastModified":"2026-04-01T11:01:06.942Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/dagre-layout.test.ts","type":"file","label":"dagre-layout.test.ts","filePath":"packages/web/__tests__/dagre-layout.test.ts","metadata":{"fileSize":6410,"language":"typescript","lastModified":"2026-04-01T14:02:41.688Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/directory-card.test.tsx","type":"file","label":"directory-card.test.tsx","filePath":"packages/web/__tests__/directory-card.test.tsx","metadata":{"fileSize":11644,"language":"typescript","lastModified":"2026-04-01T13:12:48.035Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/e2e-tracing.test.ts","type":"file","label":"e2e-tracing.test.ts","filePath":"packages/web/__tests__/e2e-tracing.test.ts","metadata":{"fileSize":14327,"language":"typescript","lastModified":"2026-03-31T13:43:54.300Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/edge-symbols.test.ts","type":"file","label":"edge-symbols.test.ts","filePath":"packages/web/__tests__/edge-symbols.test.ts","metadata":{"fileSize":4592,"language":"typescript","lastModified":"2026-03-31T02:16:38.148Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/function-node.test.ts","type":"file","label":"function-node.test.ts","filePath":"packages/web/__tests__/function-node.test.ts","metadata":{"fileSize":11522,"language":"typescript","lastModified":"2026-03-31T07:26:42.947Z","importCount":6,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/graph-3d-data.test.ts","type":"file","label":"graph-3d-data.test.ts","filePath":"packages/web/__tests__/graph-3d-data.test.ts","metadata":{"fileSize":8630,"language":"typescript","lastModified":"2026-03-31T00:35:00.960Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/graph-adapter-directory.test.ts","type":"file","label":"graph-adapter-directory.test.ts","filePath":"packages/web/__tests__/graph-adapter-directory.test.ts","metadata":{"fileSize":11781,"language":"typescript","lastModified":"2026-04-01T13:08:40.900Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/graph-adapter-filter.test.ts","type":"file","label":"graph-adapter-filter.test.ts","filePath":"packages/web/__tests__/graph-adapter-filter.test.ts","metadata":{"fileSize":9738,"language":"typescript","lastModified":"2026-03-31T09:35:35.862Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/graph-adapter-perspective.test.ts","type":"file","label":"graph-adapter-perspective.test.ts","filePath":"packages/web/__tests__/graph-adapter-perspective.test.ts","metadata":{"fileSize":8095,"language":"typescript","lastModified":"2026-04-01T08:05:45.495Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/graph-adapter.test.ts","type":"file","label":"graph-adapter.test.ts","filePath":"packages/web/__tests__/graph-adapter.test.ts","metadata":{"fileSize":5753,"language":"typescript","lastModified":"2026-03-30T12:14:40.565Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/heatmap.test.ts","type":"file","label":"heatmap.test.ts","filePath":"packages/web/__tests__/heatmap.test.ts","metadata":{"fileSize":5954,"language":"typescript","lastModified":"2026-03-31T02:16:56.741Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/impact-analysis.test.ts","type":"file","label":"impact-analysis.test.ts","filePath":"packages/web/__tests__/impact-analysis.test.ts","metadata":{"fileSize":11342,"language":"typescript","lastModified":"2026-03-31T09:34:59.651Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/integration-3d.test.tsx","type":"file","label":"integration-3d.test.tsx","filePath":"packages/web/__tests__/integration-3d.test.tsx","metadata":{"fileSize":5719,"language":"typescript","lastModified":"2026-03-31T00:35:22.478Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/integration-s5.test.ts","type":"file","label":"integration-s5.test.ts","filePath":"packages/web/__tests__/integration-s5.test.ts","metadata":{"fileSize":8862,"language":"typescript","lastModified":"2026-03-31T02:18:27.205Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/layout-router.test.ts","type":"file","label":"layout-router.test.ts","filePath":"packages/web/__tests__/layout-router.test.ts","metadata":{"fileSize":5543,"language":"typescript","lastModified":"2026-04-01T08:04:55.422Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/layout.test.ts","type":"file","label":"layout.test.ts","filePath":"packages/web/__tests__/layout.test.ts","metadata":{"fileSize":3969,"language":"typescript","lastModified":"2026-03-30T12:15:10.869Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/node-io-badge.test.ts","type":"file","label":"node-io-badge.test.ts","filePath":"packages/web/__tests__/node-io-badge.test.ts","metadata":{"fileSize":3255,"language":"typescript","lastModified":"2026-03-31T02:17:09.830Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/path-tracer.test.ts","type":"file","label":"path-tracer.test.ts","filePath":"packages/web/__tests__/path-tracer.test.ts","metadata":{"fileSize":7516,"language":"typescript","lastModified":"2026-03-31T02:16:20.117Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/performance-3d.test.ts","type":"file","label":"performance-3d.test.ts","filePath":"packages/web/__tests__/performance-3d.test.ts","metadata":{"fileSize":4881,"language":"typescript","lastModified":"2026-03-31T00:35:46.135Z","importCount":2,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/perspective-presets.test.ts","type":"file","label":"perspective-presets.test.ts","filePath":"packages/web/__tests__/perspective-presets.test.ts","metadata":{"fileSize":7548,"language":"typescript","lastModified":"2026-04-01T13:08:53.810Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/privacy-badge.test.ts","type":"file","label":"privacy-badge.test.ts","filePath":"packages/web/__tests__/privacy-badge.test.ts","metadata":{"fileSize":6001,"language":"typescript","lastModified":"2026-03-31T05:19:02.205Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/search.test.ts","type":"file","label":"search.test.ts","filePath":"packages/web/__tests__/search.test.ts","metadata":{"fileSize":3433,"language":"typescript","lastModified":"2026-03-30T20:20:11.628Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/stagger-animation.test.ts","type":"file","label":"stagger-animation.test.ts","filePath":"packages/web/__tests__/stagger-animation.test.ts","metadata":{"fileSize":8817,"language":"typescript","lastModified":"2026-04-01T08:22:56.163Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/tab-bar.test.tsx","type":"file","label":"tab-bar.test.tsx","filePath":"packages/web/__tests__/tab-bar.test.tsx","metadata":{"fileSize":7405,"language":"typescript","lastModified":"2026-04-01T13:07:26.437Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/tracing-panel.test.ts","type":"file","label":"tracing-panel.test.ts","filePath":"packages/web/__tests__/tracing-panel.test.ts","metadata":{"fileSize":8588,"language":"typescript","lastModified":"2026-03-31T02:19:11.797Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/use-bfs-click-focus.test.ts","type":"file","label":"use-bfs-click-focus.test.ts","filePath":"packages/web/__tests__/use-bfs-click-focus.test.ts","metadata":{"fileSize":12696,"language":"typescript","lastModified":"2026-04-01T13:06:25.168Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/use-hover-highlight.test.ts","type":"file","label":"use-hover-highlight.test.ts","filePath":"packages/web/__tests__/use-hover-highlight.test.ts","metadata":{"fileSize":3890,"language":"typescript","lastModified":"2026-03-30T12:14:55.381Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/use-stagger-animation.test.ts","type":"file","label":"use-stagger-animation.test.ts","filePath":"packages/web/__tests__/use-stagger-animation.test.ts","metadata":{"fileSize":9255,"language":"typescript","lastModified":"2026-04-01T13:07:00.934Z","importCount":3,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-modes.test.ts","type":"file","label":"view-modes.test.ts","filePath":"packages/web/__tests__/view-modes.test.ts","metadata":{"fileSize":12115,"language":"typescript","lastModified":"2026-03-31T13:41:48.978Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-state-s7.test.ts","type":"file","label":"view-state-s7.test.ts","filePath":"packages/web/__tests__/view-state-s7.test.ts","metadata":{"fileSize":9545,"language":"typescript","lastModified":"2026-03-31T07:26:08.364Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-state-s8.test.ts","type":"file","label":"view-state-s8.test.ts","filePath":"packages/web/__tests__/view-state-s8.test.ts","metadata":{"fileSize":16818,"language":"typescript","lastModified":"2026-03-31T09:36:23.579Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-state-s9.test.ts","type":"file","label":"view-state-s9.test.ts","filePath":"packages/web/__tests__/view-state-s9.test.ts","metadata":{"fileSize":20258,"language":"typescript","lastModified":"2026-03-31T13:42:49.290Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-state.test.ts","type":"file","label":"view-state.test.ts","filePath":"packages/web/__tests__/view-state.test.ts","metadata":{"fileSize":8816,"language":"typescript","lastModified":"2026-03-31T00:33:56.079Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/view-toggle.test.tsx","type":"file","label":"view-toggle.test.tsx","filePath":"packages/web/__tests__/view-toggle.test.tsx","metadata":{"fileSize":2019,"language":"typescript","lastModified":"2026-03-31T00:36:48.348Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/viewstate-curation.test.ts","type":"file","label":"viewstate-curation.test.ts","filePath":"packages/web/__tests__/viewstate-curation.test.ts","metadata":{"fileSize":9263,"language":"typescript","lastModified":"2026-04-01T01:02:31.269Z","importCount":4,"exportCount":0,"role":"noise"}},{"id":"packages/web/__tests__/viewstate-perspective.test.ts","type":"file","label":"viewstate-perspective.test.ts","filePath":"packages/web/__tests__/viewstate-perspective.test.ts","metadata":{"fileSize":11970,"language":"typescript","lastModified":"2026-04-01T08:07:24.838Z","importCount":5,"exportCount":0,"role":"noise"}},{"id":"packages/web/vite.config.ts","type":"file","label":"vite.config.ts","filePath":"packages/web/vite.config.ts","metadata":{"fileSize":257,"language":"typescript","lastModified":"2026-04-01T10:42:01.988Z","importCount":2,"exportCount":1,"role":"infrastructure"}},{"id":"packages/web/vitest.config.ts","type":"file","label":"vitest.config.ts","filePath":"packages/web/vitest.config.ts","metadata":{"fileSize":1148,"language":"typescript","lastModified":"2026-03-30T12:16:35.035Z","importCount":1,"exportCount":1,"role":"infrastructure"}},{"id":".eslintrc.js","type":"file","label":".eslintrc.js","filePath":".eslintrc.js","metadata":{"fileSize":3518,"language":"javascript","lastModified":"2026-03-30T07:39:53.880Z","importCount":0,"exportCount":0,"role":"infrastructure"}}],"edges":[{"id":"packages/core/__tests__/fixtures/cjs-project/index.js--import--packages/core/__tests__/fixtures/cjs-project/loader.js","source":"packages/core/__tests__/fixtures/cjs-project/index.js","target":"packages/core/__tests__/fixtures/cjs-project/loader.js","type":"import","metadata":{"confidence":"high","isDefault":true}},{"id":"packages/core/__tests__/fixtures/cjs-project/loader.js--import--packages/core/__tests__/fixtures/cjs-project/config.js","source":"packages/core/__tests__/fixtures/cjs-project/loader.js","target":"packages/core/__tests__/fixtures/cjs-project/config.js","type":"import","metadata":{"confidence":"high","isDefault":true}},{"id":"packages/core/__tests__/fixtures/function-level/cross-file-caller.ts--import--packages/core/__tests__/fixtures/function-level/cross-file-callee.ts","source":"packages/core/__tests__/fixtures/function-level/cross-file-caller.ts","target":"packages/core/__tests__/fixtures/function-level/cross-file-callee.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["parseValue","formatResult","validateInput"]}},{"id":"packages/core/__tests__/fixtures/mixed-project/index.ts--import--packages/core/__tests__/fixtures/mixed-project/api.ts","source":"packages/core/__tests__/fixtures/mixed-project/index.ts","target":"packages/core/__tests__/fixtures/mixed-project/api.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetch"]}},{"id":"packages/core/__tests__/fixtures/mixed-project/index.ts--import--packages/core/__tests__/fixtures/mixed-project/legacy.js","source":"packages/core/__tests__/fixtures/mixed-project/index.ts","target":"packages/core/__tests__/fixtures/mixed-project/legacy.js","type":"import","metadata":{"confidence":"high","isDefault":true}},{"id":"packages/core/__tests__/fixtures/simple-project/index.js--import--packages/core/__tests__/fixtures/simple-project/utils/helper.js","source":"packages/core/__tests__/fixtures/simple-project/index.js","target":"packages/core/__tests__/fixtures/simple-project/utils/helper.js","type":"import","metadata":{"confidence":"high","importedSymbols":["helper"]}},{"id":"packages/core/__tests__/fixtures/ts-project/services/greeter.ts--import--packages/core/__tests__/fixtures/ts-project/utils/format.ts","source":"packages/core/__tests__/fixtures/ts-project/services/greeter.ts","target":"packages/core/__tests__/fixtures/ts-project/utils/format.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["formatName"]}},{"id":"packages/core/__tests__/fixtures/ts-project/utils/index.ts--export--packages/core/__tests__/fixtures/ts-project/utils/format.ts","source":"packages/core/__tests__/fixtures/ts-project/utils/index.ts","target":"packages/core/__tests__/fixtures/ts-project/utils/format.ts","type":"export","metadata":{"confidence":"high"}},{"id":"packages/core/__tests__/fixtures/ts-project/index.ts--import--packages/core/__tests__/fixtures/ts-project/services/greeter.ts","source":"packages/core/__tests__/fixtures/ts-project/index.ts","target":"packages/core/__tests__/fixtures/ts-project/services/greeter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["greet"]}},{"id":"packages/core/__tests__/fixtures/ts-project/index.ts--import--packages/core/__tests__/fixtures/ts-project/types.ts","source":"packages/core/__tests__/fixtures/ts-project/index.ts","target":"packages/core/__tests__/fixtures/ts-project/types.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["Config"]}},{"id":"packages/web/src/adapters/dagre-layout.ts--import--packages/web/src/adapters/layout-router.ts","source":"packages/web/src/adapters/dagre-layout.ts","target":"packages/web/src/adapters/layout-router.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["LayoutProvider","LayoutInput","LayoutOutput"]}},{"id":"packages/web/src/adapters/dagre-layout.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/adapters/dagre-layout.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/src/adapters/graph-adapter.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/adapters/graph-adapter.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["AnalysisResult","GraphNode","GraphEdge","NodeMetadata","EdgeMetadata","NodeType","NodeRole","FilterState","ViewModeName","PerspectiveName","DirectoryGraph"]}},{"id":"packages/web/src/adapters/graph-adapter.ts--import--packages/web/src/adapters/view-modes.ts","source":"packages/web/src/adapters/graph-adapter.ts","target":"packages/web/src/adapters/view-modes.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["VIEW_MODE_PRESETS"]}},{"id":"packages/web/src/adapters/graph-adapter.ts--import--packages/web/src/adapters/perspective-presets.ts","source":"packages/web/src/adapters/graph-adapter.ts","target":"packages/web/src/adapters/perspective-presets.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["PERSPECTIVE_PRESETS"]}},{"id":"packages/web/src/adapters/layout-router.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/adapters/layout-router.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["LayoutEngine"]}},{"id":"packages/web/src/adapters/layout-router.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/adapters/layout-router.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/src/adapters/path-tracing-layout.ts--import--packages/web/src/adapters/layout-router.ts","source":"packages/web/src/adapters/path-tracing-layout.ts","target":"packages/web/src/adapters/layout-router.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["LayoutProvider","LayoutInput","LayoutOutput"]}},{"id":"packages/web/src/adapters/perspective-presets.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/adapters/perspective-presets.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["PerspectiveName","PerspectivePreset","DataSource"]}},{"id":"packages/web/src/adapters/view-modes.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/adapters/view-modes.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewModeName","NodeType","EdgeType"]}},{"id":"packages/web/src/api/ai.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/api/ai.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["AiSummaryResponse","AiStatusResponse","AiOverviewResponse","AiSearchKeywordsResponse"]}},{"id":"packages/web/src/api/graph.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/api/graph.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["AnalysisResult","AnalysisStats","NodeDetailResponse","FunctionNodesResponse"]}},{"id":"packages/web/src/api/node.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/api/node.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NodeDetailResponse"]}},{"id":"packages/web/src/components/CallEdge.tsx--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/components/CallEdge.tsx","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonEdgeData"]}},{"id":"packages/web/src/components/CameraPresets.tsx--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/components/CameraPresets.tsx","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/components/CameraPresets.tsx--import--packages/web/src/styles/theme.ts","source":"packages/web/src/components/CameraPresets.tsx","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["canvas","colors"]}},{"id":"packages/web/src/components/ContextMenu.tsx--import--packages/web/src/styles/theme.ts","source":"packages/web/src/components/ContextMenu.tsx","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["colors"]}},{"id":"packages/web/src/components/PrivacyBadge.tsx--import--packages/web/src/styles/theme.ts","source":"packages/web/src/components/PrivacyBadge.tsx","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["colors"]}},{"id":"packages/web/src/components/ViewToggle.tsx--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/components/ViewToggle.tsx","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/components/ViewToggle.tsx--import--packages/web/src/styles/theme.ts","source":"packages/web/src/components/ViewToggle.tsx","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["canvas","colors"]}},{"id":"packages/web/src/contexts/ViewStateContext.tsx--import--packages/web/src/types/graph.ts","source":"packages/web/src/contexts/ViewStateContext.tsx","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","NodeType","EdgeType","FilterState","ViewModeName","PerspectiveName","DisplayPrefs","E2EStep","E2ETracingState"]}},{"id":"packages/web/src/hooks/useAiSummary.ts--import--packages/web/src/api/ai.ts","source":"packages/web/src/hooks/useAiSummary.ts","target":"packages/web/src/api/ai.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetchAiSummary","fetchAiStatus"]}},{"id":"packages/web/src/hooks/useBfsClickFocus.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useBfsClickFocus.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/src/hooks/useBfsHoverHighlight.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useBfsHoverHighlight.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/src/hooks/useCallChain.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useCallChain.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/src/hooks/useE2ETracing.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/useE2ETracing.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/useE2ETracing.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useE2ETracing.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","E2EStep","E2ETracingResult"]}},{"id":"packages/web/src/hooks/useForceLayout.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/hooks/useForceLayout.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData","NeonEdgeData"]}},{"id":"packages/web/src/hooks/useGraphData.ts--import--packages/web/src/api/graph.ts","source":"packages/web/src/hooks/useGraphData.ts","target":"packages/web/src/api/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetchGraph"]}},{"id":"packages/web/src/hooks/useGraphData.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/hooks/useGraphData.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["adaptGraph"]}},{"id":"packages/web/src/hooks/useGraphData.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useGraphData.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["AnalysisStats","GraphNode","GraphEdge","DirectoryGraph"]}},{"id":"packages/web/src/hooks/useHeatmap.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/useHeatmap.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/useHeatmap.ts--import--packages/web/src/styles/theme.ts","source":"packages/web/src/hooks/useHeatmap.ts","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["heatmap"]}},{"id":"packages/web/src/hooks/useHoverHighlight.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/hooks/useHoverHighlight.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonEdgeData"]}},{"id":"packages/web/src/hooks/useImpactAnalysis.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/useImpactAnalysis.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/useImpactAnalysis.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useImpactAnalysis.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge","ImpactAnalysisResult"]}},{"id":"packages/web/src/hooks/useNodeDetail.ts--import--packages/web/src/api/node.ts","source":"packages/web/src/hooks/useNodeDetail.ts","target":"packages/web/src/api/node.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetchNodeDetail"]}},{"id":"packages/web/src/hooks/useNodeDetail.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useNodeDetail.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NodeDetailResponse"]}},{"id":"packages/web/src/hooks/usePathTracing.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/usePathTracing.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/usePathTracing.ts--import--packages/web/src/utils/path-tracer.ts","source":"packages/web/src/hooks/usePathTracing.ts","target":"packages/web/src/utils/path-tracer.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["traceSymbolPath"]}},{"id":"packages/web/src/hooks/useSearch.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/hooks/useSearch.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/src/hooks/useSearch.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/useSearch.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/useSearch.ts--import--packages/web/src/api/ai.ts","source":"packages/web/src/hooks/useSearch.ts","target":"packages/web/src/api/ai.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetchSearchKeywords"]}},{"id":"packages/web/src/hooks/useViewportAnimation.ts--import--packages/web/src/styles/theme.ts","source":"packages/web/src/hooks/useViewportAnimation.ts","target":"packages/web/src/styles/theme.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["animation"]}},{"id":"packages/web/src/hooks/useZoomIntoFile.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/src/hooks/useZoomIntoFile.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["useViewState"]}},{"id":"packages/web/src/hooks/useZoomIntoFile.ts--import--packages/web/src/api/graph.ts","source":"packages/web/src/hooks/useZoomIntoFile.ts","target":"packages/web/src/api/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["fetchFunctionNodes"]}},{"id":"packages/web/src/hooks/useZoomIntoFile.ts--import--packages/web/src/types/graph.ts","source":"packages/web/src/hooks/useZoomIntoFile.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/src/utils/layout.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/src/utils/layout.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/src/main.tsx--import--packages/web/src/App.tsx","source":"packages/web/src/main.tsx","target":"packages/web/src/App.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["App"]}},{"id":"packages/web/__tests__/bfs-hover-highlight.test.ts--import--packages/web/src/hooks/useBfsHoverHighlight.ts","source":"packages/web/__tests__/bfs-hover-highlight.test.ts","target":"packages/web/src/hooks/useBfsHoverHighlight.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useBfsHoverHighlight"]}},{"id":"packages/web/__tests__/bfs-hover-highlight.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/bfs-hover-highlight.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/__tests__/call-chain.test.ts--import--packages/web/src/hooks/useCallChain.ts","source":"packages/web/__tests__/call-chain.test.ts","target":"packages/web/src/hooks/useCallChain.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["traceCallChain"]}},{"id":"packages/web/__tests__/call-chain.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/call-chain.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/__tests__/camera-presets.test.tsx--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/camera-presets.test.tsx","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/camera-presets.test.tsx--import--packages/web/src/components/CameraPresets.tsx","source":"packages/web/__tests__/camera-presets.test.tsx","target":"packages/web/src/components/CameraPresets.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["CameraPresets"]}},{"id":"packages/web/__tests__/curation.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/curation.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["applyCuration"]}},{"id":"packages/web/__tests__/curation.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/curation.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/__tests__/dagre-layout.test.ts--import--packages/web/src/adapters/dagre-layout.ts","source":"packages/web/__tests__/dagre-layout.test.ts","target":"packages/web/src/adapters/dagre-layout.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["dagreLayoutProvider"]}},{"id":"packages/web/__tests__/dagre-layout.test.ts--import--packages/web/src/adapters/layout-router.ts","source":"packages/web/__tests__/dagre-layout.test.ts","target":"packages/web/src/adapters/layout-router.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["LayoutInput"]}},{"id":"packages/web/__tests__/directory-card.test.tsx--import--packages/web/src/components/DirectoryCard.tsx","source":"packages/web/__tests__/directory-card.test.tsx","target":"packages/web/src/components/DirectoryCard.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["DirectoryCard"]}},{"id":"packages/web/__tests__/directory-card.test.tsx--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/directory-card.test.tsx","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["DirectoryType"]}},{"id":"packages/web/__tests__/e2e-tracing.test.ts--import--packages/web/src/hooks/useE2ETracing.ts","source":"packages/web/__tests__/e2e-tracing.test.ts","target":"packages/web/src/hooks/useE2ETracing.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["traceE2E"]}},{"id":"packages/web/__tests__/e2e-tracing.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/e2e-tracing.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/__tests__/edge-symbols.test.ts--import--packages/web/src/hooks/useEdgeSymbols.ts","source":"packages/web/__tests__/edge-symbols.test.ts","target":"packages/web/src/hooks/useEdgeSymbols.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useEdgeSymbols"]}},{"id":"packages/web/__tests__/function-node.test.ts--import--packages/web/src/components/FunctionNode.tsx","source":"packages/web/__tests__/function-node.test.ts","target":"packages/web/src/components/FunctionNode.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["FunctionNode"]}},{"id":"packages/web/__tests__/function-node.test.ts--import--packages/web/src/components/ClassNode.tsx","source":"packages/web/__tests__/function-node.test.ts","target":"packages/web/src/components/ClassNode.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ClassNode"]}},{"id":"packages/web/__tests__/function-node.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/function-node.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["FunctionParam"]}},{"id":"packages/web/__tests__/graph-3d-data.test.ts--import--packages/web/src/utils/three-helpers.ts","source":"packages/web/__tests__/graph-3d-data.test.ts","target":"packages/web/src/utils/three-helpers.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["hexToRgba","resolveLinkEndId"]}},{"id":"packages/web/__tests__/graph-3d-data.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/graph-3d-data.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/__tests__/graph-adapter-directory.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/graph-adapter-directory.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["applyPerspective","adaptDirectoryGraph"]}},{"id":"packages/web/__tests__/graph-adapter-directory.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/graph-adapter-directory.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","DirectoryGraph"]}},{"id":"packages/web/__tests__/graph-adapter-filter.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/graph-adapter-filter.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["filterNodes","filterEdges"]}},{"id":"packages/web/__tests__/graph-adapter-filter.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/graph-adapter-filter.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","FilterState"]}},{"id":"packages/web/__tests__/graph-adapter-perspective.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/graph-adapter-perspective.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["applyPerspective","filterNodes","filterEdges","applyCuration"]}},{"id":"packages/web/__tests__/graph-adapter-perspective.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/graph-adapter-perspective.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","FilterState"]}},{"id":"packages/web/__tests__/graph-adapter.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/graph-adapter.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["toReactFlowNodes","toReactFlowEdges","adaptGraph"]}},{"id":"packages/web/__tests__/graph-adapter.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/graph-adapter.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","AnalysisResult"]}},{"id":"packages/web/__tests__/heatmap.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/heatmap.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider"]}},{"id":"packages/web/__tests__/heatmap.test.ts--import--packages/web/src/hooks/useHeatmap.ts","source":"packages/web/__tests__/heatmap.test.ts","target":"packages/web/src/hooks/useHeatmap.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useHeatmap"]}},{"id":"packages/web/__tests__/impact-analysis.test.ts--import--packages/web/src/hooks/useImpactAnalysis.ts","source":"packages/web/__tests__/impact-analysis.test.ts","target":"packages/web/src/hooks/useImpactAnalysis.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["analyzeImpact"]}},{"id":"packages/web/__tests__/impact-analysis.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/impact-analysis.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/__tests__/integration-3d.test.tsx--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/integration-3d.test.tsx","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/integration-s5.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/integration-s5.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/layout-router.test.ts--import--packages/web/src/adapters/layout-router.ts","source":"packages/web/__tests__/layout-router.test.ts","target":"packages/web/src/adapters/layout-router.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["computeLayout","registerLayout"]}},{"id":"packages/web/__tests__/layout-router.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/layout-router.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["LayoutEngine"]}},{"id":"packages/web/__tests__/layout.test.ts--import--packages/web/src/utils/layout.ts","source":"packages/web/__tests__/layout.test.ts","target":"packages/web/src/utils/layout.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["getLayerLevel","filterNodesByLayer","filterEdgesByVisibleNodes","getDirectoryDepth","ZOOM_THRESHOLD"]}},{"id":"packages/web/__tests__/layout.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/layout.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/__tests__/node-io-badge.test.ts--import--packages/web/src/components/NodeIOBadge.tsx","source":"packages/web/__tests__/node-io-badge.test.ts","target":"packages/web/src/components/NodeIOBadge.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["NodeIOBadge"]}},{"id":"packages/web/__tests__/path-tracer.test.ts--import--packages/web/src/utils/path-tracer.ts","source":"packages/web/__tests__/path-tracer.test.ts","target":"packages/web/src/utils/path-tracer.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["traceSymbolPath","TraceInput"]}},{"id":"packages/web/__tests__/performance-3d.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/performance-3d.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/__tests__/perspective-presets.test.ts--import--packages/web/src/adapters/perspective-presets.ts","source":"packages/web/__tests__/perspective-presets.test.ts","target":"packages/web/src/adapters/perspective-presets.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["PERSPECTIVE_PRESETS"]}},{"id":"packages/web/__tests__/perspective-presets.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/perspective-presets.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["PerspectiveName"]}},{"id":"packages/web/__tests__/privacy-badge.test.ts--import--packages/web/src/components/PrivacyBadge.tsx","source":"packages/web/__tests__/privacy-badge.test.ts","target":"packages/web/src/components/PrivacyBadge.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["PrivacyBadge"]}},{"id":"packages/web/__tests__/search.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/search.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonNodeData"]}},{"id":"packages/web/__tests__/stagger-animation.test.ts--import--packages/web/src/hooks/useStaggerAnimation.ts","source":"packages/web/__tests__/stagger-animation.test.ts","target":"packages/web/src/hooks/useStaggerAnimation.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useStaggerAnimation"]}},{"id":"packages/web/__tests__/tab-bar.test.tsx--import--packages/web/src/components/TabBar.tsx","source":"packages/web/__tests__/tab-bar.test.tsx","target":"packages/web/src/components/TabBar.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["TabBar"]}},{"id":"packages/web/__tests__/tab-bar.test.tsx--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/tab-bar.test.tsx","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["PerspectiveName"]}},{"id":"packages/web/__tests__/tracing-panel.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/tracing-panel.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/tracing-panel.test.ts--import--packages/web/src/components/TracingPanel.tsx","source":"packages/web/__tests__/tracing-panel.test.ts","target":"packages/web/src/components/TracingPanel.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["TracingPanel"]}},{"id":"packages/web/__tests__/use-bfs-click-focus.test.ts--import--packages/web/src/hooks/useBfsClickFocus.ts","source":"packages/web/__tests__/use-bfs-click-focus.test.ts","target":"packages/web/src/hooks/useBfsClickFocus.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useBfsClickFocus"]}},{"id":"packages/web/__tests__/use-bfs-click-focus.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/use-bfs-click-focus.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphEdge"]}},{"id":"packages/web/__tests__/use-hover-highlight.test.ts--import--packages/web/src/hooks/useHoverHighlight.ts","source":"packages/web/__tests__/use-hover-highlight.test.ts","target":"packages/web/src/hooks/useHoverHighlight.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useHoverHighlight"]}},{"id":"packages/web/__tests__/use-hover-highlight.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/use-hover-highlight.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["NeonEdgeData"]}},{"id":"packages/web/__tests__/use-stagger-animation.test.ts--import--packages/web/src/hooks/useStaggerAnimation.ts","source":"packages/web/__tests__/use-stagger-animation.test.ts","target":"packages/web/src/hooks/useStaggerAnimation.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["useStaggerAnimation"]}},{"id":"packages/web/__tests__/view-modes.test.ts--import--packages/web/src/adapters/view-modes.ts","source":"packages/web/__tests__/view-modes.test.ts","target":"packages/web/src/adapters/view-modes.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["VIEW_MODE_PRESETS","ViewModePreset"]}},{"id":"packages/web/__tests__/view-modes.test.ts--import--packages/web/src/adapters/graph-adapter.ts","source":"packages/web/__tests__/view-modes.test.ts","target":"packages/web/src/adapters/graph-adapter.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["applyViewMode"]}},{"id":"packages/web/__tests__/view-modes.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/view-modes.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge","ViewModeName"]}},{"id":"packages/web/__tests__/view-state-s7.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/view-state-s7.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/view-state-s7.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/view-state-s7.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["GraphNode","GraphEdge"]}},{"id":"packages/web/__tests__/view-state-s8.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/view-state-s8.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/view-state-s9.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/view-state-s9.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/view-state-s9.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/view-state-s9.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["E2EStep"]}},{"id":"packages/web/__tests__/view-state.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/view-state.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/view-toggle.test.tsx--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/view-toggle.test.tsx","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider"]}},{"id":"packages/web/__tests__/view-toggle.test.tsx--import--packages/web/src/components/ViewToggle.tsx","source":"packages/web/__tests__/view-toggle.test.tsx","target":"packages/web/src/components/ViewToggle.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewToggle"]}},{"id":"packages/web/__tests__/viewstate-curation.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/viewstate-curation.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState","useViewStateSelector"]}},{"id":"packages/web/__tests__/viewstate-perspective.test.ts--import--packages/web/src/contexts/ViewStateContext.tsx","source":"packages/web/__tests__/viewstate-perspective.test.ts","target":"packages/web/src/contexts/ViewStateContext.tsx","type":"import","metadata":{"confidence":"high","importedSymbols":["ViewStateProvider","useViewState"]}},{"id":"packages/web/__tests__/viewstate-perspective.test.ts--import--packages/web/src/types/graph.ts","source":"packages/web/__tests__/viewstate-perspective.test.ts","target":"packages/web/src/types/graph.ts","type":"import","metadata":{"confidence":"high","importedSymbols":["E2EStep"]}}]},"errors":[{"filePath":"packages/cli/src/commands/web.ts","error":"Cannot resolve import './analyze.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\commands\\web.ts (line 14)","phase":"analyze"},{"filePath":"packages/cli/src/commands/web.ts","error":"Cannot resolve import '../server.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\commands\\web.ts (line 15)","phase":"analyze"},{"filePath":"packages/cli/src/commands/web.ts","error":"Cannot resolve import '../config.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\commands\\web.ts (line 16)","phase":"analyze"},{"filePath":"packages/cli/src/index.ts","error":"Cannot resolve import './commands/analyze.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\index.ts (line 8)","phase":"analyze"},{"filePath":"packages/cli/src/index.ts","error":"Cannot resolve import './commands/web.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\index.ts (line 9)","phase":"analyze"},{"filePath":"packages/cli/src/server.ts","error":"Cannot resolve import './cache.js' in C:\\projects\\CodeAtlas\\packages\\cli\\src\\server.ts (line 19)","phase":"analyze"},{"filePath":"packages/cli/__tests__/cache.test.ts","error":"Cannot resolve import '../src/cache.js' in C:\\projects\\CodeAtlas\\packages\\cli\\__tests__\\cache.test.ts (line 9)","phase":"analyze"},{"filePath":"packages/cli/__tests__/config.test.ts","error":"Cannot resolve import '../src/config.js' in C:\\projects\\CodeAtlas\\packages\\cli\\__tests__\\config.test.ts (line 34)","phase":"analyze"},{"filePath":"packages/core/scripts/verify-parser.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\scripts\\verify-parser.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/scripts/verify-parser.ts","error":"Cannot resolve import '../src/parser/ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\scripts\\verify-parser.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/src/ai/anthropic.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\anthropic.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/ai/anthropic.ts","error":"Cannot resolve import './utils.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\anthropic.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/src/ai/disabled.ts","error":"Cannot resolve import './types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\disabled.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve import './disabled.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve import './openai.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 21)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve import './anthropic.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 22)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve import './ollama.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 24)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './disabled.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 10)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './openai.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './anthropic.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 12)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './ollama.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 13)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './ollama.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './utils.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './overview-builder.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 17)","phase":"analyze"},{"filePath":"packages/core/src/ai/index.ts","error":"Cannot resolve re-export './overview-builder.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\index.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/src/ai/ollama.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\ollama.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/src/ai/ollama.ts","error":"Cannot resolve import './utils.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\ollama.ts (line 10)","phase":"analyze"},{"filePath":"packages/core/src/ai/openai.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\openai.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/ai/openai.ts","error":"Cannot resolve import './utils.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\openai.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/src/ai/overview-builder.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\overview-builder.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/ai/types.ts","error":"Cannot resolve re-export '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\types.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/ai/utils.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\ai\\utils.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/call-analyzer.ts","error":"Cannot resolve import '../parser/ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\call-analyzer.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/call-analyzer.ts","error":"Cannot resolve import '../parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\call-analyzer.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../scanner/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 12)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 13)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../parser/import-resolver.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import '../parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import './call-analyzer.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 17)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/graph-builder.ts","error":"Cannot resolve import './role-classifier.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\graph-builder.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/index.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\index.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/index.ts","error":"Cannot resolve import '../scanner/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\index.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/index.ts","error":"Cannot resolve import '../scanner/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\index.ts (line 10)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/index.ts","error":"Cannot resolve import './graph-builder.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\index.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/analyzer/role-classifier.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzer\\role-classifier.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/src/analyzers/directory-aggregator.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\analyzers\\directory-aggregator.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/src/parser/providers/native-tree-sitter.ts","error":"Cannot resolve import '../ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\providers\\native-tree-sitter.ts (line 13)","phase":"analyze"},{"filePath":"packages/core/src/parser/providers/typescript-compiler.ts","error":"Cannot resolve import '../ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\providers\\typescript-compiler.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/src/parser/providers/wasm-tree-sitter.ts","error":"Cannot resolve import '../ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\providers\\wasm-tree-sitter.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/src/parser/function-extractor.ts","error":"Cannot resolve import './ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\function-extractor.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/src/parser/function-extractor.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\function-extractor.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/parser/import-extractor.ts","error":"Cannot resolve import './parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\import-extractor.ts (line 19)","phase":"analyze"},{"filePath":"packages/core/src/parser/import-extractor.ts","error":"Cannot resolve import './ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\import-extractor.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/src/parser/import-resolver.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\import-resolver.ts (line 22)","phase":"analyze"},{"filePath":"packages/core/src/parser/import-resolver.ts","error":"Cannot resolve import './import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\import-resolver.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './providers/native-tree-sitter.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 10)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './providers/wasm-tree-sitter.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './providers/typescript-compiler.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 12)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 28)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './import-resolver.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 30)","phase":"analyze"},{"filePath":"packages/core/src/parser/index.ts","error":"Cannot resolve re-export './import-resolver.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\index.ts (line 31)","phase":"analyze"},{"filePath":"packages/core/src/parser/parser-factory.ts","error":"Cannot resolve import './ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\parser-factory.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/parser/parser-factory.ts","error":"Cannot resolve import './providers/native-tree-sitter.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\parser-factory.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/src/parser/parser-factory.ts","error":"Cannot resolve import './providers/wasm-tree-sitter.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\parser-factory.ts (line 17)","phase":"analyze"},{"filePath":"packages/core/src/parser/parser-factory.ts","error":"Cannot resolve import './providers/typescript-compiler.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\parser\\parser-factory.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/src/scanner/index.ts","error":"Cannot resolve import '../types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\scanner\\index.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './types.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 11)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './parser/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 12)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './scanner/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 13)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './ai/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './analyzer/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './analyzer/call-analyzer.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 19)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './analyzers/directory-aggregator.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 22)","phase":"analyze"},{"filePath":"packages/core/src/index.ts","error":"Cannot resolve re-export './analyzers/directory-aggregator.js' in C:\\projects\\CodeAtlas\\packages\\core\\src\\index.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/__tests__/fixtures/unresolvable-project/index.ts","error":"Cannot resolve import './does-not-exist' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\fixtures\\unresolvable-project\\index.ts (line 1)","phase":"analyze"},{"filePath":"packages/core/__tests__/fixtures/unresolvable-project/index.ts","error":"Cannot resolve import '../also-missing' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\fixtures\\unresolvable-project\\index.ts (line 2)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-anthropic.test.ts","error":"Cannot resolve import '../src/ai/anthropic.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-anthropic.test.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-anthropic.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-anthropic.test.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-ollama.test.ts","error":"Cannot resolve import '../src/ai/ollama.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-ollama.test.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-ollama.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-ollama.test.ts (line 19)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-openai.test.ts","error":"Cannot resolve import '../src/ai/openai.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-openai.test.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-openai.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-openai.test.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-provider.test.ts","error":"Cannot resolve import '../src/ai/disabled.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-provider.test.ts (line 12)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-provider.test.ts","error":"Cannot resolve import '../src/ai/openai.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-provider.test.ts (line 13)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-provider.test.ts","error":"Cannot resolve import '../src/ai/anthropic.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-provider.test.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-provider.test.ts","error":"Cannot resolve import '../src/ai/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-provider.test.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-provider.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-provider.test.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-utils.test.ts","error":"Cannot resolve import '../src/ai/utils.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-utils.test.ts (line 8)","phase":"analyze"},{"filePath":"packages/core/__tests__/ai-utils.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\ai-utils.test.ts (line 9)","phase":"analyze"},{"filePath":"packages/core/__tests__/analyzer.test.ts","error":"Cannot resolve import '../src/analyzer/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\analyzer.test.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/__tests__/analyzer.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\analyzer.test.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/__tests__/call-analyzer.test.ts","error":"Cannot resolve import '../src/parser/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\call-analyzer.test.ts (line 21)","phase":"analyze"},{"filePath":"packages/core/__tests__/call-analyzer.test.ts","error":"Cannot resolve import '../src/parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\call-analyzer.test.ts (line 22)","phase":"analyze"},{"filePath":"packages/core/__tests__/call-analyzer.test.ts","error":"Cannot resolve import '../src/analyzer/call-analyzer.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\call-analyzer.test.ts (line 23)","phase":"analyze"},{"filePath":"packages/core/__tests__/call-analyzer.test.ts","error":"Cannot resolve import '../src/analyzer/call-analyzer.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\call-analyzer.test.ts (line 24)","phase":"analyze"},{"filePath":"packages/core/__tests__/directory-aggregator.test.ts","error":"Cannot resolve import '../src/analyzers/directory-aggregator.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\directory-aggregator.test.ts (line 30)","phase":"analyze"},{"filePath":"packages/core/__tests__/directory-aggregator.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\directory-aggregator.test.ts (line 31)","phase":"analyze"},{"filePath":"packages/core/__tests__/function-extractor.test.ts","error":"Cannot resolve import '../src/parser/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\function-extractor.test.ts (line 19)","phase":"analyze"},{"filePath":"packages/core/__tests__/function-extractor.test.ts","error":"Cannot resolve import '../src/parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\function-extractor.test.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/__tests__/function-extractor.test.ts","error":"Cannot resolve import '../src/parser/function-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\function-extractor.test.ts (line 21)","phase":"analyze"},{"filePath":"packages/core/__tests__/integration-s6.test.ts","error":"Cannot resolve import '../src/ai/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\integration-s6.test.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/__tests__/integration-s6.test.ts","error":"Cannot resolve import '../src/ai/anthropic.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\integration-s6.test.ts (line 72)","phase":"analyze"},{"filePath":"packages/core/__tests__/integration-s7.test.ts","error":"Cannot resolve import '../src/analyzer/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\integration-s7.test.ts (line 17)","phase":"analyze"},{"filePath":"packages/core/__tests__/integration-s7.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\integration-s7.test.ts (line 18)","phase":"analyze"},{"filePath":"packages/core/__tests__/overview-builder.test.ts","error":"Cannot resolve import '../src/ai/overview-builder.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\overview-builder.test.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/__tests__/overview-builder.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\overview-builder.test.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/providers/native-tree-sitter.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/ast-provider.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 107)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 123)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 137)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 149)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 163)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 178)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 195)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 210)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-treesitter.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-treesitter.test.ts (line 224)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-ts-compiler.test.ts","error":"Cannot resolve import '../src/parser/providers/typescript-compiler.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-ts-compiler.test.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-ts-path.test.ts","error":"Cannot resolve import '../src/parser/providers/typescript-compiler.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-ts-path.test.ts (line 21)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser-extractor-ts-path.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser-extractor-ts-path.test.ts (line 35)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser.test.ts","error":"Cannot resolve import '../src/parser/import-extractor.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser.test.ts (line 16)","phase":"analyze"},{"filePath":"packages/core/__tests__/parser.test.ts","error":"Cannot resolve import '../src/parser/import-resolver.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\parser.test.ts (line 17)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/providers/typescript-compiler.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 14)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 178)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 185)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 192)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 200)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 208)","phase":"analyze"},{"filePath":"packages/core/__tests__/providers.test.ts","error":"Cannot resolve import '../src/parser/parser-factory.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\providers.test.ts (line 214)","phase":"analyze"},{"filePath":"packages/core/__tests__/role-classifier.test.ts","error":"Cannot resolve import '../src/analyzer/role-classifier.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\role-classifier.test.ts (line 15)","phase":"analyze"},{"filePath":"packages/core/__tests__/role-classifier.test.ts","error":"Cannot resolve import '../src/types.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\role-classifier.test.ts (line 20)","phase":"analyze"},{"filePath":"packages/core/__tests__/scanner.test.ts","error":"Cannot resolve import '../src/scanner/index.js' in C:\\projects\\CodeAtlas\\packages\\core\\__tests__\\scanner.test.ts (line 11)","phase":"analyze"},{"filePath":"packages/web/src/components/Graph3DCanvas.tsx","error":"Failed to parse C:\\projects\\CodeAtlas\\packages\\web\\src\\components\\Graph3DCanvas.tsx: Error: Invalid argument","phase":"parse"},{"filePath":"packages/web/src/components/GraphCanvas.tsx","error":"Failed to parse C:\\projects\\CodeAtlas\\packages\\web\\src\\components\\GraphCanvas.tsx: Error: Invalid argument","phase":"parse"},{"filePath":"packages/web/src/main.tsx","error":"Cannot resolve import './styles/global.css' in C:\\projects\\CodeAtlas\\packages\\web\\src\\main.tsx (line 4)","phase":"analyze"},{"filePath":"packages/web/src/main.tsx","error":"Cannot resolve import './styles/stagger-animation.css' in C:\\projects\\CodeAtlas\\packages\\web\\src\\main.tsx (line 5)","phase":"analyze"},{"filePath":"packages/web/src/components/Graph3DCanvas.tsx","error":"Invalid argument","phase":"parse"},{"filePath":"packages/web/src/components/GraphCanvas.tsx","error":"Invalid argument","phase":"parse"}],"directoryGraph":{"nodes":[{"id":"src","label":"src","type":"entry","fileCount":8,"files":["packages/cli/src/cache.ts","packages/cli/src/config.ts","packages/cli/src/index.ts","packages/cli/src/server.ts","packages/core/src/index.ts","packages/core/src/types.ts","packages/web/src/App.tsx","packages/web/src/main.tsx"],"role":"utility"},{"id":"packages","label":"packages","type":"entry","fileCount":93,"files":["packages/cli/__tests__/cache.test.ts","packages/cli/__tests__/config.test.ts","packages/cli/tsup.config.ts","packages/cli/vitest.config.ts","packages/core/scripts/verify-parser.ts","packages/core/__tests__/fixtures/cjs-project/config.js","packages/core/__tests__/fixtures/cjs-project/index.js","packages/core/__tests__/fixtures/cjs-project/loader.js","packages/core/__tests__/fixtures/error-project/bad.ts","packages/core/__tests__/fixtures/error-project/good.ts","packages/core/__tests__/fixtures/function-level/basic-functions.ts","packages/core/__tests__/fixtures/function-level/call-relations.ts","packages/core/__tests__/fixtures/function-level/class-example.ts","packages/core/__tests__/fixtures/function-level/cross-file-callee.ts","packages/core/__tests__/fixtures/function-level/cross-file-caller.ts","packages/core/__tests__/fixtures/function-level/dynamic-calls.ts","packages/core/__tests__/fixtures/function-level/nested-functions.ts","packages/core/__tests__/fixtures/ignore-project/index.js","packages/core/__tests__/fixtures/mixed-project/api.ts","packages/core/__tests__/fixtures/mixed-project/index.ts","packages/core/__tests__/fixtures/mixed-project/legacy.js","packages/core/__tests__/fixtures/simple-project/utils/helper.js","packages/core/__tests__/fixtures/simple-project/utils/math.js","packages/core/__tests__/fixtures/simple-project/index.js","packages/core/__tests__/fixtures/ts-project/services/greeter.ts","packages/core/__tests__/fixtures/ts-project/utils/format.ts","packages/core/__tests__/fixtures/ts-project/utils/index.ts","packages/core/__tests__/fixtures/ts-project/index.ts","packages/core/__tests__/fixtures/ts-project/types.ts","packages/core/__tests__/fixtures/unresolvable-project/index.ts","packages/core/__tests__/ai-anthropic.test.ts","packages/core/__tests__/ai-ollama.test.ts","packages/core/__tests__/ai-openai.test.ts","packages/core/__tests__/ai-provider.test.ts","packages/core/__tests__/ai-utils.test.ts","packages/core/__tests__/analyzer.test.ts","packages/core/__tests__/call-analyzer.test.ts","packages/core/__tests__/directory-aggregator.test.ts","packages/core/__tests__/function-extractor.test.ts","packages/core/__tests__/integration-s6.test.ts","packages/core/__tests__/integration-s7.test.ts","packages/core/__tests__/overview-builder.test.ts","packages/core/__tests__/parser-extractor-treesitter.test.ts","packages/core/__tests__/parser-extractor-ts-compiler.test.ts","packages/core/__tests__/parser-extractor-ts-path.test.ts","packages/core/__tests__/parser.test.ts","packages/core/__tests__/providers.test.ts","packages/core/__tests__/role-classifier.test.ts","packages/core/__tests__/scanner.test.ts","packages/core/tsup.config.ts","packages/core/vitest.config.ts","packages/web/__tests__/bfs-hover-highlight.test.ts","packages/web/__tests__/call-chain.test.ts","packages/web/__tests__/camera-presets.test.tsx","packages/web/__tests__/curation.test.ts","packages/web/__tests__/dagre-layout.test.ts","packages/web/__tests__/directory-card.test.tsx","packages/web/__tests__/e2e-tracing.test.ts","packages/web/__tests__/edge-symbols.test.ts","packages/web/__tests__/function-node.test.ts","packages/web/__tests__/graph-3d-data.test.ts","packages/web/__tests__/graph-adapter-directory.test.ts","packages/web/__tests__/graph-adapter-filter.test.ts","packages/web/__tests__/graph-adapter-perspective.test.ts","packages/web/__tests__/graph-adapter.test.ts","packages/web/__tests__/heatmap.test.ts","packages/web/__tests__/impact-analysis.test.ts","packages/web/__tests__/integration-3d.test.tsx","packages/web/__tests__/integration-s5.test.ts","packages/web/__tests__/layout-router.test.ts","packages/web/__tests__/layout.test.ts","packages/web/__tests__/node-io-badge.test.ts","packages/web/__tests__/path-tracer.test.ts","packages/web/__tests__/performance-3d.test.ts","packages/web/__tests__/perspective-presets.test.ts","packages/web/__tests__/privacy-badge.test.ts","packages/web/__tests__/search.test.ts","packages/web/__tests__/stagger-animation.test.ts","packages/web/__tests__/tab-bar.test.tsx","packages/web/__tests__/tracing-panel.test.ts","packages/web/__tests__/use-bfs-click-focus.test.ts","packages/web/__tests__/use-hover-highlight.test.ts","packages/web/__tests__/use-stagger-animation.test.ts","packages/web/__tests__/view-modes.test.ts","packages/web/__tests__/view-state-s7.test.ts","packages/web/__tests__/view-state-s8.test.ts","packages/web/__tests__/view-state-s9.test.ts","packages/web/__tests__/view-state.test.ts","packages/web/__tests__/view-toggle.test.tsx","packages/web/__tests__/viewstate-curation.test.ts","packages/web/__tests__/viewstate-perspective.test.ts","packages/web/vite.config.ts","packages/web/vitest.config.ts"],"role":"noise"},{"id":"ai","label":"ai","type":"entry","fileCount":8,"files":["packages/core/src/ai/anthropic.ts","packages/core/src/ai/disabled.ts","packages/core/src/ai/index.ts","packages/core/src/ai/ollama.ts","packages/core/src/ai/openai.ts","packages/core/src/ai/overview-builder.ts","packages/core/src/ai/types.ts","packages/core/src/ai/utils.ts"],"role":"infrastructure"},{"id":"analyzer","label":"analyzer","type":"entry","fileCount":4,"files":["packages/core/src/analyzer/call-analyzer.ts","packages/core/src/analyzer/graph-builder.ts","packages/core/src/analyzer/index.ts","packages/core/src/analyzer/role-classifier.ts"],"role":"infrastructure"},{"id":"parser","label":"parser","type":"entry","fileCount":9,"files":["packages/core/src/parser/providers/native-tree-sitter.ts","packages/core/src/parser/providers/typescript-compiler.ts","packages/core/src/parser/providers/wasm-tree-sitter.ts","packages/core/src/parser/ast-provider.ts","packages/core/src/parser/function-extractor.ts","packages/core/src/parser/import-extractor.ts","packages/core/src/parser/import-resolver.ts","packages/core/src/parser/index.ts","packages/core/src/parser/parser-factory.ts"],"role":"utility"},{"id":"adapters","label":"adapters","type":"support","fileCount":6,"files":["packages/web/src/adapters/dagre-layout.ts","packages/web/src/adapters/graph-adapter.ts","packages/web/src/adapters/layout-router.ts","packages/web/src/adapters/path-tracing-layout.ts","packages/web/src/adapters/perspective-presets.ts","packages/web/src/adapters/view-modes.ts"],"role":"infrastructure"},{"id":"api","label":"api","type":"support","fileCount":3,"files":["packages/web/src/api/ai.ts","packages/web/src/api/graph.ts","packages/web/src/api/node.ts"],"role":"business-logic"},{"id":"components","label":"components","type":"support","fileCount":36,"files":["packages/web/src/components/AiSummary.tsx","packages/web/src/components/CallEdge.tsx","packages/web/src/components/CameraPresets.tsx","packages/web/src/components/ChainInfoPanel.tsx","packages/web/src/components/ClassNode.tsx","packages/web/src/components/CodePreview.tsx","packages/web/src/components/ContextMenu.tsx","packages/web/src/components/ControlPanel.tsx","packages/web/src/components/ControlPanelSection.tsx","packages/web/src/components/DirectoryCard.tsx","packages/web/src/components/DirectoryNode.tsx","packages/web/src/components/DisplayPrefsSection.tsx","packages/web/src/components/E2EPanel.tsx","packages/web/src/components/EdgeSymbolLabel.tsx","packages/web/src/components/ElbowEdge.tsx","packages/web/src/components/FilterPanel.tsx","packages/web/src/components/FunctionNode.tsx","packages/web/src/components/FunctionPanel.tsx","packages/web/src/components/Graph3DCanvas.tsx","packages/web/src/components/GraphCanvas.tsx","packages/web/src/components/GraphContainer.tsx","packages/web/src/components/HeatmapToggle.tsx","packages/web/src/components/ImpactPanel.tsx","packages/web/src/components/JourneyPanel.tsx","packages/web/src/components/NeonEdge.tsx","packages/web/src/components/NeonNode.tsx","packages/web/src/components/NodeIOBadge.tsx","packages/web/src/components/NodePanel.tsx","packages/web/src/components/OverviewPanel.tsx","packages/web/src/components/PerspectiveHint.tsx","packages/web/src/components/PrivacyBadge.tsx","packages/web/src/components/SearchBar.tsx","packages/web/src/components/TabBar.tsx","packages/web/src/components/Toolbar.tsx","packages/web/src/components/TracingPanel.tsx","packages/web/src/components/ViewToggle.tsx"],"role":"business-logic"},{"id":"hooks","label":"hooks","type":"logic","fileCount":17,"files":["packages/web/src/hooks/useAiSummary.ts","packages/web/src/hooks/useBfsClickFocus.ts","packages/web/src/hooks/useBfsHoverHighlight.ts","packages/web/src/hooks/useCallChain.ts","packages/web/src/hooks/useE2ETracing.ts","packages/web/src/hooks/useEdgeSymbols.ts","packages/web/src/hooks/useForceLayout.ts","packages/web/src/hooks/useGraphData.ts","packages/web/src/hooks/useHeatmap.ts","packages/web/src/hooks/useHoverHighlight.ts","packages/web/src/hooks/useImpactAnalysis.ts","packages/web/src/hooks/useNodeDetail.ts","packages/web/src/hooks/usePathTracing.ts","packages/web/src/hooks/useSearch.ts","packages/web/src/hooks/useStaggerAnimation.ts","packages/web/src/hooks/useViewportAnimation.ts","packages/web/src/hooks/useZoomIntoFile.ts"],"role":"utility"},{"id":"utils","label":"utils","type":"support","fileCount":3,"files":["packages/web/src/utils/layout.ts","packages/web/src/utils/path-tracer.ts","packages/web/src/utils/three-helpers.ts"],"role":"utility"},{"id":"其他","label":"其他","type":"entry","fileCount":9,"files":["design/sprint2-theme-draft.ts","packages/cli/src/commands/analyze.ts","packages/cli/src/commands/web.ts","packages/core/src/analyzers/directory-aggregator.ts","packages/core/src/scanner/index.ts","packages/web/src/contexts/ViewStateContext.tsx","packages/web/src/styles/theme.ts","packages/web/src/types/graph.ts",".eslintrc.js"],"role":"business-logic"}],"edges":[{"source":"adapters","target":"其他","weight":4},{"source":"api","target":"其他","weight":3},{"source":"components","target":"adapters","weight":1},{"source":"components","target":"其他","weight":6},{"source":"hooks","target":"api","weight":5},{"source":"hooks","target":"其他","weight":16},{"source":"hooks","target":"adapters","weight":4},{"source":"hooks","target":"utils","weight":1},{"source":"utils","target":"adapters","weight":1},{"source":"packages","target":"hooks","weight":10},{"source":"packages","target":"其他","weight":33},{"source":"packages","target":"components","weight":9},{"source":"packages","target":"adapters","weight":14},{"source":"packages","target":"utils","weight":3}]}}