@skyramp/mcp 0.4.1 → 0.4.2-rc.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 (543) hide show
  1. package/build/adapters/jestAdapter.js +23 -5
  2. package/build/adapters/mochaAdapter.js +7 -1
  3. package/build/adapters/playwrightAdapter.js +3 -1
  4. package/build/adapters/pytestAdapter.js +14 -3
  5. package/build/commands/localDevTestChangesCommand.js +1 -0
  6. package/build/commands/recommendTestsAndExecuteCommand.js +5 -6
  7. package/build/commands/testThisEndpointCommand.js +16 -4
  8. package/build/index.js +34 -4
  9. package/build/playwright/blueprintDigest.js +28 -7
  10. package/build/playwright/registerPlaywrightTools.js +33 -28
  11. package/build/playwright/traceRecordingPrompt.js +9 -2
  12. package/build/prompts/code-reuse.js +95 -29
  13. package/build/prompts/fix-error-prompt.d.ts +9 -1
  14. package/build/prompts/fix-error-prompt.js +31 -28
  15. package/build/prompts/local-dev/local-dev-plan.d.ts +3 -0
  16. package/build/prompts/local-dev/local-dev-plan.js +3 -1
  17. package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
  18. package/build/prompts/local-dev/local-dev-prompts.js +30 -3
  19. package/build/prompts/modularization/integration-test-modularization.js +13 -6
  20. package/build/prompts/modularization/ui-test-modularization.js +1 -1
  21. package/build/prompts/personas.js +1 -1
  22. package/build/prompts/pom-aware-code-reuse.js +7 -9
  23. package/build/prompts/reuse-hand-off.d.ts +64 -0
  24. package/build/prompts/reuse-hand-off.js +130 -0
  25. package/build/prompts/shared-helper-policy.d.ts +88 -2
  26. package/build/prompts/shared-helper-policy.js +145 -11
  27. package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.js +1 -1
  28. package/build/prompts/sut-setup/modes/dockerComposePrompt.js +1 -1
  29. package/build/prompts/sut-setup/shared.d.ts +4 -1
  30. package/build/prompts/sut-setup/shared.js +2 -2
  31. package/build/prompts/test-maintenance/actionsInstructions.d.ts +19 -11
  32. package/build/prompts/test-maintenance/actionsInstructions.js +47 -26
  33. package/build/prompts/test-maintenance/drift-analysis-prompt.js +3 -2
  34. package/build/prompts/test-maintenance/driftAnalysisSections.js +5 -3
  35. package/build/prompts/test-maintenance/driftAnalysisShared.js +4 -2
  36. package/build/prompts/test-maintenance/uiDriftAnalysisSections.js +7 -4
  37. package/build/prompts/test-recommendation/recommendationSections.js +19 -8
  38. package/build/prompts/test-recommendation/registerRecommendTestsPrompt.js +5 -2
  39. package/build/prompts/test-recommendation/test-recommendation-prompt.js +10 -7
  40. package/build/prompts/testbot/testbot-prompts.js +123 -55
  41. package/build/recommendation/answers.js +18 -9
  42. package/build/recommendation/pullRequestText.js +1 -1
  43. package/build/recommendation/registerPlan.js +31 -17
  44. package/build/recommendation/subjectStep.d.ts +8 -10
  45. package/build/recommendation/subjectStep.js +17 -16
  46. package/build/recommendation/types.d.ts +71 -17
  47. package/build/recommendation/types.js +9 -15
  48. package/build/recommendation/verifierContracts.d.ts +7 -3
  49. package/build/recommendation/verifierContracts.js +8 -4
  50. package/build/recommendation/verifiers/changedFile.js +11 -13
  51. package/build/recommendation/verifiers/citedPath.d.ts +8 -0
  52. package/build/recommendation/verifiers/citedPath.js +16 -2
  53. package/build/recommendation/verifiers/coverage.d.ts +2 -2
  54. package/build/recommendation/verifiers/coverage.js +190 -134
  55. package/build/recommendation/verifiers/defects.js +56 -16
  56. package/build/recommendation/verifiers/deliveredMatchesPlan.d.ts +7 -1
  57. package/build/recommendation/verifiers/deliveredMatchesPlan.js +28 -14
  58. package/build/recommendation/verifiers/endpointGrounded.js +14 -8
  59. package/build/recommendation/verifiers/existingCoverage.d.ts +6 -0
  60. package/build/recommendation/verifiers/existingCoverage.js +30 -21
  61. package/build/recommendation/verifiers/expectedOutcome.js +17 -8
  62. package/build/recommendation/verifiers/expectedValueSourced.js +54 -43
  63. package/build/recommendation/verifiers/issueTraceability.d.ts +5 -0
  64. package/build/recommendation/verifiers/issueTraceability.js +64 -7
  65. package/build/recommendation/verifiers/removedElementGuarded.js +19 -11
  66. package/build/recommendation/verifiers/reportedCategory.js +9 -4
  67. package/build/recommendation/verifiers/requirementSourced.js +34 -21
  68. package/build/recommendation/verifiers/screenRoute.js +15 -10
  69. package/build/recommendation/verifiers/statedDifference.js +15 -8
  70. package/build/recommendation/verifiers/uiElementGrounded.js +50 -16
  71. package/build/resources/analysisResources.js +7 -3
  72. package/build/resources/progressResource.js +4 -2
  73. package/build/resources/sutSetupResource.js +20 -2
  74. package/build/resources/testbotResource.js +19 -1
  75. package/build/services/AnalyticsService.js +3 -1
  76. package/build/services/ScenarioGenerationService.js +5 -5
  77. package/build/services/TestDiscoveryService.js +21 -5
  78. package/build/services/TestExecutionService.js +63 -21
  79. package/build/services/TestGenerationService.d.ts +1 -1
  80. package/build/services/TestGenerationService.js +43 -24
  81. package/build/skills/enhanceAssertionsSkill.d.ts +45 -0
  82. package/build/skills/enhanceAssertionsSkill.js +103 -0
  83. package/build/skills/fixTestImportErrorsSkill.d.ts +2 -2
  84. package/build/skills/fixTestImportErrorsSkill.js +2 -2
  85. package/build/skills/skillFiles.d.ts +38 -0
  86. package/build/skills/skillFiles.js +94 -0
  87. package/build/skills/validateAssertionAlignmentSkill.d.ts +34 -0
  88. package/build/skills/validateAssertionAlignmentSkill.js +59 -0
  89. package/build/tool-phases.js +4 -0
  90. package/build/tools/auth/loginTool.js +3 -1
  91. package/build/tools/auth/logoutTool.js +3 -1
  92. package/build/tools/code-refactor/alignAssertionsTool.d.ts +2 -0
  93. package/build/tools/code-refactor/alignAssertionsTool.js +51 -0
  94. package/build/tools/code-refactor/assertion-state.d.ts +1 -1
  95. package/build/tools/code-refactor/assertion-state.js +1 -1
  96. package/build/tools/code-refactor/assertionOperations.d.ts +44 -0
  97. package/build/tools/code-refactor/assertionOperations.js +82 -0
  98. package/build/tools/code-refactor/assertionSkillTools.d.ts +3 -0
  99. package/build/tools/code-refactor/assertionSkillTools.js +86 -0
  100. package/build/tools/code-refactor/codeReuseTool.js +27 -3
  101. package/build/tools/code-refactor/enhanceAssertionsTool.js +19 -83
  102. package/build/tools/code-refactor/gate-markers.d.ts +51 -0
  103. package/build/tools/code-refactor/gate-markers.js +95 -0
  104. package/build/tools/code-refactor/retrofit-state.d.ts +3 -1
  105. package/build/tools/code-refactor/retrofit-state.js +44 -2
  106. package/build/tools/code-refactor/reuse-outcome.d.ts +23 -1
  107. package/build/tools/code-refactor/reuse-outcome.js +36 -13
  108. package/build/tools/code-refactor/reuse-state.d.ts +90 -16
  109. package/build/tools/code-refactor/reuse-state.js +191 -61
  110. package/build/tools/code-refactor/utils-verify-gates.d.ts +4 -0
  111. package/build/tools/code-refactor/utils-verify-gates.js +252 -27
  112. package/build/tools/code-refactor/verify-gates.d.ts +15 -1
  113. package/build/tools/code-refactor/verify-gates.js +36 -4
  114. package/build/tools/enrichTestWithMocksTool.d.ts +1 -1
  115. package/build/tools/enrichTestWithMocksTool.js +9 -5
  116. package/build/tools/executeSkyrampTestTool.d.ts +22 -1
  117. package/build/tools/executeSkyrampTestTool.js +571 -271
  118. package/build/tools/execution-video-state.js +1 -1
  119. package/build/tools/fixErrorTool.js +5 -6
  120. package/build/tools/generate-tests/batchMockGenerationTool.js +1 -1
  121. package/build/tools/generate-tests/generateBatchScenarioRestTool.js +114 -73
  122. package/build/tools/generate-tests/generateContractRestTool.js +34 -16
  123. package/build/tools/generate-tests/generateE2ERestTool.d.ts +1 -0
  124. package/build/tools/generate-tests/generateE2ERestTool.js +9 -1
  125. package/build/tools/generate-tests/generateIntegrationRestTool.js +22 -7
  126. package/build/tools/generate-tests/generateMockRestTool.js +3 -1
  127. package/build/tools/generate-tests/generateUIRestTool.d.ts +2 -0
  128. package/build/tools/generate-tests/generateUIRestTool.js +11 -2
  129. package/build/tools/generate-tests/loadTestSchema.js +1 -3
  130. package/build/tools/generate-tests/planGuard.js +6 -3
  131. package/build/tools/generate-tests/scenarioFileIdentity.js +4 -1
  132. package/build/tools/generate-tests/scenarioLint.js +17 -5
  133. package/build/tools/generate-tests/trace-reuse-guard.js +5 -2
  134. package/build/tools/generateEnrichedIntegrationTestTool.js +9 -3
  135. package/build/tools/one-click/oneClickTool.js +3 -1
  136. package/build/tools/preflightMockCheckTool.js +23 -7
  137. package/build/tools/runExistingTestsTool.d.ts +1 -1
  138. package/build/tools/runExistingTestsTool.js +43 -21
  139. package/build/tools/submitReportTool.d.ts +51 -12
  140. package/build/tools/submitReportTool.js +860 -161
  141. package/build/tools/test-management/actionsTool.js +210 -51
  142. package/build/tools/test-management/analyzeChangesTool.d.ts +4 -5
  143. package/build/tools/test-management/analyzeChangesTool.js +127 -68
  144. package/build/tools/test-management/analyzeTestHealthTool.js +35 -13
  145. package/build/tools/test-management/registerTestPlanTool.d.ts +44 -34
  146. package/build/tools/test-management/registerTestPlanTool.js +255 -111
  147. package/build/tools/test-management/resolveScreenTool.js +33 -9
  148. package/build/tools/trace/startTraceCollectionTool.js +3 -1
  149. package/build/tools/trace/stopTraceCollectionTool.js +41 -5
  150. package/build/tools/verifyTestDependenciesTool.d.ts +3 -0
  151. package/build/tools/verifyTestDependenciesTool.js +54 -0
  152. package/build/tools/workspace/initScanWorkspaceTool.js +9 -3
  153. package/build/tools/workspace/initializeWorkspaceTool.js +3 -1
  154. package/build/types/AssertionOutcome.d.ts +1 -1
  155. package/build/types/EnhanceType.d.ts +6 -0
  156. package/build/types/EnhanceType.js +1 -0
  157. package/build/types/ExternalTestExecution.d.ts +2 -2
  158. package/build/types/RepositoryAnalysis.d.ts +0 -40
  159. package/build/types/ReuseOutcome.d.ts +96 -4
  160. package/build/types/ReuseOutcome.js +16 -0
  161. package/build/types/StepMethod.js +20 -6
  162. package/build/types/TestAnalysis.d.ts +10 -2
  163. package/build/types/TestExecution.d.ts +45 -0
  164. package/build/types/TestRecommendation.d.ts +1 -1
  165. package/build/types/TestRecommendation.js +4 -1
  166. package/build/types/TestTypes.d.ts +13 -0
  167. package/build/types/TestTypes.js +34 -3
  168. package/build/types/TestbotPromptOptions.d.ts +9 -1
  169. package/build/types/TestbotReport.d.ts +45 -9
  170. package/build/utils/AnalysisStateManager.d.ts +137 -27
  171. package/build/utils/AnalysisStateManager.js +227 -43
  172. package/build/utils/assertion-verify/api-shared-lints.js +34 -16
  173. package/build/utils/assertion-verify/metrics.js +39 -6
  174. package/build/utils/assertion-verify/ui-lints.js +4 -2
  175. package/build/utils/branchDiff.js +47 -12
  176. package/build/utils/canonicalJson.js +3 -1
  177. package/build/utils/dartRouteExtractor.js +36 -7
  178. package/build/utils/fixAttempts.d.ts +26 -0
  179. package/build/utils/fixAttempts.js +109 -0
  180. package/build/utils/frontendSelectors.js +23 -4
  181. package/build/utils/generatedTestRecord.d.ts +19 -0
  182. package/build/utils/generatedTestRecord.js +61 -0
  183. package/build/utils/gitStaging.js +7 -2
  184. package/build/utils/initAgent.js +26 -6
  185. package/build/utils/language-helper.js +39 -45
  186. package/build/utils/pathMatching.js +2 -1
  187. package/build/utils/pathSignatures.js +6 -2
  188. package/build/utils/planMatchKeys.d.ts +2 -2
  189. package/build/utils/planMatchKeys.js +20 -14
  190. package/build/utils/pom-catalog-parse.js +7 -2
  191. package/build/utils/pom-scope/import-expansion.js +6 -1
  192. package/build/utils/pom-scope/index.js +50 -12
  193. package/build/utils/pom-scope/scoring.js +13 -3
  194. package/build/utils/pom-scope/selector-extractor.js +16 -3
  195. package/build/utils/pom-scope/strip.d.ts +8 -0
  196. package/build/utils/pom-scope/strip.js +238 -0
  197. package/build/utils/pom-scope/testIdDiscovery.js +14 -2
  198. package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.d.ts +1 -1
  199. package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.js +4 -2
  200. package/build/utils/pom-verify/__fixtures__/af-style/report.iframe.page.js +3 -1
  201. package/build/utils/pom-verify/__fixtures__/af-style/workflow-footer.page.js +3 -1
  202. package/build/utils/pom-verify/bindings.js +5 -1
  203. package/build/utils/pom-verify/calls.js +9 -2
  204. package/build/utils/pom-verify/verify.js +27 -5
  205. package/build/utils/pr-comment-parser.js +20 -7
  206. package/build/utils/proxy-terminal.d.ts +19 -1
  207. package/build/utils/proxy-terminal.js +346 -21
  208. package/build/utils/removedUiElements.js +1 -1
  209. package/build/utils/reportLanguage.js +35 -7
  210. package/build/utils/reportVerification.d.ts +14 -8
  211. package/build/utils/reportVerification.js +19 -19
  212. package/build/utils/repositorySlug.d.ts +32 -0
  213. package/build/utils/repositorySlug.js +77 -0
  214. package/build/utils/reuseRouting.js +6 -2
  215. package/build/utils/runSerialized.d.ts +3 -0
  216. package/build/utils/runSerialized.js +39 -0
  217. package/build/utils/screenRoutes.js +74 -18
  218. package/build/utils/sourceRouteExtractor.js +13 -6
  219. package/build/utils/telemetry.d.ts +1 -0
  220. package/build/utils/telemetry.js +8 -5
  221. package/build/utils/testDependencyPolicy.d.ts +9 -0
  222. package/build/utils/testDependencyPolicy.js +788 -0
  223. package/build/utils/testExecutionRecord.d.ts +90 -0
  224. package/build/utils/testExecutionRecord.js +267 -0
  225. package/build/utils/testFileClassification.js +3 -1
  226. package/build/utils/trace-parser.js +62 -14
  227. package/build/utils/urlPath.js +3 -1
  228. package/build/utils/utils-verify/action-key.d.ts +4 -0
  229. package/build/utils/utils-verify/action-key.js +2 -2
  230. package/build/utils/utils-verify/allow.d.ts +122 -3
  231. package/build/utils/utils-verify/allow.js +146 -21
  232. package/build/utils/utils-verify/body-reach.d.ts +120 -0
  233. package/build/utils/utils-verify/body-reach.js +335 -0
  234. package/build/utils/utils-verify/call-sites.d.ts +6 -1
  235. package/build/utils/utils-verify/call-sites.js +72 -8
  236. package/build/utils/utils-verify/delivered-imports.d.ts +43 -0
  237. package/build/utils/utils-verify/delivered-imports.js +84 -0
  238. package/build/utils/utils-verify/fixed-sleep.d.ts +96 -0
  239. package/build/utils/utils-verify/fixed-sleep.js +461 -0
  240. package/build/utils/utils-verify/in-house.d.ts +93 -0
  241. package/build/utils/utils-verify/in-house.js +719 -0
  242. package/build/utils/utils-verify/incumbent.d.ts +3 -0
  243. package/build/utils/utils-verify/incumbent.js +75 -0
  244. package/build/utils/utils-verify/index.d.ts +1 -0
  245. package/build/utils/utils-verify/index.js +1 -0
  246. package/build/utils/utils-verify/language-spec.d.ts +26 -10
  247. package/build/utils/utils-verify/language-spec.js +217 -20
  248. package/build/utils/utils-verify/locate.d.ts +26 -0
  249. package/build/utils/utils-verify/locate.js +125 -23
  250. package/build/utils/utils-verify/module-name.d.ts +40 -0
  251. package/build/utils/utils-verify/module-name.js +98 -0
  252. package/build/utils/utils-verify/parse.d.ts +46 -6
  253. package/build/utils/utils-verify/parse.js +176 -38
  254. package/build/utils/utils-verify/retrofit-equivalence.d.ts +5 -0
  255. package/build/utils/utils-verify/retrofit-equivalence.js +4 -2
  256. package/build/utils/utils-verify/stage.d.ts +5 -0
  257. package/build/utils/utils-verify/stage.js +47 -2
  258. package/build/utils/utils-verify/status-once.d.ts +62 -0
  259. package/build/utils/utils-verify/status-once.js +207 -0
  260. package/build/utils/utils-verify/typecheck.d.ts +61 -0
  261. package/build/utils/utils-verify/typecheck.js +338 -0
  262. package/build/utils/utils-verify/verify.d.ts +76 -1
  263. package/build/utils/utils-verify/verify.js +516 -44
  264. package/build/utils/versions.d.ts +3 -3
  265. package/build/utils/versions.js +1 -1
  266. package/build/utils/workspaceAuth.js +107 -37
  267. package/build/workspace/queryParamResolution.js +11 -4
  268. package/build/workspace/workspace.js +7 -7
  269. package/node_modules/playwright/ThirdPartyNotices.txt +19 -19
  270. package/node_modules/playwright/lib/mcp/skyramp/assertTool.js +8 -2
  271. package/node_modules/playwright/lib/mcp/skyramp/common/cssValue.js +87 -0
  272. package/node_modules/playwright/lib/mcp/skyramp/loadTraceTool.js +31 -0
  273. package/node_modules/playwright/lib/mcp/skyramp/skyRampImport.js +3 -0
  274. package/node_modules/playwright/lib/mcp/skyramp/traceRecordingBackend.js +181 -15
  275. package/node_modules/playwright/lib/mcp/test/skyRampExport.js +24 -0
  276. package/node_modules/playwright/lib/transform/babelBundleImpl.js +2353 -190
  277. package/node_modules/playwright/node_modules/playwright-core/ThirdPartyNotices.txt +62 -34
  278. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/.package-lock.json +72 -41
  279. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.js +1 -1
  280. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.mjs +1 -1
  281. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/package.json +2 -2
  282. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/README.md +16 -1
  283. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/index.js +4 -20
  284. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/read.js +17 -17
  285. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/json.js +60 -32
  286. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/raw.js +3 -3
  287. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/text.js +3 -3
  288. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/urlencoded.js +16 -20
  289. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/utils.js +18 -16
  290. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/LICENSE +22 -0
  291. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/README.md +71 -0
  292. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +46 -0
  293. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js +176 -0
  294. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -0
  295. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/package.json +52 -0
  296. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/package.json +23 -10
  297. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/CHANGELOG.md +21 -14
  298. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/isObject.d.ts +1 -1
  299. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/package.json +6 -7
  300. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/tsconfig.json +1 -0
  301. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/index.js +266 -45
  302. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/schemes.js +9 -4
  303. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/utils.js +396 -92
  304. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/package.json +1 -1
  305. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/component-safe-serialization.test.js +163 -0
  306. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/equal.test.js +31 -3
  307. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/fixtures/uri-js-parse.json +2 -0
  308. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
  309. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-validation.test.js +124 -0
  310. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
  311. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
  312. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/parse.test.js +7 -3
  313. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
  314. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
  315. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
  316. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security-normalization.test.js +101 -0
  317. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security.test.js +301 -3
  318. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
  319. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
  320. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/CHANGELOG.md +7 -0
  321. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/index.d.ts +0 -1
  322. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/package.json +4 -5
  323. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/client.js +30 -16
  324. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/utils.js +4 -1
  325. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/context.js +32 -13
  326. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/accepts/accepts.js +36 -2
  327. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/proxy/index.js +4 -0
  328. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/ssg.js +1 -1
  329. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/utils.js +30 -10
  330. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/streaming/sse.js +5 -4
  331. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/hono-base.js +10 -8
  332. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/base.js +44 -23
  333. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/components.js +25 -26
  334. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/context.js +5 -5
  335. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/render.js +2 -0
  336. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/server.js +5 -1
  337. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/hooks/index.js +16 -13
  338. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +3 -3
  339. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/streaming.js +4 -5
  340. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cache/index.js +103 -8
  341. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/compress/index.js +5 -0
  342. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cors/index.js +17 -14
  343. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
  344. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/digest.js +47 -1
  345. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/index.js +7 -4
  346. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +9 -4
  347. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +9 -4
  348. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/language/language.js +10 -6
  349. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +90 -0
  350. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
  351. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +16 -7
  352. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/request.js +20 -13
  353. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
  354. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
  355. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +65 -59
  356. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +71 -128
  357. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +14 -5
  358. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/node.js +47 -70
  359. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
  360. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/utils.js +27 -0
  361. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router.js +1 -1
  362. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/accept.js +1 -1
  363. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/body.js +21 -3
  364. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/cookie.js +4 -3
  365. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
  366. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/stream.js +12 -3
  367. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/url.js +19 -11
  368. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/client.js +30 -16
  369. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/utils.js +4 -1
  370. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/context.js +32 -13
  371. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/accepts/accepts.js +36 -2
  372. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/proxy/index.js +4 -0
  373. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/ssg.js +1 -1
  374. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/utils.js +30 -10
  375. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/streaming/sse.js +5 -4
  376. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/hono-base.js +10 -8
  377. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/base.js +41 -23
  378. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/components.js +26 -27
  379. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/context.js +6 -6
  380. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/render.js +2 -0
  381. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/server.js +5 -1
  382. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/hooks/index.js +16 -13
  383. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/intrinsic-element/components.js +4 -4
  384. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/streaming.js +5 -6
  385. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cache/index.js +103 -8
  386. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/compress/index.js +5 -0
  387. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cors/index.js +17 -14
  388. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/csrf/index.js +1 -1
  389. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/digest.js +47 -1
  390. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/index.js +7 -4
  391. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwk/jwk.js +9 -4
  392. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwt/jwt.js +9 -4
  393. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/language/language.js +10 -6
  394. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/method-not-allowed/index.js +68 -0
  395. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/pretty-json/index.js +3 -1
  396. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +16 -7
  397. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/request.js +21 -14
  398. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/linear-router/router.js +7 -2
  399. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/pattern-router/router.js +3 -9
  400. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/node.js +61 -58
  401. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/router.js +77 -129
  402. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/trie.js +14 -5
  403. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/node.js +47 -70
  404. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/router.js +3 -11
  405. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/utils.js +5 -0
  406. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router.js +1 -1
  407. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +9 -0
  408. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/client/types.d.ts +1 -1
  409. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/context.d.ts +6 -2
  410. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/hono-base.d.ts +4 -3
  411. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/base.d.ts +7 -2
  412. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/index.d.ts +5 -5
  413. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +2 -2
  414. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/server.d.ts +5 -5
  415. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/hooks/index.d.ts +8 -6
  416. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/index.d.ts +5 -5
  417. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cache/index.d.ts +6 -4
  418. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/combine/index.d.ts +1 -1
  419. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cors/index.d.ts +1 -1
  420. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -2
  421. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +2 -0
  422. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +2 -0
  423. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +49 -0
  424. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +3 -3
  425. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +4 -1
  426. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +2 -1
  427. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/node.d.ts +1 -2
  428. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/router.d.ts +0 -1
  429. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/utils.d.ts +1 -0
  430. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router.d.ts +1 -1
  431. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/headers.d.ts +2 -2
  432. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/url.d.ts +5 -0
  433. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/accept.js +1 -1
  434. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/body.js +21 -3
  435. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/cookie.js +5 -4
  436. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/ipaddr.js +5 -3
  437. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/stream.js +12 -3
  438. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/url.js +17 -10
  439. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/package.json +11 -4
  440. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/README.md +173 -143
  441. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.d.ts +11 -0
  442. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.js.map +1 -1
  443. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.d.ts +49 -0
  444. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js +79 -4
  445. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js.map +1 -1
  446. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.d.ts +78 -5
  447. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js +119 -24
  448. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js.map +1 -1
  449. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.d.ts +151 -10
  450. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js +316 -90
  451. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js.map +1 -1
  452. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
  453. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js +45 -2
  454. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js.map +1 -1
  455. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
  456. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js +50 -3
  457. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  458. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/package.json +6 -4
  459. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  460. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/CHANGELOG.md +26 -0
  461. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/README.md +19 -1
  462. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/dist/qs.js +25 -25
  463. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/eslint.config.mjs +1 -1
  464. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/parse.js +16 -6
  465. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/stringify.js +23 -8
  466. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/utils.js +57 -11
  467. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/package.json +8 -7
  468. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/parse.js +419 -0
  469. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/stringify.js +317 -0
  470. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/utils.js +206 -0
  471. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/CHANGELOG.md +10 -0
  472. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/README.md +1 -1
  473. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/index.js +5 -2
  474. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/package.json +10 -10
  475. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/test/index.js +16 -0
  476. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/index.js +8 -18
  477. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/LICENSE +22 -0
  478. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/README.md +71 -0
  479. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.d.ts +46 -0
  480. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js +176 -0
  481. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -0
  482. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/package.json +52 -0
  483. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/package.json +9 -5
  484. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/package-lock.json +72 -41
  485. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.package-lock.json +6 -6
  486. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/README.md +23 -1
  487. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/index.js +265 -86
  488. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/package.json +1 -1
  489. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/README.md +173 -143
  490. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.d.ts +11 -0
  491. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.js.map +1 -1
  492. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.d.ts +49 -0
  493. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js +79 -4
  494. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js.map +1 -1
  495. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.d.ts +78 -5
  496. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js +119 -24
  497. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js.map +1 -1
  498. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.d.ts +151 -10
  499. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js +316 -90
  500. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js.map +1 -1
  501. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
  502. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js +45 -2
  503. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js.map +1 -1
  504. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
  505. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js +50 -3
  506. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  507. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/package.json +6 -4
  508. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/package-lock.json +6 -6
  509. package/node_modules/playwright/node_modules/playwright-core/lib/cli/program.js +18 -9
  510. package/node_modules/playwright/node_modules/playwright-core/lib/mcpBundleImpl/index.js +47 -47
  511. package/node_modules/playwright/node_modules/playwright-core/lib/server/codegen/skyramp/jsonlReader.js +3 -0
  512. package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +42 -0
  513. package/node_modules/playwright/node_modules/playwright-core/lib/utilsBundleImpl/index.js +121 -121
  514. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/{index.B7KbSQcC.js → index.BAkLd5DX.js} +1 -1
  515. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/index.html +1 -1
  516. package/node_modules/playwright/node_modules/playwright-core/package.json +1 -1
  517. package/node_modules/playwright/node_modules/playwright-core/src/cli/program.ts +31 -9
  518. package/node_modules/playwright/node_modules/playwright-core/src/server/codegen/skyramp/jsonlReader.ts +1 -0
  519. package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/recorderRunner.ts +57 -1
  520. package/node_modules/playwright/package.json +2 -2
  521. package/package.json +7 -6
  522. package/plugin/prompts/code-reuse/hand-off.md +30 -0
  523. package/plugin/prompts/generate-tests/generation.md +1 -1
  524. package/plugin/prompts/plan-tests.md +14 -14
  525. package/plugin/prompts/testbot-task1.md +4 -2
  526. package/plugin/skills/enhance-assertions/SKILL.md +25 -0
  527. package/plugin/skills/enhance-assertions/reference/contract.md +51 -0
  528. package/plugin/skills/enhance-assertions/reference/integration.md +58 -0
  529. package/plugin/skills/enhance-assertions/reference/shared-rules.md +220 -0
  530. package/plugin/skills/enhance-assertions/reference/ui.md +373 -0
  531. package/plugin/skills/fix-test-import-errors/SKILL.md +44 -50
  532. package/plugin/skills/validate-assertion-alignment-post-execution/SKILL.md +32 -0
  533. package/plugin/skills/validate-assertion-alignment-post-execution/reference/checks.md +44 -0
  534. package/plugin/skills/validate-assertion-alignment-post-execution/reference/evidence.md +47 -0
  535. package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.d.ts +0 -2
  536. package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.js +0 -29
  537. package/build/prompts/enhance-assertions/integrationAssertionsPrompt.d.ts +0 -2
  538. package/build/prompts/enhance-assertions/integrationAssertionsPrompt.js +0 -36
  539. package/build/prompts/enhance-assertions/sharedAssertionRules.d.ts +0 -16
  540. package/build/prompts/enhance-assertions/sharedAssertionRules.js +0 -284
  541. package/build/prompts/enhance-assertions/uiAssertionsPrompt.d.ts +0 -2
  542. package/build/prompts/enhance-assertions/uiAssertionsPrompt.js +0 -388
  543. package/node_modules/playwright/node_modules/playwright-core/.DS_Store +0 -0
