diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..111ab7a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,44 @@ +# AGENTS.md – Repository Quick‑Start Guide + +**Purpose**: Give OpenCode agents the exact commands and conventions they need to work safely and efficiently in the *AITrader* codebase. Only include items that are easy to miss without explicit guidance. + +--- + +## Core npm scripts (run from the repository root) +- `npm run dev` – Starts the development server with hot‑module replacement via **react‑router dev**. The app is served at `http://localhost:5173`. +- `npm run build` – Produces a production build using **react‑router build**. Output lives in `./build` with `client/` (static assets) and `server/` (Node entry point). +- `npm start` – Serves the built server bundle with **react‑router-serve ./build/server/index.js**. Use after `npm run build`. +- `npm run typecheck` – Runs **react‑router typegen** then `tsc`. Must be run before committing any TypeScript changes. + +## Development workflow +1. **Install deps** – `npm install` (first time only). +2. **Start dev** – `npm run dev`. Changes are hot‑reloaded; no manual restart needed. +3. **Iterate** – Edit files under `src/` (React components, routes, loaders, actions, etc.). +4. **Validate** – Run `npm run typecheck` regularly; it catches missing typegen steps. +5. **Build & serve** – When ready for a preview: + ```bash + npm run build && npm start + ``` + This uses the production‑ready server (`@react-router/serve`). + +## Docker deployment (optional) +- Build image: `docker build -t aitrader .` +- Run container: `docker run -p 3000:3000 aitrader` +- The container expects the app to be built; include `npm run build` in your Dockerfile before the final `CMD`. + +## TypeScript nuances +- The `typecheck` script runs **react‑router typegen** first; agents must not skip this step because generated types are required for successful compilation. +- The project uses ES modules (`"type": "module"`). Import paths should include file extensions (`.js`, `.ts`) where Node requires them. + +## TailwindCSS +- Tailwind is configured via Vite (`@tailwindcss/vite`). No extra build steps are needed; the dev server and production build automatically process Tailwind classes. + +## Common pitfalls agents might miss +- **Running the server without a build** – `npm start` will fail if `npm run build` hasn't been executed first. +- **Skipping typegen** – Directly running `tsc` without the preceding `react-router typegen` results in missing type definitions. +- **Assuming a `test` script exists** – This repository has no test suite; any `npm test` command will error. +- **Port assumptions** – Development server runs on `5173`; production server (Docker) defaults to `3000` unless overridden. + +--- + +*Keep this file up‑to‑date as scripts or tooling evolve.* \ No newline at end of file diff --git a/graphify-out/.graphify_ast.json b/graphify-out/.graphify_ast.json new file mode 100644 index 0000000..97771c2 --- /dev/null +++ b/graphify-out/.graphify_ast.json @@ -0,0 +1,328 @@ +{ + "nodes": [ + { + "id": "react_router_config_ts", + "label": "react-router.config.ts", + "file_type": "code", + "source_file": "react-router.config.ts", + "source_location": "L1" + }, + { + "id": "vite_config_ts", + "label": "vite.config.ts", + "file_type": "code", + "source_file": "vite.config.ts", + "source_location": "L1" + }, + { + "id": "app_root_tsx", + "label": "root.tsx", + "file_type": "code", + "source_file": "app\\root.tsx", + "source_location": "L1" + }, + { + "id": "app_root_links", + "label": "links()", + "file_type": "code", + "source_file": "app\\root.tsx", + "source_location": "L13" + }, + { + "id": "app_root_layout", + "label": "Layout()", + "file_type": "code", + "source_file": "app\\root.tsx", + "source_location": "L26" + }, + { + "id": "app_root_app", + "label": "App()", + "file_type": "code", + "source_file": "app\\root.tsx", + "source_location": "L44" + }, + { + "id": "app_root_errorboundary", + "label": "ErrorBoundary()", + "file_type": "code", + "source_file": "app\\root.tsx", + "source_location": "L48" + }, + { + "id": "app_routes_ts", + "label": "routes.ts", + "file_type": "code", + "source_file": "app\\routes.ts", + "source_location": "L1" + }, + { + "id": "app_routes_home_tsx", + "label": "home.tsx", + "file_type": "code", + "source_file": "app\\routes\\home.tsx", + "source_location": "L1" + }, + { + "id": "routes_home_meta", + "label": "meta()", + "file_type": "code", + "source_file": "app\\routes\\home.tsx", + "source_location": "L4" + }, + { + "id": "routes_home_home", + "label": "Home()", + "file_type": "code", + "source_file": "app\\routes\\home.tsx", + "source_location": "L11" + }, + { + "id": "app_welcome_welcome_tsx", + "label": "welcome.tsx", + "file_type": "code", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L1" + }, + { + "id": "welcome_welcome_welcome", + "label": "Welcome()", + "file_type": "code", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L4" + }, + { + "id": "welcome_welcome_resources", + "label": "resources", + "file_type": "code", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L49" + } + ], + "edges": [ + { + "source": "react_router_config_ts", + "target": "config", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "react-router.config.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "vite_config_ts", + "target": "vite", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "vite.config.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "vite_config_ts", + "target": "vite", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "vite.config.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "vite_config_ts", + "target": "vite", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "vite.config.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "react_router", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "c_users_henry_programming_aitrader_app_types_root", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "types_root_route", + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "c_users_henry_programming_aitrader_app_app_css", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "app_root_links", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "app_root_layout", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "app_root_app", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "app_root_tsx", + "target": "app_root_errorboundary", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\root.tsx", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "app_routes_ts", + "target": "routes", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\routes.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "c_users_henry_programming_aitrader_app_routes_types_home", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "types_home_route", + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "app_welcome_welcome_tsx", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "welcome_welcome_welcome", + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "routes_home_meta", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "app_routes_home_tsx", + "target": "routes_home_home", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\routes\\home.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "app_welcome_welcome_tsx", + "target": "c_users_henry_programming_aitrader_app_welcome_logo_dark_svg", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "app_welcome_welcome_tsx", + "target": "c_users_henry_programming_aitrader_app_welcome_logo_light_svg", + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "app_welcome_welcome_tsx", + "target": "welcome_welcome_welcome", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "app_welcome_welcome_tsx", + "target": "welcome_welcome_resources", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "app\\welcome\\welcome.tsx", + "source_location": "L49", + "weight": 1.0 + } + ], + "input_tokens": 0, + "output_tokens": 0 +} \ No newline at end of file diff --git a/graphify-out/.graphify_cached.json b/graphify-out/.graphify_cached.json new file mode 100644 index 0000000..1b4f80f --- /dev/null +++ b/graphify-out/.graphify_cached.json @@ -0,0 +1 @@ +{"nodes": [], "edges": [], "hyperedges": []} \ No newline at end of file diff --git a/graphify-out/.graphify_detect.json b/graphify-out/.graphify_detect.json new file mode 100644 index 0000000..4f59566 --- /dev/null +++ b/graphify-out/.graphify_detect.json @@ -0,0 +1 @@ +{"files": {"code": ["C:\\Users\\Henry\\programming\\AITrader\\react-router.config.ts", "C:\\Users\\Henry\\programming\\AITrader\\vite.config.ts", "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "C:\\Users\\Henry\\programming\\AITrader\\app\\routes.ts", "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx"], "document": ["C:\\Users\\Henry\\programming\\AITrader\\AGENTS.md", "C:\\Users\\Henry\\programming\\AITrader\\README.md"], "paper": [], "image": ["C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\logo-dark.svg", "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\logo-light.svg"], "video": []}, "total_files": 10, "total_words": 2379, "needs_graph": false, "warning": "Corpus is ~2,379 words - fits in a single context window. You may not need a graph.", "skipped_sensitive": [], "graphifyignore_patterns": 0} diff --git a/graphify-out/.graphify_python b/graphify-out/.graphify_python new file mode 100644 index 0000000..86360d2 --- /dev/null +++ b/graphify-out/.graphify_python @@ -0,0 +1 @@ +C:\Users\Henry\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe \ No newline at end of file diff --git a/graphify-out/.graphify_uncached.txt b/graphify-out/.graphify_uncached.txt new file mode 100644 index 0000000..1ef75f1 --- /dev/null +++ b/graphify-out/.graphify_uncached.txt @@ -0,0 +1,10 @@ +C:\Users\Henry\programming\AITrader\react-router.config.ts +C:\Users\Henry\programming\AITrader\vite.config.ts +C:\Users\Henry\programming\AITrader\app\root.tsx +C:\Users\Henry\programming\AITrader\app\routes.ts +C:\Users\Henry\programming\AITrader\app\routes\home.tsx +C:\Users\Henry\programming\AITrader\app\welcome\welcome.tsx +C:\Users\Henry\programming\AITrader\AGENTS.md +C:\Users\Henry\programming\AITrader\README.md +C:\Users\Henry\programming\AITrader\app\welcome\logo-dark.svg +C:\Users\Henry\programming\AITrader\app\welcome\logo-light.svg \ No newline at end of file diff --git a/graphify-out/cache/ast/275de633016dadbc0607fa0fdb23715a6080ba92b4d7222367ed0e8ea06bbbe8.json b/graphify-out/cache/ast/275de633016dadbc0607fa0fdb23715a6080ba92b4d7222367ed0e8ea06bbbe8.json new file mode 100644 index 0000000..59732be --- /dev/null +++ b/graphify-out/cache/ast/275de633016dadbc0607fa0fdb23715a6080ba92b4d7222367ed0e8ea06bbbe8.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_app_routes_ts", "label": "routes.ts", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes.ts", "source_location": "L1"}], "edges": [{"source": "c_users_henry_programming_aitrader_app_routes_ts", "target": "routes", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/ast/4fd9ae6b0d1113e59e6a1dd300bf3c1f261355fc5ea3b388316906d549b3779d.json b/graphify-out/cache/ast/4fd9ae6b0d1113e59e6a1dd300bf3c1f261355fc5ea3b388316906d549b3779d.json new file mode 100644 index 0000000..736d2af --- /dev/null +++ b/graphify-out/cache/ast/4fd9ae6b0d1113e59e6a1dd300bf3c1f261355fc5ea3b388316906d549b3779d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "label": "welcome.tsx", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L1"}, {"id": "welcome_welcome_welcome", "label": "Welcome()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L4"}, {"id": "welcome_welcome_resources", "label": "resources", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L49"}], "edges": [{"source": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "target": "c_users_henry_programming_aitrader_app_welcome_logo_dark_svg", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L1", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "target": "c_users_henry_programming_aitrader_app_welcome_logo_light_svg", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L2", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "target": "welcome_welcome_welcome", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L4", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "target": "welcome_welcome_resources", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L49", "weight": 1.0}], "raw_calls": [{"caller_nid": "welcome_welcome_welcome", "callee": "map", "is_member_call": true, "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\welcome\\welcome.tsx", "source_location": "L28"}]} \ No newline at end of file diff --git a/graphify-out/cache/ast/b165001a91160701f7cad239dcf3d5e14066cbe8478e347961281d5e8d89a913.json b/graphify-out/cache/ast/b165001a91160701f7cad239dcf3d5e14066cbe8478e347961281d5e8d89a913.json new file mode 100644 index 0000000..3b99a66 --- /dev/null +++ b/graphify-out/cache/ast/b165001a91160701f7cad239dcf3d5e14066cbe8478e347961281d5e8d89a913.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_vite_config_ts", "label": "vite.config.ts", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\vite.config.ts", "source_location": "L1"}], "edges": [{"source": "c_users_henry_programming_aitrader_vite_config_ts", "target": "vite", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\vite.config.ts", "source_location": "L1", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_vite_config_ts", "target": "vite", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\vite.config.ts", "source_location": "L2", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_vite_config_ts", "target": "vite", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\vite.config.ts", "source_location": "L3", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/ast/d4945d08b117d327e41d51c59ec74173949a0d5fbee4f4b8ea1bf7ebc32a8c29.json b/graphify-out/cache/ast/d4945d08b117d327e41d51c59ec74173949a0d5fbee4f4b8ea1bf7ebc32a8c29.json new file mode 100644 index 0000000..1c72aac --- /dev/null +++ b/graphify-out/cache/ast/d4945d08b117d327e41d51c59ec74173949a0d5fbee4f4b8ea1bf7ebc32a8c29.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_app_routes_home_tsx", "label": "home.tsx", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L1"}, {"id": "routes_home_meta", "label": "meta()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L4"}, {"id": "routes_home_home", "label": "Home()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L11"}], "edges": [{"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "c_users_henry_programming_aitrader_app_routes_types_home", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L1", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "types_home_route", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L1", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "c_users_henry_programming_aitrader_app_welcome_welcome_tsx", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L2", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "welcome_welcome_welcome", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L2", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "routes_home_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L4", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_routes_home_tsx", "target": "routes_home_home", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\routes\\home.tsx", "source_location": "L11", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/graphify-out/cache/ast/d60a2b1ae0b640fde4530fe895e3f87962df11ba043c41492ab2acf2b7816698.json b/graphify-out/cache/ast/d60a2b1ae0b640fde4530fe895e3f87962df11ba043c41492ab2acf2b7816698.json new file mode 100644 index 0000000..19dadc4 --- /dev/null +++ b/graphify-out/cache/ast/d60a2b1ae0b640fde4530fe895e3f87962df11ba043c41492ab2acf2b7816698.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_app_root_tsx", "label": "root.tsx", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L1"}, {"id": "app_root_links", "label": "links()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L13"}, {"id": "app_root_layout", "label": "Layout()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L26"}, {"id": "app_root_app", "label": "App()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L44"}, {"id": "app_root_errorboundary", "label": "ErrorBoundary()", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L48"}], "edges": [{"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "react_router", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L1", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "c_users_henry_programming_aitrader_app_types_root", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L10", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "types_root_route", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L10", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "c_users_henry_programming_aitrader_app_app_css", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L11", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "app_root_links", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L13", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "app_root_layout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L26", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "app_root_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L44", "weight": 1.0}, {"source": "c_users_henry_programming_aitrader_app_root_tsx", "target": "app_root_errorboundary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L48", "weight": 1.0}], "raw_calls": [{"caller_nid": "app_root_errorboundary", "callee": "isRouteErrorResponse", "is_member_call": false, "source_file": "C:\\Users\\Henry\\programming\\AITrader\\app\\root.tsx", "source_location": "L53"}]} \ No newline at end of file diff --git a/graphify-out/cache/ast/e3ab1a9226290a838beefb1957af70f682402a51552527e2d27c13dc337f18e0.json b/graphify-out/cache/ast/e3ab1a9226290a838beefb1957af70f682402a51552527e2d27c13dc337f18e0.json new file mode 100644 index 0000000..d85e312 --- /dev/null +++ b/graphify-out/cache/ast/e3ab1a9226290a838beefb1957af70f682402a51552527e2d27c13dc337f18e0.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_users_henry_programming_aitrader_react_router_config_ts", "label": "react-router.config.ts", "file_type": "code", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\react-router.config.ts", "source_location": "L1"}], "edges": [{"source": "c_users_henry_programming_aitrader_react_router_config_ts", "target": "config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "C:\\Users\\Henry\\programming\\AITrader\\react-router.config.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file