iatoolkit 2.26.4__tar.gz → 2.26.6__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.26.4/src/iatoolkit.egg-info → iatoolkit-2.26.6}/PKG-INFO +1 -1
  2. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/__init__.py +1 -1
  3. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/locales/en.yaml +75 -13
  4. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/locales/es.yaml +75 -13
  5. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/knowledge_wiki_repo.py +78 -0
  6. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/models.py +36 -0
  7. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/tenant_wiki_service.py +623 -27
  8. {iatoolkit-2.26.4 → iatoolkit-2.26.6/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  9. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/LICENSE +0 -0
  10. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/LICENSE_COMMUNITY.md +0 -0
  11. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/pyproject.toml +0 -0
  12. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/readme.md +0 -0
  13. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/requirements.txt +0 -0
  14. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/setup.cfg +0 -0
  15. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/base_company.py +0 -0
  16. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/cli_commands.py +0 -0
  17. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/__init__.py +0 -0
  18. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/exceptions.py +0 -0
  19. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  20. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  21. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  22. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  23. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
  24. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  25. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  26. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  27. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/model_registry.py +0 -0
  28. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/routes.py +0 -0
  29. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/secret_resolver.py +0 -0
  30. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/session_manager.py +0 -0
  31. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/common/util.py +0 -0
  32. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/company_registry.py +0 -0
  33. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/__init__.py +0 -0
  34. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  35. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  36. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  37. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  38. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  39. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  40. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  41. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  42. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  43. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  44. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  45. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  46. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  47. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  48. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  49. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  50. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  51. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  52. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  53. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  54. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  55. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  56. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  57. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  58. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  59. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
  60. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  61. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  62. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  63. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/core.py +0 -0
  64. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/__init__.py +0 -0
  65. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  66. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/call_service.py +0 -0
  67. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  68. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  69. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  70. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  71. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  72. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  73. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  74. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/google_auth_client.py +0 -0
  75. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/google_chat_app.py +0 -0
  76. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  77. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/inference_handler.py +0 -0
  78. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  79. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  80. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  81. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  82. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  83. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  84. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
  85. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
  86. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  87. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_proxy.py +0 -0
  88. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/llm_response.py +0 -0
  89. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  90. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/__init__.py +0 -0
  91. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  92. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/database_manager.py +0 -0
  93. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/document_repo.py +0 -0
  94. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  95. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  96. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  97. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  98. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/memory_repo.py +0 -0
  99. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/profile_repo.py +0 -0
  100. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  101. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  102. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  103. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/repositories/vs_repo.py +0 -0
  104. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/runtime_logging.py +0 -0
  105. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/__init__.py +0 -0
  106. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/api_key_service.py +0 -0
  107. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  108. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/auth_service.py +0 -0
  109. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/benchmark_service.py +0 -0
  110. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/branding_service.py +0 -0
  111. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/company_context_service.py +0 -0
  112. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/configuration_service.py +0 -0
  113. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/context_builder_service.py +0 -0
  114. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/dispatcher_service.py +0 -0
  115. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/embedding_service.py +0 -0
  116. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/excel_service.py +0 -0
  117. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/file_processor_service.py +0 -0
  118. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/history_manager_service.py +0 -0
  119. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/http_tool_service.py +0 -0
  120. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/i18n_service.py +0 -0
  121. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/inference_service.py +0 -0
  122. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/jwt_service.py +0 -0
  123. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  124. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/language_service.py +0 -0
  125. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/license_service.py +0 -0
  126. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/llm_client_service.py +0 -0
  127. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/mail_service.py +0 -0
  128. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  129. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/mcp_token_service.py +0 -0
  130. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  131. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/memory_lint_service.py +0 -0
  132. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  133. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/memory_service.py +0 -0
  134. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  135. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  136. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
  137. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/__init__.py +0 -0
  138. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/contracts.py +0 -0
  139. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  140. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  141. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  142. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  143. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  144. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  145. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  146. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  147. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/parsers/validator.py +0 -0
  148. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/pdf_service.py +0 -0
  149. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/profile_service.py +0 -0
  150. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  151. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/prompt_service.py +0 -0
  152. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/query_service.py +0 -0
  153. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  154. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  155. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/sql_service.py +0 -0
  156. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/sql_source_service.py +0 -0
  157. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/storage_service.py +0 -0
  158. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/structured_output_service.py +0 -0
  159. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  160. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/system_tools.py +0 -0
  161. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/telemetry_service.py +0 -0
  162. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/tool_output_contract.py +0 -0
  163. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/tool_service.py +0 -0
  164. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/user_feedback_service.py +0 -0
  165. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/user_session_context_service.py +0 -0
  166. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/visual_kb_service.py +0 -0
  167. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/visual_tool_service.py +0 -0
  168. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/warmup_service.py +0 -0
  169. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/web_search/__init__.py +0 -0
  170. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  171. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  172. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  173. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/services/web_search_service.py +0 -0
  174. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  175. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  176. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  177. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  178. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  179. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  180. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  181. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  182. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_main.js +0 -0
  183. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  184. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
  185. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  186. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  187. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
  188. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  189. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  190. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/chat_public.css +0 -0
  191. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/documents.css +0 -0
  192. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/landing_page.css +0 -0
  193. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/llm_output.css +0 -0
  194. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/static/styles/onboarding.css +0 -0
  195. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/_company_header.html +0 -0
  196. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/_login_widget.html +0 -0
  197. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/account.html +0 -0
  198. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/base.html +0 -0
  199. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/change_password.html +0 -0
  200. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/chat.html +0 -0
  201. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  202. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/chat_modals.html +0 -0
  203. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/error.html +0 -0
  204. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/forgot_password.html +0 -0
  205. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  206. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  207. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/onboarding_shell.html +0 -0
  208. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/pdf/base.html +0 -0
  209. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/pdf/letter.html +0 -0
  210. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/pdf/report.html +0 -0
  211. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/pdf/simple.html +0 -0
  212. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/templates/signup.html +0 -0
  213. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/__init__.py +0 -0
  214. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/account_view.py +0 -0
  215. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/api_key_api_view.py +0 -0
  216. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/base_login_view.py +0 -0
  217. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/categories_api_view.py +0 -0
  218. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/change_password_view.py +0 -0
  219. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  220. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/chat_view.py +0 -0
  221. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/configuration_api_view.py +0 -0
  222. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/connectors_api_view.py +0 -0
  223. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/embedding_api_view.py +0 -0
  224. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/forgot_password_view.py +0 -0
  225. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/help_content_api_view.py +0 -0
  226. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/history_api_view.py +0 -0
  227. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/home_view.py +0 -0
  228. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/init_context_api_view.py +0 -0
  229. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  230. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/load_document_api_view.py +0 -0
  231. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/login_view.py +0 -0
  232. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/logout_api_view.py +0 -0
  233. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/memory_api_view.py +0 -0
  234. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/profile_api_view.py +0 -0
  235. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/prompt_api_view.py +0 -0
  236. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  237. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  238. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/rag_api_view.py +0 -0
  239. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/root_redirect_view.py +0 -0
  240. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/signup_view.py +0 -0
  241. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/static_page_view.py +0 -0
  242. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/tool_api_view.py +0 -0
  243. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  244. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/users_api_view.py +0 -0
  245. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit/views/verify_user_view.py +0 -0
  246. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  247. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  248. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/src/iatoolkit.egg-info/requires.txt +0 -0
  249. {iatoolkit-2.26.4 → iatoolkit-2.26.6}/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.26.4
3
+ Version: 2.26.6
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.26.4"
6
+ __version__ = "2.26.6"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -629,9 +629,18 @@ ui:
629
629
  create_wiki: "Create wiki"
630
630
  select_wiki: "Select a wiki"
631
631
  workspace_placeholder: "Choose a wiki from the list or create a new one."
632
+ open_wiki: "Open wiki"
633
+ back_to_wikis: "Back to wikis"
632
634
  configure: "Configuration"
635
+ configure_action: "Configure"
636
+ general: "General"
633
637
  key: "Key"
634
638
  name: "Name"
639
+ authoring_mode: "Authoring mode"
640
+ mode_managed: "Managed"
641
+ mode_external_sync: "External"
642
+ mode_managed_help: "The wiki is edited from this workspace and pages are saved into storage."
643
+ mode_external_sync_help: "The wiki stays read-only in IAToolkit and updates from the configured storage root."
635
644
  root: "Storage root"
636
645
  edit_root: "Edit storage root"
637
646
  lock_root: "Lock storage root editing"
@@ -643,26 +652,79 @@ ui:
643
652
  pages: "Pages"
644
653
  index: "Index"
645
654
  mcp: "MCP"
655
+ content: "Content"
656
+ tree: "Tree"
657
+ list: "List"
658
+ home: "Home"
659
+ home_short: "Home"
660
+ home_summary: "Root page exposed to MCP."
661
+ page: "Page"
662
+ edit_page: "Edit"
663
+ back: "Back"
664
+ link_page: "Link"
665
+ new_page: "Page"
666
+ history: "History"
667
+ page_history: "Page history"
668
+ no_revisions: "No revisions yet."
669
+ history_error: "Could not load history."
670
+ move_page: "Move"
671
+ create_page: "Create page"
672
+ delete_page: "Delete page"
673
+ delete_page_confirmation: "Delete page"
674
+ delete_page_message: "This removes the page from the managed wiki and deletes its markdown file."
675
+ page_path: "File path"
676
+ current_path: "Current path"
677
+ new_path: "New path"
678
+ page_title: "Title"
679
+ source: "Source"
680
+ pages_summary: "{count} pages available."
681
+ pages_available_short: "{count} available"
682
+ page_editing: "Editing {path}"
683
+ page_local_draft: "Local changes"
684
+ page_create_ok: "Page created."
685
+ page_create_error: "Could not create page."
686
+ page_save_ok: "Page saved."
687
+ page_save_error: "Could not save page."
688
+ page_saving: "Saving..."
689
+ save_page: "Save"
690
+ page_delete_ok: "Page deleted."
691
+ page_delete_error: "Could not delete page."
692
+ page_deleting: "Deleting..."
693
+ page_move_ok: "Page moved."
694
+ page_move_error: "Could not move page."
695
+ page_path_required: "Page path is required."
696
+ revision_create: "Created"
697
+ revision_update: "Edited"
698
+ revision_delete: "Deleted"
699
+ revision_move: "Moved"
700
+ root_group: "Root"
701
+ delete_wiki: "Delete wiki"
646
702
  mcp_status: "MCP publication"
647
703
  mcp_status_published: "Published"
648
704
  mcp_status_unpublished: "Not published"
649
- mcp_status_published_help: "This wiki index is already exposed as a resource in the tenant MCP catalog."
650
- mcp_status_unpublished_help: "This wiki does not yet expose its index as an MCP resource."
705
+ mcp_status_published_help: "This wiki is already exposed as a resource in the tenant MCP catalog."
706
+ mcp_status_unpublished_help: "This wiki is not yet exposed as an MCP resource."
651
707
  mcp_wiki_key: "MCP wiki_key"
708
+ mcp_entrypoint: "MCP home"
652
709
  lint: "Validate"
653
710
  validate: "Validate"
654
711
  validation_results: "Validation results"
655
- sync: "Sync"
712
+ sync: "Update"
656
713
  issues: "issues"
657
714
  index_path: "Path"
658
715
  index_source: "Source"
659
716
  index_view_generated: "Generated"
660
717
  index_view_mcp: "MCP"
661
718
  index_resource: "Resource URI"
662
- mcp_publish_help: "This action publishes only this wiki's markdown index resource into MCP."
719
+ workspace_hint_title: "Workspace"
720
+ workspace_hint_copy: "Open this wiki to browse its pages and switch into editing without the wiki list."
721
+ overview_structure: "Structure"
722
+ overview_structure_empty: "No indexed pages yet."
723
+ overview_structure_more: "{count} more folders"
724
+ mcp_publish_help: "This action publishes this wiki as an MCP resource."
663
725
  mcp_tools_help: "The tools iat_wiki_search and iat_wiki_get_page are enabled separately from the MCP manager."
664
726
  mcp_step_publish_title: "1. Publish resource"
665
- mcp_step_publish_text: "The Publish to MCP button adds or updates `iat://knowledge-wikis/{wiki_key}/index` in the tenant MCP resources."
727
+ mcp_step_publish_text: "The Publish to MCP button adds or updates `iat://knowledge-wikis/{wiki_key}` in the tenant MCP resources."
666
728
  mcp_step_tools_title: "2. Enable tools"
667
729
  mcp_step_tools_text: "If you want tool-based search or page reads, enable `iat_wiki_search` and `iat_wiki_get_page` from the MCP manager."
668
730
  mcp_step_usage_title: "3. Use wiki_key and path"
@@ -685,11 +747,11 @@ ui:
685
747
  delete_message: "This removes the wiki configuration, generated index, and indexed pages. Source markdown files in storage are not deleted."
686
748
  delete_ok: "Wiki deleted."
687
749
  delete_error: "Could not delete wiki."
688
- sync_ok: "Sync completed."
689
- sync_partial_ok: "Sync completed with errors."
690
- sync_error: "Could not sync wiki."
691
- sync_running: "Syncing..."
692
- sync_results: "Sync result"
750
+ sync_ok: "Update completed."
751
+ sync_partial_ok: "Update completed with errors."
752
+ sync_error: "Could not update the wiki from storage."
753
+ sync_running: "Updating..."
754
+ sync_results: "Update result"
693
755
  sync_status_idle: "Not run"
694
756
  sync_status_success: "Completed"
695
757
  sync_status_partial: "Completed with errors"
@@ -699,9 +761,9 @@ ui:
699
761
  sync_failed: "Failed"
700
762
  sync_finished_at: "Finished"
701
763
  sync_first_error: "First error"
702
- sync_summary_success: "Reviewed {seen} markdown files and indexed {indexed} pages."
703
- sync_summary_partial: "Reviewed {seen} markdown files, indexed {indexed} pages, and found {failed} failures."
704
- sync_summary_error: "Sync failed after reviewing {seen} markdown files. {failed} files could not be indexed."
764
+ sync_summary_success: "Reviewed {seen} markdown files and updated {indexed} pages."
765
+ sync_summary_partial: "Reviewed {seen} markdown files, updated {indexed} pages, and found {failed} failures."
766
+ sync_summary_error: "The update failed after reviewing {seen} markdown files. {failed} files could not be indexed."
705
767
  sync_summary_empty: "No markdown files were found under this storage root."
706
768
  lint_ok: "Validation completed."
707
769
  lint_error: "Could not validate wiki."
@@ -629,9 +629,18 @@ ui:
629
629
  create_wiki: "Crear wiki"
630
630
  select_wiki: "Selecciona una wiki"
631
631
  workspace_placeholder: "Elige una wiki del listado o crea una nueva."
632
+ open_wiki: "Abrir wiki"
633
+ back_to_wikis: "Volver a wikis"
632
634
  configure: "Configuración"
635
+ configure_action: "Configurar"
636
+ general: "General"
633
637
  key: "Clave"
634
638
  name: "Nombre"
639
+ authoring_mode: "Modo de gestión"
640
+ mode_managed: "Gestionada"
641
+ mode_external_sync: "Externa"
642
+ mode_managed_help: "La wiki se edita desde esta interfaz y guarda sus páginas en storage."
643
+ mode_external_sync_help: "La wiki queda de solo lectura en IAToolkit y se actualiza desde la raíz storage configurada."
635
644
  root: "Raíz storage"
636
645
  edit_root: "Editar raíz storage"
637
646
  lock_root: "Bloquear edición de raíz storage"
@@ -643,26 +652,79 @@ ui:
643
652
  pages: "Páginas"
644
653
  index: "Índice"
645
654
  mcp: "MCP"
655
+ content: "Contenido"
656
+ tree: "Árbol"
657
+ list: "Lista"
658
+ home: "Portada"
659
+ home_short: "Inicio"
660
+ home_summary: "Página raíz expuesta al MCP."
661
+ page: "Página"
662
+ edit_page: "Editar"
663
+ back: "Volver"
664
+ link_page: "Vincular"
665
+ new_page: "Página"
666
+ history: "Historial"
667
+ page_history: "Historial de página"
668
+ no_revisions: "Aún no hay revisiones."
669
+ history_error: "No se pudo cargar el historial."
670
+ move_page: "Mover"
671
+ create_page: "Crear página"
672
+ delete_page: "Borrar página"
673
+ delete_page_confirmation: "Eliminar página"
674
+ delete_page_message: "Se borrará esta página del wiki gestionado y su archivo markdown asociado."
675
+ page_path: "Ruta de archivo"
676
+ current_path: "Ruta actual"
677
+ new_path: "Nueva ruta"
678
+ page_title: "Título"
679
+ source: "Origen"
680
+ pages_summary: "{count} páginas disponibles."
681
+ pages_available_short: "{count} disponibles"
682
+ page_editing: "Editando {path}"
683
+ page_local_draft: "Cambios locales"
684
+ page_create_ok: "Página creada."
685
+ page_create_error: "No se pudo crear la página."
686
+ page_save_ok: "Página guardada."
687
+ page_save_error: "No se pudo guardar la página."
688
+ page_saving: "Guardando..."
689
+ save_page: "Guardar"
690
+ page_delete_ok: "Página eliminada."
691
+ page_delete_error: "No se pudo eliminar la página."
692
+ page_deleting: "Eliminando..."
693
+ page_move_ok: "Página movida."
694
+ page_move_error: "No se pudo mover la página."
695
+ page_path_required: "Debes ingresar la ruta del archivo."
696
+ revision_create: "Creada"
697
+ revision_update: "Editada"
698
+ revision_delete: "Eliminada"
699
+ revision_move: "Movida"
700
+ root_group: "Raíz"
701
+ delete_wiki: "Borrar wiki"
646
702
  mcp_status: "Publicación MCP"
647
703
  mcp_status_published: "Publicado"
648
704
  mcp_status_unpublished: "No publicado"
649
- mcp_status_published_help: "El índice de esta wiki ya está expuesto como resource en el catálogo MCP del tenant."
650
- mcp_status_unpublished_help: "Esta wiki todavía no expone su índice como resource MCP."
705
+ mcp_status_published_help: "Esta wiki ya está expuesta como resource en el catálogo MCP del tenant."
706
+ mcp_status_unpublished_help: "Esta wiki todavía no está expuesta como resource MCP."
651
707
  mcp_wiki_key: "wiki_key MCP"
708
+ mcp_entrypoint: "Portada MCP"
652
709
  lint: "Validar"
653
710
  validate: "Validar"
654
711
  validation_results: "Resultados de validación"
655
- sync: "Sincronizar"
712
+ sync: "Actualizar"
656
713
  issues: "hallazgos"
657
714
  index_path: "Ruta"
658
715
  index_source: "Fuente"
659
716
  index_view_generated: "Generado"
660
717
  index_view_mcp: "MCP"
661
718
  index_resource: "URI del resource"
662
- mcp_publish_help: "Esta acción publica en MCP solo el resource del índice markdown de esta wiki."
719
+ workspace_hint_title: "Workspace"
720
+ workspace_hint_copy: "Abre esta wiki para explorar sus páginas y pasar a modo edición sin la lista de wikis."
721
+ overview_structure: "Estructura"
722
+ overview_structure_empty: "Aún no hay páginas indexadas."
723
+ overview_structure_more: "{count} carpetas más"
724
+ mcp_publish_help: "Esta acción publica esta wiki como resource MCP."
663
725
  mcp_tools_help: "Las tools iat_wiki_search e iat_wiki_get_page se habilitan por separado desde el gestor MCP."
664
726
  mcp_step_publish_title: "1. Publicar resource"
665
- mcp_step_publish_text: "El botón Publicar en MCP agrega o actualiza `iat://knowledge-wikis/{wiki_key}/index` dentro de los resources MCP del tenant."
727
+ mcp_step_publish_text: "El botón Publicar en MCP agrega o actualiza `iat://knowledge-wikis/{wiki_key}` dentro de los resources MCP del tenant."
666
728
  mcp_step_tools_title: "2. Habilitar tools"
667
729
  mcp_step_tools_text: "Si quieres búsqueda o lectura por tool, habilita `iat_wiki_search` e `iat_wiki_get_page` desde el gestor MCP."
668
730
  mcp_step_usage_title: "3. Usar wiki_key y path"
@@ -685,11 +747,11 @@ ui:
685
747
  delete_message: "Se borrará la configuración de la wiki, el índice generado y las páginas indexadas. Los archivos markdown fuente del storage no se borran."
686
748
  delete_ok: "Wiki eliminada."
687
749
  delete_error: "No se pudo eliminar la wiki."
688
- sync_ok: "Sincronización completada."
689
- sync_partial_ok: "Sincronización completada con errores."
690
- sync_error: "No se pudo sincronizar la wiki."
691
- sync_running: "Sincronizando..."
692
- sync_results: "Resultado de sincronización"
750
+ sync_ok: "Actualización completada."
751
+ sync_partial_ok: "Actualización completada con errores."
752
+ sync_error: "No se pudo actualizar la wiki desde storage."
753
+ sync_running: "Actualizando..."
754
+ sync_results: "Resultado de actualización"
693
755
  sync_status_idle: "Sin ejecutar"
694
756
  sync_status_success: "Completada"
695
757
  sync_status_partial: "Con errores"
@@ -699,9 +761,9 @@ ui:
699
761
  sync_failed: "Fallidas"
700
762
  sync_finished_at: "Finalizó"
701
763
  sync_first_error: "Primer error"
702
- sync_summary_success: "Se revisaron {seen} archivos markdown y se indexaron {indexed} páginas."
703
- sync_summary_partial: "Se revisaron {seen} archivos markdown, se indexaron {indexed} páginas y {failed} fallaron."
704
- sync_summary_error: "La sincronización falló después de revisar {seen} archivos markdown. {failed} archivos no pudieron indexarse."
764
+ sync_summary_success: "Se revisaron {seen} archivos markdown y se actualizaron {indexed} páginas."
765
+ sync_summary_partial: "Se revisaron {seen} archivos markdown, se actualizaron {indexed} páginas y {failed} fallaron."
766
+ sync_summary_error: "La actualización falló después de revisar {seen} archivos markdown. {failed} archivos no pudieron indexarse."
705
767
  sync_summary_empty: "No se encontraron archivos markdown bajo esta raíz de storage."
706
768
  lint_ok: "Validación completada."
707
769
  lint_error: "No se pudo validar la wiki."
@@ -8,11 +8,13 @@ from __future__ import annotations
8
8
  from datetime import datetime
9
9
 
10
10
  from injector import inject
11
+ from sqlalchemy import or_
11
12
 
12
13
  from iatoolkit.repositories.database_manager import DatabaseManager
13
14
  from iatoolkit.repositories.models import (
14
15
  KnowledgeWiki,
15
16
  KnowledgeWikiPage,
17
+ KnowledgeWikiPageRevision,
16
18
  KnowledgeWikiPageStatus,
17
19
  KnowledgeWikiStatus,
18
20
  KnowledgeWikiSyncRun,
@@ -187,6 +189,82 @@ class KnowledgeWikiRepo:
187
189
  self.session.commit()
188
190
  return page
189
191
 
192
+ def save_page(self, page: KnowledgeWikiPage) -> KnowledgeWikiPage:
193
+ self.session.add(page)
194
+ self.session.commit()
195
+ return page
196
+
197
+ def delete_page(self, wiki_id: int, path: str) -> KnowledgeWikiPage | None:
198
+ page = self.get_page_by_path(wiki_id, path)
199
+ if page is None:
200
+ return None
201
+ self.session.delete(page)
202
+ self.session.commit()
203
+ return page
204
+
205
+ def create_page_revision(
206
+ self,
207
+ *,
208
+ company_id: int,
209
+ wiki_id: int,
210
+ page_id: int | None,
211
+ action: str,
212
+ path: str,
213
+ previous_path: str | None = None,
214
+ title: str | None = None,
215
+ markdown: str | None = None,
216
+ checksum: str | None = None,
217
+ edited_by: str | None = None,
218
+ change_summary: str | None = None,
219
+ metadata_json: dict | None = None,
220
+ ) -> KnowledgeWikiPageRevision:
221
+ revision = KnowledgeWikiPageRevision(
222
+ company_id=company_id,
223
+ wiki_id=wiki_id,
224
+ page_id=page_id,
225
+ action=action,
226
+ path=path,
227
+ previous_path=previous_path,
228
+ title=title,
229
+ markdown=markdown,
230
+ checksum=checksum,
231
+ edited_by=edited_by,
232
+ change_summary=change_summary,
233
+ metadata_json=metadata_json or {},
234
+ )
235
+ self.session.add(revision)
236
+ self.session.commit()
237
+ return revision
238
+
239
+ def list_page_revisions(
240
+ self,
241
+ wiki_id: int,
242
+ *,
243
+ path: str | None = None,
244
+ page_id: int | None = None,
245
+ limit: int = 50,
246
+ ) -> list[KnowledgeWikiPageRevision]:
247
+ if not wiki_id:
248
+ return []
249
+ query = self.session.query(KnowledgeWikiPageRevision).filter_by(wiki_id=wiki_id)
250
+ filters = []
251
+ if page_id:
252
+ filters.append(KnowledgeWikiPageRevision.page_id == page_id)
253
+ if path:
254
+ filters.extend([
255
+ KnowledgeWikiPageRevision.path == path,
256
+ KnowledgeWikiPageRevision.previous_path == path,
257
+ ])
258
+ if filters:
259
+ query = query.filter(or_(*filters))
260
+ bounded_limit = min(max(int(limit or 50), 1), 200)
261
+ return (
262
+ query
263
+ .order_by(KnowledgeWikiPageRevision.created_at.desc(), KnowledgeWikiPageRevision.id.desc())
264
+ .limit(bounded_limit)
265
+ .all()
266
+ )
267
+
190
268
  def archive_pages_not_in_paths(self, wiki_id: int, paths: set[str]) -> int:
191
269
  if not wiki_id:
192
270
  return 0
@@ -209,6 +209,11 @@ class Company(Base):
209
209
  back_populates="company",
210
210
  cascade="all, delete-orphan",
211
211
  )
212
+ knowledge_wiki_page_revisions = relationship(
213
+ "KnowledgeWikiPageRevision",
214
+ back_populates="company",
215
+ cascade="all, delete-orphan",
216
+ )
212
217
 
213
218
 
214
219
  def to_dict(self):
@@ -579,6 +584,11 @@ class KnowledgeWiki(Base):
579
584
  back_populates="wiki",
580
585
  cascade="all, delete-orphan",
581
586
  )