@@ -1,4 +1,4 @@
1
- export declare const SKYRAMP_IMAGE_VERSION = "v1.3.44";
2
- export declare const EXECUTOR_DOCKER_IMAGE = "skyramp/executor:v1.3.44";
3
- export declare const WORKER_DOCKER_IMAGE = "skyramp/worker:v1.3.44";
1
+ export declare const SKYRAMP_IMAGE_VERSION = "v1.3.46";
2
+ export declare const EXECUTOR_DOCKER_IMAGE = "skyramp/executor:v1.3.46";
3
+ export declare const WORKER_DOCKER_IMAGE = "skyramp/worker:v1.3.46";
4
4
  export declare const WORKER_CONTROL_PORT = 35142;
@@ -1,4 +1,4 @@
1
- export const SKYRAMP_IMAGE_VERSION = "v1.3.44";
1
+ export const SKYRAMP_IMAGE_VERSION = "v1.3.46";
2
2
  export const EXECUTOR_DOCKER_IMAGE = `skyramp/executor:${SKYRAMP_IMAGE_VERSION}`;
3
3
  export const WORKER_DOCKER_IMAGE = `skyramp/worker:${SKYRAMP_IMAGE_VERSION}`;
4
4
  // Control port the Skyramp worker listens on (SDK `CONTAINER_PORT`).
