iatoolkit 2.31.0__tar.gz → 2.32.0__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 (249) hide show
  1. {iatoolkit-2.31.0/src/iatoolkit.egg-info → iatoolkit-2.32.0}/PKG-INFO +1 -1
  2. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/__init__.py +1 -1
  3. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/document_repo.py +12 -0
  4. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/llm_query_repo.py +3 -0
  5. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/models.py +1 -0
  6. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/vs_repo.py +15 -0
  7. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/context_builder_service.py +17 -3
  8. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/knowledge_base_service.py +93 -0
  9. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/prompt_service.py +52 -0
  10. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/query_service.py +9 -0
  11. {iatoolkit-2.31.0 → iatoolkit-2.32.0/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  12. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/LICENSE +0 -0
  13. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/LICENSE_COMMUNITY.md +0 -0
  14. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/pyproject.toml +0 -0
  15. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/readme.md +0 -0
  16. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/requirements.txt +0 -0
  17. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/setup.cfg +0 -0
  18. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/base_company.py +0 -0
  19. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/cli_commands.py +0 -0
  20. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/__init__.py +0 -0
  21. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/exceptions.py +0 -0
  22. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  23. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  24. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  25. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  26. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
  27. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  28. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  29. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  30. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/model_registry.py +0 -0
  31. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/routes.py +0 -0
  32. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/secret_resolver.py +0 -0
  33. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/session_manager.py +0 -0
  34. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/common/util.py +0 -0
  35. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/company_registry.py +0 -0
  36. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/__init__.py +0 -0
  37. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  38. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  39. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  40. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  41. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  42. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  43. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  44. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  45. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  46. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  47. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  48. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  49. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  50. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  51. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  52. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  53. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  54. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  55. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  56. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  57. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  58. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  59. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  60. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  61. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  62. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
  63. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  64. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  65. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  66. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/core.py +0 -0
  67. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/__init__.py +0 -0
  68. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  69. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/call_service.py +0 -0
  70. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  71. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  72. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  73. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  74. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  75. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  76. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  77. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/google_auth_client.py +0 -0
  78. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
  79. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  80. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/inference_handler.py +0 -0
  81. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  82. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  83. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  84. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  85. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  86. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  87. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
  88. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
  89. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  90. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_proxy.py +0 -0
  91. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/llm_response.py +0 -0
  92. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  93. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/locales/en.yaml +0 -0
  94. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/locales/es.yaml +0 -0
  95. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/__init__.py +0 -0
  96. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  97. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/database_manager.py +0 -0
  98. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  99. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  100. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  101. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  102. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/memory_repo.py +0 -0
  103. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/profile_repo.py +0 -0
  104. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  105. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  106. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  107. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/runtime_logging.py +0 -0
  108. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/__init__.py +0 -0
  109. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/api_key_service.py +0 -0
  110. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  111. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/auth_service.py +0 -0
  112. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/benchmark_service.py +0 -0
  113. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/branding_service.py +0 -0
  114. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/company_context_service.py +0 -0
  115. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/configuration_service.py +0 -0
  116. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/dispatcher_service.py +0 -0
  117. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/embedding_service.py +0 -0
  118. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/excel_service.py +0 -0
  119. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/file_processor_service.py +0 -0
  120. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/history_manager_service.py +0 -0
  121. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/http_tool_service.py +0 -0
  122. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/i18n_service.py +0 -0
  123. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/inference_service.py +0 -0
  124. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/jwt_service.py +0 -0
  125. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/language_service.py +0 -0
  126. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/license_service.py +0 -0
  127. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/llm_client_service.py +0 -0
  128. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/mail_service.py +0 -0
  129. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  130. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/mcp_token_service.py +0 -0
  131. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  132. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/memory_lint_service.py +0 -0
  133. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  134. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/memory_service.py +0 -0
  135. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  136. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  137. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
  138. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/__init__.py +0 -0
  139. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/contracts.py +0 -0
  140. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  141. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  142. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  143. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  144. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  145. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  146. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  147. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  148. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/parsers/validator.py +0 -0
  149. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/pdf_service.py +0 -0
  150. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/profile_service.py +0 -0
  151. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  152. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  153. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  154. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/sql_service.py +0 -0
  155. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/sql_source_service.py +0 -0
  156. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/storage_service.py +0 -0
  157. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/structured_output_service.py +0 -0
  158. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  159. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/system_tools.py +0 -0
  160. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/telemetry_service.py +0 -0
  161. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  162. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/tool_output_contract.py +0 -0
  163. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/tool_service.py +0 -0
  164. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/user_feedback_service.py +0 -0
  165. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/user_session_context_service.py +0 -0
  166. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/visual_kb_service.py +0 -0
  167. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/visual_tool_service.py +0 -0
  168. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/warmup_service.py +0 -0
  169. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/web_search/__init__.py +0 -0
  170. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  171. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  172. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  173. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/services/web_search_service.py +0 -0
  174. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  175. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  176. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  177. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  178. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  179. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  180. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  181. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  182. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_main.js +0 -0
  183. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  184. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
  185. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  186. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  187. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
  188. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  189. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  190. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
  191. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/documents.css +0 -0
  192. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
  193. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
  194. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/static/styles/onboarding.css +0 -0
  195. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/_company_header.html +0 -0
  196. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/_login_widget.html +0 -0
  197. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/account.html +0 -0
  198. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/base.html +0 -0
  199. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/change_password.html +0 -0
  200. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/chat.html +0 -0
  201. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  202. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/chat_modals.html +0 -0
  203. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/error.html +0 -0
  204. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/forgot_password.html +0 -0
  205. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  206. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  207. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/onboarding_shell.html +0 -0
  208. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/pdf/base.html +0 -0
  209. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/pdf/letter.html +0 -0
  210. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/pdf/report.html +0 -0
  211. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/pdf/simple.html +0 -0
  212. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/templates/signup.html +0 -0
  213. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/__init__.py +0 -0
  214. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/account_view.py +0 -0
  215. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/api_key_api_view.py +0 -0
  216. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/base_login_view.py +0 -0
  217. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/categories_api_view.py +0 -0
  218. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/change_password_view.py +0 -0
  219. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  220. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/chat_view.py +0 -0
  221. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/configuration_api_view.py +0 -0
  222. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/connectors_api_view.py +0 -0
  223. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/embedding_api_view.py +0 -0
  224. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/forgot_password_view.py +0 -0
  225. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/help_content_api_view.py +0 -0
  226. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/history_api_view.py +0 -0
  227. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/home_view.py +0 -0
  228. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/init_context_api_view.py +0 -0
  229. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  230. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/load_document_api_view.py +0 -0
  231. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/login_view.py +0 -0
  232. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/logout_api_view.py +0 -0
  233. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/memory_api_view.py +0 -0
  234. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/profile_api_view.py +0 -0
  235. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
  236. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  237. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  238. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/rag_api_view.py +0 -0
  239. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/root_redirect_view.py +0 -0
  240. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/signup_view.py +0 -0
  241. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/static_page_view.py +0 -0
  242. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/tool_api_view.py +0 -0
  243. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  244. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/users_api_view.py +0 -0
  245. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit/views/verify_user_view.py +0 -0
  246. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  247. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  248. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit.egg-info/requires.txt +0 -0
  249. {iatoolkit-2.31.0 → iatoolkit-2.32.0}/src/iatoolkit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.31.0
3
+ Version: 2.32.0
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- __version__ = "2.31.0"
6
+ __version__ = "2.32.0"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -27,6 +27,18 @@ class DocumentRepo:
27
27
  self.session.commit()
28
28
  return document_image
29
29
 
30
+ def get_document_images(self, document_id: int, limit: int | None = None) -> list[DocumentImage]:
31
+ if not document_id:
32
+ return []
33
+ query = (
34
+ self.session.query(DocumentImage)
35
+ .filter(DocumentImage.document_id == document_id)
36
+ .order_by(DocumentImage.page.asc(), DocumentImage.image_index.asc(), DocumentImage.id.asc())
37
+ )
38
+ if limit is not None:
39
+ query = query.limit(max(int(limit), 0))
40
+ return list(query.all())
41
+
30
42
  def get(self, company_id, filename: str ) -> Document:
31
43
  if not company_id or not filename:
32
44
  raise IAToolkitException(IAToolkitException.ErrorType.PARAM_NOT_FILLED,
@@ -194,6 +194,7 @@ class LLMQueryRepo:
194
194
  prompt.queue_tier = getattr(new_prompt, "queue_tier", None) or prompt.queue_tier or "default"
195
195
  prompt.llm_request_options = dict(new_prompt.llm_request_options or {})
196
196
  prompt.tool_policy = dict(new_prompt.tool_policy or {})
197
+ prompt.context_policy = dict(getattr(new_prompt, "context_policy", None) or {})
197
198
  else:
198
199
  if new_prompt.active is None:
199
200
  new_prompt.active = True
@@ -221,6 +222,8 @@ class LLMQueryRepo:
221
222
  new_prompt.llm_request_options = {}
222
223
  if new_prompt.tool_policy is None:
223
224
  new_prompt.tool_policy = {}
225
+ if getattr(new_prompt, "context_policy", None) is None:
226
+ new_prompt.context_policy = {}
224
227
  self.session.add(new_prompt)
225
228
  prompt = new_prompt
226
229
 
@@ -740,6 +740,7 @@ class Prompt(Base):
740
740
  queue_tier = Column(String, nullable=False, default="default")
741
741
  llm_request_options = Column(JSON_NATIVE, nullable=False, default=dict)
742
742
  tool_policy = Column(JSON_NATIVE, nullable=False, default=dict)
743
+ context_policy = Column(JSON_NATIVE, nullable=False, default=dict)
743
744
  created_at = Column(DateTime, default=datetime.now)
744
745
 
745
746
  def to_dict(self):
@@ -81,6 +81,21 @@ class VSRepo:
81
81
  self.session.rollback()
82
82
  raise e
83
83
 
84
+ def get_document_tables(self, document_id: int, limit: int | None = None) -> list[VSDoc]:
85
+ if not document_id:
86
+ return []
87
+ query = (
88
+ self.session.query(VSDoc)
89
+ .filter(
90
+ VSDoc.document_id == document_id,
91
+ VSDoc.meta["source_type"].as_string() == "table",
92
+ )
93
+ .order_by(VSDoc.id.asc())
94
+ )
95
+ if limit is not None:
96
+ query = query.limit(max(int(limit), 0))
97
+ return list(query.all())
98
+
84
99
  def query(self,
85
100
  company_short_name: str,
86
101
  query_text: str,
@@ -163,6 +163,10 @@ class ContextBuilderService:
163
163
  "prompt_name": prompt_obj.name,
164
164
  "agent_role": agent_role,
165
165
  "execution_mode": execution_mode,
166
+ "context_policy": self.prompt_service.normalize_context_policy(
167
+ getattr(prompt_obj, "context_policy", None),
168
+ agent_role,
169
+ ),
166
170
  "schema": schema,
167
171
  "schema_yaml": prompt_obj.output_schema_yaml,
168
172
  "schema_mode": prompt_obj.output_schema_mode or "best_effort",
@@ -354,15 +358,25 @@ class ContextBuilderService:
354
358
  collection_names=rag_collections,
355
359
  )
356
360
 
361
+ context_policy = self.prompt_service.normalize_context_policy(
362
+ resolved_contract.get("context_policy"),
363
+ resolved_contract.get("agent_role"),
364
+ )
365
+ company_context_policy = context_policy.get("company_context_blocks") or {}
357
366
  company_context_blocks = self.company_context_service.get_company_context_blocks(
358
367
  company_short_name,
359
- include_sql_context=False,
360
- include_yaml_context=False,
368
+ include_sql_context=bool(company_context_policy.get("sql_context")),
369
+ include_yaml_context=bool(company_context_policy.get("yaml_context")),
370
+ )
371
+ markdown_context = (
372
+ company_context_blocks.get("markdown_context")
373
+ if bool(company_context_policy.get("markdown_context"))
374
+ else ""
361
375
  )
362
376
  final_system_context = self._join_context_sections(
363
377
  rendered_sections.get("identity"),
364
378
  rendered_sections.get("business_context"),
365
- company_context_blocks.get("markdown_context"),
379
+ markdown_context,
366
380
  rendered_sections.get("conversation_rules"),
367
381
  rendered_sections.get("retrieval_guidance"),
368
382
  collection_context,
@@ -759,6 +759,99 @@ class KnowledgeBaseService:
759
759
  raise IAToolkitException(IAToolkitException.ErrorType.FILE_FORMAT_ERROR,
760
760
  f"Error reading file content: {e}")
761
761
 
762
+ def get_document_images(
763
+ self,
764
+ company_short_name: str,
765
+ document_id: int,
766
+ *,
767
+ limit: int | None = None,
768
+ ) -> list[dict[str, Any]]:
769
+ document = self.document_repo.get_by_id(document_id)
770
+ if not document:
771
+ return []
772
+ document_company = str(getattr(getattr(document, "company", None), "short_name", "") or "").strip()
773
+ if document_company != str(company_short_name or "").strip():
774
+ raise IAToolkitException(
775
+ IAToolkitException.ErrorType.INVALID_OPERATION,
776
+ "Document does not belong to the requested company.",
777
+ )
778
+
779
+ images = self.document_repo.get_document_images(document_id, limit=limit)
780
+ payloads: list[dict[str, Any]] = []
781
+ for image in images:
782
+ storage_key = str(getattr(image, "storage_key", "") or "").strip()
783
+ if not storage_key:
784
+ continue
785
+ content = self.storage_service.get_document_content(document_company, storage_key)
786
+ if not content:
787
+ continue
788
+ metadata = dict(getattr(image, "meta", None) or {})
789
+ filename = os.path.basename(storage_key) or f"document-{document_id}-image-{image.id}.png"
790
+ mime_type, _ = mimetypes.guess_type(filename)
791
+ if not mime_type:
792
+ image_format = str(metadata.get("format") or "").strip().lower()
793
+ mime_type = {
794
+ "jpeg": "image/jpeg",
795
+ "jpg": "image/jpeg",
796
+ "png": "image/png",
797
+ "webp": "image/webp",
798
+ "gif": "image/gif",
799
+ }.get(image_format, "application/octet-stream")
800
+ payloads.append(
801
+ {
802
+ "image_id": image.id,
803
+ "document_id": document_id,
804
+ "page": image.page,
805
+ "image_index": image.image_index,
806
+ "filename": filename,
807
+ "mime_type": mime_type,
808
+ "width": metadata.get("width"),
809
+ "height": metadata.get("height"),
810
+ "metadata": metadata,
811
+ "content": content,
812
+ }
813
+ )
814
+ return payloads
815
+
816
+ def get_document_tables(
817
+ self,
818
+ company_short_name: str,
819
+ document_id: int,
820
+ *,
821
+ limit: int | None = None,
822
+ ) -> list[dict[str, Any]]:
823
+ document = self.document_repo.get_by_id(document_id)
824
+ if not document:
825
+ return []
826
+ document_company = str(getattr(getattr(document, "company", None), "short_name", "") or "").strip()
827
+ if document_company != str(company_short_name or "").strip():
828
+ raise IAToolkitException(
829
+ IAToolkitException.ErrorType.INVALID_OPERATION,
830
+ "Document does not belong to the requested company.",
831
+ )
832
+
833
+ payloads: list[dict[str, Any]] = []
834
+ for table in self.vs_repo.get_document_tables(document_id, limit=limit):
835
+ metadata = dict(getattr(table, "meta", None) or {})
836
+ table_text = str(getattr(table, "text", "") or "").strip()
837
+ if not table_text:
838
+ continue
839
+ payloads.append(
840
+ {
841
+ "chunk_id": table.id,
842
+ "document_id": document_id,
843
+ "table_index": metadata.get("table_index"),
844
+ "block_index": metadata.get("block_index"),
845
+ "page": metadata.get("page"),
846
+ "page_start": metadata.get("page_start"),
847
+ "page_end": metadata.get("page_end"),
848
+ "title": metadata.get("title") or metadata.get("caption_text"),
849
+ "text": table_text,
850
+ "table_json": metadata.get("table_json"),
851
+ }
852
+ )
853
+ return payloads
854
+
762
855
  def delete_document(self, document_id: int) -> bool:
763
856
  """
764
857
  Deletes a document and its associated vectors.
@@ -56,6 +56,11 @@ class PromptService:
56
56
  AGENT_ROLE_CHANNELS = PromptAgentRole.CHANNELS.value
57
57
  AGENT_ROLE_OPERATIONS = PromptAgentRole.OPERATIONS.value
58
58
  DEFAULT_CATEGORY_LABEL = "General"
59
+ COMPANY_CONTEXT_BLOCK_KEYS = {
60
+ "markdown_context",
61
+ "sql_context",
62
+ "yaml_context",
63
+ }
59
64
 
60
65
  @inject
61
66
  def __init__(self,
@@ -142,6 +147,41 @@ class PromptService:
142
147
  cls.AGENT_ROLE_CHANNELS,
143
148
  }
144
149
 
150
+ @classmethod
151
+ def default_context_policy_for_agent_role(cls, agent_role: str | None) -> dict:
152
+ normalized = str(agent_role or "").strip().lower()
153
+ if normalized == cls.AGENT_ROLE_WORKSPACE_CHAT:
154
+ blocks = {
155
+ "markdown_context": True,
156
+ "sql_context": True,
157
+ "yaml_context": True,
158
+ }
159
+ else:
160
+ blocks = {
161
+ "markdown_context": True,
162
+ "sql_context": False,
163
+ "yaml_context": False,
164
+ }
165
+ return {"company_context_blocks": blocks}
166
+
167
+ @classmethod
168
+ def normalize_context_policy(cls, context_policy: dict | None, agent_role: str | None = None) -> dict:
169
+ defaults = cls.default_context_policy_for_agent_role(agent_role)
170
+ if not isinstance(context_policy, dict):
171
+ return defaults
172
+
173
+ raw_blocks = context_policy.get("company_context_blocks")
174
+ if raw_blocks is None:
175
+ raw_blocks = context_policy.get("company_context")
176
+ if not isinstance(raw_blocks, dict):
177
+ return defaults
178
+
179
+ blocks = dict(defaults["company_context_blocks"])
180
+ for key in cls.COMPANY_CONTEXT_BLOCK_KEYS:
181
+ if key in raw_blocks:
182
+ blocks[key] = bool(raw_blocks.get(key))
183
+ return {"company_context_blocks": blocks}
184
+
145
185
  def _normalize_output_schema_mode(self, output_schema_mode: str | None) -> str:
146
186
  candidate = str(output_schema_mode or self.OUTPUT_SCHEMA_MODE_BEST_EFFORT).strip().lower()
147
187
  allowed = {
@@ -557,6 +597,10 @@ class PromptService:
557
597
  ),
558
598
  'llm_request_options': dict(getattr(p, 'llm_request_options', None) or {}),
559
599
  'tool_policy': dict(getattr(p, 'tool_policy', None) or {}),
600
+ 'context_policy': self.normalize_context_policy(
601
+ getattr(p, 'context_policy', None),
602
+ getattr(p, 'agent_role', None),
603
+ ),
560
604
  }
561
605
  for p in prompts
562
606
  ]
@@ -687,6 +731,10 @@ class PromptService:
687
731
  ),
688
732
  llm_request_options=llm_request_options,
689
733
  tool_policy=tool_policy,
734
+ context_policy=self.normalize_context_policy(
735
+ data.get("context_policy"),
736
+ agent_role,
737
+ ),
690
738
  )
691
739
  self.llm_query_repo.create_or_update_prompt(new_prompt)
692
740
 
@@ -963,6 +1011,10 @@ class PromptService:
963
1011
  self._extract_llm_request_options_payload(prompt_data)
964
1012
  ),
965
1013
  tool_policy=self._normalize_tool_policy(prompt_data.get("tool_policy")),
1014
+ context_policy=self.normalize_context_policy(
1015
+ prompt_data.get("context_policy"),
1016
+ agent_role,
1017
+ ),
966
1018
  )
967
1019
 
968
1020
  self.llm_query_repo.create_or_update_prompt(new_prompt)
@@ -15,6 +15,7 @@ from iatoolkit.services.context_builder_service import ContextBuilderService
15
15
  from iatoolkit.services.attachment_policy_service import AttachmentPolicyService
16
16
  from iatoolkit.services.memory_lookup_policy_service import MemoryLookupPolicyService
17
17
  from iatoolkit.services.telemetry_service import NoopTelemetryService
18
+ from iatoolkit.services.prompt_service import PromptService
18
19
  from iatoolkit.common.model_registry import ModelRegistry
19
20
  from injector import inject
20
21
  import logging
@@ -341,6 +342,10 @@ class QueryService:
341
342
  })
342
343
  contract["resource_bindings"] = normalized_resource_bindings
343
344
  contract["tool_policy"] = self._normalize_prompt_tool_policy(contract.get("tool_policy"))
345
+ contract["context_policy"] = PromptService.normalize_context_policy(
346
+ contract.get("context_policy"),
347
+ contract.get("agent_role"),
348
+ )
344
349
  contract["provider"] = self._get_provider(company.short_name, contract.get("llm_model") or "")
345
350
  return contract
346
351
  except Exception as e:
@@ -1875,6 +1880,10 @@ class QueryService:
1875
1880
  "provider": provider,
1876
1881
  "effective_model": effective_model,
1877
1882
  "tool_policy": self._normalize_prompt_tool_policy(prompt_output_contract.get("tool_policy")),
1883
+ "context_policy": PromptService.normalize_context_policy(
1884
+ prompt_output_contract.get("context_policy"),
1885
+ prompt_output_contract.get("agent_role"),
1886
+ ),
1878
1887
  "resource_bindings": list(prompt_output_contract.get("resource_bindings") or []),
1879
1888
  "selected_system_prompt_keys": selected_system_prompt_keys,
1880
1889
  "tool_names": self._get_tool_names(tools),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.31.0
3
+ Version: 2.32.0
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes
File without changes