answer42 0.4.87__tar.gz → 0.4.89__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 (64) hide show
  1. {answer42-0.4.87 → answer42-0.4.89}/PKG-INFO +1 -1
  2. {answer42-0.4.87 → answer42-0.4.89}/pyproject.toml +1 -1
  3. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/server.py +13 -1
  4. {answer42-0.4.87 → answer42-0.4.89}/.gitignore +0 -0
  5. {answer42-0.4.87 → answer42-0.4.89}/LICENSE +0 -0
  6. {answer42-0.4.87 → answer42-0.4.89}/README.md +0 -0
  7. {answer42-0.4.87 → answer42-0.4.89}/credentials.example.json +0 -0
  8. {answer42-0.4.87 → answer42-0.4.89}/docs/agent-installation.md +0 -0
  9. {answer42-0.4.87 → answer42-0.4.89}/docs/architecture.md +0 -0
  10. {answer42-0.4.87 → answer42-0.4.89}/docs/assets/answer42-logo.png +0 -0
  11. {answer42-0.4.87 → answer42-0.4.89}/docs/assets/platform42-logo.svg +0 -0
  12. {answer42-0.4.87 → answer42-0.4.89}/docs/installation.md +0 -0
  13. {answer42-0.4.87 → answer42-0.4.89}/scripts/build_cf.py +0 -0
  14. {answer42-0.4.87 → answer42-0.4.89}/scripts/build_pages.py +0 -0
  15. {answer42-0.4.87 → answer42-0.4.89}/scripts/e2e_http_smoke.py +0 -0
  16. {answer42-0.4.87 → answer42-0.4.89}/scripts/e2e_stable.py +0 -0
  17. {answer42-0.4.87 → answer42-0.4.89}/scripts/openclaw_mcp_autoreload.py +0 -0
  18. {answer42-0.4.87 → answer42-0.4.89}/scripts/rag_cli.py +0 -0
  19. {answer42-0.4.87 → answer42-0.4.89}/src/cf/ConfigDumpInfo.xml +0 -0
  20. {answer42-0.4.87 → answer42-0.4.89}/src/cf/Configuration.xml +0 -0
  21. {answer42-0.4.87 → answer42-0.4.89}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
  22. {answer42-0.4.87 → answer42-0.4.89}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl" +0 -0
  23. {answer42-0.4.87 → answer42-0.4.89}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
  24. {answer42-0.4.87 → answer42-0.4.89}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
  25. {answer42-0.4.87 → answer42-0.4.89}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
  26. {answer42-0.4.87 → answer42-0.4.89}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
  27. {answer42-0.4.87 → answer42-0.4.89}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
  28. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Catalogs//320/237/320/241_/320/222/320/273/320/260/320/264/320/265/320/273/320/265/321/206.xml" +0 -0
  29. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Catalogs//320/237/320/241_/320/241/320/277/321/200/320/260/320/262/320/276/321/207/320/275/320/270/320/2721.xml" +0 -0
  30. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/ConfigDumpInfo.xml +0 -0
  31. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Configuration.xml +0 -0
  32. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
  33. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Ext/ManagerModule.bsl" +0 -0
  34. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Ext/ObjectModule.bsl" +0 -0
  35. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Templates//320/236/321/201/320/275/320/276/320/262/320/275/320/260/321/217/320/241/321/205/320/265/320/274/320/260/320/232/320/276/320/274/320/277/320/276/320/275/320/276/320/262/320/272/320/270/320/224/320/260/320/275/320/275/321/213/321/205/Ext/Template.xml" +0 -0
  36. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Templates//320/236/321/201/320/275/320/276/320/262/320/275/320/260/321/217/320/241/321/205/320/265/320/274/320/260/320/232/320/276/320/274/320/277/320/276/320/275/320/276/320/262/320/272/320/270/320/224/320/260/320/275/320/275/321/213/321/205.xml" +0 -0
  37. {answer42-0.4.87 → answer42-0.4.89}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262.xml" +0 -0
  38. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/__init__.py +0 -0
  39. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
  40. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
  41. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/__init__.py +0 -0
  42. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
  43. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
  44. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/assets/skills/answer42-universal-report/SKILL.md +0 -0
  45. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/auth.py +0 -0
  46. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/bridge.py +0 -0
  47. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/credentials.py +0 -0
  48. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/os_support.py +0 -0
  49. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/platform.py +0 -0
  50. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/protocol.py +0 -0
  51. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/__init__.py +0 -0
  52. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/detect.py +0 -0
  53. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/dump.py +0 -0
  54. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/model.py +0 -0
  55. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/parsers.py +0 -0
  56. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/service.py +0 -0
  57. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/store.py +0 -0
  58. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/summary_backend.py +0 -0
  59. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/rag/summary_vector.py +0 -0
  60. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/recorder.py +0 -0
  61. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/release_helper.py +0 -0
  62. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/runtime.py +0 -0
  63. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/skill_installer.py +0 -0
  64. {answer42-0.4.87 → answer42-0.4.89}/src/mcp_1c/window_control.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: answer42
3
- Version: 0.4.87
3
+ Version: 0.4.89
4
4
  Summary: Answer42 — The Answer to Life, Universe, and 1C — UI Driver. MCP-powered 1C:Enterprise UI automation: click, fill, navigate, test, and introspect managed forms through the test-client API
5
5
  Author: Marvin (AI Assistant), 42Clouds, and contributors
6
6
  Author-email: "Kosolapov Stanislav (proDOOMman)" <prodoomman@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "answer42"
3
- version = "0.4.87"
3
+ version = "0.4.89"
4
4
  description = "Answer42 — The Answer to Life, Universe, and 1C — UI Driver. MCP-powered 1C:Enterprise UI automation: click, fill, navigate, test, and introspect managed forms through the test-client API"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -7568,6 +7568,18 @@ def _is_not_deleted_catalog_row(row: dict[str, str]) -> bool:
7568
7568
  return not _is_truthy_1c(delete_mark)
7569
7569
 
7570
7570
 
7571
+ def _has_metadata_delete_mark_marker(row: dict[str, str]) -> bool:
7572
+ return any(
7573
+ _row_value(row, *columns).strip().startswith("?")
7574
+ for columns in (
7575
+ ("Ссылка", "Наименование", "Идентификатор объекта метаданных", "ИдентификаторОбъектаМетаданных"),
7576
+ ("Полное имя", "ПолноеИмя", "СписокПолноеИмя"),
7577
+ ("Синоним",),
7578
+ ("Полный синоним", "ПолныйСиноним"),
7579
+ )
7580
+ )
7581
+
7582
+
7571
7583
  def _is_metadata_full_name_included(full_name: str) -> bool:
7572
7584
  normalized = (full_name or "").strip().casefold()
7573
7585
  if not normalized:
@@ -8937,7 +8949,7 @@ def _metadata_catalog_data_from_rows(
8937
8949
  ) -> dict[str, Any]:
8938
8950
  actual_rows = []
8939
8951
  for row in parsed_rows:
8940
- if not _is_not_deleted_catalog_row(row):
8952
+ if not _is_not_deleted_catalog_row(row) or _has_metadata_delete_mark_marker(row):
8941
8953
  continue
8942
8954
  item = _metadata_object_from_row(row)
8943
8955
  if _is_metadata_full_name_included(item.get("full_name", "")):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes