appium-mcp 1.82.2 → 1.84.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/CHANGELOG.md +12 -0
- package/README.md +1 -0
- package/dist/create-server.d.ts.map +1 -1
- package/dist/create-server.js +4 -0
- package/dist/create-server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +7 -4
- package/dist/server.js.map +1 -1
- package/dist/tests/create-server.test.js +8 -0
- package/dist/tests/create-server.test.js.map +1 -1
- package/dist/tests/tools/evidence.test.d.ts +2 -0
- package/dist/tests/tools/evidence.test.d.ts.map +1 -0
- package/dist/tests/tools/evidence.test.js +158 -0
- package/dist/tests/tools/evidence.test.js.map +1 -0
- package/dist/tests/utils/paths.test.js +5 -6
- package/dist/tests/utils/paths.test.js.map +1 -1
- package/dist/tools/evidence.d.ts +82 -0
- package/dist/tools/evidence.d.ts.map +1 -0
- package/dist/tools/evidence.js +124 -0
- package/dist/tools/evidence.js.map +1 -0
- package/dist/tools/gestures/gesture.d.ts.map +1 -1
- package/dist/tools/gestures/gesture.js +47 -25
- package/dist/tools/gestures/gesture.js.map +1 -1
- package/dist/tools/interactions/find.d.ts.map +1 -1
- package/dist/tools/interactions/find.js +27 -4
- package/dist/tools/interactions/find.js.map +1 -1
- package/package.json +8 -19
- package/server.json +2 -2
- package/src/create-server.ts +4 -0
- package/src/server.ts +9 -4
- package/src/tools/evidence.ts +198 -0
- package/src/tools/gestures/gesture.ts +63 -26
- package/src/tools/interactions/find.ts +40 -6
- package/dist/scripts/eval-documentation-rag.d.ts +0 -50
- package/dist/scripts/eval-documentation-rag.d.ts.map +0 -1
- package/dist/scripts/eval-documentation-rag.js +0 -287
- package/dist/scripts/eval-documentation-rag.js.map +0 -1
- package/dist/scripts/generate-embeddings-cache.d.ts +0 -13
- package/dist/scripts/generate-embeddings-cache.d.ts.map +0 -1
- package/dist/scripts/generate-embeddings-cache.js +0 -24
- package/dist/scripts/generate-embeddings-cache.js.map +0 -1
- package/dist/scripts/rag-eval-dataset.json +0 -516
- package/dist/scripts/simple-index-documentation.d.ts +0 -21
- package/dist/scripts/simple-index-documentation.d.ts.map +0 -1
- package/dist/scripts/simple-index-documentation.js +0 -77
- package/dist/scripts/simple-index-documentation.js.map +0 -1
- package/dist/scripts/simple-query-documentation.d.ts +0 -13
- package/dist/scripts/simple-query-documentation.d.ts.map +0 -1
- package/dist/scripts/simple-query-documentation.js +0 -52
- package/dist/scripts/simple-query-documentation.js.map +0 -1
- package/dist/tests/tools/documentation/appium-skills.test.d.ts +0 -2
- package/dist/tests/tools/documentation/appium-skills.test.d.ts.map +0 -1
- package/dist/tests/tools/documentation/appium-skills.test.js +0 -106
- package/dist/tests/tools/documentation/appium-skills.test.js.map +0 -1
- package/dist/tests/tools/documentation/plugin.test.d.ts +0 -2
- package/dist/tests/tools/documentation/plugin.test.d.ts.map +0 -1
- package/dist/tests/tools/documentation/plugin.test.js +0 -34
- package/dist/tests/tools/documentation/plugin.test.js.map +0 -1
- package/dist/tests/tools/documentation/simple-pdf-indexer.test.d.ts +0 -2
- package/dist/tests/tools/documentation/simple-pdf-indexer.test.d.ts.map +0 -1
- package/dist/tests/tools/documentation/simple-pdf-indexer.test.js +0 -46
- package/dist/tests/tools/documentation/simple-pdf-indexer.test.js.map +0 -1
- package/dist/tools/documentation/answer-appium.d.ts +0 -8
- package/dist/tools/documentation/answer-appium.d.ts.map +0 -1
- package/dist/tools/documentation/answer-appium.js +0 -38
- package/dist/tools/documentation/answer-appium.js.map +0 -1
- package/dist/tools/documentation/appium-skills.d.ts +0 -5
- package/dist/tools/documentation/appium-skills.d.ts.map +0 -1
- package/dist/tools/documentation/appium-skills.js +0 -168
- package/dist/tools/documentation/appium-skills.js.map +0 -1
- package/dist/tools/documentation/index.d.ts +0 -29
- package/dist/tools/documentation/index.d.ts.map +0 -1
- package/dist/tools/documentation/index.js +0 -66
- package/dist/tools/documentation/index.js.map +0 -1
- package/dist/tools/documentation/markdown-header-splitter.d.ts +0 -32
- package/dist/tools/documentation/markdown-header-splitter.d.ts.map +0 -1
- package/dist/tools/documentation/markdown-header-splitter.js +0 -180
- package/dist/tools/documentation/markdown-header-splitter.js.map +0 -1
- package/dist/tools/documentation/plugin.d.ts +0 -14
- package/dist/tools/documentation/plugin.d.ts.map +0 -1
- package/dist/tools/documentation/plugin.js +0 -19
- package/dist/tools/documentation/plugin.js.map +0 -1
- package/dist/tools/documentation/reasoning-rag.d.ts +0 -89
- package/dist/tools/documentation/reasoning-rag.d.ts.map +0 -1
- package/dist/tools/documentation/reasoning-rag.js +0 -282
- package/dist/tools/documentation/reasoning-rag.js.map +0 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.d.ts +0 -40
- package/dist/tools/documentation/sentence-transformers-embeddings.d.ts.map +0 -1
- package/dist/tools/documentation/sentence-transformers-embeddings.js +0 -119
- package/dist/tools/documentation/sentence-transformers-embeddings.js.map +0 -1
- package/dist/tools/documentation/simple-pdf-indexer.d.ts +0 -47
- package/dist/tools/documentation/simple-pdf-indexer.d.ts.map +0 -1
- package/dist/tools/documentation/simple-pdf-indexer.js +0 -572
- package/dist/tools/documentation/simple-pdf-indexer.js.map +0 -1
- package/dist/tools/documentation/uploads/documents.json +0 -1
- package/dist/tools/documentation/uploads/embeddings-Xenova-bge-small-en-v1.5.json +0 -1
- package/scripts/setup-submodules-sparse.sh +0 -53
- package/scripts/update-submodules.sh +0 -14
- package/scripts/zip-assets.mjs +0 -55
- package/src/resources/submodules.zip +0 -0
- package/src/scripts/eval-documentation-rag.ts +0 -433
- package/src/scripts/generate-embeddings-cache.ts +0 -24
- package/src/scripts/rag-eval-dataset.json +0 -516
- package/src/scripts/simple-index-documentation.ts +0 -93
- package/src/scripts/simple-query-documentation.ts +0 -61
- package/src/tools/documentation/answer-appium.ts +0 -47
- package/src/tools/documentation/appium-skills.ts +0 -244
- package/src/tools/documentation/index.ts +0 -99
- package/src/tools/documentation/markdown-header-splitter.ts +0 -209
- package/src/tools/documentation/plugin.ts +0 -21
- package/src/tools/documentation/reasoning-rag.ts +0 -438
- package/src/tools/documentation/sentence-transformers-embeddings.ts +0 -152
- package/src/tools/documentation/simple-pdf-indexer.ts +0 -755
- package/src/tools/documentation/uploads/documents.json +0 -1
|
@@ -1,516 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 1,
|
|
3
|
-
"description": "Answer-grounded RAG eval dataset for the Appium documentation tool. Each query has (a) expectedSources: file paths kept for diagnostic file-level recall, and (b) answerSpans: short verbatim phrases lifted from the docs; if ANY one appears in the retrieved top-K chunk text, the query counts as the answer reaching the LLM context. Whitespace is normalized (runs collapse to single space; case-insensitive) before matching. Spans are deliberately short (30-140 chars) so any reasonable chunk containing the answer will include at least one.",
|
|
4
|
-
"matchMode": "answerSpan",
|
|
5
|
-
"spanMatch": {
|
|
6
|
-
"normalize": "lowercase+collapse-whitespace",
|
|
7
|
-
"anyOf": true
|
|
8
|
-
},
|
|
9
|
-
"queries": [
|
|
10
|
-
{
|
|
11
|
-
"id": "q01",
|
|
12
|
-
"query": "How do I install Appium?",
|
|
13
|
-
"expectedSources": ["en/quickstart/install.md"],
|
|
14
|
-
"answerSpans": [
|
|
15
|
-
"Appium can be installed globally using `npm`",
|
|
16
|
-
"npm install -g appium"
|
|
17
|
-
],
|
|
18
|
-
"difficulty": "easy",
|
|
19
|
-
"category": "setup"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"id": "q02",
|
|
23
|
-
"query": "What capabilities does the XCUITest driver support?",
|
|
24
|
-
"expectedSources": [
|
|
25
|
-
"appium-xcuitest-driver/docs/reference/capabilities.md"
|
|
26
|
-
],
|
|
27
|
-
"answerSpans": [
|
|
28
|
-
"platformName",
|
|
29
|
-
"appium:automationName",
|
|
30
|
-
"appium:deviceName",
|
|
31
|
-
"appium:platformVersion"
|
|
32
|
-
],
|
|
33
|
-
"difficulty": "easy",
|
|
34
|
-
"category": "capabilities"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "q03",
|
|
38
|
-
"query": "how to run iOS tests in parallel",
|
|
39
|
-
"expectedSources": [
|
|
40
|
-
"appium-xcuitest-driver/docs/guides/parallel-tests.md"
|
|
41
|
-
],
|
|
42
|
-
"answerSpans": [
|
|
43
|
-
"It is possible to execute tests in parallel using XCUITest driver",
|
|
44
|
-
"wdaLocalPort` must be a unique port number for each parallel session",
|
|
45
|
-
"must be a unique device UDID for each parallel session"
|
|
46
|
-
],
|
|
47
|
-
"difficulty": "easy",
|
|
48
|
-
"category": "ios"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"id": "q04",
|
|
52
|
-
"query": "push and pull files from an iOS device",
|
|
53
|
-
"expectedSources": [
|
|
54
|
-
"appium-xcuitest-driver/docs/guides/file-transfer.md"
|
|
55
|
-
],
|
|
56
|
-
"answerSpans": [
|
|
57
|
-
"mobile: pullFile",
|
|
58
|
-
"mobile: pushFile",
|
|
59
|
-
"mobile: pullFolder"
|
|
60
|
-
],
|
|
61
|
-
"difficulty": "easy",
|
|
62
|
-
"category": "ios"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": "q05",
|
|
66
|
-
"query": "read and write the clipboard on iOS",
|
|
67
|
-
"expectedSources": ["appium-xcuitest-driver/docs/guides/clipboard.md"],
|
|
68
|
-
"answerSpans": [
|
|
69
|
-
"WebDriverAgentRunner application must be in foreground",
|
|
70
|
-
"mobile: getPasteboard",
|
|
71
|
-
"mobile: setPasteboard",
|
|
72
|
-
"driver.get_clipboard"
|
|
73
|
-
],
|
|
74
|
-
"difficulty": "easy",
|
|
75
|
-
"category": "ios"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"id": "q06",
|
|
79
|
-
"query": "what locator strategies are supported by XCUITest",
|
|
80
|
-
"expectedSources": [
|
|
81
|
-
"appium-xcuitest-driver/docs/reference/locator-strategies.md"
|
|
82
|
-
],
|
|
83
|
-
"answerSpans": [
|
|
84
|
-
"-ios predicate string",
|
|
85
|
-
"-ios class chain",
|
|
86
|
-
"accessibility id",
|
|
87
|
-
"className"
|
|
88
|
-
],
|
|
89
|
-
"difficulty": "easy",
|
|
90
|
-
"category": "locators"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"id": "q07",
|
|
94
|
-
"query": "how do I use iOS predicate strings to find elements",
|
|
95
|
-
"expectedSources": [
|
|
96
|
-
"appium-xcuitest-driver/docs/reference/ios-predicate.md"
|
|
97
|
-
],
|
|
98
|
-
"answerSpans": [
|
|
99
|
-
"iOSNsPredicateString",
|
|
100
|
-
"BEGINSWITH",
|
|
101
|
-
"CONTAINS",
|
|
102
|
-
"predicate string example would select all visible elements"
|
|
103
|
-
],
|
|
104
|
-
"difficulty": "easy",
|
|
105
|
-
"category": "locators"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"id": "q08",
|
|
109
|
-
"query": "uiautomator2 driver capabilities",
|
|
110
|
-
"expectedSources": [
|
|
111
|
-
"appium-uiautomator2-driver/docs/capability-sets.md",
|
|
112
|
-
"appium-uiautomator2-driver/docs/README.md"
|
|
113
|
-
],
|
|
114
|
-
"answerSpans": [
|
|
115
|
-
"appium:automationName\": \"uiautomator2",
|
|
116
|
-
"platformName\": \"Android",
|
|
117
|
-
"appium:appPackage",
|
|
118
|
-
"appium:appActivity"
|
|
119
|
-
],
|
|
120
|
-
"difficulty": "easy",
|
|
121
|
-
"category": "android"
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"id": "q09",
|
|
125
|
-
"query": "Appium server command line arguments",
|
|
126
|
-
"expectedSources": [
|
|
127
|
-
"en/reference/cli/server.md",
|
|
128
|
-
"en/reference/cli/index.md"
|
|
129
|
-
],
|
|
130
|
-
"answerSpans": [
|
|
131
|
-
"--address",
|
|
132
|
-
"--allow-cors",
|
|
133
|
-
"--allow-insecure",
|
|
134
|
-
"--base-path"
|
|
135
|
-
],
|
|
136
|
-
"difficulty": "easy",
|
|
137
|
-
"category": "cli"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"id": "q10",
|
|
141
|
-
"query": "install a root certificate on an iOS device",
|
|
142
|
-
"expectedSources": [
|
|
143
|
-
"appium-xcuitest-driver/docs/guides/install-certificate.md"
|
|
144
|
-
],
|
|
145
|
-
"answerSpans": ["mobile: installCertificate", "over-the-air"],
|
|
146
|
-
"difficulty": "easy",
|
|
147
|
-
"category": "ios"
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
"id": "q11",
|
|
151
|
-
"query": "I'm new to Appium, where should I start?",
|
|
152
|
-
"expectedSources": [
|
|
153
|
-
"en/quickstart/index.md",
|
|
154
|
-
"en/intro/index.md",
|
|
155
|
-
"en/quickstart/requirements.md"
|
|
156
|
-
],
|
|
157
|
-
"answerSpans": [
|
|
158
|
-
"Quickstart Intro",
|
|
159
|
-
"install Appium",
|
|
160
|
-
"install a driver",
|
|
161
|
-
"first test"
|
|
162
|
-
],
|
|
163
|
-
"difficulty": "medium",
|
|
164
|
-
"category": "intro"
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
"id": "q12",
|
|
168
|
-
"query": "which driver should I use to automate android",
|
|
169
|
-
"expectedSources": [
|
|
170
|
-
"en/quickstart/uiauto2-driver.md",
|
|
171
|
-
"en/intro/drivers.md",
|
|
172
|
-
"en/ecosystem/drivers.md"
|
|
173
|
-
],
|
|
174
|
-
"answerSpans": ["UiAutomator2", "appium driver install uiautomator2"],
|
|
175
|
-
"difficulty": "medium",
|
|
176
|
-
"category": "android"
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
"id": "q13",
|
|
180
|
-
"query": "how do I switch to a webview in an iOS hybrid app",
|
|
181
|
-
"expectedSources": [
|
|
182
|
-
"appium-xcuitest-driver/docs/guides/hybrid.md",
|
|
183
|
-
"en/guides/context.md"
|
|
184
|
-
],
|
|
185
|
-
"answerSpans": [
|
|
186
|
-
"WEBVIEW_",
|
|
187
|
-
"NATIVE_APP",
|
|
188
|
-
"Retrieve the currently available contexts",
|
|
189
|
-
"Set the id of the context"
|
|
190
|
-
],
|
|
191
|
-
"difficulty": "medium",
|
|
192
|
-
"category": "hybrid"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"id": "q14",
|
|
196
|
-
"query": "how to set up code signing for real iPhone testing",
|
|
197
|
-
"expectedSources": [
|
|
198
|
-
"appium-xcuitest-driver/docs/preparation/real-device-config.md",
|
|
199
|
-
"appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md",
|
|
200
|
-
"appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md"
|
|
201
|
-
],
|
|
202
|
-
"answerSpans": [
|
|
203
|
-
"WDA application must have a valid provisioning profile",
|
|
204
|
-
"Apple ID",
|
|
205
|
-
"WebDriverAgent.xcodeproj"
|
|
206
|
-
],
|
|
207
|
-
"difficulty": "medium",
|
|
208
|
-
"category": "ios-real-device"
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"id": "q15",
|
|
212
|
-
"query": "swipe gesture on android",
|
|
213
|
-
"expectedSources": [
|
|
214
|
-
"appium-uiautomator2-driver/docs/android-mobile-gestures.md"
|
|
215
|
-
],
|
|
216
|
-
"answerSpans": ["mobile: swipeGesture", "direction", "percent"],
|
|
217
|
-
"difficulty": "medium",
|
|
218
|
-
"category": "gestures"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"id": "q16",
|
|
222
|
-
"query": "running tests against an .aab Android App Bundle",
|
|
223
|
-
"expectedSources": [
|
|
224
|
-
"appium-uiautomator2-driver/docs/android-appbundle.md"
|
|
225
|
-
],
|
|
226
|
-
"answerSpans": ["bundletool", ".apks", ".aab"],
|
|
227
|
-
"difficulty": "medium",
|
|
228
|
-
"category": "android"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
"id": "q17",
|
|
232
|
-
"query": "differences between Appium 1 and Appium 2",
|
|
233
|
-
"expectedSources": ["en/guides/migrating-1-to-2.md"],
|
|
234
|
-
"answerSpans": [
|
|
235
|
-
"Drivers Installed Separately",
|
|
236
|
-
"ecosystem",
|
|
237
|
-
"uninstall Appium 1 first"
|
|
238
|
-
],
|
|
239
|
-
"difficulty": "medium",
|
|
240
|
-
"category": "migration"
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
"id": "q18",
|
|
244
|
-
"query": "enable Touch ID in an iOS simulator test",
|
|
245
|
-
"expectedSources": ["appium-xcuitest-driver/docs/guides/touch-id.md"],
|
|
246
|
-
"answerSpans": [
|
|
247
|
-
"appium:allowTouchIdEnroll",
|
|
248
|
-
"mobile: enrollBiometric",
|
|
249
|
-
"only supported on simulators"
|
|
250
|
-
],
|
|
251
|
-
"difficulty": "medium",
|
|
252
|
-
"category": "ios"
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
"id": "q19",
|
|
256
|
-
"query": "use a custom WebDriverAgent server",
|
|
257
|
-
"expectedSources": [
|
|
258
|
-
"appium-xcuitest-driver/docs/guides/wda-custom-server.md",
|
|
259
|
-
"appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md",
|
|
260
|
-
"appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md",
|
|
261
|
-
"appium-xcuitest-driver/docs/guides/attach-to-running-wda.md"
|
|
262
|
-
],
|
|
263
|
-
"answerSpans": ["appium:webDriverAgentUrl", "WebDriverAgent"],
|
|
264
|
-
"difficulty": "medium",
|
|
265
|
-
"category": "wda"
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
"id": "q20",
|
|
269
|
-
"query": "setting up Appium on a CI server",
|
|
270
|
-
"expectedSources": ["appium-xcuitest-driver/docs/guides/ci-setup.md"],
|
|
271
|
-
"answerSpans": ["Keychain", "unlock-keychain", "Continuous Integration"],
|
|
272
|
-
"difficulty": "medium",
|
|
273
|
-
"category": "ci"
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
"id": "q21",
|
|
277
|
-
"query": "my tests are super slow on iOS, what's going on",
|
|
278
|
-
"expectedSources": [
|
|
279
|
-
"appium-xcuitest-driver/docs/guides/wda-slowness.md",
|
|
280
|
-
"appium-xcuitest-driver/docs/guides/troubleshooting.md"
|
|
281
|
-
],
|
|
282
|
-
"answerSpans": [
|
|
283
|
-
"WebDriverAgent",
|
|
284
|
-
"XCTest",
|
|
285
|
-
"Proxying [",
|
|
286
|
-
"snapshotMaxDepth"
|
|
287
|
-
],
|
|
288
|
-
"difficulty": "vague",
|
|
289
|
-
"category": "troubleshooting"
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
"id": "q22",
|
|
293
|
-
"query": "appium can't find my button",
|
|
294
|
-
"expectedSources": [
|
|
295
|
-
"appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md",
|
|
296
|
-
"appium-xcuitest-driver/docs/reference/locator-strategies.md"
|
|
297
|
-
],
|
|
298
|
-
"answerSpans": ["accessibility", "page source", "Symptom"],
|
|
299
|
-
"difficulty": "vague",
|
|
300
|
-
"category": "troubleshooting"
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
"id": "q23",
|
|
304
|
-
"query": "I switched xcode versions and now nothing works",
|
|
305
|
-
"expectedSources": [
|
|
306
|
-
"appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md"
|
|
307
|
-
],
|
|
308
|
-
"answerSpans": ["xcode-select", "DEVELOPER_DIR"],
|
|
309
|
-
"difficulty": "vague",
|
|
310
|
-
"category": "troubleshooting"
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"id": "q24",
|
|
314
|
-
"query": "can I reuse a WebDriverAgent that's already running",
|
|
315
|
-
"expectedSources": [
|
|
316
|
-
"appium-xcuitest-driver/docs/guides/attach-to-running-wda.md"
|
|
317
|
-
],
|
|
318
|
-
"answerSpans": ["appium:webDriverAgentUrl", "attach to a running"],
|
|
319
|
-
"difficulty": "vague",
|
|
320
|
-
"category": "wda"
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
"id": "q25",
|
|
324
|
-
"query": "show me how to write a test in python",
|
|
325
|
-
"expectedSources": ["en/quickstart/test-py.md"],
|
|
326
|
-
"answerSpans": [
|
|
327
|
-
"Appium-Python-Client",
|
|
328
|
-
"pip install Appium-Python-Client"
|
|
329
|
-
],
|
|
330
|
-
"difficulty": "vague",
|
|
331
|
-
"category": "clients"
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
"id": "q26",
|
|
335
|
-
"query": "long press an element on Android",
|
|
336
|
-
"expectedSources": [
|
|
337
|
-
"appium-uiautomator2-driver/docs/android-mobile-gestures.md"
|
|
338
|
-
],
|
|
339
|
-
"answerSpans": ["mobile: longClickGesture", "long click action"],
|
|
340
|
-
"difficulty": "easy",
|
|
341
|
-
"category": "gestures"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"id": "q27",
|
|
345
|
-
"query": "how do I list available drivers on my machine",
|
|
346
|
-
"expectedSources": [
|
|
347
|
-
"en/reference/cli/extensions.md",
|
|
348
|
-
"en/guides/managing-exts.md"
|
|
349
|
-
],
|
|
350
|
-
"answerSpans": ["appium driver list", "driver install"],
|
|
351
|
-
"difficulty": "medium",
|
|
352
|
-
"category": "cli"
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
"id": "q28",
|
|
356
|
-
"query": "what's the difference between appium:app and appium:bundleId",
|
|
357
|
-
"expectedSources": [
|
|
358
|
-
"appium-xcuitest-driver/docs/reference/capabilities.md",
|
|
359
|
-
"en/guides/caps.md"
|
|
360
|
-
],
|
|
361
|
-
"answerSpans": ["bundleId", "appium:app"],
|
|
362
|
-
"difficulty": "medium",
|
|
363
|
-
"category": "capabilities"
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
"id": "q29",
|
|
367
|
-
"query": "configure Appium with a JSON config file instead of CLI flags",
|
|
368
|
-
"expectedSources": ["en/guides/config.md", "en/reference/cli/server.md"],
|
|
369
|
-
"answerSpans": ["Configuration File", "--config"],
|
|
370
|
-
"difficulty": "medium",
|
|
371
|
-
"category": "cli"
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
"id": "q30",
|
|
375
|
-
"query": "how to record video of an iOS test run",
|
|
376
|
-
"expectedSources": [
|
|
377
|
-
"appium-xcuitest-driver/docs/reference/execute-methods.md",
|
|
378
|
-
"appium-xcuitest-driver/docs/guides/audio-capture.md"
|
|
379
|
-
],
|
|
380
|
-
"answerSpans": [
|
|
381
|
-
"mobile: startRecordingScreen",
|
|
382
|
-
"mobile: stopRecordingScreen"
|
|
383
|
-
],
|
|
384
|
-
"difficulty": "medium",
|
|
385
|
-
"category": "ios"
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
"id": "q31",
|
|
389
|
-
"query": "scroll until an element is visible on android",
|
|
390
|
-
"expectedSources": [
|
|
391
|
-
"appium-uiautomator2-driver/docs/android-mobile-gestures.md",
|
|
392
|
-
"appium-uiautomator2-driver/docs/uiautomator-uiselector.md"
|
|
393
|
-
],
|
|
394
|
-
"answerSpans": ["mobile: scrollGesture", "UiScrollable"],
|
|
395
|
-
"difficulty": "medium",
|
|
396
|
-
"category": "gestures"
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"id": "q32",
|
|
400
|
-
"query": "deal with iOS permission dialog for camera or location",
|
|
401
|
-
"expectedSources": [
|
|
402
|
-
"appium-xcuitest-driver/docs/guides/troubleshooting.md",
|
|
403
|
-
"appium-xcuitest-driver/docs/reference/execute-methods.md"
|
|
404
|
-
],
|
|
405
|
-
"answerSpans": ["alert", "permission"],
|
|
406
|
-
"difficulty": "vague",
|
|
407
|
-
"category": "ios"
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
"id": "q33",
|
|
411
|
-
"query": "WebDriverAgent build failed with code signing error",
|
|
412
|
-
"expectedSources": [
|
|
413
|
-
"appium-xcuitest-driver/docs/preparation/real-device-config.md",
|
|
414
|
-
"appium-xcuitest-driver/docs/guides/troubleshooting.md",
|
|
415
|
-
"appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md"
|
|
416
|
-
],
|
|
417
|
-
"answerSpans": ["provisioning profile", "code sign", "team"],
|
|
418
|
-
"difficulty": "vague",
|
|
419
|
-
"category": "ios-real-device"
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
"id": "q34",
|
|
423
|
-
"query": "what is mobile: activateApp used for",
|
|
424
|
-
"expectedSources": [
|
|
425
|
-
"appium-xcuitest-driver/docs/reference/execute-methods.md",
|
|
426
|
-
"appium-uiautomator2-driver/docs/README.md"
|
|
427
|
-
],
|
|
428
|
-
"answerSpans": ["mobile: activateApp", "bundleId"],
|
|
429
|
-
"difficulty": "medium",
|
|
430
|
-
"category": "app-management"
|
|
431
|
-
},
|
|
432
|
-
{
|
|
433
|
-
"id": "q35",
|
|
434
|
-
"query": "Appium 2 plugin installation",
|
|
435
|
-
"expectedSources": [
|
|
436
|
-
"en/guides/managing-exts.md",
|
|
437
|
-
"en/reference/cli/extensions.md"
|
|
438
|
-
],
|
|
439
|
-
"answerSpans": ["appium plugin install", "plugin"],
|
|
440
|
-
"difficulty": "easy",
|
|
441
|
-
"category": "plugins"
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
"id": "q36",
|
|
445
|
-
"query": "how do I write a test in java",
|
|
446
|
-
"expectedSources": ["en/quickstart/test-java.md"],
|
|
447
|
-
"answerSpans": ["java-client", "AppiumDriver"],
|
|
448
|
-
"difficulty": "easy",
|
|
449
|
-
"category": "clients"
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
"id": "q37",
|
|
453
|
-
"query": "what does the headspin or browserstack driver do",
|
|
454
|
-
"expectedSources": ["en/ecosystem/drivers.md"],
|
|
455
|
-
"answerSpans": ["headspin", "BrowserStack"],
|
|
456
|
-
"difficulty": "vague",
|
|
457
|
-
"category": "ecosystem"
|
|
458
|
-
},
|
|
459
|
-
{
|
|
460
|
-
"id": "q38",
|
|
461
|
-
"query": "how do I capture device or app logs",
|
|
462
|
-
"expectedSources": [
|
|
463
|
-
"appium-xcuitest-driver/docs/reference/execute-methods.md",
|
|
464
|
-
"appium-uiautomator2-driver/docs/README.md"
|
|
465
|
-
],
|
|
466
|
-
"answerSpans": ["syslog", "logcat"],
|
|
467
|
-
"difficulty": "medium",
|
|
468
|
-
"category": "logging"
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
"id": "q39",
|
|
472
|
-
"query": "tap by x y coordinates on iOS",
|
|
473
|
-
"expectedSources": [
|
|
474
|
-
"appium-xcuitest-driver/docs/guides/gestures.md",
|
|
475
|
-
"appium-xcuitest-driver/docs/reference/execute-methods.md"
|
|
476
|
-
],
|
|
477
|
-
"answerSpans": ["mobile: tap", "x", "y"],
|
|
478
|
-
"difficulty": "medium",
|
|
479
|
-
"category": "gestures"
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
"id": "q40",
|
|
483
|
-
"query": "Appium driver doctor command",
|
|
484
|
-
"expectedSources": [
|
|
485
|
-
"en/reference/cli/extensions.md",
|
|
486
|
-
"en/quickstart/uiauto2-driver.md"
|
|
487
|
-
],
|
|
488
|
-
"answerSpans": ["appium driver doctor", "required fixes"],
|
|
489
|
-
"difficulty": "easy",
|
|
490
|
-
"category": "cli"
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
"id": "q41",
|
|
494
|
-
"query": "how to install Appium server arguments documentation",
|
|
495
|
-
"expectedSources": [
|
|
496
|
-
"en/reference/cli/server.md",
|
|
497
|
-
"en/reference/cli/index.md"
|
|
498
|
-
],
|
|
499
|
-
"answerSpans": ["appium server", "--port"],
|
|
500
|
-
"difficulty": "medium",
|
|
501
|
-
"category": "cli"
|
|
502
|
-
},
|
|
503
|
-
{
|
|
504
|
-
"id": "q42",
|
|
505
|
-
"query": "what is an Appium plugin",
|
|
506
|
-
"expectedSources": [
|
|
507
|
-
"en/intro/index.md",
|
|
508
|
-
"en/ecosystem/plugins.md",
|
|
509
|
-
"en/guides/managing-exts.md"
|
|
510
|
-
],
|
|
511
|
-
"answerSpans": ["plugin", "extend"],
|
|
512
|
-
"difficulty": "easy",
|
|
513
|
-
"category": "plugins"
|
|
514
|
-
}
|
|
515
|
-
]
|
|
516
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Simple Documentation Indexing Script
|
|
4
|
-
*
|
|
5
|
-
* This script is a simplified version for indexing Markdown documents into an in-memory vector store
|
|
6
|
-
* using LangChain's RecursiveCharacterTextSplitter and MemoryVectorStore.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* - Index a single Markdown file: npm run simple-index-docs [markdownPath] [chunkSize] [overlap]
|
|
10
|
-
* - Index all Markdown files in a directory: npm run simple-index-docs [dirPath] [chunkSize] [overlap]
|
|
11
|
-
*
|
|
12
|
-
* Examples:
|
|
13
|
-
* - npm run simple-index-docs ./my-doc.md 1000 200
|
|
14
|
-
* - npm run simple-index-docs ./src/resources 1000 200
|
|
15
|
-
*
|
|
16
|
-
* If no path is provided, it defaults to indexing all Markdown files in the src/resources directory.
|
|
17
|
-
* If a file path is provided, it will index that specific file.
|
|
18
|
-
* If a directory path is provided, it will index all Markdown files in that directory.
|
|
19
|
-
*/
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=simple-index-documentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-index-documentation.d.ts","sourceRoot":"","sources":["../../src/scripts/simple-index-documentation.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Simple Documentation Indexing Script
|
|
4
|
-
*
|
|
5
|
-
* This script is a simplified version for indexing Markdown documents into an in-memory vector store
|
|
6
|
-
* using LangChain's RecursiveCharacterTextSplitter and MemoryVectorStore.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* - Index a single Markdown file: npm run simple-index-docs [markdownPath] [chunkSize] [overlap]
|
|
10
|
-
* - Index all Markdown files in a directory: npm run simple-index-docs [dirPath] [chunkSize] [overlap]
|
|
11
|
-
*
|
|
12
|
-
* Examples:
|
|
13
|
-
* - npm run simple-index-docs ./my-doc.md 1000 200
|
|
14
|
-
* - npm run simple-index-docs ./src/resources 1000 200
|
|
15
|
-
*
|
|
16
|
-
* If no path is provided, it defaults to indexing all Markdown files in the src/resources directory.
|
|
17
|
-
* If a file path is provided, it will index that specific file.
|
|
18
|
-
* If a directory path is provided, it will index all Markdown files in that directory.
|
|
19
|
-
*/
|
|
20
|
-
import * as path from 'node:path';
|
|
21
|
-
import * as fs from 'node:fs';
|
|
22
|
-
import { indexMarkdown, indexAllMarkdownFiles, } from '../tools/documentation/simple-pdf-indexer.js';
|
|
23
|
-
/**
|
|
24
|
-
* Main function to handle the documentation indexing process
|
|
25
|
-
*/
|
|
26
|
-
async function main() {
|
|
27
|
-
// Parse command line arguments
|
|
28
|
-
const args = process.argv.slice(2);
|
|
29
|
-
let markdownPath;
|
|
30
|
-
let chunkSize = 2500; // Default chunk size
|
|
31
|
-
let chunkOverlap = 200; // Default overlap
|
|
32
|
-
let indexSingleFile = false;
|
|
33
|
-
if (args.length > 0 && args[0]) {
|
|
34
|
-
markdownPath = path.resolve(process.cwd(), args[0]);
|
|
35
|
-
if (fs.existsSync(markdownPath) && fs.statSync(markdownPath).isFile()) {
|
|
36
|
-
indexSingleFile = true;
|
|
37
|
-
console.log(`Using provided file path: ${markdownPath}`);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
console.log(`Using provided directory path: ${markdownPath}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
// Default to submodules directory which contains the git submodules
|
|
45
|
-
markdownPath = path.resolve(process.cwd(), 'src/resources/submodules');
|
|
46
|
-
console.log(`Using default submodules directory: ${markdownPath}`);
|
|
47
|
-
}
|
|
48
|
-
if (args.length > 1 && !isNaN(Number(args[1]))) {
|
|
49
|
-
chunkSize = Number(args[1]);
|
|
50
|
-
console.log(`Using chunk size: ${chunkSize}`);
|
|
51
|
-
}
|
|
52
|
-
if (args.length > 2 && !isNaN(Number(args[2]))) {
|
|
53
|
-
chunkOverlap = Number(args[2]);
|
|
54
|
-
console.log(`Using overlap: ${chunkOverlap}`);
|
|
55
|
-
}
|
|
56
|
-
console.log('Using sentence-transformers embeddings (no API key required)');
|
|
57
|
-
console.log('Starting simplified documentation indexing process with in-memory vector store...');
|
|
58
|
-
try {
|
|
59
|
-
if (indexSingleFile) {
|
|
60
|
-
console.log(`Indexing single Markdown file: ${markdownPath}`);
|
|
61
|
-
await indexMarkdown(markdownPath, chunkSize, chunkOverlap);
|
|
62
|
-
console.log('Documentation indexing completed successfully');
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
console.log(`Indexing all Markdown files in directory: ${markdownPath}`);
|
|
66
|
-
const indexedFiles = await indexAllMarkdownFiles(markdownPath, chunkSize, chunkOverlap);
|
|
67
|
-
console.log(`Documentation indexing completed successfully for ${indexedFiles.length} Markdown files`);
|
|
68
|
-
}
|
|
69
|
-
process.exit(0);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error('Documentation indexing failed:', error);
|
|
73
|
-
process.exit(1);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
void main();
|
|
77
|
-
//# sourceMappingURL=simple-index-documentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-index-documentation.js","sourceRoot":"","sources":["../../src/scripts/simple-index-documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Simple Documentation Query Script
|
|
4
|
-
*
|
|
5
|
-
* This script is used to test the answerAppiumQuery function
|
|
6
|
-
* by querying the indexed Markdown documentation in the in-memory vector store.
|
|
7
|
-
*
|
|
8
|
-
* Usage: npm run simple-query-docs "your query here"
|
|
9
|
-
*
|
|
10
|
-
* Example: npm run simple-query-docs "What is Appium?"
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=simple-query-documentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-query-documentation.d.ts","sourceRoot":"","sources":["../../src/scripts/simple-query-documentation.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
|