answer42 0.2.7__tar.gz → 0.2.8__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.2.7 → answer42-0.2.8}/PKG-INFO +1 -1
- {answer42-0.2.7 → answer42-0.2.8}/pyproject.toml +1 -1
- answer42-0.2.8/src/mcp_1c/__init__.py +22 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/server.py +9 -6
- answer42-0.2.7/src/mcp_1c/__init__.py +0 -4
- {answer42-0.2.7 → answer42-0.2.8}/.gitignore +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/LICENSE +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/README.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/credentials.example.json +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/docs/agent-installation.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/docs/architecture.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/docs/assets/answer42-logo.png +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/docs/assets/platform42-logo.svg +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/docs/installation.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/scripts/build_cf.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/scripts/build_pages.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/scripts/e2e_stable.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/scripts/openclaw_mcp_autoreload.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/scripts/rag_cli.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/Configuration.xml +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl" +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/src/client_cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/client_cf/Configuration.xml +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/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.2.7 → answer42-0.2.8}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/__init__.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/bridge.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/credentials.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/os_support.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/platform.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/protocol.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/__init__.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/detect.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/model.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/parsers.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/service.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/store.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/recorder.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/release_helper.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/runtime.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/skill_installer.py +0 -0
- {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/window_control.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: answer42
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
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.2.
|
|
3
|
+
version = "0.2.8"
|
|
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"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""MCP server for 1C:Enterprise test manager automation."""
|
|
2
|
+
|
|
3
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import tomllib
|
|
6
|
+
|
|
7
|
+
__all__ = ["__version__"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _version_from_pyproject() -> str:
|
|
11
|
+
pyproject = Path(__file__).resolve().parents[2] / "pyproject.toml"
|
|
12
|
+
try:
|
|
13
|
+
data = tomllib.loads(pyproject.read_text(encoding="utf-8"))
|
|
14
|
+
return str(data.get("project", {}).get("version") or "0+unknown")
|
|
15
|
+
except Exception:
|
|
16
|
+
return "0+unknown"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
__version__ = version("answer42")
|
|
21
|
+
except PackageNotFoundError:
|
|
22
|
+
__version__ = _version_from_pyproject()
|
|
@@ -25,6 +25,7 @@ from typing import Annotated, Any
|
|
|
25
25
|
|
|
26
26
|
from mcp.server.fastmcp import FastMCP
|
|
27
27
|
|
|
28
|
+
from . import __version__
|
|
28
29
|
from . import os_support
|
|
29
30
|
from . import platform as _platform
|
|
30
31
|
from . import runtime
|
|
@@ -4063,15 +4064,17 @@ async def _run() -> None:
|
|
|
4063
4064
|
_SESSIONS.clear()
|
|
4064
4065
|
|
|
4065
4066
|
|
|
4066
|
-
def main() -> None:
|
|
4067
|
+
def main(argv: list[str] | None = None) -> None:
|
|
4067
4068
|
global _RAG_ENABLED
|
|
4068
4069
|
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4070
|
+
argv = list(sys.argv[1:] if argv is None else argv)
|
|
4071
|
+
if argv and argv[0] in {"install-skills", "skills-install"}:
|
|
4072
|
+
raise SystemExit(skill_installer.main(argv[1:]))
|
|
4073
|
+
if argv and argv[0] in {"release", "release-pypi"}:
|
|
4074
|
+
raise SystemExit(release_helper.main(argv[1:]))
|
|
4073
4075
|
|
|
4074
4076
|
parser = argparse.ArgumentParser(description="MCP server for 1C:Enterprise test manager")
|
|
4077
|
+
parser.add_argument("--version", action="version", version=f"answer42 {__version__}")
|
|
4075
4078
|
parser.add_argument("--log-level", default=os.getenv("ONEC_MCP_LOG_LEVEL", "INFO"))
|
|
4076
4079
|
parser.add_argument(
|
|
4077
4080
|
"--disable-rag",
|
|
@@ -4114,7 +4117,7 @@ def main() -> None:
|
|
|
4114
4117
|
default=float(os.getenv("ONEC_MCP_DEV_RESTART_TIMEOUT", "30")),
|
|
4115
4118
|
help="seconds of no file changes before the OpenClaw MCP autoreload watchdog triggers reload",
|
|
4116
4119
|
)
|
|
4117
|
-
args = parser.parse_args()
|
|
4120
|
+
args = parser.parse_args(argv)
|
|
4118
4121
|
|
|
4119
4122
|
_RAG_ENABLED = not args.disable_rag
|
|
4120
4123
|
logging.basicConfig(level=getattr(logging, args.log_level.upper(), logging.INFO))
|
|
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
|
|
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
|
|
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
|