dsh-ego-webqa 0.0.0-stage → 0.1.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Roy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,160 @@
1
- # Temporary Holding Version
1
+ # dsh-ego-webqa
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ DSH bundle for [ego-webqa](https://github.com/ROY32172310/qa). It exposes the
4
+ existing deterministic web-delivery audit as a native DSH MCP tool without
5
+ duplicating any browser checks in TypeScript.
6
+
7
+ After installation, the model sees:
8
+
9
+ ```text
10
+ mcp__ego_webqa__audit_web_page
11
+ ```
12
+
13
+ The tool checks a page across the mobile matrix, returns the existing
14
+ `agent_summary.json` contract, and retains screenshots plus `report.json` as
15
+ evidence.
16
+
17
+ ## Why a bundle instead of another tool implementation
18
+
19
+ DSH already ships `@deepseek-ai/dsh-mcp-client`. This package contributes one
20
+ declarative Cordis patch row that starts:
21
+
22
+ ```text
23
+ uvx ego-webqa@0.4.2 mcp
24
+ ```
25
+
26
+ DSH supervises that process, discovers `audit_web_page`, applies normal tool
27
+ approval and cancellation, and reconnects it if the process exits. The Python
28
+ package remains the single source of truth for detectors, thresholds, report
29
+ schemas, and release compatibility.
30
+
31
+ ## Requirements
32
+
33
+ - DSH `>=0.1.5-rc.1 <0.3.0`
34
+ - `uv` / `uvx` available on `PATH`
35
+ - A Playwright Chromium browser available to the `uvx` environment
36
+
37
+ Install Chromium once for the pinned ego-webqa version:
38
+
39
+ ```bash
40
+ uvx --from ego-webqa@0.4.2 playwright install chromium
41
+ ```
42
+
43
+ On Linux CI hosts without a desktop browser, use:
44
+
45
+ ```bash
46
+ uvx --from ego-webqa@0.4.2 playwright install --with-deps chromium
47
+ ```
48
+
49
+ ## Install
50
+
51
+ ```bash
52
+ dsh plugin --profile default add dsh-ego-webqa
53
+ ```
54
+
55
+ DSH 0.2.1+ can also discover it from the published format-1 market index:
56
+
57
+ ```text
58
+ https://roy32172310.github.io/dsh-ego-webqa/index.json
59
+ ```
60
+
61
+ The index is validated with `@deepseek-ai/dsh-plugin-market-index` in CI.
62
+
63
+ Inspect the resulting layer without starting DSH:
64
+
65
+ ```bash
66
+ dsh --profile default --dump-config
67
+ ```
68
+
69
+ Start DSH normally or explicitly select the profile:
70
+
71
+ ```bash
72
+ dsh --profile default
73
+ ```
74
+
75
+ The first MCP launch may take longer while `uvx` creates its isolated Python
76
+ environment. Later launches reuse that cache.
77
+
78
+ ## Use
79
+
80
+ Ask DSH to audit the deployed URL before delivery, for example:
81
+
82
+ ```text
83
+ Audit https://preview.example before you call the page complete.
84
+ ```
85
+
86
+ The MCP tool accepts the URL and the existing bounded audit options. Its
87
+ structured result includes:
88
+
89
+ - delivery status (`pass`, `warn`, or `fail`);
90
+ - aggregated blocking and warning findings;
91
+ - suggested fixes and reproduction commands;
92
+ - paths to `agent_summary.json`, `report.json`, and screenshots.
93
+
94
+ A blocking page defect is a successful tool execution with a `fail` report.
95
+ An execution error means the browser, CLI, or MCP process could not complete,
96
+ and must not be presented as a page-quality failure.
97
+
98
+ ## Operational boundaries
99
+
100
+ - One tool call represents one bounded audit invocation.
101
+ - The MCP server exposes one tool. There is no second set of DSH-only checks.
102
+ - `safe` smoke mode remains the default in ego-webqa; side effects require the
103
+ existing explicit live-mode configuration in the Python tool.
104
+ - The MCP client scrubs credential-shaped environment variables before starting
105
+ the child process.
106
+ - This bundle does not install Python, `uvx`, or Chromium implicitly. Missing
107
+ prerequisites fail visibly instead of silently disabling QA.
108
+
109
+ ## Versioning
110
+
111
+ The bundle pins the tested ego-webqa version in `cordis.patch.yml`. A DSH
112
+ adapter release is required only when its compatibility window or MCP launch
113
+ contract changes, not for every detector release in the Python package.
114
+
115
+ To use a locally installed CLI instead of `uvx`, override the generated row in
116
+ the profile's `cordis.patch.yml`:
117
+
118
+ ```yaml
119
+ - id: ego-webqa
120
+ name: '@deepseek-ai/dsh-mcp-client'
121
+ config:
122
+ serverName: ego_webqa
123
+ transport: stdio
124
+ command: ego-webqa
125
+ args: [mcp]
126
+ cwd: !!js process.cwd()
127
+ toolCallTimeoutMs: 90000
128
+ failOnStartupError: true
129
+ reconnect:
130
+ enabled: true
131
+ initialDelayMs: 500
132
+ maxDelayMs: 30000
133
+ maxAttempts: 10
134
+ ```
135
+
136
+ ## Troubleshooting
137
+
138
+ If the tool is absent, inspect the DSH log for the `ego-webqa` MCP row. Common
139
+ causes are:
140
+
141
+ - `uvx` is not on the DSH process `PATH`;
142
+ - the pinned ego-webqa package version cannot be downloaded;
143
+ - Chromium was installed for a different `uv` cache or user account;
144
+ - the configured DSH version is outside `engines.dsh`.
145
+
146
+ Run the underlying server directly to isolate DSH from the Python package:
147
+
148
+ ```bash
149
+ uvx ego-webqa@0.4.2 mcp
150
+ ```
151
+
152
+ For a normal CLI audit and complete evidence, run:
153
+
154
+ ```bash
155
+ uvx ego-webqa@0.4.2 https://preview.example --out .qa/dsh
156
+ ```
157
+
158
+ ## License
159
+
160
+ MIT
@@ -0,0 +1,23 @@
1
+ # DSH bundle patch for ego-webqa.
2
+ #
3
+ # DSH already owns a native MCP client. This bundle intentionally adds only the
4
+ # MCP connection row; the Python ego-webqa package remains the sole
5
+ # implementation of browser checks and report generation.
6
+ - insert:
7
+ - id: ego-webqa
8
+ name: '@deepseek-ai/dsh-mcp-client'
9
+ config:
10
+ serverName: ego_webqa
11
+ transport: stdio
12
+ command: uvx
13
+ args:
14
+ - ego-webqa@0.4.2
15
+ - mcp
16
+ cwd: !!js process.cwd()
17
+ toolCallTimeoutMs: 90000
18
+ failOnStartupError: true
19
+ reconnect:
20
+ enabled: true
21
+ initialDelayMs: 500
22
+ maxDelayMs: 30000
23
+ maxAttempts: 10
package/icon.svg ADDED
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="ego-webqa">
2
+ <rect width="128" height="128" rx="28" fill="#0f172a"/>
3
+ <rect x="26" y="22" width="76" height="84" rx="12" fill="none" stroke="#7dd3fc" stroke-width="8"/>
4
+ <path d="M48 52l12 12-12 12M67 77h15" fill="none" stroke="#f8fafc" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <circle cx="95" cy="94" r="18" fill="#22c55e"/>
6
+ <path d="M86 94l6 6 12-14" fill="none" stroke="#052e16" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
7
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,54 @@
1
1
  {
2
2
  "name": "dsh-ego-webqa",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "Install ego-webqa's deterministic web-delivery audit as a DSH MCP tool.",
7
+ "keywords": [
8
+ "dsh",
9
+ "dsh-plugin",
10
+ "mcp",
11
+ "playwright",
12
+ "web-qa",
13
+ "ai-generated"
14
+ ],
15
+ "homepage": "https://github.com/ROY32172310/dsh-ego-webqa",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/ROY32172310/dsh-ego-webqa.git"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/ROY32172310/dsh-ego-webqa/issues"
22
+ },
23
+ "author": "Roy",
24
+ "license": "MIT",
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "provenance": true
28
+ },
29
+ "files": [
30
+ "cordis.patch.yml",
31
+ "icon.svg",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "engines": {
36
+ "dsh": ">=0.1.5-rc.1 <0.3.0"
37
+ },
38
+ "dsh": {
39
+ "bundle": {
40
+ "patch": "./cordis.patch.yml"
41
+ }
42
+ },
43
+ "peerDependencies": {
44
+ "@deepseek-ai/dsh-mcp-client": ">=0.1.5-rc.1 <0.3.0"
45
+ },
46
+ "scripts": {
47
+ "check": "node scripts/check-package.mjs",
48
+ "market:build": "node scripts/build-market-index.mjs",
49
+ "test": "node --test"
50
+ },
51
+ "devDependencies": {
52
+ "@deepseek-ai/dsh-plugin-market-index": "0.2.1-alpha.4"
53
+ }
54
+ }