testdriverai 7.0.0 → 7.1.1

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 (324) hide show
  1. package/.env.example +2 -0
  2. package/.github/workflows/linux-tests.yml +28 -0
  3. package/README.md +126 -0
  4. package/agent/index.js +7 -9
  5. package/agent/interface.js +13 -2
  6. package/agent/lib/commands.js +795 -136
  7. package/agent/lib/redraw.js +124 -39
  8. package/agent/lib/sandbox.js +40 -3
  9. package/agent/lib/sdk.js +21 -0
  10. package/agent/lib/valid-version.js +2 -2
  11. package/debugger/index.html +1 -1
  12. package/docs/docs.json +86 -71
  13. package/docs/guide/best-practices-polling.mdx +154 -0
  14. package/docs/v6/getting-started/self-hosting.mdx +3 -2
  15. package/docs/v7/_drafts/agents.mdx +852 -0
  16. package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
  17. package/docs/v7/_drafts/best-practices.mdx +486 -0
  18. package/docs/v7/_drafts/caching-ai.mdx +215 -0
  19. package/docs/v7/_drafts/caching-selectors.mdx +400 -0
  20. package/docs/v7/_drafts/caching.mdx +366 -0
  21. package/docs/v7/_drafts/cli-to-sdk-migration.mdx +425 -0
  22. package/docs/v7/_drafts/core.mdx +459 -0
  23. package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
  24. package/docs/v7/_drafts/debugging.mdx +349 -0
  25. package/docs/v7/_drafts/error-handling.mdx +501 -0
  26. package/docs/v7/_drafts/faq.mdx +393 -0
  27. package/docs/v7/_drafts/hooks.mdx +360 -0
  28. package/docs/v7/_drafts/implementation-plan.mdx +994 -0
  29. package/docs/v7/_drafts/init-command.mdx +95 -0
  30. package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
  31. package/docs/v7/_drafts/performance.mdx +517 -0
  32. package/docs/v7/_drafts/presets.mdx +210 -0
  33. package/docs/v7/_drafts/progressive-disclosure.mdx +230 -0
  34. package/docs/v7/_drafts/provision.mdx +266 -0
  35. package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
  36. package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
  37. package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
  38. package/docs/v7/_drafts/troubleshooting.mdx +526 -0
  39. package/docs/v7/_drafts/vitest-plugin.mdx +477 -0
  40. package/docs/v7/_drafts/vitest.mdx +535 -0
  41. package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
  42. package/docs/v7/api/client.mdx +1 -1
  43. package/docs/v7/api/dashcam.mdx +497 -0
  44. package/docs/v7/api/doubleClick.mdx +102 -0
  45. package/docs/v7/api/elements.mdx +143 -41
  46. package/docs/v7/api/find.mdx +258 -0
  47. package/docs/v7/api/mouseDown.mdx +161 -0
  48. package/docs/v7/api/mouseUp.mdx +164 -0
  49. package/docs/v7/api/rightClick.mdx +123 -0
  50. package/docs/v7/api/type.mdx +51 -7
  51. package/docs/v7/features/ai-native.mdx +427 -0
  52. package/docs/v7/features/easy-to-write.mdx +351 -0
  53. package/docs/v7/features/enterprise.mdx +540 -0
  54. package/docs/v7/features/fast.mdx +424 -0
  55. package/docs/v7/features/observable.mdx +623 -0
  56. package/docs/v7/features/powerful.mdx +531 -0
  57. package/docs/v7/features/scalable.mdx +417 -0
  58. package/docs/v7/features/stable.mdx +514 -0
  59. package/docs/v7/getting-started/configuration.mdx +380 -0
  60. package/docs/v7/getting-started/generating-tests.mdx +525 -0
  61. package/docs/v7/getting-started/installation.mdx +486 -0
  62. package/docs/v7/getting-started/quickstart.mdx +320 -141
  63. package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
  64. package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
  65. package/docs/v7/getting-started/writing-tests.mdx +535 -0
  66. package/docs/v7/overview/what-is-testdriver.mdx +398 -0
  67. package/docs/v7/platforms/linux.mdx +308 -0
  68. package/docs/v7/platforms/macos.mdx +433 -0
  69. package/docs/v7/platforms/windows.mdx +430 -0
  70. package/docs/v7/playwright.mdx +3 -3
  71. package/docs/v7/presets/chrome-extension.mdx +223 -0
  72. package/docs/v7/presets/chrome.mdx +303 -0
  73. package/docs/v7/presets/electron.mdx +453 -0
  74. package/docs/v7/presets/vscode.mdx +417 -0
  75. package/docs/v7/presets/webapp.mdx +396 -0
  76. package/examples/run-tests-with-recording.sh +2 -2
  77. package/interfaces/cli/commands/init.js +358 -0
  78. package/interfaces/vitest-plugin.mjs +393 -103
  79. package/lib/core/Dashcam.js +506 -0
  80. package/lib/core/index.d.ts +150 -0
  81. package/lib/core/index.js +12 -0
  82. package/lib/presets/index.mjs +331 -0
  83. package/lib/vitest/hooks.d.ts +119 -0
  84. package/lib/vitest/hooks.mjs +316 -0
  85. package/lib/vitest/setup.mjs +44 -0
  86. package/package.json +13 -3
  87. package/sdk.d.ts +350 -44
  88. package/sdk.js +818 -105
  89. package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
  90. package/test/manual/test-console-logs.test.mjs +42 -0
  91. package/test/manual/test-init.sh +54 -0
  92. package/test/manual/test-provision-auth.mjs +22 -0
  93. package/test/testdriver/assert.test.mjs +41 -0
  94. package/test/testdriver/auto-cache-key-demo.test.mjs +56 -0
  95. package/test/testdriver/chrome-extension.test.mjs +89 -0
  96. package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +7 -19
  97. package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +6 -19
  98. package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +6 -18
  99. package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +9 -21
  100. package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +14 -26
  101. package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +8 -20
  102. package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +5 -20
  103. package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +10 -19
  104. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +7 -19
  105. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +5 -19
  106. package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +7 -19
  107. package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +5 -19
  108. package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +7 -19
  109. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +6 -20
  110. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +6 -18
  111. package/test/testdriver/scroll-until-text.test.mjs +28 -0
  112. package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +12 -21
  113. package/test/testdriver/setup/lifecycleHelpers.mjs +262 -0
  114. package/{testdriver/acceptance-sdk → test/testdriver}/setup/testHelpers.mjs +25 -20
  115. package/test/testdriver/type.test.mjs +45 -0
  116. package/vitest.config.mjs +11 -56
  117. package/.github/dependabot.yml +0 -11
  118. package/.github/workflows/acceptance-linux.yml +0 -75
  119. package/.github/workflows/acceptance-sdk-tests.yml +0 -133
  120. package/.github/workflows/acceptance-tests.yml +0 -130
  121. package/.github/workflows/lint.yml +0 -27
  122. package/.github/workflows/publish-canary.yml +0 -40
  123. package/.github/workflows/publish-latest.yml +0 -61
  124. package/.github/workflows/test-install.yml +0 -29
  125. package/.vscode/extensions.json +0 -3
  126. package/.vscode/launch.json +0 -22
  127. package/.vscode/mcp.json +0 -9
  128. package/.vscode/settings.json +0 -14
  129. package/CODEOWNERS +0 -3
  130. package/MIGRATION.md +0 -389
  131. package/SDK_README.md +0 -1122
  132. package/_testdriver/acceptance/assert.yaml +0 -7
  133. package/_testdriver/acceptance/dashcam.yaml +0 -9
  134. package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
  135. package/_testdriver/acceptance/embed.yaml +0 -9
  136. package/_testdriver/acceptance/exec-js.yaml +0 -29
  137. package/_testdriver/acceptance/exec-output.yaml +0 -43
  138. package/_testdriver/acceptance/exec-shell.yaml +0 -40
  139. package/_testdriver/acceptance/focus-window.yaml +0 -16
  140. package/_testdriver/acceptance/hover-image.yaml +0 -18
  141. package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
  142. package/_testdriver/acceptance/hover-text.yaml +0 -14
  143. package/_testdriver/acceptance/if-else.yaml +0 -31
  144. package/_testdriver/acceptance/match-image.yaml +0 -15
  145. package/_testdriver/acceptance/press-keys.yaml +0 -35
  146. package/_testdriver/acceptance/prompt.yaml +0 -11
  147. package/_testdriver/acceptance/remember.yaml +0 -27
  148. package/_testdriver/acceptance/screenshots/cart.png +0 -0
  149. package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
  150. package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
  151. package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
  152. package/_testdriver/acceptance/scroll.yaml +0 -33
  153. package/_testdriver/acceptance/snippets/login.yaml +0 -29
  154. package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
  155. package/_testdriver/acceptance/type.yaml +0 -29
  156. package/_testdriver/behavior/failure.yaml +0 -7
  157. package/_testdriver/behavior/hover-text.yaml +0 -13
  158. package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
  159. package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
  160. package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
  161. package/_testdriver/behavior/secrets.yaml +0 -7
  162. package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
  163. package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
  164. package/_testdriver/edge-cases/js-exception.yaml +0 -8
  165. package/_testdriver/edge-cases/js-promise.yaml +0 -19
  166. package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
  167. package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
  168. package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
  169. package/_testdriver/edge-cases/success-test.yaml +0 -9
  170. package/_testdriver/examples/android/example.yaml +0 -12
  171. package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
  172. package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
  173. package/_testdriver/examples/android/readme.md +0 -7
  174. package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
  175. package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
  176. package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
  177. package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
  178. package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
  179. package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
  180. package/_testdriver/lifecycle/postrun.yaml +0 -8
  181. package/_testdriver/lifecycle/prerun.yaml +0 -15
  182. package/_testdriver/lifecycle/provision.yaml +0 -25
  183. package/debug-screenshot-1763401388589.png +0 -0
  184. package/mcp-server/AI_GUIDELINES.md +0 -57
  185. package/scripts/view-test-results.mjs +0 -96
  186. package/styles/.vale-config/2-MDX.ini +0 -5
  187. package/styles/Microsoft/AMPM.yml +0 -9
  188. package/styles/Microsoft/Accessibility.yml +0 -30
  189. package/styles/Microsoft/Acronyms.yml +0 -64
  190. package/styles/Microsoft/Adverbs.yml +0 -272
  191. package/styles/Microsoft/Auto.yml +0 -11
  192. package/styles/Microsoft/Avoid.yml +0 -14
  193. package/styles/Microsoft/Contractions.yml +0 -50
  194. package/styles/Microsoft/Dashes.yml +0 -13
  195. package/styles/Microsoft/DateFormat.yml +0 -8
  196. package/styles/Microsoft/DateNumbers.yml +0 -40
  197. package/styles/Microsoft/DateOrder.yml +0 -8
  198. package/styles/Microsoft/Ellipses.yml +0 -9
  199. package/styles/Microsoft/FirstPerson.yml +0 -16
  200. package/styles/Microsoft/Foreign.yml +0 -13
  201. package/styles/Microsoft/Gender.yml +0 -8
  202. package/styles/Microsoft/GenderBias.yml +0 -42
  203. package/styles/Microsoft/GeneralURL.yml +0 -11
  204. package/styles/Microsoft/HeadingAcronyms.yml +0 -7
  205. package/styles/Microsoft/HeadingColons.yml +0 -8
  206. package/styles/Microsoft/HeadingPunctuation.yml +0 -13
  207. package/styles/Microsoft/Headings.yml +0 -28
  208. package/styles/Microsoft/Hyphens.yml +0 -14
  209. package/styles/Microsoft/Negative.yml +0 -13
  210. package/styles/Microsoft/Ordinal.yml +0 -13
  211. package/styles/Microsoft/OxfordComma.yml +0 -8
  212. package/styles/Microsoft/Passive.yml +0 -183
  213. package/styles/Microsoft/Percentages.yml +0 -7
  214. package/styles/Microsoft/Plurals.yml +0 -7
  215. package/styles/Microsoft/Quotes.yml +0 -7
  216. package/styles/Microsoft/RangeTime.yml +0 -13
  217. package/styles/Microsoft/Semicolon.yml +0 -8
  218. package/styles/Microsoft/SentenceLength.yml +0 -6
  219. package/styles/Microsoft/Spacing.yml +0 -8
  220. package/styles/Microsoft/Suspended.yml +0 -7
  221. package/styles/Microsoft/Terms.yml +0 -42
  222. package/styles/Microsoft/URLFormat.yml +0 -9
  223. package/styles/Microsoft/Units.yml +0 -16
  224. package/styles/Microsoft/Vocab.yml +0 -25
  225. package/styles/Microsoft/We.yml +0 -11
  226. package/styles/Microsoft/Wordiness.yml +0 -127
  227. package/styles/Microsoft/meta.json +0 -4
  228. package/styles/alex/Ablist.yml +0 -274
  229. package/styles/alex/Condescending.yml +0 -16
  230. package/styles/alex/Gendered.yml +0 -110
  231. package/styles/alex/LGBTQ.yml +0 -55
  232. package/styles/alex/OCD.yml +0 -10
  233. package/styles/alex/Press.yml +0 -12
  234. package/styles/alex/ProfanityLikely.yml +0 -1289
  235. package/styles/alex/ProfanityMaybe.yml +0 -282
  236. package/styles/alex/ProfanityUnlikely.yml +0 -251
  237. package/styles/alex/README.md +0 -27
  238. package/styles/alex/Race.yml +0 -85
  239. package/styles/alex/Suicide.yml +0 -26
  240. package/styles/alex/meta.json +0 -4
  241. package/styles/config/vocabularies/Docs/accept.txt +0 -47
  242. package/styles/config/vocabularies/Docs/reject.txt +0 -4
  243. package/styles/proselint/Airlinese.yml +0 -8
  244. package/styles/proselint/AnimalLabels.yml +0 -48
  245. package/styles/proselint/Annotations.yml +0 -9
  246. package/styles/proselint/Apologizing.yml +0 -8
  247. package/styles/proselint/Archaisms.yml +0 -52
  248. package/styles/proselint/But.yml +0 -8
  249. package/styles/proselint/Cliches.yml +0 -782
  250. package/styles/proselint/CorporateSpeak.yml +0 -30
  251. package/styles/proselint/Currency.yml +0 -5
  252. package/styles/proselint/Cursing.yml +0 -15
  253. package/styles/proselint/DateCase.yml +0 -7
  254. package/styles/proselint/DateMidnight.yml +0 -7
  255. package/styles/proselint/DateRedundancy.yml +0 -10
  256. package/styles/proselint/DateSpacing.yml +0 -7
  257. package/styles/proselint/DenizenLabels.yml +0 -52
  258. package/styles/proselint/Diacritical.yml +0 -95
  259. package/styles/proselint/GenderBias.yml +0 -45
  260. package/styles/proselint/GroupTerms.yml +0 -39
  261. package/styles/proselint/Hedging.yml +0 -8
  262. package/styles/proselint/Hyperbole.yml +0 -6
  263. package/styles/proselint/Jargon.yml +0 -11
  264. package/styles/proselint/LGBTOffensive.yml +0 -13
  265. package/styles/proselint/LGBTTerms.yml +0 -15
  266. package/styles/proselint/Malapropisms.yml +0 -8
  267. package/styles/proselint/Needless.yml +0 -358
  268. package/styles/proselint/Nonwords.yml +0 -38
  269. package/styles/proselint/Oxymorons.yml +0 -22
  270. package/styles/proselint/P-Value.yml +0 -6
  271. package/styles/proselint/RASSyndrome.yml +0 -30
  272. package/styles/proselint/README.md +0 -12
  273. package/styles/proselint/Skunked.yml +0 -13
  274. package/styles/proselint/Spelling.yml +0 -17
  275. package/styles/proselint/Typography.yml +0 -11
  276. package/styles/proselint/Uncomparables.yml +0 -50
  277. package/styles/proselint/Very.yml +0 -6
  278. package/styles/proselint/meta.json +0 -15
  279. package/styles/write-good/Cliches.yml +0 -702
  280. package/styles/write-good/E-Prime.yml +0 -32
  281. package/styles/write-good/Illusions.yml +0 -11
  282. package/styles/write-good/Passive.yml +0 -183
  283. package/styles/write-good/README.md +0 -27
  284. package/styles/write-good/So.yml +0 -5
  285. package/styles/write-good/ThereIs.yml +0 -6
  286. package/styles/write-good/TooWordy.yml +0 -221
  287. package/styles/write-good/Weasel.yml +0 -29
  288. package/styles/write-good/meta.json +0 -4
  289. package/test/mcp-example-test.yaml +0 -27
  290. package/test/test_parser.js +0 -47
  291. package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
  292. package/testdriver/acceptance-sdk/README.md +0 -128
  293. package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
  294. package/testdriver/acceptance-sdk/assert.test.mjs +0 -44
  295. package/testdriver/acceptance-sdk/scroll-until-text.test.mjs +0 -42
  296. package/testdriver/acceptance-sdk/setup/lifecycleHelpers.mjs +0 -239
  297. package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
  298. package/testdriver/acceptance-sdk/type.test.mjs +0 -84
  299. package/vale.ini +0 -18
  300. package/vitest.config.example.js +0 -19
  301. package/vitest.config.mjs.bak +0 -44
  302. /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
  303. /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
  304. /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
  305. /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
  306. /package/{PLUGIN_MIGRATION.md → docs/v7/_drafts/plugin-migration.mdx} +0 -0
  307. /package/{PROMPT_CACHE.md → docs/v7/_drafts/prompt-cache.mdx} +0 -0
  308. /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
  309. /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
  310. /package/{SDK_LOGGING.md → docs/v7/_drafts/sdk-logging.mdx} +0 -0
  311. /package/{SDK_MIGRATION.md → docs/v7/_drafts/sdk-migration.mdx} +0 -0
  312. /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
  313. /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
  314. /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
  315. /package/{test-find-api.js → test/manual/test-find-api.js} +0 -0
  316. /package/{test-prompt-cache.js → test/manual/test-prompt-cache.js} +0 -0
  317. /package/{test-sandbox-render.js → test/manual/test-sandbox-render.js} +0 -0
  318. /package/{test-sdk-methods.js → test/manual/test-sdk-methods.js} +0 -0
  319. /package/{test-sdk-refactor.js → test/manual/test-sdk-refactor.js} +0 -0
  320. /package/{test-stack-trace.mjs → test/manual/test-stack-trace.mjs} +0 -0
  321. /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
  322. /package/{verify-types.js → test/manual/verify-types.js} +0 -0
  323. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
  324. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
