celerp 1.2.0__tar.gz → 1.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. {celerp-1.2.0 → celerp-1.2.4}/CONTRIBUTING.md +2 -2
  2. celerp-1.2.4/LICENSE +107 -0
  3. {celerp-1.2.0 → celerp-1.2.4}/LICENSING.md +6 -6
  4. {celerp-1.2.0 → celerp-1.2.4}/MANIFEST.in +3 -1
  5. celerp-1.2.4/NOTICE +27 -0
  6. {celerp-1.2.0 → celerp-1.2.4}/PKG-INFO +67 -26
  7. {celerp-1.2.0 → celerp-1.2.4}/README.md +2 -1
  8. celerp-1.2.4/celerp/ai/intent.py +56 -0
  9. celerp-1.2.4/celerp/ai/llm.py +110 -0
  10. celerp-1.2.4/celerp/ai/quota.py +63 -0
  11. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/service.py +34 -27
  12. {celerp-1.2.0 → celerp-1.2.4}/celerp/cli.py +10 -1
  13. {celerp-1.2.0 → celerp-1.2.4}/celerp/config.py +6 -0
  14. {celerp-1.2.0 → celerp-1.2.4}/celerp/events/schemas.py +57 -0
  15. {celerp-1.2.0 → celerp-1.2.4}/celerp/events/types.py +3 -0
  16. {celerp-1.2.0 → celerp-1.2.4}/celerp/gateway/client.py +40 -11
  17. {celerp-1.2.0 → celerp-1.2.4}/celerp/gateway/state.py +31 -5
  18. {celerp-1.2.0 → celerp-1.2.4}/celerp/main.py +2 -0
  19. {celerp-1.2.0 → celerp-1.2.4}/celerp/middleware.py +7 -0
  20. celerp-1.2.4/celerp/migrations/versions/b1c2d3e4f5a6_add_supporter_badges.py +34 -0
  21. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/__init__.py +1 -0
  22. celerp-1.2.4/celerp/models/supporter.py +35 -0
  23. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/api.py +1 -5
  24. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/loader.py +18 -0
  25. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/companies.py +4 -2
  26. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/health.py +16 -3
  27. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/ledger.py +11 -5
  28. celerp-1.2.4/celerp/routers/stars.py +97 -0
  29. celerp-1.2.4/celerp/services/activity_redaction.py +86 -0
  30. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/fulfill.py +7 -0
  31. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/list_behavior.py +1 -1
  32. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/runtime_state.py +19 -0
  33. celerp-1.2.4/celerp/services/star_cta.py +85 -0
  34. celerp-1.2.4/celerp/services/supporter_badge.py +88 -0
  35. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/PKG-INFO +67 -26
  36. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/SOURCES.txt +14 -3
  37. celerp-1.2.4/celerp.egg-info/scm_file_list.json +923 -0
  38. celerp-1.2.4/celerp.egg-info/scm_version.json +8 -0
  39. {celerp-1.2.0 → celerp-1.2.4}/conftest.py +42 -0
  40. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/celerp_ai/routes.py +3 -12
  41. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/celerp_ai/ui_routes.py +3 -2
  42. celerp-1.2.4/default_modules/celerp-ai/tests/conftest.py +14 -0
  43. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_coverage_gaps.py +14 -71
  44. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_intent.py +7 -22
  45. celerp-1.2.4/default_modules/celerp-ai/tests/test_llm.py +158 -0
  46. celerp-1.2.4/default_modules/celerp-ai/tests/test_quota.py +110 -0
  47. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_router.py +7 -8
  48. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_service.py +25 -47
  49. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/routes.py +6 -6
  50. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-dashboard/celerp_dashboard/routes.py +12 -5
  51. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/doc_projections.py +23 -14
  52. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/routes.py +65 -37
  53. celerp-1.2.4/default_modules/celerp-docs/tests/test_fulfill_no_split.py +60 -0
  54. celerp-1.2.4/default_modules/celerp-docs/tests/test_fulfillment_activity.py +113 -0
  55. celerp-1.2.4/default_modules/celerp-docs/tests/test_payment_void_activity.py +55 -0
  56. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/projections.py +15 -1
  57. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/routes.py +202 -10
  58. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/routes_attachments.py +16 -18
  59. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/property_rental.json +2 -0
  60. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/saas.json +2 -0
  61. celerp-1.2.0/LICENSE-PROPRIETARY.md → celerp-1.2.4/legal/OFFICIAL-COMPONENTS.md +2 -2
  62. {celerp-1.2.0 → celerp-1.2.4}/ui/api_client.py +23 -4
  63. {celerp-1.2.0 → celerp-1.2.4}/ui/app.py +2 -2
  64. celerp-1.2.4/ui/components/activity.py +1060 -0
  65. {celerp-1.2.0 → celerp-1.2.4}/ui/components/cloud_gate.py +2 -10
  66. {celerp-1.2.0 → celerp-1.2.4}/ui/components/shell.py +173 -11
  67. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/ar.json +70 -8
  68. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/de.json +70 -8
  69. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/en.json +27 -19
  70. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/es.json +70 -8
  71. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/fr.json +69 -9
  72. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/id.json +70 -8
  73. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/it.json +70 -8
  74. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/ja.json +70 -8
  75. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/pt.json +69 -9
  76. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/th.json +70 -10
  77. {celerp-1.2.0 → celerp-1.2.4}/ui/locales/vi.json +69 -9
  78. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/auth.py +7 -4
  79. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/dashboard.py +46 -15
  80. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/documents.py +265 -28
  81. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/inventory.py +64 -9
  82. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings.py +44 -13
  83. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_cloud.py +2 -1
  84. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/setup.py +8 -6
  85. celerp-1.2.4/ui/routes/stars.py +109 -0
  86. {celerp-1.2.0 → celerp-1.2.4}/ui/static/app.css +36 -3
  87. celerp-1.2.4/ui/static/logo.png +0 -0
  88. celerp-1.2.0/LICENSE +0 -66
  89. celerp-1.2.0/NOTICE +0 -41
  90. celerp-1.2.0/celerp/ai/intent.py +0 -92
  91. celerp-1.2.0/celerp/ai/llm.py +0 -126
  92. celerp-1.2.0/celerp/ai/quota.py +0 -127
  93. celerp-1.2.0/default_modules/celerp-ai/tests/conftest.py +0 -33
  94. celerp-1.2.0/default_modules/celerp-ai/tests/test_llm.py +0 -209
  95. celerp-1.2.0/default_modules/celerp-ai/tests/test_quota.py +0 -210
  96. celerp-1.2.0/ui/LICENSE +0 -23
  97. celerp-1.2.0/ui/components/activity.py +0 -616
  98. celerp-1.2.0/ui/static/logo.png +0 -0
  99. {celerp-1.2.0 → celerp-1.2.4}/CLA.md +0 -0
  100. {celerp-1.2.0 → celerp-1.2.4}/alembic.ini +0 -0
  101. {celerp-1.2.0 → celerp-1.2.4}/celerp/__init__.py +0 -0
  102. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/__init__.py +0 -0
  103. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/batch.py +0 -0
  104. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/cleanup.py +0 -0
  105. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/commands.py +0 -0
  106. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/conversations.py +0 -0
  107. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/files.py +0 -0
  108. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/memory.py +0 -0
  109. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/models.py +0 -0
  110. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/page_count.py +0 -0
  111. {celerp-1.2.0 → celerp-1.2.4}/celerp/ai/tools.py +0 -0
  112. {celerp-1.2.0 → celerp-1.2.4}/celerp/alembic.ini +0 -0
  113. {celerp-1.2.0 → celerp-1.2.4}/celerp/alembic_config.py +0 -0
  114. {celerp-1.2.0 → celerp-1.2.4}/celerp/compute/__init__.py +0 -0
  115. {celerp-1.2.0 → celerp-1.2.4}/celerp/compute/aggregations.py +0 -0
  116. {celerp-1.2.0 → celerp-1.2.4}/celerp/compute/valuation.py +0 -0
  117. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/__init__.py +0 -0
  118. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/base.py +0 -0
  119. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/daily_scheduler.py +0 -0
  120. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/http.py +0 -0
  121. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/images.py +0 -0
  122. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/outbound_queue.py +0 -0
  123. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/quickbooks.py +0 -0
  124. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/registry.py +0 -0
  125. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/shopify.py +0 -0
  126. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/sync_runner.py +0 -0
  127. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/upsert.py +0 -0
  128. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/webhooks.py +0 -0
  129. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/woocommerce.py +0 -0
  130. {celerp-1.2.0 → celerp-1.2.4}/celerp/connectors/xero.py +0 -0
  131. {celerp-1.2.0 → celerp-1.2.4}/celerp/constants.py +0 -0
  132. {celerp-1.2.0 → celerp-1.2.4}/celerp/db.py +0 -0
  133. {celerp-1.2.0 → celerp-1.2.4}/celerp/events/__init__.py +0 -0
  134. {celerp-1.2.0 → celerp-1.2.4}/celerp/events/engine.py +0 -0
  135. {celerp-1.2.0 → celerp-1.2.4}/celerp/gateway/__init__.py +0 -0
  136. {celerp-1.2.0 → celerp-1.2.4}/celerp/importers/__init__.py +0 -0
  137. {celerp-1.2.0 → celerp-1.2.4}/celerp/importers/importer.py +0 -0
  138. {celerp-1.2.0 → celerp-1.2.4}/celerp/importers/schema.py +0 -0
  139. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/README.md +0 -0
  140. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/_auto_stamp.py +0 -0
  141. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/env.py +0 -0
  142. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/script.py.mako +0 -0
  143. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/a0b1c2d3e4f5_seed_landed_cost_clearing_accounts.py +0 -0
  144. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/a1b2c3d4e5f6_add_doc_share_tokens.py +0 -0
  145. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/b2c3d4e5f6a7_add_import_batches.py +0 -0
  146. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/c1d2e3f4a5b6_add_marketplace.py +0 -0
  147. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/d2e3f4a5b6c7_add_password_reset_token.py +0 -0
  148. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/e3f4a5b6c7d8_add_company_is_active.py +0 -0
  149. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/f1a2b3c4d5e6_move_accounts_marketplace_to_modules.py +0 -0
  150. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/fd5de461e14e_initial_schema.py +0 -0
  151. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/g1h2i3j4k5l6_add_consignment_flag.py +0 -0
  152. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/h2i3j4k5l6m7_add_bank_accounts_and_reconciliation.py +0 -0
  153. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/j4k5l6m7n8o9_labels_db_persistence.py +0 -0
  154. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/k5l6m7n8o9p0_add_reconciliation_v2.py +0 -0
  155. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/l6m7n8o9p0q1_add_sync_runs_table.py +0 -0
  156. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/m7n8o9p0q1r2_add_connector_configs_and_outbound_queue.py +0 -0
  157. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/n8o9p0q1r2s3_backfill_payment_date.py +0 -0
  158. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/o9p0q1r2s3t4_backfill_item_price_fields.py +0 -0
  159. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/p1q2r3s4t5u6_add_session_registry_and_user_auth_state.py +0 -0
  160. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/q2r3s4t5u6v7_add_system_runtime_state.py +0 -0
  161. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/r3s4t5u6v7w8_add_projections_company_entity_type_index.py +0 -0
  162. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/s4t5u6v7w8x9_drop_user_company_id_role.py +0 -0
  163. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/t5u6v7w8x9y0_seed_inventory_sub_accounts.py +0 -0
  164. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/u6v7w8x9y0z1_backfill_item_prices_from_attributes.py +0 -0
  165. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/v7w8x9y0z1a2_backfill_purchase_unit_defaults.py +0 -0
  166. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/w8x9y0z1a2b3_backfill_category_unit_defaults.py +0 -0
  167. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/x7y8z9a0b1c2_add_projection_created_at.py +0 -0
  168. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/y8z9a0b1c2d3_per_company_ledger_idempotency.py +0 -0
  169. {celerp-1.2.0 → celerp-1.2.4}/celerp/migrations/versions/z9a0b1c2d3e4_work_centers.py +0 -0
  170. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/accounting.py +0 -0
  171. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/ai.py +0 -0
  172. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/auth.py +0 -0
  173. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/base.py +0 -0
  174. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/company.py +0 -0
  175. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/connector_config.py +0 -0
  176. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/import_batch.py +0 -0
  177. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/ledger.py +0 -0
  178. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/marketplace.py +0 -0
  179. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/notification.py +0 -0
  180. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/projections.py +0 -0
  181. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/share.py +0 -0
  182. {celerp-1.2.0 → celerp-1.2.4}/celerp/models/sync_run.py +0 -0
  183. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/__init__.py +0 -0
  184. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/audit.py +0 -0
  185. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/license.py +0 -0
  186. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/references.py +0 -0
  187. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/registry.py +0 -0
  188. {celerp-1.2.0 → celerp-1.2.4}/celerp/modules/slots.py +0 -0
  189. {celerp-1.2.0 → celerp-1.2.4}/celerp/notifications/__init__.py +0 -0
  190. {celerp-1.2.0 → celerp-1.2.4}/celerp/notifications/service.py +0 -0
  191. {celerp-1.2.0 → celerp-1.2.4}/celerp/notifications/sse.py +0 -0
  192. {celerp-1.2.0 → celerp-1.2.4}/celerp/output/__init__.py +0 -0
  193. {celerp-1.2.0 → celerp-1.2.4}/celerp/output/pdf.py +0 -0
  194. {celerp-1.2.0 → celerp-1.2.4}/celerp/output/share_render.py +0 -0
  195. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/__init__.py +0 -0
  196. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/engine.py +0 -0
  197. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/handlers/__init__.py +0 -0
  198. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/handlers/marketplace.py +0 -0
  199. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/handlers/scanning.py +0 -0
  200. {celerp-1.2.0 → celerp-1.2.4}/celerp/projections/handlers/system.py +0 -0
  201. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/__init__.py +0 -0
  202. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/auth.py +0 -0
  203. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/debug.py +0 -0
  204. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/doctor.py +0 -0
  205. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/events.py +0 -0
  206. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/notifications.py +0 -0
  207. {celerp-1.2.0 → celerp-1.2.4}/celerp/routers/system.py +0 -0
  208. {celerp-1.2.0 → celerp-1.2.4}/celerp/schemas/__init__.py +0 -0
  209. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/__init__.py +0 -0
  210. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/attachments.py +0 -0
  211. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/auth.py +0 -0
  212. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/auto_je.py +0 -0
  213. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/backup.py +0 -0
  214. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/backup_export.py +0 -0
  215. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/backup_files.py +0 -0
  216. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/backup_import.py +0 -0
  217. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/backup_scheduler.py +0 -0
  218. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/demo.py +0 -0
  219. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/email.py +0 -0
  220. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/field_schema.py +0 -0
  221. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/je_keys.py +0 -0
  222. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/landed_cost.py +0 -0
  223. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/line_measures.py +0 -0
  224. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/money.py +0 -0
  225. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/pick.py +0 -0
  226. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/session_tracker.py +0 -0
  227. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/system_health.py +0 -0
  228. {celerp-1.2.0 → celerp-1.2.4}/celerp/services/units.py +0 -0
  229. {celerp-1.2.0 → celerp-1.2.4}/celerp/session_gate.py +0 -0
  230. {celerp-1.2.0 → celerp-1.2.4}/celerp/tax_regimes.py +0 -0
  231. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/dependency_links.txt +0 -0
  232. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/entry_points.txt +0 -0
  233. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/requires.txt +0 -0
  234. {celerp-1.2.0 → celerp-1.2.4}/celerp.egg-info/top_level.txt +0 -0
  235. {celerp-1.2.0 → celerp-1.2.4}/default_modules/__init__.py +0 -0
  236. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/LICENSE +0 -0
  237. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/__init__.py +0 -0
  238. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/__init__.py +0 -0
  239. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/api_setup.py +0 -0
  240. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/csv_parser.py +0 -0
  241. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/matcher.py +0 -0
  242. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/models.py +0 -0
  243. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/projections.py +0 -0
  244. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/routes.py +0 -0
  245. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/celerp_accounting/ui_routes.py +0 -0
  246. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/tests/test_accounting_banking.py +0 -0
  247. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/tests/test_accounting_banking_routers.py +0 -0
  248. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/tests/test_accounting_gaps.py +0 -0
  249. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/tests/test_accounting_import_idempotency.py +0 -0
  250. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-accounting/tests/test_reconciliation_v2.py +0 -0
  251. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-admin/__init__.py +0 -0
  252. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-admin/celerp_admin/__init__.py +0 -0
  253. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-admin/celerp_admin/routes.py +0 -0
  254. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-admin/celerp_admin/setup.py +0 -0
  255. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/__init__.py +0 -0
  256. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/celerp_ai/__init__.py +0 -0
  257. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/celerp_ai/setup.py +0 -0
  258. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_batch.py +0 -0
  259. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_cleanup.py +0 -0
  260. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_conversations.py +0 -0
  261. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_memory.py +0 -0
  262. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_models.py +0 -0
  263. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_page_count.py +0 -0
  264. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_routes_coverage.py +0 -0
  265. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-ai/tests/test_tools.py +0 -0
  266. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-backup/__init__.py +0 -0
  267. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-backup/celerp_backup/__init__.py +0 -0
  268. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-backup/celerp_backup/routes.py +0 -0
  269. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-backup/celerp_backup/setup.py +0 -0
  270. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/__init__.py +0 -0
  271. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/celerp_connectors/__init__.py +0 -0
  272. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/celerp_connectors/models.py +0 -0
  273. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/celerp_connectors/routes.py +0 -0
  274. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/__init__.py +0 -0
  275. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/conftest.py +0 -0
  276. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_compliance.py +0 -0
  277. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_connectors.py +0 -0
  278. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_outbound.py +0 -0
  279. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_quickbooks.py +0 -0
  280. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_rate_limiting.py +0 -0
  281. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_shopify.py +0 -0
  282. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_woocommerce.py +0 -0
  283. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-connectors/tests/test_xero.py +0 -0
  284. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/LICENSE +0 -0
  285. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/__init__.py +0 -0
  286. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/__init__.py +0 -0
  287. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/migrations.py +0 -0
  288. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/projections.py +0 -0
  289. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/services.py +0 -0
  290. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-contacts/celerp_contacts/ui_routes.py +0 -0
  291. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-dashboard/LICENSE +0 -0
  292. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-dashboard/__init__.py +0 -0
  293. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-dashboard/celerp_dashboard/__init__.py +0 -0
  294. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-dashboard/celerp_dashboard/setup.py +0 -0
  295. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/LICENSE +0 -0
  296. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/__init__.py +0 -0
  297. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/__init__.py +0 -0
  298. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/api_setup.py +0 -0
  299. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/doc_constants.py +0 -0
  300. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/doc_service.py +0 -0
  301. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/models_share.py +0 -0
  302. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/routes_share.py +0 -0
  303. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/sequences.py +0 -0
  304. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/taxes.py +0 -0
  305. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/celerp_docs/ui_routes.py +0 -0
  306. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/conftest.py +0 -0
  307. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_audits.py +0 -0
  308. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_freight_je.py +0 -0
  309. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_freight_lines.py +0 -0
  310. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_inbound_je_lifecycle.py +0 -0
  311. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_inventory_account_reconciliation.py +0 -0
  312. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_landed_receive.py +0 -0
  313. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_send_visibility.py +0 -0
  314. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-docs/tests/test_service_lines.py +0 -0
  315. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/LICENSE +0 -0
  316. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/__init__.py +0 -0
  317. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/__init__.py +0 -0
  318. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/models_import_batch.py +0 -0
  319. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/routes_scanning.py +0 -0
  320. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/services.py +0 -0
  321. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/celerp_inventory/ui_routes.py +0 -0
  322. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/tests/test_item_recipe_projection.py +0 -0
  323. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/tests/test_item_workflow_projection.py +0 -0
  324. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-inventory/tests/test_landed_cost_projection.py +0 -0
  325. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/LICENSE +0 -0
  326. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/__init__.py +0 -0
  327. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/__init__.py +0 -0
  328. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/migrations/__init__.py +0 -0
  329. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/migrations/labels_001_create_label_templates.py +0 -0
  330. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/models.py +0 -0
  331. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/presets.py +0 -0
  332. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/routes.py +0 -0
  333. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/service.py +0 -0
  334. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/celerp_labels/ui_routes.py +0 -0
  335. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/requirements.txt +0 -0
  336. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/tests/test_labels.py +0 -0
  337. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-labels/tests/test_labels_module.py +0 -0
  338. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/LICENSE +0 -0
  339. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/__init__.py +0 -0
  340. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/__init__.py +0 -0
  341. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/costing.py +0 -0
  342. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/expansion.py +0 -0
  343. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/labor.py +0 -0
  344. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/migrations.py +0 -0
  345. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/projection_handler.py +0 -0
  346. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/routes.py +0 -0
  347. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/celerp_manufacturing/ui_routes.py +0 -0
  348. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/requirements.txt +0 -0
  349. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_bom_removed.py +0 -0
  350. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_build_api.py +0 -0
  351. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_item_recipe_api.py +0 -0
  352. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_item_workflow_api.py +0 -0
  353. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_labor_providers.py +0 -0
  354. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_manufacture_from_doc.py +0 -0
  355. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_manufacturing.py +0 -0
  356. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_manufacturing_import_idempotency.py +0 -0
  357. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_manufacturing_module.py +0 -0
  358. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_mfg_events.py +0 -0
  359. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_phase2_manufacturing_validations.py +0 -0
  360. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_production_order.py +0 -0
  361. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_recipe_costing.py +0 -0
  362. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_recipe_expansion.py +0 -0
  363. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_recost_api.py +0 -0
  364. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_to_make_allocation.py +0 -0
  365. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_where_used.py +0 -0
  366. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_work_centers_and_settings.py +0 -0
  367. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-manufacturing/tests/test_workflow_time.py +0 -0
  368. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/LICENSE +0 -0
  369. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/__init__.py +0 -0
  370. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/celerp_reports/__init__.py +0 -0
  371. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/celerp_reports/api_setup.py +0 -0
  372. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/celerp_reports/routes.py +0 -0
  373. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/celerp_reports/ui_routes.py +0 -0
  374. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/tests/test_reports_full.py +0 -0
  375. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-reports/tests/test_reports_unit.py +0 -0
  376. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/LICENSE +0 -0
  377. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/__init__.py +0 -0
  378. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/celerp_subscriptions/__init__.py +0 -0
  379. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/celerp_subscriptions/routes.py +0 -0
  380. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/celerp_subscriptions/ui_routes.py +0 -0
  381. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/tests/test_subscriptions.py +0 -0
  382. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-subscriptions/tests/test_subscriptions_ui.py +0 -0
  383. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/LICENSE +0 -0
  384. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/__init__.py +0 -0
  385. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/__init__.py +0 -0
  386. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/accessory_fashion.json +0 -0
  387. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/activewear.json +0 -0
  388. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/art_photography.json +0 -0
  389. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/audio_equipment.json +0 -0
  390. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/bag_handbag.json +0 -0
  391. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/banknote.json +0 -0
  392. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/beauty_tool.json +0 -0
  393. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/bed_bedroom.json +0 -0
  394. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/beer.json +0 -0
  395. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/beverage_nonalc.json +0 -0
  396. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/body_part_auto.json +0 -0
  397. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/book.json +0 -0
  398. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/bottoms.json +0 -0
  399. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/brake_suspension.json +0 -0
  400. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/bullion_coin.json +0 -0
  401. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/camera.json +0 -0
  402. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/colored_stone.json +0 -0
  403. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/comic.json +0 -0
  404. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/commercial_space.json +0 -0
  405. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/component_part.json +0 -0
  406. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/confectionery.json +0 -0
  407. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/consulting_service.json +0 -0
  408. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/decorative_art.json +0 -0
  409. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/diamond.json +0 -0
  410. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/drawing.json +0 -0
  411. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/dress_jumpsuit.json +0 -0
  412. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_auto.json +0 -0
  413. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_component.json +0 -0
  414. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/emerald.json +0 -0
  415. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/engine_part.json +0 -0
  416. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fastener.json +0 -0
  417. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fertilizer_chemical.json +0 -0
  418. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/film_video.json +0 -0
  419. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fine_writing_instrument.json +0 -0
  420. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fluid_lubricant.json +0 -0
  421. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/footwear.json +0 -0
  422. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fragrance.json +0 -0
  423. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_food.json +0 -0
  424. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_produce.json +0 -0
  425. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/frozen_food.json +0 -0
  426. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/gaming_console.json +0 -0
  427. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/gold_bullion.json +0 -0
  428. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/grain_cereal.json +0 -0
  429. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/haircare.json +0 -0
  430. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/hand_tool.json +0 -0
  431. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/ingredient_bulk.json +0 -0
  432. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/interior_part.json +0 -0
  433. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/jewelry.json +0 -0
  434. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/kitchen_dining.json +0 -0
  435. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/laptop.json +0 -0
  436. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/lighting.json +0 -0
  437. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/livestock_feed.json +0 -0
  438. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/makeup.json +0 -0
  439. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/measuring_instrument.json +0 -0
  440. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/medal_token.json +0 -0
  441. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/mineral_specimen.json +0 -0
  442. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/mobile_phone.json +0 -0
  443. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/music_cd.json +0 -0
  444. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/music_vinyl.json +0 -0
  445. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/nail.json +0 -0
  446. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/numismatic_coin.json +0 -0
  447. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/outdoor_furniture.json +0 -0
  448. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/outerwear.json +0 -0
  449. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/packaged_food.json +0 -0
  450. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/painting.json +0 -0
  451. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/parking_bay.json +0 -0
  452. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/pearl.json +0 -0
  453. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/personal_care.json +0 -0
  454. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/pipe_plumbing.json +0 -0
  455. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/platinum_bullion.json +0 -0
  456. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/power_tool.json +0 -0
  457. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/print_edition.json +0 -0
  458. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/residential_unit.json +0 -0
  459. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/rough_gemstone.json +0 -0
  460. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/ruby.json +0 -0
  461. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/saas_plan.json +0 -0
  462. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/safety_ppe.json +0 -0
  463. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/sapphire.json +0 -0
  464. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/sculpture.json +0 -0
  465. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/seating.json +0 -0
  466. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/seeds.json +0 -0
  467. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/silver_bullion.json +0 -0
  468. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/skincare.json +0 -0
  469. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/soft_furnishing.json +0 -0
  470. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/software_addon.json +0 -0
  471. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/software_license.json +0 -0
  472. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/spirit.json +0 -0
  473. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/storage_furniture.json +0 -0
  474. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/swimwear.json +0 -0
  475. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/table_desk.json +0 -0
  476. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/tablet.json +0 -0
  477. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/tire_wheel.json +0 -0
  478. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/tops.json +0 -0
  479. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/trading_card.json +0 -0
  480. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/tv_display.json +0 -0
  481. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/video_game.json +0 -0
  482. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/watch.json +0 -0
  483. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/watch_strap.json +0 -0
  484. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/categories/wine.json +0 -0
  485. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/agricultural.json +0 -0
  486. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/artwork.json +0 -0
  487. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/automotive.json +0 -0
  488. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/blank.json +0 -0
  489. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/books_media.json +0 -0
  490. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/coins_precious_metals.json +0 -0
  491. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/consulting.json +0 -0
  492. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/cosmetics.json +0 -0
  493. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/electronics.json +0 -0
  494. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/fashion.json +0 -0
  495. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/food_beverage.json +0 -0
  496. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/furniture.json +0 -0
  497. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/gemstones.json +0 -0
  498. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/hardware.json +0 -0
  499. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/watches.json +0 -0
  500. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/presets/wine_spirits.json +0 -0
  501. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/routes.py +0 -0
  502. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/celerp_verticals/ui_routes.py +0 -0
  503. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/tests/test_verticals.py +0 -0
  504. {celerp-1.2.0 → celerp-1.2.4}/default_modules/celerp-verticals/tests/test_verticals_routers.py +0 -0
  505. {celerp-1.2.0 → celerp-1.2.4/legal}/TRADEMARK.md +0 -0
  506. {celerp-1.2.0 → celerp-1.2.4}/memory/fix-receive-goods-bugs.md +0 -0
  507. {celerp-1.2.0 → celerp-1.2.4}/pyproject.toml +0 -0
  508. {celerp-1.2.0 → celerp-1.2.4}/setup.cfg +0 -0
  509. {celerp-1.2.0 → celerp-1.2.4}/test_helpers.py +0 -0
  510. {celerp-1.2.0 → celerp-1.2.4}/ui/__init__.py +0 -0
  511. {celerp-1.2.0 → celerp-1.2.4}/ui/components/__init__.py +0 -0
  512. {celerp-1.2.0 → celerp-1.2.4}/ui/components/backup.py +0 -0
  513. {celerp-1.2.0 → celerp-1.2.4}/ui/components/currency.py +0 -0
  514. {celerp-1.2.0 → celerp-1.2.4}/ui/components/files.py +0 -0
  515. {celerp-1.2.0 → celerp-1.2.4}/ui/components/notes.py +0 -0
  516. {celerp-1.2.0 → celerp-1.2.4}/ui/components/phone.py +0 -0
  517. {celerp-1.2.0 → celerp-1.2.4}/ui/components/table.py +0 -0
  518. {celerp-1.2.0 → celerp-1.2.4}/ui/config.py +0 -0
  519. {celerp-1.2.0 → celerp-1.2.4}/ui/i18n.py +0 -0
  520. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/__init__.py +0 -0
  521. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/accounting.py +0 -0
  522. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/accounting_import.py +0 -0
  523. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/contacts.py +0 -0
  524. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/csv_import.py +0 -0
  525. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/docs_import.py +0 -0
  526. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/events.py +0 -0
  527. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/lists_import.py +0 -0
  528. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/manufacturing.py +0 -0
  529. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/notifications.py +0 -0
  530. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/reconciliation.py +0 -0
  531. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/reports.py +0 -0
  532. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/search.py +0 -0
  533. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_accounting.py +0 -0
  534. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_connectors.py +0 -0
  535. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_contacts.py +0 -0
  536. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_general.py +0 -0
  537. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_import.py +0 -0
  538. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_inventory.py +0 -0
  539. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_manufacturing.py +0 -0
  540. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_purchasing.py +0 -0
  541. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/settings_sales.py +0 -0
  542. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/subscriptions.py +0 -0
  543. {celerp-1.2.0 → celerp-1.2.4}/ui/routes/subscriptions_import.py +0 -0
  544. {celerp-1.2.0 → celerp-1.2.4}/ui/static/htmx.min.js +0 -0
  545. {celerp-1.2.0 → celerp-1.2.4}/ui/static/icon.png +0 -0
  546. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/img/flags.webp +0 -0
  547. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/img/flags@2x.webp +0 -0
  548. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/intlTelInput.min.css +0 -0
  549. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/intlTelInput.min.js +0 -0
  550. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/intlTelInputWithUtils.min.js +0 -0
  551. {celerp-1.2.0 → celerp-1.2.4}/ui/static/vendor/intl-tel-input/utils.js +0 -0