587
+ page_revisions = relationship(
588
+ "KnowledgeWikiPageRevision",
589
+ back_populates="wiki",
590
+ cascade="all, delete-orphan",
591
+ )
582
592
 
583
593
  def to_dict(self):
584
594
  return {column.key: getattr(self, column.key) for column in class_mapper(self.__class__).columns}
@@ -617,6 +627,32 @@ class KnowledgeWikiPage(Base):
617
627
  return {column.key: getattr(self, column.key) for column in class_mapper(self.__class__).columns}
618
628
 
619
629
 
630
+ class KnowledgeWikiPageRevision(Base):
631
+ """Immutable audit snapshot for a manual tenant wiki page change."""
632
+ __tablename__ = "iat_knowledge_wiki_page_revisions"
633
+
634
+ id = Column(Integer, primary_key=True, autoincrement=True)
635
+ company_id = Column(Integer, ForeignKey(f"{ORM_SCHEMA}.iat_companies.id", ondelete="CASCADE"), nullable=False)
636
+ wiki_id = Column(Integer, ForeignKey(f"{ORM_SCHEMA}.iat_knowledge_wikis.id", ondelete="CASCADE"), nullable=False)
637
+ page_id = Column(Integer, ForeignKey(f"{ORM_SCHEMA}.iat_knowledge_wiki_pages.id", ondelete="SET NULL"), nullable=True)
638
+ action = Column(String, nullable=False)
639
+ path = Column(String, nullable=False)
640
+ previous_path = Column(String, nullable=True)
641
+ title = Column(String, nullable=True)
642
+ markdown = Column(Text, nullable=True)
643
+ checksum = Column(String, nullable=True)
644
+ edited_by = Column(String, nullable=True)
645
+ change_summary = Column(Text, nullable=True)
646
+ metadata_json = Column(JSON_NATIVE, nullable=False, default=dict)
647
+ created_at = Column(DateTime, default=datetime.now, nullable=False)
648
+
649
+ company = relationship("Company", back_populates="knowledge_wiki_page_revisions")
650
+ wiki = relationship("KnowledgeWiki", back_populates="page_revisions")
651
+
652
+ def to_dict(self):
653
+ return {column.key: getattr(self, column.key) for column in class_mapper(self.__class__).columns}
654
+
655
+
620
656
  class KnowledgeWikiSyncRun(Base):
621
657
  """Tracks one import/reindex pass for a tenant knowledge wiki."""
622
658
  __tablename__ = "iat_knowledge_wiki_sync_runs"