openfatture 1.1.0__py3-none-any.whl

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 (215) hide show
  1. openfatture/__init__.py +10 -0
  2. openfatture/ai/__init__.py +65 -0
  3. openfatture/ai/agents/__init__.py +1 -0
  4. openfatture/ai/agents/cash_flow_predictor.py +791 -0
  5. openfatture/ai/agents/chat_agent.py +370 -0
  6. openfatture/ai/agents/compliance/__init__.py +65 -0
  7. openfatture/ai/agents/compliance/checker.py +470 -0
  8. openfatture/ai/agents/compliance/heuristics.py +507 -0
  9. openfatture/ai/agents/compliance/rules.py +638 -0
  10. openfatture/ai/agents/compliance/sdi_patterns.py +435 -0
  11. openfatture/ai/agents/invoice_assistant.py +278 -0
  12. openfatture/ai/agents/models.py +193 -0
  13. openfatture/ai/agents/payment_insight_agent.py +120 -0
  14. openfatture/ai/agents/tax_advisor.py +316 -0
  15. openfatture/ai/cache/__init__.py +46 -0
  16. openfatture/ai/cache/config.py +130 -0
  17. openfatture/ai/cache/memory.py +272 -0
  18. openfatture/ai/cache/provider.py +305 -0
  19. openfatture/ai/cache/strategy.py +137 -0
  20. openfatture/ai/config/__init__.py +5 -0
  21. openfatture/ai/config/settings.py +330 -0
  22. openfatture/ai/context/__init__.py +5 -0
  23. openfatture/ai/context/enrichment.py +309 -0
  24. openfatture/ai/domain/__init__.py +50 -0
  25. openfatture/ai/domain/agent.py +614 -0
  26. openfatture/ai/domain/context.py +271 -0
  27. openfatture/ai/domain/message.py +118 -0
  28. openfatture/ai/domain/prompt.py +347 -0
  29. openfatture/ai/domain/response.py +129 -0
  30. openfatture/ai/ml/__init__.py +57 -0
  31. openfatture/ai/ml/config.py +359 -0
  32. openfatture/ai/ml/data_loader.py +502 -0
  33. openfatture/ai/ml/features.py +575 -0
  34. openfatture/ai/orchestration/__init__.py +173 -0
  35. openfatture/ai/orchestration/human_loop.py +468 -0
  36. openfatture/ai/orchestration/resilience.py +517 -0
  37. openfatture/ai/orchestration/states.py +520 -0
  38. openfatture/ai/orchestration/workflows/__init__.py +53 -0
  39. openfatture/ai/orchestration/workflows/cash_flow_analysis.py +614 -0
  40. openfatture/ai/orchestration/workflows/compliance_check.py +589 -0
  41. openfatture/ai/orchestration/workflows/invoice_creation.py +931 -0
  42. openfatture/ai/prompts/__init__.py +1 -0
  43. openfatture/ai/prompts/chat_assistant.yaml +134 -0
  44. openfatture/ai/prompts/invoice_assistant.yaml +116 -0
  45. openfatture/ai/prompts/tax_advisor.yaml +310 -0
  46. openfatture/ai/providers/__init__.py +32 -0
  47. openfatture/ai/providers/anthropic.py +360 -0
  48. openfatture/ai/providers/base.py +253 -0
  49. openfatture/ai/providers/factory.py +309 -0
  50. openfatture/ai/providers/ollama.py +340 -0
  51. openfatture/ai/providers/openai.py +473 -0
  52. openfatture/ai/rag/__init__.py +242 -0
  53. openfatture/ai/rag/config.py +166 -0
  54. openfatture/ai/rag/embeddings.py +354 -0
  55. openfatture/ai/rag/indexing.py +284 -0
  56. openfatture/ai/rag/knowledge_indexer.py +304 -0
  57. openfatture/ai/rag/retrieval.py +305 -0
  58. openfatture/ai/rag/sources.json +53 -0
  59. openfatture/ai/rag/vector_store.py +421 -0
  60. openfatture/ai/session/__init__.py +11 -0
  61. openfatture/ai/session/manager.py +425 -0
  62. openfatture/ai/session/models.py +419 -0
  63. openfatture/ai/tools/__init__.py +12 -0
  64. openfatture/ai/tools/client_tools.py +237 -0
  65. openfatture/ai/tools/invoice_tools.py +308 -0
  66. openfatture/ai/tools/knowledge_tools.py +120 -0
  67. openfatture/ai/tools/models.py +206 -0
  68. openfatture/ai/tools/registry.py +281 -0
  69. openfatture/cli/__init__.py +1 -0
  70. openfatture/cli/commands/__init__.py +1 -0
  71. openfatture/cli/commands/ai.py +892 -0
  72. openfatture/cli/commands/batch.py +266 -0
  73. openfatture/cli/commands/cliente.py +269 -0
  74. openfatture/cli/commands/config.py +179 -0
  75. openfatture/cli/commands/email.py +216 -0
  76. openfatture/cli/commands/fattura.py +555 -0
  77. openfatture/cli/commands/init.py +258 -0
  78. openfatture/cli/commands/interactive.py +79 -0
  79. openfatture/cli/commands/notifiche.py +245 -0
  80. openfatture/cli/commands/pec.py +96 -0
  81. openfatture/cli/commands/report.py +324 -0
  82. openfatture/cli/completion/README.md +295 -0
  83. openfatture/cli/completion/__init__.py +1 -0
  84. openfatture/cli/completion/_openfatture.bash +134 -0
  85. openfatture/cli/completion/_openfatture.zsh +181 -0
  86. openfatture/cli/completion/install.sh +191 -0
  87. openfatture/cli/main.py +92 -0
  88. openfatture/cli/ui/__init__.py +57 -0
  89. openfatture/cli/ui/autocomplete.py +221 -0
  90. openfatture/cli/ui/autocomplete_data.py +352 -0
  91. openfatture/cli/ui/chat.py +562 -0
  92. openfatture/cli/ui/config_wizard.py +517 -0
  93. openfatture/cli/ui/dashboard.py +520 -0
  94. openfatture/cli/ui/helpers.py +307 -0
  95. openfatture/cli/ui/menus.py +946 -0
  96. openfatture/cli/ui/progress.py +142 -0
  97. openfatture/cli/ui/styles.py +33 -0
  98. openfatture/core/__init__.py +1 -0
  99. openfatture/core/batch/__init__.py +22 -0
  100. openfatture/core/batch/invoice_processor.py +233 -0
  101. openfatture/core/batch/operations.py +337 -0
  102. openfatture/core/batch/processor.py +232 -0
  103. openfatture/core/clienti/__init__.py +1 -0
  104. openfatture/core/fatture/__init__.py +1 -0
  105. openfatture/core/fatture/service.py +56 -0
  106. openfatture/core/fiscale/__init__.py +1 -0
  107. openfatture/core/prodotti/__init__.py +1 -0
  108. openfatture/payment/README.md +701 -0
  109. openfatture/payment/__init__.py +27 -0
  110. openfatture/payment/application/__init__.py +48 -0
  111. openfatture/payment/application/events.py +72 -0
  112. openfatture/payment/application/listeners.py +58 -0
  113. openfatture/payment/application/notifications/__init__.py +21 -0
  114. openfatture/payment/application/notifications/notifier.py +387 -0
  115. openfatture/payment/application/services/__init__.py +17 -0
  116. openfatture/payment/application/services/insight_service.py +96 -0
  117. openfatture/payment/application/services/matching_service.py +431 -0
  118. openfatture/payment/application/services/payment_overview.py +150 -0
  119. openfatture/payment/application/services/reconciliation_service.py +589 -0
  120. openfatture/payment/application/services/reminder_scheduler.py +464 -0
  121. openfatture/payment/cli/__init__.py +5 -0
  122. openfatture/payment/cli/payment_cli.py +1157 -0
  123. openfatture/payment/domain/__init__.py +26 -0
  124. openfatture/payment/domain/enums.py +112 -0
  125. openfatture/payment/domain/models.py +324 -0
  126. openfatture/payment/domain/payment_allocation.py +53 -0
  127. openfatture/payment/domain/value_objects.py +275 -0
  128. openfatture/payment/infrastructure/__init__.py +15 -0
  129. openfatture/payment/infrastructure/importers/__init__.py +50 -0
  130. openfatture/payment/infrastructure/importers/base.py +240 -0
  131. openfatture/payment/infrastructure/importers/csv_importer.py +391 -0
  132. openfatture/payment/infrastructure/importers/factory.py +288 -0
  133. openfatture/payment/infrastructure/importers/ofx_importer.py +269 -0
  134. openfatture/payment/infrastructure/importers/presets.py +415 -0
  135. openfatture/payment/infrastructure/importers/qif_importer.py +385 -0
  136. openfatture/payment/infrastructure/repository.py +365 -0
  137. openfatture/payment/matchers/__init__.py +34 -0
  138. openfatture/payment/matchers/base.py +146 -0
  139. openfatture/payment/matchers/composite.py +171 -0
  140. openfatture/payment/matchers/date_window.py +203 -0
  141. openfatture/payment/matchers/exact.py +156 -0
  142. openfatture/payment/matchers/fuzzy.py +364 -0
  143. openfatture/payment/matchers/iban.py +367 -0
  144. openfatture/payment/templates/reminder_email.html +220 -0
  145. openfatture/payment/templates/reminder_email.txt +41 -0
  146. openfatture/sdi/__init__.py +1 -0
  147. openfatture/sdi/digital_signature/__init__.py +15 -0
  148. openfatture/sdi/digital_signature/certificate_manager.py +209 -0
  149. openfatture/sdi/digital_signature/signer.py +201 -0
  150. openfatture/sdi/digital_signature/verifier.py +227 -0
  151. openfatture/sdi/notifiche/__init__.py +19 -0
  152. openfatture/sdi/notifiche/parser.py +303 -0
  153. openfatture/sdi/notifiche/processor.py +277 -0
  154. openfatture/sdi/pec_sender/__init__.py +1 -0
  155. openfatture/sdi/pec_sender/sender.py +271 -0
  156. openfatture/sdi/validator/__init__.py +1 -0
  157. openfatture/sdi/validator/xsd_validator.py +176 -0
  158. openfatture/sdi/xml_builder/__init__.py +1 -0
  159. openfatture/sdi/xml_builder/fatturapa.py +349 -0
  160. openfatture/services/__init__.py +1 -0
  161. openfatture/services/pdf/__init__.py +27 -0
  162. openfatture/services/pdf/components/__init__.py +13 -0
  163. openfatture/services/pdf/components/footer.py +42 -0
  164. openfatture/services/pdf/components/header.py +78 -0
  165. openfatture/services/pdf/components/qrcode.py +104 -0
  166. openfatture/services/pdf/components/table.py +101 -0
  167. openfatture/services/pdf/generator.py +406 -0
  168. openfatture/services/pdf/templates/__init__.py +13 -0
  169. openfatture/services/pdf/templates/base.py +296 -0
  170. openfatture/services/pdf/templates/branded.py +115 -0
  171. openfatture/services/pdf/templates/minimalist.py +41 -0
  172. openfatture/services/pdf/templates/professional.py +65 -0
  173. openfatture/storage/__init__.py +1 -0
  174. openfatture/storage/database/__init__.py +5 -0
  175. openfatture/storage/database/base.py +120 -0
  176. openfatture/storage/database/models.py +384 -0
  177. openfatture/utils/__init__.py +1 -0
  178. openfatture/utils/config.py +190 -0
  179. openfatture/utils/datetime.py +8 -0
  180. openfatture/utils/email/__init__.py +28 -0
  181. openfatture/utils/email/i18n/en.json +120 -0
  182. openfatture/utils/email/i18n/it.json +120 -0
  183. openfatture/utils/email/models.py +216 -0
  184. openfatture/utils/email/renderer.py +353 -0
  185. openfatture/utils/email/sender.py +480 -0
  186. openfatture/utils/email/styles.py +274 -0
  187. openfatture/utils/email/templates/base.html +59 -0
  188. openfatture/utils/email/templates/base.txt +26 -0
  189. openfatture/utils/email/templates/batch/riepilogo_batch.html +85 -0
  190. openfatture/utils/email/templates/batch/riepilogo_batch.txt +43 -0
  191. openfatture/utils/email/templates/sdi/invio_fattura.html +59 -0
  192. openfatture/utils/email/templates/sdi/invio_fattura.txt +40 -0
  193. openfatture/utils/email/templates/sdi/notifica_attestazione.html +31 -0
  194. openfatture/utils/email/templates/sdi/notifica_attestazione.txt +17 -0
  195. openfatture/utils/email/templates/sdi/notifica_consegna.html +42 -0
  196. openfatture/utils/email/templates/sdi/notifica_consegna.txt +26 -0
  197. openfatture/utils/email/templates/sdi/notifica_esito_accettata.html +31 -0
  198. openfatture/utils/email/templates/sdi/notifica_esito_accettata.txt +17 -0
  199. openfatture/utils/email/templates/sdi/notifica_esito_rifiutata.html +41 -0
  200. openfatture/utils/email/templates/sdi/notifica_esito_rifiutata.txt +29 -0
  201. openfatture/utils/email/templates/sdi/notifica_mancata_consegna.html +43 -0
  202. openfatture/utils/email/templates/sdi/notifica_mancata_consegna.txt +29 -0
  203. openfatture/utils/email/templates/sdi/notifica_scarto.html +57 -0
  204. openfatture/utils/email/templates/sdi/notifica_scarto.txt +33 -0
  205. openfatture/utils/email/templates/test/test_email.html +37 -0
  206. openfatture/utils/email/templates/test/test_email.txt +22 -0
  207. openfatture/utils/logging.py +267 -0
  208. openfatture/utils/rate_limiter.py +302 -0
  209. openfatture/utils/security.py +251 -0
  210. openfatture/utils/validators.py +96 -0
  211. openfatture-1.1.0.dist-info/METADATA +225 -0
  212. openfatture-1.1.0.dist-info/RECORD +215 -0
  213. openfatture-1.1.0.dist-info/WHEEL +4 -0
  214. openfatture-1.1.0.dist-info/entry_points.txt +2 -0
  215. openfatture-1.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,10 @@
