diff --git a/.gitignore b/.gitignore index 1260266..b4253b2 100644 --- a/.gitignore +++ b/.gitignore @@ -203,3 +203,8 @@ minio-data/ # Browser test output playwright-report/ test-results/ + +.graphify_python +.graphify_root +cost.json +graphify-out/cache/ \ No newline at end of file diff --git a/.kilo/kilo.json b/.kilo/kilo.json new file mode 100644 index 0000000..2dafe5b --- /dev/null +++ b/.kilo/kilo.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://app.kilo.ai/config.json", + "plugin": [ + "file:///home/k1nq/repos/finance/.kilo/plugins/graphify.js" + ], + "mcp": { + "graphify": { + "type": "local", + "command": [ + "/home/k1nq/.local/bin/graphify-mcp", + "/home/k1nq/repos/finance/graphify-out/graph.json" + ], + "enabled": true, + "timeout": 10000 + } +} +} \ No newline at end of file diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..e5dd0c2 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,8 @@ +node_modules +dist +.eslintcache +coverage +playwright-report +test-results +.env +.env.* diff --git a/frontend/package.json b/frontend/package.json index 35c3bca..dabbd76 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -43,8 +43,5 @@ "typescript-eslint": "^8.33.0", "vite": "^6.3.5", "vitest": "^3.2.0" - }, - "allowScripts": { - "esbuild@0.25.12": true } } diff --git a/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml new file mode 100644 index 0000000..e89b8fe --- /dev/null +++ b/frontend/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +allowBuilds: + esbuild@0.25.12: true diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json new file mode 100644 index 0000000..a2f2b6b --- /dev/null +++ b/graphify-out/.graphify_labels.json @@ -0,0 +1,64 @@ +{ + "0": "Identity and Configuration", + "1": "Budget Domain Services", + "2": "Database Models", + "3": "Database Context and Exports", + "4": "Statement Import Services", + "5": "Parser Adapters", + "6": "Ledger Services", + "7": "API Domain Types", + "8": "Authentication UI", + "9": "Ledger API", + "10": "Import Review UI", + "11": "TypeScript Configuration", + "12": "Analytics UI", + "13": "API and Analytics", + "14": "Frontend Development Dependencies", + "15": "Accounts UI", + "16": "Frontend Runtime Dependencies", + "17": "Import Detail Mutations", + "18": "Operations UI", + "19": "Query Keys and Operations", + "20": "Frontend Bootstrap", + "21": "Frontend Test Support", + "22": "Budget UI", + "23": "HTTP API Client", + "24": "Form Fields", + "25": "Infrastructure and CI", + "26": "Core Finance Domain", + "27": "Frontend Scripts", + "28": "Settings and Data Lifecycle", + "29": "Budget Allocation Model", + "30": "MVP and Import Design", + "31": "Data Security and Recovery", + "32": "Ledger Concepts", + "33": "Parser Versioning", + "34": "Frontend Architecture", + "35": "Beta Release Governance", + "36": "Package Metadata", + "37": "Tenant Isolation", + "38": "Deletion and Restore", + "39": "API Generation Script", + "40": "OpenAPI Schema", + "41": "API Integration Tests", + "42": "Localization Tests", + "43": "Income Classification", + "44": "Accessibility ESLint", + "45": "JavaScript Globals", + "46": "JSDOM Dependency", + "47": "React Type Definitions", + "48": "React DOM Types", + "49": "TypeScript ESLint", + "50": "Vite React Plugin", + "51": "Vitest Dependency", + "52": "Favicon Design", + "53": "Database Role Initialization", + "54": "Application Package", + "55": "Spaces Package", + "56": "Payee Concept", + "57": "ESLint Configuration", + "58": "Money Utilities Tests", + "59": "Vite Environment Types", + "60": "Vite Configuration", + "61": "Backend Package Metadata" +} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md new file mode 100644 index 0000000..8b3c14c --- /dev/null +++ b/graphify-out/GRAPH_REPORT.md @@ -0,0 +1,293 @@ +# Graph Report - finance (2026-09-14) + +## Corpus Check +- 147 files · ~51,467 words +- Verdict: corpus is large enough that graph structure adds value. + +## Summary +- 1078 nodes · 3099 edges · 62 communities (42 shown, 14 thin omitted) +- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 50 edges (avg confidence: 0.93) +- Token cost: 0 input · 0 output + +## Community Hubs (Navigation) +- Identity and Configuration +- Budget Domain Services +- Database Models +- Database Context and Exports +- Statement Import Services +- Parser Adapters +- Ledger Services +- API Domain Types +- Authentication UI +- Ledger API +- Import Review UI +- TypeScript Configuration +- Analytics UI +- API and Analytics +- Frontend Development Dependencies +- Accounts UI +- Frontend Runtime Dependencies +- Import Detail Mutations +- Operations UI +- Query Keys and Operations +- Frontend Bootstrap +- Frontend Test Support +- Budget UI +- HTTP API Client +- Form Fields +- Infrastructure and CI +- Core Finance Domain +- Frontend Scripts +- Settings and Data Lifecycle +- Budget Allocation Model +- MVP and Import Design +- Data Security and Recovery +- Ledger Concepts +- Parser Versioning +- Frontend Architecture +- Beta Release Governance +- Package Metadata +- Tenant Isolation +- Deletion and Restore +- API Generation Script +- OpenAPI Schema +- API Integration Tests +- Localization Tests +- Income Classification +- Accessibility ESLint +- JavaScript Globals +- JSDOM Dependency +- React Type Definitions +- React DOM Types +- TypeScript ESLint +- Vite React Plugin +- Vitest Dependency +- Favicon Design +- Database Role Initialization +- Payee Concept +- Backend Package Metadata + +## God Nodes (most connected - your core abstractions) +1. `Session` - 111 edges +2. `Base` - 46 edges +3. `AppError` - 41 edges +4. `get_settings()` - 38 edges +5. `PkMixin` - 38 edges +6. `TimestampMixin` - 37 edges +7. `conflict()` - 34 edges +8. `record()` - 32 edges +9. `bad_request()` - 27 edges +10. `not_found()` - 26 edges + +## Surprising Connections (you probably didn't know these) +- `Versioned Statement Imports` --conceptually_related_to--> `Statement Import` [INFERRED] + docs/adr/0003-versioned-statement-imports.md → CONTEXT.md +- `MVP Release Gates` --conceptually_related_to--> `Closed Beta Launch Gates` [INFERRED] + .kilo/plans/1789034192214-financial-tracker-mvp.md → docs/operations/beta-release-runbook.md +- `Financial Space Ownership` --conceptually_related_to--> `Financial Space` [INFERRED] + docs/adr/0001-financial-space-ownership-and-rls.md → CONTEXT.md +- `Typed Same-Origin API Client` --conceptually_related_to--> `Same-Origin Reverse Proxy` [INFERRED] + frontend/README.md → infra/README.md +- `Compose and Nginx Validation` --references--> `Docker Compose Development Stack` [EXTRACTED] + .github/workflows/ci.yml → infra/docker-compose.yml + +## Import Cycles +- None detected. + +## Hyperedges (group relationships) +- **Financial Space Tenancy Boundary** — context_financial_space, context_membership, docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization, docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls, docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity [EXTRACTED 1.00] +- **Auditable Financial Model** — context_operation, context_posting, docs_adr_0002_journal_and_budget_reserves_derived_balances, docs_adr_0002_journal_and_budget_reserves_plan_funding_separation, docs_adr_0002_journal_and_budget_reserves_closure_snapshots [EXTRACTED 1.00] +- **Safe Statement Import Flow** — context_statement_import, context_parse_run, context_source_record, docs_adr_0003_versioned_statement_imports_immutable_statement_document, docs_adr_0003_versioned_statement_imports_conservative_deduplication, docs_adr_0003_versioned_statement_imports_atomic_confirm_revert [EXTRACTED 1.00] + +## Communities (62 total, 14 thin omitted) + +### Community 0 - "Identity and Configuration" +Cohesion: 0.05 +Nodes (87): get_settings(), Settings, current_context(), current_session(), alias, Context, CurrentSession, Db (+79 more) + +### Community 1 - "Budget Domain Services" +Cohesion: 0.09 +Nodes (84): balances(), cash_flow(), category_spend(), plan_fact(), date, UUID, BudgetPeriod, Calendar month budget period in the space timezone (month granularity). (+76 more) + +### Community 2 - "Database Models" +Cohesion: 0.08 +Nodes (64): downgrade(), upgrade(), AuditEvent, Append-only domain/security event. Never stores raw financial payloads., ExpectedIncome, ExpectedIncomeMatch, FundingMovement, PeriodClosure (+56 more) + +### Community 3 - "Database Context and Exports" +Cohesion: 0.06 +Nodes (46): get_db(), get_session_factory(), Any, sessionmaker, Transaction-local RLS context. No-op on SQLite (tests); fail-closed on…, Transactional scope for workers/endpoints that own the transaction lifecycle., session_scope(), set_space_context() (+38 more) + +### Community 4 - "Statement Import Services" +Cohesion: 0.10 +Nodes (55): detect_adapter(), magic_kind(), new_object_key(), decrypt_file(), encrypt_file(), EncryptedFile, Per-file random DEK; DEK wrapped with the KEK from the secret manager., Crypto-shred hook: deleting wrapped DEK rows in DB plus blobs removes access. (+47 more) + +### Community 5 - "Parser Adapters" +Cohesion: 0.08 +Nodes (42): AppError, Any, Domain error rendered as a machine-readable JSON error payload., unprocessable(), AlfaCreditXlsxAdapter, AlfaDebitXlsxAdapter, AlfaXlsxAdapterBase, _cell_str() (+34 more) + +### Community 6 - "Ledger Services" +Cohesion: 0.14 +Nodes (48): Any, record(), get_income_source(), conflict(), not_found(), confirm_document(), Operation, Posting (+40 more) + +### Community 7 - "API Domain Types" +Cohesion: 0.07 +Nodes (39): AccountStatus, BalanceItem, BalancesReport, BudgetBlocker, BudgetCategory, BudgetStatus, BudgetSummary, BudgetWarning (+31 more) + +### Community 8 - "Authentication UI" +Cohesion: 0.10 +Nodes (33): AcceptInvitePayload, LoginPayload, PasswordResetPayload, AcceptInvitePage, AccountsPage, BudgetPage, LoginPage, OperationsPage (+25 more) + +### Community 9 - "Ledger API" +Cohesion: 0.15 +Nodes (31): account_json(), AccountBody, accounts(), archive_account(), create_account(), create_operation(), delete_account(), operation_json() (+23 more) + +### Community 10 - "Import Review UI" +Cohesion: 0.11 +Nodes (21): Operation, ImportsPage, NotFoundPage, ReviewQueuePage, Badge(), BadgeTone, EmptyState(), EmptyStateProps (+13 more) + +### Community 11 - "TypeScript Configuration" +Cohesion: 0.07 +Nodes (28): compilerOptions, baseUrl, esModuleInterop, forceConsistentCasingInFileNames, isolatedModules, jsx, lib, module (+20 more) + +### Community 12 - "Analytics UI" +Cohesion: 0.12 +Nodes (19): AnalyticsPage, CashFlowColumn, ColumnChart(), ColumnChartProps, BarRow, HorizontalBars(), HorizontalBarsProps, PlanFactBars() (+11 more) + +### Community 13 - "API and Analytics" +Cohesion: 0.14 +Nodes (22): balances(), cash_flow(), category_spend(), plan_fact(), Context, date, Db, get (+14 more) + +### Community 14 - "Frontend Development Dependencies" +Cohesion: 0.10 +Nodes (21): eslint, @eslint/js, eslint-plugin-react-hooks, devDependencies, eslint, @eslint/js, eslint-plugin-react-hooks, openapi-typescript (+13 more) + +### Community 15 - "Accounts UI" +Cohesion: 0.16 +Nodes (15): Account, AccountType, ConfirmDialog(), ConfirmDialogProps, Modal(), ModalProps, useAccounts(), useArchiveAccount() (+7 more) + +### Community 16 - "Frontend Runtime Dependencies" +Cohesion: 0.11 +Nodes (19): dependencies, @hookform/resolvers, i18next, react, react-dom, react-hook-form, react-i18next, react-router-dom (+11 more) + +### Community 17 - "Import Detail Mutations" +Cohesion: 0.27 +Nodes (15): RowDecision, ImportDetailPage, useToast(), useConfirmImport(), useImport(), useImportErrorToaster(), useReparseImport(), useRevertImport() (+7 more) + +### Community 18 - "Operations UI" +Cohesion: 0.27 +Nodes (14): useActiveAccounts(), useCreateOperation(), useLedgerMutation(), useOperations(), useVoidOperation(), amountField(), dateField(), ExpenseForm() (+6 more) + +### Community 19 - "Query Keys and Operations" +Cohesion: 0.22 +Nodes (10): api, invalidationRoots, queryKeys, SESSION_ROOT, sessionInvalidationRoot, SPACE_ROOT, spaceInvalidationRoot, OperationFilters (+2 more) + +### Community 20 - "Frontend Bootstrap" +Cohesion: 0.17 +Nodes (10): Locale, App(), queryClient, AppRoutes(), createI18n(), detectLocale(), i18n, LOCALES (+2 more) + +### Community 21 - "Frontend Test Support" +Cohesion: 0.17 +Nodes (12): User, ToastApi, ToastContext, ToastItem, ToastKind, ToastProvider(), createTestQueryClient(), renderWithProviders() (+4 more) + +### Community 22 - "Budget UI" +Cohesion: 0.36 +Nodes (12): useBudgetCategories(), useBudgetErrorToaster(), useBudgetSummary(), useCloseMonth(), useCopyPreviousMonth(), useFundCategory(), usePeriodMutation(), useReopenMonth() (+4 more) + +### Community 23 - "HTTP API Client" +Cohesion: 0.23 +Nodes (10): apiClient, ApiError, buildUrl(), ErrorEnvelope, parseErrorEnvelope(), QueryValue, readCsrfToken(), request() (+2 more) + +### Community 24 - "Form Fields" +Cohesion: 0.23 +Nodes (10): FieldChrome, InputProps, MoneyField(), MoneyFieldProps, SelectFieldProps, SelectProps, TextareaField(), TextareaFieldProps (+2 more) + +### Community 25 - "Infrastructure and CI" +Cohesion: 0.18 +Nodes (12): Backend Quality Gate, CI Pipeline, Compose and Nginx Validation, Frontend Quality Gate, Commodity Infrastructure Services, Docker Compose Development Stack, Internal Backend Network, Same-Origin Frontend Service (+4 more) + +### Community 26 - "Core Finance Domain" +Cohesion: 0.22 +Nodes (9): Credit Reserve, Financial Account, Financial Space, Membership, User, Carry-Over Budget Reserves, Closed Beta Zero-Based Budgeting, Finance Tracker (+1 more) + +### Community 27 - "Frontend Scripts" +Cohesion: 0.22 +Nodes (9): scripts, api:generate, build, dev, lint, preview, test, test:watch (+1 more) + +### Community 28 - "Settings and Data Lifecycle" +Cohesion: 0.44 +Nodes (7): useCancelDeletion(), useRequestDeletion(), useRequestExport(), useSpaceDeletion(), DeletionForm(), DeletionFormValues, SettingsPage() + +### Community 29 - "Budget Allocation Model" +Cohesion: 0.29 +Nodes (8): Budget Period, Funding, General Pool, Monthly Category, Plan Assignment, Savings Envelope, Immutable Closure Snapshots, Plan and Funding Separation + +### Community 30 - "MVP and Import Design" +Cohesion: 0.25 +Nodes (8): Atomic Import Confirm and Revert, Conservative Deduplication, Versioned Statement Imports, Budget Invariants, Critical User Path, Financial Tracker MVP, Statement Import Pipeline, Modular Monolith + +### Community 31 - "Data Security and Recovery" +Cohesion: 0.25 +Nodes (8): Immutable Statement Document, Per-File Envelope Encryption, Provider-Neutral Data Boundary, Russian Federation Data Residency, Backup and Restore Runbook, Mandatory KEK Backup, Quarterly Restore Drill, Provider-Neutral Infrastructure + +### Community 32 - "Ledger Concepts" +Cohesion: 0.38 +Nodes (7): Internal Transfer, Operation, Posting, Refund, Derived Account Balances, Operations and Postings Journal, Ledger Invariants + +### Community 33 - "Parser Versioning" +Cohesion: 0.33 +Nodes (7): Parse Run, Source Record, Statement Import, Parser Versioning and Review Diff, Layout Drift Re-Gating, Parser Private Fixture Gate, Private Statement Test Contract + +### Community 34 - "Frontend Architecture" +Cohesion: 0.29 +Nodes (7): Server-Side Secret Boundary, Grossbukh Application Shell, Accessible Responsive UI, Finance Frontend SPA, RU and EN Localization, Space-Scoped Query Keys, Typed Same-Origin API Client + +### Community 35 - "Beta Release Governance" +Cohesion: 0.29 +Nodes (7): Closed Beta Release Runbook, Forward-Fix Rollback Policy, Financial Data Incident Response, Closed Beta Launch Gates, Production Launch Sequence, Adapter Beta Eligibility, MVP Release Gates + +### Community 36 - "Package Metadata" +Cohesion: 0.29 +Nodes (6): allowScripts, esbuild@0.25.12, name, private, type, version + +### Community 37 - "Tenant Isolation" +Cohesion: 0.33 +Nodes (6): Audited Break-Glass Access, Cross-Space Referential Integrity, Defense-in-Depth Authorization, Financial Space Ownership, Transaction-Local RLS Context, Tenant Boundary + +### Community 38 - "Deletion and Restore" +Cohesion: 0.40 +Nodes (6): Crypto-Shredded Deletion, Disaster Restore Procedure, Thirty-Day Space Deletion, Durable Deletion Ledger, Idempotent Resumable Purge, Post-Restore Deletion Replay + +### Community 39 - "API Generation Script" +Cohesion: 0.40 +Nodes (5): firstReadable(), LOCAL_CANDIDATES, main(), OUT_DIR, REMOTE_CANDIDATES + +### Community 40 - "OpenAPI Schema" +Cohesion: 0.33 +Nodes (5): components, $defs, operations, paths, webhooks + +### Community 41 - "API Integration Tests" +Cohesion: 0.67 +Nodes (3): TestClient, test_invite_login_and_authenticated_space(), test_openapi_contains_critical_paths() + +## Knowledge Gaps +- **176 isolated node(s):** `finance-backend`, `name`, `private`, `version`, `type` (+171 more) + These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 296 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) +- **14 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `Session` connect `Budget Domain Services` to `Identity and Configuration`, `Database Models`, `Database Context and Exports`, `Statement Import Services`, `Ledger Services`?** + _High betweenness centrality (0.072) - this node is a cross-community bridge._ +- **Why does `AppError` connect `Parser Adapters` to `Identity and Configuration`, `Budget Domain Services`, `Database Models`, `Database Context and Exports`, `Statement Import Services`, `Ledger Services`, `API and Analytics`?** + _High betweenness centrality (0.035) - this node is a cross-community bridge._ +- **Why does `get_settings()` connect `Identity and Configuration` to `Database Models`, `Database Context and Exports`, `Statement Import Services`, `Parser Adapters`, `API and Analytics`?** + _High betweenness centrality (0.024) - this node is a cross-community bridge._ +- **Are the 2 inferred relationships involving `Session` (e.g. with `UTCDateTime` and `test_postgres_rls_requires_matching_transaction_context()`) actually correct?** + _`Session` has 2 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 3 inferred relationships involving `Base` (e.g. with `downgrade()` and `upgrade()`) actually correct?** + _`Base` has 3 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 13 inferred relationships involving `AppError` (e.g. with `request_export()` and `login()`) actually correct?** + _`AppError` has 13 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `finance-backend`, `name`, `private` to the rest of the system?** + _176 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html new file mode 100644 index 0000000..22ec91c --- /dev/null +++ b/graphify-out/graph.html @@ -0,0 +1,345 @@ + + + + +graphify - graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json new file mode 100644 index 0000000..b2c9d47 --- /dev/null +++ b/graphify-out/graph.json @@ -0,0 +1,49095 @@ +{ + "directed": false, + "multigraph": false, + "graph": { + "hyperedges": [ + { + "id": "auditable_financial_model", + "label": "Auditable Financial Model", + "nodes": [ + "context_operation", + "context_posting", + "docs_adr_0002_journal_and_budget_reserves_derived_balances", + "docs_adr_0002_journal_and_budget_reserves_plan_funding_separation", + "docs_adr_0002_journal_and_budget_reserves_closure_snapshots" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md" + }, + { + "id": "financial_space_tenancy_boundary", + "label": "Financial Space Tenancy Boundary", + "nodes": [ + "context_financial_space", + "context_membership", + "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls", + "docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md" + }, + { + "id": "safe_statement_import_flow", + "label": "Safe Statement Import Flow", + "nodes": [ + "context_statement_import", + "context_parse_run", + "context_source_record", + "docs_adr_0003_versioned_statement_imports_immutable_statement_document", + "docs_adr_0003_versioned_statement_imports_conservative_deduplication", + "docs_adr_0003_versioned_statement_imports_atomic_confirm_revert" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md" + } + ] + }, + "nodes": [ + { + "id": "backend_app_config_settings", + "label": "Settings", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "settings", + "source_file": "backend/app/config.py", + "source_location": "L8" + }, + { + "id": "backend_app_dependencies_requestcontext", + "label": "RequestContext", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "requestcontext", + "source_file": "backend/app/dependencies.py", + "source_location": "L21" + }, + { + "id": "backend_app_identity_router_acceptinvitebody", + "label": "AcceptInviteBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "acceptinvitebody", + "source_file": "backend/app/identity/router.py", + "source_location": "L21" + }, + { + "id": "backend_app_identity_router_invitebody", + "label": "InviteBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "invitebody", + "source_file": "backend/app/identity/router.py", + "source_location": "L17" + }, + { + "id": "backend_app_identity_router_loginbody", + "label": "LoginBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "loginbody", + "source_file": "backend/app/identity/router.py", + "source_location": "L31" + }, + { + "id": "backend_app_identity_router_resetbody", + "label": "ResetBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "resetbody", + "source_file": "backend/app/identity/router.py", + "source_location": "L40" + }, + { + "id": "backend_app_identity_router_resetrequestbody", + "label": "ResetRequestBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "resetrequestbody", + "source_file": "backend/app/identity/router.py", + "source_location": "L36" + }, + { + "id": "backend_app_spaces_models_membership", + "label": "Membership", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "membership", + "source_file": "backend/app/spaces/models.py", + "source_location": "L18" + }, + { + "id": "backend_app_spaces_router_deletionbody", + "label": "DeletionBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "deletionbody", + "source_file": "backend/app/spaces/router.py", + "source_location": "L17" + }, + { + "id": "backend_app_spaces_router_memberinvitebody", + "label": "MemberInviteBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "memberinvitebody", + "source_file": "backend/app/spaces/router.py", + "source_location": "L21" + }, + { + "id": "backend_app_budgeting_models_budgetperiod", + "label": "BudgetPeriod", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "budgetperiod", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L25" + }, + { + "id": "backend_app_budgeting_router_assignmentitem", + "label": "AssignmentItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "assignmentitem", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L19" + }, + { + "id": "backend_app_budgeting_router_assignmentsbody", + "label": "AssignmentsBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "assignmentsbody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L24" + }, + { + "id": "backend_app_budgeting_router_categorybody", + "label": "CategoryBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "categorybody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L14" + }, + { + "id": "backend_app_budgeting_router_categoryfundingbody", + "label": "CategoryFundingBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "categoryfundingbody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L54" + }, + { + "id": "backend_app_budgeting_router_expectedincomebody", + "label": "ExpectedIncomeBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "expectedincomebody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L35" + }, + { + "id": "backend_app_budgeting_router_fundingbody", + "label": "FundingBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "fundingbody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L28" + }, + { + "id": "backend_app_budgeting_router_monthbody", + "label": "MonthBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "monthbody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L46" + }, + { + "id": "backend_app_budgeting_router_planbody", + "label": "PlanBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "planbody", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L50" + }, + { + "id": "backend_app_identity_models_session", + "label": "Session", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "session", + "source_file": "backend/app/identity/models.py", + "source_location": "L54" + }, + { + "id": "backend_app_ledger_models_category", + "label": "Category", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "category", + "source_file": "backend/app/ledger/models.py", + "source_location": "L159" + }, + { + "id": "frontend_src_api_types_operation", + "label": "Operation", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "operation", + "source_file": "frontend/src/api/types.ts", + "source_location": "L38" + }, + { + "id": "frontend_src_components_ui_badge_badgetone", + "label": "BadgeTone", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "badgetone", + "source_file": "frontend/src/components/ui/Badge.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_ui_emptystate_emptystateprops", + "label": "EmptyStateProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "emptystateprops", + "source_file": "frontend/src/components/ui/EmptyState.tsx", + "source_location": "L4" + }, + { + "id": "frontend_src_components_ui_pageheader_pageheaderprops", + "label": "PageHeaderProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "pageheaderprops", + "source_file": "frontend/src/components/ui/PageHeader.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_ui_querygate_querygateprops", + "label": "QueryGateProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "querygateprops", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L7" + }, + { + "id": "frontend_src_components_charts_columnchart_cashflowcolumn", + "label": "CashFlowColumn", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "cashflowcolumn", + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_charts_columnchart_columnchartprops", + "label": "ColumnChartProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "columnchartprops", + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_components_charts_horizontalbars_barrow", + "label": "BarRow", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "barrow", + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_charts_horizontalbars_horizontalbarsprops", + "label": "HorizontalBarsProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "horizontalbarsprops", + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L9" + }, + { + "id": "frontend_src_components_charts_planfactbars_planfactbarsprops", + "label": "PlanFactBarsProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "planfactbarsprops", + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_components_charts_planfactbars_planfactrow", + "label": "PlanFactRow", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "planfactrow", + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_ui_monthswitcher_monthswitcherprops", + "label": "MonthSwitcherProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "monthswitcherprops", + "source_file": "frontend/src/components/ui/MonthSwitcher.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_api_types_account", + "label": "Account", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "account", + "source_file": "frontend/src/api/types.ts", + "source_location": "L14" + }, + { + "id": "frontend_src_api_types_accounttype", + "label": "AccountType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accounttype", + "source_file": "frontend/src/api/types.ts", + "source_location": "L11" + }, + { + "id": "frontend_src_components_ui_confirmdialog_confirmdialogprops", + "label": "ConfirmDialogProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "confirmdialogprops", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_components_ui_modal_modalprops", + "label": "ModalProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "modalprops", + "source_file": "frontend/src/components/ui/Modal.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_pages_accountspage_accountformvalues", + "label": "AccountFormValues", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accountformvalues", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L20" + }, + { + "id": "frontend_src_api_types_rowdecision", + "label": "RowDecision", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "rowdecision", + "source_file": "frontend/src/api/types.ts", + "source_location": "L216" + }, + { + "id": "frontend_src_api_types_operationfilters", + "label": "OperationFilters", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "operationfilters", + "source_file": "frontend/src/api/types.ts", + "source_location": "L93" + }, + { + "id": "backend_app_audit_models_auditevent", + "label": "AuditEvent", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "auditevent", + "source_file": "backend/app/audit/models.py", + "source_location": "L10" + }, + { + "id": "backend_app_budgeting_models_expectedincome", + "label": "ExpectedIncome", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "expectedincome", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L77" + }, + { + "id": "backend_app_budgeting_models_expectedincomematch", + "label": "ExpectedIncomeMatch", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "expectedincomematch", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L103" + }, + { + "id": "backend_app_budgeting_models_fundingmovement", + "label": "FundingMovement", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "fundingmovement", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L132" + }, + { + "id": "backend_app_budgeting_models_periodclosure", + "label": "PeriodClosure", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "periodclosure", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L166" + }, + { + "id": "backend_app_budgeting_models_planassignment", + "label": "PlanAssignment", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "planassignment", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L47" + }, + { + "id": "backend_app_categorization_models_bankcategorymapping", + "label": "BankCategoryMapping", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "bankcategorymapping", + "source_file": "backend/app/categorization/models.py", + "source_location": "L103" + }, + { + "id": "backend_app_categorization_models_categorizationrule", + "label": "CategorizationRule", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "categorizationrule", + "source_file": "backend/app/categorization/models.py", + "source_location": "L64" + }, + { + "id": "backend_app_categorization_models_incomesource", + "label": "IncomeSource", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "incomesource", + "source_file": "backend/app/categorization/models.py", + "source_location": "L17" + }, + { + "id": "backend_app_categorization_models_mcccode", + "label": "MccCode", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "mcccode", + "source_file": "backend/app/categorization/models.py", + "source_location": "L93" + }, + { + "id": "backend_app_categorization_models_payee", + "label": "Payee", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "payee", + "source_file": "backend/app/categorization/models.py", + "source_location": "L31" + }, + { + "id": "backend_app_categorization_models_payeealias", + "label": "PayeeAlias", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "payeealias", + "source_file": "backend/app/categorization/models.py", + "source_location": "L45" + }, + { + "id": "backend_app_db_base_base", + "label": "Base", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "base", + "source_file": "backend/app/db/base.py", + "source_location": "L17" + }, + { + "id": "backend_app_db_base_pkmixin", + "label": "PkMixin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "pkmixin", + "source_file": "backend/app/db/base.py", + "source_location": "L44" + }, + { + "id": "backend_app_db_base_timestampmixin", + "label": "TimestampMixin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "timestampmixin", + "source_file": "backend/app/db/base.py", + "source_location": "L48" + }, + { + "id": "backend_app_db_base_utcdatetime", + "label": "UTCDateTime", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "utcdatetime", + "source_file": "backend/app/db/base.py", + "source_location": "L21" + }, + { + "id": "backend_app_exports_models_dataexport", + "label": "DataExport", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "dataexport", + "source_file": "backend/app/exports/models.py", + "source_location": "L10" + }, + { + "id": "backend_app_exports_models_deletionledger", + "label": "DeletionLedger", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "deletionledger", + "source_file": "backend/app/exports/models.py", + "source_location": "L29" + }, + { + "id": "backend_app_identity_models_invitation", + "label": "Invitation", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "invitation", + "source_file": "backend/app/identity/models.py", + "source_location": "L23" + }, + { + "id": "backend_app_identity_models_passwordreset", + "label": "PasswordReset", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "passwordreset", + "source_file": "backend/app/identity/models.py", + "source_location": "L43" + }, + { + "id": "backend_app_identity_models_user", + "label": "User", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "user", + "source_file": "backend/app/identity/models.py", + "source_location": "L10" + }, + { + "id": "backend_app_imports_models_dedupcandidate", + "label": "DedupCandidate", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "dedupcandidate", + "source_file": "backend/app/imports/models.py", + "source_location": "L169" + }, + { + "id": "backend_app_imports_models_parserun", + "label": "ParseRun", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "parserun", + "source_file": "backend/app/imports/models.py", + "source_location": "L74" + }, + { + "id": "backend_app_imports_models_sourcerecord", + "label": "SourceRecord", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "sourcerecord", + "source_file": "backend/app/imports/models.py", + "source_location": "L97" + }, + { + "id": "backend_app_imports_models_sourcerecordlink", + "label": "SourceRecordLink", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "sourcerecordlink", + "source_file": "backend/app/imports/models.py", + "source_location": "L143" + }, + { + "id": "backend_app_ledger_models_account", + "label": "Account", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "account", + "source_file": "backend/app/ledger/models.py", + "source_location": "L26" + }, + { + "id": "backend_app_spaces_models_financialspace", + "label": "FinancialSpace", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "financialspace", + "source_file": "backend/app/spaces/models.py", + "source_location": "L10" + }, + { + "id": "frontend_src_api_types_locale", + "label": "Locale", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "locale", + "source_file": "frontend/src/api/types.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_api_types_user", + "label": "User", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "user", + "source_file": "frontend/src/api/types.ts", + "source_location": "L3" + }, + { + "id": "frontend_src_components_ui_toaster_toastapi", + "label": "ToastApi", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toastapi", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L12" + }, + { + "id": "frontend_src_components_ui_toaster_toastitem", + "label": "ToastItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toastitem", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L6" + }, + { + "id": "frontend_src_components_ui_toaster_toastkind", + "label": "ToastKind", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toastkind", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L4" + }, + { + "id": "frontend_src_api_client_apierror", + "label": "ApiError", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "apierror", + "source_file": "frontend/src/api/client.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_api_client_errorenvelope", + "label": "ErrorEnvelope", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "errorenvelope", + "source_file": "frontend/src/api/client.ts", + "source_location": "L47" + }, + { + "id": "frontend_src_api_client_queryvalue", + "label": "QueryValue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "queryvalue", + "source_file": "frontend/src/api/client.ts", + "source_location": "L19" + }, + { + "id": "frontend_src_api_client_requestoptions", + "label": "RequestOptions", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "requestoptions", + "source_file": "frontend/src/api/client.ts", + "source_location": "L21" + }, + { + "id": "frontend_src_components_ui_fields_fieldchrome", + "label": "FieldChrome", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "fieldchrome", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L17" + }, + { + "id": "frontend_src_components_ui_fields_inputprops", + "label": "InputProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "inputprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_components_ui_fields_moneyfieldprops", + "label": "MoneyFieldProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "moneyfieldprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L73" + }, + { + "id": "frontend_src_components_ui_fields_selectfieldprops", + "label": "SelectFieldProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "selectfieldprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L111" + }, + { + "id": "frontend_src_components_ui_fields_selectprops", + "label": "SelectProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "selectprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L11" + }, + { + "id": "frontend_src_components_ui_fields_textareafieldprops", + "label": "TextareaFieldProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "textareafieldprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L137" + }, + { + "id": "frontend_src_components_ui_fields_textareaprops", + "label": "TextareaProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "textareaprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L12" + }, + { + "id": "frontend_src_components_ui_fields_textfieldprops", + "label": "TextFieldProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "textfieldprops", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L50" + }, + { + "id": "frontend_src_pages_settingspage_deletionformvalues", + "label": "DeletionFormValues", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "deletionformvalues", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L19" + }, + { + "id": "backend_app_imports_blob_blobstore", + "label": "BlobStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "blobstore", + "source_file": "backend/app/imports/blob.py", + "source_location": "L11" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore", + "label": "LocalDirectoryBlobStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "localdirectoryblobstore", + "source_file": "backend/app/imports/blob.py", + "source_location": "L17" + }, + { + "id": "backend_app_imports_blob_s3blobstore", + "label": "S3BlobStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "s3blobstore", + "source_file": "backend/app/imports/blob.py", + "source_location": "L42" + }, + { + "id": "backend_app_imports_crypto_encryptedfile", + "label": "EncryptedFile", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "encryptedfile", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L14" + }, + { + "id": "backend_app_imports_models_statementdocument", + "label": "StatementDocument", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "statementdocument", + "source_file": "backend/app/imports/models.py", + "source_location": "L39" + }, + { + "id": "backend_app_imports_router_confirmbody", + "label": "ConfirmBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "confirmbody", + "source_file": "backend/app/imports/router.py", + "source_location": "L27" + }, + { + "id": "backend_app_imports_router_decisionbody", + "label": "DecisionBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "decisionbody", + "source_file": "backend/app/imports/router.py", + "source_location": "L20" + }, + { + "id": "backend_app_imports_router_reviewbody", + "label": "ReviewBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "reviewbody", + "source_file": "backend/app/imports/router.py", + "source_location": "L14" + }, + { + "id": "frontend_src_api_generated_schema_d_components", + "label": "components", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "components", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L747" + }, + { + "id": "frontend_src_api_generated_schema_d_defs", + "label": "$defs", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "$defs", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L1000" + }, + { + "id": "frontend_src_api_generated_schema_d_operations", + "label": "operations", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "operations", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L1001" + }, + { + "id": "frontend_src_api_generated_schema_d_paths", + "label": "paths", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "paths", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L6" + }, + { + "id": "frontend_src_api_generated_schema_d_webhooks", + "label": "webhooks", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "webhooks", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L746" + }, + { + "id": "backend_app_errors_apperror", + "label": "AppError", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "apperror", + "source_file": "backend/app/errors.py", + "source_location": "L4" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_alfacreditxlsxadapter", + "label": "AlfaCreditXlsxAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "alfacreditxlsxadapter", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L207" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_alfadebitxlsxadapter", + "label": "AlfaDebitXlsxAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "alfadebitxlsxadapter", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L201" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "label": "AlfaXlsxAdapterBase", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "alfaxlsxadapterbase", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L25" + }, + { + "id": "backend_app_imports_adapters_base_sourcerow", + "label": "SourceRow", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "sourcerow", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L15" + }, + { + "id": "backend_app_imports_adapters_base_statementadapter", + "label": "StatementAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "statementadapter", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L55" + }, + { + "id": "backend_app_imports_adapters_base_statementdraft", + "label": "StatementDraft", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "statementdraft", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L30" + }, + { + "id": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "label": "UnsupportedStatementLayout", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "unsupportedstatementlayout", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L44" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_ozoncreditpdfadapter", + "label": "OzonCreditPdfAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "ozoncreditpdfadapter", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L131" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_ozondebitpdfadapter", + "label": "OzonDebitPdfAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "ozondebitpdfadapter", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L125" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "label": "OzonPdfAdapterBase", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "ozonpdfadapterbase", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L28" + }, + { + "id": "backend_app_imports_adapters_rocketbank_pdf_rocketbankdebitpdfadapter", + "label": "RocketbankDebitPdfAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "rocketbankdebitpdfadapter", + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L6" + }, + { + "id": "backend_app_ledger_models_operation", + "label": "Operation", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "operation", + "source_file": "backend/app/ledger/models.py", + "source_location": "L54" + }, + { + "id": "backend_app_ledger_models_posting", + "label": "Posting", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "posting", + "source_file": "backend/app/ledger/models.py", + "source_location": "L125" + }, + { + "id": "frontend_src_api_types_accountstatus", + "label": "AccountStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "accountstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L12" + }, + { + "id": "frontend_src_api_types_balanceitem", + "label": "BalanceItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "balanceitem", + "source_file": "frontend/src/api/types.ts", + "source_location": "L284" + }, + { + "id": "frontend_src_api_types_balancesreport", + "label": "BalancesReport", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "balancesreport", + "source_file": "frontend/src/api/types.ts", + "source_location": "L291" + }, + { + "id": "frontend_src_api_types_budgetblocker", + "label": "BudgetBlocker", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budgetblocker", + "source_file": "frontend/src/api/types.ts", + "source_location": "L134" + }, + { + "id": "frontend_src_api_types_budgetcategory", + "label": "BudgetCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budgetcategory", + "source_file": "frontend/src/api/types.ts", + "source_location": "L166" + }, + { + "id": "frontend_src_api_types_budgetstatus", + "label": "BudgetStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budgetstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L127" + }, + { + "id": "frontend_src_api_types_budgetsummary", + "label": "BudgetSummary", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budgetsummary", + "source_file": "frontend/src/api/types.ts", + "source_location": "L150" + }, + { + "id": "frontend_src_api_types_budgetwarning", + "label": "BudgetWarning", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budgetwarning", + "source_file": "frontend/src/api/types.ts", + "source_location": "L129" + }, + { + "id": "frontend_src_api_types_cashflowmonth", + "label": "CashFlowMonth", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "cashflowmonth", + "source_file": "frontend/src/api/types.ts", + "source_location": "L276" + }, + { + "id": "frontend_src_api_types_categorykind", + "label": "CategoryKind", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "categorykind", + "source_file": "frontend/src/api/types.ts", + "source_location": "L164" + }, + { + "id": "frontend_src_api_types_categoryspenditem", + "label": "CategorySpendItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "categoryspenditem", + "source_file": "frontend/src/api/types.ts", + "source_location": "L256" + }, + { + "id": "frontend_src_api_types_confirmimportpayload", + "label": "ConfirmImportPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "confirmimportpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L251" + }, + { + "id": "frontend_src_api_types_createaccountpayload", + "label": "CreateAccountPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "createaccountpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L26" + }, + { + "id": "frontend_src_api_types_createoperationpayload", + "label": "CreateOperationPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "createoperationpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L58" + }, + { + "id": "frontend_src_api_types_expectedincome", + "label": "ExpectedIncome", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "expectedincome", + "source_file": "frontend/src/api/types.ts", + "source_location": "L141" + }, + { + "id": "frontend_src_api_types_expectedincomestatus", + "label": "ExpectedIncomeStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "expectedincomestatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L139" + }, + { + "id": "frontend_src_api_types_exportinfo", + "label": "ExportInfo", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "exportinfo", + "source_file": "frontend/src/api/types.ts", + "source_location": "L301" + }, + { + "id": "frontend_src_api_types_exportstatus", + "label": "ExportStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "exportstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L299" + }, + { + "id": "frontend_src_api_types_importdetail", + "label": "ImportDetail", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "importdetail", + "source_file": "frontend/src/api/types.ts", + "source_location": "L231" + }, + { + "id": "frontend_src_api_types_importissue", + "label": "ImportIssue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "importissue", + "source_file": "frontend/src/api/types.ts", + "source_location": "L200" + }, + { + "id": "frontend_src_api_types_importrow", + "label": "ImportRow", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "importrow", + "source_file": "frontend/src/api/types.ts", + "source_location": "L218" + }, + { + "id": "frontend_src_api_types_importstatus", + "label": "ImportStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "importstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L179" + }, + { + "id": "frontend_src_api_types_importsummary", + "label": "ImportSummary", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "importsummary", + "source_file": "frontend/src/api/types.ts", + "source_location": "L188" + }, + { + "id": "frontend_src_api_types_operationkind", + "label": "OperationKind", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "operationkind", + "source_file": "frontend/src/api/types.ts", + "source_location": "L35" + }, + { + "id": "frontend_src_api_types_operationstatus", + "label": "OperationStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "operationstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L36" + }, + { + "id": "frontend_src_api_types_page", + "label": "Page", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "page", + "source_file": "frontend/src/api/types.ts", + "source_location": "L106" + }, + { + "id": "frontend_src_api_types_planfactitem", + "label": "PlanFactItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "planfactitem", + "source_file": "frontend/src/api/types.ts", + "source_location": "L263" + }, + { + "id": "frontend_src_api_types_planfactreport", + "label": "PlanFactReport", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "planfactreport", + "source_file": "frontend/src/api/types.ts", + "source_location": "L271" + }, + { + "id": "frontend_src_api_types_reconciliation", + "label": "Reconciliation", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "reconciliation", + "source_file": "frontend/src/api/types.ts", + "source_location": "L208" + }, + { + "id": "frontend_src_api_types_reconciliationstatus", + "label": "ReconciliationStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "reconciliationstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L206" + }, + { + "id": "frontend_src_api_types_saverowdecisionpayload", + "label": "SaveRowDecisionPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "saverowdecisionpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L246" + }, + { + "id": "frontend_src_api_types_spacedeletionstatus", + "label": "SpaceDeletionStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "spacedeletionstatus", + "source_file": "frontend/src/api/types.ts", + "source_location": "L308" + }, + { + "id": "frontend_src_api_types_acceptinvitepayload", + "label": "AcceptInvitePayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "acceptinvitepayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L116" + }, + { + "id": "frontend_src_api_types_loginpayload", + "label": "LoginPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "loginpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L111" + }, + { + "id": "frontend_src_api_types_passwordresetpayload", + "label": "PasswordResetPayload", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "passwordresetpayload", + "source_file": "frontend/src/api/types.ts", + "source_location": "L122" + }, + { + "id": "frontend_src_components_ui_button_buttonprops", + "label": "ButtonProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "buttonprops", + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_components_ui_button_variant", + "label": "Variant", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "variant", + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_components_ui_errorstate_errorstateprops", + "label": "ErrorStateProps", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "errorstateprops", + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_pages_acceptinvitepage_acceptinvitevalues", + "label": "AcceptInviteValues", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "acceptinvitevalues", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L13" + }, + { + "id": "frontend_src_pages_loginpage_loginformvalues", + "label": "LoginFormValues", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "loginformvalues", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L13" + }, + { + "id": "frontend_src_pages_resetpasswordpage_resetvalues", + "label": "ResetValues", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "resetvalues", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L13" + }, + { + "id": "backend_app_ledger_router_accountbody", + "label": "AccountBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "accountbody", + "source_file": "backend/app/ledger/router.py", + "source_location": "L17" + }, + { + "id": "backend_app_ledger_router_operationbody", + "label": "OperationBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "operationbody", + "source_file": "backend/app/ledger/router.py", + "source_location": "L28" + }, + { + "id": "backend_app_ledger_router_operationpatchbody", + "label": "OperationPatchBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "operationpatchbody", + "source_file": "backend/app/ledger/router.py", + "source_location": "L49" + }, + { + "id": "backend_app_ledger_router_voidbody", + "label": "VoidBody", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "voidbody", + "source_file": "backend/app/ledger/router.py", + "source_location": "L45" + }, + { + "id": "backend_app_config_get_settings", + "label": "get_settings()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get_settings()", + "source_file": "backend/app/config.py", + "source_location": "L67" + }, + { + "id": "backend_app_config_settings_broker_url", + "label": ".broker_url()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": ".broker_url()", + "source_file": "backend/app/config.py", + "source_location": "L50" + }, + { + "id": "backend_app_config_settings_kek", + "label": ".kek()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": ".kek()", + "source_file": "backend/app/config.py", + "source_location": "L54" + }, + { + "id": "backend_app_dependencies_current_context", + "label": "current_context()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "current_context()", + "source_file": "backend/app/dependencies.py", + "source_location": "L44" + }, + { + "id": "backend_app_dependencies_current_session", + "label": "current_session()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "current_session()", + "source_file": "backend/app/dependencies.py", + "source_location": "L28" + }, + { + "id": "backend_app_dependencies_require_csrf", + "label": "require_csrf()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "require_csrf()", + "source_file": "backend/app/dependencies.py", + "source_location": "L59" + }, + { + "id": "backend_app_errors_forbidden", + "label": "forbidden()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "forbidden()", + "source_file": "backend/app/errors.py", + "source_location": "L35" + }, + { + "id": "backend_app_errors_unauthorized", + "label": "unauthorized()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "unauthorized()", + "source_file": "backend/app/errors.py", + "source_location": "L31" + }, + { + "id": "backend_app_identity_mailer_send_token_email", + "label": "send_token_email()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "send_token_email()", + "source_file": "backend/app/identity/mailer.py", + "source_location": "L7" + }, + { + "id": "backend_app_identity_router_accept_invite", + "label": "accept_invite()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "accept_invite()", + "source_file": "backend/app/identity/router.py", + "source_location": "L84" + }, + { + "id": "backend_app_identity_router_confirm_password_reset", + "label": "confirm_password_reset()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "confirm_password_reset()", + "source_file": "backend/app/identity/router.py", + "source_location": "L133" + }, + { + "id": "backend_app_identity_router_create_invite", + "label": "create_invite()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "create_invite()", + "source_file": "backend/app/identity/router.py", + "source_location": "L69" + }, + { + "id": "backend_app_identity_router_login", + "label": "login()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "login()", + "source_file": "backend/app/identity/router.py", + "source_location": "L98" + }, + { + "id": "backend_app_identity_router_logout", + "label": "logout()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "logout()", + "source_file": "backend/app/identity/router.py", + "source_location": "L159" + }, + { + "id": "backend_app_identity_router_me", + "label": "me()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "me()", + "source_file": "backend/app/identity/router.py", + "source_location": "L147" + }, + { + "id": "backend_app_identity_router_request_password_reset", + "label": "request_password_reset()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "request_password_reset()", + "source_file": "backend/app/identity/router.py", + "source_location": "L117" + }, + { + "id": "backend_app_identity_router_set_auth_cookies", + "label": "_set_auth_cookies()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "_set_auth_cookies()", + "source_file": "backend/app/identity/router.py", + "source_location": "L45" + }, + { + "id": "backend_app_identity_service_accept_invitation", + "label": "accept_invitation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "accept_invitation()", + "source_file": "backend/app/identity/service.py", + "source_location": "L58" + }, + { + "id": "backend_app_identity_service_authenticate", + "label": "authenticate()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "authenticate()", + "source_file": "backend/app/identity/service.py", + "source_location": "L104" + }, + { + "id": "backend_app_identity_service_create_invitation", + "label": "create_invitation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "create_invitation()", + "source_file": "backend/app/identity/service.py", + "source_location": "L28" + }, + { + "id": "backend_app_identity_service_create_password_reset", + "label": "create_password_reset()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "create_password_reset()", + "source_file": "backend/app/identity/service.py", + "source_location": "L147" + }, + { + "id": "backend_app_identity_service_create_session", + "label": "create_session()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "create_session()", + "source_file": "backend/app/identity/service.py", + "source_location": "L115" + }, + { + "id": "backend_app_identity_service_get_active_session", + "label": "get_active_session()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get_active_session()", + "source_file": "backend/app/identity/service.py", + "source_location": "L131" + }, + { + "id": "backend_app_identity_service_normalize_email", + "label": "normalize_email()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "normalize_email()", + "source_file": "backend/app/identity/service.py", + "source_location": "L15" + }, + { + "id": "backend_app_identity_service_reset_password", + "label": "reset_password()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "reset_password()", + "source_file": "backend/app/identity/service.py", + "source_location": "L167" + }, + { + "id": "backend_app_identity_service_revoke_session", + "label": "revoke_session()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "revoke_session()", + "source_file": "backend/app/identity/service.py", + "source_location": "L140" + }, + { + "id": "backend_app_identity_service_validate_profile", + "label": "validate_profile()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "validate_profile()", + "source_file": "backend/app/identity/service.py", + "source_location": "L19" + }, + { + "id": "backend_app_imports_celery_app_create_celery_app", + "label": "create_celery_app()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "create_celery_app()", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L6" + }, + { + "id": "backend_app_ratelimit_allow", + "label": "allow()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "allow()", + "source_file": "backend/app/ratelimit.py", + "source_location": "L15" + }, + { + "id": "backend_app_security_constant_time_equals", + "label": "constant_time_equals()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "constant_time_equals()", + "source_file": "backend/app/security.py", + "source_location": "L29" + }, + { + "id": "backend_app_security_hash_password", + "label": "hash_password()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "hash_password()", + "source_file": "backend/app/security.py", + "source_location": "L10" + }, + { + "id": "backend_app_security_new_token", + "label": "new_token()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "new_token()", + "source_file": "backend/app/security.py", + "source_location": "L21" + }, + { + "id": "backend_app_security_token_digest", + "label": "token_digest()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "token_digest()", + "source_file": "backend/app/security.py", + "source_location": "L25" + }, + { + "id": "backend_app_security_verify_password", + "label": "verify_password()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "verify_password()", + "source_file": "backend/app/security.py", + "source_location": "L14" + }, + { + "id": "backend_app_spaces_router_cancel_deletion", + "label": "cancel_deletion()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "cancel_deletion()", + "source_file": "backend/app/spaces/router.py", + "source_location": "L77" + }, + { + "id": "backend_app_spaces_router_current", + "label": "current()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "current()", + "source_file": "backend/app/spaces/router.py", + "source_location": "L26" + }, + { + "id": "backend_app_spaces_router_deletion_status", + "label": "deletion_status()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "deletion_status()", + "source_file": "backend/app/spaces/router.py", + "source_location": "L63" + }, + { + "id": "backend_app_spaces_router_invite_member", + "label": "invite_member()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "invite_member()", + "source_file": "backend/app/spaces/router.py", + "source_location": "L36" + }, + { + "id": "backend_app_spaces_router_schedule_deletion", + "label": "schedule_deletion()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "schedule_deletion()", + "source_file": "backend/app/spaces/router.py", + "source_location": "L50" + }, + { + "id": "backend_app_spaces_service_get_membership", + "label": "get_membership()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get_membership()", + "source_file": "backend/app/spaces/service.py", + "source_location": "L22" + }, + { + "id": "backend_app_spaces_service_get_space_for_member", + "label": "get_space_for_member()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get_space_for_member()", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29" + }, + { + "id": "backend_app_spaces_service_list_spaces_for_user", + "label": "list_spaces_for_user()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "list_spaces_for_user()", + "source_file": "backend/app/spaces/service.py", + "source_location": "L49" + }, + { + "id": "backend_app_spaces_service_require_owner", + "label": "require_owner()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "require_owner()", + "source_file": "backend/app/spaces/service.py", + "source_location": "L44" + }, + { + "id": "backend_app_analytics_service_balances", + "label": "balances()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "balances()", + "source_file": "backend/app/analytics/service.py", + "source_location": "L92" + }, + { + "id": "backend_app_analytics_service_cash_flow", + "label": "cash_flow()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "cash_flow()", + "source_file": "backend/app/analytics/service.py", + "source_location": "L60" + }, + { + "id": "backend_app_analytics_service_category_spend", + "label": "category_spend()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "category_spend()", + "source_file": "backend/app/analytics/service.py", + "source_location": "L15" + }, + { + "id": "backend_app_analytics_service_plan_fact", + "label": "plan_fact()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "plan_fact()", + "source_file": "backend/app/analytics/service.py", + "source_location": "L83" + }, + { + "id": "backend_app_budgeting_router_assignments", + "label": "assignments()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "assignments()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202" + }, + { + "id": "backend_app_budgeting_router_categories", + "label": "categories()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "categories()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L116" + }, + { + "id": "backend_app_budgeting_router_close", + "label": "close()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "close()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L250" + }, + { + "id": "backend_app_budgeting_router_close_frontend", + "label": "close_frontend()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "close_frontend()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273" + }, + { + "id": "backend_app_budgeting_router_copy_frontend", + "label": "copy_frontend()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "copy_frontend()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291" + }, + { + "id": "backend_app_budgeting_router_copy_previous", + "label": "copy_previous()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "copy_previous()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L265" + }, + { + "id": "backend_app_budgeting_router_create_category", + "label": "create_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "create_category()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152" + }, + { + "id": "backend_app_budgeting_router_expected_income", + "label": "expected_income()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "expected_income()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230" + }, + { + "id": "backend_app_budgeting_router_frontend_summary", + "label": "frontend_summary()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "frontend_summary()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L70" + }, + { + "id": "backend_app_budgeting_router_fund", + "label": "fund()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "fund()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217" + }, + { + "id": "backend_app_budgeting_router_fund_category", + "label": "fund_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "fund_category()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180" + }, + { + "id": "backend_app_budgeting_router_parse_month", + "label": "parse_month()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "parse_month()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L58" + }, + { + "id": "backend_app_budgeting_router_period_for", + "label": "period_for()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "period_for()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L42" + }, + { + "id": "backend_app_budgeting_router_reopen", + "label": "reopen()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "reopen()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L256" + }, + { + "id": "backend_app_budgeting_router_reopen_frontend", + "label": "reopen_frontend()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "reopen_frontend()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282" + }, + { + "id": "backend_app_budgeting_router_summary", + "label": "summary()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "summary()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L108" + }, + { + "id": "backend_app_budgeting_router_update_plan", + "label": "update_plan()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "update_plan()", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164" + }, + { + "id": "backend_app_budgeting_service_add_expected_income", + "label": "add_expected_income()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "add_expected_income()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610" + }, + { + "id": "backend_app_budgeting_service_archive_category", + "label": "archive_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "archive_category()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531" + }, + { + "id": "backend_app_budgeting_service_balance_until", + "label": "_balance_until()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "_balance_until()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L98" + }, + { + "id": "backend_app_budgeting_service_close_blockers", + "label": "_close_blockers()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "_close_blockers()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L435" + }, + { + "id": "backend_app_budgeting_service_close_period", + "label": "close_period()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "close_period()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709" + }, + { + "id": "backend_app_budgeting_service_closure_snapshot", + "label": "_closure_snapshot()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "_closure_snapshot()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L81" + }, + { + "id": "backend_app_budgeting_service_compute_period_state", + "label": "compute_period_state()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "compute_period_state()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L114" + }, + { + "id": "backend_app_budgeting_service_copy_previous_month", + "label": "copy_previous_month()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "copy_previous_month()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809" + }, + { + "id": "backend_app_budgeting_service_create_category", + "label": "create_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "create_category()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L479" + }, + { + "id": "backend_app_budgeting_service_ensure_credit_reserve_category", + "label": "ensure_credit_reserve_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "ensure_credit_reserve_category()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L502" + }, + { + "id": "backend_app_budgeting_service_fund", + "label": "fund()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "fund()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678" + }, + { + "id": "backend_app_budgeting_service_get_category", + "label": "get_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "get_category()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L472" + }, + { + "id": "backend_app_budgeting_service_get_or_create_period", + "label": "get_or_create_period()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "get_or_create_period()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L54" + }, + { + "id": "backend_app_budgeting_service_get_period", + "label": "get_period()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "get_period()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L47" + }, + { + "id": "backend_app_budgeting_service_list_categories", + "label": "list_categories()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "list_categories()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L522" + }, + { + "id": "backend_app_budgeting_service_list_periods", + "label": "list_periods()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "list_periods()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L68" + }, + { + "id": "backend_app_budgeting_service_match_expected_income", + "label": "match_expected_income()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "match_expected_income()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L637" + }, + { + "id": "backend_app_budgeting_service_period_bounds", + "label": "period_bounds()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "period_bounds()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L31" + }, + { + "id": "backend_app_budgeting_service_previous_ym", + "label": "_previous_ym()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "_previous_ym()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L77" + }, + { + "id": "backend_app_budgeting_service_rename_category", + "label": "rename_category()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "rename_category()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548" + }, + { + "id": "backend_app_budgeting_service_reopen_period", + "label": "reopen_period()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "reopen_period()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777" + }, + { + "id": "backend_app_budgeting_service_require_open", + "label": "require_open()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "require_open()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L465" + }, + { + "id": "backend_app_budgeting_service_set_assignments", + "label": "set_assignments()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "set_assignments()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566" + }, + { + "id": "backend_app_budgeting_service_shift_month", + "label": "shift_month()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "shift_month()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L40" + }, + { + "id": "backend_app_budgeting_service_validate_year_month", + "label": "validate_year_month()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "validate_year_month()", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L26" + }, + { + "id": "backend_app_categorization_service_resolve_category_name", + "label": "resolve_category_name()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "resolve_category_name()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L8" + }, + { + "id": "backend_app_errors_bad_request", + "label": "bad_request()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "bad_request()", + "source_file": "backend/app/errors.py", + "source_location": "L27" + }, + { + "id": "backend_tests_test_budget_seed", + "label": "seed()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "seed()", + "source_file": "backend/tests/test_budget.py", + "source_location": "L22" + }, + { + "id": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "label": "test_copy_previous_month_clamps_expected_day()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "test_copy_previous_month_clamps_expected_day()", + "source_file": "backend/tests/test_budget.py", + "source_location": "L54" + }, + { + "id": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "label": "test_periods_must_close_in_calendar_order()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "test_periods_must_close_in_calendar_order()", + "source_file": "backend/tests/test_budget.py", + "source_location": "L92" + }, + { + "id": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "label": "test_reopen_preserves_immutable_closure_history()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "test_reopen_preserves_immutable_closure_history()", + "source_file": "backend/tests/test_budget.py", + "source_location": "L83" + }, + { + "id": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "label": "test_uncategorized_expense_blocks_close()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "test_uncategorized_expense_blocks_close()", + "source_file": "backend/tests/test_budget.py", + "source_location": "L29" + }, + { + "id": "frontend_src_components_ui_badge_badge", + "label": "Badge()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "badge()", + "source_file": "frontend/src/components/ui/Badge.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_components_ui_emptystate_emptystate", + "label": "EmptyState()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "emptystate()", + "source_file": "frontend/src/components/ui/EmptyState.tsx", + "source_location": "L9" + }, + { + "id": "frontend_src_components_ui_errorstate_errorstate", + "label": "ErrorState()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "errorstate()", + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_components_ui_fields_selectfield", + "label": "SelectField()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "selectfield()", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L118" + }, + { + "id": "frontend_src_components_ui_pageheader_pageheader", + "label": "PageHeader()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "pageheader()", + "source_file": "frontend/src/components/ui/PageHeader.tsx", + "source_location": "L9" + }, + { + "id": "frontend_src_components_ui_querygate_querygate", + "label": "QueryGate()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "querygate()", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L13" + }, + { + "id": "frontend_src_components_ui_spinner_spinner", + "label": "Spinner()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "spinner()", + "source_file": "frontend/src/components/ui/Spinner.tsx", + "source_location": "L3" + }, + { + "id": "frontend_src_hooks_useimports_useimports", + "label": "useImports()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "useimports()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L14" + }, + { + "id": "frontend_src_hooks_useoperations_usecategorizeoperation", + "label": "useCategorizeOperation()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "usecategorizeoperation()", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L51" + }, + { + "id": "frontend_src_pages_importspage_importspage", + "label": "ImportsPage()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "importspage()", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L77" + }, + { + "id": "frontend_src_pages_importspage_uploadmodal", + "label": "UploadModal()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "uploadmodal()", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L17" + }, + { + "id": "frontend_src_pages_notfoundpage_notfoundpage", + "label": "NotFoundPage()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "notfoundpage()", + "source_file": "frontend/src/pages/NotFoundPage.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_pages_reviewqueuepage_reviewqueuepage", + "label": "ReviewQueuePage()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "reviewqueuepage()", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L68" + }, + { + "id": "frontend_src_pages_reviewqueuepage_uncategorizedrow", + "label": "UncategorizedRow()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "uncategorizedrow()", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L18" + }, + { + "id": "frontend_src_components_charts_columnchart_columnchart", + "label": "ColumnChart()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "columnchart()", + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L23" + }, + { + "id": "frontend_src_components_charts_horizontalbars_horizontalbars", + "label": "HorizontalBars()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "horizontalbars()", + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L16" + }, + { + "id": "frontend_src_components_charts_planfactbars_planfactbars", + "label": "PlanFactBars()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "planfactbars()", + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L18" + }, + { + "id": "frontend_src_components_ui_monthswitcher_monthswitcher", + "label": "MonthSwitcher()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "monthswitcher()", + "source_file": "frontend/src/components/ui/MonthSwitcher.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_hooks_useanalytics_useanalyticsbalances", + "label": "useAnalyticsBalances()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "useanalyticsbalances()", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L26" + }, + { + "id": "frontend_src_hooks_useanalytics_useanalyticscashflow", + "label": "useAnalyticsCashFlow()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "useanalyticscashflow()", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L19" + }, + { + "id": "frontend_src_hooks_useanalytics_useanalyticscategoryspend", + "label": "useAnalyticsCategorySpend()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "useanalyticscategoryspend()", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L5" + }, + { + "id": "frontend_src_hooks_useanalytics_useanalyticsplanfact", + "label": "useAnalyticsPlanFact()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "useanalyticsplanfact()", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L12" + }, + { + "id": "frontend_src_pages_analyticspage_analyticspage", + "label": "AnalyticsPage()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "analyticspage()", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L23" + }, + { + "id": "backend_app_analytics_router_balances", + "label": "balances()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "balances()", + "source_file": "backend/app/analytics/router.py", + "source_location": "L89" + }, + { + "id": "backend_app_analytics_router_cash_flow", + "label": "cash_flow()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "cash_flow()", + "source_file": "backend/app/analytics/router.py", + "source_location": "L34" + }, + { + "id": "backend_app_analytics_router_category_spend", + "label": "category_spend()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "category_spend()", + "source_file": "backend/app/analytics/router.py", + "source_location": "L12" + }, + { + "id": "backend_app_analytics_router_plan_fact", + "label": "plan_fact()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "plan_fact()", + "source_file": "backend/app/analytics/router.py", + "source_location": "L67" + }, + { + "id": "backend_app_db_session_get_engine", + "label": "get_engine()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "get_engine()", + "source_file": "backend/app/db/session.py", + "source_location": "L15" + }, + { + "id": "backend_app_main_app_error_handler", + "label": "app_error_handler()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "app_error_handler()", + "source_file": "backend/app/main.py", + "source_location": "L27" + }, + { + "id": "backend_app_main_health", + "label": "health()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "health()", + "source_file": "backend/app/main.py", + "source_location": "L54" + }, + { + "id": "backend_app_main_healthz", + "label": "healthz()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "healthz()", + "source_file": "backend/app/main.py", + "source_location": "L59" + }, + { + "id": "backend_app_main_readiness", + "label": "readiness()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "readiness()", + "source_file": "backend/app/main.py", + "source_location": "L64" + }, + { + "id": "backend_app_main_security_headers", + "label": "security_headers()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "security_headers()", + "source_file": "backend/app/main.py", + "source_location": "L43" + }, + { + "id": "backend_app_main_stale_data_handler", + "label": "stale_data_handler()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "stale_data_handler()", + "source_file": "backend/app/main.py", + "source_location": "L35" + }, + { + "id": "frontend_src_components_ui_confirmdialog_confirmdialog", + "label": "ConfirmDialog()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "confirmdialog()", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L15" + }, + { + "id": "frontend_src_components_ui_modal_modal", + "label": "Modal()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "modal()", + "source_file": "frontend/src/components/ui/Modal.tsx", + "source_location": "L12" + }, + { + "id": "frontend_src_hooks_useaccounts_useaccounts", + "label": "useAccounts()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "useaccounts()", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L9" + }, + { + "id": "frontend_src_hooks_useaccounts_usearchiveaccount", + "label": "useArchiveAccount()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "usearchiveaccount()", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L33" + }, + { + "id": "frontend_src_hooks_useaccounts_usecreateaccount", + "label": "useCreateAccount()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "usecreateaccount()", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L18" + }, + { + "id": "frontend_src_pages_accountspage_accountform", + "label": "AccountForm()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accountform()", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L29" + }, + { + "id": "frontend_src_pages_accountspage_accountspage", + "label": "AccountsPage()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accountspage()", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L116" + }, + { + "id": "frontend_src_pages_accountspage_usememoschema", + "label": "useMemoSchema()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "usememoschema()", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L102" + }, + { + "id": "frontend_src_test_accounts_page_test_account", + "label": "account()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "account()", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L21" + }, + { + "id": "frontend_src_components_ui_toaster_usetoast", + "label": "useToast()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "usetoast()", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L51" + }, + { + "id": "frontend_src_hooks_useimports_useconfirmimport", + "label": "useConfirmImport()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "useconfirmimport()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L70" + }, + { + "id": "frontend_src_hooks_useimports_useimport", + "label": "useImport()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "useimport()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L25" + }, + { + "id": "frontend_src_hooks_useimports_useimporterrortoaster", + "label": "useImportErrorToaster()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "useimporterrortoaster()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L34" + }, + { + "id": "frontend_src_hooks_useimports_usereparseimport", + "label": "useReparseImport()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "usereparseimport()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L85" + }, + { + "id": "frontend_src_hooks_useimports_userevertimport", + "label": "useRevertImport()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "userevertimport()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L101" + }, + { + "id": "frontend_src_hooks_useimports_usesaverowdecision", + "label": "useSaveRowDecision()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "usesaverowdecision()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L56" + }, + { + "id": "frontend_src_hooks_useimports_useuploadimport", + "label": "useUploadImport()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "useuploadimport()", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L40" + }, + { + "id": "frontend_src_pages_importdetailpage_confirmmodal", + "label": "ConfirmModal()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "confirmmodal()", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L40" + }, + { + "id": "frontend_src_pages_importdetailpage_importdetailpage", + "label": "ImportDetailPage()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "importdetailpage()", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L93" + }, + { + "id": "frontend_src_pages_importdetailpage_stepindexfor", + "label": "stepIndexFor()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "stepindexfor()", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L33" + }, + { + "id": "frontend_src_hooks_useaccounts_useactiveaccounts", + "label": "useActiveAccounts()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "useactiveaccounts()", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L13" + }, + { + "id": "frontend_src_hooks_useoperations_usecreateoperation", + "label": "useCreateOperation()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "usecreateoperation()", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L37" + }, + { + "id": "frontend_src_hooks_useoperations_useledgermutation", + "label": "useLedgerMutation()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "useledgermutation()", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L17" + }, + { + "id": "frontend_src_hooks_useoperations_useoperations", + "label": "useOperations()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "useoperations()", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L9" + }, + { + "id": "frontend_src_hooks_useoperations_usevoidoperation", + "label": "useVoidOperation()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "usevoidoperation()", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L44" + }, + { + "id": "frontend_src_pages_operationspage_accountselect", + "label": "AccountSelect()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "accountselect()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L36" + }, + { + "id": "frontend_src_pages_operationspage_amountfield", + "label": "amountField()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "amountfield()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L30" + }, + { + "id": "frontend_src_pages_operationspage_datefield", + "label": "dateField()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "datefield()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L33" + }, + { + "id": "frontend_src_pages_operationspage_expenseform", + "label": "ExpenseForm()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "expenseform()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L60" + }, + { + "id": "frontend_src_pages_operationspage_incomeform", + "label": "IncomeForm()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "incomeform()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L143" + }, + { + "id": "frontend_src_pages_operationspage_operationmodal", + "label": "OperationModal()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "operationmodal()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L379" + }, + { + "id": "frontend_src_pages_operationspage_operationspage", + "label": "OperationsPage()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "operationspage()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L450" + }, + { + "id": "frontend_src_pages_operationspage_refundform", + "label": "RefundForm()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "refundform()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L296" + }, + { + "id": "frontend_src_pages_operationspage_transferform", + "label": "TransferForm()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "transferform()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L217" + }, + { + "id": "frontend_src_pages_operationspage_voidmodal", + "label": "VoidModal()", + "_callable": true, + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "voidmodal()", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L404" + }, + { + "id": "backend_alembic_env_run_migrations_offline", + "label": "run_migrations_offline()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "run_migrations_offline()", + "source_file": "backend/alembic/env.py", + "source_location": "L18" + }, + { + "id": "backend_alembic_env_run_migrations_online", + "label": "run_migrations_online()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "run_migrations_online()", + "source_file": "backend/alembic/env.py", + "source_location": "L30" + }, + { + "id": "backend_alembic_versions_20260911_0001_initial_schema_downgrade", + "label": "downgrade()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "downgrade()", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L80" + }, + { + "id": "backend_alembic_versions_20260911_0001_initial_schema_upgrade", + "label": "upgrade()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "upgrade()", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L36" + }, + { + "id": "backend_app_categorization_service_add_alias", + "label": "add_alias()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "add_alias()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L46" + }, + { + "id": "backend_app_categorization_service_ensure_income_source", + "label": "ensure_income_source()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "ensure_income_source()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L26" + }, + { + "id": "backend_app_categorization_service_find_payee_by_description", + "label": "find_payee_by_description()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "find_payee_by_description()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L61" + }, + { + "id": "backend_app_categorization_service_get_or_create_payee", + "label": "get_or_create_payee()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "get_or_create_payee()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L35" + }, + { + "id": "backend_app_categorization_service_rule_category_for_payee", + "label": "rule_category_for_payee()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "rule_category_for_payee()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L75" + }, + { + "id": "backend_app_categorization_service_set_payee_rule", + "label": "set_payee_rule()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "set_payee_rule()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L81" + }, + { + "id": "backend_app_db_base_utcdatetime_process_bind_param", + "label": ".process_bind_param()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": ".process_bind_param()", + "source_file": "backend/app/db/base.py", + "source_location": "L27" + }, + { + "id": "backend_app_db_base_utcdatetime_process_result_value", + "label": ".process_result_value()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": ".process_result_value()", + "source_file": "backend/app/db/base.py", + "source_location": "L34" + }, + { + "id": "backend_app_db_base_utcnow", + "label": "utcnow()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "utcnow()", + "source_file": "backend/app/db/base.py", + "source_location": "L40" + }, + { + "id": "backend_app_exports_service_cancel_deletion", + "label": "cancel_deletion()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "cancel_deletion()", + "source_file": "backend/app/exports/service.py", + "source_location": "L163" + }, + { + "id": "backend_app_exports_service_request_export", + "label": "request_export()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "request_export()", + "source_file": "backend/app/exports/service.py", + "source_location": "L23" + }, + { + "id": "backend_app_exports_service_schedule_deletion", + "label": "schedule_deletion()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "schedule_deletion()", + "source_file": "backend/app/exports/service.py", + "source_location": "L148" + }, + { + "id": "backend_tests_test_imports_ready_document", + "label": "ready_document()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "ready_document()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L40" + }, + { + "id": "backend_tests_test_imports_seed", + "label": "seed()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "seed()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L24" + }, + { + "id": "backend_tests_test_imports_test_confirm_and_revert_are_idempotent", + "label": "test_confirm_and_revert_are_idempotent()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_confirm_and_revert_are_idempotent()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L79" + }, + { + "id": "backend_tests_test_imports_test_confirm_rejects_arithmetic_mismatch", + "label": "test_confirm_rejects_arithmetic_mismatch()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_confirm_rejects_arithmetic_mismatch()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L94" + }, + { + "id": "backend_tests_test_imports_test_confirmed_import_must_be_reverted_before_reparse", + "label": "test_confirmed_import_must_be_reverted_before_reparse()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_confirmed_import_must_be_reverted_before_reparse()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L102" + }, + { + "id": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "label": "test_duplicate_candidate_can_reuse_unique_operation_without_client_id()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_duplicate_candidate_can_reuse_unique_operation_without_client_id()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L164" + }, + { + "id": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "label": "test_transfer_merge_revert_restores_counterpart_operation()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_transfer_merge_revert_restores_counterpart_operation()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L220" + }, + { + "id": "backend_tests_test_imports_test_unexpected_parser_failure_reaches_terminal_state", + "label": "test_unexpected_parser_failure_reaches_terminal_state()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_unexpected_parser_failure_reaches_terminal_state()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L132" + }, + { + "id": "frontend_src_app_app", + "label": "App()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "app()", + "source_file": "frontend/src/App.tsx", + "source_location": "L21" + }, + { + "id": "frontend_src_app_router_approutes", + "label": "AppRoutes()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "approutes()", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L60" + }, + { + "id": "frontend_src_i18n_index_createi18n", + "label": "createI18n()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "createi18n()", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L29" + }, + { + "id": "frontend_src_i18n_index_detectlocale", + "label": "detectLocale()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "detectlocale()", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L20" + }, + { + "id": "frontend_src_i18n_index_localelabel", + "label": "localeLabel()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "localelabel()", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L55" + }, + { + "id": "frontend_src_i18n_index_storedlocale", + "label": "storedLocale()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "storedlocale()", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L11" + }, + { + "id": "frontend_src_components_ui_toaster_toastprovider", + "label": "ToastProvider()", + "_callable": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toastprovider()", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L20" + }, + { + "id": "frontend_src_test_helpers_createtestqueryclient", + "label": "createTestQueryClient()", + "_callable": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "createtestqueryclient()", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L7" + }, + { + "id": "frontend_src_test_helpers_renderwithproviders", + "label": "renderWithProviders()", + "_callable": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "renderwithproviders()", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L16" + }, + { + "id": "frontend_src_test_login_page_test_renderlogin", + "label": "renderLogin()", + "_callable": true, + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "renderlogin()", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L32" + }, + { + "id": "frontend_src_hooks_usebudget_usebudgetcategories", + "label": "useBudgetCategories()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usebudgetcategories()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L12" + }, + { + "id": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "label": "useBudgetErrorToaster()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usebudgeterrortoaster()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L19" + }, + { + "id": "frontend_src_hooks_usebudget_usebudgetsummary", + "label": "useBudgetSummary()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usebudgetsummary()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L8" + }, + { + "id": "frontend_src_hooks_usebudget_useclosemonth", + "label": "useCloseMonth()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "useclosemonth()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L77" + }, + { + "id": "frontend_src_hooks_usebudget_usecopypreviousmonth", + "label": "useCopyPreviousMonth()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usecopypreviousmonth()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L85" + }, + { + "id": "frontend_src_hooks_usebudget_usefundcategory", + "label": "useFundCategory()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usefundcategory()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L42" + }, + { + "id": "frontend_src_hooks_usebudget_useperiodmutation", + "label": "usePeriodMutation()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "useperiodmutation()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L59" + }, + { + "id": "frontend_src_hooks_usebudget_usereopenmonth", + "label": "useReopenMonth()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usereopenmonth()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L81" + }, + { + "id": "frontend_src_hooks_usebudget_useupdateplan", + "label": "useUpdatePlan()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "useupdateplan()", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L25" + }, + { + "id": "frontend_src_pages_budgetpage_budgetpage", + "label": "BudgetPage()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "budgetpage()", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L123" + }, + { + "id": "frontend_src_pages_budgetpage_fundmodal", + "label": "FundModal()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "fundmodal()", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L77" + }, + { + "id": "frontend_src_pages_budgetpage_planmodal", + "label": "PlanModal()", + "_callable": true, + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "planmodal()", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L29" + }, + { + "id": "frontend_src_api_client_apierror_constructor", + "label": ".constructor()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": ".constructor()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L6" + }, + { + "id": "frontend_src_api_client_buildurl", + "label": "buildUrl()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "buildurl()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L31" + }, + { + "id": "frontend_src_api_client_isapierror", + "label": "isApiError()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "isapierror()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L15" + }, + { + "id": "frontend_src_api_client_parseerrorenvelope", + "label": "parseErrorEnvelope()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "parseerrorenvelope()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L54" + }, + { + "id": "frontend_src_api_client_readcsrftoken", + "label": "readCsrfToken()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "readcsrftoken()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L42" + }, + { + "id": "frontend_src_api_client_request", + "label": "request()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "request()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L78" + }, + { + "id": "frontend_src_api_client_toapierror", + "label": "toApiError()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "toapierror()", + "source_file": "frontend/src/api/client.ts", + "source_location": "L67" + }, + { + "id": "frontend_src_components_ui_fields_fieldchromewrap", + "label": "FieldChromeWrap()", + "_callable": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "fieldchromewrap()", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L23" + }, + { + "id": "frontend_src_components_ui_fields_moneyfield", + "label": "MoneyField()", + "_callable": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "moneyfield()", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L80" + }, + { + "id": "frontend_src_components_ui_fields_textareafield", + "label": "TextareaField()", + "_callable": true, + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "textareafield()", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L143" + }, + { + "id": "frontend_src_hooks_usespacelifecycle_usecanceldeletion", + "label": "useCancelDeletion()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "usecanceldeletion()", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L50" + }, + { + "id": "frontend_src_hooks_usespacelifecycle_userequestdeletion", + "label": "useRequestDeletion()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "userequestdeletion()", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L36" + }, + { + "id": "frontend_src_hooks_usespacelifecycle_userequestexport", + "label": "useRequestExport()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "userequestexport()", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L12" + }, + { + "id": "frontend_src_hooks_usespacelifecycle_usespacedeletion", + "label": "useSpaceDeletion()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "usespacedeletion()", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L8" + }, + { + "id": "frontend_src_pages_settingspage_deletionform", + "label": "DeletionForm()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "deletionform()", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L23" + }, + { + "id": "frontend_src_pages_settingspage_settingspage", + "label": "SettingsPage()", + "_callable": true, + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "settingspage()", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L58" + }, + { + "id": "backend_app_db_session_get_db", + "label": "get_db()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "get_db()", + "source_file": "backend/app/db/session.py", + "source_location": "L37" + }, + { + "id": "backend_app_db_session_get_session_factory", + "label": "get_session_factory()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "get_session_factory()", + "source_file": "backend/app/db/session.py", + "source_location": "L30" + }, + { + "id": "backend_app_db_session_session_scope", + "label": "session_scope()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "session_scope()", + "source_file": "backend/app/db/session.py", + "source_location": "L59" + }, + { + "id": "backend_app_db_session_set_space_context", + "label": "set_space_context()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "set_space_context()", + "source_file": "backend/app/db/session.py", + "source_location": "L49" + }, + { + "id": "backend_app_exports_router_download", + "label": "download()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "download()", + "source_file": "backend/app/exports/router.py", + "source_location": "L54" + }, + { + "id": "backend_app_exports_router_export_status", + "label": "export_status()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "export_status()", + "source_file": "backend/app/exports/router.py", + "source_location": "L41" + }, + { + "id": "backend_app_exports_router_request_export", + "label": "request_export()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "request_export()", + "source_file": "backend/app/exports/router.py", + "source_location": "L13" + }, + { + "id": "backend_app_exports_service_build_export", + "label": "build_export()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "build_export()", + "source_file": "backend/app/exports/service.py", + "source_location": "L50" + }, + { + "id": "backend_app_exports_service_consume_export", + "label": "consume_export()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "consume_export()", + "source_file": "backend/app/exports/service.py", + "source_location": "L118" + }, + { + "id": "backend_app_exports_service_csv_bytes", + "label": "_csv_bytes()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "_csv_bytes()", + "source_file": "backend/app/exports/service.py", + "source_location": "L41" + }, + { + "id": "backend_app_exports_service_get_export", + "label": "get_export()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "get_export()", + "source_file": "backend/app/exports/service.py", + "source_location": "L30" + }, + { + "id": "backend_app_exports_service_json_rows", + "label": "_json_rows()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "_json_rows()", + "source_file": "backend/app/exports/service.py", + "source_location": "L37" + }, + { + "id": "backend_app_exports_service_purge_due_spaces", + "label": "purge_due_spaces()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "purge_due_spaces()", + "source_file": "backend/app/exports/service.py", + "source_location": "L173" + }, + { + "id": "backend_app_exports_tasks_build_export_task", + "label": "build_export_task()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "build_export_task()", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L9" + }, + { + "id": "backend_app_exports_tasks_enqueue_export", + "label": "enqueue_export()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "enqueue_export()", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L20" + }, + { + "id": "backend_app_exports_tasks_purge_due_spaces_task", + "label": "purge_due_spaces_task()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "purge_due_spaces_task()", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L25" + }, + { + "id": "backend_app_imports_blob_blobstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L14" + }, + { + "id": "backend_app_imports_blob_blobstore_get", + "label": ".get()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".get()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L13" + }, + { + "id": "backend_app_imports_blob_blobstore_put", + "label": ".put()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".put()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L12" + }, + { + "id": "backend_app_imports_blob_get_blob_store", + "label": "get_blob_store()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "get_blob_store()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L69" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L36" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore_get", + "label": ".get()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".get()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L33" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L20" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore_path", + "label": "._path()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "._path()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L23" + }, + { + "id": "backend_app_imports_blob_localdirectoryblobstore_put", + "label": ".put()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".put()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L28" + }, + { + "id": "backend_app_imports_blob_s3blobstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L65" + }, + { + "id": "backend_app_imports_blob_s3blobstore_get", + "label": ".get()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".get()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L61" + }, + { + "id": "backend_app_imports_blob_s3blobstore_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L43" + }, + { + "id": "backend_app_imports_blob_s3blobstore_put", + "label": ".put()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": ".put()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L58" + }, + { + "id": "backend_tests_conftest_client", + "label": "client()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "client()", + "source_file": "backend/tests/conftest.py", + "source_location": "L47" + }, + { + "id": "backend_tests_conftest_db", + "label": "db()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "db()", + "source_file": "backend/tests/conftest.py", + "source_location": "L40" + }, + { + "id": "backend_tests_conftest_db_factory", + "label": "db_factory()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "db_factory()", + "source_file": "backend/tests/conftest.py", + "source_location": "L21" + }, + { + "id": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "label": "test_postgres_rls_requires_matching_transaction_context()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "test_postgres_rls_requires_matching_transaction_context()", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L17" + }, + { + "id": "backend_tests_test_postgres_and_s3_test_s3_blob_round_trip", + "label": "test_s3_blob_round_trip()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "test_s3_blob_round_trip()", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L46" + }, + { + "id": "frontend_scripts_generate_api_firstreadable", + "label": "firstReadable()", + "_callable": true, + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "firstreadable()", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L16" + }, + { + "id": "frontend_scripts_generate_api_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "main()", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L28" + }, + { + "id": "backend_app_imports_adapters_init_detect_adapter", + "label": "detect_adapter()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "detect_adapter()", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L26" + }, + { + "id": "backend_app_imports_adapters_init_magic_kind", + "label": "magic_kind()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "magic_kind()", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L18" + }, + { + "id": "backend_app_imports_blob_new_object_key", + "label": "new_object_key()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "new_object_key()", + "source_file": "backend/app/imports/blob.py", + "source_location": "L76" + }, + { + "id": "backend_app_imports_crypto_decrypt_file", + "label": "decrypt_file()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "decrypt_file()", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L37" + }, + { + "id": "backend_app_imports_crypto_encrypt_file", + "label": "encrypt_file()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "encrypt_file()", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L21" + }, + { + "id": "backend_app_imports_crypto_shred_dek_material", + "label": "shred_dek_material()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "shred_dek_material()", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L56" + }, + { + "id": "backend_app_imports_router_confirm", + "label": "confirm()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "confirm()", + "source_file": "backend/app/imports/router.py", + "source_location": "L185" + }, + { + "id": "backend_app_imports_router_decide_row", + "label": "decide_row()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "decide_row()", + "source_file": "backend/app/imports/router.py", + "source_location": "L165" + }, + { + "id": "backend_app_imports_router_delete_source", + "label": "delete_source()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "delete_source()", + "source_file": "backend/app/imports/router.py", + "source_location": "L244" + }, + { + "id": "backend_app_imports_router_detail", + "label": "detail()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "detail()", + "source_file": "backend/app/imports/router.py", + "source_location": "L98" + }, + { + "id": "backend_app_imports_router_imports", + "label": "imports()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "imports()", + "source_file": "backend/app/imports/router.py", + "source_location": "L53" + }, + { + "id": "backend_app_imports_router_reparse", + "label": "reparse()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "reparse()", + "source_file": "backend/app/imports/router.py", + "source_location": "L209" + }, + { + "id": "backend_app_imports_router_revert", + "label": "revert()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "revert()", + "source_file": "backend/app/imports/router.py", + "source_location": "L236" + }, + { + "id": "backend_app_imports_router_review", + "label": "review()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "review()", + "source_file": "backend/app/imports/router.py", + "source_location": "L154" + }, + { + "id": "backend_app_imports_router_summary", + "label": "summary()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "summary()", + "source_file": "backend/app/imports/router.py", + "source_location": "L36" + }, + { + "id": "backend_app_imports_router_upload", + "label": "upload()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "upload()", + "source_file": "backend/app/imports/router.py", + "source_location": "L58" + }, + { + "id": "backend_app_imports_service_build_candidates", + "label": "_build_candidates()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "_build_candidates()", + "source_file": "backend/app/imports/service.py", + "source_location": "L161" + }, + { + "id": "backend_app_imports_service_create_document", + "label": "create_document()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "create_document()", + "source_file": "backend/app/imports/service.py", + "source_location": "L44" + }, + { + "id": "backend_app_imports_service_decide_source_record", + "label": "decide_source_record()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "decide_source_record()", + "source_file": "backend/app/imports/service.py", + "source_location": "L381" + }, + { + "id": "backend_app_imports_service_delete_source_file", + "label": "delete_source_file()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "delete_source_file()", + "source_file": "backend/app/imports/service.py", + "source_location": "L906" + }, + { + "id": "backend_app_imports_service_document", + "label": "_document()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "_document()", + "source_file": "backend/app/imports/service.py", + "source_location": "L35" + }, + { + "id": "backend_app_imports_service_document_detail", + "label": "document_detail()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "document_detail()", + "source_file": "backend/app/imports/service.py", + "source_location": "L344" + }, + { + "id": "backend_app_imports_service_list_documents", + "label": "list_documents()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "list_documents()", + "source_file": "backend/app/imports/service.py", + "source_location": "L335" + }, + { + "id": "backend_app_imports_service_prepare_reparse", + "label": "prepare_reparse()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "prepare_reparse()", + "source_file": "backend/app/imports/service.py", + "source_location": "L725" + }, + { + "id": "backend_app_imports_service_process_statement_document", + "label": "process_statement_document()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "process_statement_document()", + "source_file": "backend/app/imports/service.py", + "source_location": "L237" + }, + { + "id": "backend_app_imports_service_revert_document", + "label": "revert_document()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "revert_document()", + "source_file": "backend/app/imports/service.py", + "source_location": "L750" + }, + { + "id": "backend_app_imports_service_set_review_confirmation", + "label": "set_review_confirmation()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "set_review_confirmation()", + "source_file": "backend/app/imports/service.py", + "source_location": "L452" + }, + { + "id": "backend_app_imports_service_source_from_row", + "label": "_source_from_row()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "_source_from_row()", + "source_file": "backend/app/imports/service.py", + "source_location": "L128" + }, + { + "id": "backend_app_imports_tasks_enqueue_process_statement", + "label": "enqueue_process_statement()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "enqueue_process_statement()", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L21" + }, + { + "id": "backend_app_imports_tasks_process_statement_task", + "label": "process_statement_task()", + "_callable": true, + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "process_statement_task()", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L7" + }, + { + "id": "backend_tests_test_api_test_invite_login_and_authenticated_space", + "label": "test_invite_login_and_authenticated_space()", + "_callable": true, + "_origin": "ast", + "community": 41, + "community_name": "API Integration Tests", + "file_type": "code", + "norm_label": "test_invite_login_and_authenticated_space()", + "source_file": "backend/tests/test_api.py", + "source_location": "L4" + }, + { + "id": "backend_tests_test_api_test_openapi_contains_critical_paths", + "label": "test_openapi_contains_critical_paths()", + "_callable": true, + "_origin": "ast", + "community": 41, + "community_name": "API Integration Tests", + "file_type": "code", + "norm_label": "test_openapi_contains_critical_paths()", + "source_file": "backend/tests/test_api.py", + "source_location": "L39" + }, + { + "id": "frontend_src_test_i18n_parity_test_collect", + "label": "collect()", + "_callable": true, + "_origin": "ast", + "community": 42, + "community_name": "Localization Tests", + "file_type": "code", + "norm_label": "collect()", + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L7" + }, + { + "id": "backend_app_errors_apperror_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "backend/app/errors.py", + "source_location": "L10" + }, + { + "id": "backend_app_errors_unprocessable", + "label": "unprocessable()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "unprocessable()", + "source_file": "backend/app/errors.py", + "source_location": "L47" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_detect", + "label": ".detect()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".detect()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L32" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "label": ".parse()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".parse()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L40" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_cell_str", + "label": "_cell_str()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_cell_str()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L139" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_find_account_value", + "label": "_find_account_value()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_find_account_value()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L182" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_find_header", + "label": "_find_header()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_find_header()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L162" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_get_settings_row_cap", + "label": "get_settings_row_cap()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "get_settings_row_cap()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L113" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_parse_date", + "label": "_parse_date()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_parse_date()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L146" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_rows_text", + "label": "_rows_text()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_rows_text()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L130" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_scan_text", + "label": "_scan_text()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_scan_text()", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L119" + }, + { + "id": "backend_app_imports_adapters_base_account_fingerprint", + "label": "account_fingerprint()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "account_fingerprint()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L80" + }, + { + "id": "backend_app_imports_adapters_base_amount_to_kopecks", + "label": "amount_to_kopecks()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "amount_to_kopecks()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L62" + }, + { + "id": "backend_app_imports_adapters_base_normalize_description", + "label": "normalize_description()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "normalize_description()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L85" + }, + { + "id": "backend_app_imports_adapters_base_record_fingerprint", + "label": "record_fingerprint()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "record_fingerprint()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L91" + }, + { + "id": "backend_app_imports_adapters_base_statementadapter_detect", + "label": ".detect()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".detect()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L58" + }, + { + "id": "backend_app_imports_adapters_base_statementadapter_parse", + "label": ".parse()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".parse()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L59" + }, + { + "id": "backend_app_imports_adapters_base_unsupportedstatementlayout_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L47" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_first_page_text", + "label": "_first_page_text()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_first_page_text()", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L118" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_detect", + "label": ".detect()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".detect()", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L36" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "label": ".parse()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": ".parse()", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L46" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_parse_row", + "label": "_parse_row()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_parse_row()", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L97" + }, + { + "id": "backend_app_imports_readers_open_pdf", + "label": "open_pdf()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "open_pdf()", + "source_file": "backend/app/imports/readers.py", + "source_location": "L52" + }, + { + "id": "backend_app_imports_readers_open_xlsx", + "label": "open_xlsx()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "open_xlsx()", + "source_file": "backend/app/imports/readers.py", + "source_location": "L23" + }, + { + "id": "backend_app_imports_readers_quota_error", + "label": "_quota_error()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_quota_error()", + "source_file": "backend/app/imports/readers.py", + "source_location": "L14" + }, + { + "id": "backend_app_imports_service_draft_json", + "label": "_draft_json()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "_draft_json()", + "source_file": "backend/app/imports/service.py", + "source_location": "L116" + }, + { + "id": "backend_tests_test_imports_test_invalid_direction_is_critical", + "label": "test_invalid_direction_is_critical()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "test_invalid_direction_is_critical()", + "source_file": "backend/tests/test_imports.py", + "source_location": "L110" + }, + { + "id": "backend_app_audit_service_record", + "label": "record()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "record()", + "source_file": "backend/app/audit/service.py", + "source_location": "L8" + }, + { + "id": "backend_app_categorization_service_get_income_source", + "label": "get_income_source()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "get_income_source()", + "source_file": "backend/app/categorization/service.py", + "source_location": "L19" + }, + { + "id": "backend_app_errors_conflict", + "label": "conflict()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "conflict()", + "source_file": "backend/app/errors.py", + "source_location": "L43" + }, + { + "id": "backend_app_errors_not_found", + "label": "not_found()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "not_found()", + "source_file": "backend/app/errors.py", + "source_location": "L39" + }, + { + "id": "backend_app_imports_service_confirm_document", + "label": "confirm_document()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "confirm_document()", + "source_file": "backend/app/imports/service.py", + "source_location": "L492" + }, + { + "id": "backend_app_ledger_service_account_balance", + "label": "account_balance()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "account_balance()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L63" + }, + { + "id": "backend_app_ledger_service_apply_suggestion", + "label": "_apply_suggestion()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "_apply_suggestion()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L119" + }, + { + "id": "backend_app_ledger_service_archive_account", + "label": "archive_account()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "archive_account()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L462" + }, + { + "id": "backend_app_ledger_service_create_account", + "label": "create_account()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_account()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L76" + }, + { + "id": "backend_app_ledger_service_create_expense", + "label": "create_expense()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_expense()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L138" + }, + { + "id": "backend_app_ledger_service_create_income", + "label": "create_income()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_income()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L194" + }, + { + "id": "backend_app_ledger_service_create_refund", + "label": "create_refund()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_refund()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L324" + }, + { + "id": "backend_app_ledger_service_create_transfer", + "label": "create_transfer()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_transfer()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L248" + }, + { + "id": "backend_app_ledger_service_delete_account", + "label": "delete_account()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "delete_account()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L484" + }, + { + "id": "backend_app_ledger_service_ensure_period_open_for_date", + "label": "ensure_period_open_for_date()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "ensure_period_open_for_date()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L390" + }, + { + "id": "backend_app_ledger_service_existing_by_request_key", + "label": "_existing_by_request_key()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "_existing_by_request_key()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L111" + }, + { + "id": "backend_app_ledger_service_get_account", + "label": "get_account()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "get_account()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L30" + }, + { + "id": "backend_app_ledger_service_get_operation", + "label": "get_operation()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "get_operation()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L37" + }, + { + "id": "backend_app_ledger_service_list_accounts", + "label": "list_accounts()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "list_accounts()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L551" + }, + { + "id": "backend_app_ledger_service_list_operations", + "label": "list_operations()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "list_operations()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L506" + }, + { + "id": "backend_app_ledger_service_refunded_kopecks", + "label": "refunded_kopecks()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "refunded_kopecks()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L311" + }, + { + "id": "backend_app_ledger_service_require_active_account", + "label": "_require_active_account()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "_require_active_account()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L44" + }, + { + "id": "backend_app_ledger_service_to_kopecks", + "label": "to_kopecks()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "to_kopecks()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L19" + }, + { + "id": "backend_app_ledger_service_update_operation", + "label": "update_operation()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "update_operation()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430" + }, + { + "id": "backend_app_ledger_service_validate_category", + "label": "_validate_category()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "_validate_category()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L51" + }, + { + "id": "backend_app_ledger_service_void_operation", + "label": "void_operation()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "void_operation()", + "source_file": "backend/app/ledger/service.py", + "source_location": "L411" + }, + { + "id": "backend_app_spaces_service_create_space", + "label": "create_space()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "create_space()", + "source_file": "backend/app/spaces/service.py", + "source_location": "L12" + }, + { + "id": "backend_tests_test_ledger_properties_seed", + "label": "seed()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "seed()", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L23" + }, + { + "id": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "label": "test_credit_expense_is_negative_balance_and_refund_is_capped()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "test_credit_expense_is_negative_balance_and_refund_is_capped()", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L71" + }, + { + "id": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "label": "test_cross_space_lookup_fails_closed()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "test_cross_space_lookup_fails_closed()", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L110" + }, + { + "id": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "label": "test_idempotency_key_prevents_duplicate_income()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "test_idempotency_key_prevents_duplicate_income()", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L126" + }, + { + "id": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "label": "test_transfer_postings_conserve_money()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "test_transfer_postings_conserve_money()", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L33" + }, + { + "id": "frontend_src_test_import_polling_test_detail", + "label": "detail()", + "_callable": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "detail()", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L25" + }, + { + "id": "frontend_src_test_import_polling_test_makewrapper", + "label": "makeWrapper()", + "_callable": true, + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "makewrapper()", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L51" + }, + { + "id": "frontend_src_app_router_requireauth", + "label": "RequireAuth()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "requireauth()", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L44" + }, + { + "id": "frontend_src_components_layout_applayout_applayout", + "label": "AppLayout()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "applayout()", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L17" + }, + { + "id": "frontend_src_components_layout_langswitcher_langswitcher", + "label": "LangSwitcher()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "langswitcher()", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L5" + }, + { + "id": "frontend_src_components_ui_button_button", + "label": "Button()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "button()", + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L9" + }, + { + "id": "frontend_src_components_ui_fields_textfield", + "label": "TextField()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "textfield()", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L56" + }, + { + "id": "frontend_src_hooks_useauth_useacceptinvite", + "label": "useAcceptInvite()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "useacceptinvite()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L30" + }, + { + "id": "frontend_src_hooks_useauth_useconfirmpasswordreset", + "label": "useConfirmPasswordReset()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "useconfirmpasswordreset()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L38" + }, + { + "id": "frontend_src_hooks_useauth_uselogin", + "label": "useLogin()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "uselogin()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L26" + }, + { + "id": "frontend_src_hooks_useauth_uselogout", + "label": "useLogout()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "uselogout()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L42" + }, + { + "id": "frontend_src_hooks_useauth_useme", + "label": "useMe()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "useme()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L6" + }, + { + "id": "frontend_src_hooks_useauth_userequestpasswordreset", + "label": "useRequestPasswordReset()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "userequestpasswordreset()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L34" + }, + { + "id": "frontend_src_hooks_useauth_usesessionmutation", + "label": "useSessionMutation()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "usesessionmutation()", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L15" + }, + { + "id": "frontend_src_i18n_index_setlocale", + "label": "setLocale()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "setlocale()", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L46" + }, + { + "id": "frontend_src_pages_acceptinvitepage_acceptinvitepage", + "label": "AcceptInvitePage()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "acceptinvitepage()", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L19" + }, + { + "id": "frontend_src_pages_loginpage_loginpage", + "label": "LoginPage()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "loginpage()", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L18" + }, + { + "id": "frontend_src_pages_resetpasswordpage_resetpasswordpage", + "label": "ResetPasswordPage()", + "_callable": true, + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "resetpasswordpage()", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L19" + }, + { + "id": "backend_app_ledger_router_account_json", + "label": "account_json()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "account_json()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L55" + }, + { + "id": "backend_app_ledger_router_accounts", + "label": "accounts()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "accounts()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L100" + }, + { + "id": "backend_app_ledger_router_archive_account", + "label": "archive_account()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "archive_account()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L116" + }, + { + "id": "backend_app_ledger_router_create_account", + "label": "create_account()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "create_account()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L105" + }, + { + "id": "backend_app_ledger_router_create_operation", + "label": "create_operation()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "create_operation()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174" + }, + { + "id": "backend_app_ledger_router_delete_account", + "label": "delete_account()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "delete_account()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L132" + }, + { + "id": "backend_app_ledger_router_operation_json", + "label": "operation_json()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "operation_json()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L71" + }, + { + "id": "backend_app_ledger_router_operations", + "label": "operations()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "operations()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137" + }, + { + "id": "backend_app_ledger_router_patch_account", + "label": "patch_account()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "patch_account()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L124" + }, + { + "id": "backend_app_ledger_router_patch_operation", + "label": "patch_operation()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "patch_operation()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264" + }, + { + "id": "backend_app_ledger_router_void_operation", + "label": "void_operation()", + "_callable": true, + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "void_operation()", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250" + }, + { + "id": "backend_app_audit_init", + "label": "audit/__init__.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "audit/__init__.py", + "source_file": "backend/app/audit/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_config", + "label": "config.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "config.py", + "source_file": "backend/app/config.py", + "source_location": "L1" + }, + { + "id": "backend_app_dependencies", + "label": "dependencies.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "dependencies.py", + "source_file": "backend/app/dependencies.py", + "source_location": "L1" + }, + { + "id": "backend_app_dependencies_py_alias", + "label": "alias", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "alias", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_dependencies_py_context", + "label": "Context", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_dependencies_py_currentsession", + "label": "CurrentSession", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "currentsession", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_dependencies_py_db", + "label": "Db", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_dependencies_py_header", + "label": "Header", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "header", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_dependencies_py_user", + "label": "User", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_errors", + "label": "errors.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "errors.py", + "source_file": "backend/app/errors.py", + "source_location": "L1" + }, + { + "id": "backend_app_identity_init", + "label": "identity/__init__.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "identity/__init__.py", + "source_file": "backend/app/identity/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_identity_mailer", + "label": "mailer.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "mailer.py", + "source_file": "backend/app/identity/mailer.py", + "source_location": "L1" + }, + { + "id": "backend_app_identity_router", + "label": "identity/router.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "identity/router.py", + "source_file": "backend/app/identity/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_identity_router_py_alias", + "label": "alias", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "alias", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_basemodel", + "label": "BaseModel", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "basemodel", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_currentsession", + "label": "CurrentSession", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "currentsession", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_get", + "label": "get", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_header", + "label": "Header", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "header", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_post", + "label": "post", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_request", + "label": "Request", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "request", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_router_py_response", + "label": "Response", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "response", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_service", + "label": "identity/service.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "identity/service.py", + "source_file": "backend/app/identity/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_identity_service_py_user", + "label": "User", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_celery_app", + "label": "celery_app.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "celery_app.py", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L1" + }, + { + "id": "backend_app_ratelimit", + "label": "ratelimit.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "ratelimit.py", + "source_file": "backend/app/ratelimit.py", + "source_location": "L1" + }, + { + "id": "backend_app_security", + "label": "security.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "security.py", + "source_file": "backend/app/security.py", + "source_location": "L1" + }, + { + "id": "backend_app_spaces_router", + "label": "spaces/router.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "spaces/router.py", + "source_file": "backend/app/spaces/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_spaces_router_py_alias", + "label": "alias", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "alias", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_basemodel", + "label": "BaseModel", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "basemodel", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_csrf", + "label": "Csrf", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "csrf", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_currentsession", + "label": "CurrentSession", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "currentsession", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_delete", + "label": "delete", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "delete", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_get", + "label": "get", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_header", + "label": "Header", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "header", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_router_py_post", + "label": "post", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_service", + "label": "spaces/service.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "spaces/service.py", + "source_file": "backend/app/spaces/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_spaces_service_py_user", + "label": "User", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_spaces_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_worker", + "label": "worker.py", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "worker.py", + "source_file": "backend/app/worker.py", + "source_location": "L1" + }, + { + "id": "basesettings", + "label": "BaseSettings", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "basesettings", + "source_file": "", + "source_location": "" + }, + { + "id": "celery", + "label": "Celery", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "celery", + "source_file": "", + "source_location": "" + }, + { + "id": "cookie", + "label": "Cookie", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "cookie", + "source_file": "", + "source_location": "" + }, + { + "id": "dbsession", + "label": "DbSession", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "dbsession", + "source_file": "", + "source_location": "" + }, + { + "id": "session_cookie_name", + "label": "session_cookie_name", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "session_cookie_name", + "source_file": "", + "source_location": "" + }, + { + "id": "usersession", + "label": "UserSession", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "code", + "norm_label": "usersession", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ratelimit_rationale_16", + "label": "Distributed fixed-window limiter with a local fail-safe fallback.", + "_origin": "ast", + "community": 0, + "community_name": "Identity and Configuration", + "file_type": "rationale", + "norm_label": "distributed fixed-window limiter with a local fail-safe fallback.", + "source_file": "backend/app/ratelimit.py", + "source_location": "L16" + }, + { + "id": "backend_app_analytics_service", + "label": "analytics/service.py", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "analytics/service.py", + "source_file": "backend/app/analytics/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_analytics_service_py_date", + "label": "date", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_analytics_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_init", + "label": "budgeting/__init__.py", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "budgeting/__init__.py", + "source_file": "backend/app/budgeting/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_budgeting_router", + "label": "budgeting/router.py", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "budgeting/router.py", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_budgeting_router_py_basemodel", + "label": "BaseModel", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "basemodel", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_csrf", + "label": "Csrf", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "csrf", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_get", + "label": "get", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_patch", + "label": "patch", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "patch", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_post", + "label": "post", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_router_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_service", + "label": "budgeting/service.py", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "budgeting/service.py", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_budgeting_service_py_account", + "label": "Account", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "account", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_service_py_date", + "label": "date", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_service_py_user", + "label": "User", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_tests_test_budget", + "label": "test_budget.py", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "test_budget.py", + "source_file": "backend/tests/test_budget.py", + "source_location": "L1" + }, + { + "id": "expectedincome", + "label": "ExpectedIncome", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "expectedincome", + "source_file": "", + "source_location": "" + }, + { + "id": "put", + "label": "put", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "code", + "norm_label": "put", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_budgeting_models_rationale_26", + "label": "Calendar month budget period in the space timezone (month granularity).", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "rationale", + "norm_label": "calendar month budget period in the space timezone (month granularity).", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L26" + }, + { + "id": "backend_app_budgeting_service_rationale_115", + "label": "Deterministic budget state. Resource model: - income lands in the general pool;\u2026", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "rationale", + "norm_label": "deterministic budget state. resource model: - income lands in the general pool;...", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L115" + }, + { + "id": "backend_app_categorization_service_rationale_9", + "label": "Standard categories resolve to a translation key; overrides/customs are literal.", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "rationale", + "norm_label": "standard categories resolve to a translation key; overrides/customs are literal.", + "source_file": "backend/app/categorization/service.py", + "source_location": "L9" + }, + { + "id": "backend_app_ledger_models_rationale_160", + "label": "Budget category. Kept in ledger module to avoid circular imports.", + "_origin": "ast", + "community": 1, + "community_name": "Budget Domain Services", + "file_type": "rationale", + "norm_label": "budget category. kept in ledger module to avoid circular imports.", + "source_file": "backend/app/ledger/models.py", + "source_location": "L160" + }, + { + "id": "frontend_src_app_router_importspage", + "label": "ImportsPage", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "importspage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L22" + }, + { + "id": "frontend_src_app_router_notfoundpage", + "label": "NotFoundPage", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "notfoundpage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L28" + }, + { + "id": "frontend_src_app_router_reviewqueuepage", + "label": "ReviewQueuePage", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "reviewqueuepage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L34" + }, + { + "id": "frontend_src_components_ui_badge", + "label": "Badge.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "badge.tsx", + "source_file": "frontend/src/components/ui/Badge.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_emptystate", + "label": "EmptyState.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "emptystate.tsx", + "source_file": "frontend/src/components/ui/EmptyState.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_pageheader", + "label": "PageHeader.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "pageheader.tsx", + "source_file": "frontend/src/components/ui/PageHeader.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_querygate", + "label": "QueryGate.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "querygate.tsx", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_spinner", + "label": "Spinner.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "spinner.tsx", + "source_file": "frontend/src/components/ui/Spinner.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_importspage", + "label": "ImportsPage.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "importspage.tsx", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_notfoundpage", + "label": "NotFoundPage.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "notfoundpage.tsx", + "source_file": "frontend/src/pages/NotFoundPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_reviewqueuepage", + "label": "ReviewQueuePage.tsx", + "_origin": "ast", + "community": 10, + "community_name": "Import Review UI", + "file_type": "code", + "norm_label": "reviewqueuepage.tsx", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_tsconfig", + "label": "tsconfig.json", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "tsconfig.json", + "source_file": "frontend/tsconfig.json", + "source_location": "L1" + }, + { + "id": "frontend_tsconfig_compileroptions", + "label": "compilerOptions", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "compileroptions", + "source_file": "frontend/tsconfig.json", + "source_location": "L2" + }, + { + "id": "frontend_tsconfig_compileroptions_baseurl", + "label": "baseUrl", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "baseurl", + "source_file": "frontend/tsconfig.json", + "source_location": "L22" + }, + { + "id": "frontend_tsconfig_compileroptions_esmoduleinterop", + "label": "esModuleInterop", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "esmoduleinterop", + "source_file": "frontend/tsconfig.json", + "source_location": "L15" + }, + { + "id": "frontend_tsconfig_compileroptions_forceconsistentcasinginfilenames", + "label": "forceConsistentCasingInFileNames", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "forceconsistentcasinginfilenames", + "source_file": "frontend/tsconfig.json", + "source_location": "L16" + }, + { + "id": "frontend_tsconfig_compileroptions_isolatedmodules", + "label": "isolatedModules", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "isolatedmodules", + "source_file": "frontend/tsconfig.json", + "source_location": "L14" + }, + { + "id": "frontend_tsconfig_compileroptions_jsx", + "label": "jsx", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "jsx", + "source_file": "frontend/tsconfig.json", + "source_location": "L7" + }, + { + "id": "frontend_tsconfig_compileroptions_lib", + "label": "lib", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "lib", + "source_file": "frontend/tsconfig.json", + "source_location": "L4" + }, + { + "id": "frontend_tsconfig_compileroptions_module", + "label": "module", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "module", + "source_file": "frontend/tsconfig.json", + "source_location": "L5" + }, + { + "id": "frontend_tsconfig_compileroptions_moduleresolution", + "label": "moduleResolution", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "moduleresolution", + "source_file": "frontend/tsconfig.json", + "source_location": "L6" + }, + { + "id": "frontend_tsconfig_compileroptions_noemit", + "label": "noEmit", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "noemit", + "source_file": "frontend/tsconfig.json", + "source_location": "L20" + }, + { + "id": "frontend_tsconfig_compileroptions_nofallthroughcasesinswitch", + "label": "noFallthroughCasesInSwitch", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "nofallthroughcasesinswitch", + "source_file": "frontend/tsconfig.json", + "source_location": "L11" + }, + { + "id": "frontend_tsconfig_compileroptions_nouncheckedindexedaccess", + "label": "noUncheckedIndexedAccess", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "nouncheckedindexedaccess", + "source_file": "frontend/tsconfig.json", + "source_location": "L12" + }, + { + "id": "frontend_tsconfig_compileroptions_nounusedlocals", + "label": "noUnusedLocals", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "nounusedlocals", + "source_file": "frontend/tsconfig.json", + "source_location": "L9" + }, + { + "id": "frontend_tsconfig_compileroptions_nounusedparameters", + "label": "noUnusedParameters", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "nounusedparameters", + "source_file": "frontend/tsconfig.json", + "source_location": "L10" + }, + { + "id": "frontend_tsconfig_compileroptions_paths", + "label": "paths", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "paths", + "source_file": "frontend/tsconfig.json", + "source_location": "L23" + }, + { + "id": "frontend_tsconfig_compileroptions_resolvejsonmodule", + "label": "resolveJsonModule", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "resolvejsonmodule", + "source_file": "frontend/tsconfig.json", + "source_location": "L18" + }, + { + "id": "frontend_tsconfig_compileroptions_skiplibcheck", + "label": "skipLibCheck", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "skiplibcheck", + "source_file": "frontend/tsconfig.json", + "source_location": "L19" + }, + { + "id": "frontend_tsconfig_compileroptions_strict", + "label": "strict", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "strict", + "source_file": "frontend/tsconfig.json", + "source_location": "L8" + }, + { + "id": "frontend_tsconfig_compileroptions_target", + "label": "target", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "target", + "source_file": "frontend/tsconfig.json", + "source_location": "L3" + }, + { + "id": "frontend_tsconfig_compileroptions_types", + "label": "types", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "types", + "source_file": "frontend/tsconfig.json", + "source_location": "L21" + }, + { + "id": "frontend_tsconfig_compileroptions_usedefineforclassfields", + "label": "useDefineForClassFields", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "usedefineforclassfields", + "source_file": "frontend/tsconfig.json", + "source_location": "L17" + }, + { + "id": "frontend_tsconfig_compileroptions_verbatimmodulesyntax", + "label": "verbatimModuleSyntax", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "verbatimmodulesyntax", + "source_file": "frontend/tsconfig.json", + "source_location": "L13" + }, + { + "id": "frontend_tsconfig_include", + "label": "include", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "code", + "norm_label": "include", + "source_file": "frontend/tsconfig.json", + "source_location": "L27" + }, + { + "id": "ref_dom", + "label": "DOM", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "concept", + "norm_label": "dom", + "source_file": "frontend/tsconfig.json", + "source_location": "L4" + }, + { + "id": "ref_dom_iterable", + "label": "DOM.Iterable", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "concept", + "norm_label": "dom.iterable", + "source_file": "frontend/tsconfig.json", + "source_location": "L4" + }, + { + "id": "ref_es2022", + "label": "ES2022", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "concept", + "norm_label": "es2022", + "source_file": "frontend/tsconfig.json", + "source_location": "L4" + }, + { + "id": "ref_src", + "label": "src", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "concept", + "norm_label": "src", + "source_file": "frontend/tsconfig.json", + "source_location": "L27" + }, + { + "id": "ref_vite_client", + "label": "vite/client", + "_origin": "ast", + "community": 11, + "community_name": "TypeScript Configuration", + "file_type": "concept", + "norm_label": "vite/client", + "source_file": "frontend/tsconfig.json", + "source_location": "L21" + }, + { + "id": "frontend_src_app_router_analyticspage", + "label": "AnalyticsPage", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "analyticspage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L13" + }, + { + "id": "frontend_src_components_charts_columnchart", + "label": "ColumnChart.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "columnchart.tsx", + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_charts_horizontalbars", + "label": "HorizontalBars.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "horizontalbars.tsx", + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_charts_planfactbars", + "label": "PlanFactBars.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "planfactbars.tsx", + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_monthswitcher", + "label": "MonthSwitcher.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "monthswitcher.tsx", + "source_file": "frontend/src/components/ui/MonthSwitcher.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_hooks_useanalytics", + "label": "useAnalytics.ts", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "useanalytics.ts", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_analyticspage", + "label": "AnalyticsPage.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "analyticspage.tsx", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_analyticspage_range_choices", + "label": "RANGE_CHOICES", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "range_choices", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L21" + }, + { + "id": "frontend_src_test_chart_accessible_table_test", + "label": "chart-accessible-table.test.tsx", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "chart-accessible-table.test.tsx", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_chart_accessible_table_test_rows", + "label": "rows", + "_origin": "ast", + "community": 12, + "community_name": "Analytics UI", + "file_type": "code", + "norm_label": "rows", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L6" + }, + { + "id": "backend_app_analytics_init", + "label": "analytics/__init__.py", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "analytics/__init__.py", + "source_file": "backend/app/analytics/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_analytics_router", + "label": "analytics/router.py", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "analytics/router.py", + "source_file": "backend/app/analytics/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_analytics_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_analytics_router_py_date", + "label": "date", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_analytics_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_analytics_router_py_get", + "label": "get", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_main", + "label": "main.py", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "main.py", + "source_file": "backend/app/main.py", + "source_location": "L1" + }, + { + "id": "backend_app_main_py_get", + "label": "get", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_main_py_request", + "label": "Request", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "request", + "source_file": "", + "source_location": "" + }, + { + "id": "engine", + "label": "Engine", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "engine", + "source_file": "", + "source_location": "" + }, + { + "id": "exception_handler", + "label": "exception_handler", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "exception_handler", + "source_file": "", + "source_location": "" + }, + { + "id": "jsonresponse", + "label": "JSONResponse", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "jsonresponse", + "source_file": "", + "source_location": "" + }, + { + "id": "middleware", + "label": "middleware", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "middleware", + "source_file": "", + "source_location": "" + }, + { + "id": "staledataerror", + "label": "StaleDataError", + "_origin": "ast", + "community": 13, + "community_name": "API and Analytics", + "file_type": "code", + "norm_label": "staledataerror", + "source_file": "", + "source_location": "" + }, + { + "id": "frontend_package_devdependencies", + "label": "devDependencies", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "devdependencies", + "source_file": "frontend/package.json", + "source_location": "L27" + }, + { + "id": "frontend_package_devdependencies_eslint", + "label": "eslint", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "eslint", + "source_file": "frontend/package.json", + "source_location": "L36" + }, + { + "id": "frontend_package_devdependencies_eslint_js", + "label": "@eslint/js", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "@eslint/js", + "source_file": "frontend/package.json", + "source_location": "L28" + }, + { + "id": "frontend_package_devdependencies_eslint_plugin_react_hooks", + "label": "eslint-plugin-react-hooks", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "eslint-plugin-react-hooks", + "source_file": "frontend/package.json", + "source_location": "L38" + }, + { + "id": "frontend_package_devdependencies_openapi_typescript", + "label": "openapi-typescript", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "openapi-typescript", + "source_file": "frontend/package.json", + "source_location": "L41" + }, + { + "id": "frontend_package_devdependencies_testing_library_dom", + "label": "@testing-library/dom", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "@testing-library/dom", + "source_file": "frontend/package.json", + "source_location": "L29" + }, + { + "id": "frontend_package_devdependencies_testing_library_jest_dom", + "label": "@testing-library/jest-dom", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "@testing-library/jest-dom", + "source_file": "frontend/package.json", + "source_location": "L30" + }, + { + "id": "frontend_package_devdependencies_testing_library_react", + "label": "@testing-library/react", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "@testing-library/react", + "source_file": "frontend/package.json", + "source_location": "L31" + }, + { + "id": "frontend_package_devdependencies_testing_library_user_event", + "label": "@testing-library/user-event", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "@testing-library/user-event", + "source_file": "frontend/package.json", + "source_location": "L32" + }, + { + "id": "frontend_package_devdependencies_typescript", + "label": "typescript", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "typescript", + "source_file": "frontend/package.json", + "source_location": "L42" + }, + { + "id": "frontend_package_devdependencies_vite", + "label": "vite", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "code", + "norm_label": "vite", + "source_file": "frontend/package.json", + "source_location": "L44" + }, + { + "id": "eslint", + "label": "eslint", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "eslint", + "source_file": "frontend/package.json", + "source_location": "L36" + }, + { + "id": "eslint_js", + "label": "@eslint/js", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "@eslint/js", + "source_file": "frontend/package.json", + "source_location": "L28" + }, + { + "id": "eslint_plugin_react_hooks", + "label": "eslint-plugin-react-hooks", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "eslint-plugin-react-hooks", + "source_file": "frontend/package.json", + "source_location": "L38" + }, + { + "id": "openapi_typescript", + "label": "openapi-typescript", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "openapi-typescript", + "source_file": "frontend/package.json", + "source_location": "L41" + }, + { + "id": "testing_library_dom", + "label": "@testing-library/dom", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "@testing-library/dom", + "source_file": "frontend/package.json", + "source_location": "L29" + }, + { + "id": "testing_library_jest_dom", + "label": "@testing-library/jest-dom", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "@testing-library/jest-dom", + "source_file": "frontend/package.json", + "source_location": "L30" + }, + { + "id": "testing_library_react", + "label": "@testing-library/react", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "@testing-library/react", + "source_file": "frontend/package.json", + "source_location": "L31" + }, + { + "id": "testing_library_user_event", + "label": "@testing-library/user-event", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "@testing-library/user-event", + "source_file": "frontend/package.json", + "source_location": "L32" + }, + { + "id": "typescript", + "label": "typescript", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "typescript", + "source_file": "frontend/package.json", + "source_location": "L42" + }, + { + "id": "vite", + "label": "vite", + "_origin": "ast", + "community": 14, + "community_name": "Frontend Development Dependencies", + "file_type": "concept", + "norm_label": "vite", + "source_file": "frontend/package.json", + "source_location": "L44" + }, + { + "id": "frontend_src_components_ui_confirmdialog", + "label": "ConfirmDialog.tsx", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "confirmdialog.tsx", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_modal", + "label": "Modal.tsx", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "modal.tsx", + "source_file": "frontend/src/components/ui/Modal.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_accountspage", + "label": "AccountsPage.tsx", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accountspage.tsx", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_accounts_page_test", + "label": "accounts-page.test.tsx", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "accounts-page.test.tsx", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_accounts_page_test_createmock", + "label": "createMock", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "createmock", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L19" + }, + { + "id": "frontend_src_test_accounts_page_test_listmock", + "label": "listMock", + "_origin": "ast", + "community": 15, + "community_name": "Accounts UI", + "file_type": "code", + "norm_label": "listmock", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L18" + }, + { + "id": "frontend_package_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "frontend/package.json", + "source_location": "L16" + }, + { + "id": "frontend_package_dependencies_hookform_resolvers", + "label": "@hookform/resolvers", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "@hookform/resolvers", + "source_file": "frontend/package.json", + "source_location": "L17" + }, + { + "id": "frontend_package_dependencies_i18next", + "label": "i18next", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "i18next", + "source_file": "frontend/package.json", + "source_location": "L19" + }, + { + "id": "frontend_package_dependencies_react", + "label": "react", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "react", + "source_file": "frontend/package.json", + "source_location": "L20" + }, + { + "id": "frontend_package_dependencies_react_dom", + "label": "react-dom", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "react-dom", + "source_file": "frontend/package.json", + "source_location": "L21" + }, + { + "id": "frontend_package_dependencies_react_hook_form", + "label": "react-hook-form", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "react-hook-form", + "source_file": "frontend/package.json", + "source_location": "L22" + }, + { + "id": "frontend_package_dependencies_react_i18next", + "label": "react-i18next", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "react-i18next", + "source_file": "frontend/package.json", + "source_location": "L23" + }, + { + "id": "frontend_package_dependencies_react_router_dom", + "label": "react-router-dom", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "react-router-dom", + "source_file": "frontend/package.json", + "source_location": "L24" + }, + { + "id": "frontend_package_dependencies_tanstack_react_query", + "label": "@tanstack/react-query", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "@tanstack/react-query", + "source_file": "frontend/package.json", + "source_location": "L18" + }, + { + "id": "frontend_package_dependencies_zod", + "label": "zod", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "code", + "norm_label": "zod", + "source_file": "frontend/package.json", + "source_location": "L25" + }, + { + "id": "hookform_resolvers", + "label": "@hookform/resolvers", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "@hookform/resolvers", + "source_file": "frontend/package.json", + "source_location": "L17" + }, + { + "id": "i18next", + "label": "i18next", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "i18next", + "source_file": "frontend/package.json", + "source_location": "L19" + }, + { + "id": "react", + "label": "react", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "react", + "source_file": "frontend/package.json", + "source_location": "L20" + }, + { + "id": "react_dom", + "label": "react-dom", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "react-dom", + "source_file": "frontend/package.json", + "source_location": "L21" + }, + { + "id": "react_hook_form", + "label": "react-hook-form", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "react-hook-form", + "source_file": "frontend/package.json", + "source_location": "L22" + }, + { + "id": "react_i18next", + "label": "react-i18next", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "react-i18next", + "source_file": "frontend/package.json", + "source_location": "L23" + }, + { + "id": "react_router_dom", + "label": "react-router-dom", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "react-router-dom", + "source_file": "frontend/package.json", + "source_location": "L24" + }, + { + "id": "tanstack_react_query", + "label": "@tanstack/react-query", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "@tanstack/react-query", + "source_file": "frontend/package.json", + "source_location": "L18" + }, + { + "id": "zod", + "label": "zod", + "_origin": "ast", + "community": 16, + "community_name": "Frontend Runtime Dependencies", + "file_type": "concept", + "norm_label": "zod", + "source_file": "frontend/package.json", + "source_location": "L25" + }, + { + "id": "frontend_src_app_router_importdetailpage", + "label": "ImportDetailPage", + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "importdetailpage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L19" + }, + { + "id": "frontend_src_hooks_useimports", + "label": "useImports.ts", + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "useimports.ts", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_importdetailpage", + "label": "ImportDetailPage.tsx", + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "importdetailpage.tsx", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_importdetailpage_decisions", + "label": "DECISIONS", + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "decisions", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L24" + }, + { + "id": "frontend_src_pages_importdetailpage_step_order", + "label": "STEP_ORDER", + "_origin": "ast", + "community": 17, + "community_name": "Import Detail Mutations", + "file_type": "code", + "norm_label": "step_order", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L31" + }, + { + "id": "frontend_src_pages_operationspage", + "label": "OperationsPage.tsx", + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "operationspage.tsx", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_operationspage_operation_kinds", + "label": "OPERATION_KINDS", + "_origin": "ast", + "community": 18, + "community_name": "Operations UI", + "file_type": "code", + "norm_label": "operation_kinds", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L28" + }, + { + "id": "i1", + "label": "i1", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "confidence": "EXTRACTED", + "file_type": "code", + "norm_label": "i1", + "source_file": "i1" + }, + { + "id": "i2", + "label": "i2", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "confidence": "EXTRACTED", + "file_type": "code", + "norm_label": "i2", + "source_file": "i2" + }, + { + "id": "frontend_src_api_endpoints_api", + "label": "api", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "api", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L27" + }, + { + "id": "frontend_src_api_querykeys", + "label": "queryKeys.ts", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "querykeys.ts", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_api_querykeys_invalidationroots", + "label": "invalidationRoots", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "invalidationroots", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L10" + }, + { + "id": "frontend_src_api_querykeys_querykeys", + "label": "queryKeys", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "querykeys", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L20" + }, + { + "id": "frontend_src_api_querykeys_session_root", + "label": "SESSION_ROOT", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "session_root", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L4" + }, + { + "id": "frontend_src_api_querykeys_sessioninvalidationroot", + "label": "sessionInvalidationRoot", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "sessioninvalidationroot", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L6" + }, + { + "id": "frontend_src_api_querykeys_space_root", + "label": "SPACE_ROOT", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "space_root", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L3" + }, + { + "id": "frontend_src_api_querykeys_spaceinvalidationroot", + "label": "spaceInvalidationRoot", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "spaceinvalidationroot", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L8" + }, + { + "id": "frontend_src_hooks_useaccounts", + "label": "useAccounts.ts", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "useaccounts.ts", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_hooks_useoperations", + "label": "useOperations.ts", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "useoperations.ts", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_test_query_keys_test", + "label": "query-keys.test.ts", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "query-keys.test.ts", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_test_query_keys_test_sample_filters", + "label": "SAMPLE_FILTERS", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "sample_filters", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L10" + }, + { + "id": "frontend_src_test_query_keys_test_sample_keys", + "label": "SAMPLE_KEYS", + "_origin": "ast", + "community": 19, + "community_name": "Query Keys and Operations", + "file_type": "code", + "norm_label": "sample_keys", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L12" + }, + { + "id": "backend_alembic_env", + "label": "env.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "env.py", + "source_file": "backend/alembic/env.py", + "source_location": "L1" + }, + { + "id": "backend_alembic_versions_20260911_0001_initial_schema", + "label": "20260911_0001_initial_schema.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "20260911_0001_initial_schema.py", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L1" + }, + { + "id": "backend_app_audit_models", + "label": "audit/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "audit/models.py", + "source_file": "backend/app/audit/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_budgeting_models", + "label": "budgeting/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "budgeting/models.py", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_categorization_models", + "label": "categorization/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "categorization/models.py", + "source_file": "backend/app/categorization/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_categorization_service", + "label": "categorization/service.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "categorization/service.py", + "source_file": "backend/app/categorization/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_db_base", + "label": "db/base.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "db/base.py", + "source_file": "backend/app/db/base.py", + "source_location": "L1" + }, + { + "id": "backend_app_db_base_py_any", + "label": "Any", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_db_base_py_datetime", + "label": "datetime", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "datetime", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_db_init", + "label": "db/__init__.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "db/__init__.py", + "source_file": "backend/app/db/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_db_models", + "label": "db/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "db/models.py", + "source_file": "backend/app/db/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_models", + "label": "exports/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "exports/models.py", + "source_file": "backend/app/exports/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_service", + "label": "exports/service.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "exports/service.py", + "source_file": "backend/app/exports/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_service_py_datetime", + "label": "datetime", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "datetime", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_identity_models", + "label": "identity/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "identity/models.py", + "source_file": "backend/app/identity/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_init", + "label": "imports/__init__.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "imports/__init__.py", + "source_file": "backend/app/imports/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_models", + "label": "imports/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "imports/models.py", + "source_file": "backend/app/imports/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_ledger_models", + "label": "ledger/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "ledger/models.py", + "source_file": "backend/app/ledger/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_spaces_models", + "label": "spaces/models.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "spaces/models.py", + "source_file": "backend/app/spaces/models.py", + "source_location": "L1" + }, + { + "id": "backend_tests_test_imports", + "label": "test_imports.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "test_imports.py", + "source_file": "backend/tests/test_imports.py", + "source_location": "L1" + }, + { + "id": "declarativebase", + "label": "DeclarativeBase", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "declarativebase", + "source_file": "", + "source_location": "" + }, + { + "id": "typedecorator", + "label": "TypeDecorator", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "code", + "norm_label": "typedecorator", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_audit_models_rationale_11", + "label": "Append-only domain/security event. Never stores raw financial payloads.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "append-only domain/security event. never stores raw financial payloads.", + "source_file": "backend/app/audit/models.py", + "source_location": "L11" + }, + { + "id": "backend_app_budgeting_models_rationale_104", + "label": "Links one actual income operation to one expected income (1:1 per operation).", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "links one actual income operation to one expected income (1:1 per operation).", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L104" + }, + { + "id": "backend_app_budgeting_models_rationale_133", + "label": "Manual money movement between the general pool and a category/reserve.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "manual money movement between the general pool and a category/reserve.", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L133" + }, + { + "id": "backend_app_budgeting_models_rationale_167", + "label": "Immutable-at-rest snapshot written when a period closes.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "immutable-at-rest snapshot written when a period closes.", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L167" + }, + { + "id": "backend_app_categorization_models_rationale_104", + "label": "Maps a bank's raw category string to an MCC for suggestion purposes.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "maps a bank's raw category string to an mcc for suggestion purposes.", + "source_file": "backend/app/categorization/models.py", + "source_location": "L104" + }, + { + "id": "backend_app_categorization_models_rationale_65", + "label": "Confirmed payee rule: auto-applies category to matching future operations.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "confirmed payee rule: auto-applies category to matching future operations.", + "source_file": "backend/app/categorization/models.py", + "source_location": "L65" + }, + { + "id": "backend_app_categorization_models_rationale_94", + "label": "Global versioned MCC dictionary (not space-scoped, outside RLS).", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "global versioned mcc dictionary (not space-scoped, outside rls).", + "source_file": "backend/app/categorization/models.py", + "source_location": "L94" + }, + { + "id": "backend_app_db_base_rationale_22", + "label": "Datetimes stored as naive UTC in the DB and exposed tz-aware (UTC) in Python.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "datetimes stored as naive utc in the db and exposed tz-aware (utc) in python.", + "source_file": "backend/app/db/base.py", + "source_location": "L22" + }, + { + "id": "backend_app_db_models_rationale_1", + "label": "Import every mapped class so Alembic sees complete metadata.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "import every mapped class so alembic sees complete metadata.", + "source_file": "backend/app/db/models.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_models_rationale_30", + "label": "Durable deletion marker reapplied after disaster restore.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "durable deletion marker reapplied after disaster restore.", + "source_file": "backend/app/exports/models.py", + "source_location": "L30" + }, + { + "id": "backend_app_imports_models_rationale_98", + "label": "Immutable extracted bank fact with document origin coordinates.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "immutable extracted bank fact with document origin coordinates.", + "source_file": "backend/app/imports/models.py", + "source_location": "L98" + }, + { + "id": "backend_app_ledger_models_rationale_27", + "label": "Financial account. Balance is always derived: opening + confirmed postings.", + "_origin": "ast", + "community": 2, + "community_name": "Database Models", + "file_type": "rationale", + "norm_label": "financial account. balance is always derived: opening + confirmed postings.", + "source_file": "backend/app/ledger/models.py", + "source_location": "L27" + }, + { + "id": "frontend_src_app", + "label": "App.tsx", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "app.tsx", + "source_file": "frontend/src/App.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_app_queryclient", + "label": "queryClient", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "queryclient", + "source_file": "frontend/src/App.tsx", + "source_location": "L9" + }, + { + "id": "frontend_src_i18n_index", + "label": "index.ts", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "index.ts", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_i18n_index_i18n", + "label": "i18n", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "i18n", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L44" + }, + { + "id": "frontend_src_i18n_index_locales", + "label": "LOCALES", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "locales", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L7" + }, + { + "id": "frontend_src_main", + "label": "main.tsx", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "main.tsx", + "source_file": "frontend/src/main.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_main_container", + "label": "container", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "container", + "source_file": "frontend/src/main.tsx", + "source_location": "L7" + }, + { + "id": "frontend_src_test_setup", + "label": "setup.ts", + "_origin": "ast", + "community": 20, + "community_name": "Frontend Bootstrap", + "file_type": "code", + "norm_label": "setup.ts", + "source_file": "frontend/src/test/setup.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_toaster", + "label": "Toaster.tsx", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toaster.tsx", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_toaster_toastcontext", + "label": "ToastContext", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "toastcontext", + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L16" + }, + { + "id": "frontend_src_test_helpers", + "label": "helpers.tsx", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "helpers.tsx", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_login_page_test", + "label": "login-page.test.tsx", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "login-page.test.tsx", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_login_page_test_loginmock", + "label": "loginMock", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "loginmock", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L22" + }, + { + "id": "frontend_src_test_login_page_test_memock", + "label": "meMock", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "memock", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L21" + }, + { + "id": "frontend_src_test_login_page_test_user", + "label": "user", + "_origin": "ast", + "community": 21, + "community_name": "Frontend Test Support", + "file_type": "code", + "norm_label": "user", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L24" + }, + { + "id": "frontend_src_hooks_usebudget", + "label": "useBudget.ts", + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "usebudget.ts", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_budgetpage", + "label": "BudgetPage.tsx", + "_origin": "ast", + "community": 22, + "community_name": "Budget UI", + "file_type": "code", + "norm_label": "budgetpage.tsx", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_api_client", + "label": "client.ts", + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "client.ts", + "source_file": "frontend/src/api/client.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_api_client_apiclient", + "label": "apiClient", + "_origin": "ast", + "community": 23, + "community_name": "HTTP API Client", + "file_type": "code", + "norm_label": "apiclient", + "source_file": "frontend/src/api/client.ts", + "source_location": "L113" + }, + { + "id": "frontend_src_components_ui_fields", + "label": "fields.tsx", + "_origin": "ast", + "community": 24, + "community_name": "Form Fields", + "file_type": "code", + "norm_label": "fields.tsx", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L1" + }, + { + "id": "frontend_package_scripts", + "label": "scripts", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "scripts", + "source_file": "frontend/package.json", + "source_location": "L6" + }, + { + "id": "frontend_package_scripts_api_generate", + "label": "api:generate", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "api:generate", + "source_file": "frontend/package.json", + "source_location": "L14" + }, + { + "id": "frontend_package_scripts_build", + "label": "build", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "build", + "source_file": "frontend/package.json", + "source_location": "L8" + }, + { + "id": "frontend_package_scripts_dev", + "label": "dev", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "dev", + "source_file": "frontend/package.json", + "source_location": "L7" + }, + { + "id": "frontend_package_scripts_lint", + "label": "lint", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "lint", + "source_file": "frontend/package.json", + "source_location": "L11" + }, + { + "id": "frontend_package_scripts_preview", + "label": "preview", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "preview", + "source_file": "frontend/package.json", + "source_location": "L9" + }, + { + "id": "frontend_package_scripts_test", + "label": "test", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "test", + "source_file": "frontend/package.json", + "source_location": "L12" + }, + { + "id": "frontend_package_scripts_test_watch", + "label": "test:watch", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "test:watch", + "source_file": "frontend/package.json", + "source_location": "L13" + }, + { + "id": "frontend_package_scripts_typecheck", + "label": "typecheck", + "_origin": "ast", + "community": 27, + "community_name": "Frontend Scripts", + "file_type": "code", + "norm_label": "typecheck", + "source_file": "frontend/package.json", + "source_location": "L10" + }, + { + "id": "frontend_src_hooks_usespacelifecycle", + "label": "useSpaceLifecycle.ts", + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "usespacelifecycle.ts", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_settingspage", + "label": "SettingsPage.tsx", + "_origin": "ast", + "community": 28, + "community_name": "Settings and Data Lifecycle", + "file_type": "code", + "norm_label": "settingspage.tsx", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L1" + }, + { + "id": "backend_app_db_session", + "label": "session.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "session.py", + "source_file": "backend/app/db/session.py", + "source_location": "L1" + }, + { + "id": "backend_app_db_session_py_any", + "label": "Any", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_db_session_py_sessionmaker", + "label": "sessionmaker", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "sessionmaker", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_init", + "label": "exports/__init__.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "exports/__init__.py", + "source_file": "backend/app/exports/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_router", + "label": "exports/router.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "exports/router.py", + "source_file": "backend/app/exports/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_csrf", + "label": "Csrf", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "csrf", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_get", + "label": "get", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_post", + "label": "post", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_response", + "label": "Response", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "response", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_router_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_tasks", + "label": "exports/tasks.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "exports/tasks.py", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L1" + }, + { + "id": "backend_app_exports_tasks_py_task", + "label": "task", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_exports_tasks_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_blob", + "label": "blob.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "blob.py", + "source_file": "backend/app/imports/blob.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_blob_py_protocol", + "label": "Protocol", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "protocol", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_tests_conftest", + "label": "conftest.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "conftest.py", + "source_file": "backend/tests/conftest.py", + "source_location": "L1" + }, + { + "id": "backend_tests_conftest_py_sessionmaker", + "label": "sessionmaker", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "sessionmaker", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_tests_conftest_py_testclient", + "label": "TestClient", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "testclient", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_tests_test_postgres_and_s3", + "label": "test_postgres_and_s3.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "test_postgres_and_s3.py", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L1" + }, + { + "id": "fixture", + "label": "fixture", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "fixture", + "source_file": "", + "source_location": "" + }, + { + "id": "path", + "label": "Path", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "skipif", + "label": "skipif", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "code", + "norm_label": "skipif", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_db_session_rationale_50", + "label": "Transaction-local RLS context. No-op on SQLite (tests); fail-closed on\u2026", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "rationale", + "norm_label": "transaction-local rls context. no-op on sqlite (tests); fail-closed on...", + "source_file": "backend/app/db/session.py", + "source_location": "L50" + }, + { + "id": "backend_app_db_session_rationale_60", + "label": "Transactional scope for workers/endpoints that own the transaction lifecycle.", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "rationale", + "norm_label": "transactional scope for workers/endpoints that own the transaction lifecycle.", + "source_file": "backend/app/db/session.py", + "source_location": "L60" + }, + { + "id": "backend_app_imports_blob_rationale_18", + "label": "S3-neutral local store; production swaps in an S3-compatible client.", + "_origin": "ast", + "community": 3, + "community_name": "Database Context and Exports", + "file_type": "rationale", + "norm_label": "s3-neutral local store; production swaps in an s3-compatible client.", + "source_file": "backend/app/imports/blob.py", + "source_location": "L18" + }, + { + "id": "frontend_package", + "label": "package.json", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "package.json", + "source_file": "frontend/package.json", + "source_location": "L1" + }, + { + "id": "frontend_package_allowscripts", + "label": "allowScripts", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "allowscripts", + "source_file": "frontend/package.json", + "source_location": "L47" + }, + { + "id": "frontend_package_allowscripts_esbuild_0_25_12", + "label": "esbuild@0.25.12", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "esbuild@0.25.12", + "source_file": "frontend/package.json", + "source_location": "L48" + }, + { + "id": "frontend_package_name", + "label": "name", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "name", + "source_file": "frontend/package.json", + "source_location": "L2" + }, + { + "id": "frontend_package_private", + "label": "private", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "private", + "source_file": "frontend/package.json", + "source_location": "L3" + }, + { + "id": "frontend_package_type", + "label": "type", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "type", + "source_file": "frontend/package.json", + "source_location": "L5" + }, + { + "id": "frontend_package_version", + "label": "version", + "_origin": "ast", + "community": 36, + "community_name": "Package Metadata", + "file_type": "code", + "norm_label": "version", + "source_file": "frontend/package.json", + "source_location": "L4" + }, + { + "id": "frontend_scripts_generate_api", + "label": "generate-api.mjs", + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "generate-api.mjs", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L1" + }, + { + "id": "frontend_scripts_generate_api_local_candidates", + "label": "LOCAL_CANDIDATES", + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "local_candidates", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L7" + }, + { + "id": "frontend_scripts_generate_api_out_dir", + "label": "OUT_DIR", + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "out_dir", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L6" + }, + { + "id": "frontend_scripts_generate_api_remote_candidates", + "label": "REMOTE_CANDIDATES", + "_origin": "ast", + "community": 39, + "community_name": "API Generation Script", + "file_type": "code", + "norm_label": "remote_candidates", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L11" + }, + { + "id": "backend_app_imports_crypto", + "label": "crypto.py", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "crypto.py", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_router", + "label": "imports/router.py", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "imports/router.py", + "source_file": "backend/app/imports/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_router_py_alias", + "label": "alias", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "alias", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_any", + "label": "Any", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_basemodel", + "label": "BaseModel", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "basemodel", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_csrf", + "label": "Csrf", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "csrf", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_delete", + "label": "delete", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "delete", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_get", + "label": "get", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_patch", + "label": "patch", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "patch", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_post", + "label": "post", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_router_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_service", + "label": "imports/service.py", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "imports/service.py", + "source_file": "backend/app/imports/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_service_py_user", + "label": "User", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_tasks", + "label": "imports/tasks.py", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "imports/tasks.py", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_tasks_py_task", + "label": "task", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_tasks_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "file", + "label": "File", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "file", + "source_file": "", + "source_location": "" + }, + { + "id": "form", + "label": "Form", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "form", + "source_file": "", + "source_location": "" + }, + { + "id": "uploadfile", + "label": "UploadFile", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "code", + "norm_label": "uploadfile", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_crypto_rationale_22", + "label": "Per-file random DEK; DEK wrapped with the KEK from the secret manager.", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "rationale", + "norm_label": "per-file random dek; dek wrapped with the kek from the secret manager.", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L22" + }, + { + "id": "backend_app_imports_crypto_rationale_57", + "label": "Crypto-shred hook: deleting wrapped DEK rows in DB plus blobs removes access.", + "_origin": "ast", + "community": 4, + "community_name": "Statement Import Services", + "file_type": "rationale", + "norm_label": "crypto-shred hook: deleting wrapped dek rows in db plus blobs removes access.", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L57" + }, + { + "id": "frontend_src_api_generated_schema_d", + "label": "schema.d.ts", + "_origin": "ast", + "community": 40, + "community_name": "OpenAPI Schema", + "file_type": "code", + "norm_label": "schema.d.ts", + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L1" + }, + { + "id": "backend_tests_test_api", + "label": "test_api.py", + "_origin": "ast", + "community": 41, + "community_name": "API Integration Tests", + "file_type": "code", + "norm_label": "test_api.py", + "source_file": "backend/tests/test_api.py", + "source_location": "L1" + }, + { + "id": "backend_tests_test_api_py_testclient", + "label": "TestClient", + "_origin": "ast", + "community": 41, + "community_name": "API Integration Tests", + "file_type": "code", + "norm_label": "testclient", + "source_file": "", + "source_location": "" + }, + { + "id": "frontend_src_test_i18n_parity_test", + "label": "i18n-parity.test.ts", + "_origin": "ast", + "community": 42, + "community_name": "Localization Tests", + "file_type": "code", + "norm_label": "i18n-parity.test.ts", + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_test_i18n_parity_test_enkeys", + "label": "enKeys", + "_origin": "ast", + "community": 42, + "community_name": "Localization Tests", + "file_type": "code", + "norm_label": "enkeys", + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L30" + }, + { + "id": "frontend_src_test_i18n_parity_test_rukeys", + "label": "ruKeys", + "_origin": "ast", + "community": 42, + "community_name": "Localization Tests", + "file_type": "code", + "norm_label": "rukeys", + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L29" + }, + { + "id": "frontend_package_devdependencies_eslint_plugin_jsx_a11y", + "label": "eslint-plugin-jsx-a11y", + "_origin": "ast", + "community": 44, + "community_name": "Accessibility ESLint", + "file_type": "code", + "norm_label": "eslint-plugin-jsx-a11y", + "source_file": "frontend/package.json", + "source_location": "L37" + }, + { + "id": "eslint_plugin_jsx_a11y", + "label": "eslint-plugin-jsx-a11y", + "_origin": "ast", + "community": 44, + "community_name": "Accessibility ESLint", + "file_type": "concept", + "norm_label": "eslint-plugin-jsx-a11y", + "source_file": "frontend/package.json", + "source_location": "L37" + }, + { + "id": "frontend_package_devdependencies_globals", + "label": "globals", + "_origin": "ast", + "community": 45, + "community_name": "JavaScript Globals", + "file_type": "code", + "norm_label": "globals", + "source_file": "frontend/package.json", + "source_location": "L39" + }, + { + "id": "globals", + "label": "globals", + "_origin": "ast", + "community": 45, + "community_name": "JavaScript Globals", + "file_type": "concept", + "norm_label": "globals", + "source_file": "frontend/package.json", + "source_location": "L39" + }, + { + "id": "frontend_package_devdependencies_jsdom", + "label": "jsdom", + "_origin": "ast", + "community": 46, + "community_name": "JSDOM Dependency", + "file_type": "code", + "norm_label": "jsdom", + "source_file": "frontend/package.json", + "source_location": "L40" + }, + { + "id": "jsdom", + "label": "jsdom", + "_origin": "ast", + "community": 46, + "community_name": "JSDOM Dependency", + "file_type": "concept", + "norm_label": "jsdom", + "source_file": "frontend/package.json", + "source_location": "L40" + }, + { + "id": "frontend_package_devdependencies_types_react", + "label": "@types/react", + "_origin": "ast", + "community": 47, + "community_name": "React Type Definitions", + "file_type": "code", + "norm_label": "@types/react", + "source_file": "frontend/package.json", + "source_location": "L33" + }, + { + "id": "types_react", + "label": "@types/react", + "_origin": "ast", + "community": 47, + "community_name": "React Type Definitions", + "file_type": "concept", + "norm_label": "@types/react", + "source_file": "frontend/package.json", + "source_location": "L33" + }, + { + "id": "frontend_package_devdependencies_types_react_dom", + "label": "@types/react-dom", + "_origin": "ast", + "community": 48, + "community_name": "React DOM Types", + "file_type": "code", + "norm_label": "@types/react-dom", + "source_file": "frontend/package.json", + "source_location": "L34" + }, + { + "id": "types_react_dom", + "label": "@types/react-dom", + "_origin": "ast", + "community": 48, + "community_name": "React DOM Types", + "file_type": "concept", + "norm_label": "@types/react-dom", + "source_file": "frontend/package.json", + "source_location": "L34" + }, + { + "id": "frontend_package_devdependencies_typescript_eslint", + "label": "typescript-eslint", + "_origin": "ast", + "community": 49, + "community_name": "TypeScript ESLint", + "file_type": "code", + "norm_label": "typescript-eslint", + "source_file": "frontend/package.json", + "source_location": "L43" + }, + { + "id": "typescript_eslint", + "label": "typescript-eslint", + "_origin": "ast", + "community": 49, + "community_name": "TypeScript ESLint", + "file_type": "concept", + "norm_label": "typescript-eslint", + "source_file": "frontend/package.json", + "source_location": "L43" + }, + { + "id": "backend_app_errors_py_any", + "label": "Any", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx", + "label": "alfa_xlsx.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "alfa_xlsx.py", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_py_date", + "label": "date", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_adapters_base", + "label": "adapters/base.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "adapters/base.py", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_adapters_base_py_date", + "label": "date", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_adapters_base_py_protocol", + "label": "Protocol", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "protocol", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_imports_adapters_init", + "label": "adapters/__init__.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "adapters/__init__.py", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf", + "label": "ozon_pdf.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "ozon_pdf.py", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_adapters_rocketbank_pdf", + "label": "rocketbank_pdf.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "rocketbank_pdf.py", + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_readers", + "label": "readers.py", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "readers.py", + "source_file": "backend/app/imports/readers.py", + "source_location": "L1" + }, + { + "id": "backend_app_imports_service_py_any", + "label": "Any", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "exception", + "label": "Exception", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_errors_rationale_5", + "label": "Domain error rendered as a machine-readable JSON error payload.", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "rationale", + "norm_label": "domain error rendered as a machine-readable json error payload.", + "source_file": "backend/app/errors.py", + "source_location": "L5" + }, + { + "id": "backend_app_imports_adapters_alfa_xlsx_rationale_26", + "label": "Alfa statement contract: XLSX with a header row and bank marker '\u0410\u043b\u044c\u0444\u0430'.", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "rationale", + "norm_label": "alfa statement contract: xlsx with a header row and bank marker '\u0430\u043b\u044c\u0444\u0430'.", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L26" + }, + { + "id": "backend_app_imports_adapters_base_rationale_45", + "label": "Stable diagnostic for unknown bank layouts; never guesses.", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "rationale", + "norm_label": "stable diagnostic for unknown bank layouts; never guesses.", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L45" + }, + { + "id": "backend_app_imports_adapters_ozon_pdf_rationale_29", + "label": "Ozon statement contract: text-layer PDF, per-page line scanning.", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "rationale", + "norm_label": "ozon statement contract: text-layer pdf, per-page line scanning.", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L29" + }, + { + "id": "backend_app_imports_adapters_rocketbank_pdf_rationale_7", + "label": "Rocketbank debit statement contract: same text-layer line scanning shape.", + "_origin": "ast", + "community": 5, + "community_name": "Parser Adapters", + "file_type": "rationale", + "norm_label": "rocketbank debit statement contract: same text-layer line scanning shape.", + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L7" + }, + { + "id": "frontend_package_devdependencies_vitejs_plugin_react", + "label": "@vitejs/plugin-react", + "_origin": "ast", + "community": 50, + "community_name": "Vite React Plugin", + "file_type": "code", + "norm_label": "@vitejs/plugin-react", + "source_file": "frontend/package.json", + "source_location": "L35" + }, + { + "id": "vitejs_plugin_react", + "label": "@vitejs/plugin-react", + "_origin": "ast", + "community": 50, + "community_name": "Vite React Plugin", + "file_type": "concept", + "norm_label": "@vitejs/plugin-react", + "source_file": "frontend/package.json", + "source_location": "L35" + }, + { + "id": "frontend_package_devdependencies_vitest", + "label": "vitest", + "_origin": "ast", + "community": 51, + "community_name": "Vitest Dependency", + "file_type": "code", + "norm_label": "vitest", + "source_file": "frontend/package.json", + "source_location": "L45" + }, + { + "id": "vitest", + "label": "vitest", + "_origin": "ast", + "community": 51, + "community_name": "Vitest Dependency", + "file_type": "concept", + "norm_label": "vitest", + "source_file": "frontend/package.json", + "source_location": "L45" + }, + { + "id": "infra_postgres_init_app_role", + "label": "init-app-role.sh", + "_origin": "ast", + "community": 53, + "community_name": "Database Role Initialization", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "file" + }, + "norm_label": "init-app-role.sh", + "source_file": "infra/postgres/init-app-role.sh", + "source_location": "L1" + }, + { + "id": "infra_postgres_init_app_role_sh__entry", + "label": "init-app-role.sh script", + "_origin": "ast", + "community": 53, + "community_name": "Database Role Initialization", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "bash_entrypoint" + }, + "norm_label": "init-app-role.sh script", + "source_file": "infra/postgres/init-app-role.sh", + "source_location": "L1" + }, + { + "id": "backend_app_init", + "label": "app/__init__.py", + "_origin": "ast", + "community": 54, + "community_name": "Application Package", + "file_type": "code", + "norm_label": "app/__init__.py", + "source_file": "backend/app/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_spaces_init", + "label": "spaces/__init__.py", + "_origin": "ast", + "community": 55, + "community_name": "Spaces Package", + "file_type": "code", + "norm_label": "spaces/__init__.py", + "source_file": "backend/app/spaces/__init__.py", + "source_location": "L1" + }, + { + "id": "frontend_eslint_config", + "label": "eslint.config.js", + "_origin": "ast", + "community": 57, + "community_name": "ESLint Configuration", + "file_type": "code", + "norm_label": "eslint.config.js", + "source_file": "frontend/eslint.config.js", + "source_location": "L1" + }, + { + "id": "frontend_src_test_money_test", + "label": "money.test.ts", + "_origin": "ast", + "community": 58, + "community_name": "Money Utilities Tests", + "file_type": "code", + "norm_label": "money.test.ts", + "source_file": "frontend/src/test/money.test.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_vite_env_d", + "label": "vite-env.d.ts", + "_origin": "ast", + "community": 59, + "community_name": "Vite Environment Types", + "file_type": "code", + "norm_label": "vite-env.d.ts", + "source_file": "frontend/src/vite-env.d.ts", + "source_location": "L1" + }, + { + "id": "backend_app_audit_service", + "label": "audit/service.py", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "audit/service.py", + "source_file": "backend/app/audit/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_audit_service_py_any", + "label": "Any", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_service", + "label": "ledger/service.py", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "ledger/service.py", + "source_file": "backend/app/ledger/service.py", + "source_location": "L1" + }, + { + "id": "backend_app_ledger_service_py_account", + "label": "Account", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "account", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_service_py_any", + "label": "Any", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_service_py_date", + "label": "date", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_service_py_user", + "label": "User", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "user", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_service_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_tests_test_ledger_properties", + "label": "test_ledger_properties.py", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "test_ledger_properties.py", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L1" + }, + { + "id": "decimal", + "label": "Decimal", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "decimal", + "source_file": "", + "source_location": "" + }, + { + "id": "given", + "label": "given", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "given", + "source_file": "", + "source_location": "" + }, + { + "id": "operation", + "label": "Operation", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "operation", + "source_file": "", + "source_location": "" + }, + { + "id": "settings", + "label": "settings", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "code", + "norm_label": "settings", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_models_rationale_126", + "label": "Signed balance change of one account within one operation. Sign convention\u2026", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "rationale", + "norm_label": "signed balance change of one account within one operation. sign convention...", + "source_file": "backend/app/ledger/models.py", + "source_location": "L126" + }, + { + "id": "backend_app_ledger_models_rationale_55", + "label": "User financial fact. amount_kopecks is always positive; direction lives in\u2026", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "rationale", + "norm_label": "user financial fact. amount_kopecks is always positive; direction lives in...", + "source_file": "backend/app/ledger/models.py", + "source_location": "L55" + }, + { + "id": "backend_app_ledger_service_rationale_126", + "label": "Precedence: explicit choice (already set) > confirmed payee rule.", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "rationale", + "norm_label": "precedence: explicit choice (already set) > confirmed payee rule.", + "source_file": "backend/app/ledger/service.py", + "source_location": "L126" + }, + { + "id": "backend_app_ledger_service_rationale_20", + "label": "Convert a decimal ruble amount to integer kopecks. Floats are rejected upstream.", + "_origin": "ast", + "community": 6, + "community_name": "Ledger Services", + "file_type": "rationale", + "norm_label": "convert a decimal ruble amount to integer kopecks. floats are rejected upstream.", + "source_file": "backend/app/ledger/service.py", + "source_location": "L20" + }, + { + "id": "frontend_vite_config", + "label": "vite.config.ts", + "_origin": "ast", + "community": 60, + "community_name": "Vite Configuration", + "file_type": "code", + "norm_label": "vite.config.ts", + "source_file": "frontend/vite.config.ts", + "source_location": "L1" + }, + { + "id": "pkg_finance_backend", + "label": "finance-backend", + "_origin": "ast", + "community": 61, + "community_name": "Backend Package Metadata", + "ecosystem": "python", + "file_type": "code", + "norm_label": "finance-backend", + "source_file": "backend/pyproject.toml", + "source_location": "L1", + "type": "package", + "version": "0.1.0" + }, + { + "id": "frontend_src_api_endpoints", + "label": "endpoints.ts", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "endpoints.ts", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_api_types", + "label": "types.ts", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "types.ts", + "source_file": "frontend/src/api/types.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_test_budget_plan_test", + "label": "budget-plan.test.tsx", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "budget-plan.test.tsx", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_budget_plan_test_categories", + "label": "categories", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "categories", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L43" + }, + { + "id": "frontend_src_test_budget_plan_test_categoriesmock", + "label": "categoriesMock", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "categoriesmock", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L24" + }, + { + "id": "frontend_src_test_budget_plan_test_month", + "label": "month", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "month", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L27" + }, + { + "id": "frontend_src_test_budget_plan_test_summary", + "label": "summary", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "summary", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L29" + }, + { + "id": "frontend_src_test_budget_plan_test_summarymock", + "label": "summaryMock", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "summarymock", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L23" + }, + { + "id": "frontend_src_test_budget_plan_test_updateplanmock", + "label": "updatePlanMock", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "updateplanmock", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L25" + }, + { + "id": "frontend_src_test_import_polling_test", + "label": "import-polling.test.tsx", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "import-polling.test.tsx", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_test_import_polling_test_getimport", + "label": "getImport", + "_origin": "ast", + "community": 7, + "community_name": "API Domain Types", + "file_type": "code", + "norm_label": "getimport", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L23" + }, + { + "id": "frontend_src_app_router", + "label": "router.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "router.tsx", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_app_router_acceptinvitepage", + "label": "AcceptInvitePage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "acceptinvitepage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L7" + }, + { + "id": "frontend_src_app_router_accountspage", + "label": "AccountsPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "accountspage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L10" + }, + { + "id": "frontend_src_app_router_budgetpage", + "label": "BudgetPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "budgetpage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L16" + }, + { + "id": "frontend_src_app_router_loginpage", + "label": "LoginPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "loginpage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L25" + }, + { + "id": "frontend_src_app_router_operationspage", + "label": "OperationsPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "operationspage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L31" + }, + { + "id": "frontend_src_app_router_resetpasswordpage", + "label": "ResetPasswordPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "resetpasswordpage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L37" + }, + { + "id": "frontend_src_app_router_settingspage", + "label": "SettingsPage", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "settingspage", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L40" + }, + { + "id": "frontend_src_components_layout_applayout", + "label": "AppLayout.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "applayout.tsx", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_layout_applayout_nav_items", + "label": "NAV_ITEMS", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "nav_items", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L7" + }, + { + "id": "frontend_src_components_layout_langswitcher", + "label": "LangSwitcher.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "langswitcher.tsx", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_button", + "label": "Button.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "button.tsx", + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_components_ui_errorstate", + "label": "ErrorState.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "errorstate.tsx", + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_hooks_useauth", + "label": "useAuth.ts", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "useauth.ts", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_acceptinvitepage", + "label": "AcceptInvitePage.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "acceptinvitepage.tsx", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_loginpage", + "label": "LoginPage.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "loginpage.tsx", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L1" + }, + { + "id": "frontend_src_pages_resetpasswordpage", + "label": "ResetPasswordPage.tsx", + "_origin": "ast", + "community": 8, + "community_name": "Authentication UI", + "file_type": "code", + "norm_label": "resetpasswordpage.tsx", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L1" + }, + { + "id": "backend_app_categorization_init", + "label": "categorization/__init__.py", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "categorization/__init__.py", + "source_file": "backend/app/categorization/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_ledger_init", + "label": "ledger/__init__.py", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "ledger/__init__.py", + "source_file": "backend/app/ledger/__init__.py", + "source_location": "L1" + }, + { + "id": "backend_app_ledger_router", + "label": "ledger/router.py", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "ledger/router.py", + "source_file": "backend/app/ledger/router.py", + "source_location": "L1" + }, + { + "id": "backend_app_ledger_router_py_alias", + "label": "alias", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "alias", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_any", + "label": "Any", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_basemodel", + "label": "BaseModel", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "basemodel", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_context", + "label": "Context", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "context", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_csrf", + "label": "Csrf", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "csrf", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_date", + "label": "date", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "date", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_db", + "label": "Db", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "db", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_delete", + "label": "delete", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "delete", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_get", + "label": "get", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "get", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_header", + "label": "Header", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "header", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_patch", + "label": "patch", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "patch", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_post", + "label": "post", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "post", + "source_file": "", + "source_location": "" + }, + { + "id": "backend_app_ledger_router_py_uuid", + "label": "UUID", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "uuid", + "source_file": "", + "source_location": "" + }, + { + "id": "ge", + "label": "ge", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "ge", + "source_file": "", + "source_location": "" + }, + { + "id": "le", + "label": "le", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "le", + "source_file": "", + "source_location": "" + }, + { + "id": "query", + "label": "Query", + "_origin": "ast", + "community": 9, + "community_name": "Ledger API", + "file_type": "code", + "norm_label": "query", + "source_file": "", + "source_location": "" + }, + { + "id": "github_workflows_ci_backend_quality_gate", + "label": "Backend Quality Gate", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "backend quality gate", + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 26-101", + "source_url": null + }, + { + "id": "github_workflows_ci_compose_validation", + "label": "Compose and Nginx Validation", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "compose and nginx validation", + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 132-152", + "source_url": null + }, + { + "id": "github_workflows_ci_frontend_quality_gate", + "label": "Frontend Quality Gate", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "frontend quality gate", + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 103-130", + "source_url": null + }, + { + "id": "infra_docker_compose_commodity_services", + "label": "Commodity Infrastructure Services", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "commodity infrastructure services", + "source_file": "infra/docker-compose.yml", + "source_location": "lines 46-125", + "source_url": null + }, + { + "id": "infra_docker_compose_internal_backend_network", + "label": "Internal Backend Network", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "internal backend network", + "source_file": "infra/docker-compose.yml", + "source_location": "lines 163-222", + "source_url": null + }, + { + "id": "infra_docker_compose_same_origin_frontend", + "label": "Same-Origin Frontend Service", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "same-origin frontend service", + "source_file": "infra/docker-compose.yml", + "source_location": "lines 198-211", + "source_url": null + }, + { + "id": "infra_docker_compose_worker_isolation", + "label": "Worker Parsing Isolation", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "worker parsing isolation", + "source_file": "infra/docker-compose.yml", + "source_location": "lines 165-182", + "source_url": null + }, + { + "id": "infra_readme_same_origin_proxy", + "label": "Same-Origin Reverse Proxy", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "same-origin reverse proxy", + "source_file": "infra/README.md", + "source_location": "lines 25-30", + "source_url": null + }, + { + "id": "infra_readme_workstream_contracts", + "label": "Backend and Frontend Workstream Contracts", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "concept", + "norm_label": "backend and frontend workstream contracts", + "source_file": "infra/README.md", + "source_location": "lines 40-55", + "source_url": null + }, + { + "id": "github_workflows_ci_ci_pipeline", + "label": "CI Pipeline", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "document", + "norm_label": "ci pipeline", + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 1-152", + "source_url": null + }, + { + "id": "infra_docker_compose_docker_compose_stack", + "label": "Docker Compose Development Stack", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "document", + "norm_label": "docker compose development stack", + "source_file": "infra/docker-compose.yml", + "source_location": "lines 1-222", + "source_url": null + }, + { + "id": "infra_readme_infrastructure", + "label": "Finance Infrastructure", + "author": null, + "captured_at": null, + "community": 25, + "community_name": "Infrastructure and CI", + "contributor": null, + "file_type": "document", + "norm_label": "finance infrastructure", + "source_file": "infra/README.md", + "source_location": "lines 1-69", + "source_url": null + }, + { + "id": "context_credit_reserve", + "label": "Credit Reserve", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "credit reserve", + "source_file": "CONTEXT.md", + "source_location": "line 21", + "source_url": null + }, + { + "id": "context_financial_account", + "label": "Financial Account", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "financial account", + "source_file": "CONTEXT.md", + "source_location": "line 6", + "source_url": null + }, + { + "id": "context_financial_space", + "label": "Financial Space", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "financial space", + "source_file": "CONTEXT.md", + "source_location": "line 4", + "source_url": null + }, + { + "id": "context_membership", + "label": "Membership", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "membership", + "source_file": "CONTEXT.md", + "source_location": "line 5", + "source_url": null + }, + { + "id": "context_user", + "label": "User", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "user", + "source_file": "CONTEXT.md", + "source_location": "line 3", + "source_url": null + }, + { + "id": "docs_adr_0002_journal_and_budget_reserves_budget_reserves", + "label": "Carry-Over Budget Reserves", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "carry-over budget reserves", + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "source_url": null + }, + { + "id": "readme_closed_beta_budgeting", + "label": "Closed Beta Zero-Based Budgeting", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "concept", + "norm_label": "closed beta zero-based budgeting", + "source_file": "README.md", + "source_location": "lines 3-5", + "source_url": null + }, + { + "id": "readme_finance_tracker", + "label": "Finance Tracker", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "document", + "norm_label": "finance tracker", + "source_file": "README.md", + "source_location": "lines 1-56", + "source_url": null + }, + { + "id": "readme_production_boundary", + "label": "Production Data Boundary", + "author": null, + "captured_at": null, + "community": 26, + "community_name": "Core Finance Domain", + "contributor": null, + "file_type": "rationale", + "norm_label": "production data boundary", + "source_file": "README.md", + "source_location": "lines 47-53", + "source_url": null + }, + { + "id": "context_budget_period", + "label": "Budget Period", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "budget period", + "source_file": "CONTEXT.md", + "source_location": "line 15", + "source_url": null + }, + { + "id": "context_funding", + "label": "Funding", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "funding", + "source_file": "CONTEXT.md", + "source_location": "line 18", + "source_url": null + }, + { + "id": "context_general_pool", + "label": "General Pool", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "general pool", + "source_file": "CONTEXT.md", + "source_location": "line 16", + "source_url": null + }, + { + "id": "context_monthly_category", + "label": "Monthly Category", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "monthly category", + "source_file": "CONTEXT.md", + "source_location": "line 19", + "source_url": null + }, + { + "id": "context_plan_assignment", + "label": "Plan Assignment", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "plan assignment", + "source_file": "CONTEXT.md", + "source_location": "line 17", + "source_url": null + }, + { + "id": "context_savings_envelope", + "label": "Savings Envelope", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "savings envelope", + "source_file": "CONTEXT.md", + "source_location": "line 20", + "source_url": null + }, + { + "id": "docs_adr_0002_journal_and_budget_reserves_closure_snapshots", + "label": "Immutable Closure Snapshots", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "immutable closure snapshots", + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 17-23", + "source_url": null + }, + { + "id": "docs_adr_0002_journal_and_budget_reserves_plan_funding_separation", + "label": "Plan and Funding Separation", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "Budget Allocation Model", + "contributor": null, + "file_type": "concept", + "norm_label": "plan and funding separation", + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "source_url": null + }, + { + "id": "docs_adr_0003_versioned_statement_imports_atomic_confirm_revert", + "label": "Atomic Import Confirm and Revert", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "concept", + "norm_label": "atomic import confirm and revert", + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 15", + "source_url": null + }, + { + "id": "docs_adr_0003_versioned_statement_imports_conservative_deduplication", + "label": "Conservative Deduplication", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "concept", + "norm_label": "conservative deduplication", + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 16", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_budget_invariants", + "label": "Budget Invariants", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "concept", + "norm_label": "budget invariants", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 127-142", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_critical_user_path", + "label": "Critical User Path", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "concept", + "norm_label": "critical user path", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 7-14", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_import_pipeline", + "label": "Statement Import Pipeline", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "concept", + "norm_label": "statement import pipeline", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 159-176", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "label": "Financial Tracker MVP", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "document", + "norm_label": "financial tracker mvp", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 1-277", + "source_url": null + }, + { + "id": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "label": "Versioned Statement Imports", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "rationale", + "norm_label": "versioned statement imports", + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 1-30", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_modular_monolith", + "label": "Modular Monolith", + "author": null, + "captured_at": null, + "community": 30, + "community_name": "MVP and Import Design", + "contributor": null, + "file_type": "rationale", + "norm_label": "modular monolith", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 68-92", + "source_url": null + }, + { + "id": "docs_adr_0003_versioned_statement_imports_immutable_statement_document", + "label": "Immutable Statement Document", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "immutable statement document", + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 13-14", + "source_url": null + }, + { + "id": "docs_adr_0004_provider_neutral_encrypted_data_boundary_envelope_encryption", + "label": "Per-File Envelope Encryption", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "per-file envelope encryption", + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "line 14", + "source_url": null + }, + { + "id": "docs_adr_0004_provider_neutral_encrypted_data_boundary_rf_data_residency", + "label": "Russian Federation Data Residency", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "russian federation data residency", + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "lines 9-13", + "source_url": null + }, + { + "id": "docs_operations_backup_and_restore_kek_backup", + "label": "Mandatory KEK Backup", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "mandatory kek backup", + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 16-18", + "source_url": null + }, + { + "id": "docs_operations_backup_and_restore_restore_drill", + "label": "Quarterly Restore Drill", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "quarterly restore drill", + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 31-38", + "source_url": null + }, + { + "id": "infra_readme_provider_neutral_infrastructure", + "label": "Provider-Neutral Infrastructure", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "concept", + "norm_label": "provider-neutral infrastructure", + "source_file": "infra/README.md", + "source_location": "lines 64-69", + "source_url": null + }, + { + "id": "docs_operations_backup_and_restore_backup_and_restore", + "label": "Backup and Restore Runbook", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "document", + "norm_label": "backup and restore runbook", + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 1-38", + "source_url": null + }, + { + "id": "docs_adr_0004_provider_neutral_encrypted_data_boundary_provider_neutral_boundary", + "label": "Provider-Neutral Data Boundary", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Data Security and Recovery", + "contributor": null, + "file_type": "rationale", + "norm_label": "provider-neutral data boundary", + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "lines 1-29", + "source_url": null + }, + { + "id": "context_internal_transfer", + "label": "Internal Transfer", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "internal transfer", + "source_file": "CONTEXT.md", + "source_location": "line 9", + "source_url": null + }, + { + "id": "context_operation", + "label": "Operation", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "operation", + "source_file": "CONTEXT.md", + "source_location": "line 7", + "source_url": null + }, + { + "id": "context_posting", + "label": "Posting", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "posting", + "source_file": "CONTEXT.md", + "source_location": "line 8", + "source_url": null + }, + { + "id": "context_refund", + "label": "Refund", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "refund", + "source_file": "CONTEXT.md", + "source_location": "line 10", + "source_url": null + }, + { + "id": "docs_adr_0002_journal_and_budget_reserves_derived_balances", + "label": "Derived Account Balances", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "derived account balances", + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 13-15", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_ledger_invariants", + "label": "Ledger Invariants", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "concept", + "norm_label": "ledger invariants", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 115-125", + "source_url": null + }, + { + "id": "docs_adr_0002_journal_and_budget_reserves_operations_postings_journal", + "label": "Operations and Postings Journal", + "author": null, + "captured_at": null, + "community": 32, + "community_name": "Ledger Concepts", + "contributor": null, + "file_type": "rationale", + "norm_label": "operations and postings journal", + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 1-29", + "source_url": null + }, + { + "id": "context_parse_run", + "label": "Parse Run", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "parse run", + "source_file": "CONTEXT.md", + "source_location": "line 12", + "source_url": null + }, + { + "id": "context_source_record", + "label": "Source Record", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "source record", + "source_file": "CONTEXT.md", + "source_location": "line 13", + "source_url": null + }, + { + "id": "context_statement_import", + "label": "Statement Import", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "statement import", + "source_file": "CONTEXT.md", + "source_location": "line 11", + "source_url": null + }, + { + "id": "docs_adr_0003_versioned_statement_imports_parser_versioning", + "label": "Parser Versioning and Review Diff", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "parser versioning and review diff", + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 17-18", + "source_url": null + }, + { + "id": "docs_parsers_private_fixture_gate_layout_drift_regating", + "label": "Layout Drift Re-Gating", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "layout drift re-gating", + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 34-45", + "source_url": null + }, + { + "id": "docs_parsers_private_fixture_gate_private_statement_contract", + "label": "Private Statement Test Contract", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "concept", + "norm_label": "private statement test contract", + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 7-17", + "source_url": null + }, + { + "id": "docs_parsers_private_fixture_gate_private_fixture_gate", + "label": "Parser Private Fixture Gate", + "author": null, + "captured_at": null, + "community": 33, + "community_name": "Parser Versioning", + "contributor": null, + "file_type": "document", + "norm_label": "parser private fixture gate", + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 1-45", + "source_url": null + }, + { + "id": "docs_adr_0004_provider_neutral_encrypted_data_boundary_secret_boundary", + "label": "Server-Side Secret Boundary", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "concept", + "norm_label": "server-side secret boundary", + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "lines 16-18", + "source_url": null + }, + { + "id": "frontend_readme_accessible_responsive_ui", + "label": "Accessible Responsive UI", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "concept", + "norm_label": "accessible responsive ui", + "source_file": "frontend/README.md", + "source_location": "lines 60-67", + "source_url": null + }, + { + "id": "frontend_readme_ru_en_localization", + "label": "RU and EN Localization", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "concept", + "norm_label": "ru and en localization", + "source_file": "frontend/README.md", + "source_location": "lines 3-14", + "source_url": null + }, + { + "id": "frontend_readme_space_scoped_query_keys", + "label": "Space-Scoped Query Keys", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "concept", + "norm_label": "space-scoped query keys", + "source_file": "frontend/README.md", + "source_location": "lines 52-58", + "source_url": null + }, + { + "id": "frontend_readme_typed_api_client", + "label": "Typed Same-Origin API Client", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "concept", + "norm_label": "typed same-origin api client", + "source_file": "frontend/README.md", + "source_location": "lines 35-50", + "source_url": null + }, + { + "id": "frontend_index_grossbukh_app_shell", + "label": "Grossbukh Application Shell", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "document", + "norm_label": "grossbukh application shell", + "source_file": "frontend/index.html", + "source_location": "lines 1-14", + "source_url": null + }, + { + "id": "frontend_readme_finance_frontend", + "label": "Finance Frontend SPA", + "author": null, + "captured_at": null, + "community": 34, + "community_name": "Frontend Architecture", + "contributor": null, + "file_type": "document", + "norm_label": "finance frontend spa", + "source_file": "frontend/README.md", + "source_location": "lines 1-70", + "source_url": null + }, + { + "id": "docs_operations_beta_release_runbook_incident_response", + "label": "Financial Data Incident Response", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "concept", + "norm_label": "financial data incident response", + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 32-35", + "source_url": null + }, + { + "id": "docs_operations_beta_release_runbook_launch_gates", + "label": "Closed Beta Launch Gates", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "concept", + "norm_label": "closed beta launch gates", + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 6-17", + "source_url": null + }, + { + "id": "docs_operations_beta_release_runbook_launch_sequence", + "label": "Production Launch Sequence", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "concept", + "norm_label": "production launch sequence", + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 19-24", + "source_url": null + }, + { + "id": "docs_parsers_private_fixture_gate_adapter_beta_eligibility", + "label": "Adapter Beta Eligibility", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "concept", + "norm_label": "adapter beta eligibility", + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 19-32", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_release_gates", + "label": "MVP Release Gates", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "concept", + "norm_label": "mvp release gates", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 256-275", + "source_url": null + }, + { + "id": "docs_operations_beta_release_runbook_closed_beta_release", + "label": "Closed Beta Release Runbook", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "document", + "norm_label": "closed beta release runbook", + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 1-40", + "source_url": null + }, + { + "id": "docs_operations_beta_release_runbook_forward_fix_rollback", + "label": "Forward-Fix Rollback Policy", + "author": null, + "captured_at": null, + "community": 35, + "community_name": "Beta Release Governance", + "contributor": null, + "file_type": "rationale", + "norm_label": "forward-fix rollback policy", + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 26-30", + "source_url": null + }, + { + "id": "docs_adr_0001_financial_space_ownership_and_rls_break_glass_access", + "label": "Audited Break-Glass Access", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "concept", + "norm_label": "audited break-glass access", + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 20-26", + "source_url": null + }, + { + "id": "docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity", + "label": "Cross-Space Referential Integrity", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "concept", + "norm_label": "cross-space referential integrity", + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "line 19", + "source_url": null + }, + { + "id": "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "label": "Defense-in-Depth Authorization", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "concept", + "norm_label": "defense-in-depth authorization", + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 15-20", + "source_url": null + }, + { + "id": "docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls", + "label": "Transaction-Local RLS Context", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "concept", + "norm_label": "transaction-local rls context", + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 16-18", + "source_url": null + }, + { + "id": "kilo_plans_1789034192214_financial_tracker_mvp_tenant_boundary", + "label": "Tenant Boundary", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "concept", + "norm_label": "tenant boundary", + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 105-113", + "source_url": null + }, + { + "id": "docs_adr_0001_financial_space_ownership_and_rls_space_ownership", + "label": "Financial Space Ownership", + "author": null, + "captured_at": null, + "community": 37, + "community_name": "Tenant Isolation", + "contributor": null, + "file_type": "rationale", + "norm_label": "financial space ownership", + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 1-32", + "source_url": null + }, + { + "id": "docs_adr_0004_provider_neutral_encrypted_data_boundary_crypto_shredding", + "label": "Crypto-Shredded Deletion", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "concept", + "norm_label": "crypto-shredded deletion", + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "line 15", + "source_url": null + }, + { + "id": "docs_operations_backup_and_restore_restore_procedure", + "label": "Disaster Restore Procedure", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "concept", + "norm_label": "disaster restore procedure", + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 20-29", + "source_url": null + }, + { + "id": "docs_operations_deletion_ledger_delayed_space_deletion", + "label": "Thirty-Day Space Deletion", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "concept", + "norm_label": "thirty-day space deletion", + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 13-21", + "source_url": null + }, + { + "id": "docs_operations_deletion_ledger_idempotent_purge", + "label": "Idempotent Resumable Purge", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "concept", + "norm_label": "idempotent resumable purge", + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 32-36", + "source_url": null + }, + { + "id": "docs_operations_deletion_ledger_post_restore_replay", + "label": "Post-Restore Deletion Replay", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "concept", + "norm_label": "post-restore deletion replay", + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 23-30", + "source_url": null + }, + { + "id": "docs_operations_deletion_ledger_deletion_ledger", + "label": "Durable Deletion Ledger", + "author": null, + "captured_at": null, + "community": 38, + "community_name": "Deletion and Restore", + "contributor": null, + "file_type": "document", + "norm_label": "durable deletion ledger", + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 1-36", + "source_url": null + }, + { + "id": "context_expected_income", + "label": "Expected Income", + "author": null, + "captured_at": null, + "community": 43, + "community_name": "Income Classification", + "contributor": null, + "file_type": "concept", + "norm_label": "expected income", + "source_file": "CONTEXT.md", + "source_location": "line 22", + "source_url": null + }, + { + "id": "context_income_source", + "label": "Income Source", + "author": null, + "captured_at": null, + "community": 43, + "community_name": "Income Classification", + "contributor": null, + "file_type": "concept", + "norm_label": "income source", + "source_file": "CONTEXT.md", + "source_location": "line 23", + "source_url": null + }, + { + "id": "frontend_public_favicon_svg", + "label": "Favicon SVG (ledger lines icon)", + "author": null, + "captured_at": null, + "community": 52, + "community_name": "Favicon Design", + "contributor": null, + "file_type": "image", + "norm_label": "favicon svg (ledger lines icon)", + "source_file": "frontend/public/favicon.svg", + "source_location": "lines 1-7", + "source_url": null + }, + { + "id": "frontend_public_favicon_svg_ledger_lines_design", + "label": "Ledger Lines Icon Design", + "author": null, + "captured_at": null, + "community": 52, + "community_name": "Favicon Design", + "contributor": null, + "file_type": "rationale", + "norm_label": "ledger lines icon design", + "source_file": "frontend/public/favicon.svg", + "source_location": "lines 2-6", + "source_url": null + }, + { + "id": "context_payee", + "label": "Payee", + "author": null, + "captured_at": null, + "community": 56, + "community_name": "Payee Concept", + "contributor": null, + "file_type": "concept", + "norm_label": "payee", + "source_file": "CONTEXT.md", + "source_location": "line 14", + "source_url": null + } + ], + "links": [ + { + "source": "backend_app_analytics_router_balances", + "target": "backend_app_analytics_service_balances", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/router.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_cash_flow", + "target": "backend_app_analytics_service_cash_flow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/router.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_category_spend", + "target": "backend_app_analytics_service_category_spend", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/router.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_plan_fact", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/router.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_plan_fact", + "target": "backend_app_analytics_service_plan_fact", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/router.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_balances", + "target": "backend_app_ledger_service_account_balance", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/service.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_category_spend", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/service.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_plan_fact", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/service.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_plan_fact", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/analytics/service.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service_record", + "target": "backend_app_audit_models_auditevent", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/audit/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_service_set_assignments", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L206", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_service_list_categories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_service_close_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L274", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L275", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_service_close_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L276", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L277", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_frontend_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L278", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L292", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L293", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_service_copy_previous_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L294", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L295", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_frontend_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L296", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L266", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_service_copy_previous_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L267", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_service_create_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L238", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_service_add_expected_income", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L239", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_service_fund", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L219", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_service_fund", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L189", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_categories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L198", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_parse_month", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_parse_month", + "target": "backend_app_budgeting_service_validate_year_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_period_for", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L257", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_service_reopen_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L258", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L283", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L284", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_service_reopen_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L285", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L286", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_frontend_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L287", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_frontend_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_parse_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_period_for", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L168", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_service_set_assignments", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_categories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L176", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_service_require_open", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L621", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L623", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L624", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "expectedincome", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L624", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_budgeting_service_get_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L534", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L536", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L538", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_service_require_open", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L713", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_service_previous_ym", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L714", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L731", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L736", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L757", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L767", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_period_bounds", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_closure_snapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_previous_ym", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L285", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_balance_until", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L310", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L338", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_close_blockers", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L424", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_require_open", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L812", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_previous_ym", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L813", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L820", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_get_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L823", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_models_planassignment", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L833", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L846", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "expectedincome", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L846", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_shift_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L849", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L857", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L488", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_ledger_models_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L489", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_ensure_credit_reserve_category", + "target": "backend_app_ledger_models_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L511", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_service_require_open", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L689", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L691", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_service_get_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L694", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L695", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_category", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L475", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_or_create_period", + "target": "backend_app_budgeting_service_validate_year_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_or_create_period", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_period", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L650", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L656", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L663", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L667", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_period_bounds", + "target": "backend_app_budgeting_service_py_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_budgeting_service_get_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L556", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L784", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L799", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_require_open", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L467", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_service_require_open", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L574", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_service_get_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L577", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L579", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L582", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_models_planassignment", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L589", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L600", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_shift_month", + "target": "backend_app_budgeting_service_py_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_validate_year_month", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_add_alias", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_add_alias", + "target": "backend_app_categorization_models_payeealias", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_ensure_income_source", + "target": "backend_app_categorization_models_incomesource", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_income_source", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_or_create_payee", + "target": "backend_app_categorization_models_payee", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_or_create_payee", + "target": "backend_app_categorization_service_add_alias", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_set_payee_rule", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_set_payee_rule", + "target": "backend_app_categorization_service_rule_category_for_payee", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_set_payee_rule", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/categorization/service.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "backend_app_config_get_settings", + "target": "backend_app_config_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/config.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_db", + "target": "backend_app_db_session_get_session_factory", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_engine", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_session_factory", + "target": "backend_app_db_session_get_engine", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_session_factory", + "target": "backend_app_db_session_py_sessionmaker", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_session_scope", + "target": "backend_app_db_session_get_session_factory", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_session_scope", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/db/session.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_dependencies_requestcontext", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "backend_app_errors_unauthorized", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "backend_app_identity_service_get_active_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_require_csrf", + "target": "backend_app_security_constant_time_equals", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_require_csrf", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/dependencies.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_errors_bad_request", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_errors_conflict", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_errors_forbidden", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_errors_not_found", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_errors_unauthorized", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "backend_app_errors_unprocessable", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/errors.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_service_consume_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_export_status", + "target": "backend_app_exports_service_get_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_service_request_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_tasks_enqueue_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_service_get_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/router.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_exports_service_csv_bytes", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_imports_blob_new_object_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_exports_service_get_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_exports_service_json_rows", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_cancel_deletion", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_exports_service_get_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_imports_crypto_decrypt_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_get_export", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_purge_due_spaces", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_purge_due_spaces", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L189", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_request_export", + "target": "backend_app_exports_models_dataexport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_schedule_deletion", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_schedule_deletion", + "target": "backend_app_exports_models_deletionledger", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/service.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_build_export_task", + "target": "backend_app_db_session_session_scope", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_build_export_task", + "target": "backend_app_exports_service_build_export", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_purge_due_spaces_task", + "target": "backend_app_db_session_session_scope", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_purge_due_spaces_task", + "target": "backend_app_exports_service_purge_due_spaces", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_identity_mailer_send_token_email", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/mailer.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_service_accept_invitation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_service_create_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_router_set_auth_cookies", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_service_reset_password", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_service_create_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_router_set_auth_cookies", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_security_constant_time_equals", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_service_create_invitation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_ratelimit_allow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_service_authenticate", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_service_create_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_set_auth_cookies", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_identity_service_revoke_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_ratelimit_allow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_service_create_password_reset", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_set_auth_cookies", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/router.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_identity_service_validate_profile", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_errors_unauthorized", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_identity_models_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_identity_service_py_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_security_hash_password", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_spaces_service_create_space", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "backend_app_spaces_models_membership", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_authenticate", + "target": "backend_app_identity_service_normalize_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_authenticate", + "target": "backend_app_security_verify_password", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_authenticate", + "target": "backend_app_errors_unauthorized", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_identity_service_normalize_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_security_new_token", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_identity_models_invitation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_identity_service_normalize_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_security_new_token", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_identity_models_passwordreset", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_security_new_token", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_identity_models_session", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_get_active_session", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_get_active_session", + "target": "backend_app_errors_unauthorized", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_security_token_digest", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L172", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_errors_unauthorized", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L178", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_security_hash_password", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_revoke_session", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L144", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_validate_profile", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/identity/service.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_detect", + "target": "backend_app_imports_adapters_alfa_xlsx_scan_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_readers_open_xlsx", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_get_settings_row_cap", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_find_header", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_rows_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_find_account_value", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_base_account_fingerprint", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_parse_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_base_amount_to_kopecks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_alfa_xlsx_cell_str", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_find_header", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_get_settings_row_cap", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_scan_text", + "target": "backend_app_imports_readers_open_xlsx", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_scan_text", + "target": "backend_app_imports_adapters_alfa_xlsx_rows_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_amount_to_kopecks", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_record_fingerprint", + "target": "backend_app_imports_adapters_base_normalize_description", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init_detect_adapter", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_first_page_text", + "target": "backend_app_imports_readers_open_pdf", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_first_page_text", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_detect", + "target": "backend_app_imports_adapters_ozon_pdf_first_page_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "target": "backend_app_imports_readers_open_pdf", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "target": "backend_app_imports_adapters_base_account_fingerprint", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "target": "backend_app_imports_adapters_ozon_pdf_parse_row", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_parse_row", + "target": "backend_app_imports_adapters_base_amount_to_kopecks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_parse_row", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_get_blob_store", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_get_blob_store", + "target": "backend_app_imports_blob_s3blobstore", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_get_blob_store", + "target": "backend_app_imports_blob_localdirectoryblobstore", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore_delete", + "target": "backend_app_imports_blob_localdirectoryblobstore_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore_get", + "target": "backend_app_imports_blob_localdirectoryblobstore_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore_init", + "target": "path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore_put", + "target": "backend_app_imports_blob_localdirectoryblobstore_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_s3blobstore_init", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/blob.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app_create_celery_app", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app_create_celery_app", + "target": "celery", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_decrypt_file", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_decrypt_file", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_encrypt_file", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_encrypt_file", + "target": "backend_app_imports_crypto_encryptedfile", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_open_pdf", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_open_pdf", + "target": "backend_app_imports_readers_quota_error", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_open_xlsx", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_open_xlsx", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_open_xlsx", + "target": "backend_app_imports_readers_quota_error", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers_quota_error", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/readers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L192", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_service_set_review_confirmation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_service_confirm_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_detail", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_service_decide_source_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_detail", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L181", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_service_delete_source_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L245", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_router_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_service_document_detail", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_imports", + "target": "backend_app_imports_router_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_imports", + "target": "backend_app_imports_service_list_documents", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_service_prepare_reparse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L210", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_tasks_enqueue_process_statement", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L222", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_detail", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L232", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_service_revert_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L237", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_detail", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_service_set_review_confirmation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_service_create_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_tasks_enqueue_process_statement", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_summary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/router.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_build_candidates", + "target": "backend_app_imports_models_dedupcandidate", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L193", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L495", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L500", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_ledger_service_create_transfer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L614", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L628", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_ledger_service_create_income", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L682", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_ledger_service_create_expense", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L694", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L715", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_adapters_init_magic_kind", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_blob_new_object_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_models_statementdocument", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L391", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L402", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L404", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L909", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L914", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document_detail", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L345", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L728", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L730", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L740", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_db_session_session_scope", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L238", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L239", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_models_parserun", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L243", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_errors_apperror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_crypto_decrypt_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L257", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_adapters_init_magic_kind", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_adapters_init_detect_adapter", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L267", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_service_draft_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_service_source_from_row", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L302", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_service_build_candidates", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L307", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L755", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L798", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_ledger_service_create_income", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L848", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_ledger_service_create_expense", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L865", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L881", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L896", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_imports_service_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L461", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L464", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L466", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_source_from_row", + "target": "backend_app_imports_models_sourcerecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_source_from_row", + "target": "backend_app_imports_adapters_base_record_fingerprint", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks_process_statement_task", + "target": "backend_app_imports_service_process_statement_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_accounts", + "target": "backend_app_ledger_router_account_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_account_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_account_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_categorization_service_get_or_create_payee", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_categorization_service_ensure_income_source", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L245", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_operation_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L246", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operation_json", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_operation_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L168", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_account_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_operation_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L278", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_operation_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/router.py", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_apply_suggestion", + "target": "backend_app_categorization_service_find_payee_by_description", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_apply_suggestion", + "target": "backend_app_categorization_service_rule_category_for_payee", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_ledger_service_get_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L465", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_ledger_service_account_balance", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L468", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L469", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L474", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_ledger_models_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_ledger_service_py_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_existing_by_request_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_require_active_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_validate_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_models_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_apply_suggestion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_models_posting", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L177", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L208", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_existing_by_request_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_require_active_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L212", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_categorization_service_get_income_source", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L214", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L215", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_models_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L216", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L216", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_models_posting", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L231", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L238", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L336", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_existing_by_request_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L337", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L347", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L349", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L350", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_refunded_kopecks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L351", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_models_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L358", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L358", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_models_posting", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L373", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L380", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_existing_by_request_key", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L265", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_require_active_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L268", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L270", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_models_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_models_posting", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L286", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L301", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_ledger_service_get_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L485", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L497", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_ensure_period_open_for_date", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L404", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_account", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_operation", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_require_active_account", + "target": "backend_app_ledger_service_get_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_require_active_account", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_to_kopecks", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_get_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L440", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L442", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L443", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_validate_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L446", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_validate_category", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_validate_category", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_ledger_service_get_operation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L414", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L417", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ledger/service.py", + "source_location": "L420", + "weight": 1.0 + }, + { + "source": "backend_app_main_app_error_handler", + "target": "jsonresponse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/main.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_main_healthz", + "target": "backend_app_main_health", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/main.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_main_readiness", + "target": "backend_app_db_session_get_engine", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/main.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_app_main_stale_data_handler", + "target": "jsonresponse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/main.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_ratelimit_allow", + "target": "backend_app_config_get_settings", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/ratelimit.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_security_constant_time_equals", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_service_require_owner", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_exports_service_cancel_deletion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletion_status", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletion_status", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_service_require_owner", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_identity_service_create_invitation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_errors_bad_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_service_require_owner", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_exports_service_schedule_deletion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_spaces_models_financialspace", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_spaces_models_membership", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_audit_service_record", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_membership", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_errors_not_found", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_spaces_service_get_membership", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_errors_conflict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_require_owner", + "target": "backend_app_errors_forbidden", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/app/spaces/service.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_client", + "target": "backend_tests_conftest_py_testclient", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/conftest.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db", + "target": "backend_tests_conftest_db_factory", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/conftest.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db_factory", + "target": "backend_tests_conftest_py_sessionmaker", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/conftest.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_seed", + "target": "backend_app_identity_models_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_seed", + "target": "backend_app_spaces_service_create_space", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_tests_test_budget_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_create_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_set_assignments", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_add_expected_income", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_copy_previous_month", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "target": "backend_tests_test_budget_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "target": "backend_app_budgeting_service_close_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "target": "backend_tests_test_budget_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "target": "backend_app_budgeting_service_close_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "target": "backend_app_budgeting_service_reopen_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_tests_test_budget_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_ledger_service_create_expense", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_budgeting_service_close_period", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_budget.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_ready_document", + "target": "backend_tests_test_imports_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_ready_document", + "target": "backend_app_imports_models_statementdocument", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_ready_document", + "target": "backend_app_imports_models_parserun", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_ready_document", + "target": "backend_app_imports_models_sourcerecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_seed", + "target": "backend_app_identity_models_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_seed", + "target": "backend_app_spaces_service_create_space", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_seed", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirm_and_revert_are_idempotent", + "target": "backend_tests_test_imports_ready_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirm_rejects_arithmetic_mismatch", + "target": "backend_tests_test_imports_ready_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirmed_import_must_be_reverted_before_reparse", + "target": "backend_tests_test_imports_ready_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "target": "backend_tests_test_imports_ready_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "target": "backend_app_imports_models_statementdocument", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L170", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "target": "backend_app_imports_models_parserun", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "target": "backend_app_imports_models_sourcerecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_invalid_direction_is_critical", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_tests_test_imports_ready_document", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_app_imports_models_statementdocument", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_app_imports_models_parserun", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L246", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_app_imports_models_sourcerecord", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L255", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_unexpected_parser_failure_reaches_terminal_state", + "target": "backend_tests_test_imports_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_unexpected_parser_failure_reaches_terminal_state", + "target": "backend_app_imports_models_statementdocument", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_imports.py", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_seed", + "target": "backend_app_identity_models_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_seed", + "target": "backend_app_spaces_service_create_space", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_tests_test_ledger_properties_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_ledger_service_create_expense", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_ledger_service_account_balance", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_ledger_service_create_refund", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_tests_test_ledger_properties_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_app_spaces_service_create_space", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_app_ledger_service_get_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "target": "backend_tests_test_ledger_properties_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "target": "backend_app_ledger_service_create_income", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "target": "backend_app_ledger_service_account_balance", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "backend_tests_test_ledger_properties_seed", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "backend_app_ledger_service_create_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "backend_app_ledger_service_create_transfer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "backend_app_ledger_service_account_balance", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "backend_app_spaces_models_financialspace", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "backend_app_ledger_models_account", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "backend_app_db_session_set_space_context", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_s3_blob_round_trip", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api_main", + "target": "frontend_scripts_generate_api_firstreadable", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_request", + "target": "frontend_src_api_client_apierror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_request", + "target": "frontend_src_api_client_toapierror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_request", + "target": "frontend_src_api_client_readcsrftoken", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_request", + "target": "frontend_src_api_client_buildurl", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_toapierror", + "target": "frontend_src_api_client_parseerrorenvelope", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_toapierror", + "target": "frontend_src_api_client_apierror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/api/client.ts", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_requireauth", + "target": "frontend_src_hooks_useauth_useme", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout_applayout", + "target": "frontend_src_hooks_useauth_useme", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout_applayout", + "target": "frontend_src_hooks_useauth_uselogout", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_langswitcher_langswitcher", + "target": "frontend_src_i18n_index_setlocale", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts_useactiveaccounts", + "target": "frontend_src_hooks_useaccounts_useaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts_usearchiveaccount", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts_usecreateaccount", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth_useacceptinvite", + "target": "frontend_src_hooks_useauth_usesessionmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth_useconfirmpasswordreset", + "target": "frontend_src_hooks_useauth_usesessionmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth_uselogin", + "target": "frontend_src_hooks_useauth_usesessionmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_useclosemonth", + "target": "frontend_src_hooks_usebudget_useperiodmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_usecopypreviousmonth", + "target": "frontend_src_hooks_usebudget_useperiodmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_usefundcategory", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_usefundcategory", + "target": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_useperiodmutation", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_useperiodmutation", + "target": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_usereopenmonth", + "target": "frontend_src_hooks_usebudget_useperiodmutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_useupdateplan", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget_useupdateplan", + "target": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_useconfirmimport", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_useconfirmimport", + "target": "frontend_src_hooks_useimports_useimporterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_useimporterrortoaster", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_usereparseimport", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_usereparseimport", + "target": "frontend_src_hooks_useimports_useimporterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_userevertimport", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_userevertimport", + "target": "frontend_src_hooks_useimports_useimporterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_usesaverowdecision", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_useuploadimport", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports_useuploadimport", + "target": "frontend_src_hooks_useimports_useimporterrortoaster", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations_usecategorizeoperation", + "target": "frontend_src_hooks_useoperations_useledgermutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations_usecreateoperation", + "target": "frontend_src_hooks_useoperations_useledgermutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations_useledgermutation", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations_usevoidoperation", + "target": "frontend_src_hooks_useoperations_useledgermutation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle_usecanceldeletion", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle_userequestdeletion", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle_userequestexport", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index_createi18n", + "target": "frontend_src_i18n_index_detectlocale", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index_detectlocale", + "target": "frontend_src_i18n_index_storedlocale", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage_acceptinvitepage", + "target": "frontend_src_hooks_useauth_useacceptinvite", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage_acceptinvitepage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage_accountform", + "target": "frontend_src_hooks_useaccounts_usecreateaccount", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage_accountform", + "target": "frontend_src_pages_accountspage_usememoschema", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage_accountspage", + "target": "frontend_src_hooks_useaccounts_useaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage_accountspage", + "target": "frontend_src_hooks_useaccounts_usearchiveaccount", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticscategoryspend", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticscashflow", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticsbalances", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticsplanfact", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_budgetpage", + "target": "frontend_src_hooks_usebudget_usebudgetsummary", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_budgetpage", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_budgetpage", + "target": "frontend_src_hooks_usebudget_useclosemonth", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_budgetpage", + "target": "frontend_src_hooks_usebudget_usereopenmonth", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L130", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_budgetpage", + "target": "frontend_src_hooks_usebudget_usecopypreviousmonth", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_fundmodal", + "target": "frontend_src_hooks_usebudget_usefundcategory", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage_planmodal", + "target": "frontend_src_hooks_usebudget_useupdateplan", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_confirmmodal", + "target": "frontend_src_hooks_useimports_useconfirmimport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_importdetailpage", + "target": "frontend_src_hooks_useimports_usesaverowdecision", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_importdetailpage", + "target": "frontend_src_pages_importdetailpage_stepindexfor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L142", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_importdetailpage", + "target": "frontend_src_hooks_useimports_useimport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_importdetailpage", + "target": "frontend_src_hooks_useimports_usereparseimport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage_importdetailpage", + "target": "frontend_src_hooks_useimports_userevertimport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage_importspage", + "target": "frontend_src_hooks_useimports_useimports", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage_uploadmodal", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage_uploadmodal", + "target": "frontend_src_hooks_useimports_useuploadimport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage_loginpage", + "target": "frontend_src_hooks_useauth_uselogin", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage_loginpage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_expenseform", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_expenseform", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_expenseform", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_expenseform", + "target": "frontend_src_pages_operationspage_amountfield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_expenseform", + "target": "frontend_src_pages_operationspage_datefield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_incomeform", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_incomeform", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_incomeform", + "target": "frontend_src_pages_operationspage_amountfield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L149", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_incomeform", + "target": "frontend_src_pages_operationspage_datefield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_operationspage", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L453", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_operationspage", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L481", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_refundform", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L299", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_refundform", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L300", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_refundform", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L301", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_refundform", + "target": "frontend_src_pages_operationspage_amountfield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L304", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_refundform", + "target": "frontend_src_pages_operationspage_datefield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_transferform", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L219", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_transferform", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_transferform", + "target": "frontend_src_pages_operationspage_amountfield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L225", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_transferform", + "target": "frontend_src_pages_operationspage_datefield", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage_voidmodal", + "target": "frontend_src_hooks_useoperations_usevoidoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L407", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage_resetpasswordpage", + "target": "frontend_src_hooks_useauth_userequestpasswordreset", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage_resetpasswordpage", + "target": "frontend_src_hooks_useauth_useconfirmpasswordreset", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage_reviewqueuepage", + "target": "frontend_src_hooks_useimports_useimports", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage_reviewqueuepage", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage_reviewqueuepage", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage_uncategorizedrow", + "target": "frontend_src_hooks_useoperations_usecategorizeoperation", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage_deletionform", + "target": "frontend_src_hooks_usespacelifecycle_userequestdeletion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage_settingspage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_usespacedeletion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_userequestexport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_usecanceldeletion", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "frontend_src_test_helpers_renderwithproviders", + "target": "frontend_src_test_helpers_createtestqueryclient", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test_renderlogin", + "target": "frontend_src_test_helpers_renderwithproviders", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_balances", + "target": "backend_app_analytics_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/analytics/router.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_cash_flow", + "target": "backend_app_analytics_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/analytics/router.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_category_spend", + "target": "backend_app_analytics_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/analytics/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_plan_fact", + "target": "backend_app_analytics_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/analytics/router.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "put", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L272", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L290", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L229", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L216", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L255", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L281", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_py_patch", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/exports/router.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_export_status", + "target": "backend_app_exports_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/exports/router.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/exports/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_build_export_task", + "target": "backend_app_exports_tasks_py_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_purge_due_spaces_task", + "target": "backend_app_exports_tasks_py_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_me", + "target": "backend_app_identity_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/identity/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_py_patch", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_py_delete", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L243", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_imports", + "target": "backend_app_imports_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L208", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/router.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks_process_statement_task", + "target": "backend_app_imports_tasks_py_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_accounts", + "target": "backend_app_ledger_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_delete_account", + "target": "backend_app_ledger_router_py_delete", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_py_patch", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_py_patch", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L263", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/ledger/router.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "backend_app_main_app_error_handler", + "target": "exception_handler", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_main_health", + "target": "backend_app_main_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_main_healthz", + "target": "backend_app_main_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_main_readiness", + "target": "backend_app_main_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_main_security_headers", + "target": "middleware", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_main_stale_data_handler", + "target": "exception_handler", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/main.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_router_py_delete", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/spaces/router.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_current", + "target": "backend_app_spaces_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/spaces/router.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletion_status", + "target": "backend_app_spaces_router_py_get", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/spaces/router.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/spaces/router.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_router_py_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/app/spaces/router.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_client", + "target": "fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/conftest.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db", + "target": "fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/conftest.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db_factory", + "target": "fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/conftest.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "given", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "settings", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "skipif", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_s3_blob_round_trip", + "target": "skipif", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_alfa_xlsx", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_base", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_ozon_pdf", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_rocketbank_pdf", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_emptystate", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage_accountformvalues", + "target": "frontend_src_api_types_accounttype", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "field", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service_record", + "target": "backend_app_audit_service_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/audit/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_categories", + "target": "backend_app_ledger_models_category", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L522", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_periods", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_db", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/db/session.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_session_factory", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/db/session.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_session_scope", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/db/session.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "backend_app_dependencies_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "backend_app_dependencies_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "cookie", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "session_cookie_name", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "usersession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_require_csrf", + "target": "backend_app_dependencies_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_require_csrf", + "target": "backend_app_dependencies_py_header", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/dependencies.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_router_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/identity/router.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_router_py_header", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/identity/router.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "file", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "form", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "uploadfile", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_draft_json", + "target": "backend_app_imports_service_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/service.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_list_documents", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/imports/service.py", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_header", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "ge", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "le", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "query", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_accounts", + "target": "backend_app_ledger_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/service.py", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_operations", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/ledger/service.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "backend_app_main_security_headers", + "target": "backend_app_main_py_request", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/main.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_router_py_alias", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_router_py_header", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_spaces_models_financialspace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_spaces_models_membership", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_list_spaces_for_user", + "target": "backend_app_spaces_models_financialspace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_list_spaces_for_user", + "target": "backend_app_spaces_models_membership", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/app/spaces/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_client", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/tests/conftest.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/tests/conftest.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db_factory", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "backend/tests/conftest.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_acceptinvitepage", + "target": "frontend_src_pages_acceptinvitepage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_accountspage", + "target": "frontend_src_pages_accountspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_analyticspage", + "target": "frontend_src_pages_analyticspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_budgetpage", + "target": "frontend_src_pages_budgetpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_importdetailpage", + "target": "frontend_src_pages_importdetailpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_importspage", + "target": "frontend_src_pages_importspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_loginpage", + "target": "frontend_src_pages_loginpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_notfoundpage", + "target": "frontend_src_pages_notfoundpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_operationspage", + "target": "frontend_src_pages_operationspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_resetpasswordpage", + "target": "frontend_src_pages_resetpasswordpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_reviewqueuepage", + "target": "frontend_src_pages_reviewqueuepage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router_settingspage", + "target": "frontend_src_pages_settingspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "deferred": true, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions_lib", + "target": "ref_dom", + "relation": "extends", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/tsconfig.json", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions_lib", + "target": "ref_dom_iterable", + "relation": "extends", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/tsconfig.json", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions_lib", + "target": "ref_es2022", + "relation": "extends", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/tsconfig.json", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions_types", + "target": "ref_vite_client", + "relation": "extends", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/tsconfig.json", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_include", + "target": "ref_src", + "relation": "extends", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/tsconfig.json", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/env.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/env.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_budgeting_router_parse_month", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/router.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_analytics_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_service_account_balance", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service", + "target": "backend_app_audit_models_auditevent", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_db_base_utcdatetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models_planassignment", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_imports_models_statementdocument", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L443", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_models_posting", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/models.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/models.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/models.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_models_incomesource", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_models_payee", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_models_payeealias", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_bankcategorymapping", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_incomesource", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_mcccode", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_payee", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models_payeealias", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_exports_models_dataexport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_exports_models_deletionledger", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_identity_models_invitation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_identity_models_passwordreset", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_identity_models_session", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models_dedupcandidate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models_parserun", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models_sourcerecord", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models_statementdocument", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_ledger_models_posting", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_audit_models_auditevent", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_spaces_models_financialspace", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_spaces_models_membership", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models_planassignment", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/session.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_identity_models_session", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_identity_service_get_active_session", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_security_constant_time_equals", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_spaces_models_financialspace", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_spaces_models_membership", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_db_session_get_db", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_errors_forbidden", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_errors_unauthorized", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_db_base_utcdatetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_router_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_tasks_enqueue_export", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_audit_models_auditevent", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_budgeting_models_planassignment", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_models_dataexport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_models_deletionledger", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_blob_new_object_key", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_crypto_decrypt_file", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_models_statementdocument", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_spaces_models_financialspace", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_tasks_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_db_session_session_scope", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_service_build_export", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_service_purge_due_spaces", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_identity_mailer", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/mailer.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_db_base_utcdatetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_ratelimit_allow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_security_constant_time_equals", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_errors_forbidden", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_models_invitation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_models_passwordreset", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_models_session", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_security_hash_password", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_security_new_token", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_security_token_digest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_security_verify_password", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_spaces_service_create_space", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_errors_unauthorized", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_spaces_models_membership", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_readers_open_xlsx", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base_account_fingerprint", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base_amount_to_kopecks", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_alfa_xlsx_alfacreditxlsxadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_alfa_xlsx_alfadebitxlsxadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_base_statementadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_ozon_pdf_ozoncreditpdfadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_ozon_pdf_ozondebitpdfadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_rocketbank_pdf_rocketbankdebitpdfadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_readers_open_pdf", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base_account_fingerprint", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base_amount_to_kopecks", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_rocketbank_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/blob.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/readers.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/readers.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_tasks_enqueue_process_statement", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_db_session_session_scope", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_init_detect_adapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_init_magic_kind", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_base_record_fingerprint", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_blob_new_object_key", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_crypto_decrypt_file", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models_dedupcandidate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models_parserun", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models_sourcerecord", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models_statementdocument", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_service_create_expense", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_service_create_income", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_service_create_transfer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L567", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L753", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks", + "target": "backend_app_imports_tasks_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks", + "target": "backend_app_imports_service_process_statement_document", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L243", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_categorization_models_incomesource", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_categorization_models_payee", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_models_posting", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L391", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_models_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_db_session_get_engine", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ratelimit", + "target": "backend_app_config_get_settings", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ratelimit.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_db_base_pkmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_db_base_timestampmixin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_db_base_utcdatetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_security_constant_time_equals", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_service_require_owner", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_errors_bad_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_errors_forbidden", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_py_uuid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_errors_conflict", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_errors_forbidden", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_errors_not_found", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_models_financialspace", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_models_membership", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_base_base", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_session_get_db", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_ledger_service_create_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_ledger_service_create_expense", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_spaces_service_create_space", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_add_expected_income", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_close_period", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_copy_previous_month", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_create_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_reopen_period", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service_set_assignments", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models_dedupcandidate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models_parserun", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models_sourcerecord", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models_statementdocument", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_ledger_models_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_ledger_service_create_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_spaces_service_create_space", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_models_posting", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_account_balance", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_create_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_create_expense", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_create_income", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_create_refund", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_create_transfer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service_get_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_spaces_service_create_space", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_errors_apperror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_identity_models_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_db_session_set_space_context", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_ledger_models_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_spaces_models_financialspace", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_hookform_resolvers", + "target": "hookform_resolvers", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_i18next", + "target": "i18next", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_react", + "target": "react", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_react_dom", + "target": "react_dom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_react_hook_form", + "target": "react_hook_form", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_react_i18next", + "target": "react_i18next", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_react_router_dom", + "target": "react_router_dom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_tanstack_react_query", + "target": "tanstack_react_query", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies_zod", + "target": "zod", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_eslint", + "target": "eslint", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_eslint_js", + "target": "eslint_js", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_eslint_plugin_jsx_a11y", + "target": "eslint_plugin_jsx_a11y", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_eslint_plugin_react_hooks", + "target": "eslint_plugin_react_hooks", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_globals", + "target": "globals", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_jsdom", + "target": "jsdom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_openapi_typescript", + "target": "openapi_typescript", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_testing_library_dom", + "target": "testing_library_dom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_testing_library_jest_dom", + "target": "testing_library_jest_dom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_testing_library_react", + "target": "testing_library_react", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_testing_library_user_event", + "target": "testing_library_user_event", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_types_react", + "target": "types_react", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_types_react_dom", + "target": "types_react_dom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_typescript", + "target": "typescript", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_typescript_eslint", + "target": "typescript_eslint", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_vite", + "target": "vite", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_vitejs_plugin_react", + "target": "vitejs_plugin_react", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies_vitest", + "target": "vitest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/package.json", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_client_apiclient", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_acceptinvitepayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_balancesreport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_budgetcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_budgetsummary", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_cashflowmonth", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_categoryspenditem", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_confirmimportpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_createaccountpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_createoperationpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_exportinfo", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_importdetail", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_importsummary", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_loginpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_operationfilters", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_page", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_passwordresetpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_planfactreport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_saverowdecisionpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_spacedeletionstatus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_types_operationfilters", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_app_router_approutes", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/App.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_components_ui_toaster_toastprovider", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/App.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_components_ui_spinner_spinner", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_components_layout_applayout_applayout", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_hooks_useauth_useme", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_hooks_useauth_uselogout", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_hooks_useauth_useme", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_langswitcher", + "target": "frontend_src_i18n_index_locales", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_langswitcher", + "target": "frontend_src_i18n_index_setlocale", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_errorstate", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_errorstate_errorstate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_spinner_spinner", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_types_createaccountpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_types_acceptinvitepayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_types_loginpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_types_passwordresetpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_types_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_types_confirmimportpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_types_importstatus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_types_saverowdecisionpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_types_createoperationpayload", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_types_operationfilters", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_api_types_locale", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_main", + "target": "frontend_src_app_app", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/main.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_hooks_useauth_useacceptinvite", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_fields_moneyfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_fields_selectfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_hooks_useaccounts_useaccounts", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_hooks_useaccounts_usearchiveaccount", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_hooks_useaccounts_usecreateaccount", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_api_types_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_api_types_accounttype", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_confirmdialog_confirmdialog", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticsbalances", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticscashflow", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticscategoryspend", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_hooks_useanalytics_useanalyticsplanfact", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_columnchart_columnchart", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_horizontalbars_horizontalbars", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_planfactbars_planfactbars", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_monthswitcher_monthswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_fields_moneyfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_monthswitcher_monthswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_usebudgetsummary", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_useclosemonth", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_usecopypreviousmonth", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_usefundcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_usereopenmonth", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget_useupdateplan", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_api_types_budgetcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_confirmdialog_confirmdialog", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports_useconfirmimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports_useimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports_usereparseimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports_userevertimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports_usesaverowdecision", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_api_types_rowdecision", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_confirmdialog_confirmdialog", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_hooks_useimports_useimports", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_hooks_useimports_useuploadimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_fields_selectfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_hooks_useauth_uselogin", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_notfoundpage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/NotFoundPage.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_fields_moneyfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_fields_selectfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_fields_textareafield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_modal_modal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useoperations_usevoidoperation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types_operationfilters", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types_operationkind", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types_operationstatus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_hooks_useauth_useconfirmpasswordreset", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_hooks_useauth_userequestpasswordreset", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_useoperations_usecategorizeoperation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_useimports_useimports", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_api_types_budgetcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_api_types_operation", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_useauth_useme", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_usecanceldeletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_userequestdeletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_userequestexport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_usespacelifecycle_usespacedeletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_badge_badge", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_button_button", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_api_types_account", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_pages_accountspage_accountspage", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_test_helpers_renderwithproviders", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_api_types_budgetcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_api_types_budgetsummary", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_pages_budgetpage_budgetpage", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_helpers_renderwithproviders", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_chart_accessible_table_test", + "target": "frontend_src_components_charts_horizontalbars_horizontalbars", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_chart_accessible_table_test", + "target": "frontend_src_components_charts_columnchart_columnchart", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_helpers", + "target": "frontend_src_components_ui_toaster_toastprovider", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_api_types_importdetail", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_api_types_importstatus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_hooks_useimports_useimport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_client_apierror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_endpoints_api", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_types_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_pages_loginpage_loginpage", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_helpers_renderwithproviders", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_querykeys_session_root", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_querykeys_space_root", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_types_operationfilters", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_test_setup", + "target": "frontend_src_i18n_index_i18n", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/setup.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/env.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_db_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/env.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/env.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_app_db_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/router.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_categorization_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_budgeting_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_budgeting_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/analytics/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service", + "target": "backend_app_audit_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/audit/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_audit_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_categorization_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/models.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/categorization/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_py_datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/base.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_categorization_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_exports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_imports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_audit_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_spaces_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_db_models", + "target": "backend_app_budgeting_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/db/session.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_identity_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_security", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_spaces_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/dependencies.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_tasks", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_audit_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_budgeting_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_blob", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_crypto", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_imports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_spaces_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_py_datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_imports_celery_app", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_identity_mailer", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/mailer.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_mailer", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_ratelimit", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_security", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_security", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_audit_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/identity/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_readers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "decimal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_readers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_rocketbank_pdf", + "target": "backend_app_imports_adapters_ozon_pdf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/blob.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app", + "target": "celery", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/crypto.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/models.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/readers.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/readers.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_tasks", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_audit_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_blob", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_crypto", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/service.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks", + "target": "backend_app_imports_celery_app", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_categorization_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_categorization_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_categorization_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "decimal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_audit_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_exports_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_identity_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_imports_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_ledger_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_spaces_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_analytics_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_budgeting_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/main.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_ratelimit", + "target": "backend_app_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/ratelimit.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_identity_mailer", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_security", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_dependencies", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_exports_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_identity_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_audit_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_worker", + "target": "backend_app_imports_celery_app", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/app/worker.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_main", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/conftest.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_app_budgeting_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_budget.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_spaces_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_errors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_app_identity_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_db_session", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_imports_blob", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_ledger_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_app_spaces_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_client", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L2", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L1", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_app_router", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/App.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/App.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_components_ui_spinner", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_components_layout_applayout", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/app/router.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_layout_langswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_langswitcher", + "target": "frontend_src_i18n_index", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_errorstate", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_errorstate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_spinner", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L5", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_main", + "target": "frontend_src_app", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/main.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_main", + "target": "frontend_src_i18n_index", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/main.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_components_layout_langswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_emptystate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_hooks_useaccounts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L6", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_components_ui_confirmdialog", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_hooks_useanalytics", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_columnchart", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_horizontalbars", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_charts_planfactbars", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_components_ui_monthswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_monthswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_hooks_usebudget", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L6", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_components_ui_confirmdialog", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_hooks_useimports", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_confirmdialog", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_hooks_useaccounts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_hooks_useimports", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_emptystate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_components_layout_langswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_notfoundpage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/NotFoundPage.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_emptystate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_modal", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_usebudget", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useaccounts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_hooks_useoperations", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L7", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_layout_langswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_usebudget", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_useoperations", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_hooks_useimports", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_emptystate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_querygate", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_useauth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_hooks_usespacelifecycle", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_badge", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_button", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_fields", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_layout_langswitcher", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_components_ui_pageheader", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_pages_accountspage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_test_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L4", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_pages_budgetpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_chart_accessible_table_test", + "target": "frontend_src_components_charts_horizontalbars", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_chart_accessible_table_test", + "target": "frontend_src_components_charts_columnchart", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_helpers", + "target": "frontend_src_components_ui_toaster", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L6", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_hooks_useimports", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_client", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_endpoints", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L5", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_pages_loginpage", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_querykeys", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_api_types", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L8", + "type_only": true, + "weight": 1.0 + }, + { + "source": "frontend_src_test_setup", + "target": "frontend_src_i18n_index", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "frontend/src/test/setup.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_balances", + "target": "backend_app_analytics_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_balances", + "target": "backend_app_analytics_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_cash_flow", + "target": "backend_app_analytics_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_cash_flow", + "target": "backend_app_analytics_router_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_cash_flow", + "target": "backend_app_analytics_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_category_spend", + "target": "backend_app_analytics_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_category_spend", + "target": "backend_app_analytics_router_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_category_spend", + "target": "backend_app_analytics_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_plan_fact", + "target": "backend_app_analytics_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router_plan_fact", + "target": "backend_app_analytics_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/router.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_balances", + "target": "backend_app_analytics_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_balances", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_cash_flow", + "target": "backend_app_analytics_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_cash_flow", + "target": "backend_app_analytics_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_cash_flow", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_category_spend", + "target": "backend_app_analytics_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_category_spend", + "target": "backend_app_analytics_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_category_spend", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_plan_fact", + "target": "backend_app_analytics_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service_plan_fact", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/analytics/service.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service_record", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/audit/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_router_assignmentsbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignments", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categories", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_monthbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_close_frontend", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_monthbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_frontend", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L265", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L265", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_copy_previous", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L265", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_router_categorybody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_create_category", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_expectedincomebody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expected_income", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_fundingbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_categoryfundingbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fund_category", + "target": "backend_app_budgeting_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_period_for", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_period_for", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_monthbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_reopen_frontend", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_summary", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_planbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_update_plan", + "target": "backend_app_budgeting_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_add_expected_income", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_balance_until", + "target": "backend_app_budgeting_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_balance_until", + "target": "backend_app_budgeting_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_balance_until", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_blockers", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_blockers", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_blockers", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_close_period", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_closure_snapshot", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_closure_snapshot", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_compute_period_state", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_copy_previous_month", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L479", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L479", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_create_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L479", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_ensure_credit_reserve_category", + "target": "backend_app_budgeting_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L502", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_ensure_credit_reserve_category", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L502", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_ensure_credit_reserve_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L502", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_fund", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_category", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_or_create_period", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_or_create_period", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_period", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_period", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_categories", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L522", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_categories", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L522", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_periods", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_list_periods", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_match_expected_income", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_reopen_period", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_require_open", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L465", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_budgeting_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_set_assignments", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_add_alias", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_ensure_income_source", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_find_payee_by_description", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_income_source", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_or_create_payee", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_resolve_category_name", + "target": "backend_app_ledger_models_category", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_rule_category_for_payee", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_set_payee_rule", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_session_scope", + "target": "backend_app_db_session_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/db/session.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_set_space_context", + "target": "backend_app_db_session_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/db/session.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_set_space_context", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/db/session.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_dependencies_py_currentsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/dependencies.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_context", + "target": "backend_app_dependencies_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/dependencies.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_current_session", + "target": "backend_app_dependencies_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies_require_csrf", + "target": "backend_app_dependencies_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/dependencies.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_errors_apperror_init", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_errors_bad_request", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_errors_conflict", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_errors_forbidden", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_errors_not_found", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_errors_unauthorized", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_errors_unprocessable", + "target": "backend_app_errors_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/errors.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_export_status", + "target": "backend_app_exports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_export_status", + "target": "backend_app_exports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_export_status", + "target": "backend_app_exports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_exports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_exports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_cancel_deletion", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_cancel_deletion", + "target": "backend_app_spaces_models_financialspace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_exports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_consume_export", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_get_export", + "target": "backend_app_exports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_get_export", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_purge_due_spaces", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_request_export", + "target": "backend_app_exports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_request_export", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_schedule_deletion", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_schedule_deletion", + "target": "backend_app_spaces_models_financialspace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_enqueue_export", + "target": "backend_app_exports_tasks_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_router_acceptinvitebody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_accept_invite", + "target": "backend_app_identity_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_confirm_password_reset", + "target": "backend_app_identity_router_resetbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_router_invitebody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_create_invite", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_loginbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_py_request", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_identity_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_identity_router_py_currentsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_logout", + "target": "backend_app_identity_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_me", + "target": "backend_app_identity_router_py_currentsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_router_py_request", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_identity_router_resetrequestbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_set_auth_cookies", + "target": "backend_app_identity_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/router.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_accept_invitation", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_authenticate", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "backend_app_identity_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_invitation", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_password_reset", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "backend_app_identity_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_create_session", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_get_active_session", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_revoke_session", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_revoke_session", + "target": "dbsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_record_fingerprint", + "target": "backend_app_imports_adapters_base_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_confirmbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirm", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_decisionbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decide_row", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_delete_source", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_detail", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_imports", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_imports", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_revert", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_review", + "target": "backend_app_imports_router_reviewbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_summary", + "target": "backend_app_imports_router_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_imports_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_build_candidates", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_build_candidates", + "target": "backend_app_imports_models_parserun", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_build_candidates", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L381", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L381", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_decide_source_record", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L381", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L906", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L906", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L906", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document_detail", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L344", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document_detail", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L344", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_draft_json", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_list_documents", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_list_documents", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L725", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L725", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L725", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L237", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L750", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_imports_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L750", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L750", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_source_from_row", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_source_from_row", + "target": "backend_app_imports_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks_enqueue_process_statement", + "target": "backend_app_imports_tasks_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/imports/tasks.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_account_json", + "target": "backend_app_ledger_router_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_account_json", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_accounts", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_accounts", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_archive_account", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_accountbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_account", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_operationbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_create_operation", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_delete_account", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_delete_account", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_delete_account", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_delete_account", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operation_json", + "target": "backend_app_ledger_router_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operation_json", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operations", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_account", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_operationpatchbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_patch_operation", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_void_operation", + "target": "backend_app_ledger_router_voidbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_account_balance", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_account_balance", + "target": "backend_app_ledger_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_apply_suggestion", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_apply_suggestion", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_apply_suggestion", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_account", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_expense", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_income", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_refund", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_create_transfer", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L484", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L484", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_delete_account", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L484", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_ensure_period_open_for_date", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_ensure_period_open_for_date", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_ensure_period_open_for_date", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_existing_by_request_key", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_existing_by_request_key", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_account", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_account", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_operation", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_operation", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_accounts", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_accounts", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_operations", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_operations", + "target": "backend_app_ledger_service_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_list_operations", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_refunded_kopecks", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_refunded_kopecks", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_require_active_account", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_require_active_account", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_to_kopecks", + "target": "decimal", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_validate_category", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_validate_category", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_ledger_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "backend_app_ledger_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "backend_app_main_app_error_handler", + "target": "backend_app_main_py_request", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/main.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_main_stale_data_handler", + "target": "backend_app_main_py_request", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/main.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_main_stale_data_handler", + "target": "staledataerror", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/main.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_router_py_currentsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_cancel_deletion", + "target": "backend_app_spaces_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_current", + "target": "backend_app_spaces_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletion_status", + "target": "backend_app_spaces_router_py_currentsession", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletion_status", + "target": "backend_app_spaces_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_router_memberinvitebody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_invite_member", + "target": "backend_app_spaces_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_router_deletionbody", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_router_py_context", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_router_py_csrf", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_schedule_deletion", + "target": "backend_app_spaces_router_py_db", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_create_space", + "target": "backend_app_spaces_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_membership", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_membership", + "target": "backend_app_spaces_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_spaces_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_space_for_member", + "target": "backend_app_spaces_service_py_uuid", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_list_spaces_for_user", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_list_spaces_for_user", + "target": "backend_app_spaces_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_require_owner", + "target": "backend_app_spaces_models_membership", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_client", + "target": "backend_tests_conftest_py_sessionmaker", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/conftest.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest_db", + "target": "backend_tests_conftest_py_sessionmaker", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/conftest.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_test_api_test_invite_login_and_authenticated_space", + "target": "backend_tests_test_api_py_testclient", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_api.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_tests_test_api_test_openapi_contains_critical_paths", + "target": "backend_tests_test_api_py_testclient", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_api.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_seed", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_budget.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_budget.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_budget.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_budget.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_budget.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_ready_document", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_seed", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirm_and_revert_are_idempotent", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirm_rejects_arithmetic_mismatch", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_confirmed_import_must_be_reverted_before_reparse", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports_test_unexpected_parser_failure_reaches_terminal_state", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_imports.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_seed", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_archive_category", + "target": "backend_app_ledger_models_category", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_category", + "target": "backend_app_ledger_models_category", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_get_period", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rename_category", + "target": "backend_app_ledger_models_category", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_find_payee_by_description", + "target": "backend_app_categorization_models_payee", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_get_income_source", + "target": "backend_app_categorization_models_incomesource", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_rule_category_for_payee", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/categorization/service.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcdatetime_process_bind_param", + "target": "backend_app_db_base_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/db/base.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcdatetime_process_result_value", + "target": "backend_app_db_base_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/db/base.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcnow", + "target": "backend_app_db_base_py_datetime", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/db/base.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_get_engine", + "target": "engine", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/db/session.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router_download", + "target": "backend_app_exports_router_py_response", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/exports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_get_export", + "target": "backend_app_exports_models_dataexport", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service_schedule_deletion", + "target": "backend_app_exports_service_py_datetime", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/exports/service.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_authenticate", + "target": "backend_app_identity_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_get_active_session", + "target": "backend_app_identity_models_session", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service_reset_password", + "target": "backend_app_identity_service_py_user", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/identity/service.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_parse_date", + "target": "backend_app_imports_adapters_alfa_xlsx_py_date", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_statementadapter_parse", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init_detect_adapter", + "target": "backend_app_imports_adapters_base_statementadapter", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_get_blob_store", + "target": "backend_app_imports_blob_blobstore", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/blob.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore_path", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/blob.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_confirm_document", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_delete_source_file", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L906", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_document", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_prepare_reparse", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L725", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_revert_document", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L750", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_set_review_confirmation", + "target": "backend_app_imports_models_statementdocument", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/imports/service.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_archive_account", + "target": "backend_app_ledger_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_existing_by_request_key", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_account", + "target": "backend_app_ledger_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_get_operation", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_require_active_account", + "target": "backend_app_ledger_service_py_account", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_update_operation", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_void_operation", + "target": "operation", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/ledger/service.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service_get_membership", + "target": "backend_app_spaces_models_membership", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "backend/app/spaces/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_app_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/alembic/env.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_app_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/analytics/router.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/budgeting/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_audit_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/budgeting/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/exports/router.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/identity/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_audit_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/identity/service.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/imports/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_audit_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/imports/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_categorization_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/ledger/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_categorization_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_audit_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/ledger/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_exports_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_identity_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/spaces/router.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_audit_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/app/spaces/service.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_app_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/tests/conftest.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_app_imports_service", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backend/tests/test_imports.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types_importdetail", + "target": "frontend_src_api_types_importsummary", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "type", + "source_file": "frontend/src/api/types.ts", + "source_location": "L231", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields_moneyfieldprops", + "target": "frontend_src_components_ui_fields_inputprops", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "type", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields_selectfieldprops", + "target": "frontend_src_components_ui_fields_selectprops", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "type", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields_textareafieldprops", + "target": "frontend_src_components_ui_fields_textareaprops", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "type", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields_textfieldprops", + "target": "frontend_src_components_ui_fields_inputprops", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "type", + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_alembic_env_run_migrations_offline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/alembic/env.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_alembic_env", + "target": "backend_alembic_env_run_migrations_online", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/alembic/env.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_alembic_versions_20260911_0001_initial_schema_upgrade", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema", + "target": "backend_alembic_versions_20260911_0001_initial_schema_downgrade", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_router_category_spend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/router.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_router_cash_flow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/router.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_router_plan_fact", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/router.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_router", + "target": "backend_app_analytics_router_balances", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/router.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_analytics_service_category_spend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_analytics_service_cash_flow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/service.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_analytics_service_plan_fact", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/service.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_app_analytics_service", + "target": "backend_app_analytics_service_balances", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/analytics/service.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models", + "target": "backend_app_audit_models_auditevent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_audit_service", + "target": "backend_app_audit_service_record", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_planassignment", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models", + "target": "backend_app_budgeting_models_expectedincome", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_categories", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_categorybody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_create_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_update_plan", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_fund_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_assignmentitem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_assignments", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_fund", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_expected_income", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_assignmentsbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_close", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_reopen", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_copy_previous", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L265", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_close_frontend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_fundingbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_reopen_frontend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_copy_frontend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_expectedincomebody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_period_for", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_monthbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_planbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_categoryfundingbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_parse_month", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router", + "target": "backend_app_budgeting_router_frontend_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_validate_year_month", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_period_bounds", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_shift_month", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_close_blockers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_require_open", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L465", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_get_period", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_get_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_create_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L479", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_ensure_credit_reserve_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L502", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_list_categories", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L522", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_archive_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_get_or_create_period", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_rename_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_set_assignments", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_add_expected_income", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_match_expected_income", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_fund", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L678", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_list_periods", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_close_period", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_previous_ym", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_reopen_period", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L777", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_copy_previous_month", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L809", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_closure_snapshot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service", + "target": "backend_app_budgeting_service_balance_until", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_bankcategorymapping", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_incomesource", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_payee", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_payeealias", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models", + "target": "backend_app_categorization_models_mcccode", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_get_income_source", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_ensure_income_source", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_get_or_create_payee", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_add_alias", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_find_payee_by_description", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_rule_category_for_payee", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service", + "target": "backend_app_categorization_service_set_payee_rule", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "backend_app_config", + "target": "backend_app_config_get_settings", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/config.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backend_app_config", + "target": "backend_app_config_settings", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/config.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_base", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_utcdatetime", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_utcnow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_pkmixin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_db_base", + "target": "backend_app_db_base_timestampmixin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_db_session_get_engine", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_db_session_get_session_factory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_db_session_get_db", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_db_session_set_space_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_db_session", + "target": "backend_app_db_session_session_scope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_dependencies_requestcontext", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/dependencies.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_dependencies_current_session", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/dependencies.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_dependencies_current_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/dependencies.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_dependencies", + "target": "backend_app_dependencies_require_csrf", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/dependencies.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_bad_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_unauthorized", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_forbidden", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_not_found", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_apperror", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_conflict", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_errors", + "target": "backend_app_errors_unprocessable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_exports_models_dataexport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models", + "target": "backend_app_exports_models_deletionledger", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_router_request_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/router.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_router_export_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/router.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_exports_router", + "target": "backend_app_exports_router_download", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_consume_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_schedule_deletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_cancel_deletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_purge_due_spaces", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_request_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_get_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_json_rows", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_csv_bytes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "backend_app_exports_service", + "target": "backend_app_exports_service_build_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/service.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_tasks_enqueue_export", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/tasks.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_tasks_purge_due_spaces_task", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/tasks.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks", + "target": "backend_app_exports_tasks_build_export_task", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/tasks.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_identity_mailer", + "target": "backend_app_identity_mailer_send_token_email", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/mailer.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_identity_models_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_identity_models_invitation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_identity_models_passwordreset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models", + "target": "backend_app_identity_models_session", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_request_password_reset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_confirm_password_reset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_me", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_logout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_invitebody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_acceptinvitebody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_loginbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_resetrequestbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_resetbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_set_auth_cookies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_create_invite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_accept_invite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router", + "target": "backend_app_identity_router_login", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_authenticate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_create_session", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_get_active_session", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_revoke_session", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_create_password_reset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_normalize_email", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_reset_password", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_validate_profile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_create_invitation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_identity_service", + "target": "backend_app_identity_service_accept_invitation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/service.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_get_settings_row_cap", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_scan_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_rows_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L130", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_cell_str", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L139", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_parse_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_find_header", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_find_account_value", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_alfadebitxlsxadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_alfacreditxlsxadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_sourcerow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_statementdraft", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_statementadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_amount_to_kopecks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_account_fingerprint", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_normalize_description", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base", + "target": "backend_app_imports_adapters_base_record_fingerprint", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_init_magic_kind", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_init", + "target": "backend_app_imports_adapters_init_detect_adapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/__init__.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_first_page_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_ozondebitpdfadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_ozoncreditpdfadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf", + "target": "backend_app_imports_adapters_ozon_pdf_parse_row", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_rocketbank_pdf", + "target": "backend_app_imports_adapters_rocketbank_pdf_rocketbankdebitpdfadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_imports_blob_blobstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_imports_blob_localdirectoryblobstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_imports_blob_s3blobstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_imports_blob_get_blob_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob", + "target": "backend_app_imports_blob_new_object_key", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_imports_celery_app", + "target": "backend_app_imports_celery_app_create_celery_app", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/celery_app.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_imports_crypto_encryptedfile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_imports_crypto_decrypt_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto", + "target": "backend_app_imports_crypto_shred_dek_material", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_imports_models_sourcerecordlink", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_imports_models_dedupcandidate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_imports_models_statementdocument", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_imports_models_parserun", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models", + "target": "backend_app_imports_models_sourcerecord", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_imports_readers_quota_error", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/readers.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_imports_readers_open_xlsx", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/readers.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_imports_readers", + "target": "backend_app_imports_readers_open_pdf", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/readers.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_reviewbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_review", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_decide_row", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_confirm", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_decisionbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_reparse", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_revert", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_delete_source", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_confirmbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_imports", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_upload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router", + "target": "backend_app_imports_router_detail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_draft_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_source_from_row", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_build_candidates", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_process_statement_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L237", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_list_documents", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_document_detail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L344", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_decide_source_record", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L381", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_create_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_set_review_confirmation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_confirm_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L492", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_prepare_reparse", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L725", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_revert_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L750", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service", + "target": "backend_app_imports_service_delete_source_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/service.py", + "source_location": "L906", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks", + "target": "backend_app_imports_tasks_enqueue_process_statement", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/tasks.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_imports_tasks", + "target": "backend_app_imports_tasks_process_statement_task", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/tasks.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_ledger_models_posting", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_ledger_models_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_ledger_models_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models", + "target": "backend_app_ledger_models_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_accounts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_create_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_archive_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_patch_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_delete_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_accountbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_create_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_void_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_patch_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L264", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_operationbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_voidbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_operationpatchbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_account_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router", + "target": "backend_app_ledger_router_operation_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_existing_by_request_key", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_apply_suggestion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_create_expense", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_to_kopecks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_create_income", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_create_transfer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L248", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_get_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_refunded_kopecks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_create_refund", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_get_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_ensure_period_open_for_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_void_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_update_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_require_active_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_archive_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_delete_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L484", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_list_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_validate_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_list_accounts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_account_balance", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service", + "target": "backend_app_ledger_service_create_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_app_error_handler", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_stale_data_handler", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_security_headers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_health", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_healthz", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_main", + "target": "backend_app_main_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/main.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_ratelimit", + "target": "backend_app_ratelimit_allow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ratelimit.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backend_app_security", + "target": "backend_app_security_hash_password", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/security.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_security", + "target": "backend_app_security_verify_password", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/security.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_security", + "target": "backend_app_security_new_token", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/security.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_security", + "target": "backend_app_security_token_digest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/security.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_security", + "target": "backend_app_security_constant_time_equals", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/security.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_spaces_models_financialspace", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models", + "target": "backend_app_spaces_models_membership", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_deletionbody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_memberinvitebody", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_current", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_invite_member", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_schedule_deletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_deletion_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router", + "target": "backend_app_spaces_router_cancel_deletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_create_space", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/service.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_get_membership", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/service.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_get_space_for_member", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/service.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_require_owner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/service.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_service", + "target": "backend_app_spaces_service_list_spaces_for_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/service.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_tests_conftest_db_factory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/conftest.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_tests_conftest_db", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/conftest.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_conftest", + "target": "backend_tests_conftest_client", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/conftest.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_tests_test_api", + "target": "backend_tests_test_api_test_openapi_contains_critical_paths", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_api.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_tests_test_api", + "target": "backend_tests_test_api_test_invite_login_and_authenticated_space", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_api.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_tests_test_budget_seed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_budget.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_budget.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_tests_test_budget_test_copy_previous_month_clamps_expected_day", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_budget.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_tests_test_budget_test_reopen_preserves_immutable_closure_history", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_budget.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "backend_tests_test_budget", + "target": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_budget.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_confirmed_import_must_be_reverted_before_reparse", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_invalid_direction_is_critical", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_unexpected_parser_failure_reaches_terminal_state", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_duplicate_candidate_can_reuse_unique_operation_without_client_id", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_transfer_merge_revert_restores_counterpart_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_seed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_ready_document", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_confirm_and_revert_are_idempotent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "backend_tests_test_imports", + "target": "backend_tests_test_imports_test_confirm_rejects_arithmetic_mismatch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_imports.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_tests_test_ledger_properties_test_idempotency_key_prevents_duplicate_income", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_tests_test_ledger_properties_seed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_tests_test_ledger_properties_test_transfer_postings_conserve_money", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_tests_test_ledger_properties", + "target": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3", + "target": "backend_tests_test_postgres_and_s3_test_s3_blob_round_trip", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_dependencies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_devdependencies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_private", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_version", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_allowscripts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_type", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_package", + "target": "frontend_package_scripts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_package_allowscripts", + "target": "frontend_package_allowscripts_esbuild_0_25_12", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_hookform_resolvers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_tanstack_react_query", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_i18next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_react", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_react_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_react_hook_form", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_react_i18next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_react_router_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_package_dependencies", + "target": "frontend_package_dependencies_zod", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_eslint_js", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_testing_library_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_testing_library_jest_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_testing_library_react", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_testing_library_user_event", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_types_react", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_types_react_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_vitejs_plugin_react", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_eslint", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_eslint_plugin_jsx_a11y", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_eslint_plugin_react_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_globals", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_jsdom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_openapi_typescript", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_typescript", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_typescript_eslint", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_vite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_package_devdependencies", + "target": "frontend_package_devdependencies_vitest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_typecheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_lint", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_test", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_test_watch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_api_generate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_dev", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_build", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_package_scripts", + "target": "frontend_package_scripts_preview", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/package.json", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api", + "target": "frontend_scripts_generate_api_remote_candidates", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api", + "target": "frontend_scripts_generate_api_firstreadable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api", + "target": "frontend_scripts_generate_api_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api", + "target": "frontend_scripts_generate_api_out_dir", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_scripts_generate_api", + "target": "frontend_scripts_generate_api_local_candidates", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/scripts/generate-api.mjs", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_apierror", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_apiclient", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_isapierror", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_queryvalue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_requestoptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_buildurl", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_readcsrftoken", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_errorenvelope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_parseerrorenvelope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_toapierror", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client", + "target": "frontend_src_api_client_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "frontend_src_api_endpoints", + "target": "frontend_src_api_endpoints_api", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/endpoints.ts", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "frontend_src_api_generated_schema_d", + "target": "frontend_src_api_generated_schema_d_defs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L1000", + "weight": 1.0 + }, + { + "source": "frontend_src_api_generated_schema_d", + "target": "frontend_src_api_generated_schema_d_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L1001", + "weight": 1.0 + }, + { + "source": "frontend_src_api_generated_schema_d", + "target": "frontend_src_api_generated_schema_d_paths", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_api_generated_schema_d", + "target": "frontend_src_api_generated_schema_d_webhooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L746", + "weight": 1.0 + }, + { + "source": "frontend_src_api_generated_schema_d", + "target": "frontend_src_api_generated_schema_d_components", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/generated/schema.d.ts", + "source_location": "L747", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_invalidationroots", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_querykeys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_space_root", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_session_root", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_sessioninvalidationroot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_api_querykeys", + "target": "frontend_src_api_querykeys_spaceinvalidationroot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/queryKeys.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_locale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_page", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_accounttype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_loginpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_acceptinvitepayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_accountstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_passwordresetpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_budgetstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_budgetwarning", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_budgetblocker", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_expectedincomestatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L139", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_expectedincome", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L141", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_budgetsummary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_categorykind", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_budgetcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_importstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_importsummary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_importissue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_reconciliationstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L206", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_reconciliation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L208", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_rowdecision", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L216", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_importrow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_importdetail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L231", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_saverowdecisionpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L246", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_confirmimportpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_categoryspenditem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L256", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_createaccountpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_planfactitem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L263", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_planfactreport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_cashflowmonth", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L276", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_balanceitem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L284", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_balancesreport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_exportstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L299", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_exportinfo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L301", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_spacedeletionstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_operationkind", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_operationstatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_createoperationpayload", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "frontend_src_api_types", + "target": "frontend_src_api_types_operationfilters", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/types.ts", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_app_app", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/App.tsx", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_app", + "target": "frontend_src_app_queryclient", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/App.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_accountspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_analyticspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_budgetpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_importdetailpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_importspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_loginpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_notfoundpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_operationspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_reviewqueuepage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_resetpasswordpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_settingspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_requireauth", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_approutes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_app_router_acceptinvitepage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_columnchart", + "target": "frontend_src_components_charts_columnchart_columnchartprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_columnchart", + "target": "frontend_src_components_charts_columnchart_columnchart", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_columnchart", + "target": "frontend_src_components_charts_columnchart_cashflowcolumn", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/ColumnChart.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_horizontalbars", + "target": "frontend_src_components_charts_horizontalbars_horizontalbars", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_horizontalbars", + "target": "frontend_src_components_charts_horizontalbars_barrow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_horizontalbars", + "target": "frontend_src_components_charts_horizontalbars_horizontalbarsprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/HorizontalBars.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_planfactbars", + "target": "frontend_src_components_charts_planfactbars_planfactbarsprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_planfactbars", + "target": "frontend_src_components_charts_planfactbars_planfactbars", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_src_components_charts_planfactbars", + "target": "frontend_src_components_charts_planfactbars_planfactrow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/charts/PlanFactBars.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_layout_applayout_applayout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_applayout", + "target": "frontend_src_components_layout_applayout_nav_items", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/layout/AppLayout.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_components_layout_langswitcher", + "target": "frontend_src_components_layout_langswitcher_langswitcher", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/layout/LangSwitcher.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_badge", + "target": "frontend_src_components_ui_badge_badgetone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Badge.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_badge", + "target": "frontend_src_components_ui_badge_badge", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Badge.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_button", + "target": "frontend_src_components_ui_button_variant", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_button", + "target": "frontend_src_components_ui_button_buttonprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_button", + "target": "frontend_src_components_ui_button_button", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Button.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_confirmdialog_confirmdialog", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_confirmdialog", + "target": "frontend_src_components_ui_confirmdialog_confirmdialogprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/ConfirmDialog.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_emptystate", + "target": "frontend_src_components_ui_emptystate_emptystateprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/EmptyState.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_emptystate", + "target": "frontend_src_components_ui_emptystate_emptystate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/EmptyState.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_errorstate", + "target": "frontend_src_components_ui_errorstate_errorstate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_errorstate", + "target": "frontend_src_components_ui_errorstate_errorstateprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/ErrorState.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_inputprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_selectprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_selectfieldprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_selectfield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_textareaprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_textareafieldprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_textareafield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_fieldchrome", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_fieldchromewrap", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_textfieldprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_textfield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_moneyfieldprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_fields", + "target": "frontend_src_components_ui_fields_moneyfield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/fields.tsx", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_modal", + "target": "frontend_src_components_ui_modal_modal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Modal.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_modal", + "target": "frontend_src_components_ui_modal_modalprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Modal.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_monthswitcher", + "target": "frontend_src_components_ui_monthswitcher_monthswitcher", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/MonthSwitcher.tsx", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_monthswitcher", + "target": "frontend_src_components_ui_monthswitcher_monthswitcherprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/MonthSwitcher.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_pageheader", + "target": "frontend_src_components_ui_pageheader_pageheaderprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/PageHeader.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_pageheader", + "target": "frontend_src_components_ui_pageheader_pageheader", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/PageHeader.tsx", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_querygate_querygate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_querygate", + "target": "frontend_src_components_ui_querygate_querygateprops", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/QueryGate.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_spinner", + "target": "frontend_src_components_ui_spinner_spinner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Spinner.tsx", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_toastapi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_toastcontext", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_toastprovider", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_toastkind", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_usetoast", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "frontend_src_components_ui_toaster", + "target": "frontend_src_components_ui_toaster_toastitem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/components/ui/Toaster.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_hooks_useaccounts_useactiveaccounts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_hooks_useaccounts_usecreateaccount", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_hooks_useaccounts_usearchiveaccount", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useaccounts", + "target": "frontend_src_hooks_useaccounts_useaccounts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAccounts.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_hooks_useanalytics_useanalyticsplanfact", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_hooks_useanalytics_useanalyticscashflow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_hooks_useanalytics_useanalyticsbalances", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useanalytics", + "target": "frontend_src_hooks_useanalytics_useanalyticscategoryspend", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAnalytics.ts", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_usesessionmutation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_uselogin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_useacceptinvite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_userequestpasswordreset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_useconfirmpasswordreset", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_uselogout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useauth", + "target": "frontend_src_hooks_useauth_useme", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useAuth.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usebudgetcategories", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usebudgeterrortoaster", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_useupdateplan", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usefundcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_useperiodmutation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_useclosemonth", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usebudgetsummary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usereopenmonth", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usebudget", + "target": "frontend_src_hooks_usebudget_usecopypreviousmonth", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useBudget.ts", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_userevertimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_useimports", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_useimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_useimporterrortoaster", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_useuploadimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_usesaverowdecision", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_useconfirmimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useimports", + "target": "frontend_src_hooks_useimports_usereparseimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useImports.ts", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_hooks_useoperations_useledgermutation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_hooks_useoperations_usecreateoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_hooks_useoperations_usevoidoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_hooks_useoperations_usecategorizeoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_useoperations", + "target": "frontend_src_hooks_useoperations_useoperations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useOperations.ts", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_hooks_usespacelifecycle_userequestexport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_hooks_usespacelifecycle_userequestdeletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_hooks_usespacelifecycle_usecanceldeletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "frontend_src_hooks_usespacelifecycle", + "target": "frontend_src_hooks_usespacelifecycle_usespacedeletion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/hooks/useSpaceLifecycle.ts", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_storedlocale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_detectlocale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_createi18n", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_i18n", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_setlocale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_localelabel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "frontend_src_i18n_index", + "target": "frontend_src_i18n_index_locales", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/i18n/index.ts", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_main", + "target": "frontend_src_main_container", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/main.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_pages_acceptinvitepage_acceptinvitevalues", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_acceptinvitepage", + "target": "frontend_src_pages_acceptinvitepage_acceptinvitepage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AcceptInvitePage.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_pages_accountspage_usememoschema", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_pages_accountspage_accountspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_pages_accountspage_accountformvalues", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_accountspage", + "target": "frontend_src_pages_accountspage_accountform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AccountsPage.tsx", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_pages_analyticspage_range_choices", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_analyticspage", + "target": "frontend_src_pages_analyticspage_analyticspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/AnalyticsPage.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_pages_budgetpage_budgetpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_pages_budgetpage_planmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_budgetpage", + "target": "frontend_src_pages_budgetpage_fundmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/BudgetPage.tsx", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_pages_importdetailpage_decisions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_pages_importdetailpage_step_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_pages_importdetailpage_stepindexfor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_pages_importdetailpage_confirmmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importdetailpage", + "target": "frontend_src_pages_importdetailpage_importdetailpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportDetailPage.tsx", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_pages_importspage_uploadmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_importspage", + "target": "frontend_src_pages_importspage_importspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ImportsPage.tsx", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_pages_loginpage_loginformvalues", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_loginpage", + "target": "frontend_src_pages_loginpage_loginpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/LoginPage.tsx", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_notfoundpage", + "target": "frontend_src_pages_notfoundpage_notfoundpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/NotFoundPage.tsx", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_incomeform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_transferform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_operation_kinds", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_refundform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L296", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_amountfield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_datefield", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_accountselect", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_operationmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L379", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_voidmodal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L404", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_operationspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L450", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_operationspage", + "target": "frontend_src_pages_operationspage_expenseform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/OperationsPage.tsx", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_pages_resetpasswordpage_resetvalues", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_resetpasswordpage", + "target": "frontend_src_pages_resetpasswordpage_resetpasswordpage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ResetPasswordPage.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_pages_reviewqueuepage_uncategorizedrow", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_reviewqueuepage", + "target": "frontend_src_pages_reviewqueuepage_reviewqueuepage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/ReviewQueuePage.tsx", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_pages_settingspage_deletionformvalues", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_pages_settingspage_deletionform", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_pages_settingspage", + "target": "frontend_src_pages_settingspage_settingspage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/pages/SettingsPage.tsx", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_test_accounts_page_test_listmock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_test_accounts_page_test_createmock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_src_test_accounts_page_test", + "target": "frontend_src_test_accounts_page_test_account", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/accounts-page.test.tsx", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_summarymock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_categoriesmock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_updateplanmock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_month", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_test_budget_plan_test", + "target": "frontend_src_test_budget_plan_test_categories", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/budget-plan.test.tsx", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "frontend_src_test_chart_accessible_table_test", + "target": "frontend_src_test_chart_accessible_table_test_rows", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/chart-accessible-table.test.tsx", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_src_test_helpers", + "target": "frontend_src_test_helpers_renderwithproviders", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_src_test_helpers", + "target": "frontend_src_test_helpers_createtestqueryclient", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/helpers.tsx", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_i18n_parity_test", + "target": "frontend_src_test_i18n_parity_test_rukeys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "frontend_src_test_i18n_parity_test", + "target": "frontend_src_test_i18n_parity_test_enkeys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "frontend_src_test_i18n_parity_test", + "target": "frontend_src_test_i18n_parity_test_collect", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/i18n-parity.test.ts", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_test_import_polling_test_getimport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_test_import_polling_test_detail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "frontend_src_test_import_polling_test", + "target": "frontend_src_test_import_polling_test_makewrapper", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/import-polling.test.tsx", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_login_page_test_memock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_login_page_test_loginmock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_login_page_test_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "frontend_src_test_login_page_test", + "target": "frontend_src_test_login_page_test_renderlogin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/login-page.test.tsx", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_test_query_keys_test_sample_filters", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "frontend_src_test_query_keys_test_sample_keys", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/query-keys.test.ts", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig", + "target": "frontend_tsconfig_compileroptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig", + "target": "frontend_tsconfig_include", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_nounusedparameters", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_nofallthroughcasesinswitch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_nouncheckedindexedaccess", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_verbatimmodulesyntax", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_isolatedmodules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_esmoduleinterop", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_forceconsistentcasinginfilenames", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_usedefineforclassfields", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_resolvejsonmodule", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_skiplibcheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_noemit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_types", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_baseurl", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_paths", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_target", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_lib", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_module", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_moduleresolution", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_jsx", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_strict", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "frontend_tsconfig_compileroptions", + "target": "frontend_tsconfig_compileroptions_nounusedlocals", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/tsconfig.json", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "infra_postgres_init_app_role", + "target": "infra_postgres_init_app_role_sh__entry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/postgres/init-app-role.sh", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_acceptinvitepage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_accountspage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_analyticspage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_budgetpage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_importdetailpage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_importspage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_loginpage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_notfoundpage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_operationspage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_resetpasswordpage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_reviewqueuepage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_app_router", + "target": "frontend_src_pages_settingspage", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/app/router.tsx" + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "i1", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/query-keys.test.ts" + }, + { + "source": "frontend_src_test_query_keys_test", + "target": "i2", + "relation": "dynamic_import", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/test/query-keys.test.ts" + }, + { + "source": "backend_app_audit_models_auditevent", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models_auditevent", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models_auditevent", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_budgetperiod", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_budgetperiod", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_budgetperiod", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincome", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincome", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincome", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincomematch", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincomematch", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_expectedincomematch", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_fundingmovement", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_fundingmovement", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_fundingmovement", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_periodclosure", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_periodclosure", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_periodclosure", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_planassignment", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_planassignment", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_planassignment", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignmentitem", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_assignmentsbody", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categorybody", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_categoryfundingbody", + "target": "backend_app_budgeting_router_monthbody", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_expectedincomebody", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_fundingbody", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_monthbody", + "target": "backend_app_budgeting_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_router_planbody", + "target": "backend_app_budgeting_router_monthbody", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/router.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_bankcategorymapping", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_bankcategorymapping", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_categorizationrule", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_categorizationrule", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_categorizationrule", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_incomesource", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_incomesource", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_incomesource", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_mcccode", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payee", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payee", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payee", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payeealias", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payeealias", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_payeealias", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_config_settings", + "target": "basesettings", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/config.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_base", + "target": "declarativebase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcdatetime", + "target": "typedecorator", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_errors_apperror", + "target": "exception", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_dataexport", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_dataexport", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_dataexport", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_deletionledger", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_deletionledger", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_deletionledger", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_invitation", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_invitation", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_invitation", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_passwordreset", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_passwordreset", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_passwordreset", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_session", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_session", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_session", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_user", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_user", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_models_user", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_acceptinvitebody", + "target": "backend_app_identity_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_invitebody", + "target": "backend_app_identity_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_loginbody", + "target": "backend_app_identity_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_resetbody", + "target": "backend_app_identity_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_identity_router_resetrequestbody", + "target": "backend_app_identity_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/identity/router.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfacreditxlsxadapter", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfadebitxlsxadapter", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_statementadapter", + "target": "backend_app_imports_adapters_base_py_protocol", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "target": "backend_app_errors_apperror", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozoncreditpdfadapter", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozondebitpdfadapter", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_rocketbank_pdf_rocketbankdebitpdfadapter", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_blobstore", + "target": "backend_app_imports_blob_py_protocol", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_dedupcandidate", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_dedupcandidate", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_dedupcandidate", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_parserun", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_parserun", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_parserun", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecord", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecord", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecord", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecordlink", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecordlink", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_sourcerecordlink", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_statementdocument", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_statementdocument", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_statementdocument", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_confirmbody", + "target": "backend_app_imports_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_decisionbody", + "target": "backend_app_imports_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_imports_router_reviewbody", + "target": "backend_app_imports_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/router.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_account", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_account", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_account", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_category", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_category", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_category", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_operation", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_operation", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_operation", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_posting", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_posting", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_posting", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_accountbody", + "target": "backend_app_ledger_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operationbody", + "target": "backend_app_ledger_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_operationpatchbody", + "target": "backend_app_ledger_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_router_voidbody", + "target": "backend_app_ledger_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/router.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_financialspace", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_financialspace", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_financialspace", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_membership", + "target": "backend_app_db_base_base", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_membership", + "target": "backend_app_db_base_pkmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_models_membership", + "target": "backend_app_db_base_timestampmixin", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_deletionbody", + "target": "backend_app_spaces_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backend_app_spaces_router_memberinvitebody", + "target": "backend_app_spaces_router_py_basemodel", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/spaces/router.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backend_app_config_settings", + "target": "backend_app_config_settings_broker_url", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/config.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_config_settings", + "target": "backend_app_config_settings_kek", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/config.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcdatetime", + "target": "backend_app_db_base_utcdatetime_process_bind_param", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_utcdatetime", + "target": "backend_app_db_base_utcdatetime_process_result_value", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "backend_app_errors_apperror", + "target": "backend_app_errors_apperror_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_detect", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase_parse", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_statementadapter", + "target": "backend_app_imports_adapters_base_statementadapter_detect", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_statementadapter", + "target": "backend_app_imports_adapters_base_statementadapter_parse", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_detect", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase_parse", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_blobstore", + "target": "backend_app_imports_blob_blobstore_put", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_blobstore", + "target": "backend_app_imports_blob_blobstore_get", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_blobstore", + "target": "backend_app_imports_blob_blobstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore", + "target": "backend_app_imports_blob_localdirectoryblobstore_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore", + "target": "backend_app_imports_blob_localdirectoryblobstore_path", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore", + "target": "backend_app_imports_blob_localdirectoryblobstore_put", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore", + "target": "backend_app_imports_blob_localdirectoryblobstore_get", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_localdirectoryblobstore", + "target": "backend_app_imports_blob_localdirectoryblobstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_s3blobstore", + "target": "backend_app_imports_blob_s3blobstore_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_s3blobstore", + "target": "backend_app_imports_blob_s3blobstore_put", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_s3blobstore", + "target": "backend_app_imports_blob_s3blobstore_get", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_s3blobstore", + "target": "backend_app_imports_blob_s3blobstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "frontend_src_api_client_apierror", + "target": "frontend_src_api_client_apierror_constructor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/src/api/client.ts", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backend_app_audit_models_rationale_11", + "target": "backend_app_audit_models_auditevent", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/audit/models.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_rationale_104", + "target": "backend_app_budgeting_models_expectedincomematch", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_rationale_133", + "target": "backend_app_budgeting_models_fundingmovement", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_rationale_167", + "target": "backend_app_budgeting_models_periodclosure", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_models_rationale_26", + "target": "backend_app_budgeting_models_budgetperiod", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_budgeting_service_rationale_115", + "target": "backend_app_budgeting_service_compute_period_state", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/budgeting/service.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_rationale_104", + "target": "backend_app_categorization_models_bankcategorymapping", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_rationale_65", + "target": "backend_app_categorization_models_categorizationrule", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_models_rationale_94", + "target": "backend_app_categorization_models_mcccode", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/models.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "backend_app_categorization_service_rationale_9", + "target": "backend_app_categorization_service_resolve_category_name", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/categorization/service.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backend_app_db_base_rationale_22", + "target": "backend_app_db_base_utcdatetime", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/base.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_db_models_rationale_1", + "target": "backend_app_db_models", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_rationale_50", + "target": "backend_app_db_session_set_space_context", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "backend_app_db_session_rationale_60", + "target": "backend_app_db_session_session_scope", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/db/session.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "backend_app_errors_rationale_5", + "target": "backend_app_errors_apperror", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/errors.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backend_app_exports_models_rationale_30", + "target": "backend_app_exports_models_deletionledger", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/exports/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_rationale_26", + "target": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_base_rationale_45", + "target": "backend_app_imports_adapters_base_unsupportedstatementlayout", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/base.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_ozon_pdf_rationale_29", + "target": "backend_app_imports_adapters_ozon_pdf_ozonpdfadapterbase", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/ozon_pdf.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backend_app_imports_adapters_rocketbank_pdf_rationale_7", + "target": "backend_app_imports_adapters_rocketbank_pdf_rocketbankdebitpdfadapter", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/adapters/rocketbank_pdf.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backend_app_imports_blob_rationale_18", + "target": "backend_app_imports_blob_localdirectoryblobstore", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/blob.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_rationale_22", + "target": "backend_app_imports_crypto_encrypt_file", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backend_app_imports_crypto_rationale_57", + "target": "backend_app_imports_crypto_shred_dek_material", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/crypto.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "backend_app_imports_models_rationale_98", + "target": "backend_app_imports_models_sourcerecord", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/imports/models.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_rationale_126", + "target": "backend_app_ledger_models_posting", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_rationale_160", + "target": "backend_app_ledger_models_category", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_rationale_27", + "target": "backend_app_ledger_models_account", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_models_rationale_55", + "target": "backend_app_ledger_models_operation", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/models.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_rationale_126", + "target": "backend_app_ledger_service_apply_suggestion", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "backend_app_ledger_service_rationale_20", + "target": "backend_app_ledger_service_to_kopecks", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ledger/service.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backend_app_ratelimit_rationale_16", + "target": "backend_app_ratelimit_allow", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backend/app/ratelimit.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_build_export_task", + "target": "backend_tests_conftest_db", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backend_app_exports_tasks_purge_due_spaces_task", + "target": "backend_tests_conftest_db", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backend/app/exports/tasks.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_process_statement_document", + "target": "backend_tests_conftest_db", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backend/app/imports/service.py", + "source_location": "L239", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "backend_tests_conftest_db", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backend_app_imports_service_create_document", + "target": "path", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "backend/app/imports/service.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "backend_tests_test_postgres_and_s3_test_postgres_rls_requires_matching_transaction_context", + "target": "backend_app_identity_models_session", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "backend/tests/test_postgres_and_s3.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backend_app_main_app_error_handler", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backend/app/main.py", + "source_location": "L27", + "weight": 0.8 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema_downgrade", + "target": "backend_app_db_base_base", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L82", + "weight": 0.8 + }, + { + "source": "backend_alembic_versions_20260911_0001_initial_schema_upgrade", + "target": "backend_app_db_base_base", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/alembic/versions/20260911_0001_initial_schema.py", + "source_location": "L38", + "weight": 0.8 + }, + { + "source": "backend_app_budgeting_models_periodclosure", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/budgeting/models.py", + "source_location": "L185", + "weight": 0.8 + }, + { + "source": "backend_app_exports_models_dataexport", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/exports/models.py", + "source_location": "L24", + "weight": 0.8 + }, + { + "source": "backend_app_exports_models_deletionledger", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/exports/models.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "backend_app_exports_router_request_export", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/exports/router.py", + "source_location": "L27", + "weight": 0.8 + }, + { + "source": "backend_app_exports_service_build_export", + "target": "backend_app_audit_models_auditevent", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/exports/service.py", + "source_location": "L96", + "weight": 0.8 + }, + { + "source": "backend_app_identity_models_invitation", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/identity/models.py", + "source_location": "L36", + "weight": 0.8 + }, + { + "source": "backend_app_identity_models_passwordreset", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/identity/models.py", + "source_location": "L50", + "weight": 0.8 + }, + { + "source": "backend_app_identity_models_session", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/identity/models.py", + "source_location": "L62", + "weight": 0.8 + }, + { + "source": "backend_app_identity_router_login", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/identity/router.py", + "source_location": "L103", + "weight": 0.8 + }, + { + "source": "backend_app_identity_router_request_password_reset", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/identity/router.py", + "source_location": "L122", + "weight": 0.8 + }, + { + "source": "backend_app_imports_adapters_alfa_xlsx_alfaxlsxadapterbase", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/imports/adapters/alfa_xlsx.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "backend_app_imports_router_reparse", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/imports/router.py", + "source_location": "L226", + "weight": 0.8 + }, + { + "source": "backend_app_imports_router_upload", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/imports/router.py", + "source_location": "L89", + "weight": 0.8 + }, + { + "source": "backend_app_spaces_models_financialspace", + "target": "backend_app_db_base_utcdatetime", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/app/spaces/models.py", + "source_location": "L15", + "weight": 0.8 + }, + { + "source": "backend_tests_conftest_db_factory", + "target": "backend_app_db_base_base", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/conftest.py", + "source_location": "L32", + "weight": 0.8 + }, + { + "source": "backend_tests_test_budget_test_periods_must_close_in_calendar_order", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_budget.py", + "source_location": "L96", + "weight": 0.8 + }, + { + "source": "backend_tests_test_budget_test_uncategorized_expense_blocks_close", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_budget.py", + "source_location": "L49", + "weight": 0.8 + }, + { + "source": "backend_tests_test_imports_test_confirm_rejects_arithmetic_mismatch", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_imports.py", + "source_location": "L97", + "weight": 0.8 + }, + { + "source": "backend_tests_test_imports_test_confirmed_import_must_be_reverted_before_reparse", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_imports.py", + "source_location": "L105", + "weight": 0.8 + }, + { + "source": "backend_tests_test_ledger_properties_test_credit_expense_is_negative_balance_and_refund_is_capped", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L99", + "weight": 0.8 + }, + { + "source": "backend_tests_test_ledger_properties_test_cross_space_lookup_fails_closed", + "target": "backend_app_errors_apperror", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backend/tests/test_ledger_properties.py", + "source_location": "L121", + "weight": 0.8 + }, + { + "source": "docs_adr_0001_financial_space_ownership_and_rls_space_ownership", + "target": "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 11-20", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_operations_postings_journal", + "target": "docs_adr_0002_journal_and_budget_reserves_derived_balances", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 13-15", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "target": "docs_adr_0003_versioned_statement_imports_atomic_confirm_revert", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 15", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "target": "docs_adr_0003_versioned_statement_imports_conservative_deduplication", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "target": "docs_adr_0003_versioned_statement_imports_immutable_statement_document", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 11-14", + "weight": 1.0 + }, + { + "source": "docs_adr_0004_provider_neutral_encrypted_data_boundary_provider_neutral_boundary", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_envelope_encryption", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "line 14", + "weight": 1.0 + }, + { + "source": "docs_adr_0004_provider_neutral_encrypted_data_boundary_provider_neutral_boundary", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_rf_data_residency", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "lines 9-13", + "weight": 1.0 + }, + { + "source": "context_credit_reserve", + "target": "context_financial_account", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 21", + "weight": 1.0 + }, + { + "source": "context_expected_income", + "target": "context_income_source", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "lines 22-23", + "weight": 1.0 + }, + { + "source": "context_funding", + "target": "context_general_pool", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 18", + "weight": 1.0 + }, + { + "source": "context_internal_transfer", + "target": "context_operation", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 9", + "weight": 1.0 + }, + { + "source": "context_internal_transfer", + "target": "context_posting", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 9", + "weight": 1.0 + }, + { + "source": "context_membership", + "target": "context_financial_space", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 5", + "weight": 1.0 + }, + { + "source": "context_membership", + "target": "context_user", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 5", + "weight": 1.0 + }, + { + "source": "context_monthly_category", + "target": "context_general_pool", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 19", + "weight": 1.0 + }, + { + "source": "context_operation", + "target": "context_posting", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "lines 7-8", + "weight": 1.0 + }, + { + "source": "context_parse_run", + "target": "context_source_record", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "lines 12-13", + "weight": 1.0 + }, + { + "source": "context_plan_assignment", + "target": "context_general_pool", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 17", + "weight": 1.0 + }, + { + "source": "context_refund", + "target": "context_operation", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "line 10", + "weight": 1.0 + }, + { + "source": "context_statement_import", + "target": "context_parse_run", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "CONTEXT.md", + "source_location": "lines 11-12", + "weight": 1.0 + }, + { + "source": "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "target": "docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 15-18", + "weight": 1.0 + }, + { + "source": "docs_adr_0001_financial_space_ownership_and_rls_space_ownership", + "target": "docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "line 19", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_budget_reserves", + "target": "context_credit_reserve", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_budget_reserves", + "target": "context_savings_envelope", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_immutable_statement_document", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_envelope_encryption", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 13", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_parser_versioning", + "target": "docs_parsers_private_fixture_gate_private_fixture_gate", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "line 17", + "weight": 1.0 + }, + { + "source": "docs_adr_0004_provider_neutral_encrypted_data_boundary_crypto_shredding", + "target": "docs_operations_deletion_ledger_deletion_ledger", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "line 15", + "weight": 1.0 + }, + { + "source": "docs_operations_backup_and_restore_backup_and_restore", + "target": "docs_operations_backup_and_restore_kek_backup", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 16-18", + "weight": 1.0 + }, + { + "source": "docs_operations_backup_and_restore_backup_and_restore", + "target": "docs_operations_backup_and_restore_restore_procedure", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 20-29", + "weight": 1.0 + }, + { + "source": "docs_operations_backup_and_restore_backup_and_restore", + "target": "docs_operations_backup_and_restore_restore_drill", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 31-38", + "weight": 1.0 + }, + { + "source": "docs_operations_backup_and_restore_restore_procedure", + "target": "docs_operations_deletion_ledger_post_restore_replay", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "line 27", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_closed_beta_release", + "target": "docs_operations_beta_release_runbook_launch_sequence", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 19-24", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_closed_beta_release", + "target": "docs_operations_beta_release_runbook_forward_fix_rollback", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 26-30", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_closed_beta_release", + "target": "docs_operations_beta_release_runbook_incident_response", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 32-35", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_closed_beta_release", + "target": "docs_operations_beta_release_runbook_launch_gates", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "lines 6-17", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_launch_gates", + "target": "docs_operations_backup_and_restore_restore_drill", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "line 12", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_launch_gates", + "target": "docs_operations_deletion_ledger_deletion_ledger", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "line 15", + "weight": 1.0 + }, + { + "source": "docs_operations_beta_release_runbook_launch_gates", + "target": "docs_parsers_private_fixture_gate_adapter_beta_eligibility", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/beta-release-runbook.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_operations_deletion_ledger_delayed_space_deletion", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_crypto_shredding", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 17-20", + "weight": 1.0 + }, + { + "source": "docs_operations_deletion_ledger_deletion_ledger", + "target": "docs_operations_deletion_ledger_delayed_space_deletion", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 13-21", + "weight": 1.0 + }, + { + "source": "docs_operations_deletion_ledger_deletion_ledger", + "target": "docs_operations_deletion_ledger_post_restore_replay", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 23-30", + "weight": 1.0 + }, + { + "source": "docs_operations_deletion_ledger_deletion_ledger", + "target": "docs_operations_deletion_ledger_idempotent_purge", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/operations/deletion-ledger.md", + "source_location": "lines 32-36", + "weight": 1.0 + }, + { + "source": "docs_parsers_private_fixture_gate_private_fixture_gate", + "target": "docs_parsers_private_fixture_gate_adapter_beta_eligibility", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 19-32", + "weight": 1.0 + }, + { + "source": "docs_parsers_private_fixture_gate_private_fixture_gate", + "target": "docs_parsers_private_fixture_gate_layout_drift_regating", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 34-45", + "weight": 1.0 + }, + { + "source": "docs_parsers_private_fixture_gate_private_fixture_gate", + "target": "docs_parsers_private_fixture_gate_private_statement_contract", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 7-17", + "weight": 1.0 + }, + { + "source": "frontend_readme_finance_frontend", + "target": "frontend_readme_ru_en_localization", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/README.md", + "source_location": "lines 3-14", + "weight": 1.0 + }, + { + "source": "frontend_readme_finance_frontend", + "target": "frontend_readme_typed_api_client", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/README.md", + "source_location": "lines 35-50", + "weight": 1.0 + }, + { + "source": "frontend_readme_finance_frontend", + "target": "frontend_readme_space_scoped_query_keys", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/README.md", + "source_location": "lines 52-58", + "weight": 1.0 + }, + { + "source": "frontend_readme_finance_frontend", + "target": "frontend_readme_accessible_responsive_ui", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "frontend/README.md", + "source_location": "lines 60-67", + "weight": 1.0 + }, + { + "source": "github_workflows_ci_ci_pipeline", + "target": "github_workflows_ci_frontend_quality_gate", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 103-130", + "weight": 1.0 + }, + { + "source": "github_workflows_ci_ci_pipeline", + "target": "github_workflows_ci_compose_validation", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 132-152", + "weight": 1.0 + }, + { + "source": "github_workflows_ci_ci_pipeline", + "target": "github_workflows_ci_backend_quality_gate", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 26-101", + "weight": 1.0 + }, + { + "source": "github_workflows_ci_compose_validation", + "target": "infra_docker_compose_docker_compose_stack", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/workflows/ci.yml", + "source_location": "lines 139-149", + "weight": 1.0 + }, + { + "source": "infra_docker_compose_docker_compose_stack", + "target": "infra_docker_compose_worker_isolation", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/docker-compose.yml", + "source_location": "lines 165-182", + "weight": 1.0 + }, + { + "source": "infra_docker_compose_docker_compose_stack", + "target": "infra_docker_compose_same_origin_frontend", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/docker-compose.yml", + "source_location": "lines 198-211", + "weight": 1.0 + }, + { + "source": "infra_docker_compose_docker_compose_stack", + "target": "infra_docker_compose_commodity_services", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/docker-compose.yml", + "source_location": "lines 46-125", + "weight": 1.0 + }, + { + "source": "infra_docker_compose_worker_isolation", + "target": "infra_docker_compose_internal_backend_network", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/docker-compose.yml", + "source_location": "lines 165-182", + "weight": 1.0 + }, + { + "source": "infra_readme_infrastructure", + "target": "infra_readme_same_origin_proxy", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/README.md", + "source_location": "lines 25-30", + "weight": 1.0 + }, + { + "source": "infra_readme_infrastructure", + "target": "infra_readme_workstream_contracts", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/README.md", + "source_location": "lines 40-55", + "weight": 1.0 + }, + { + "source": "infra_readme_infrastructure", + "target": "infra_readme_provider_neutral_infrastructure", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/README.md", + "source_location": "lines 64-69", + "weight": 1.0 + }, + { + "source": "infra_readme_infrastructure", + "target": "infra_docker_compose_docker_compose_stack", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/README.md", + "source_location": "lines 7-15", + "weight": 1.0 + }, + { + "source": "infra_readme_provider_neutral_infrastructure", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_provider_neutral_boundary", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "infra/README.md", + "source_location": "lines 64-69", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_tenant_boundary", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 105-113", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_ledger_invariants", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 115-125", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_budget_invariants", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 127-142", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_import_pipeline", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 159-176", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_modular_monolith", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 68-92", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_financial_tracker_mvp", + "target": "kilo_plans_1789034192214_financial_tracker_mvp_critical_user_path", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 7-14", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_import_pipeline", + "target": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 94-101", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_ledger_invariants", + "target": "docs_adr_0002_journal_and_budget_reserves_operations_postings_journal", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 94-101", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_tenant_boundary", + "target": "docs_adr_0001_financial_space_ownership_and_rls_space_ownership", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 94-101", + "weight": 1.0 + }, + { + "source": "readme_finance_tracker", + "target": "readme_closed_beta_budgeting", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "lines 3-5", + "weight": 1.0 + }, + { + "source": "readme_finance_tracker", + "target": "readme_production_boundary", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "lines 47-53", + "weight": 1.0 + }, + { + "source": "readme_finance_tracker", + "target": "context_financial_space", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "lines 55-56", + "weight": 1.0 + }, + { + "source": "readme_production_boundary", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_provider_neutral_boundary", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "lines 47-56", + "weight": 1.0 + }, + { + "source": "context_budget_period", + "target": "context_general_pool", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "CONTEXT.md", + "source_location": "lines 15-16", + "weight": 1.0 + }, + { + "source": "context_savings_envelope", + "target": "context_funding", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "CONTEXT.md", + "source_location": "lines 18-20", + "weight": 1.0 + }, + { + "source": "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "target": "docs_adr_0001_financial_space_ownership_and_rls_break_glass_access", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 20-26", + "weight": 1.0 + }, + { + "source": "docs_adr_0004_provider_neutral_encrypted_data_boundary_secret_boundary", + "target": "frontend_readme_typed_api_client", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "docs/adr/0004-provider-neutral-encrypted-data-boundary.md", + "source_location": "lines 16-17", + "weight": 1.0 + }, + { + "source": "frontend_public_favicon_svg_ledger_lines_design", + "target": "frontend_public_favicon_svg", + "relation": "rationale_for", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "frontend/public/favicon.svg", + "source_location": "lines 2-6", + "weight": 1.0 + }, + { + "source": "context_financial_account", + "target": "context_financial_space", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "CONTEXT.md", + "source_location": "lines 4-6", + "weight": 1.0 + }, + { + "source": "docs_adr_0001_financial_space_ownership_and_rls_space_ownership", + "target": "context_financial_space", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md", + "source_location": "lines 9-14", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_closure_snapshots", + "target": "context_budget_period", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 17-23", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_operations_postings_journal", + "target": "context_operation", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 13-15", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_operations_postings_journal", + "target": "context_posting", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "lines 13-15", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_plan_funding_separation", + "target": "context_funding", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_adr_0002_journal_and_budget_reserves_plan_funding_separation", + "target": "context_plan_assignment", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md", + "source_location": "line 16", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_parser_versioning", + "target": "context_parse_run", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 14-17", + "weight": 1.0 + }, + { + "source": "docs_adr_0003_versioned_statement_imports_versioned_statement_imports", + "target": "context_statement_import", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/adr/0003-versioned-statement-imports.md", + "source_location": "lines 9-18", + "weight": 1.0 + }, + { + "source": "docs_operations_backup_and_restore_kek_backup", + "target": "docs_adr_0004_provider_neutral_encrypted_data_boundary_envelope_encryption", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/operations/backup-and-restore.md", + "source_location": "lines 16-18", + "weight": 1.0 + }, + { + "source": "docs_parsers_private_fixture_gate_layout_drift_regating", + "target": "docs_adr_0003_versioned_statement_imports_parser_versioning", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "docs/parsers/private-fixture-gate.md", + "source_location": "lines 44-45", + "weight": 1.0 + }, + { + "source": "frontend_index_grossbukh_app_shell", + "target": "frontend_readme_finance_frontend", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "frontend/index.html", + "source_location": "lines 8-12", + "weight": 1.0 + }, + { + "source": "frontend_readme_typed_api_client", + "target": "infra_readme_same_origin_proxy", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "frontend/README.md", + "source_location": "lines 37-50", + "weight": 1.0 + }, + { + "source": "infra_docker_compose_same_origin_frontend", + "target": "infra_readme_same_origin_proxy", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "infra/docker-compose.yml", + "source_location": "lines 198-211", + "weight": 1.0 + }, + { + "source": "kilo_plans_1789034192214_financial_tracker_mvp_release_gates", + "target": "docs_operations_beta_release_runbook_launch_gates", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": ".kilo/plans/1789034192214-financial-tracker-mvp.md", + "source_location": "lines 256-275", + "weight": 1.0 + } + ], + "hyperedges": [ + { + "id": "auditable_financial_model", + "label": "Auditable Financial Model", + "nodes": [ + "context_operation", + "context_posting", + "docs_adr_0002_journal_and_budget_reserves_derived_balances", + "docs_adr_0002_journal_and_budget_reserves_plan_funding_separation", + "docs_adr_0002_journal_and_budget_reserves_closure_snapshots" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0002-journal-and-budget-reserves.md" + }, + { + "id": "financial_space_tenancy_boundary", + "label": "Financial Space Tenancy Boundary", + "nodes": [ + "context_financial_space", + "context_membership", + "docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization", + "docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls", + "docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0001-financial-space-ownership-and-rls.md" + }, + { + "id": "safe_statement_import_flow", + "label": "Safe Statement Import Flow", + "nodes": [ + "context_statement_import", + "context_parse_run", + "context_source_record", + "docs_adr_0003_versioned_statement_imports_immutable_statement_document", + "docs_adr_0003_versioned_statement_imports_conservative_deduplication", + "docs_adr_0003_versioned_statement_imports_atomic_confirm_revert" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/adr/0003-versioned-statement-imports.md" + } + ], + "built_at_commit": "8eacee46aec5142388f104e90878d220da249cc4" +} \ No newline at end of file diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json new file mode 100644 index 0000000..7607256 --- /dev/null +++ b/graphify-out/manifest.json @@ -0,0 +1,884 @@ +{ + "backend/alembic/env.py": { + "mtime": 1789129232.0159023, + "seen": 1789377303.0691774, + "ast_hash": "d78f67ad0caed3f10805122e8d8e82d0", + "semantic_hash": "d78f67ad0caed3f10805122e8d8e82d0" + }, + "backend/alembic/versions/20260911_0001_initial_schema.py": { + "mtime": 1789130024.8355556, + "seen": 1789377303.0691814, + "ast_hash": "3a446ae61cbf2362d24dc9ab6e72dd2d", + "semantic_hash": "3a446ae61cbf2362d24dc9ab6e72dd2d" + }, + "backend/app/__init__.py": { + "mtime": 1789127291.0254955, + "seen": 1789377303.0691833, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/analytics/__init__.py": { + "mtime": 1789128680.8117132, + "seen": 1789377303.0691845, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/analytics/router.py": { + "mtime": 1789129123.9786532, + "seen": 1789377303.0691855, + "ast_hash": "dc4d5f43d1e17ae77b21f774d37c1106", + "semantic_hash": "dc4d5f43d1e17ae77b21f774d37c1106" + }, + "backend/app/analytics/service.py": { + "mtime": 1789129314.8210335, + "seen": 1789377303.0691862, + "ast_hash": "0385e76cccd5d140b8cc01af5b74821e", + "semantic_hash": "0385e76cccd5d140b8cc01af5b74821e" + }, + "backend/app/audit/__init__.py": { + "mtime": 1789127312.3538313, + "seen": 1789377303.0691874, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/audit/models.py": { + "mtime": 1789127312.353331, + "seen": 1789377303.069188, + "ast_hash": "84a2cb94c3a10150a76f59ff762efc49", + "semantic_hash": "84a2cb94c3a10150a76f59ff762efc49" + }, + "backend/app/audit/service.py": { + "mtime": 1789127312.3538313, + "seen": 1789377303.0691888, + "ast_hash": "791163353fbef85a77ace789c704188c", + "semantic_hash": "791163353fbef85a77ace789c704188c" + }, + "backend/app/budgeting/__init__.py": { + "mtime": 1789127598.9634895, + "seen": 1789377303.0691895, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/budgeting/models.py": { + "mtime": 1789356526.9709191, + "seen": 1789377303.0691907, + "ast_hash": "039081cab3d91704e8f8a7152a981304", + "semantic_hash": "039081cab3d91704e8f8a7152a981304" + }, + "backend/app/budgeting/router.py": { + "mtime": 1789129314.8240335, + "seen": 1789377303.0691917, + "ast_hash": "c352243e4fb85ab49f9cf4532c11bd3f", + "semantic_hash": "c352243e4fb85ab49f9cf4532c11bd3f" + }, + "backend/app/budgeting/service.py": { + "mtime": 1789358018.8352346, + "seen": 1789377303.0691924, + "ast_hash": "3eac2370782c5606fa0ceb3b2b6b49c6", + "semantic_hash": "3eac2370782c5606fa0ceb3b2b6b49c6" + }, + "backend/app/categorization/__init__.py": { + "mtime": 1789127372.62572, + "seen": 1789377303.0691931, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/categorization/models.py": { + "mtime": 1789130236.8679283, + "seen": 1789377303.0691943, + "ast_hash": "922083067aa2a24d67954296844db8f0", + "semantic_hash": "922083067aa2a24d67954296844db8f0" + }, + "backend/app/categorization/service.py": { + "mtime": 1789128297.7359908, + "seen": 1789377303.0691953, + "ast_hash": "9590b3c99e7c2b20b40d895d7495b5cf", + "semantic_hash": "9590b3c99e7c2b20b40d895d7495b5cf" + }, + "backend/app/config.py": { + "mtime": 1789356583.024539, + "seen": 1789377303.069196, + "ast_hash": "af0c778e49e82763261430b477375048", + "semantic_hash": "af0c778e49e82763261430b477375048" + }, + "backend/app/db/__init__.py": { + "mtime": 1789127291.0254955, + "seen": 1789377303.069197, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/db/base.py": { + "mtime": 1789128247.897287, + "seen": 1789377303.069198, + "ast_hash": "ec981c0f87b0470519cca7727172a950", + "semantic_hash": "ec981c0f87b0470519cca7727172a950" + }, + "backend/app/db/models.py": { + "mtime": 1789128813.706167, + "seen": 1789377303.0691986, + "ast_hash": "338516ce68785afd5a7fe37f06e1c56f", + "semantic_hash": "338516ce68785afd5a7fe37f06e1c56f" + }, + "backend/app/db/session.py": { + "mtime": 1789128374.1340652, + "seen": 1789377303.0691996, + "ast_hash": "9e29a1eebfec6e48e97baf28e506b037", + "semantic_hash": "9e29a1eebfec6e48e97baf28e506b037" + }, + "backend/app/dependencies.py": { + "mtime": 1789128452.8041663, + "seen": 1789377303.0692003, + "ast_hash": "20666502da4de510d1cf6939e35e9c20", + "semantic_hash": "20666502da4de510d1cf6939e35e9c20" + }, + "backend/app/errors.py": { + "mtime": 1789127291.0254955, + "seen": 1789377303.0692015, + "ast_hash": "368489412799d564f127259ecc0c474c", + "semantic_hash": "368489412799d564f127259ecc0c474c" + }, + "backend/app/exports/__init__.py": { + "mtime": 1789128752.0481794, + "seen": 1789377303.0692022, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/exports/models.py": { + "mtime": 1789128752.0481794, + "seen": 1789377303.069203, + "ast_hash": "b76e7bca1889bdf298b5158da2f35642", + "semantic_hash": "b76e7bca1889bdf298b5158da2f35642" + }, + "backend/app/exports/router.py": { + "mtime": 1789358158.624152, + "seen": 1789377303.0692039, + "ast_hash": "28cc16dfa8d0b6b588e8f3a7d0a2f110", + "semantic_hash": "28cc16dfa8d0b6b588e8f3a7d0a2f110" + }, + "backend/app/exports/service.py": { + "mtime": 1789360140.0563023, + "seen": 1789377303.0692048, + "ast_hash": "a9f5a725bd06779f83eb20beda61881c", + "semantic_hash": "a9f5a725bd06779f83eb20beda61881c" + }, + "backend/app/exports/tasks.py": { + "mtime": 1789130443.0178635, + "seen": 1789377303.0692055, + "ast_hash": "de092ecca36d64718378a44d06adb5b6", + "semantic_hash": "de092ecca36d64718378a44d06adb5b6" + }, + "backend/app/identity/__init__.py": { + "mtime": 1789127312.3538313, + "seen": 1789377303.0692062, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/identity/mailer.py": { + "mtime": 1789357272.300995, + "seen": 1789377303.069207, + "ast_hash": "1e6fd1b285085e96819214bccde90a34", + "semantic_hash": "1e6fd1b285085e96819214bccde90a34" + }, + "backend/app/identity/models.py": { + "mtime": 1789130024.833855, + "seen": 1789377303.069208, + "ast_hash": "f7ad1f0468ad21ac2b86e49ef260f747", + "semantic_hash": "f7ad1f0468ad21ac2b86e49ef260f747" + }, + "backend/app/identity/router.py": { + "mtime": 1789356583.0255392, + "seen": 1789377303.0692086, + "ast_hash": "00089d34e9d5d5e965334b4520935bf8", + "semantic_hash": "00089d34e9d5d5e965334b4520935bf8" + }, + "backend/app/identity/service.py": { + "mtime": 1789130458.2090783, + "seen": 1789377303.0692096, + "ast_hash": "a2efb5e20098740645da8b58bd95073d", + "semantic_hash": "a2efb5e20098740645da8b58bd95073d" + }, + "backend/app/imports/__init__.py": { + "mtime": 1789127900.8512905, + "seen": 1789377303.0692103, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/imports/adapters/__init__.py": { + "mtime": 1789128289.6891637, + "seen": 1789377303.0692112, + "ast_hash": "cb3d7cdba651c7e72e63b48e0dc1ada4", + "semantic_hash": "cb3d7cdba651c7e72e63b48e0dc1ada4" + }, + "backend/app/imports/adapters/alfa_xlsx.py": { + "mtime": 1789129314.8220334, + "seen": 1789377303.069212, + "ast_hash": "f134a338a84dabd4bf83fe9921fee6e1", + "semantic_hash": "f134a338a84dabd4bf83fe9921fee6e1" + }, + "backend/app/imports/adapters/base.py": { + "mtime": 1789128289.6891637, + "seen": 1789377303.069213, + "ast_hash": "d56aa3b5b32d0673ac4f2898d658327c", + "semantic_hash": "d56aa3b5b32d0673ac4f2898d658327c" + }, + "backend/app/imports/adapters/ozon_pdf.py": { + "mtime": 1789128297.7359908, + "seen": 1789377303.0692136, + "ast_hash": "24fb6546e843e084f5b41ba134842c75", + "semantic_hash": "24fb6546e843e084f5b41ba134842c75" + }, + "backend/app/imports/adapters/rocketbank_pdf.py": { + "mtime": 1789127950.4610171, + "seen": 1789377303.069214, + "ast_hash": "7e3e787ffb32eb5a88b7f1af8627ba83", + "semantic_hash": "7e3e787ffb32eb5a88b7f1af8627ba83" + }, + "backend/app/imports/blob.py": { + "mtime": 1789129216.5581613, + "seen": 1789377303.0692153, + "ast_hash": "60d315883175474711dff503c70400a5", + "semantic_hash": "60d315883175474711dff503c70400a5" + }, + "backend/app/imports/celery_app.py": { + "mtime": 1789130443.0194046, + "seen": 1789377303.069216, + "ast_hash": "03e8b50c4722e8252a34508df1164985", + "semantic_hash": "03e8b50c4722e8252a34508df1164985" + }, + "backend/app/imports/crypto.py": { + "mtime": 1789127900.8612905, + "seen": 1789377303.0692167, + "ast_hash": "c72d7849c6f46e6c9a9136f3ae9dc92f", + "semantic_hash": "c72d7849c6f46e6c9a9136f3ae9dc92f" + }, + "backend/app/imports/models.py": { + "mtime": 1789358018.8338456, + "seen": 1789377303.0692174, + "ast_hash": "416d7e45875501344596ef7867f77d0c", + "semantic_hash": "416d7e45875501344596ef7867f77d0c" + }, + "backend/app/imports/readers.py": { + "mtime": 1789128289.6877162, + "seen": 1789377303.0692189, + "ast_hash": "0904afccafd9eb544b4d6846fc6384c8", + "semantic_hash": "0904afccafd9eb544b4d6846fc6384c8" + }, + "backend/app/imports/router.py": { + "mtime": 1789358168.7152903, + "seen": 1789377303.0692196, + "ast_hash": "9eba514885eb369b2756103d10d518a3", + "semantic_hash": "9eba514885eb369b2756103d10d518a3" + }, + "backend/app/imports/service.py": { + "mtime": 1789358130.3195853, + "seen": 1789377303.0692203, + "ast_hash": "aa388826ac8d183731806f96c10da0f4", + "semantic_hash": "aa388826ac8d183731806f96c10da0f4" + }, + "backend/app/imports/tasks.py": { + "mtime": 1789356921.2930734, + "seen": 1789377303.0692213, + "ast_hash": "1b26900740c5c6905601ba65d645857b", + "semantic_hash": "1b26900740c5c6905601ba65d645857b" + }, + "backend/app/ledger/__init__.py": { + "mtime": 1789127415.7777057, + "seen": 1789377303.0692222, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/ledger/models.py": { + "mtime": 1789130236.8679283, + "seen": 1789377303.069223, + "ast_hash": "81335e0d9f1f5a71be1626ec218da410", + "semantic_hash": "81335e0d9f1f5a71be1626ec218da410" + }, + "backend/app/ledger/router.py": { + "mtime": 1789358018.8352346, + "seen": 1789377303.0692236, + "ast_hash": "809411054fbede0694ed6ee863723fe5", + "semantic_hash": "809411054fbede0694ed6ee863723fe5" + }, + "backend/app/ledger/service.py": { + "mtime": 1789358018.8349617, + "seen": 1789377303.0692244, + "ast_hash": "96a715590e5af44c494e5c7c817780a3", + "semantic_hash": "96a715590e5af44c494e5c7c817780a3" + }, + "backend/app/main.py": { + "mtime": 1789130118.4222198, + "seen": 1789377303.0692253, + "ast_hash": "b4f205a9d87d905121bda1e4a65c20ea", + "semantic_hash": "b4f205a9d87d905121bda1e4a65c20ea" + }, + "backend/app/ratelimit.py": { + "mtime": 1789357059.570077, + "seen": 1789377303.069226, + "ast_hash": "e1732ffc6140108ea33bc70591653dd8", + "semantic_hash": "e1732ffc6140108ea33bc70591653dd8" + }, + "backend/app/security.py": { + "mtime": 1789360140.0553021, + "seen": 1789377303.069227, + "ast_hash": "0d73845e1a3da2c128cbb1aacd39506d", + "semantic_hash": "0d73845e1a3da2c128cbb1aacd39506d" + }, + "backend/app/spaces/__init__.py": { + "mtime": 1789127346.4407892, + "seen": 1789377303.0692277, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "backend/app/spaces/models.py": { + "mtime": 1789128247.897287, + "seen": 1789377303.0692286, + "ast_hash": "7bbb57eb5e95d7b59087f478d7c20412", + "semantic_hash": "7bbb57eb5e95d7b59087f478d7c20412" + }, + "backend/app/spaces/router.py": { + "mtime": 1789357010.1013982, + "seen": 1789377303.0692296, + "ast_hash": "073fa39a355b257a832ead3830942d8f", + "semantic_hash": "073fa39a355b257a832ead3830942d8f" + }, + "backend/app/spaces/service.py": { + "mtime": 1789129887.1068308, + "seen": 1789377303.0692303, + "ast_hash": "99f21c94dad6403b77f4cafed97c1c2e", + "semantic_hash": "99f21c94dad6403b77f4cafed97c1c2e" + }, + "backend/app/worker.py": { + "mtime": 1789129206.4285526, + "seen": 1789377303.069231, + "ast_hash": "4788addc575411056226ee892d1e2806", + "semantic_hash": "4788addc575411056226ee892d1e2806" + }, + "backend/pyproject.toml": { + "mtime": 1789360098.861183, + "seen": 1789377303.0692322, + "ast_hash": "3af36a3ae7c03efc22fbaee92f71daaf", + "semantic_hash": "3af36a3ae7c03efc22fbaee92f71daaf" + }, + "backend/tests/conftest.py": { + "mtime": 1789129509.9246948, + "seen": 1789377303.069233, + "ast_hash": "f74b424930fc6a978616e2e1bd081a0b", + "semantic_hash": "f74b424930fc6a978616e2e1bd081a0b" + }, + "backend/tests/test_api.py": { + "mtime": 1789130118.4241138, + "seen": 1789377303.069234, + "ast_hash": "bfec0778131788a91a0bc5c9ec2ad8ba", + "semantic_hash": "bfec0778131788a91a0bc5c9ec2ad8ba" + }, + "backend/tests/test_budget.py": { + "mtime": 1789358107.2584474, + "seen": 1789377303.0692346, + "ast_hash": "f6e5c4d1e1d0f2b1941acf8ec9f6678b", + "semantic_hash": "f6e5c4d1e1d0f2b1941acf8ec9f6678b" + }, + "backend/tests/test_imports.py": { + "mtime": 1789358115.6295624, + "seen": 1789377303.0692356, + "ast_hash": "34ad7bb7ce983ff5fd4f8b3afc3d9f8b", + "semantic_hash": "34ad7bb7ce983ff5fd4f8b3afc3d9f8b" + }, + "backend/tests/test_ledger_properties.py": { + "mtime": 1789129573.0755556, + "seen": 1789377303.0692365, + "ast_hash": "fb7d5e4503c9482b5014e28528f75e2a", + "semantic_hash": "fb7d5e4503c9482b5014e28528f75e2a" + }, + "backend/tests/test_postgres_and_s3.py": { + "mtime": 1789130360.2146895, + "seen": 1789377303.0692372, + "ast_hash": "c811cba6bd00ab76e3e64f977bc29e04", + "semantic_hash": "c811cba6bd00ab76e3e64f977bc29e04" + }, + "frontend/eslint.config.js": { + "mtime": 1789128706.6116898, + "seen": 1789377303.069238, + "ast_hash": "ed54799a921d10394f826893acb46876", + "semantic_hash": "ed54799a921d10394f826893acb46876" + }, + "frontend/package.json": { + "mtime": 1789126987.143408, + "seen": 1789377303.069239, + "ast_hash": "d3b3d1b1c95c803bfa3f71241cdca23d", + "semantic_hash": "d3b3d1b1c95c803bfa3f71241cdca23d" + }, + "frontend/scripts/generate-api.mjs": { + "mtime": 1789126898.3307452, + "seen": 1789377303.0692399, + "ast_hash": "61461f226e7d2bba9730be8b7da165f9", + "semantic_hash": "61461f226e7d2bba9730be8b7da165f9" + }, + "frontend/src/App.tsx": { + "mtime": 1789127518.1600943, + "seen": 1789377303.0692406, + "ast_hash": "752eea473bb3bb6d8a2dd28f5ae87280", + "semantic_hash": "752eea473bb3bb6d8a2dd28f5ae87280" + }, + "frontend/src/api/client.ts": { + "mtime": 1789127044.43022, + "seen": 1789377303.0692413, + "ast_hash": "dbea075a006b7703340f7f93e69d53ac", + "semantic_hash": "dbea075a006b7703340f7f93e69d53ac" + }, + "frontend/src/api/endpoints.ts": { + "mtime": 1789357272.302138, + "seen": 1789377303.069242, + "ast_hash": "c4d7620bf50bef28b20286b6093e7e30", + "semantic_hash": "c4d7620bf50bef28b20286b6093e7e30" + }, + "frontend/src/api/generated/schema.d.ts": { + "mtime": 1789130160.8338337, + "seen": 1789377303.069243, + "ast_hash": "8857d50fb909f019e1d8c03009c0ada7", + "semantic_hash": "8857d50fb909f019e1d8c03009c0ada7" + }, + "frontend/src/api/queryKeys.ts": { + "mtime": 1789127044.43022, + "seen": 1789377303.0692437, + "ast_hash": "5ec23457cf6b0f223df671d3bc0f8455", + "semantic_hash": "5ec23457cf6b0f223df671d3bc0f8455" + }, + "frontend/src/api/types.ts": { + "mtime": 1789357272.302138, + "seen": 1789377303.069248, + "ast_hash": "0d3865b4525321cf5a6b360f72de5f5a", + "semantic_hash": "0d3865b4525321cf5a6b360f72de5f5a" + }, + "frontend/src/app/router.tsx": { + "mtime": 1789357305.2954476, + "seen": 1789377303.0692487, + "ast_hash": "0366437498b1933d212cd103252a0b11", + "semantic_hash": "0366437498b1933d212cd103252a0b11" + }, + "frontend/src/components/charts/ColumnChart.tsx": { + "mtime": 1789127463.8093653, + "seen": 1789377303.0692496, + "ast_hash": "3f2aeaca948431b2fd4cd86bedaa9ede", + "semantic_hash": "3f2aeaca948431b2fd4cd86bedaa9ede" + }, + "frontend/src/components/charts/HorizontalBars.tsx": { + "mtime": 1789127423.3778224, + "seen": 1789377303.06925, + "ast_hash": "e341240d131f12fe680424010279ddd3", + "semantic_hash": "e341240d131f12fe680424010279ddd3" + }, + "frontend/src/components/charts/PlanFactBars.tsx": { + "mtime": 1789127423.3794281, + "seen": 1789377303.069251, + "ast_hash": "f581486baa48447ec4c573acef3190ef", + "semantic_hash": "f581486baa48447ec4c573acef3190ef" + }, + "frontend/src/components/layout/AppLayout.tsx": { + "mtime": 1789127423.3794281, + "seen": 1789377303.0692518, + "ast_hash": "ae7a94355ca990e4efc91664db0d86c2", + "semantic_hash": "ae7a94355ca990e4efc91664db0d86c2" + }, + "frontend/src/components/layout/LangSwitcher.tsx": { + "mtime": 1789127423.3794281, + "seen": 1789377303.069253, + "ast_hash": "5be78b1684339d7ea82677fe1828162c", + "semantic_hash": "5be78b1684339d7ea82677fe1828162c" + }, + "frontend/src/components/ui/Badge.tsx": { + "mtime": 1789127112.4896402, + "seen": 1789377303.0692537, + "ast_hash": "f1a5dd94fafcaa4ab6edeb2221ffdd18", + "semantic_hash": "f1a5dd94fafcaa4ab6edeb2221ffdd18" + }, + "frontend/src/components/ui/Button.tsx": { + "mtime": 1789127112.4896402, + "seen": 1789377303.0692544, + "ast_hash": "ec61aded7bd1c0bc626b9f85243e6d24", + "semantic_hash": "ec61aded7bd1c0bc626b9f85243e6d24" + }, + "frontend/src/components/ui/ConfirmDialog.tsx": { + "mtime": 1789127142.0840394, + "seen": 1789377303.0692554, + "ast_hash": "45b3ad6925a6e69045a59593882c7ffc", + "semantic_hash": "45b3ad6925a6e69045a59593882c7ffc" + }, + "frontend/src/components/ui/EmptyState.tsx": { + "mtime": 1789127142.0700393, + "seen": 1789377303.0692563, + "ast_hash": "853f2c5b079b2cfa9e4f12363cefba3a", + "semantic_hash": "853f2c5b079b2cfa9e4f12363cefba3a" + }, + "frontend/src/components/ui/ErrorState.tsx": { + "mtime": 1789127142.067039, + "seen": 1789377303.069257, + "ast_hash": "6827eb04b914e8c675e842fea74b5ba5", + "semantic_hash": "6827eb04b914e8c675e842fea74b5ba5" + }, + "frontend/src/components/ui/Modal.tsx": { + "mtime": 1789127142.054039, + "seen": 1789377303.069259, + "ast_hash": "41b09f3998ca6f6d7ad415cceff4b9ea", + "semantic_hash": "41b09f3998ca6f6d7ad415cceff4b9ea" + }, + "frontend/src/components/ui/MonthSwitcher.tsx": { + "mtime": 1789127142.0860393, + "seen": 1789377303.06926, + "ast_hash": "ddb486640fa05b742fa71167949a2aca", + "semantic_hash": "ddb486640fa05b742fa71167949a2aca" + }, + "frontend/src/components/ui/PageHeader.tsx": { + "mtime": 1789127142.0810394, + "seen": 1789377303.0692606, + "ast_hash": "332c481c9030b26221b2b080482973a2", + "semantic_hash": "332c481c9030b26221b2b080482973a2" + }, + "frontend/src/components/ui/QueryGate.tsx": { + "mtime": 1789128567.5977647, + "seen": 1789377303.0692613, + "ast_hash": "ee535a82d89a1d2bc30c5ec4907817c1", + "semantic_hash": "ee535a82d89a1d2bc30c5ec4907817c1" + }, + "frontend/src/components/ui/Spinner.tsx": { + "mtime": 1789127142.061039, + "seen": 1789377303.0692623, + "ast_hash": "40c69d38fa5a96969026c1486ac981a5", + "semantic_hash": "40c69d38fa5a96969026c1486ac981a5" + }, + "frontend/src/components/ui/Toaster.tsx": { + "mtime": 1789127142.0780392, + "seen": 1789377303.0692632, + "ast_hash": "d76eafaf1a72d8435cbce2fd9d2f8764", + "semantic_hash": "d76eafaf1a72d8435cbce2fd9d2f8764" + }, + "frontend/src/components/ui/fields.tsx": { + "mtime": 1789128567.5907645, + "seen": 1789377303.069264, + "ast_hash": "5e1b157a5cd5b484582ba959049443aa", + "semantic_hash": "5e1b157a5cd5b484582ba959049443aa" + }, + "frontend/src/hooks/useAccounts.ts": { + "mtime": 1789127463.8123653, + "seen": 1789377303.0692647, + "ast_hash": "5cbd401bea752132870ca35a0b2cf29f", + "semantic_hash": "5cbd401bea752132870ca35a0b2cf29f" + }, + "frontend/src/hooks/useAnalytics.ts": { + "mtime": 1789127476.179531, + "seen": 1789377303.0692656, + "ast_hash": "2a0cad57cdfc7456c967b3fd122e6017", + "semantic_hash": "2a0cad57cdfc7456c967b3fd122e6017" + }, + "frontend/src/hooks/useAuth.ts": { + "mtime": 1789357272.302138, + "seen": 1789377303.0692663, + "ast_hash": "40f9f47b108ec0b484f9564bd1d319cb", + "semantic_hash": "40f9f47b108ec0b484f9564bd1d319cb" + }, + "frontend/src/hooks/useBudget.ts": { + "mtime": 1789127463.8123653, + "seen": 1789377303.0692673, + "ast_hash": "06c203b89322dca6cf80931f3558b0dc", + "semantic_hash": "06c203b89322dca6cf80931f3558b0dc" + }, + "frontend/src/hooks/useImports.ts": { + "mtime": 1789127476.176531, + "seen": 1789377303.0692682, + "ast_hash": "d23f116da79b15438601751b45519268", + "semantic_hash": "d23f116da79b15438601751b45519268" + }, + "frontend/src/hooks/useOperations.ts": { + "mtime": 1789127463.8123653, + "seen": 1789377303.069269, + "ast_hash": "3cac9924554a5465276a2c4431121866", + "semantic_hash": "3cac9924554a5465276a2c4431121866" + }, + "frontend/src/hooks/useSpaceLifecycle.ts": { + "mtime": 1789356647.3201435, + "seen": 1789377303.0692697, + "ast_hash": "87c19951711d1798821f227eac36d609", + "semantic_hash": "87c19951711d1798821f227eac36d609" + }, + "frontend/src/i18n/index.ts": { + "mtime": 1789128261.8073747, + "seen": 1789377303.0692706, + "ast_hash": "243512f6e095deeaa29393b7c831777f", + "semantic_hash": "243512f6e095deeaa29393b7c831777f" + }, + "frontend/src/i18n/locales/en.json": { + "mtime": 1789357272.302995, + "seen": 1789377303.0692713, + "ast_hash": "2ce7444db1936d9c5fcca10b901c4afc", + "semantic_hash": "2ce7444db1936d9c5fcca10b901c4afc" + }, + "frontend/src/i18n/locales/ru.json": { + "mtime": 1789357272.302995, + "seen": 1789377303.0692723, + "ast_hash": "ae00c080e0b9a10b6004c4094bcdb1ea", + "semantic_hash": "ae00c080e0b9a10b6004c4094bcdb1ea" + }, + "frontend/src/main.tsx": { + "mtime": 1789127518.1660943, + "seen": 1789377303.069273, + "ast_hash": "9219312484aae5efecb6534357f9aadf", + "semantic_hash": "9219312484aae5efecb6534357f9aadf" + }, + "frontend/src/pages/AcceptInvitePage.tsx": { + "mtime": 1789357272.302138, + "seen": 1789377303.069274, + "ast_hash": "11475c9e3ab1b5f50cbd8e5e63cca4cb", + "semantic_hash": "11475c9e3ab1b5f50cbd8e5e63cca4cb" + }, + "frontend/src/pages/AccountsPage.tsx": { + "mtime": 1789127567.9147615, + "seen": 1789377303.0692747, + "ast_hash": "5da5d66e5eb40222e4ceb1f75ca951bd", + "semantic_hash": "5da5d66e5eb40222e4ceb1f75ca951bd" + }, + "frontend/src/pages/AnalyticsPage.tsx": { + "mtime": 1789127904.7983484, + "seen": 1789377303.0692756, + "ast_hash": "4a83070566fde66ff6423b1064cde4e8", + "semantic_hash": "4a83070566fde66ff6423b1064cde4e8" + }, + "frontend/src/pages/BudgetPage.tsx": { + "mtime": 1789127621.1764753, + "seen": 1789377303.0692763, + "ast_hash": "c1421d4088b0f174dc7ecb082b2a257d", + "semantic_hash": "c1421d4088b0f174dc7ecb082b2a257d" + }, + "frontend/src/pages/ImportDetailPage.tsx": { + "mtime": 1789127866.2017796, + "seen": 1789377303.0692773, + "ast_hash": "52adf2e149d39f2b2d77f96640c72b5e", + "semantic_hash": "52adf2e149d39f2b2d77f96640c72b5e" + }, + "frontend/src/pages/ImportsPage.tsx": { + "mtime": 1789127830.2842758, + "seen": 1789377303.069278, + "ast_hash": "721376253dda864ff81a5025691947e0", + "semantic_hash": "721376253dda864ff81a5025691947e0" + }, + "frontend/src/pages/LoginPage.tsx": { + "mtime": 1789357272.302138, + "seen": 1789377303.069279, + "ast_hash": "6cb36d7a770d36c3dddf1dbb90ebc545", + "semantic_hash": "6cb36d7a770d36c3dddf1dbb90ebc545" + }, + "frontend/src/pages/NotFoundPage.tsx": { + "mtime": 1789127518.2310953, + "seen": 1789377303.0692797, + "ast_hash": "53e014a77ff3070820a83458af08a5fd", + "semantic_hash": "53e014a77ff3070820a83458af08a5fd" + }, + "frontend/src/pages/OperationsPage.tsx": { + "mtime": 1789128734.6790774, + "seen": 1789377303.0692806, + "ast_hash": "f4ae42adff88554aef7c522ce79daca3", + "semantic_hash": "f4ae42adff88554aef7c522ce79daca3" + }, + "frontend/src/pages/ResetPasswordPage.tsx": { + "mtime": 1789357305.2944477, + "seen": 1789377303.0692816, + "ast_hash": "4ecaf25ff754290936fd87db84f19414", + "semantic_hash": "4ecaf25ff754290936fd87db84f19414" + }, + "frontend/src/pages/ReviewQueuePage.tsx": { + "mtime": 1789127802.1288989, + "seen": 1789377303.0692823, + "ast_hash": "b3f57d73ef457c9b2427d74603972213", + "semantic_hash": "b3f57d73ef457c9b2427d74603972213" + }, + "frontend/src/pages/SettingsPage.tsx": { + "mtime": 1789128572.7868366, + "seen": 1789377303.069283, + "ast_hash": "6a35c2799ba84fdbc1367d768907e8fa", + "semantic_hash": "6a35c2799ba84fdbc1367d768907e8fa" + }, + "frontend/src/test/accounts-page.test.tsx": { + "mtime": 1789128626.8475864, + "seen": 1789377303.0692837, + "ast_hash": "d17270fb5ca22286d3d62d7e2679fbcb", + "semantic_hash": "d17270fb5ca22286d3d62d7e2679fbcb" + }, + "frontend/src/test/budget-plan.test.tsx": { + "mtime": 1789128448.8001103, + "seen": 1789377303.0692847, + "ast_hash": "b2abf4ff7b3ea5b6f730cddd021b4127", + "semantic_hash": "b2abf4ff7b3ea5b6f730cddd021b4127" + }, + "frontend/src/test/chart-accessible-table.test.tsx": { + "mtime": 1789128448.8031104, + "seen": 1789377303.0692854, + "ast_hash": "e8f2187db8969b2fb4975775e3dbdcb9", + "semantic_hash": "e8f2187db8969b2fb4975775e3dbdcb9" + }, + "frontend/src/test/helpers.tsx": { + "mtime": 1789128456.9108279, + "seen": 1789377303.0692863, + "ast_hash": "041d8de84ce39044e32d9a4e45f176a0", + "semantic_hash": "041d8de84ce39044e32d9a4e45f176a0" + }, + "frontend/src/test/i18n-parity.test.ts": { + "mtime": 1789128572.7505064, + "seen": 1789377303.069287, + "ast_hash": "cc870c8a667b6982c9fabd654468a46f", + "semantic_hash": "cc870c8a667b6982c9fabd654468a46f" + }, + "frontend/src/test/import-polling.test.tsx": { + "mtime": 1789128692.423248, + "seen": 1789377303.0692883, + "ast_hash": "2b83dee550ca31b0d5980c8ce3235fd0", + "semantic_hash": "2b83dee550ca31b0d5980c8ce3235fd0" + }, + "frontend/src/test/login-page.test.tsx": { + "mtime": 1789128286.0698264, + "seen": 1789377303.069289, + "ast_hash": "52ebeeb4fb554b4c830113cebcf9f530", + "semantic_hash": "52ebeeb4fb554b4c830113cebcf9f530" + }, + "frontend/src/test/money.test.ts": { + "mtime": 1789128261.8154838, + "seen": 1789377303.0692897, + "ast_hash": "8faf4d33972c1583baa98fcd8160dbd0", + "semantic_hash": "8faf4d33972c1583baa98fcd8160dbd0" + }, + "frontend/src/test/query-keys.test.ts": { + "mtime": 1789128626.8519824, + "seen": 1789377303.0692904, + "ast_hash": "554aa60181736710caf28df6f9b62a66", + "semantic_hash": "554aa60181736710caf28df6f9b62a66" + }, + "frontend/src/test/setup.ts": { + "mtime": 1789128261.8154838, + "seen": 1789377303.0692916, + "ast_hash": "5b0ef0fbf28fe880eac77ca470cdb72f", + "semantic_hash": "5b0ef0fbf28fe880eac77ca470cdb72f" + }, + "frontend/src/vite-env.d.ts": { + "mtime": 1789127028.213317, + "seen": 1789377303.0692923, + "ast_hash": "0352474ba2918efe13895edbc3780d94", + "semantic_hash": "0352474ba2918efe13895edbc3780d94" + }, + "frontend/tsconfig.json": { + "mtime": 1789126877.2434592, + "seen": 1789377303.069293, + "ast_hash": "c57160ea7b6323de41adceed69142721", + "semantic_hash": "c57160ea7b6323de41adceed69142721" + }, + "frontend/vite.config.ts": { + "mtime": 1789126877.239459, + "seen": 1789377303.0692937, + "ast_hash": "b99eeb04d213e3680abe9c3854521e80", + "semantic_hash": "b99eeb04d213e3680abe9c3854521e80" + }, + "infra/postgres/init-app-role.sh": { + "mtime": 1789129887.1068308, + "seen": 1789377303.069295, + "ast_hash": "4c2b103cde06bc6df773f005c00b73d6", + "semantic_hash": "4c2b103cde06bc6df773f005c00b73d6" + }, + ".github/workflows/ci.yml": { + "mtime": 1789360098.861183, + "seen": 1789377303.0692956, + "ast_hash": "2088fd86568bef56ce17fd0cc3b0b944", + "semantic_hash": "2088fd86568bef56ce17fd0cc3b0b944" + }, + ".kilo/plans/1789034192214-financial-tracker-mvp.md": { + "mtime": 1789099088.960013, + "seen": 1789377303.0692966, + "ast_hash": "a2f21668b5ef4c0005316ef3e54b6a28", + "semantic_hash": "a2f21668b5ef4c0005316ef3e54b6a28" + }, + "CONTEXT.md": { + "mtime": 1789126288.30262, + "seen": 1789377303.0692973, + "ast_hash": "c8211b75ee8dfba83e37f06ff219d2b1", + "semantic_hash": "c8211b75ee8dfba83e37f06ff219d2b1" + }, + "README.md": { + "mtime": 1789358273.3585796, + "seen": 1789377303.0692983, + "ast_hash": "79eb6002a05286e6655e6fe3904f5b29", + "semantic_hash": "79eb6002a05286e6655e6fe3904f5b29" + }, + "docs/adr/0001-financial-space-ownership-and-rls.md": { + "mtime": 1789126779.7591345, + "seen": 1789377303.0692992, + "ast_hash": "8fbddf58406caccd2d5a5b0e5f9ffab4", + "semantic_hash": "8fbddf58406caccd2d5a5b0e5f9ffab4" + }, + "docs/adr/0002-journal-and-budget-reserves.md": { + "mtime": 1789126779.7821348, + "seen": 1789377303.0693, + "ast_hash": "6ca9f9b8f91733ce37e15f339a656726", + "semantic_hash": "6ca9f9b8f91733ce37e15f339a656726" + }, + "docs/adr/0003-versioned-statement-imports.md": { + "mtime": 1789126790.5402813, + "seen": 1789377303.0693007, + "ast_hash": "6ed335eff108aaeaad91163d648825c1", + "semantic_hash": "6ed335eff108aaeaad91163d648825c1" + }, + "docs/adr/0004-provider-neutral-encrypted-data-boundary.md": { + "mtime": 1789126790.5422814, + "seen": 1789377303.0693016, + "ast_hash": "460e37c748836b116a4ea820768a8007", + "semantic_hash": "460e37c748836b116a4ea820768a8007" + }, + "docs/operations/backup-and-restore.md": { + "mtime": 1789126817.735651, + "seen": 1789377303.0693026, + "ast_hash": "188110b691922b9a23f4efa2ef4627e2", + "semantic_hash": "188110b691922b9a23f4efa2ef4627e2" + }, + "docs/operations/beta-release-runbook.md": { + "mtime": 1789126842.5229878, + "seen": 1789377303.0693033, + "ast_hash": "00dada41b2d3425da89bcd277acce41e", + "semantic_hash": "00dada41b2d3425da89bcd277acce41e" + }, + "docs/operations/deletion-ledger.md": { + "mtime": 1789126842.4969876, + "seen": 1789377303.0693042, + "ast_hash": "1aff4ccf6a2dbcf86ed72fd34bb69c6f", + "semantic_hash": "1aff4ccf6a2dbcf86ed72fd34bb69c6f" + }, + "docs/parsers/private-fixture-gate.md": { + "mtime": 1789126842.518988, + "seen": 1789377303.0693052, + "ast_hash": "d4e23880cc1e29bfe416a3730ebbc76e", + "semantic_hash": "d4e23880cc1e29bfe416a3730ebbc76e" + }, + "frontend/README.md": { + "mtime": 1789128756.9573848, + "seen": 1789377303.069306, + "ast_hash": "3c43f67a81ce2c7b0cd18aeab85ed2c2", + "semantic_hash": "3c43f67a81ce2c7b0cd18aeab85ed2c2" + }, + "frontend/index.html": { + "mtime": 1789126886.1155794, + "seen": 1789377303.0693069, + "ast_hash": "42788af442bf05e487937f435141f84b", + "semantic_hash": "42788af442bf05e487937f435141f84b" + }, + "infra/README.md": { + "mtime": 1789357215.8087454, + "seen": 1789377303.0693076, + "ast_hash": "0a7bb82cce04631f36f2d561a1665478", + "semantic_hash": "0a7bb82cce04631f36f2d561a1665478" + }, + "infra/docker-compose.yml": { + "mtime": 1789358018.8362348, + "seen": 1789377303.0693088, + "ast_hash": "ee8600186391e2a0bf175a7e7ea7a2d2", + "semantic_hash": "ee8600186391e2a0bf175a7e7ea7a2d2" + }, + "frontend/public/favicon.svg": { + "mtime": 1789126886.1235795, + "seen": 1789377303.0693095, + "ast_hash": "83637b50c3736f9f0675b7f23ff5a51e", + "semantic_hash": "83637b50c3736f9f0675b7f23ff5a51e" + } +} \ No newline at end of file diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml index 21cc3b0..c88b1ac 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -168,7 +168,7 @@ services: build: *backend-build restart: unless-stopped command: - ["celery", "-A", "app.worker.celery", "worker", "--loglevel=INFO", "--concurrency=2", "--prefetch=1", "--acks-late"] + ["celery", "-A", "app.worker.celery", "worker", "--loglevel=INFO", "--concurrency=2"] environment: *api-env depends_on: postgres: @@ -200,6 +200,11 @@ services: build: context: ../frontend dockerfile: ../infra/docker/Dockerfile.frontend + network: host + args: + - HTTP_PROXY + - HTTPS_PROXY + - NO_PROXY additional_contexts: infra: ../infra restart: unless-stopped diff --git a/infra/docker/Dockerfile.frontend b/infra/docker/Dockerfile.frontend index dd4bba5..1956a37 100644 --- a/infra/docker/Dockerfile.frontend +++ b/infra/docker/Dockerfile.frontend @@ -14,9 +14,9 @@ FROM node:22-alpine AS build WORKDIR /app -RUN corepack enable +RUN npm install --global pnpm@12.4.1 -COPY package.json pnpm-lock.yaml ./ +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN pnpm install --frozen-lockfile COPY . . @@ -24,7 +24,7 @@ RUN pnpm build FROM nginx:1.27-alpine AS runtime -COPY --from=infra infra/nginx/nginx.conf /etc/nginx/conf.d/default.conf +COPY --from=infra nginx/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80