@@ -14,7 +14,7 @@ follows:
14
14
  commercial terms). Open an issue before substantial work and we will arrange signing.
15
15
  - **Third-party modules you do not submit upstream** (e.g. your own marketplace modules) need no CLA - a
16
16
  Developer Certificate of Origin sign-off (`git commit -s`) is sufficient for those. The MIT modules are
17
- the recommended starting point: fork one, rename it (see `TRADEMARK.md`), and license your derivative
17
+ the recommended starting point: fork one, rename it (see `legal/TRADEMARK.md`), and license your derivative
18
18
  however you wish.
19
19
 
20
20
  **How CLA acceptance works.** Contributions to official Celerp repositories require CLA acceptance before
@@ -23,7 +23,7 @@ pull request, post the exact acceptance phrase from your authenticated GitHub ac
23
23
  acceptance is recorded against the current `CLA.md` version. The bot blocks merge until acceptance is
24
24
  recorded.
25
25
 
26
- Trademarks are not licensed by any code license; see `TRADEMARK.md`.
26
+ Trademarks are not licensed by any code license; see `legal/TRADEMARK.md`.
27
27
 
28
28
  ## Environment variables
29
29
 
celerp-1.2.4/LICENSE ADDED
@@ -0,0 +1,107 @@
1
+ Business Source License 1.1
2
+
3
+ License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
4
+ "Business Source License" is a trademark of MariaDB Corporation Ab.
5
+
6
+ -----------------------------------------------------------------------------
7
+
8
+ Parameters
9
+
10
+ Licensor: Noah Severs
11
+ Licensed Work: Celerp
12
+ The Licensed Work is (c) 2026 Noah Severs
13
+ Additional Use Grant: You may use the Licensed Work in production to operate
14
+ Celerp for your own internal business purposes, including
15
+ self-hosted use by your company and its affiliates. This
16
+ Additional Use Grant does not include offering the Licensed
17
+ Work, modified versions of the Licensed Work, or a
18
+ substantially similar competing product as a hosted service,
19
+ SaaS service, managed service, OEM product, or white-label
20
+ product to third parties without a commercial agreement with
21
+ Licensor.
22
+
23
+ Change Date: 2029-01-01
24
+
25
+ Change License: Apache License, Version 2.0
26
+
27
+ For information about alternative licensing arrangements for the Licensed Work
28
+ (including commercial licensing, OEM agreements, and white-label inquiries),
29
+ please contact https://celerp.com.
30
+
31
+ -----------------------------------------------------------------------------
32
+
33
+ Notice
34
+
35
+ The Business Source License (this document, or the "License") is not an Open
36
+ Source license. However, the Licensed Work will eventually be made available
37
+ under an Open Source License, as stated in this License.
38
+
39
+ -----------------------------------------------------------------------------
40
+
41
+ Terms
42
+
43
+ The Licensor hereby grants you the right to copy, modify, create derivative
44
+ works, redistribute, and make non-production use of the Licensed Work. The
45
+ Licensor may make an Additional Use Grant, above, permitting limited production
46
+ use.
47
+
48
+ Effective on the Change Date, or the fourth anniversary of the first publicly
49
+ available distribution of a specific version of the Licensed Work under this
50
+ License, whichever comes first, the Licensor hereby grants you rights under
51
+ the terms of the Change License, and the rights granted in the paragraph
52
+ above terminate.
53
+
54
+ If your use of the Licensed Work does not comply with the requirements
55
+ currently in effect as described in this License, you must purchase a
56
+ commercial license from the Licensor, its affiliated entities, or authorized
57
+ resellers, or you must refrain from using the Licensed Work.
58
+
59
+ All copies of the original and modified Licensed Work, and derivative works of
60
+ the Licensed Work, are subject to this License. This License applies
61
+ separately for each version of the Licensed Work and the Change Date may vary
62
+ for each version of the Licensed Work released by Licensor.
63
+
64
+ You must conspicuously display this License on each original or modified copy
65
+ of the Licensed Work. If you receive the Licensed Work in original or modified
66
+ form from a third party, the terms and conditions set forth in this License
67
+ apply to your use of that work.
68
+
69
+ Any use of the Licensed Work in violation of this License will automatically
70
+ terminate your rights under this License for the current and all other
71
+ versions of the Licensed Work.
72
+
73
+ This License does not grant you any right in any trademark or logo of Licensor
74
+ or its affiliates (provided that you may use a trademark or logo of Licensor
75
+ as expressly required by this License).
76
+
77
+ TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
78
+ "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
79
+ OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY,
80
+ FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
81
+
82
+ MariaDB hereby grants you permission to use this License's text to license
83
+ your works, and to refer to it using the trademark "Business Source License",
84
+ as long as you comply with the Covenants of Licensor below.
85
+
86
+ -----------------------------------------------------------------------------
87
+
88
+ Covenants of Licensor
89
+
90
+ In consideration of the right to use this License's text and the "Business
91
+ Source License" name and trademark, Licensor covenants to MariaDB, and to all
92
+ other recipients of the licensed work to be provided by Licensor:
93
+
94
+ 1. To specify as the Change License the GPL Version 2.0 or any later version,
95
+ or a license that is compatible with GPL Version 2.0 or a later version,
96
+ where "compatible" means that software provided under the Change License can
97
+ be included in a program with software provided under GPL Version 2.0 or a
98
+ later version. Licensor may specify additional Change Licenses without
99
+ limitation.
100
+
101
+ 2. To either: (a) specify an additional grant of rights to use that does not
102
+ impose any additional restriction on the right granted in this License, as
103
+ the Additional Use Grant; or (b) insert the text "None".
104
+
105
+ 3. To specify a Change Date.
106
+
107
+ 4. Not to modify this License in any other way.
@@ -7,11 +7,11 @@ operative statement for that file; this map governs by path otherwise.
7
7
  | Path | License | Text |
