answer42 0.4.78__tar.gz → 0.4.79__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.
- {answer42-0.4.78 → answer42-0.4.79}/PKG-INFO +1 -1
- {answer42-0.4.78 → answer42-0.4.79}/pyproject.toml +1 -1
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/server.py +0 -32
- {answer42-0.4.78 → answer42-0.4.79}/.gitignore +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/LICENSE +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/README.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/credentials.example.json +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/docs/agent-installation.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/docs/architecture.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/docs/assets/answer42-logo.png +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/docs/assets/platform42-logo.svg +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/docs/installation.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/build_cf.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/build_pages.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/e2e_http_smoke.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/e2e_stable.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/openclaw_mcp_autoreload.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/scripts/rag_cli.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/Configuration.xml +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl" +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/src/client_cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/client_cf/Configuration.xml +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/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
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/__init__.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/__init__.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/skills/answer42-universal-report/SKILL.md +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/auth.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/bridge.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/credentials.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/os_support.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/platform.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/protocol.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/__init__.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/detect.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/dump.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/model.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/parsers.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/service.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/store.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/summary_backend.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/rag/summary_vector.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/recorder.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/release_helper.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/runtime.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/skill_installer.py +0 -0
- {answer42-0.4.78 → answer42-0.4.79}/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.
|
|
3
|
+
Version: 0.4.79
|
|
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.
|
|
3
|
+
version = "0.4.79"
|
|
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"
|
|
@@ -8246,24 +8246,7 @@ def _universal_report_metadata_source_title_found(value: Any) -> bool:
|
|
|
8246
8246
|
return False
|
|
8247
8247
|
|
|
8248
8248
|
|
|
8249
|
-
def _active_window_looks_like_startup_noise(value: Any) -> bool:
|
|
8250
|
-
if not isinstance(value, dict):
|
|
8251
|
-
return False
|
|
8252
|
-
title = str(value.get("title") or "")
|
|
8253
|
-
form_name = str(value.get("form_name") or "")
|
|
8254
|
-
diagnostics = value.get("client_diagnostics") if isinstance(value.get("client_diagnostics"), dict) else {}
|
|
8255
|
-
diagnostic_title = str(diagnostics.get("active_window_title") or diagnostics.get("modal_title") or "")
|
|
8256
|
-
diagnostic_form = str(diagnostics.get("active_form_name") or diagnostics.get("modal_form_name") or "")
|
|
8257
|
-
return (
|
|
8258
|
-
title.startswith("Новое в версии")
|
|
8259
|
-
or diagnostic_title.startswith("Новое в версии")
|
|
8260
|
-
or "Справочник.Новости.Форма.ФормаНовости" in form_name
|
|
8261
|
-
or "Справочник.Новости.Форма.ФормаНовости" in diagnostic_form
|
|
8262
|
-
)
|
|
8263
|
-
|
|
8264
|
-
|
|
8265
8249
|
async def _active_universal_report_window(session_id: str, warnings: list[str], *, timeout: int = 30) -> dict[str, Any]:
|
|
8266
|
-
navigation_link = "e1cib/app/Отчет.УниверсальныйОтчет"
|
|
8267
8250
|
deadline = time.monotonic() + max(timeout, 1)
|
|
8268
8251
|
last: dict[str, Any] = {}
|
|
8269
8252
|
while time.monotonic() < deadline:
|
|
@@ -8275,21 +8258,6 @@ async def _active_universal_report_window(session_id: str, warnings: list[str],
|
|
|
8275
8258
|
form_name = str(active.get("form_name") or "")
|
|
8276
8259
|
if "Универсальный отчет" in title or form_name == "ОбщаяФорма.ФормаОтчета":
|
|
8277
8260
|
return active
|
|
8278
|
-
if _active_window_looks_like_startup_noise(active):
|
|
8279
|
-
await _bridge_call_recorded(session_id, "close_form", {}, timeout=15)
|
|
8280
|
-
warnings.append("Startup/news form was closed before Universal report source selection")
|
|
8281
|
-
try:
|
|
8282
|
-
await _bridge_call_recorded(
|
|
8283
|
-
session_id,
|
|
8284
|
-
"open_navigation_link",
|
|
8285
|
-
{"navigation_link": navigation_link},
|
|
8286
|
-
timeout=20,
|
|
8287
|
-
)
|
|
8288
|
-
warnings.append("Universal report navigation was retried after closing startup/news form")
|
|
8289
|
-
except Exception as exc:
|
|
8290
|
-
warnings.append(f"Universal report navigation retry after startup/news form failed: {exc}")
|
|
8291
|
-
await asyncio.sleep(1)
|
|
8292
|
-
continue
|
|
8293
8261
|
except Exception as exc:
|
|
8294
8262
|
warnings.append(f"Universal report active-window wait probe failed: {exc}")
|
|
8295
8263
|
await asyncio.sleep(1)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{answer42-0.4.78 → answer42-0.4.79}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{answer42-0.4.78 → answer42-0.4.79}/src/mcp_1c/assets/skills/answer42-universal-report/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|