@@ -1,11 +0,0 @@
1
- extends: repetition
2
- message: "'%s' is repeated!"
3
- level: warning
4
- alpha: true
5
- action:
6
- name: edit
7
- params:
8
- - truncate
9
- - " "
10
- tokens:
11
- - '[^\s]+'
@@ -1,183 +0,0 @@
1
- extends: existence
2
- message: "'%s' may be passive voice. Use active voice if you can."
3
- ignorecase: true
4
- level: warning
5
- raw:
6
- - \b(am|are|were|being|is|been|was|be)\b\s*
7
- tokens:
8
- - '[\w]+ed'
9
- - awoken
10
- - beat
11
- - become
12
- - been
13
- - begun
14
- - bent
15
- - beset
16
- - bet
17
- - bid
18
- - bidden
19
- - bitten
20
- - bled
21
- - blown
22
- - born
23
- - bought
24
- - bound
25
- - bred
26
- - broadcast
27
- - broken
28
- - brought
29
- - built
30
- - burnt
31
- - burst
32
- - cast
33
- - caught
34
- - chosen
35
- - clung
36
- - come
37
- - cost
38
- - crept
39
- - cut
40
- - dealt
41
- - dived
42
- - done
43
- - drawn
44
- - dreamt
45
- - driven
46
- - drunk
47
- - dug
48
- - eaten
49
- - fallen
50
- - fed
51
- - felt
52
- - fit
53
- - fled
54
- - flown
55
- - flung
56
- - forbidden
57
- - foregone
58
- - forgiven
59
- - forgotten
60
- - forsaken
61
- - fought
62
- - found
63
- - frozen
64
- - given
65
- - gone
66
- - gotten
67
- - ground
68
- - grown
69
- - heard
70
- - held
71
- - hidden
72
- - hit
73
- - hung
74
- - hurt
75
- - kept
76
- - knelt
77
- - knit
78
- - known
79
- - laid
80
- - lain
81
- - leapt
82
- - learnt
83
- - led
84
- - left
85
- - lent
86
- - let
87
- - lighted
88
- - lost
89
- - made
90
- - meant
91
- - met
92
- - misspelt
93
- - mistaken
94
- - mown
95
- - overcome
96
- - overdone
97
- - overtaken
98
- - overthrown
99
- - paid
100
- - pled
101
- - proven
102
- - put
103
- - quit
104
- - read
105
- - rid
106
- - ridden
107
- - risen
108
- - run
109
- - rung
110
- - said
111
- - sat
112
- - sawn
113
- - seen
114
- - sent
115
- - set
116
- - sewn
117
- - shaken
118
- - shaven
119
- - shed
120
- - shod
121
- - shone
122
- - shorn
123
- - shot
124
- - shown
125
- - shrunk
126
- - shut
127
- - slain
128
- - slept
129
- - slid
130
- - slit
131
- - slung
132
- - smitten
133
- - sold
134
- - sought
135
- - sown
136
- - sped
137
- - spent
138
- - spilt
139
- - spit
140
- - split
141
- - spoken
142
- - spread
143
- - sprung
144
- - spun
145
- - stolen
146
- - stood
147
- - stridden
148
- - striven
149
- - struck
150
- - strung
151
- - stuck
152
- - stung
153
- - stunk
154
- - sung
155
- - sunk
156
- - swept
157
- - swollen
158
- - sworn
159
- - swum
160
- - swung
161
- - taken
162
- - taught
163
- - thought
164
- - thrived
165
- - thrown
166
- - thrust
167
- - told
168
- - torn
169
- - trodden
170
- - understood
171
- - upheld
172
- - upset
173
- - wed
174
- - wept
175
- - withheld
176
- - withstood
177
- - woken
178
- - won
179
- - worn
180
- - wound
181
- - woven
182
- - written
183
- - wrung
@@ -1,27 +0,0 @@
1
- Based on [write-good](https://github.com/btford/write-good).
2
-
3
- > Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.
4
-
5
- ```
6
- The MIT License (MIT)
7
-
8
- Copyright (c) 2014 Brian Ford
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
- ```
@@ -1,5 +0,0 @@
1
- extends: existence
2
- message: "Don't start a sentence with '%s'."
3
- level: error
4
- raw:
5
- - '(?:[;-]\s)so[\s,]|\bSo[\s,]'
@@ -1,6 +0,0 @@
1
- extends: existence
2
- message: "Don't start a sentence with '%s'."
3
- ignorecase: false
4
- level: error
5
- raw:
6
- - '(?:[;-]\s)There\s(is|are)|\bThere\s(is|are)\b'
@@ -1,221 +0,0 @@
1
- extends: existence
2
- message: "'%s' is too wordy."
3
- ignorecase: true
4
- level: warning
5
- tokens:
6
- - a number of
7
- - abundance
8
- - accede to
9
- - accelerate
10
- - accentuate
11
- - accompany
12
- - accomplish
13
- - accorded
14
- - accrue
15
- - acquiesce
16
- - acquire
17
- - additional
18
- - adjacent to
19
- - adjustment
20
- - admissible
21
- - advantageous
22
- - adversely impact
23
- - advise
24
- - aforementioned
25
- - aggregate
26
- - aircraft
27
- - all of
28
- - all things considered
29
- - alleviate
30
- - allocate
31
- - along the lines of
32
- - already existing
33
- - alternatively
34
- - amazing
35
- - ameliorate
36
- - anticipate
37
- - apparent
38
- - appreciable
39
- - as a matter of fact
40
- - as a means of
41
- - as far as I'm concerned
42
- - as of yet
43
- - as to
44
- - as yet
45
- - ascertain
46
- - assistance
47
- - at the present time
48
- - at this time
49
- - attain
50
- - attributable to
51
- - authorize
52
- - because of the fact that
53
- - belated
54
- - benefit from
55
- - bestow
56
- - by means of
57
- - by virtue of
58
- - by virtue of the fact that
59
- - cease
60
- - close proximity
61
- - commence
62
- - comply with
63
- - concerning
64
- - consequently
65
- - consolidate
66
- - constitutes
67
- - demonstrate
68
- - depart
69
- - designate
70
- - discontinue
71
- - due to the fact that
72
- - each and every
73
- - economical
74
- - eliminate
75
- - elucidate
76
- - employ
77
- - endeavor
78
- - enumerate
79
- - equitable
80
- - equivalent
81
- - evaluate
82
- - evidenced
83
- - exclusively
84
- - expedite
85
- - expend
86
- - expiration
87
- - facilitate
88
- - factual evidence
89
- - feasible
90
- - finalize
91
- - first and foremost
92
- - for all intents and purposes
93
- - for the most part
94
- - for the purpose of
95
- - forfeit
96
- - formulate
97
- - have a tendency to
98
- - honest truth
99
- - however
100
- - if and when
101
- - impacted
102
- - implement
103
- - in a manner of speaking
104
- - in a timely manner
105
- - in a very real sense
106
- - in accordance with
107
- - in addition
108
- - in all likelihood
109
- - in an effort to
110
- - in between
111
- - in excess of
112
- - in lieu of
113
- - in light of the fact that
114
- - in many cases
115
- - in my opinion
116
- - in order to
117
- - in regard to
118
- - in some instances
119
- - in terms of
120
- - in the case of
121
- - in the event that
122
- - in the final analysis
123
- - in the nature of
124
- - in the near future
125
- - in the process of
126
- - inception
127
- - incumbent upon
128
- - indicate
129
- - indication
130
- - initiate
131
- - irregardless
132
- - is applicable to
133
- - is authorized to
134
- - is responsible for
135
- - it is
136
- - it is essential
137
- - it seems that
138
- - it was
139
- - magnitude
140
- - maximum
141
- - methodology
142
- - minimize
143
- - minimum
144
- - modify
145
- - monitor
146
- - multiple
147
- - necessitate
148
- - nevertheless
149
- - not certain
150
- - not many
151
- - not often
152
- - not unless
153
- - not unlike
154
- - notwithstanding
155
- - null and void
156
- - numerous
157
- - objective
158
- - obligate
159
- - obtain
160
- - on the contrary
161
- - on the other hand
162
- - one particular
163
- - optimum
164
- - overall
165
- - owing to the fact that
166
- - participate
167
- - particulars
168
- - pass away
169
- - pertaining to
170
- - point in time
171
- - portion
172
- - possess
173
- - preclude
174
- - previously
175
- - prior to
176
- - prioritize
177
- - procure
178
- - proficiency
179
- - provided that
180
- - purchase
181
- - put simply
182
- - readily apparent
183
- - refer back
184
- - regarding
185
- - relocate
186
- - remainder
187
- - remuneration
188
- - requirement
189
- - reside
190
- - residence
191
- - retain
192
- - satisfy
193
- - shall
194
- - should you wish
195
- - similar to
196
- - solicit
197
- - span across
198
- - strategize
199
- - subsequent
200
- - substantial
201
- - successfully complete
202
- - sufficient
203
- - terminate
204
- - the month of
205
- - the point I am trying to make
206
- - therefore
207
- - time period
208
- - took advantage of
209
- - transmit
210
- - transpire
211
- - type of
212
- - until such time as
213
- - utilization
214
- - utilize
215
- - validate
216
- - various different
217
- - what I mean to say is
218
- - whether or not
219
- - with respect to
220
- - with the exception of
221
- - witnessed
@@ -1,29 +0,0 @@
1
- extends: existence
2
- message: "'%s' is a weasel word!"
3
- ignorecase: true
4
- level: warning
5
- tokens:
6
- - clearly
7
- - completely
8
- - exceedingly
9
- - excellent
10
- - extremely
11
- - fairly
12
- - huge
13
- - interestingly
14
- - is a number
15
- - largely
16
- - mostly
17
- - obviously
18
- - quite
19
- - relatively
20
- - remarkably
21
- - several
22
- - significantly
23
- - substantially
24
- - surprisingly
25
- - tiny
26
- - usually
27
- - various
28
- - vast
29
- - very
@@ -1,4 +0,0 @@
1
- {
2
- "feed": "https://github.com/errata-ai/write-good/releases.atom",
3
- "vale_version": ">=1.0.0"
4
- }
@@ -1,27 +0,0 @@
1
- name: MCP Example Test
2
- description: Test created using TestDriver MCP to navigate example.com
3
-
4
- steps:
5
- # Open Chrome browser and navigate to example.com
6
- - exec:
7
- code: Start-Process chrome "https://example.com"
8
- language: pwsh
9
- timeout: 5000
10
-
11
- # Wait for the page to load
12
- - wait-for-text:
13
- text: Example Domain
14
- timeout: 10000
15
-
16
- # Assert that the Example Domain heading is visible
17
- - assert:
18
- expect: The text "Example Domain" is visible on the page
19
-
20
- # Click on the "Learn more" link
21
- - hover-text:
22
- text: Learn more
23
- action: click
24
-
25
- # Wait for navigation to complete
26
- - wait:
27
- timeout: 2000
@@ -1,47 +0,0 @@
1
- const chai = require("chai");
2
- const expect = chai.expect;
3
- const { interpolate } = require("../agent/lib/parser");
4
-
5
- describe("interpolate", function () {
6
- it("should replace variables in the string with values from the dictionary", function () {
7
- const template = "Hello, ${name}!";
8
- const vars = { name: "World" };
9
- const result = interpolate(template, vars);
10
- expect(result).to.equal("Hello, World!");
11
- });
12
-
13
- it("should replace multiple variables in the string", function () {
14
- const template = "Hi, ${firstName} ${lastName}!";
15
- const vars = { firstName: "Marcy", lastName: "the Dog" };
16
- const result = interpolate(template, vars);
17
- expect(result).to.equal("Hi, Marcy the Dog!");
18
- });
19
-
20
- it("should leave variables unchanged if they are not in the dictionary", function () {
21
- const template = "Hi, ${name} ${surname}!";
22
- const vars = { name: "John" };
23
- const result = interpolate(template, vars);
24
- expect(result).to.equal("Hi, John ${surname}!");
25
- });
26
-
27
- it("should return the original string if no variables are present", function () {
28
- const template = "Hello, World!";
29
- const vars = { name: "John" };
30
- const result = interpolate(template, vars);
31
- expect(result).to.equal("Hello, World!");
32
- });
33
-
34
- it("should handle an empty dictionary gracefully", function () {
35
- const template = "Hi, ${name}!";
36
- const vars = {};
37
- const result = interpolate(template, vars);
38
- expect(result).to.equal("Hi, ${name}!");
39
- });
40
-
41
- it("should not replace escaped variables", function () {
42
- const template = "Hello, \\${name}!";
43
- const vars = { name: "World" };
44
- const result = interpolate(template, vars);
45
- expect(result).to.equal("Hello, ${name}!");
46
- });
47
- });
@@ -1,61 +0,0 @@
1
- # SDK Test Reporting - Quick Reference
2
-
3
- ## 🚀 Commands
4
-
5
- ```bash
6
- # Run all tests
7
- npm run test:sdk
8
-
9
- # View terminal summary
10
- npm run test:sdk:results
11
-
12
- # Open HTML report
13
- npm run test:sdk:report
14
-
15
- # Watch mode (dev)
16
- npm run test:sdk:watch
17
-
18
- # Interactive UI
19
- npm run test:sdk:ui
20
- ```
21
-
22
- ## 📊 What You Get
23
-
24
- ### Locally
25
-
26
- 1. **Console**: Verbose logs with full test output
27
- 2. **Terminal Summary**: `npm run test:sdk:results` - Quick pass/fail counts
28
- 3. **HTML Report**: `npm run test:sdk:report` - Interactive browser viewer
29
-
30
- ### GitHub Actions
31
-
32
- 1. **Step Summary**: Markdown tables in workflow summary page
33
- 2. **Test Summary Action**: Badge counts and annotations
34
- 3. **Artifacts**: Download junit.xml, results.json, and index.html
35
-
36
- ## 📁 Output Files
37
-
38
- ```
39
- test-results/
40
- ├── junit.xml # For CI/CD tools
41
- ├── results.json # Machine-readable
42
- └── index.html # Interactive report
43
- ```
44
-
45
- ## ⚡ Quick Tips
46
-
47
- - **Debugging failures?** → `npm run test:sdk:report` (HTML has best error context)
48
- - **Quick status check?** → `npm run test:sdk:results` (terminal summary)
49
- - **PR review?** → Check GitHub Actions summary tab
50
- - **Need history?** → Download artifacts from GitHub Actions runs
51
-
52
- ## 🔍 GitHub Summary Preview
53
-
54
- Every test run creates a summary with:
55
-
56
- - ✅ Pass/fail counts table
57
- - ❌ Failed test details with errors
58
- - ✅ List of all passing tests
59
- - ⏱️ Duration metrics
60
-
61
- Find it: Actions → Your workflow run → Summary tab