answer42 0.2.4__tar.gz → 0.2.7__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.4 → answer42-0.2.7}/PKG-INFO +1 -1
- {answer42-0.2.4 → answer42-0.2.7}/docs/architecture.md +23 -1
- {answer42-0.2.4 → answer42-0.2.7}/pyproject.toml +1 -1
- {answer42-0.2.4 → answer42-0.2.7}/scripts/build_pages.py +1 -2
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl +476 -17
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +8 -0
- answer42-0.2.7/src/mcp_1c/rag/detect.py +101 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/rag/model.py +11 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/rag/parsers.py +27 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/rag/service.py +167 -8
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/rag/store.py +12 -2
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/runtime.py +1 -1
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/server.py +783 -10
- answer42-0.2.4/src/mcp_1c/rag/detect.py +0 -23
- {answer42-0.2.4 → answer42-0.2.7}/.gitignore +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/LICENSE +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/README.md +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/credentials.example.json +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/docs/agent-installation.md +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/docs/assets/answer42-logo.png +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/docs/assets/platform42-logo.svg +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/docs/installation.md +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/scripts/build_cf.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/scripts/e2e_stable.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/scripts/openclaw_mcp_autoreload.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/scripts/rag_cli.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/Configuration.xml +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/src/client_cf/ConfigDumpInfo.xml +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/client_cf/Configuration.xml +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/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.4 → answer42-0.2.7}/src/mcp_1c/__init__.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/assets/__init__.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/bridge.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/credentials.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/os_support.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/platform.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/protocol.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/rag/__init__.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/recorder.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/release_helper.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/src/mcp_1c/skill_installer.py +0 -0
- {answer42-0.2.4 → answer42-0.2.7}/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.7
|
|
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>
|
|
@@ -87,7 +87,7 @@ class SessionState:
|
|
|
87
87
|
- динамические списки: `dynamic_list_available_fields`, `dynamic_list_apply_settings`, `dynamic_list_set_order`, `dynamic_list_output`, `dynamic_list_open_settings`, `dynamic_list_clear_settings`, `dynamic_list_open_form_settings`;
|
|
88
88
|
- табличные документы: `tabular_documents`, `tabular_document_text`, `tabular_document_save`;
|
|
89
89
|
- доказательная запись: `recording_start`, `recording_capture`, `recording_stop`;
|
|
90
|
-
- RAG: `rag_source_add`, `rag_sources_list`, `rag_snapshot_create`, `rag_snapshots_list`, `rag_index_build`, `rag_lookup_object`, `rag_query`.
|
|
90
|
+
- RAG: `rag_source_add`, `rag_sources_add_from_directory`, `rag_source_roots_list`, `rag_sources_list`, `rag_available_configurations`, `rag_snapshot_create`, `rag_snapshots_list`, `rag_index_build`, `rag_lookup_object`, `rag_query`.
|
|
91
91
|
|
|
92
92
|
### `mcp_1c.bridge`
|
|
93
93
|
|
|
@@ -171,6 +171,24 @@ python3 scripts/rag_cli.py build --snapshot Configuration+Extension1
|
|
|
171
171
|
python3 scripts/rag_cli.py lookup РегистрСведений.Регистр1 --snapshot Configuration+Extension1
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
### Discovery roots
|
|
175
|
+
|
|
176
|
+
MCP tool `rag_sources_add_from_directory(path, watch=true)` scans a directory for
|
|
177
|
+
EDT/Designer XML configuration and extension roots, registers discovered sources,
|
|
178
|
+
and stores the directory in `source_roots`. Later calls to `rag_sources_list`,
|
|
179
|
+
`rag_source_roots_list` or `rag_available_configurations` can sync those roots and
|
|
180
|
+
pick up newly added source trees automatically. Discovery is bounded by
|
|
181
|
+
`max_depth` and skips noisy directories such as `.git`, `.venv`, `build`, `dist`
|
|
182
|
+
and `node_modules`.
|
|
183
|
+
|
|
184
|
+
`rag_available_configurations` returns grouped base/configuration sources,
|
|
185
|
+
extensions, other sources, snapshots, discovery roots and per-source indexed
|
|
186
|
+
object/chunk counts.
|
|
187
|
+
|
|
188
|
+
If a RAG lookup/query runs without a session snapshot, or the selected snapshot
|
|
189
|
+
has no indexed data, the result includes `rag_diagnostic.diagnostics[]` with a
|
|
190
|
+
machine-readable code and remediation message for the agent.
|
|
191
|
+
|
|
174
192
|
## Доказательная запись
|
|
175
193
|
|
|
176
194
|
`recording_start()` включает запись. Каждый записываемый bridge-вызов сохраняет слайд с:
|
|
@@ -191,4 +209,8 @@ python3 scripts/rag_cli.py lookup РегистрСведений.Регистр1
|
|
|
191
209
|
| `ONEC_MCP_REQUEST_TIMEOUT` | Таймаут запроса, сек | `60` |
|
|
192
210
|
| `ONEC_MCP_DATA_DIR` | Рабочая директория | `/tmp/onec-mcp` |
|
|
193
211
|
| `MCP_1C_RAG_DB` | Путь к RAG SQLite | `build/rag/onec-rag.sqlite` |
|
|
212
|
+
| `ONEC_MCP_DISABLE_RAG` | Отключить встроенный RAG (`1/true/yes/on`) | пусто |
|
|
213
|
+
| `ONEC_MCP_RAG_SOURCE_DIRS` | `:`/`;`-separated directories for startup RAG discovery/watch | пусто |
|
|
214
|
+
| `ONEC_MCP_RAG_SOURCE_PREFIX` | Prefix for auto-discovered source names | пусто |
|
|
215
|
+
| `ONEC_MCP_RAG_SOURCE_MAX_DEPTH` | Discovery depth for RAG source dirs | `4` |
|
|
194
216
|
| `DISPLAY` | X11 display | `:99` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "answer42"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.7"
|
|
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"
|
|
@@ -27,8 +27,7 @@ NAV = [
|
|
|
27
27
|
]
|
|
28
28
|
|
|
29
29
|
CSS = """
|
|
30
|
-
:root { color-scheme:
|
|
31
|
-
@media (prefers-color-scheme: light) { :root { --bg:#f7f9ff; --panel:#ffffff; --text:#111827; --muted:#526078; --link:#0369a1; --line:#dbe3f5; --code:#f1f5f9; } }
|
|
30
|
+
:root { color-scheme: dark; --bg:#0b1020; --panel:#111936; --text:#eef3ff; --muted:#aebbe2; --link:#67e8f9; --line:#2b365f; --code:#080d1c; }
|
|
32
31
|
* { box-sizing: border-box; }
|
|
33
32
|
body { margin:0; font:16px/1.62 Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background:radial-gradient(circle at 20% 0%, rgba(103,232,249,.18), transparent 28rem), var(--bg); }
|
|
34
33
|
.wrapper { max-width: 1120px; margin: 0 auto; padding: 28px 20px 56px; }
|