1
+ """
2
+ OpenFatture - Open-source electronic invoicing for Italian freelancers.
3
+
4
+ A modern, CLI-first invoicing system with AI-powered workflows and full
5
+ compliance with FatturaPA and SDI requirements.
6
+ """
7
+
8
+ __version__ = "1.1.0"
9
+ __author__ = "Venere Labs"
10
+ __license__ = "MIT"
@@ -0,0 +1,65 @@
1
+ """
2
+ AI-powered assistance features for OpenFatture.
3
+
4
+ This package provides LLM-based agents for intelligent invoice management:
5
+ - Invoice description generation
6
+ - Tax advice and VAT suggestions
7
+ - Cash flow prediction
8
+ - Compliance checking
9
+
10
+ Architecture:
11
+ - Domain: Core models (Message, Response, Context, Agent)
12
+ - Providers: LLM provider abstractions (OpenAI, Anthropic, Ollama)
13
+ - Agents: Specialized agents for different tasks
14
+ - Config: Configuration management
15
+ """
16
+
17
+ # Core domain models
18
+ # Configuration
19
+ from openfatture.ai.config import AISettings, get_ai_settings
20
+ from openfatture.ai.domain import (
21
+ AgentConfig,
22
+ AgentContext,
23
+ AgentProtocol,
24
+ AgentResponse,
25
+ BaseAgent,
26
+ Message,
27
+ PromptManager,
28
+ ResponseStatus,
29
+ Role,
30
+ )
31
+
32
+ # Providers
33
+ from openfatture.ai.providers import (
34
+ AnthropicProvider,
35
+ BaseLLMProvider,
36
+ OllamaProvider,
37
+ OpenAIProvider,
38
+ ProviderError,
39
+ create_provider,
40
+ )
41
+
42
+ __version__ = "1.1.0"
43
+
44
+ __all__ = [
45
+ # Domain
46
+ "AgentConfig",
47
+ "AgentContext",
48
+ "AgentProtocol",
49
+ "AgentResponse",
50
+ "BaseAgent",
51
+ "Message",
52
+ "Role",
53
+ "ResponseStatus",
54
+ "PromptManager",
55
+ # Config
56
+ "AISettings",
57
+ "get_ai_settings",
58
+ # Providers
59
+ "BaseLLMProvider",
60
+ "OpenAIProvider",
61
+ "AnthropicProvider",
62
+ "OllamaProvider",
63
+ "create_provider",
64
+ "ProviderError",
65
+ ]
@@ -0,0 +1 @@
1
+ """LangChain agents for intelligent automation."""