8
8
  |---|---|---|
9
9
  | `celerp/` (engine/kernel) | Business Source License 1.1 | `LICENSE` |
10
- | `celerp/gateway/`, `celerp/session_gate.py`, `celerp/ai/`, `celerp/cloud/` | Celerp Proprietary | `LICENSE-PROPRIETARY.md` |
11
- | `celerp/output/` (official document/PDF + public share renderers) | Celerp Proprietary | `LICENSE-PROPRIETARY.md` |
12
- | `ui/` (application UI layer) | Celerp Proprietary | `LICENSE-PROPRIETARY.md` |
10
+ | `celerp/gateway/`, `celerp/session_gate.py`, `celerp/ai/`, `celerp/cloud/` | Celerp Official Components License (LicenseRef-Proprietary) | `legal/OFFICIAL-COMPONENTS.md` |
11
+ | `celerp/output/` (official document/PDF + public share renderers) | Celerp Official Components License (LicenseRef-Proprietary) | `legal/OFFICIAL-COMPONENTS.md` |
12
+ | `ui/` (application UI layer) | Celerp Official Components License (LicenseRef-Proprietary) | `legal/OFFICIAL-COMPONENTS.md` |
13
13
  | `default_modules/celerp-admin/` | Business Source License 1.1 | `LICENSE` |
