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.
- package/.env.example +2 -0
- package/.github/workflows/linux-tests.yml +28 -0
- package/README.md +126 -0
- package/agent/index.js +7 -9
- package/agent/interface.js +13 -2
- package/agent/lib/commands.js +795 -136
- package/agent/lib/redraw.js +124 -39
- package/agent/lib/sandbox.js +40 -3
- package/agent/lib/sdk.js +21 -0
- package/agent/lib/valid-version.js +2 -2
- package/debugger/index.html +1 -1
- package/docs/docs.json +86 -71
- package/docs/guide/best-practices-polling.mdx +154 -0
- package/docs/v6/getting-started/self-hosting.mdx +3 -2
- package/docs/v7/_drafts/agents.mdx +852 -0
- package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
- package/docs/v7/_drafts/best-practices.mdx +486 -0
- package/docs/v7/_drafts/caching-ai.mdx +215 -0
- package/docs/v7/_drafts/caching-selectors.mdx +400 -0
- package/docs/v7/_drafts/caching.mdx +366 -0
- package/docs/v7/_drafts/cli-to-sdk-migration.mdx +425 -0
- package/docs/v7/_drafts/core.mdx +459 -0
- package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
- package/docs/v7/_drafts/debugging.mdx +349 -0
- package/docs/v7/_drafts/error-handling.mdx +501 -0
- package/docs/v7/_drafts/faq.mdx +393 -0
- package/docs/v7/_drafts/hooks.mdx +360 -0
- package/docs/v7/_drafts/implementation-plan.mdx +994 -0
- package/docs/v7/_drafts/init-command.mdx +95 -0
- package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
- package/docs/v7/_drafts/performance.mdx +517 -0
- package/docs/v7/_drafts/presets.mdx +210 -0
- package/docs/v7/_drafts/progressive-disclosure.mdx +230 -0
- package/docs/v7/_drafts/provision.mdx +266 -0
- package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
- package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
- package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
- package/docs/v7/_drafts/troubleshooting.mdx +526 -0
- package/docs/v7/_drafts/vitest-plugin.mdx +477 -0
- package/docs/v7/_drafts/vitest.mdx +535 -0
- package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
- package/docs/v7/api/client.mdx +1 -1
- package/docs/v7/api/dashcam.mdx +497 -0
- package/docs/v7/api/doubleClick.mdx +102 -0
- package/docs/v7/api/elements.mdx +143 -41
- package/docs/v7/api/find.mdx +258 -0
- package/docs/v7/api/mouseDown.mdx +161 -0
- package/docs/v7/api/mouseUp.mdx +164 -0
- package/docs/v7/api/rightClick.mdx +123 -0
- package/docs/v7/api/type.mdx +51 -7
- package/docs/v7/features/ai-native.mdx +427 -0
- package/docs/v7/features/easy-to-write.mdx +351 -0
- package/docs/v7/features/enterprise.mdx +540 -0
- package/docs/v7/features/fast.mdx +424 -0
- package/docs/v7/features/observable.mdx +623 -0
- package/docs/v7/features/powerful.mdx +531 -0
- package/docs/v7/features/scalable.mdx +417 -0
- package/docs/v7/features/stable.mdx +514 -0
- package/docs/v7/getting-started/configuration.mdx +380 -0
- package/docs/v7/getting-started/generating-tests.mdx +525 -0
- package/docs/v7/getting-started/installation.mdx +486 -0
- package/docs/v7/getting-started/quickstart.mdx +320 -141
- package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
- package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
- package/docs/v7/getting-started/writing-tests.mdx +535 -0
- package/docs/v7/overview/what-is-testdriver.mdx +398 -0
- package/docs/v7/platforms/linux.mdx +308 -0
- package/docs/v7/platforms/macos.mdx +433 -0
- package/docs/v7/platforms/windows.mdx +430 -0
- package/docs/v7/playwright.mdx +3 -3
- package/docs/v7/presets/chrome-extension.mdx +223 -0
- package/docs/v7/presets/chrome.mdx +303 -0
- package/docs/v7/presets/electron.mdx +453 -0
- package/docs/v7/presets/vscode.mdx +417 -0
- package/docs/v7/presets/webapp.mdx +396 -0
- package/examples/run-tests-with-recording.sh +2 -2
- package/interfaces/cli/commands/init.js +358 -0
- package/interfaces/vitest-plugin.mjs +393 -103
- package/lib/core/Dashcam.js +506 -0
- package/lib/core/index.d.ts +150 -0
- package/lib/core/index.js +12 -0
- package/lib/presets/index.mjs +331 -0
- package/lib/vitest/hooks.d.ts +119 -0
- package/lib/vitest/hooks.mjs +316 -0
- package/lib/vitest/setup.mjs +44 -0
- package/package.json +13 -3
- package/sdk.d.ts +350 -44
- package/sdk.js +818 -105
- package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
- package/test/manual/test-console-logs.test.mjs +42 -0
- package/test/manual/test-init.sh +54 -0
- package/test/manual/test-provision-auth.mjs +22 -0
- package/test/testdriver/assert.test.mjs +41 -0
- package/test/testdriver/auto-cache-key-demo.test.mjs +56 -0
- package/test/testdriver/chrome-extension.test.mjs +89 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +6 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +6 -18
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +9 -21
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +14 -26
- package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +8 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +5 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +10 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +5 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +5 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +6 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +6 -18
- package/test/testdriver/scroll-until-text.test.mjs +28 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +12 -21
- package/test/testdriver/setup/lifecycleHelpers.mjs +262 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/setup/testHelpers.mjs +25 -20
- package/test/testdriver/type.test.mjs +45 -0
- package/vitest.config.mjs +11 -56
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/acceptance-linux.yml +0 -75
- package/.github/workflows/acceptance-sdk-tests.yml +0 -133
- package/.github/workflows/acceptance-tests.yml +0 -130
- package/.github/workflows/lint.yml +0 -27
- package/.github/workflows/publish-canary.yml +0 -40
- package/.github/workflows/publish-latest.yml +0 -61
- package/.github/workflows/test-install.yml +0 -29
- package/.vscode/extensions.json +0 -3
- package/.vscode/launch.json +0 -22
- package/.vscode/mcp.json +0 -9
- package/.vscode/settings.json +0 -14
- package/CODEOWNERS +0 -3
- package/MIGRATION.md +0 -389
- package/SDK_README.md +0 -1122
- package/_testdriver/acceptance/assert.yaml +0 -7
- package/_testdriver/acceptance/dashcam.yaml +0 -9
- package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
- package/_testdriver/acceptance/embed.yaml +0 -9
- package/_testdriver/acceptance/exec-js.yaml +0 -29
- package/_testdriver/acceptance/exec-output.yaml +0 -43
- package/_testdriver/acceptance/exec-shell.yaml +0 -40
- package/_testdriver/acceptance/focus-window.yaml +0 -16
- package/_testdriver/acceptance/hover-image.yaml +0 -18
- package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
- package/_testdriver/acceptance/hover-text.yaml +0 -14
- package/_testdriver/acceptance/if-else.yaml +0 -31
- package/_testdriver/acceptance/match-image.yaml +0 -15
- package/_testdriver/acceptance/press-keys.yaml +0 -35
- package/_testdriver/acceptance/prompt.yaml +0 -11
- package/_testdriver/acceptance/remember.yaml +0 -27
- package/_testdriver/acceptance/screenshots/cart.png +0 -0
- package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
- package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
- package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
- package/_testdriver/acceptance/scroll.yaml +0 -33
- package/_testdriver/acceptance/snippets/login.yaml +0 -29
- package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
- package/_testdriver/acceptance/type.yaml +0 -29
- package/_testdriver/behavior/failure.yaml +0 -7
- package/_testdriver/behavior/hover-text.yaml +0 -13
- package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
- package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
- package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
- package/_testdriver/behavior/secrets.yaml +0 -7
- package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
- package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
- package/_testdriver/edge-cases/js-exception.yaml +0 -8
- package/_testdriver/edge-cases/js-promise.yaml +0 -19
- package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
- package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
- package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
- package/_testdriver/edge-cases/success-test.yaml +0 -9
- package/_testdriver/examples/android/example.yaml +0 -12
- package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
- package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
- package/_testdriver/examples/android/readme.md +0 -7
- package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
- package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
- package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
- package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
- package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
- package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
- package/_testdriver/lifecycle/postrun.yaml +0 -8
- package/_testdriver/lifecycle/prerun.yaml +0 -15
- package/_testdriver/lifecycle/provision.yaml +0 -25
- package/debug-screenshot-1763401388589.png +0 -0
- package/mcp-server/AI_GUIDELINES.md +0 -57
- package/scripts/view-test-results.mjs +0 -96
- package/styles/.vale-config/2-MDX.ini +0 -5
- package/styles/Microsoft/AMPM.yml +0 -9
- package/styles/Microsoft/Accessibility.yml +0 -30
- package/styles/Microsoft/Acronyms.yml +0 -64
- package/styles/Microsoft/Adverbs.yml +0 -272
- package/styles/Microsoft/Auto.yml +0 -11
- package/styles/Microsoft/Avoid.yml +0 -14
- package/styles/Microsoft/Contractions.yml +0 -50
- package/styles/Microsoft/Dashes.yml +0 -13
- package/styles/Microsoft/DateFormat.yml +0 -8
- package/styles/Microsoft/DateNumbers.yml +0 -40
- package/styles/Microsoft/DateOrder.yml +0 -8
- package/styles/Microsoft/Ellipses.yml +0 -9
- package/styles/Microsoft/FirstPerson.yml +0 -16
- package/styles/Microsoft/Foreign.yml +0 -13
- package/styles/Microsoft/Gender.yml +0 -8
- package/styles/Microsoft/GenderBias.yml +0 -42
- package/styles/Microsoft/GeneralURL.yml +0 -11
- package/styles/Microsoft/HeadingAcronyms.yml +0 -7
- package/styles/Microsoft/HeadingColons.yml +0 -8
- package/styles/Microsoft/HeadingPunctuation.yml +0 -13
- package/styles/Microsoft/Headings.yml +0 -28
- package/styles/Microsoft/Hyphens.yml +0 -14
- package/styles/Microsoft/Negative.yml +0 -13
- package/styles/Microsoft/Ordinal.yml +0 -13
- package/styles/Microsoft/OxfordComma.yml +0 -8
- package/styles/Microsoft/Passive.yml +0 -183
- package/styles/Microsoft/Percentages.yml +0 -7
- package/styles/Microsoft/Plurals.yml +0 -7
- package/styles/Microsoft/Quotes.yml +0 -7
- package/styles/Microsoft/RangeTime.yml +0 -13
- package/styles/Microsoft/Semicolon.yml +0 -8
- package/styles/Microsoft/SentenceLength.yml +0 -6
- package/styles/Microsoft/Spacing.yml +0 -8
- package/styles/Microsoft/Suspended.yml +0 -7
- package/styles/Microsoft/Terms.yml +0 -42
- package/styles/Microsoft/URLFormat.yml +0 -9
- package/styles/Microsoft/Units.yml +0 -16
- package/styles/Microsoft/Vocab.yml +0 -25
- package/styles/Microsoft/We.yml +0 -11
- package/styles/Microsoft/Wordiness.yml +0 -127
- package/styles/Microsoft/meta.json +0 -4
- package/styles/alex/Ablist.yml +0 -274
- package/styles/alex/Condescending.yml +0 -16
- package/styles/alex/Gendered.yml +0 -110
- package/styles/alex/LGBTQ.yml +0 -55
- package/styles/alex/OCD.yml +0 -10
- package/styles/alex/Press.yml +0 -12
- package/styles/alex/ProfanityLikely.yml +0 -1289
- package/styles/alex/ProfanityMaybe.yml +0 -282
- package/styles/alex/ProfanityUnlikely.yml +0 -251
- package/styles/alex/README.md +0 -27
- package/styles/alex/Race.yml +0 -85
- package/styles/alex/Suicide.yml +0 -26
- package/styles/alex/meta.json +0 -4
- package/styles/config/vocabularies/Docs/accept.txt +0 -47
- package/styles/config/vocabularies/Docs/reject.txt +0 -4
- package/styles/proselint/Airlinese.yml +0 -8
- package/styles/proselint/AnimalLabels.yml +0 -48
- package/styles/proselint/Annotations.yml +0 -9
- package/styles/proselint/Apologizing.yml +0 -8
- package/styles/proselint/Archaisms.yml +0 -52
- package/styles/proselint/But.yml +0 -8
- package/styles/proselint/Cliches.yml +0 -782
- package/styles/proselint/CorporateSpeak.yml +0 -30
- package/styles/proselint/Currency.yml +0 -5
- package/styles/proselint/Cursing.yml +0 -15
- package/styles/proselint/DateCase.yml +0 -7
- package/styles/proselint/DateMidnight.yml +0 -7
- package/styles/proselint/DateRedundancy.yml +0 -10
- package/styles/proselint/DateSpacing.yml +0 -7
- package/styles/proselint/DenizenLabels.yml +0 -52
- package/styles/proselint/Diacritical.yml +0 -95
- package/styles/proselint/GenderBias.yml +0 -45
- package/styles/proselint/GroupTerms.yml +0 -39
- package/styles/proselint/Hedging.yml +0 -8
- package/styles/proselint/Hyperbole.yml +0 -6
- package/styles/proselint/Jargon.yml +0 -11
- package/styles/proselint/LGBTOffensive.yml +0 -13
- package/styles/proselint/LGBTTerms.yml +0 -15
- package/styles/proselint/Malapropisms.yml +0 -8
- package/styles/proselint/Needless.yml +0 -358
- package/styles/proselint/Nonwords.yml +0 -38
- package/styles/proselint/Oxymorons.yml +0 -22
- package/styles/proselint/P-Value.yml +0 -6
- package/styles/proselint/RASSyndrome.yml +0 -30
- package/styles/proselint/README.md +0 -12
- package/styles/proselint/Skunked.yml +0 -13
- package/styles/proselint/Spelling.yml +0 -17
- package/styles/proselint/Typography.yml +0 -11
- package/styles/proselint/Uncomparables.yml +0 -50
- package/styles/proselint/Very.yml +0 -6
- package/styles/proselint/meta.json +0 -15
- package/styles/write-good/Cliches.yml +0 -702
- package/styles/write-good/E-Prime.yml +0 -32
- package/styles/write-good/Illusions.yml +0 -11
- package/styles/write-good/Passive.yml +0 -183
- package/styles/write-good/README.md +0 -27
- package/styles/write-good/So.yml +0 -5
- package/styles/write-good/ThereIs.yml +0 -6
- package/styles/write-good/TooWordy.yml +0 -221
- package/styles/write-good/Weasel.yml +0 -29
- package/styles/write-good/meta.json +0 -4
- package/test/mcp-example-test.yaml +0 -27
- package/test/test_parser.js +0 -47
- package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
- package/testdriver/acceptance-sdk/README.md +0 -128
- package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
- package/testdriver/acceptance-sdk/assert.test.mjs +0 -44
- package/testdriver/acceptance-sdk/scroll-until-text.test.mjs +0 -42
- package/testdriver/acceptance-sdk/setup/lifecycleHelpers.mjs +0 -239
- package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
- package/testdriver/acceptance-sdk/type.test.mjs +0 -84
- package/vale.ini +0 -18
- package/vitest.config.example.js +0 -19
- package/vitest.config.mjs.bak +0 -44
- /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
- /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
- /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
- /package/{PLUGIN_MIGRATION.md → docs/v7/_drafts/plugin-migration.mdx} +0 -0
- /package/{PROMPT_CACHE.md → docs/v7/_drafts/prompt-cache.mdx} +0 -0
- /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
- /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
- /package/{SDK_LOGGING.md → docs/v7/_drafts/sdk-logging.mdx} +0 -0
- /package/{SDK_MIGRATION.md → docs/v7/_drafts/sdk-migration.mdx} +0 -0
- /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
- /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
- /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
- /package/{test-find-api.js → test/manual/test-find-api.js} +0 -0
- /package/{test-prompt-cache.js → test/manual/test-prompt-cache.js} +0 -0
- /package/{test-sandbox-render.js → test/manual/test-sandbox-render.js} +0 -0
- /package/{test-sdk-methods.js → test/manual/test-sdk-methods.js} +0 -0
- /package/{test-sdk-refactor.js → test/manual/test-sdk-refactor.js} +0 -0
- /package/{test-stack-trace.mjs → test/manual/test-stack-trace.mjs} +0 -0
- /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
- /package/{verify-types.js → test/manual/verify-types.js} +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
|
@@ -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
|
-
```
|
package/styles/write-good/So.yml
DELETED
|
@@ -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,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
|
package/test/test_parser.js
DELETED
|
@@ -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
|