From df289b20b875dc567a450e2dcd3aee44b5111a26 Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Tue, 25 Aug 2026 17:09:11 +0530 Subject: [PATCH] Consolidated commit message to v22 signals --- .agents/mcp_config.json | 31 + .agents/rules.md | 30 + .agents/rules/angular.md | 117 + .agents/skills/angular-signals/SKILL.md | 17 + .agents/skills/fastapi-pydantic-v2/SKILL.md | 16 + .../library-skills/.library-skills.json | 4 + .agents/skills/library-skills/SKILL.md | 37 + .agents/skills/sqlalchemy-async/SKILL.md | 19 + .agents/skills/strict-mypy/SKILL.md | 30 + brewman/.pre-commit-config.yaml | 2 +- .../09a4f0ca450f_recipe_steps_photos.py | 62 + brewman/brewman/db/base.py | 6 +- brewman/brewman/models/client.py | 8 +- brewman/brewman/models/recipe.py | 38 +- brewman/brewman/models/recipe_photo.py | 49 + brewman/brewman/models/recipe_step.py | 59 + brewman/brewman/routers/recipe.py | 867 ++-- brewman/brewman/routers/reports/entries.py | 27 +- brewman/brewman/routers/temporal_product.py | 5 +- brewman/brewman/schemas/recipe.py | 36 +- brewman/brewman/schemas/recipe_photo.py | 29 + brewman/brewman/schemas/recipe_step.py | 21 + brewman/brewman/schemas/temporal_product.py | 2 - brewman/pyproject.toml | 39 +- brewman/uv.lock | 662 +-- overlord/package.json | 49 +- .../account-detail.component.html | 103 +- .../account-detail.component.ts | 130 +- .../app/account/account-list.resolver.spec.ts | 18 - .../src/app/account/account-list.resolver.ts | 9 - .../account-list/account-list-datasource.ts | 101 - .../account-list/account-list.component.html | 98 +- .../account-list/account-list.component.ts | 177 +- .../app/account/account-type.resolver.spec.ts | 18 - .../src/app/account/account-type.resolver.ts | 9 - .../src/app/account/account-type.service.ts | 12 +- .../src/app/account/account.resolver.spec.ts | 18 - overlord/src/app/account/account.resolver.ts | 10 - overlord/src/app/account/account.routes.ts | 18 - overlord/src/app/app.config.ts | 58 +- .../app/attendance/attendance-datasource.ts | 16 - .../attendance/attendance-type.resolver.ts | 9 - .../app/attendance/attendance-type.service.ts | 12 +- .../app/attendance/attendance.component.html | 128 +- .../app/attendance/attendance.component.ts | 114 +- .../attendance/attendance.resolver.spec.ts | 18 - .../src/app/attendance/attendance.resolver.ts | 10 - .../src/app/attendance/attendance.routes.ts | 10 - .../src/app/attendance/attendance.service.ts | 18 +- .../src/app/auth/login/login.component.html | 8 +- .../src/app/auth/login/login.component.ts | 46 +- .../balance-sheet/balance-sheet-datasource.ts | 72 - .../balance-sheet.component.html | 92 +- .../balance-sheet/balance-sheet.component.ts | 124 +- .../balance-sheet.resolver.spec.ts | 18 - .../balance-sheet/balance-sheet.resolver.ts | 10 - .../app/balance-sheet/balance-sheet.routes.ts | 7 - .../balance-sheet/balance-sheet.service.ts | 22 +- .../batch-integrity-report-datasource.ts | 16 - .../batch-integrity-report.component.html | 58 +- .../batch-integrity-report.component.ts | 23 +- .../batch-integrity-report.routes.ts | 4 - .../batch-integrity-report.service.ts | 22 +- .../batch-integrity.resolver.spec.ts | 18 - .../batch-integrity.resolver.ts | 9 - .../src/app/cash-flow/cash-flow-datasource.ts | 16 - .../app/cash-flow/cash-flow.component.html | 52 +- .../src/app/cash-flow/cash-flow.component.ts | 103 +- .../app/cash-flow/cash-flow.resolver.spec.ts | 18 - .../src/app/cash-flow/cash-flow.resolver.ts | 12 - .../src/app/cash-flow/cash-flow.routes.ts | 7 - .../src/app/cash-flow/cash-flow.service.ts | 48 +- .../client-detail.component.html | 61 +- .../client-detail/client-detail.component.ts | 101 +- .../app/client/client-list.resolver.spec.ts | 18 - .../src/app/client/client-list.resolver.ts | 9 - .../client-list/client-list-datasource.ts | 71 - .../client-list/client-list.component.html | 98 +- .../client-list/client-list.component.ts | 86 +- .../src/app/client/client.resolver.spec.ts | 18 - overlord/src/app/client/client.resolver.ts | 10 - overlord/src/app/client/client.routes.ts | 8 - overlord/src/app/client/client.service.ts | 26 +- .../closing-stock/closing-stock-datasource.ts | 73 - .../closing-stock.component.html | 156 +- .../closing-stock/closing-stock.component.ts | 194 +- .../closing-stock.resolver.spec.ts | 18 - .../closing-stock/closing-stock.resolver.ts | 11 - .../app/closing-stock/closing-stock.routes.ts | 10 - .../closing-stock/closing-stock.service.ts | 29 +- overlord/src/app/core/account.service.ts | 64 +- overlord/src/app/core/batch.service.ts | 20 +- overlord/src/app/core/delay-interceptor.ts | 7 + .../app/core/nav-bar/nav-bar.component.html | 2 +- .../src/app/core/nav-bar/nav-bar.component.ts | 17 +- overlord/src/app/core/product-sku.ts | 4 + overlord/src/app/core/product.ts | 3 + overlord/src/app/core/title.service.ts | 19 +- overlord/src/app/core/voucher.service.ts | 80 +- .../cost-centre-detail.component.html | 29 +- .../cost-centre-detail.component.ts | 77 +- .../cost-centre-list.resolver.spec.ts | 18 - .../cost-centre/cost-centre-list.resolver.ts | 9 - .../cost-centre-list-datasource.ts | 69 - .../cost-centre-list.component.html | 54 +- .../cost-centre-list.component.ts | 81 +- .../cost-centre/cost-centre.resolver.spec.ts | 18 - .../app/cost-centre/cost-centre.resolver.ts | 10 - .../src/app/cost-centre/cost-centre.routes.ts | 11 - .../app/cost-centre/cost-centre.service.ts | 28 +- .../src/app/daybook/daybook-datasource.ts | 73 - .../src/app/daybook/daybook.component.html | 120 +- overlord/src/app/daybook/daybook.component.ts | 130 +- .../src/app/daybook/daybook.resolver.spec.ts | 18 - overlord/src/app/daybook/daybook.resolver.ts | 11 - overlord/src/app/daybook/daybook.routes.ts | 4 - overlord/src/app/daybook/daybook.service.ts | 32 +- .../employee-attendance-datasource.ts | 16 - .../employee-attendance.component.html | 145 +- .../employee-attendance.component.ts | 189 +- .../employee-attendance.resolver.ts | 12 - .../employee-attendance.routes.ts | 10 - .../employee-attendance.service.ts | 38 +- .../employee-benefits-datasource.ts | 16 - .../employee-benefits.component.html | 39 +- .../employee-benefits.component.ts | 298 +- .../employee-benefits.resolver.ts | 14 - .../employee-benefits.routes.ts | 7 - .../employee-functions.component.html | 20 +- .../employee-functions.component.ts | 56 +- .../employee-functions.service.ts | 6 +- .../employee-detail.component.html | 143 +- .../employee-detail.component.ts | 143 +- .../employee/employee-list.resolver.spec.ts | 18 - .../app/employee/employee-list.resolver.ts | 9 - .../employee-list/employee-list-datasource.ts | 106 - .../employee-list.component.html | 134 +- .../employee-list/employee-list.component.ts | 177 +- .../app/employee/employee.resolver.spec.ts | 18 - .../src/app/employee/employee.resolver.ts | 10 - overlord/src/app/employee/employee.routes.ts | 14 - overlord/src/app/employee/employee.service.ts | 35 +- .../src/app/entries/entries-datasource.ts | 44 - .../src/app/entries/entries.component.html | 167 +- overlord/src/app/entries/entries.component.ts | 204 +- .../src/app/entries/entries.resolver.spec.ts | 17 - overlord/src/app/entries/entries.resolver.ts | 26 - overlord/src/app/entries/entries.routes.ts | 4 - overlord/src/app/entries/entries.service.ts | 63 +- .../src/app/incentive/incentive-datasource.ts | 16 - .../app/incentive/incentive.component.html | 54 +- .../src/app/incentive/incentive.component.ts | 184 +- .../app/incentive/incentive.resolver.spec.ts | 18 - .../src/app/incentive/incentive.resolver.ts | 14 - .../src/app/incentive/incentive.routes.ts | 7 - overlord/src/app/issue/issue-datasource.ts | 16 - .../src/app/issue/issue-dialog.component.html | 15 +- .../src/app/issue/issue-dialog.component.ts | 92 +- .../src/app/issue/issue-grid-datasource.ts | 16 - overlord/src/app/issue/issue-grid.service.ts | 18 +- overlord/src/app/issue/issue.component.html | 156 +- overlord/src/app/issue/issue.component.ts | 495 +- overlord/src/app/issue/issue.resolver.spec.ts | 18 - overlord/src/app/issue/issue.resolver.ts | 14 - overlord/src/app/issue/issue.routes.ts | 10 - .../src/app/journal/journal-datasource.ts | 16 - .../app/journal/journal-dialog.component.html | 29 +- .../app/journal/journal-dialog.component.ts | 108 +- .../src/app/journal/journal.component.html | 247 +- overlord/src/app/journal/journal.component.ts | 561 ++- .../src/app/journal/journal.resolver.spec.ts | 18 - overlord/src/app/journal/journal.resolver.ts | 14 - overlord/src/app/journal/journal.routes.ts | 7 - overlord/src/app/ledger/ledger-datasource.ts | 120 - overlord/src/app/ledger/ledger.component.html | 198 +- overlord/src/app/ledger/ledger.component.ts | 236 +- .../src/app/ledger/ledger.resolver.spec.ts | 18 - overlord/src/app/ledger/ledger.resolver.ts | 12 - overlord/src/app/ledger/ledger.routes.ts | 10 - overlord/src/app/ledger/ledger.service.ts | 34 +- .../mozimo-daily-register-datasource.ts | 63 - .../mozimo-daily-register.component.html | 211 +- .../mozimo-daily-register.component.ts | 172 +- .../mozimo-daily-register.resolver.spec.ts | 18 - .../mozimo-daily-register.resolver.ts | 10 - .../mozimo-daily-register.routes.ts | 7 - .../mozimo-daily-register.service.ts | 18 +- .../mozimo-product-register-datasource.ts | 66 - .../mozimo-product-register.component.html | 217 +- .../mozimo-product-register.component.ts | 214 +- .../mozimo-product-register.resolver.spec.ts | 18 - .../mozimo-product-register.resolver.ts | 12 - .../mozimo-product-register.routes.ts | 7 - .../mozimo-product-register.service.ts | 40 +- .../net-transactions-datasource.ts | 75 - .../net-transactions.component.html | 80 +- .../net-transactions.component.ts | 127 +- .../net-transactions.resolver.spec.ts | 18 - .../net-transactions.resolver.ts | 11 - .../net-transactions.routes.ts | 4 - .../net-transactions.service.ts | 32 +- .../non-contract-purchase-datasource.ts | 16 - .../non-contract-purchase.component.html | 68 +- .../non-contract-purchase.component.ts | 31 +- .../non-contract-purchase.resolver.spec.ts | 18 - .../non-contract-purchase.resolver.ts | 9 - .../non-contract-purchase.routes.ts | 4 - .../non-contract-purchase.service.ts | 22 +- .../payment/payment-accounts.resolver.spec.ts | 18 - .../app/payment/payment-accounts.resolver.ts | 9 - .../src/app/payment/payment-datasource.ts | 16 - .../app/payment/payment-dialog.component.html | 30 +- .../app/payment/payment-dialog.component.ts | 102 +- .../src/app/payment/payment.component.html | 247 +- overlord/src/app/payment/payment.component.ts | 591 ++- .../src/app/payment/payment.resolver.spec.ts | 18 - overlord/src/app/payment/payment.resolver.ts | 15 - overlord/src/app/payment/payment.routes.ts | 10 - .../period-detail.component.html | 55 +- .../period-detail/period-detail.component.ts | 87 +- .../app/period/period-list.resolver.spec.ts | 18 - .../src/app/period/period-list.resolver.ts | 9 - .../period-list/period-list-datasource.ts | 16 - .../period-list/period-list.component.html | 42 +- .../period-list/period-list.component.ts | 35 +- .../src/app/period/period.resolver.spec.ts | 18 - overlord/src/app/period/period.resolver.ts | 10 - overlord/src/app/period/period.routes.ts | 14 - overlord/src/app/period/period.service.ts | 28 +- .../product-group-detail.component.html | 37 +- .../product-group-detail.component.ts | 92 +- .../product-group-list.resolver.spec.ts | 18 - .../product-group-list.resolver.ts | 9 - .../product-group-list-datasource.ts | 69 - .../product-group-list.component.html | 54 +- .../product-group-list.component.ts | 81 +- .../product-group.resolver.spec.ts | 18 - .../product-group/product-group.resolver.ts | 10 - .../app/product-group/product-group.routes.ts | 11 - .../product-group/product-group.service.ts | 28 +- .../product-ledger-datasource.ts | 77 - .../product-ledger.component.html | 186 +- .../product-ledger.component.ts | 242 +- .../product-ledger.resolver.spec.ts | 18 - .../product-ledger/product-ledger.resolver.ts | 12 - .../product-ledger/product-ledger.routes.ts | 7 - .../product-ledger/product-ledger.service.ts | 31 +- .../product-detail-datasource.ts | 16 - .../product-detail-dialog.component.html | 12 +- .../product-detail-dialog.component.ts | 76 +- .../product-detail.component.html | 156 +- .../product-detail.component.ts | 389 +- .../app/product/product-list.resolver.spec.ts | 18 - .../src/app/product/product-list.resolver.ts | 9 - .../product-list/product-list-datasource.ts | 96 - .../product-list/product-list.component.html | 180 +- .../product-list/product-list.component.ts | 190 +- .../src/app/product/product.resolver.spec.ts | 18 - overlord/src/app/product/product.resolver.ts | 10 - overlord/src/app/product/product.routes.ts | 14 - overlord/src/app/product/product.service.ts | 85 +- .../app/profit-loss/profit-loss-datasource.ts | 75 - .../profit-loss/profit-loss.component.html | 94 +- .../app/profit-loss/profit-loss.component.ts | 132 +- .../profit-loss/profit-loss.resolver.spec.ts | 18 - .../app/profit-loss/profit-loss.resolver.ts | 11 - .../src/app/profit-loss/profit-loss.routes.ts | 4 - .../app/profit-loss/profit-loss.service.ts | 28 +- .../purchase-entries-datasource.ts | 75 - .../purchase-entries.component.html | 120 +- .../purchase-entries.component.ts | 133 +- .../purchase-entries.resolver.spec.ts | 18 - .../purchase-entries.resolver.ts | 11 - .../purchase-entries.routes.ts | 4 - .../purchase-entries.service.ts | 28 +- .../purchase-return-datasource.ts | 16 - .../purchase-return-dialog.component.html | 15 +- .../purchase-return-dialog.component.ts | 92 +- .../purchase-return.component.html | 290 +- .../purchase-return.component.ts | 595 ++- .../purchase-return.resolver.spec.ts | 18 - .../purchase-return.resolver.ts | 13 - .../purchase-return/purchase-return.routes.ts | 7 - .../src/app/purchase/purchase-datasource.ts | 16 - .../purchase/purchase-dialog.component.html | 14 +- .../app/purchase/purchase-dialog.component.ts | 129 +- .../src/app/purchase/purchase.component.html | 287 +- .../src/app/purchase/purchase.component.ts | 654 ++- .../app/purchase/purchase.resolver.spec.ts | 18 - .../src/app/purchase/purchase.resolver.ts | 13 - overlord/src/app/purchase/purchase.routes.ts | 7 - .../src/app/purchases/purchases-datasource.ts | 75 - .../app/purchases/purchases.component.html | 108 +- .../src/app/purchases/purchases.component.ts | 124 +- .../app/purchases/purchases.resolver.spec.ts | 18 - .../src/app/purchases/purchases.resolver.ts | 11 - .../src/app/purchases/purchases.routes.ts | 4 - .../src/app/purchases/purchases.service.ts | 28 +- .../rate-contract-detail-datasource.ts | 16 - .../rate-contract-detail.component.html | 84 +- .../rate-contract-detail.component.ts | 252 +- .../rate-contract-list.resolver.spec.ts | 18 - .../rate-contract-list.resolver.ts | 9 - .../rate-contract-list-datasource.ts | 69 - .../rate-contract-list.component.html | 76 +- .../rate-contract-list.component.ts | 79 +- .../rate-contract.resolver.spec.ts | 18 - .../rate-contract/rate-contract.resolver.ts | 10 - .../app/rate-contract/rate-contract.routes.ts | 11 - .../rate-contract/rate-contract.service.ts | 28 +- .../raw-material-cost-datasource.ts | 69 - .../raw-material-cost.component.html | 158 +- .../raw-material-cost.component.ts | 142 +- .../raw-material-cost.resolver.spec.ts | 18 - .../raw-material-cost.resolver.ts | 12 - .../raw-material-cost.routes.ts | 7 - .../raw-material-cost.service.ts | 44 +- .../receipt/receipt-accounts.resolver.spec.ts | 18 - .../app/receipt/receipt-accounts.resolver.ts | 9 - .../src/app/receipt/receipt-datasource.ts | 16 - .../app/receipt/receipt-dialog.component.html | 21 +- .../app/receipt/receipt-dialog.component.ts | 102 +- .../src/app/receipt/receipt.component.html | 241 +- overlord/src/app/receipt/receipt.component.ts | 599 ++- .../src/app/receipt/receipt.resolver.spec.ts | 18 - overlord/src/app/receipt/receipt.resolver.ts | 15 - overlord/src/app/receipt/receipt.routes.ts | 10 - .../recipe-template-detail.component.html | 57 +- .../recipe-template-detail.component.ts | 98 +- .../recipe-template-list.resolver.spec.ts | 18 - .../recipe-template-list.resolver.ts | 9 - .../recipe-template-list-datasource.ts | 71 - .../recipe-template-list.component.html | 64 +- .../recipe-template-list.component.ts | 85 +- .../recipe-template.resolver.spec.ts | 18 - .../recipe-template.resolver.ts | 10 - .../recipe-template/recipe-template.routes.ts | 11 - .../recipe-template.service.ts | 28 +- .../recipe-detail/recipe-detail-datasource.ts | 16 - .../recipe-detail/recipe-detail.component.css | 186 + .../recipe-detail.component.html | 530 +- .../recipe-detail/recipe-detail.component.ts | 624 ++- .../app/recipe/recipe-list.resolver.spec.ts | 18 - .../src/app/recipe/recipe-list.resolver.ts | 10 - .../recipe-list/recipe-list-datasource.ts | 100 - .../recipe-list/recipe-list.component.html | 102 +- .../recipe-list/recipe-list.component.ts | 153 +- overlord/src/app/recipe/recipe-photo.ts | 13 + overlord/src/app/recipe/recipe-step.ts | 11 + .../src/app/recipe/recipe.resolver.spec.ts | 18 - overlord/src/app/recipe/recipe.resolver.ts | 10 - overlord/src/app/recipe/recipe.routes.ts | 17 - overlord/src/app/recipe/recipe.service.ts | 37 +- overlord/src/app/recipe/recipe.ts | 20 +- .../role-detail/role-detail.component.html | 72 +- .../role/role-detail/role-detail.component.ts | 195 +- .../src/app/role/role-list.resolver.spec.ts | 18 - overlord/src/app/role/role-list.resolver.ts | 9 - .../role/role-list/role-list-datasource.ts | 69 - .../role/role-list/role-list.component.html | 92 +- .../app/role/role-list/role-list.component.ts | 86 +- overlord/src/app/role/role.resolver.spec.ts | 18 - overlord/src/app/role/role.resolver.ts | 10 - overlord/src/app/role/role.routes.ts | 11 - overlord/src/app/role/role.service.ts | 28 +- overlord/src/app/settings/lock-datasource.ts | 16 - .../app/settings/lock-information.resolver.ts | 9 - .../src/app/settings/maintenance.resolver.ts | 8 - .../src/app/settings/settings.component.html | 84 +- .../src/app/settings/settings.component.ts | 228 +- overlord/src/app/settings/settings.routes.ts | 10 - overlord/src/app/settings/settings.service.ts | 29 +- .../src/app/settings/voucher-type.resolver.ts | 9 - .../src/app/settings/voucher-type.service.ts | 12 +- .../error-state/error-state.component.html | 10 + .../error-state/error-state.component.sass | 33 + .../error-state/error-state.component.spec.ts | 22 + .../error-state/error-state.component.ts | 21 + overlord/src/app/shared/pdf-export.service.ts | 52 + .../skeleton-loader.component.html | 16 + .../skeleton-loader.component.sass | 52 + .../skeleton-loader.component.spec.ts | 22 + .../skeleton-loader.component.ts | 17 + .../app/shared/spinner/spinner.component.html | 3 + .../app/shared/spinner/spinner.component.sass | 18 + .../shared/spinner/spinner.component.spec.ts | 22 + .../app/shared/spinner/spinner.component.ts | 12 + .../stock-movement-datasource.ts | 79 - .../stock-movement.component.html | 104 +- .../stock-movement.component.ts | 124 +- .../stock-movement.resolver.spec.ts | 18 - .../stock-movement/stock-movement.resolver.ts | 11 - .../stock-movement/stock-movement.routes.ts | 4 - .../stock-movement/stock-movement.service.ts | 32 +- .../app/tag-dialog/tag-dialog.component.html | 4 +- .../app/tag-dialog/tag-dialog.component.ts | 34 +- .../tag/tag-detail/tag-detail.component.html | 35 +- .../tag/tag-detail/tag-detail.component.ts | 81 +- .../src/app/tag/tag-list.resolver.spec.ts | 18 - overlord/src/app/tag/tag-list.resolver.ts | 9 - .../app/tag/tag-list/tag-list-datasource.ts | 69 - .../app/tag/tag-list/tag-list.component.html | 44 +- .../app/tag/tag-list/tag-list.component.ts | 81 +- overlord/src/app/tag/tag.resolver.spec.ts | 18 - overlord/src/app/tag/tag.resolver.ts | 10 - overlord/src/app/tag/tag.routes.ts | 11 - overlord/src/app/tag/tag.service.ts | 40 +- ...poral-product-detail-product-datasource.ts | 16 - .../temporal-product-detail-sku-datasource.ts | 16 - .../temporal-product-detail.component.html | 581 +-- .../temporal-product-detail.component.ts | 627 ++- .../temporal-product-list.resolver.spec.ts | 18 - .../temporal-product-list.resolver.ts | 9 - .../temporal-product-list-datasource.ts | 81 - .../temporal-product-list.component.html | 98 +- .../temporal-product-list.component.ts | 109 +- .../temporal-product.resolver.spec.ts | 15 - .../temporal-product.resolver.ts | 10 - .../temporal-product.service.ts | 22 +- .../temporal-products.routes.ts | 15 - .../transaction-import.component.ts | 26 +- .../trial-balance/trial-balance-datasource.ts | 75 - .../trial-balance.component.html | 74 +- .../trial-balance/trial-balance.component.ts | 118 +- .../trial-balance.resolver.spec.ts | 18 - .../trial-balance/trial-balance.resolver.ts | 10 - .../app/trial-balance/trial-balance.routes.ts | 7 - .../trial-balance/trial-balance.service.ts | 19 +- .../user-detail/user-detail.component.html | 67 +- .../user/user-detail/user-detail.component.ts | 117 +- .../src/app/user/user-list.resolver.spec.ts | 18 - overlord/src/app/user/user-list.resolver.ts | 9 - .../user/user-list/user-list-datasource.ts | 70 - .../user/user-list/user-list.component.html | 90 +- .../app/user/user-list/user-list.component.ts | 81 +- overlord/src/app/user/user.resolver.spec.ts | 18 - overlord/src/app/user/user.resolver.ts | 10 - overlord/src/app/user/user.routes.ts | 11 - overlord/src/app/user/user.service.ts | 36 +- overlord/src/layout.sass | 124 + overlord/src/styles.sass | 115 + overlord/tsconfig.app.json | 10 +- overlord/yarn.lock | 4305 +++++++---------- 443 files changed, 16058 insertions(+), 17332 deletions(-) create mode 100644 .agents/mcp_config.json create mode 100644 .agents/rules.md create mode 100644 .agents/rules/angular.md create mode 100644 .agents/skills/angular-signals/SKILL.md create mode 100644 .agents/skills/fastapi-pydantic-v2/SKILL.md create mode 100644 .agents/skills/library-skills/.library-skills.json create mode 100644 .agents/skills/library-skills/SKILL.md create mode 100644 .agents/skills/sqlalchemy-async/SKILL.md create mode 100644 .agents/skills/strict-mypy/SKILL.md create mode 100644 brewman/alembic/versions/09a4f0ca450f_recipe_steps_photos.py create mode 100644 brewman/brewman/models/recipe_photo.py create mode 100644 brewman/brewman/models/recipe_step.py create mode 100644 brewman/brewman/schemas/recipe_photo.py create mode 100644 brewman/brewman/schemas/recipe_step.py delete mode 100644 overlord/src/app/account/account-list.resolver.spec.ts delete mode 100644 overlord/src/app/account/account-list.resolver.ts delete mode 100644 overlord/src/app/account/account-list/account-list-datasource.ts delete mode 100644 overlord/src/app/account/account-type.resolver.spec.ts delete mode 100644 overlord/src/app/account/account-type.resolver.ts delete mode 100644 overlord/src/app/account/account.resolver.spec.ts delete mode 100644 overlord/src/app/account/account.resolver.ts delete mode 100644 overlord/src/app/attendance/attendance-datasource.ts delete mode 100644 overlord/src/app/attendance/attendance-type.resolver.ts delete mode 100644 overlord/src/app/attendance/attendance.resolver.spec.ts delete mode 100644 overlord/src/app/attendance/attendance.resolver.ts delete mode 100644 overlord/src/app/balance-sheet/balance-sheet-datasource.ts delete mode 100644 overlord/src/app/balance-sheet/balance-sheet.resolver.spec.ts delete mode 100644 overlord/src/app/balance-sheet/balance-sheet.resolver.ts delete mode 100644 overlord/src/app/batch-integrity-report/batch-integrity-report-datasource.ts delete mode 100644 overlord/src/app/batch-integrity-report/batch-integrity.resolver.spec.ts delete mode 100644 overlord/src/app/batch-integrity-report/batch-integrity.resolver.ts delete mode 100644 overlord/src/app/cash-flow/cash-flow-datasource.ts delete mode 100644 overlord/src/app/cash-flow/cash-flow.resolver.spec.ts delete mode 100644 overlord/src/app/cash-flow/cash-flow.resolver.ts delete mode 100644 overlord/src/app/client/client-list.resolver.spec.ts delete mode 100644 overlord/src/app/client/client-list.resolver.ts delete mode 100644 overlord/src/app/client/client-list/client-list-datasource.ts delete mode 100644 overlord/src/app/client/client.resolver.spec.ts delete mode 100644 overlord/src/app/client/client.resolver.ts delete mode 100644 overlord/src/app/closing-stock/closing-stock-datasource.ts delete mode 100644 overlord/src/app/closing-stock/closing-stock.resolver.spec.ts delete mode 100644 overlord/src/app/closing-stock/closing-stock.resolver.ts create mode 100644 overlord/src/app/core/delay-interceptor.ts delete mode 100644 overlord/src/app/cost-centre/cost-centre-list.resolver.spec.ts delete mode 100644 overlord/src/app/cost-centre/cost-centre-list.resolver.ts delete mode 100644 overlord/src/app/cost-centre/cost-centre-list/cost-centre-list-datasource.ts delete mode 100644 overlord/src/app/cost-centre/cost-centre.resolver.spec.ts delete mode 100644 overlord/src/app/cost-centre/cost-centre.resolver.ts delete mode 100644 overlord/src/app/daybook/daybook-datasource.ts delete mode 100644 overlord/src/app/daybook/daybook.resolver.spec.ts delete mode 100644 overlord/src/app/daybook/daybook.resolver.ts delete mode 100644 overlord/src/app/employee-attendance/employee-attendance-datasource.ts delete mode 100644 overlord/src/app/employee-attendance/employee-attendance.resolver.ts delete mode 100644 overlord/src/app/employee-benefits/employee-benefits-datasource.ts delete mode 100644 overlord/src/app/employee-benefits/employee-benefits.resolver.ts delete mode 100644 overlord/src/app/employee/employee-list.resolver.spec.ts delete mode 100644 overlord/src/app/employee/employee-list.resolver.ts delete mode 100644 overlord/src/app/employee/employee-list/employee-list-datasource.ts delete mode 100644 overlord/src/app/employee/employee.resolver.spec.ts delete mode 100644 overlord/src/app/employee/employee.resolver.ts delete mode 100644 overlord/src/app/entries/entries-datasource.ts delete mode 100644 overlord/src/app/entries/entries.resolver.spec.ts delete mode 100644 overlord/src/app/entries/entries.resolver.ts delete mode 100644 overlord/src/app/incentive/incentive-datasource.ts delete mode 100644 overlord/src/app/incentive/incentive.resolver.spec.ts delete mode 100644 overlord/src/app/incentive/incentive.resolver.ts delete mode 100644 overlord/src/app/issue/issue-datasource.ts delete mode 100644 overlord/src/app/issue/issue-grid-datasource.ts delete mode 100644 overlord/src/app/issue/issue.resolver.spec.ts delete mode 100644 overlord/src/app/issue/issue.resolver.ts delete mode 100644 overlord/src/app/journal/journal-datasource.ts delete mode 100644 overlord/src/app/journal/journal.resolver.spec.ts delete mode 100644 overlord/src/app/journal/journal.resolver.ts delete mode 100644 overlord/src/app/ledger/ledger-datasource.ts delete mode 100644 overlord/src/app/ledger/ledger.resolver.spec.ts delete mode 100644 overlord/src/app/ledger/ledger.resolver.ts delete mode 100644 overlord/src/app/mozimo-daily-register/mozimo-daily-register-datasource.ts delete mode 100644 overlord/src/app/mozimo-daily-register/mozimo-daily-register.resolver.spec.ts delete mode 100644 overlord/src/app/mozimo-daily-register/mozimo-daily-register.resolver.ts delete mode 100644 overlord/src/app/mozimo-product-register/mozimo-product-register-datasource.ts delete mode 100644 overlord/src/app/mozimo-product-register/mozimo-product-register.resolver.spec.ts delete mode 100644 overlord/src/app/mozimo-product-register/mozimo-product-register.resolver.ts delete mode 100644 overlord/src/app/net-transactions/net-transactions-datasource.ts delete mode 100644 overlord/src/app/net-transactions/net-transactions.resolver.spec.ts delete mode 100644 overlord/src/app/net-transactions/net-transactions.resolver.ts delete mode 100644 overlord/src/app/non-contact-purchase/non-contract-purchase-datasource.ts delete mode 100644 overlord/src/app/non-contact-purchase/non-contract-purchase.resolver.spec.ts delete mode 100644 overlord/src/app/non-contact-purchase/non-contract-purchase.resolver.ts delete mode 100644 overlord/src/app/payment/payment-accounts.resolver.spec.ts delete mode 100644 overlord/src/app/payment/payment-accounts.resolver.ts delete mode 100644 overlord/src/app/payment/payment-datasource.ts delete mode 100644 overlord/src/app/payment/payment.resolver.spec.ts delete mode 100644 overlord/src/app/payment/payment.resolver.ts delete mode 100644 overlord/src/app/period/period-list.resolver.spec.ts delete mode 100644 overlord/src/app/period/period-list.resolver.ts delete mode 100644 overlord/src/app/period/period-list/period-list-datasource.ts delete mode 100644 overlord/src/app/period/period.resolver.spec.ts delete mode 100644 overlord/src/app/period/period.resolver.ts delete mode 100644 overlord/src/app/product-group/product-group-list.resolver.spec.ts delete mode 100644 overlord/src/app/product-group/product-group-list.resolver.ts delete mode 100644 overlord/src/app/product-group/product-group-list/product-group-list-datasource.ts delete mode 100644 overlord/src/app/product-group/product-group.resolver.spec.ts delete mode 100644 overlord/src/app/product-group/product-group.resolver.ts delete mode 100644 overlord/src/app/product-ledger/product-ledger-datasource.ts delete mode 100644 overlord/src/app/product-ledger/product-ledger.resolver.spec.ts delete mode 100644 overlord/src/app/product-ledger/product-ledger.resolver.ts delete mode 100644 overlord/src/app/product/product-detail/product-detail-datasource.ts delete mode 100644 overlord/src/app/product/product-list.resolver.spec.ts delete mode 100644 overlord/src/app/product/product-list.resolver.ts delete mode 100644 overlord/src/app/product/product-list/product-list-datasource.ts delete mode 100644 overlord/src/app/product/product.resolver.spec.ts delete mode 100644 overlord/src/app/product/product.resolver.ts delete mode 100644 overlord/src/app/profit-loss/profit-loss-datasource.ts delete mode 100644 overlord/src/app/profit-loss/profit-loss.resolver.spec.ts delete mode 100644 overlord/src/app/profit-loss/profit-loss.resolver.ts delete mode 100644 overlord/src/app/purchase-entries/purchase-entries-datasource.ts delete mode 100644 overlord/src/app/purchase-entries/purchase-entries.resolver.spec.ts delete mode 100644 overlord/src/app/purchase-entries/purchase-entries.resolver.ts delete mode 100644 overlord/src/app/purchase-return/purchase-return-datasource.ts delete mode 100644 overlord/src/app/purchase-return/purchase-return.resolver.spec.ts delete mode 100644 overlord/src/app/purchase-return/purchase-return.resolver.ts delete mode 100644 overlord/src/app/purchase/purchase-datasource.ts delete mode 100644 overlord/src/app/purchase/purchase.resolver.spec.ts delete mode 100644 overlord/src/app/purchase/purchase.resolver.ts delete mode 100644 overlord/src/app/purchases/purchases-datasource.ts delete mode 100644 overlord/src/app/purchases/purchases.resolver.spec.ts delete mode 100644 overlord/src/app/purchases/purchases.resolver.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract-detail/rate-contract-detail-datasource.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract-list.resolver.spec.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract-list.resolver.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract-list/rate-contract-list-datasource.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract.resolver.spec.ts delete mode 100644 overlord/src/app/rate-contract/rate-contract.resolver.ts delete mode 100644 overlord/src/app/raw-material-cost/raw-material-cost-datasource.ts delete mode 100644 overlord/src/app/raw-material-cost/raw-material-cost.resolver.spec.ts delete mode 100644 overlord/src/app/raw-material-cost/raw-material-cost.resolver.ts delete mode 100644 overlord/src/app/receipt/receipt-accounts.resolver.spec.ts delete mode 100644 overlord/src/app/receipt/receipt-accounts.resolver.ts delete mode 100644 overlord/src/app/receipt/receipt-datasource.ts delete mode 100644 overlord/src/app/receipt/receipt.resolver.spec.ts delete mode 100644 overlord/src/app/receipt/receipt.resolver.ts delete mode 100644 overlord/src/app/recipe-template/recipe-template-list.resolver.spec.ts delete mode 100644 overlord/src/app/recipe-template/recipe-template-list.resolver.ts delete mode 100644 overlord/src/app/recipe-template/recipe-template-list/recipe-template-list-datasource.ts delete mode 100644 overlord/src/app/recipe-template/recipe-template.resolver.spec.ts delete mode 100644 overlord/src/app/recipe-template/recipe-template.resolver.ts delete mode 100644 overlord/src/app/recipe/recipe-detail/recipe-detail-datasource.ts delete mode 100644 overlord/src/app/recipe/recipe-list.resolver.spec.ts delete mode 100644 overlord/src/app/recipe/recipe-list.resolver.ts delete mode 100644 overlord/src/app/recipe/recipe-list/recipe-list-datasource.ts create mode 100644 overlord/src/app/recipe/recipe-photo.ts create mode 100644 overlord/src/app/recipe/recipe-step.ts delete mode 100644 overlord/src/app/recipe/recipe.resolver.spec.ts delete mode 100644 overlord/src/app/recipe/recipe.resolver.ts delete mode 100644 overlord/src/app/role/role-list.resolver.spec.ts delete mode 100644 overlord/src/app/role/role-list.resolver.ts delete mode 100644 overlord/src/app/role/role-list/role-list-datasource.ts delete mode 100644 overlord/src/app/role/role.resolver.spec.ts delete mode 100644 overlord/src/app/role/role.resolver.ts delete mode 100644 overlord/src/app/settings/lock-datasource.ts delete mode 100644 overlord/src/app/settings/lock-information.resolver.ts delete mode 100644 overlord/src/app/settings/maintenance.resolver.ts delete mode 100644 overlord/src/app/settings/voucher-type.resolver.ts create mode 100644 overlord/src/app/shared/error-state/error-state.component.html create mode 100644 overlord/src/app/shared/error-state/error-state.component.sass create mode 100644 overlord/src/app/shared/error-state/error-state.component.spec.ts create mode 100644 overlord/src/app/shared/error-state/error-state.component.ts create mode 100644 overlord/src/app/shared/pdf-export.service.ts create mode 100644 overlord/src/app/shared/skeleton-loader/skeleton-loader.component.html create mode 100644 overlord/src/app/shared/skeleton-loader/skeleton-loader.component.sass create mode 100644 overlord/src/app/shared/skeleton-loader/skeleton-loader.component.spec.ts create mode 100644 overlord/src/app/shared/skeleton-loader/skeleton-loader.component.ts create mode 100644 overlord/src/app/shared/spinner/spinner.component.html create mode 100644 overlord/src/app/shared/spinner/spinner.component.sass create mode 100644 overlord/src/app/shared/spinner/spinner.component.spec.ts create mode 100644 overlord/src/app/shared/spinner/spinner.component.ts delete mode 100644 overlord/src/app/stock-movement/stock-movement-datasource.ts delete mode 100644 overlord/src/app/stock-movement/stock-movement.resolver.spec.ts delete mode 100644 overlord/src/app/stock-movement/stock-movement.resolver.ts delete mode 100644 overlord/src/app/tag/tag-list.resolver.spec.ts delete mode 100644 overlord/src/app/tag/tag-list.resolver.ts delete mode 100644 overlord/src/app/tag/tag-list/tag-list-datasource.ts delete mode 100644 overlord/src/app/tag/tag.resolver.spec.ts delete mode 100644 overlord/src/app/tag/tag.resolver.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product-detail/temporal-product-detail-product-datasource.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product-detail/temporal-product-detail-sku-datasource.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product-list.resolver.spec.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product-list.resolver.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product-list/temporal-product-list-datasource.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product.resolver.spec.ts delete mode 100644 overlord/src/app/temporal-product/temporal-product.resolver.ts delete mode 100644 overlord/src/app/trial-balance/trial-balance-datasource.ts delete mode 100644 overlord/src/app/trial-balance/trial-balance.resolver.spec.ts delete mode 100644 overlord/src/app/trial-balance/trial-balance.resolver.ts delete mode 100644 overlord/src/app/user/user-list.resolver.spec.ts delete mode 100644 overlord/src/app/user/user-list.resolver.ts delete mode 100644 overlord/src/app/user/user-list/user-list-datasource.ts delete mode 100644 overlord/src/app/user/user.resolver.spec.ts delete mode 100644 overlord/src/app/user/user.resolver.ts diff --git a/.agents/mcp_config.json b/.agents/mcp_config.json new file mode 100644 index 00000000..199f6a62 --- /dev/null +++ b/.agents/mcp_config.json @@ -0,0 +1,31 @@ +{ + "mcpServers": { + "postgres-db": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-postgres", + "${POSTGRES_URL}" + ], + "env": { + "POSTGRES_URL": "${env:SQLALCHEMY_DATABASE_URI}" + } + }, + "filesystem": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "." + ] + }, + "angular-cli": { + "command": "npx", + "args": [ + "-y", + "@angular/cli", + "mcp" + ] + } + } +} diff --git a/.agents/rules.md b/.agents/rules.md new file mode 100644 index 00000000..ddc12db1 --- /dev/null +++ b/.agents/rules.md @@ -0,0 +1,30 @@ +# Project Architecture & Guidelines + +## Monorepo Layout +- **Backend**: `./brewman` (Python, managed via `uv`) +- **Frontend**: `./overlord` (Angular, managed via `npm`/`ng`) +- **Environment**: Root `.env` file containing shared/database variables. + +--- + +## Execution Rules & Commands + +### Backend (`/brewman`) +- **Working Directory**: Always execute backend commands within `./brewman` OR pass `--directory brewman` to `uv`. +- **Package & Script Management**: + - Use `uv` exclusively. Never run bare `pip` or global `python`. + - Run scripts/tests: `uv run python