14
- | `default_modules/celerp-ai/`, `celerp-backup/`, `celerp-connectors/` | Celerp Proprietary | `LICENSE-PROPRIETARY.md` |
14
+ | `default_modules/celerp-ai/`, `celerp-backup/`, `celerp-connectors/` | Celerp Official Components License (LicenseRef-Proprietary) | `legal/OFFICIAL-COMPONENTS.md` |
15
15
  | `default_modules/celerp-accounting/` | MIT | module `LICENSE` |
16
16
  | `default_modules/celerp-contacts/` | MIT | module `LICENSE` |
17
17
  | `default_modules/celerp-dashboard/` | MIT | module `LICENSE` |
@@ -32,8 +32,8 @@ Notes:
32
32
  the license of the engine it requires, and using the engine remains governed by `LICENSE`.
33
33
  - **Attribution:** the "Powered by Celerp" mark is produced and required by the proprietary components
34
34
  (the official UI and document/PDF rendering layer) and the Cloud Services agreement. It is NOT imposed
35
- by the MIT modules - MIT cannot carry that restriction. See `LICENSE-PROPRIETARY.md`.
36
- - Trademarks are not licensed by any of the above; see `TRADEMARK.md`.
35
+ by the MIT modules - MIT cannot carry that restriction. See `legal/OFFICIAL-COMPONENTS.md`.
36
+ - Trademarks are not licensed by any of the above; see `legal/TRADEMARK.md`.
37
37
  - Third-party dependencies retain their own licenses.