@@ -2,7 +2,7 @@ import * as fs from "fs";
2
2
  import path from "path";
3
3
  import yaml from "js-yaml";
4
4
  import { WorkspaceConfigManager } from "../workspace/workspace.js";
5
- import { normalizeBaseMap, normalizeOverrides } from "../workspace/queryParamResolution.js";
5
+ import { normalizeBaseMap, normalizeOverrides, } from "../workspace/queryParamResolution.js";
6
6
  import { logger } from "./logger.js";
7
7
  import { getTestsRepoDir } from "./AnalysisStateManager.js";
8
8
  /**
@@ -21,7 +21,7 @@ import { getTestsRepoDir } from "./AnalysisStateManager.js";
21
21
  */
22
22
  export async function readWorkspaceConfigRaw(workspacePath) {
23
23
  const wsMgr = new WorkspaceConfigManager(workspacePath);
24
- if (!await wsMgr.exists())
24
+ if (!(await wsMgr.exists()))
25
25
  return null;
26
26
  try {
27
27
  return await wsMgr.read();
@@ -80,11 +80,14 @@ function servicesForTestPath(services, repositoryPath, absTestPath, testRepoPath
80
80
  let matches = services.filter((s) => {
81
81
  // The strict schema rejects a non-string testDirectory, but readWorkspaceConfigRaw
82
82
  // falls back to a raw YAML parse and hands one straight through to path.resolve.
83
- if (typeof s?.testDirectory !== "string" || !s.testDirectory || !s.api?.baseUrl)
83
+ if (typeof s?.testDirectory !== "string" ||
84
+ !s.testDirectory ||
85
+ !s.api?.baseUrl)
84
86
  return false;
85
87
  return testDirRoots.some((root) => {
86
88
  const absTestDirectory = path.resolve(root, s.testDirectory);
87
- return absTestPath.startsWith(absTestDirectory + path.sep) || absTestPath === absTestDirectory;
89
+ return (absTestPath.startsWith(absTestDirectory + path.sep) ||
90
+ absTestPath === absTestDirectory);
88
91
  });
89
92
  });
90
93
  if (matches.length > 1) {
@@ -95,7 +98,11 @@ function servicesForTestPath(services, repositoryPath, absTestPath, testRepoPath
95
98
  return matches;
96
99
  }
97
100
  export async function getWorkspaceBaseUrl(repositoryPath, testFile, language, testRepoPath) {
98
- const noMatch = { baseUrl: undefined, dockerNetwork: undefined, candidates: [] };
101
+ const noMatch = {
102
+ baseUrl: undefined,
103
+ dockerNetwork: undefined,
104
+ candidates: [],
105
+ };
99
106
  if (!testFile)
100
107
  return noMatch;
101
108
  try {
@@ -195,32 +202,75 @@ export const KNOWN_AUTH_HEADERS = new Set([
195
202
  */
196
203
  export const AUTH_MIDDLEWARE_PATTERNS = [
197
204
  // Python — FastAPI / Starlette
198
- "HTTPBearer", "OAuth2PasswordBearer", "security.HTTPAuthorizationCredentials",
199
- "Depends(get_current_user)", "Depends(oauth2_scheme)", "jwt_required", "login_required",
205
+ "HTTPBearer",
206
+ "OAuth2PasswordBearer",
207
+ "security.HTTPAuthorizationCredentials",
208
+ "Depends(get_current_user)",
209
+ "Depends(oauth2_scheme)",
210
+ "jwt_required",
211
+ "login_required",
200
212
  // Python — Django / DRF
201
- "IsAuthenticated", "authentication_classes", "permission_classes", "TokenAuthentication",
202
- "SessionAuthentication", "@login_required", "@permission_required",
213
+ "IsAuthenticated",
214
+ "authentication_classes",
215
+ "permission_classes",
216
+ "TokenAuthentication",
217
+ "SessionAuthentication",
218
+ "@login_required",
219
+ "@permission_required",
203
220
  // Node.js — Express / NestJS / general
204
- "passport.authenticate", "passport", "jwt.verify", "verifyToken", "authMiddleware",
205
- "req.headers.authorization", "@UseGuards", "@UseGuards(AuthGuard)",
206
- "EnsureSessionDep", "session middleware",
221
+ "passport.authenticate",
222
+ "passport",
223
+ "jwt.verify",
224
+ "verifyToken",
225
+ "authMiddleware",
226
+ "req.headers.authorization",
227
+ "@UseGuards",
228
+ "@UseGuards(AuthGuard)",
229
+ "EnsureSessionDep",
230
+ "session middleware",
207
231
  // Java / Kotlin — Spring Security
208
- "@PreAuthorize", "@Secured", "@RolesAllowed", "JwtAuthenticationFilter",
209
- "OncePerRequestFilter", "UsernamePasswordAuthenticationToken", "SecurityConfig",
232
+ "@PreAuthorize",
233
+ "@Secured",
234
+ "@RolesAllowed",
235
+ "JwtAuthenticationFilter",
236
+ "OncePerRequestFilter",
237
+ "UsernamePasswordAuthenticationToken",
238
+ "SecurityConfig",
210
239
  // Go — Gin / Chi / Echo / Fiber / gorilla
211
- "ValidateToken", "ParseWithClaims", 'c.GetHeader("Authorization")',
212
- "gin.BasicAuth", "echo.JWT", "fiber.Ctx", "r.Use(", "chi.Middleware",
240
+ "ValidateToken",
241
+ "ParseWithClaims",
242
+ 'c.GetHeader("Authorization")',
243
+ "gin.BasicAuth",
244
+ "echo.JWT",
245
+ "fiber.Ctx",
246
+ "r.Use(",
247
+ "chi.Middleware",
213
248
  // Ruby on Rails
214
- "before_action :authenticate_user!", "authenticate_or_request_with_http_token",
215
- "current_user", "devise",
249
+ "before_action :authenticate_user!",
250
+ "authenticate_or_request_with_http_token",
251
+ "current_user",
252
+ "devise",
216
253
  // PHP — Laravel / Symfony
217
- "Auth::user()", "middleware('auth')", "auth:sanctum", "auth:api", "auth()->user()",
218
- "#[IsGranted]", "access_control", "security.yaml",
254
+ "Auth::user()",
255
+ "middleware('auth')",
256
+ "auth:sanctum",
257
+ "auth:api",
258
+ "auth()->user()",
259
+ "#[IsGranted]",
260
+ "access_control",
261
+ "security.yaml",
219
262
  // Rust — Axum / Actix
220
- "FromRequestParts", "extract::TypedHeader", "Authorization<Bearer>",
263
+ "FromRequestParts",
264
+ "extract::TypedHeader",
265
+ "Authorization<Bearer>",
221
266
  // C# — ASP.NET Core
222
- "[Authorize]", "RequireAuthorization()", "AddJwtBearer()", "services.AddAuthentication()",
223
- "ClaimsPrincipal", "IAuthorizationService", "AuthorizationPolicy",
267
+ "[Authorize]",
268
+ "RequireAuthorization()",
269
+ "AddJwtBearer()",
270
+ "services.AddAuthentication()",
271
+ "ClaimsPrincipal",
272
+ "IAuthorizationService",
273
+ "AuthorizationPolicy",
224
274
  ];
225
275
  /** Rendered as a comma-separated string for use in prompts. */
226
276
  export const AUTH_MIDDLEWARE_PATTERNS_STR = AUTH_MIDDLEWARE_PATTERNS.join(", ");
@@ -271,7 +321,7 @@ export function parseWorkspaceAuthType(value) {
271
321
  oauth2: WorkspaceAuthType.OAuth,
272
322
  oidc: WorkspaceAuthType.OAuth, // OpenID Connect tokens are Bearer
273
323
  "api-key": WorkspaceAuthType.ApiKey, // hyphenated variant
274
- "api_key": WorkspaceAuthType.ApiKey, // underscore variant
324
+ api_key: WorkspaceAuthType.ApiKey, // underscore variant
275
325
  apitoken: WorkspaceAuthType.ApiKey,
276
326
  "x-api-key": WorkspaceAuthType.ApiKey,
277
327
  "session-cookie": WorkspaceAuthType.Cookie,
@@ -344,10 +394,14 @@ export function getAuthScheme(authType, explicitScheme) {
344
394
  if (explicitScheme !== undefined)
345
395
  return explicitScheme;
346
396
  switch (authType) {
347
- case WorkspaceAuthType.Bearer: return "Bearer";
348
- case WorkspaceAuthType.Basic: return "Basic";
349
- case WorkspaceAuthType.Token: return "Token"; // Django REST Framework
350
- case WorkspaceAuthType.OAuth: return "Bearer"; // OAuth 2.0 access tokens use Bearer
397
+ case WorkspaceAuthType.Bearer:
398
+ return "Bearer";
399
+ case WorkspaceAuthType.Basic:
400
+ return "Basic";
401
+ case WorkspaceAuthType.Token:
402
+ return "Token"; // Django REST Framework
403
+ case WorkspaceAuthType.OAuth:
404
+ return "Bearer"; // OAuth 2.0 access tokens use Bearer
351
405
  default:
352
406
  return undefined;
353
407
  }
@@ -358,8 +412,12 @@ export function getAuthScheme(authType, explicitScheme) {
358
412
  * unified file names `api` once per repository (`src/workspace/workspace.ts`). */
359
413
  function servicesByName(rawConfig) {
360
414
  const byName = new Map();
361
- for (const service of Array.isArray(rawConfig?.services) ? rawConfig.services : []) {
362
- const name = typeof service?.serviceName === "string" ? service.serviceName.trim() : "";
415
+ for (const service of Array.isArray(rawConfig?.services)
416
+ ? rawConfig.services
417
+ : []) {
418
+ const name = typeof service?.serviceName === "string"
419
+ ? service.serviceName.trim()
420
+ : "";
363
421
  if (!name)
364
422
  continue;
365
423
  const group = byName.get(name);
@@ -437,7 +495,8 @@ export function findWorkspaceAuthDisagreement(primaryConfig, analysedConfig, pri
437
495
  const field = primaryAuth.authType !== analysedAuth.authType
438
496
  ? "authType"
439
497
  : // A header name is not case-sensitive, so two spellings are one header.
440
- primaryAuth.authHeader.toLowerCase() !== analysedAuth.authHeader.toLowerCase()
498
+ primaryAuth.authHeader.toLowerCase() !==
499
+ analysedAuth.authHeader.toLowerCase()
441
500
  ? "authHeader"
442
501
  : primaryAuth.authScheme !== analysedAuth.authScheme
443
502
  ? "authScheme"
@@ -506,7 +565,9 @@ function declaresAuth(service) {
506
565
  * for all of baseUrl, schemaPath and auth, because a baseUrl from the UI beside the
507
566
  * API's header would call the wrong host with the right credentials. */
508
567
  export function resolveWorkspaceApiService(rawConfig) {
509
- const services = Array.isArray(rawConfig?.services) ? rawConfig.services : [];
568
+ const services = Array.isArray(rawConfig?.services)
569
+ ? rawConfig.services
570
+ : [];
510
571
  return (services.find((service) => declaresAuth(service)) ??
511
572
  services.find((service) => service?.api && typeof service.api === "object") ??
512
573
  services[0]);
@@ -535,7 +596,9 @@ export async function getWorkspaceAuthConfig(repositoryPath, testPath) {
535
596
  const rawConfig = await readWorkspaceConfigRaw(workspaceRoot);
536
597
  if (!rawConfig)
537
598
  return {};
538
- const services = Array.isArray(rawConfig.services) ? rawConfig.services : [];
599
+ const services = Array.isArray(rawConfig.services)
600
+ ? rawConfig.services
601
+ : [];
539
602
  const forTest = testPath
540
603
  ? servicesForTestPath(services, workspaceRoot, path.resolve(workspaceRoot, testPath),
541
604
  // The delivery root when the run configures a test repo: the tests go there
@@ -602,7 +665,8 @@ export async function getWorkspaceScopedQueryParams(repositoryPath) {
602
665
  try {
603
666
  const raw = fs.readFileSync(wsConfigPath, "utf-8");
604
667
  const parsed = yaml.load(raw);
605
- const declaring = (parsed?.services ?? []).filter((s) => s?.api?.defaultQueryParams !== undefined || s?.api?.queryParamOverrides !== undefined);
668
+ const declaring = (parsed?.services ?? []).filter((s) => s?.api?.defaultQueryParams !== undefined ||
669
+ s?.api?.queryParamOverrides !== undefined);
606
670
  const svc = declaring[0];
607
671
  if (!svc)
608
672
  return undefined;
@@ -647,7 +711,10 @@ export function mergeQueryParamsString(existing, defaults) {
647
711
  logger.warning("Skipping workspace defaultQueryParams entry with a non-string value", { key });
648
712
  continue;
649
713
  }
650
- if (key.includes(",") || key.includes("=") || value.includes(",") || value.includes("=")) {
714
+ if (key.includes(",") ||
715
+ key.includes("=") ||
716
+ value.includes(",") ||
717
+ value.includes("=")) {
651
718
  logger.warning("Skipping workspace defaultQueryParams entry with invalid characters", { key });
652
719
  continue;
653
720
  }
@@ -669,7 +736,9 @@ export function mergeQueryParamsJson(existingJson, defaults) {
669
736
  if (existingJson) {
670
737
  try {
671
738
  const candidate = JSON.parse(existingJson);
672
- if (!candidate || typeof candidate !== "object" || Array.isArray(candidate)) {
739
+ if (!candidate ||
740
+ typeof candidate !== "object" ||
741
+ Array.isArray(candidate)) {
673
742
  return existingJson;
674
743
  }
675
744
  parsed = candidate;
@@ -713,7 +782,8 @@ export async function resolveAuthFromWorkspace(repoPath, existingAuthHeader, exi
713
782
  });
714
783
  let authScheme = existingAuthScheme;
715
784
  if (isAuthorizationHeaderName(resolvedHeader)) {
716
- authScheme = authScheme ?? wsAuth.authScheme ?? getAuthScheme(wsAuth.authType);
785
+ authScheme =
786
+ authScheme ?? wsAuth.authScheme ?? getAuthScheme(wsAuth.authType);
717
787
  }
718
788
  return { authHeader: resolvedHeader, authScheme };
719
789
  }
@@ -77,14 +77,19 @@ function isStringMap(v) {
77
77
  export function normalizeOverrides(raw) {
78
78
  if (!Array.isArray(raw)) {
79
79
  if (raw !== undefined) {
80
- logger.warning("Ignoring api.queryParamOverrides — expected a list", { got: typeof raw });
80
+ logger.warning("Ignoring api.queryParamOverrides — expected a list", {
81
+ got: typeof raw,
82
+ });
81
83
  }
82
84
  return [];
83
85
  }
84
86
  const result = [];
85
87
  for (const entry of raw) {
86
88
  const e = entry;
87
- if (!e || typeof e !== "object" || typeof e.pathPattern !== "string" || e.pathPattern.length === 0) {
89
+ if (!e ||
90
+ typeof e !== "object" ||
91
+ typeof e.pathPattern !== "string" ||
92
+ e.pathPattern.length === 0) {
88
93
  logger.warning("Skipping api.queryParamOverrides entry with a missing or empty pathPattern");
89
94
  continue;
90
95
  }
@@ -139,7 +144,8 @@ export function resolveQueryParamsForPath(config, pathname) {
139
144
  if (matches.length === 0)
140
145
  return { ...config.base };
141
146
  matches.sort((a, b) => {
142
- const specDiff = patternSpecificity(b.override.pathPattern) - patternSpecificity(a.override.pathPattern);
147
+ const specDiff = patternSpecificity(b.override.pathPattern) -
148
+ patternSpecificity(a.override.pathPattern);
143
149
  if (specDiff !== 0)
144
150
  return specDiff;
145
151
  // Known limitation (Finding 5, SKYR-4127 final review): at equal literal-
@@ -155,7 +161,8 @@ export function resolveQueryParamsForPath(config, pathname) {
155
161
  });
156
162
  const [winner, runnerUp] = matches;
157
163
  if (runnerUp &&
158
- patternSpecificity(winner.override.pathPattern) === patternSpecificity(runnerUp.override.pathPattern) &&
164
+ patternSpecificity(winner.override.pathPattern) ===
165
+ patternSpecificity(runnerUp.override.pathPattern) &&
159
166
  winner.override.pathPattern.length === runnerUp.override.pathPattern.length) {
160
167
  logger.warning("Ambiguous api.queryParamOverrides — two equally specific patterns match this path; using the first", {
161
168
  pathname,
@@ -16,6 +16,7 @@ import yaml from "js-yaml";
16
16
  import { z } from "zod";
17
17
  import { SUPPORTED_FRAMEWORKS } from "./frameworks.js";
18
18
  import { runtimeEnvironmentInputSchema } from "../types/TestTypes.js";
19
+ import { parseOwnerRepo } from "../utils/repositorySlug.js";
19
20
  const execFileAsync = promisify(execFile);
20
21
  // ---------------------------------------------------------------------------
21
22
  // Constants
@@ -80,10 +81,12 @@ export const serviceSchema = z
80
81
  * through verbatim and is case-sensitive; a near miss such as
81
82
  * `ENV.VAR` is treated as an ordinary literal. */
82
83
  queryParamOverrides: z
83
- .array(z.object({
84
+ .array(z
85
+ .object({
84
86
  pathPattern: z.string().min(1),
85
87
  values: z.record(z.string()),
86
- }).strict())
88
+ })
89
+ .strict())
87
90
  .optional(),
88
91
  baseUrl: z.string().optional(),
89
92
  /** SUT serves self-signed TLS (e.g. a kind kube-apiserver) — generated
@@ -261,11 +264,8 @@ async function detectRepoInfo(dirPath, requireGit = true) {
261
264
  catch {
262
265
  // Git repo exists but no remote configured - this is OK
263
266
  }
264
- if (repoUrl) {
265
- const match = repoUrl.match(/[:/]([^/]+\/[^/]+?)(?:\.git)?$/);
266
- if (match)
267
- repoName = match[1];
268
- }
267
+ if (repoUrl)
268
+ repoName = parseOwnerRepo(repoUrl) ?? repoName;
269
269
  if (!repoName) {
270
270
  repoName = path.basename(cwd);
271
271
  }
@@ -81,12 +81,12 @@ This project incorporates components from the projects listed below. The origina
81
81
  - ansi-styles@5.2.0 (https://github.com/chalk/ansi-styles)
82
82
  - anymatch@3.1.3 (https://github.com/micromatch/anymatch)
83
83
  - bail@2.0.2 (https://github.com/wooorm/bail)
84
- - baseline-browser-mapping@2.10.43 (https://github.com/web-platform-dx/baseline-browser-mapping)
84
+ - baseline-browser-mapping@2.11.21 (https://github.com/web-platform-dx/baseline-browser-mapping)
85
85
  - binary-extensions@2.2.0 (https://github.com/sindresorhus/binary-extensions)
86
86
  - braces@3.0.3 (https://github.com/micromatch/braces)
87
- - browserslist@4.28.6 (https://github.com/browserslist/browserslist)
87
+ - browserslist@4.28.9 (https://github.com/browserslist/browserslist)
88
88
  - buffer-from@1.1.2 (https://github.com/LinusU/buffer-from)
89
- - caniuse-lite@1.0.30001805 (https://github.com/browserslist/caniuse-lite)
89
+ - caniuse-lite@1.0.30001810 (https://github.com/browserslist/caniuse-lite)
90
90
  - chalk@4.1.2 (https://github.com/chalk/chalk)
91
91
  - character-entities@2.0.2 (https://github.com/wooorm/character-entities)
92
92
  - chokidar@3.6.0 (https://github.com/paulmillr/chokidar)
@@ -100,7 +100,7 @@ This project incorporates components from the projects listed below. The origina
100
100
  - decode-named-character-reference@1.2.0 (https://github.com/wooorm/decode-named-character-reference)
101
101
  - dequal@2.0.3 (https://github.com/lukeed/dequal)
102
102
  - devlop@1.1.0 (https://github.com/wooorm/devlop)
103
- - electron-to-chromium@1.5.389 (https://github.com/Kilian/electron-to-chromium)
103
+ - electron-to-chromium@1.5.423 (https://github.com/Kilian/electron-to-chromium)
104
104
  - enquirer@2.3.6 (https://github.com/enquirer/enquirer)
105
105
  - escalade@3.2.0 (https://github.com/lukeed/escalade)
106
106
  - escape-string-regexp@2.0.0 (https://github.com/sindresorhus/escape-string-regexp)
@@ -152,7 +152,7 @@ This project incorporates components from the projects listed below. The origina
152
152
  - micromark@4.0.2 (https://github.com/micromark/micromark/tree/main/packages/micromark)
153
153
  - micromatch@4.0.8 (https://github.com/micromatch/micromatch)
154
154
  - ms@2.1.3 (https://github.com/vercel/ms)
155
- - node-releases@2.0.51 (https://github.com/chicoxyzzy/node-releases)
155
+ - node-releases@2.0.54 (https://github.com/chicoxyzzy/node-releases)
156
156
  - normalize-path@3.0.0 (https://github.com/jonschlinkert/normalize-path)
157
157
  - picocolors@1.1.1 (https://github.com/alexeyraspopov/picocolors)
158
158
  - picomatch@2.3.2 (https://github.com/micromatch/picomatch)
@@ -173,7 +173,7 @@ This project incorporates components from the projects listed below. The origina
173
173
  - undici-types@7.16.0 (https://github.com/nodejs/undici)
174
174
  - unified@11.0.5 (https://github.com/unifiedjs/unified)
175
175
  - unist-util-stringify-position@4.0.0 (https://github.com/syntax-tree/unist-util-stringify-position)
176
- - update-browserslist-db@1.2.3 (https://github.com/browserslist/update-db)
176
+ - update-browserslist-db@1.3.2 (https://github.com/browserslist/update-db)
177
177
  - vfile-message@4.0.3 (https://github.com/vfile/vfile-message)
178
178
  - vfile@6.0.3 (https://github.com/vfile/vfile)
179
179
  - yallist@3.1.1 (https://github.com/isaacs/yallist)
@@ -2198,7 +2198,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2198
2198
  =========================================
2199
2199
  END OF bail@2.0.2 AND INFORMATION
2200
2200
 
2201
- %% baseline-browser-mapping@2.10.43 NOTICES AND INFORMATION BEGIN HERE
2201
+ %% baseline-browser-mapping@2.11.21 NOTICES AND INFORMATION BEGIN HERE
2202
2202
  =========================================
2203
2203
  Apache License
2204
2204
  Version 2.0, January 2004
@@ -2402,7 +2402,7 @@ Apache License
2402
2402
  See the License for the specific language governing permissions and
2403
2403
  limitations under the License.
2404
2404
  =========================================
2405
- END OF baseline-browser-mapping@2.10.43 AND INFORMATION
2405
+ END OF baseline-browser-mapping@2.11.21 AND INFORMATION
2406
2406
 
2407
2407
  %% binary-extensions@2.2.0 NOTICES AND INFORMATION BEGIN HERE
2408
2408
  =========================================
@@ -2444,7 +2444,7 @@ THE SOFTWARE.
2444
2444
  =========================================
2445
2445
  END OF braces@3.0.3 AND INFORMATION
2446
2446
 
2447
- %% browserslist@4.28.6 NOTICES AND INFORMATION BEGIN HERE
2447
+ %% browserslist@4.28.9 NOTICES AND INFORMATION BEGIN HERE
2448
2448
  =========================================
2449
2449
  The MIT License (MIT)
2450
2450
 
@@ -2467,7 +2467,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
2467
2467
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2468
2468
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2469
2469
  =========================================
2470
- END OF browserslist@4.28.6 AND INFORMATION
2470
+ END OF browserslist@4.28.9 AND INFORMATION
2471
2471
 
2472
2472
  %% buffer-from@1.1.2 NOTICES AND INFORMATION BEGIN HERE
2473
2473
  =========================================
@@ -2495,7 +2495,7 @@ SOFTWARE.
2495
2495
  =========================================
2496
2496
  END OF buffer-from@1.1.2 AND INFORMATION
2497
2497
 
2498
- %% caniuse-lite@1.0.30001805 NOTICES AND INFORMATION BEGIN HERE
2498
+ %% caniuse-lite@1.0.30001810 NOTICES AND INFORMATION BEGIN HERE
2499
2499
  =========================================
2500
2500
  Attribution 4.0 International
2501
2501
 
@@ -2893,7 +2893,7 @@ public licenses.
2893
2893
 
2894
2894
  Creative Commons may be contacted at creativecommons.org.
2895
2895
  =========================================
2896
- END OF caniuse-lite@1.0.30001805 AND INFORMATION
2896
+ END OF caniuse-lite@1.0.30001810 AND INFORMATION
2897
2897
 
2898
2898
  %% chalk@4.1.2 NOTICES AND INFORMATION BEGIN HERE
2899
2899
  =========================================
@@ -3208,7 +3208,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3208
3208
  =========================================
3209
3209
  END OF devlop@1.1.0 AND INFORMATION
3210
3210
 
3211
- %% electron-to-chromium@1.5.389 NOTICES AND INFORMATION BEGIN HERE
3211
+ %% electron-to-chromium@1.5.423 NOTICES AND INFORMATION BEGIN HERE
3212
3212
  =========================================
3213
3213
  Copyright 2018 Kilian Valkhof
3214
3214
 
@@ -3216,7 +3216,7 @@ Permission to use, copy, modify, and/or distribute this software for any purpose
3216
3216
 
3217
3217
  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3218
3218
  =========================================
3219
- END OF electron-to-chromium@1.5.389 AND INFORMATION
3219
+ END OF electron-to-chromium@1.5.423 AND INFORMATION
3220
3220
 
3221
3221
  %% enquirer@2.3.6 NOTICES AND INFORMATION BEGIN HERE
3222
3222
  =========================================
@@ -4472,7 +4472,7 @@ SOFTWARE.
4472
4472
  =========================================
4473
4473
  END OF ms@2.1.3 AND INFORMATION
4474
4474
 
4475
- %% node-releases@2.0.51 NOTICES AND INFORMATION BEGIN HERE
4475
+ %% node-releases@2.0.54 NOTICES AND INFORMATION BEGIN HERE
4476
4476
  =========================================
4477
4477
  The MIT License
4478
4478
 
@@ -4496,7 +4496,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4496
4496
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
4497
4497
  THE SOFTWARE.
4498
4498
  =========================================
4499
- END OF node-releases@2.0.51 AND INFORMATION
4499
+ END OF node-releases@2.0.54 AND INFORMATION
4500
4500
 
4501
4501
  %% normalize-path@3.0.0 NOTICES AND INFORMATION BEGIN HERE
4502
4502
  =========================================
@@ -4990,11 +4990,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4990
4990
  =========================================
4991
4991
  END OF unist-util-stringify-position@4.0.0 AND INFORMATION
4992
4992
 
4993
- %% update-browserslist-db@1.2.3 NOTICES AND INFORMATION BEGIN HERE
4993
+ %% update-browserslist-db@1.3.2 NOTICES AND INFORMATION BEGIN HERE
4994
4994
  =========================================
4995
4995
  The MIT License (MIT)
4996
4996
 
4997
- Copyright 2022 Andrey Sitnik <andrey@sitnik.ru> and other contributors
4997
+ Copyright 2022 Andrey Sitnik <andrey@sitnik.es> and other contributors
4998
4998
 
4999
4999
  Permission is hereby granted, free of charge, to any person obtaining a copy of
5000
5000
  this software and associated documentation files (the "Software"), to deal in
@@ -5013,7 +5013,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
5013
5013
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
5014
5014
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5015
5015
  =========================================
5016
- END OF update-browserslist-db@1.2.3 AND INFORMATION
5016
+ END OF update-browserslist-db@1.3.2 AND INFORMATION
5017
5017
 
5018
5018
  %% vfile-message@4.0.3 NOTICES AND INFORMATION BEGIN HERE
5019
5019
  =========================================
@@ -36,13 +36,19 @@ const assertToolSchema = {
36
36
  '"visible" checks the element is visible,',
37
37
  `"count" counts elements sharing the referenced element's role (or exact text)`,
38
38
  "across the page, e.g. ref one option of an open dropdown to assert the number of options.",
39
+ '"css" checks a computed style property (property "background-color", expected "rgb(37, 99, 235)"; a 3- or 6-digit #hex colour is accepted and recorded as the computed rgb),',
40
+ '"class" checks the element carries a class ("expected" = one class name),',
41
+ '"attribute" checks an attribute value ("property" = the attribute name, "expected" = its value).',
42
+ "Use css/class/attribute for a colour, style or class change the PR makes: a screenshot baseline created on this run cannot fail on it.",
43
+ 'css/class/attribute are read with the pointer moved OFF the element, so a value that exists only on hover is never recorded; unlike "count", they cannot be asserted on an option of a menu that closes when the pointer leaves it.',
39
44
  "To assert an element is absent or not visible, use `browser_assert_hidden`."
40
45
  ].join(" "),
41
46
  inputSchema: import_mcpBundle.z.object({
42
- type: import_mcpBundle.z.enum(["text", "value", "checked", "disabled", "visible", "count"]).describe(`Type of assertion: "text" for text content, "value" for input field value, "checked" for checkbox/radio state, "disabled" for disabled/enabled state ("false" asserts the element is enabled), "visible" for element visibility, "count" for the number of elements with the referenced element's role`),
47
+ type: import_mcpBundle.z.enum(["text", "value", "checked", "disabled", "visible", "count", "css", "class", "attribute"]).describe(`Type of assertion: "text" for text content, "value" for input field value, "checked" for checkbox/radio state, "disabled" for disabled/enabled state ("false" asserts the element is enabled), "visible" for element visibility, "count" for the number of elements with the referenced element's role, "css" for a computed style property, "class" for a class the element carries, "attribute" for an attribute value`),
43
48
  ref: import_mcpBundle.z.string().describe('Element reference from the latest snapshot. For "count", reference one exemplar element (e.g. one option in an open dropdown).'),
44
49
  element: import_mcpBundle.z.string().describe("Human-readable description of the element being asserted"),
45
- expected: import_mcpBundle.z.string().optional().describe('Expected text or value ("text"/"value"), "true"/"false" ("checked"/"disabled", default "true"; "disabled" with "false" asserts enabled), the expected element count ("count"). Not used for "visible".'),
50
+ property: import_mcpBundle.z.string().optional().describe('For "css": the CSS property (e.g. "background-color", "flex-direction"). For "attribute": the attribute name (e.g. "aria-expanded", "data-state"). Not used by other types.'),
51
+ expected: import_mcpBundle.z.string().optional().describe('Expected text or value ("text"/"value"), "true"/"false" ("checked"/"disabled", default "true"; "disabled" with "false" asserts enabled), the expected element count ("count"), the computed style value ("css"; a 3- or 6-digit #hex colour is converted to rgb), one class name ("class"), the attribute value ("attribute"). Not used for "visible".'),
46
52
  substring: import_mcpBundle.z.boolean().optional().default(true).describe("For text assertions: match as substring (true) or exact match (false)")
47
53
  }),
48
54
  type: "readOnly"
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cssValue_exports = {};
20
+ __export(cssValue_exports, {
21
+ normalizeCssValue: () => normalizeCssValue
22
+ });
23
+ module.exports = __toCommonJS(cssValue_exports);
24
+ const CASE_SENSITIVE_IDENT_PROPERTIES = /* @__PURE__ */ new Set([
25
+ "animation",
26
+ "animation-name",
27
+ "animation-timeline",
28
+ "transition",
29
+ "transition-property",
30
+ "will-change",
31
+ "grid",
32
+ "grid-area",
33
+ "grid-row",
34
+ "grid-column",
35
+ "grid-row-start",
36
+ "grid-row-end",
37
+ "grid-column-start",
38
+ "grid-column-end",
39
+ "grid-template-areas",
40
+ "grid-template-rows",
41
+ "grid-template-columns",
42
+ "grid-template",
43
+ "counter-increment",
44
+ "counter-reset",
45
+ "counter-set",
46
+ "list-style",
47
+ "list-style-type",
48
+ "container-name",
49
+ "container",
50
+ "view-transition-name",
51
+ "view-transition-class",
52
+ "anchor-name",
53
+ "position-anchor",
54
+ "position-try",
55
+ "position-try-fallbacks",
56
+ "font-palette",
57
+ "scroll-timeline",
58
+ "scroll-timeline-name",
59
+ "view-timeline",
60
+ "view-timeline-name",
61
+ "timeline-scope",
62
+ "page"
63
+ ]);
64
+ function foldCaseKeepingDashedIdents(value) {
65
+ return value.replace(/[^\s,()]+/g, (token) => token.startsWith("--") ? token : token.toLowerCase());
66
+ }
67
+ function normalizeCssValue(value, property) {
68
+ const trimmed = value.trim();
69
+ if (/["']|url\(|var\(/i.test(trimmed))
70
+ return trimmed;
71
+ const prop = property?.trim().toLowerCase();
72
+ if (prop && (prop.startsWith("--") || CASE_SENSITIVE_IDENT_PROPERTIES.has(prop)))
73
+ return trimmed.replace(/\s+/g, " ").replace(/,\s*/g, ", ");
74
+ const v = foldCaseKeepingDashedIdents(trimmed.replace(/\s+/g, " "));
75
+ const hex = v.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/);
76
+ if (!hex)
77
+ return v.replace(/,\s*/g, ", ");
78
+ const h = hex[1].length === 3 ? hex[1].split("").map((c) => c + c).join("") : hex[1];
79
+ const r = parseInt(h.slice(0, 2), 16);
80
+ const g = parseInt(h.slice(2, 4), 16);
81
+ const b = parseInt(h.slice(4, 6), 16);
82
+ return `rgb(${r}, ${g}, ${b})`;
83
+ }
84
+ // Annotate the CommonJS export names for ESM import in node:
85
+ 0 && (module.exports = {
86
+ normalizeCssValue
87
+ });