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.
Files changed (59) hide show
  1. {answer42-0.2.7 → answer42-0.2.8}/PKG-INFO +1 -1
  2. {answer42-0.2.7 → answer42-0.2.8}/pyproject.toml +1 -1
  3. answer42-0.2.8/src/mcp_1c/__init__.py +22 -0
  4. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/server.py +9 -6
  5. answer42-0.2.7/src/mcp_1c/__init__.py +0 -4
  6. {answer42-0.2.7 → answer42-0.2.8}/.gitignore +0 -0
  7. {answer42-0.2.7 → answer42-0.2.8}/LICENSE +0 -0
  8. {answer42-0.2.7 → answer42-0.2.8}/README.md +0 -0
  9. {answer42-0.2.7 → answer42-0.2.8}/credentials.example.json +0 -0
  10. {answer42-0.2.7 → answer42-0.2.8}/docs/agent-installation.md +0 -0
  11. {answer42-0.2.7 → answer42-0.2.8}/docs/architecture.md +0 -0
  12. {answer42-0.2.7 → answer42-0.2.8}/docs/assets/answer42-logo.png +0 -0
  13. {answer42-0.2.7 → answer42-0.2.8}/docs/assets/platform42-logo.svg +0 -0
  14. {answer42-0.2.7 → answer42-0.2.8}/docs/installation.md +0 -0
  15. {answer42-0.2.7 → answer42-0.2.8}/scripts/build_cf.py +0 -0
  16. {answer42-0.2.7 → answer42-0.2.8}/scripts/build_pages.py +0 -0
  17. {answer42-0.2.7 → answer42-0.2.8}/scripts/e2e_stable.py +0 -0
  18. {answer42-0.2.7 → answer42-0.2.8}/scripts/openclaw_mcp_autoreload.py +0 -0
  19. {answer42-0.2.7 → answer42-0.2.8}/scripts/rag_cli.py +0 -0
  20. {answer42-0.2.7 → answer42-0.2.8}/src/cf/ConfigDumpInfo.xml +0 -0
  21. {answer42-0.2.7 → answer42-0.2.8}/src/cf/Configuration.xml +0 -0
  22. {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
  23. {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
  24. {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
  25. {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
  26. {answer42-0.2.7 → answer42-0.2.8}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
  27. {answer42-0.2.7 → answer42-0.2.8}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
  28. {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
  29. {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
  30. {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
  31. {answer42-0.2.7 → answer42-0.2.8}/src/client_cf/ConfigDumpInfo.xml +0 -0
  32. {answer42-0.2.7 → answer42-0.2.8}/src/client_cf/Configuration.xml +0 -0
  33. {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
  34. {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
  35. {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
  36. {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
  37. {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
  38. {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
  39. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
  40. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
  41. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/__init__.py +0 -0
  42. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
  43. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
  44. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/bridge.py +0 -0
  45. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/credentials.py +0 -0
  46. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/os_support.py +0 -0
  47. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/platform.py +0 -0
  48. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/protocol.py +0 -0
  49. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/__init__.py +0 -0
  50. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/detect.py +0 -0
  51. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/model.py +0 -0
  52. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/parsers.py +0 -0
  53. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/service.py +0 -0
  54. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/rag/store.py +0 -0
  55. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/recorder.py +0 -0
  56. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/release_helper.py +0 -0
  57. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/runtime.py +0 -0
  58. {answer42-0.2.7 → answer42-0.2.8}/src/mcp_1c/skill_installer.py +0 -0
  59. {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.7
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.7"
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
- if len(sys.argv) > 1 and sys.argv[1] in {"install-skills", "skills-install"}:
4070
- raise SystemExit(skill_installer.main(sys.argv[2:]))
4071
- if len(sys.argv) > 1 and sys.argv[1] in {"release", "release-pypi"}:
4072
- raise SystemExit(release_helper.main(sys.argv[2:]))
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))
@@ -1,4 +0,0 @@
1
- """MCP server for 1C:Enterprise test manager automation."""
2
-
3
- __all__ = ["__version__"]
4
- __version__ = "0.1.0"
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