38
38
 
39
39
  Copyright (c) 2026 Noah Severs.
@@ -1,8 +1,10 @@
1
1
  include README.md
2
2
  include LICENSE
3
3
  include NOTICE
4
+ include LICENSING.md
5
+ include legal/OFFICIAL-COMPONENTS.md
6
+ include legal/TRADEMARK.md
4
7
  include alembic.ini
5
- include ui/LICENSE
6
8
  include default_modules/celerp-manufacturing/LICENSE
7
9
  include default_modules/celerp-labels/LICENSE
8
10
 
celerp-1.2.4/NOTICE ADDED
@@ -0,0 +1,27 @@
1
+ NOTICE - Celerp
2
+
3
+ Celerp is distributed under multiple licenses. This NOTICE is an attribution and
4
+ packaging summary; it is not the operative license grant.
5
+
6
+ - The full first-party license map is in LICENSING.md, which is authoritative.
7
+ Where a source file carries an SPDX-License-Identifier header, that header
8
+ governs that file.
9
+ - Some official Celerp components are governed by the Celerp Official
10
+ Components License (SPDX: LicenseRef-Proprietary); see
11
+ legal/OFFICIAL-COMPONENTS.md.
12
+ - The source-available engine and the celerp-admin module are under the
13
+ Business Source License 1.1 (SPDX: BUSL-1.1); see LICENSE.
14
+ - The default business modules are under the MIT License; see the LICENSE file
15
+ in each module subdirectory.
16
+
17
+ Attribution: the "Powered by Celerp" mark in user-visible output is produced and
18
+ required by the official components (the UI and document/PDF rendering layer) and
19
+ the Cloud Services agreement; it is not imposed by the MIT modules.
20
+
21
+ Trademarks ("Celerp" and the Celerp logo) are not licensed by any code license;
22
+ see legal/TRADEMARK.md.
23
+
24
+ Third-party components included in packaged desktop builds are governed by their
25
+ own license files; see licenses/.
26
+
27
+ For commercial, OEM, or white-label inquiries: https://celerp.com
@@ -1,32 +1,46 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celerp
3
- Version: 1.2.0
3
+ Version: 1.2.4
4
4
  Summary: Free, self-hosted ERP for small businesses
