answer42 0.4.86__tar.gz → 0.4.87__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.86 → answer42-0.4.87}/PKG-INFO +1 -1
- {answer42-0.4.86 → answer42-0.4.87}/docs/architecture.md +1 -1
- {answer42-0.4.86 → answer42-0.4.87}/pyproject.toml +1 -1
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/dump.py +2 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/server.py +13 -3
- {answer42-0.4.86 → answer42-0.4.87}/.gitignore +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/LICENSE +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/README.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/credentials.example.json +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/docs/agent-installation.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/docs/assets/answer42-logo.png +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/docs/assets/platform42-logo.svg +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/docs/installation.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/build_cf.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/build_pages.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/e2e_http_smoke.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/e2e_stable.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/openclaw_mcp_autoreload.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/scripts/rag_cli.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/Configuration.xml +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl" +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/src/client_cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/client_cf/Configuration.xml +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/src/mcp_1c/__init__.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/__init__.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/assets/skills/answer42-universal-report/SKILL.md +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/auth.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/bridge.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/credentials.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/os_support.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/platform.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/protocol.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/__init__.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/detect.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/model.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/parsers.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/service.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/store.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/summary_backend.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/rag/summary_vector.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/recorder.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/release_helper.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/runtime.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/src/mcp_1c/skill_installer.py +0 -0
- {answer42-0.4.86 → answer42-0.4.87}/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.87
|
|
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>
|
|
@@ -233,7 +233,7 @@ large remote infobases.
|
|
|
233
233
|
| `ONEC_MCP_WS_HOST` | WebSocket host | `127.0.0.1` |
|
|
234
234
|
| `ONEC_MCP_WS_PORT` | WebSocket port | `8765` |
|
|
235
235
|
| `ONEC_MCP_REQUEST_TIMEOUT` | Таймаут запроса, сек | `60` |
|
|
236
|
-
| `ONEC_MCP_DATA_DIR` | Рабочая директория | `/tmp/answer42` |
|
|
236
|
+
| `ONEC_MCP_DATA_DIR` | Рабочая директория | OS tempdir + `answer42` (`/tmp/answer42` on Linux, `%TEMP%\answer42` on Windows) |
|
|
237
237
|
| `MCP_1C_RAG_DB` | Путь к RAG SQLite | `build/rag/onec-rag.sqlite` |
|
|
238
238
|
| `ONEC_MCP_DISABLE_RAG` | Отключить встроенный RAG (`1/true/yes/on`) | пусто |
|
|
239
239
|
| `ONEC_MCP_RAG_SOURCE_DIRS` | `:`/`;`-separated directories for startup RAG discovery/watch | пусто |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "answer42"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.87"
|
|
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"
|
|
@@ -678,6 +678,16 @@ class SessionState:
|
|
|
678
678
|
_SESSIONS: dict[str, SessionState] = {}
|
|
679
679
|
|
|
680
680
|
|
|
681
|
+
def _runtime_output_file(prefix: str, session_id: str, suffix: str) -> Path:
|
|
682
|
+
"""Return a writable cross-platform runtime output path for 1C file saves."""
|
|
683
|
+
safe_prefix = re.sub(r"[^A-Za-z0-9_.-]+", "-", str(prefix or "answer42")).strip(".-") or "answer42"
|
|
684
|
+
safe_session = re.sub(r"[^A-Za-z0-9_.-]+", "-", str(session_id or DEFAULT_SESSION)).strip(".-") or DEFAULT_SESSION
|
|
685
|
+
safe_suffix = suffix if suffix.startswith(".") else f".{suffix}"
|
|
686
|
+
output_dir = os_support.default_data_dir() / "exports"
|
|
687
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
688
|
+
return output_dir / f"{safe_prefix}_{safe_session}_{uuid.uuid4().hex}{safe_suffix}"
|
|
689
|
+
|
|
690
|
+
|
|
681
691
|
def _pid_is_running(pid: int) -> bool:
|
|
682
692
|
if pid <= 0:
|
|
683
693
|
return False
|
|
@@ -8428,7 +8438,7 @@ async def _metadata_rows_from_universal_report(
|
|
|
8428
8438
|
read_warnings: list[str] = []
|
|
8429
8439
|
last_saved_path = ""
|
|
8430
8440
|
save_diagnostics: Any = {}
|
|
8431
|
-
mxl_path =
|
|
8441
|
+
mxl_path = _runtime_output_file("metadata_objects", session_id, ".mxl")
|
|
8432
8442
|
try:
|
|
8433
8443
|
selected_result = await _tabular_document_save_filter_by_filter(
|
|
8434
8444
|
session_id,
|
|
@@ -8471,7 +8481,7 @@ async def _metadata_rows_from_universal_report(
|
|
|
8471
8481
|
)
|
|
8472
8482
|
return rows[:max_rows], warnings
|
|
8473
8483
|
|
|
8474
|
-
report_path =
|
|
8484
|
+
report_path = _runtime_output_file("metadata_objects", session_id, ".xlsx")
|
|
8475
8485
|
try:
|
|
8476
8486
|
selected_result = await _tabular_document_save_filter_by_filter(
|
|
8477
8487
|
session_id,
|
|
@@ -9156,7 +9166,7 @@ async def _save_output_tabular_document_to_mxl(
|
|
|
9156
9166
|
if not doc_name:
|
|
9157
9167
|
warnings.append("List output did not return a tabular document name for MXL save")
|
|
9158
9168
|
return []
|
|
9159
|
-
mxl_path =
|
|
9169
|
+
mxl_path = _runtime_output_file(path_prefix, session_id, ".mxl")
|
|
9160
9170
|
try:
|
|
9161
9171
|
selected_result = await _tabular_document_save_filter_by_filter(
|
|
9162
9172
|
session_id,
|
|
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.86 → answer42-0.4.87}/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.86 → answer42-0.4.87}/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
|