5
5
  License: Business Source License 1.1
6
6
 
7
+ License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
8
+ "Business Source License" is a trademark of MariaDB Corporation Ab.
9
+
10
+ -----------------------------------------------------------------------------
11
+
7
12
  Parameters
8
13
 
9
14
  Licensor: Noah Severs
10
15
  Licensed Work: Celerp
11
16
  The Licensed Work is (c) 2026 Noah Severs
12
- Additional Use Grant: You may make production use of the Licensed Work, including
13
- deploying it for your own business operations, provided that
14
- you may not offer the Licensed Work as a hosted service to
15
- third parties (SaaS/PaaS) without a separate commercial
16
- agreement with the Licensor.
17
+ Additional Use Grant: You may use the Licensed Work in production to operate
18
+ Celerp for your own internal business purposes, including
19
+ self-hosted use by your company and its affiliates. This
20
+ Additional Use Grant does not include offering the Licensed
21
+ Work, modified versions of the Licensed Work, or a
22
+ substantially similar competing product as a hosted service,
23
+ SaaS service, managed service, OEM product, or white-label
24
+ product to third parties without a commercial agreement with
25
+ Licensor.
17
26
 
18
27
  Change Date: 2029-01-01
19
28
 
20
29
  Change License: Apache License, Version 2.0
21
30
 
31
+ For information about alternative licensing arrangements for the Licensed Work
32
+ (including commercial licensing, OEM agreements, and white-label inquiries),
33
+ please contact https://celerp.com.
34
+
22
35
  -----------------------------------------------------------------------------
23
36
 
24
- For commercial licensing, OEM agreements, or white-label inquiries:
25
- https://celerp.com
37
+ Notice
26
38
 
27
- -----------------------------------------------------------------------------
39
+ The Business Source License (this document, or the "License") is not an Open
40
+ Source license. However, the Licensed Work will eventually be made available
41
+ under an Open Source License, as stated in this License.
28
42
 
29
- Business Source License 1.1
43
+ -----------------------------------------------------------------------------
30
44
 
31
45
  Terms
32
46
 
@@ -37,19 +51,19 @@ License: Business Source License 1.1
37
51
 
38
52
  Effective on the Change Date, or the fourth anniversary of the first publicly
39
53
  available distribution of a specific version of the Licensed Work under this
40
- License, whichever comes first, the Licensor hereby grants you rights under the
41
- terms of the Change License, and the rights granted in the paragraph above
42
- terminate.
54
+ License, whichever comes first, the Licensor hereby grants you rights under
55
+ the terms of the Change License, and the rights granted in the paragraph
56
+ above terminate.
43
57
 
44
- If your use of the Licensed Work does not comply with the requirements currently
45
- in effect as described in this License, you must purchase a commercial license
46
- from the Licensor, its affiliated entities, or authorized resellers, or you must
47
- refrain from using the Licensed Work.
58
+ If your use of the Licensed Work does not comply with the requirements
59
+ currently in effect as described in this License, you must purchase a
60
+ commercial license from the Licensor, its affiliated entities, or authorized
61
+ resellers, or you must refrain from using the Licensed Work.
48
62
 
49
63
  All copies of the original and modified Licensed Work, and derivative works of
50
- the Licensed Work, are subject to this License. This License applies separately
51
- for each version of the Licensed Work and the Change Date may vary for each
52
- version of the Licensed Work released by the Licensor.
64
+ the Licensed Work, are subject to this License. This License applies
65
+ separately for each version of the Licensed Work and the Change Date may vary
66
+ for each version of the Licensed Work released by Licensor.
53
67
 
54
68
  You must conspicuously display this License on each original or modified copy
55
69
  of the Licensed Work. If you receive the Licensed Work in original or modified
@@ -57,18 +71,45 @@ License: Business Source License 1.1
57
71
  apply to your use of that work.
58
72
 
59
73
  Any use of the Licensed Work in violation of this License will automatically
60
- terminate your rights under this License for the current and all other versions
61
- of the Licensed Work.
74
+ terminate your rights under this License for the current and all other
75
+ versions of the Licensed Work.
62
76
 
63
77
  This License does not grant you any right in any trademark or logo of Licensor
64
- or its affiliates (provided that you may use a trademark or logo of Licensor as
65
- expressly required by this License).
78
+ or its affiliates (provided that you may use a trademark or logo of Licensor
79
+ as expressly required by this License).
66
80
 
67
81
  TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
68
82
  "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
69
83
  OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY,
70
84
  FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
71
85
 
86
+ MariaDB hereby grants you permission to use this License's text to license
87
+ your works, and to refer to it using the trademark "Business Source License",
88
+ as long as you comply with the Covenants of Licensor below.
89
+
90
+ -----------------------------------------------------------------------------
91
+
92
+ Covenants of Licensor
93
+
94
+ In consideration of the right to use this License's text and the "Business
95
+ Source License" name and trademark, Licensor covenants to MariaDB, and to all
96
+ other recipients of the licensed work to be provided by Licensor:
97
+
98
+ 1. To specify as the Change License the GPL Version 2.0 or any later version,
99
+ or a license that is compatible with GPL Version 2.0 or a later version,
100
+ where "compatible" means that software provided under the Change License can
101
+ be included in a program with software provided under GPL Version 2.0 or a
102
+ later version. Licensor may specify additional Change Licenses without
103
+ limitation.
104
+
105
+ 2. To either: (a) specify an additional grant of rights to use that does not
106
+ impose any additional restriction on the right granted in this License, as
107
+ the Additional Use Grant; or (b) insert the text "None".
108
+
109
+ 3. To specify a Change Date.
110
+
111
+ 4. Not to modify this License in any other way.
112
+
72
113
  Project-URL: Homepage, https://celerp.com
73
114
  Project-URL: Repository, https://github.com/celerp/celerp
74
115
  Project-URL: Documentation, https://celerp.com/docs
@@ -85,7 +126,6 @@ Classifier: Topic :: Office/Business :: Financial :: Accounting
85
126
  Requires-Python: >=3.10
86
127
  Description-Content-Type: text/markdown
87
128
  License-File: LICENSE
88
- License-File: LICENSE-PROPRIETARY.md
89
129
  License-File: NOTICE
90
130
  Requires-Dist: fastapi>=0.115
91
131
  Requires-Dist: uvicorn[standard]>=0.30
@@ -139,6 +179,7 @@ Website: [www.celerp.com](https://www.celerp.com)
139
179
 
140
180
  Celerp is simple to use, flexible, customizable, and designed to transition your business into the AI age with no technical knowledge needed to setup your whole office. We want to put businesses back in charge of their data.
141
181
 
182
+ [![Downloads](https://static.pepy.tech/badge/celerp)](https://pepy.tech/project/celerp)
142
183
  [![Tests](https://github.com/celerp/celerp/actions/workflows/ci.yml/badge.svg)](https://github.com/celerp/celerp/actions)
143
184
  [![License](https://img.shields.io/badge/license-BUSL--1.1-blue)](LICENSE)
144
185
 
@@ -272,5 +313,5 @@ Celerp is open-core:
272
313
  - **A proprietary application + cloud layer** (official UI, document/PDF output, and the cloud/AI
273
314
  services) that powers the hosted experience.
274
315
 
275
- See [LICENSING.md](LICENSING.md) for the full map and [TRADEMARK.md](TRADEMARK.md) for use of the Celerp
316
+ See [LICENSING.md](LICENSING.md) for the full map and [TRADEMARK.md](legal/TRADEMARK.md) for use of the Celerp
276
317
  name. One restriction: don't resell Celerp itself as a competing product.
@@ -8,6 +8,7 @@ Website: [www.celerp.com](https://www.celerp.com)
8
8
 
9
9
  Celerp is simple to use, flexible, customizable, and designed to transition your business into the AI age with no technical knowledge needed to setup your whole office. We want to put businesses back in charge of their data.
10
10
 
11
+ [![Downloads](https://static.pepy.tech/badge/celerp)](https://pepy.tech/project/celerp)
11
12
  [![Tests](https://github.com/celerp/celerp/actions/workflows/ci.yml/badge.svg)](https://github.com/celerp/celerp/actions)
12
13
  [![License](https://img.shields.io/badge/license-BUSL--1.1-blue)](LICENSE)
13
14
 
@@ -141,5 +142,5 @@ Celerp is open-core:
141
142
  - **A proprietary application + cloud layer** (official UI, document/PDF output, and the cloud/AI
142
143
  services) that powers the hosted experience.
143
144
 
144
- See [LICENSING.md](LICENSING.md) for the full map and [TRADEMARK.md](TRADEMARK.md) for use of the Celerp
145
+ See [LICENSING.md](LICENSING.md) for the full map and [TRADEMARK.md](legal/TRADEMARK.md) for use of the Celerp
145
146
  name. One restriction: don't resell Celerp itself as a competing product.
@@ -0,0 +1,56 @@
1
+ # Copyright (c) 2026 Noah Severs
2
+ # SPDX-License-Identifier: LicenseRef-Proprietary
3
+
4
+ """Intent classification - detect file-through routing tasks.
5
+
6
+ Determines whether a query with files needs AI comprehension (read the file)
7
+ or is a routing/filing task (skip file content). Keyword-based and instant, so
8
+ classifying intent never costs a metered model call. Ambiguous cases default to
9
+ COMPREHENSION.
10
+
11
+ If no files are attached, always returns COMPREHENSION.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import logging
17
+
18
+ log = logging.getLogger(__name__)
19
+
20
+
21
+ class Intent:
22
+ COMPREHENSION = "comprehension"
23
+ ROUTING = "routing"
24
+
25
+
26
+ _ROUTING_PATTERNS = (
27
+ "file this",
28
+ "save this",
29
+ "attach this",
30
+ "store this",
31
+ "add this to",
32
+ "put this in",
33
+ "send this to",
34
+ "move this to",
35
+ "archive this",
36
+ )
37
+
38
+ def _keyword_match(query: str) -> str | None:
39
+ """Check for routing keywords. Returns Intent or None if ambiguous."""
40
+ lowered = query.lower()
41
+ for pattern in _ROUTING_PATTERNS:
42
+ if pattern in lowered:
43
+ return Intent.ROUTING
44
+ return None
45
+
46
+
47
+ async def classify_intent(query: str, has_files: bool) -> str:
48
+ """Classify query intent. Returns Intent.COMPREHENSION or Intent.ROUTING.
49
+
50
+ Without files, always returns COMPREHENSION (text queries always need AI).
51
+ With files, a routing keyword marks a file-only task; otherwise COMPREHENSION.
52
+ """
53
+ if not has_files:
54
+ return Intent.COMPREHENSION
55
+ result = _keyword_match(query)
56
+ return result if result is not None else Intent.COMPREHENSION
@@ -0,0 +1,110 @@
1
+ # Copyright (c) 2026 Noah Severs
2
+ # SPDX-License-Identifier: LicenseRef-Proprietary
3
+
4
+ """LLM client - single entry point for all model calls.
5
+
6
+ Calls are served through the cloud gateway, which selects the model and meters
7
+ usage. Supports text-only and multimodal (image/PDF) messages.
8
+ Concurrency-limited via a module-level semaphore.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import asyncio
14
+ import logging
15
+ import os
16
+
17
+ import httpx
18
+
19
+ from celerp.gateway.state import relay_http_url, relay_session_headers
20
+
21
+ log = logging.getLogger(__name__)
22
+
23
+ _MAX_CONCURRENT = int(os.getenv("AI_MAX_CONCURRENT", "3"))
24
+ _semaphore = asyncio.Semaphore(_MAX_CONCURRENT)
25
+
26
+
27
+ def _build_user_content(
28
+ text: str,
29
+ files: list[dict] | None = None,
30
+ ) -> str | list[dict]:
31
+ """Build the user message content block.
32
+
33
+ Text-only: returns a plain string.
34
+ With files: returns a list of content parts (image_url or text).
35
+ Each file dict must have keys: media_type (str), data (base64 str).
36
+ """
37
+ if not files:
38
+ return text
39
+
40
+ parts: list[dict] = []
41
+ for f in files:
42
+ data_uri = f"data:{f['media_type']};base64,{f['data']}"
43
+ parts.append({"type": "image_url", "image_url": {"url": data_uri}})
44
+ parts.append({"type": "text", "text": text})
45
+ return parts
46
+
47
+
48
+ async def call_llm(
49
+ model: str,
50
+ system: str,
51
+ user_text: str,
52
+ files: list[dict] | None = None,
53
+ max_tokens: int = 2048,
54
+ history: list[dict[str, str]] | None = None,
55
+ timeout: float = 60.0,
56
+ ) -> str:
57
+ """Run a completion through the gateway and return the assistant's text.
58
+
59
+ Args:
60
+ model: advisory only — the gateway selects the served model.
61
+ history: Optional prior conversation messages [{"role": ..., "content": ...}].
62
+
63
+ Raises HTTPException(402) when the plan's quota is exhausted.
64
+ Raises RuntimeError on other failures (no session, gateway error).
65
+ """
66
+ user_content = _build_user_content(user_text, files)
67
+
68
+ messages: list[dict] = [{"role": "system", "content": system}]
69
+ if history:
70
+ messages.extend(history)
71
+ messages.append({"role": "user", "content": user_content})
72
+
73
+ file_count = len(files) if files else 0
74
+ body = {
75
+ "messages": messages,
76
+ "hints": {
77
+ "query": user_text[:500],
78
+ "file_count": file_count,
79
+ "is_batch": file_count > 1,
80
+ },
81
+ "max_tokens": max_tokens,
82
+ }
83
+
84
+ headers = relay_session_headers()
85
+ if not headers.get("X-Session-Token"):
86
+ raise RuntimeError("The AI service is not available - no active cloud session.")
87
+
88
+ url = f"{relay_http_url()}/ai/complete"
89
+
90
+ async with _semaphore:
91
+ async with httpx.AsyncClient(timeout=timeout) as client:
92
+ resp = await client.post(url, headers=headers, json=body)
93
+
94
+ if resp.status_code == 200:
95
+ return resp.json().get("answer", "")
96
+
97
+ if resp.status_code == 402:
98
+ from fastapi import HTTPException
99
+ try:
100
+ detail = resp.json().get("detail", {})
101
+ except Exception:
102
+ detail = {}
103
+ if not isinstance(detail, dict):
104
+ detail = {"code": "quota_exceeded", "message": str(detail)}
105
+ raise HTTPException(status_code=402, detail=detail)
106
+
107
+ if resp.status_code in (429, 503):
108
+ raise RuntimeError("The AI service is temporarily busy.")
109
+
110
+ raise RuntimeError(f"LLM gateway error {resp.status_code}")
@@ -0,0 +1,63 @@
1
+ # Copyright (c) 2026 Noah Severs
2
+ # SPDX-License-Identifier: LicenseRef-Proprietary
3
+
4
+ """Gateway quota status client.
5
+
6
+ Reads AI quota status from the relay for display and tier checks. Quota is
7
+ enforced by the gateway as a query runs; this module only reports it.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import logging
13
+
14
+ import httpx
15
+
16
+ from celerp.config import settings
17
+ from celerp.gateway.state import (
18
+ get_session_token,
19
+ relay_http_url,
20
+ relay_session_headers,
21
+ )
22
+
23
+ # Alias so tests / internal callers import this from here rather than reaching
24
+ # into celerp.gateway.state directly.
25
+ _relay_http_url = relay_http_url
26
+
27
+ log = logging.getLogger(__name__)
28
+
29
+
30
+ async def get_subscription_tier() -> str | None:
31
+ """Fetch the subscription tier for this instance from the relay.
32
+
33
+ Returns the tier string (e.g. "cloud", "ai", "team") or None if:
34
+ - gateway is not configured (local install)
35
+ - relay is unreachable
36
+ - subscription is not active
37
+
38
+ Never raises — callers treat None as "no restriction".
39
+ """
40
+ status = await get_quota_status()
41
+ return status.get("tier") if status else None
42
+
43
+
44
+ async def get_quota_status() -> dict | None:
45
+ """Fetch full AI quota status from the relay.
46
+
47
+ Returns dict with keys: allowed, used, limit, topup_credits, resets_at, tier.
48
+ Returns None if gateway not configured or relay unreachable.
49
+ """
50
+ if not settings.gateway_token or not get_session_token():
51
+ return None
52
+
53
+ url = f"{relay_http_url()}/quota/ai/status"
54
+
55
+ try:
56
+ async with httpx.AsyncClient(timeout=5.0) as client:
57
+ r = await client.get(url, headers=relay_session_headers())
58
+ if r.status_code == 200:
59
+ return r.json()
60
+ log.warning("Quota status returned %s", r.status_code)
61
+ except Exception as exc:
62
+ log.warning("Failed to fetch quota status: %s", exc)
63
+ return None