@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.
- package/build/adapters/jestAdapter.js +23 -5
- package/build/adapters/mochaAdapter.js +7 -1
- package/build/adapters/playwrightAdapter.js +3 -1
- package/build/adapters/pytestAdapter.js +14 -3
- package/build/commands/localDevTestChangesCommand.js +1 -0
- package/build/commands/recommendTestsAndExecuteCommand.js +5 -6
- package/build/commands/testThisEndpointCommand.js +16 -4
- package/build/index.js +34 -4
- package/build/playwright/blueprintDigest.js +28 -7
- package/build/playwright/registerPlaywrightTools.js +33 -28
- package/build/playwright/traceRecordingPrompt.js +9 -2
- package/build/prompts/code-reuse.js +95 -29
- package/build/prompts/fix-error-prompt.d.ts +9 -1
- package/build/prompts/fix-error-prompt.js +31 -28
- package/build/prompts/local-dev/local-dev-plan.d.ts +3 -0
- package/build/prompts/local-dev/local-dev-plan.js +3 -1
- package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
- package/build/prompts/local-dev/local-dev-prompts.js +30 -3
- package/build/prompts/modularization/integration-test-modularization.js +13 -6
- package/build/prompts/modularization/ui-test-modularization.js +1 -1
- package/build/prompts/personas.js +1 -1
- package/build/prompts/pom-aware-code-reuse.js +7 -9
- package/build/prompts/reuse-hand-off.d.ts +64 -0
- package/build/prompts/reuse-hand-off.js +130 -0
- package/build/prompts/shared-helper-policy.d.ts +88 -2
- package/build/prompts/shared-helper-policy.js +145 -11
- package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.js +1 -1
- package/build/prompts/sut-setup/modes/dockerComposePrompt.js +1 -1
- package/build/prompts/sut-setup/shared.d.ts +4 -1
- package/build/prompts/sut-setup/shared.js +2 -2
- package/build/prompts/test-maintenance/actionsInstructions.d.ts +19 -11
- package/build/prompts/test-maintenance/actionsInstructions.js +47 -26
- package/build/prompts/test-maintenance/drift-analysis-prompt.js +3 -2
- package/build/prompts/test-maintenance/driftAnalysisSections.js +5 -3
- package/build/prompts/test-maintenance/driftAnalysisShared.js +4 -2
- package/build/prompts/test-maintenance/uiDriftAnalysisSections.js +7 -4
- package/build/prompts/test-recommendation/recommendationSections.js +19 -8
- package/build/prompts/test-recommendation/registerRecommendTestsPrompt.js +5 -2
- package/build/prompts/test-recommendation/test-recommendation-prompt.js +10 -7
- package/build/prompts/testbot/testbot-prompts.js +123 -55
- package/build/recommendation/answers.js +18 -9
- package/build/recommendation/pullRequestText.js +1 -1
- package/build/recommendation/registerPlan.js +31 -17
- package/build/recommendation/subjectStep.d.ts +8 -10
- package/build/recommendation/subjectStep.js +17 -16
- package/build/recommendation/types.d.ts +71 -17
- package/build/recommendation/types.js +9 -15
- package/build/recommendation/verifierContracts.d.ts +7 -3
- package/build/recommendation/verifierContracts.js +8 -4
- package/build/recommendation/verifiers/changedFile.js +11 -13
- package/build/recommendation/verifiers/citedPath.d.ts +8 -0
- package/build/recommendation/verifiers/citedPath.js +16 -2
- package/build/recommendation/verifiers/coverage.d.ts +2 -2
- package/build/recommendation/verifiers/coverage.js +190 -134
- package/build/recommendation/verifiers/defects.js +56 -16
- package/build/recommendation/verifiers/deliveredMatchesPlan.d.ts +7 -1
- package/build/recommendation/verifiers/deliveredMatchesPlan.js +28 -14
- package/build/recommendation/verifiers/endpointGrounded.js +14 -8
- package/build/recommendation/verifiers/existingCoverage.d.ts +6 -0
- package/build/recommendation/verifiers/existingCoverage.js +30 -21
- package/build/recommendation/verifiers/expectedOutcome.js +17 -8
- package/build/recommendation/verifiers/expectedValueSourced.js +54 -43
- package/build/recommendation/verifiers/issueTraceability.d.ts +5 -0
- package/build/recommendation/verifiers/issueTraceability.js +64 -7
- package/build/recommendation/verifiers/removedElementGuarded.js +19 -11
- package/build/recommendation/verifiers/reportedCategory.js +9 -4
- package/build/recommendation/verifiers/requirementSourced.js +34 -21
- package/build/recommendation/verifiers/screenRoute.js +15 -10
- package/build/recommendation/verifiers/statedDifference.js +15 -8
- package/build/recommendation/verifiers/uiElementGrounded.js +50 -16
- package/build/resources/analysisResources.js +7 -3
- package/build/resources/progressResource.js +4 -2
- package/build/resources/sutSetupResource.js +20 -2
- package/build/resources/testbotResource.js +19 -1
- package/build/services/AnalyticsService.js +3 -1
- package/build/services/ScenarioGenerationService.js +5 -5
- package/build/services/TestDiscoveryService.js +21 -5
- package/build/services/TestExecutionService.js +63 -21
- package/build/services/TestGenerationService.d.ts +1 -1
- package/build/services/TestGenerationService.js +43 -24
- package/build/skills/enhanceAssertionsSkill.d.ts +45 -0
- package/build/skills/enhanceAssertionsSkill.js +103 -0
- package/build/skills/fixTestImportErrorsSkill.d.ts +2 -2
- package/build/skills/fixTestImportErrorsSkill.js +2 -2
- package/build/skills/skillFiles.d.ts +38 -0
- package/build/skills/skillFiles.js +94 -0
- package/build/skills/validateAssertionAlignmentSkill.d.ts +34 -0
- package/build/skills/validateAssertionAlignmentSkill.js +59 -0
- package/build/tool-phases.js +4 -0
- package/build/tools/auth/loginTool.js +3 -1
- package/build/tools/auth/logoutTool.js +3 -1
- package/build/tools/code-refactor/alignAssertionsTool.d.ts +2 -0
- package/build/tools/code-refactor/alignAssertionsTool.js +51 -0
- package/build/tools/code-refactor/assertion-state.d.ts +1 -1
- package/build/tools/code-refactor/assertion-state.js +1 -1
- package/build/tools/code-refactor/assertionOperations.d.ts +44 -0
- package/build/tools/code-refactor/assertionOperations.js +82 -0
- package/build/tools/code-refactor/assertionSkillTools.d.ts +3 -0
- package/build/tools/code-refactor/assertionSkillTools.js +86 -0
- package/build/tools/code-refactor/codeReuseTool.js +27 -3
- package/build/tools/code-refactor/enhanceAssertionsTool.js +19 -83
- package/build/tools/code-refactor/gate-markers.d.ts +51 -0
- package/build/tools/code-refactor/gate-markers.js +95 -0
- package/build/tools/code-refactor/retrofit-state.d.ts +3 -1
- package/build/tools/code-refactor/retrofit-state.js +44 -2
- package/build/tools/code-refactor/reuse-outcome.d.ts +23 -1
- package/build/tools/code-refactor/reuse-outcome.js +36 -13
- package/build/tools/code-refactor/reuse-state.d.ts +90 -16
- package/build/tools/code-refactor/reuse-state.js +191 -61
- package/build/tools/code-refactor/utils-verify-gates.d.ts +4 -0
- package/build/tools/code-refactor/utils-verify-gates.js +252 -27
- package/build/tools/code-refactor/verify-gates.d.ts +15 -1
- package/build/tools/code-refactor/verify-gates.js +36 -4
- package/build/tools/enrichTestWithMocksTool.d.ts +1 -1
- package/build/tools/enrichTestWithMocksTool.js +9 -5
- package/build/tools/executeSkyrampTestTool.d.ts +22 -1
- package/build/tools/executeSkyrampTestTool.js +571 -271
- package/build/tools/execution-video-state.js +1 -1
- package/build/tools/fixErrorTool.js +5 -6
- package/build/tools/generate-tests/batchMockGenerationTool.js +1 -1
- package/build/tools/generate-tests/generateBatchScenarioRestTool.js +114 -73
- package/build/tools/generate-tests/generateContractRestTool.js +34 -16
- package/build/tools/generate-tests/generateE2ERestTool.d.ts +1 -0
- package/build/tools/generate-tests/generateE2ERestTool.js +9 -1
- package/build/tools/generate-tests/generateIntegrationRestTool.js +22 -7
- package/build/tools/generate-tests/generateMockRestTool.js +3 -1
- package/build/tools/generate-tests/generateUIRestTool.d.ts +2 -0
- package/build/tools/generate-tests/generateUIRestTool.js +11 -2
- package/build/tools/generate-tests/loadTestSchema.js +1 -3
- package/build/tools/generate-tests/planGuard.js +6 -3
- package/build/tools/generate-tests/scenarioFileIdentity.js +4 -1
- package/build/tools/generate-tests/scenarioLint.js +17 -5
- package/build/tools/generate-tests/trace-reuse-guard.js +5 -2
- package/build/tools/generateEnrichedIntegrationTestTool.js +9 -3
- package/build/tools/one-click/oneClickTool.js +3 -1
- package/build/tools/preflightMockCheckTool.js +23 -7
- package/build/tools/runExistingTestsTool.d.ts +1 -1
- package/build/tools/runExistingTestsTool.js +43 -21
- package/build/tools/submitReportTool.d.ts +51 -12
- package/build/tools/submitReportTool.js +860 -161
- package/build/tools/test-management/actionsTool.js +210 -51
- package/build/tools/test-management/analyzeChangesTool.d.ts +4 -5
- package/build/tools/test-management/analyzeChangesTool.js +127 -68
- package/build/tools/test-management/analyzeTestHealthTool.js +35 -13
- package/build/tools/test-management/registerTestPlanTool.d.ts +44 -34
- package/build/tools/test-management/registerTestPlanTool.js +255 -111
- package/build/tools/test-management/resolveScreenTool.js +33 -9
- package/build/tools/trace/startTraceCollectionTool.js +3 -1
- package/build/tools/trace/stopTraceCollectionTool.js +41 -5
- package/build/tools/verifyTestDependenciesTool.d.ts +3 -0
- package/build/tools/verifyTestDependenciesTool.js +54 -0
- package/build/tools/workspace/initScanWorkspaceTool.js +9 -3
- package/build/tools/workspace/initializeWorkspaceTool.js +3 -1
- package/build/types/AssertionOutcome.d.ts +1 -1
- package/build/types/EnhanceType.d.ts +6 -0
- package/build/types/EnhanceType.js +1 -0
- package/build/types/ExternalTestExecution.d.ts +2 -2
- package/build/types/RepositoryAnalysis.d.ts +0 -40
- package/build/types/ReuseOutcome.d.ts +96 -4
- package/build/types/ReuseOutcome.js +16 -0
- package/build/types/StepMethod.js +20 -6
- package/build/types/TestAnalysis.d.ts +10 -2
- package/build/types/TestExecution.d.ts +45 -0
- package/build/types/TestRecommendation.d.ts +1 -1
- package/build/types/TestRecommendation.js +4 -1
- package/build/types/TestTypes.d.ts +13 -0
- package/build/types/TestTypes.js +34 -3
- package/build/types/TestbotPromptOptions.d.ts +9 -1
- package/build/types/TestbotReport.d.ts +45 -9
- package/build/utils/AnalysisStateManager.d.ts +137 -27
- package/build/utils/AnalysisStateManager.js +227 -43
- package/build/utils/assertion-verify/api-shared-lints.js +34 -16
- package/build/utils/assertion-verify/metrics.js +39 -6
- package/build/utils/assertion-verify/ui-lints.js +4 -2
- package/build/utils/branchDiff.js +47 -12
- package/build/utils/canonicalJson.js +3 -1
- package/build/utils/dartRouteExtractor.js +36 -7
- package/build/utils/fixAttempts.d.ts +26 -0
- package/build/utils/fixAttempts.js +109 -0
- package/build/utils/frontendSelectors.js +23 -4
- package/build/utils/generatedTestRecord.d.ts +19 -0
- package/build/utils/generatedTestRecord.js +61 -0
- package/build/utils/gitStaging.js +7 -2
- package/build/utils/initAgent.js +26 -6
- package/build/utils/language-helper.js +39 -45
- package/build/utils/pathMatching.js +2 -1
- package/build/utils/pathSignatures.js +6 -2
- package/build/utils/planMatchKeys.d.ts +2 -2
- package/build/utils/planMatchKeys.js +20 -14
- package/build/utils/pom-catalog-parse.js +7 -2
- package/build/utils/pom-scope/import-expansion.js +6 -1
- package/build/utils/pom-scope/index.js +50 -12
- package/build/utils/pom-scope/scoring.js +13 -3
- package/build/utils/pom-scope/selector-extractor.js +16 -3
- package/build/utils/pom-scope/strip.d.ts +8 -0
- package/build/utils/pom-scope/strip.js +238 -0
- package/build/utils/pom-scope/testIdDiscovery.js +14 -2
- package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.d.ts +1 -1
- package/build/utils/pom-verify/__fixtures__/af-style/asset-list.page.js +4 -2
- package/build/utils/pom-verify/__fixtures__/af-style/report.iframe.page.js +3 -1
- package/build/utils/pom-verify/__fixtures__/af-style/workflow-footer.page.js +3 -1
- package/build/utils/pom-verify/bindings.js +5 -1
- package/build/utils/pom-verify/calls.js +9 -2
- package/build/utils/pom-verify/verify.js +27 -5
- package/build/utils/pr-comment-parser.js +20 -7
- package/build/utils/proxy-terminal.d.ts +19 -1
- package/build/utils/proxy-terminal.js +346 -21
- package/build/utils/removedUiElements.js +1 -1
- package/build/utils/reportLanguage.js +35 -7
- package/build/utils/reportVerification.d.ts +14 -8
- package/build/utils/reportVerification.js +19 -19
- package/build/utils/repositorySlug.d.ts +32 -0
- package/build/utils/repositorySlug.js +77 -0
- package/build/utils/reuseRouting.js +6 -2
- package/build/utils/runSerialized.d.ts +3 -0
- package/build/utils/runSerialized.js +39 -0
- package/build/utils/screenRoutes.js +74 -18
- package/build/utils/sourceRouteExtractor.js +13 -6
- package/build/utils/telemetry.d.ts +1 -0
- package/build/utils/telemetry.js +8 -5
- package/build/utils/testDependencyPolicy.d.ts +9 -0
- package/build/utils/testDependencyPolicy.js +788 -0
- package/build/utils/testExecutionRecord.d.ts +90 -0
- package/build/utils/testExecutionRecord.js +267 -0
- package/build/utils/testFileClassification.js +3 -1
- package/build/utils/trace-parser.js +62 -14
- package/build/utils/urlPath.js +3 -1
- package/build/utils/utils-verify/action-key.d.ts +4 -0
- package/build/utils/utils-verify/action-key.js +2 -2
- package/build/utils/utils-verify/allow.d.ts +122 -3
- package/build/utils/utils-verify/allow.js +146 -21
- package/build/utils/utils-verify/body-reach.d.ts +120 -0
- package/build/utils/utils-verify/body-reach.js +335 -0
- package/build/utils/utils-verify/call-sites.d.ts +6 -1
- package/build/utils/utils-verify/call-sites.js +72 -8
- package/build/utils/utils-verify/delivered-imports.d.ts +43 -0
- package/build/utils/utils-verify/delivered-imports.js +84 -0
- package/build/utils/utils-verify/fixed-sleep.d.ts +96 -0
- package/build/utils/utils-verify/fixed-sleep.js +461 -0
- package/build/utils/utils-verify/in-house.d.ts +93 -0
- package/build/utils/utils-verify/in-house.js +719 -0
- package/build/utils/utils-verify/incumbent.d.ts +3 -0
- package/build/utils/utils-verify/incumbent.js +75 -0
- package/build/utils/utils-verify/index.d.ts +1 -0
- package/build/utils/utils-verify/index.js +1 -0
- package/build/utils/utils-verify/language-spec.d.ts +26 -10
- package/build/utils/utils-verify/language-spec.js +217 -20
- package/build/utils/utils-verify/locate.d.ts +26 -0
- package/build/utils/utils-verify/locate.js +125 -23
- package/build/utils/utils-verify/module-name.d.ts +40 -0
- package/build/utils/utils-verify/module-name.js +98 -0
- package/build/utils/utils-verify/parse.d.ts +46 -6
- package/build/utils/utils-verify/parse.js +176 -38
- package/build/utils/utils-verify/retrofit-equivalence.d.ts +5 -0
- package/build/utils/utils-verify/retrofit-equivalence.js +4 -2
- package/build/utils/utils-verify/stage.d.ts +5 -0
- package/build/utils/utils-verify/stage.js +47 -2
- package/build/utils/utils-verify/status-once.d.ts +62 -0
- package/build/utils/utils-verify/status-once.js +207 -0
- package/build/utils/utils-verify/typecheck.d.ts +61 -0
- package/build/utils/utils-verify/typecheck.js +338 -0
- package/build/utils/utils-verify/verify.d.ts +76 -1
- package/build/utils/utils-verify/verify.js +516 -44
- package/build/utils/versions.d.ts +3 -3
- package/build/utils/versions.js +1 -1
- package/build/utils/workspaceAuth.js +107 -37
- package/build/workspace/queryParamResolution.js +11 -4
- package/build/workspace/workspace.js +7 -7
- package/node_modules/playwright/ThirdPartyNotices.txt +19 -19
- package/node_modules/playwright/lib/mcp/skyramp/assertTool.js +8 -2
- package/node_modules/playwright/lib/mcp/skyramp/common/cssValue.js +87 -0
- package/node_modules/playwright/lib/mcp/skyramp/loadTraceTool.js +31 -0
- package/node_modules/playwright/lib/mcp/skyramp/skyRampImport.js +3 -0
- package/node_modules/playwright/lib/mcp/skyramp/traceRecordingBackend.js +181 -15
- package/node_modules/playwright/lib/mcp/test/skyRampExport.js +24 -0
- package/node_modules/playwright/lib/transform/babelBundleImpl.js +2353 -190
- package/node_modules/playwright/node_modules/playwright-core/ThirdPartyNotices.txt +62 -34
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/.package-lock.json +72 -41
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/dist/serve-static.mjs +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/@hono/node-server/package.json +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/README.md +16 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/index.js +4 -20
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/read.js +17 -17
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/json.js +60 -32
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/raw.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/text.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/types/urlencoded.js +16 -20
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/lib/utils.js +18 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/LICENSE +22 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/README.md +71 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/node_modules/content-type/package.json +52 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/body-parser/package.json +23 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/CHANGELOG.md +21 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/isObject.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/package.json +6 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/es-object-atoms/tsconfig.json +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/index.js +266 -45
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/schemes.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/lib/utils.js +396 -92
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/component-safe-serialization.test.js +163 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/equal.test.js +31 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/fixtures/uri-js-parse.json +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/ipv6-validation.test.js +124 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/parse.test.js +7 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security-normalization.test.js +101 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/security.test.js +301 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/CHANGELOG.md +7 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/index.d.ts +0 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hasown/package.json +4 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/client.js +30 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/client/utils.js +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/context.js +32 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/accepts/accepts.js +36 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/proxy/index.js +4 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/ssg.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/ssg/utils.js +30 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/helper/streaming/sse.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/hono-base.js +10 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/base.js +44 -23
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/components.js +25 -26
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/context.js +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/render.js +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/dom/server.js +5 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/hooks/index.js +16 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/jsx/streaming.js +4 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cache/index.js +103 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/compress/index.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/cors/index.js +17 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/digest.js +47 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/etag/index.js +7 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/language/language.js +10 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +90 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +16 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/request.js +20 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +65 -59
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +71 -128
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +14 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/node.js +47 -70
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router/utils.js +27 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/router.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/accept.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/body.js +21 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/cookie.js +4 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/stream.js +12 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/cjs/utils/url.js +19 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/client.js +30 -16
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/client/utils.js +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/context.js +32 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/accepts/accepts.js +36 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/proxy/index.js +4 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/ssg.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/ssg/utils.js +30 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/helper/streaming/sse.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/hono-base.js +10 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/base.js +41 -23
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/components.js +26 -27
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/context.js +6 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/render.js +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/dom/server.js +5 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/hooks/index.js +16 -13
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/intrinsic-element/components.js +4 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/jsx/streaming.js +5 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cache/index.js +103 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/compress/index.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/cors/index.js +17 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/csrf/index.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/digest.js +47 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/etag/index.js +7 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwk/jwk.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/jwt/jwt.js +9 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/language/language.js +10 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/method-not-allowed/index.js +68 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/pretty-json/index.js +3 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +16 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/request.js +21 -14
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/linear-router/router.js +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/pattern-router/router.js +3 -9
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/node.js +61 -58
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/router.js +77 -129
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/reg-exp-router/trie.js +14 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/node.js +47 -70
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/trie-router/router.js +3 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router/utils.js +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/router.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +9 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/client/types.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/context.d.ts +6 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/hono-base.d.ts +4 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/base.d.ts +7 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/index.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/dom/server.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/hooks/index.d.ts +8 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/jsx/index.d.ts +5 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cache/index.d.ts +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/combine/index.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/cors/index.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +2 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +4 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +2 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/node.d.ts +1 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/trie-router/router.d.ts +0 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router/utils.d.ts +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/router.d.ts +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/headers.d.ts +2 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/types/utils/url.d.ts +5 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/accept.js +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/body.js +21 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/cookie.js +5 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/ipaddr.js +5 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/stream.js +12 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/dist/utils/url.js +17 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/hono/package.json +11 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/README.md +173 -143
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js +79 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.d.ts +78 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js +119 -24
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.d.ts +151 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js +316 -90
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js +45 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js +50 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/ip-address/package.json +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/.github/THREAT_MODEL.md +3 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/CHANGELOG.md +26 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/README.md +19 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/dist/qs.js +25 -25
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/eslint.config.mjs +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/parse.js +16 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/stringify.js +23 -8
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/lib/utils.js +57 -11
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/package.json +8 -7
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/parse.js +419 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/stringify.js +317 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/qs/test/utils.js +206 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/CHANGELOG.md +10 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/README.md +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/index.js +5 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/package.json +10 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/side-channel/test/index.js +16 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/index.js +8 -18
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/LICENSE +22 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/README.md +71 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/node_modules/content-type/package.json +52 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/type-is/package.json +9 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/package-lock.json +72 -41
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.package-lock.json +6 -6
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/README.md +23 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/index.js +265 -86
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/brace-expansion/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/README.md +173 -143
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.d.ts +11 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/address-error.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.d.ts +49 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js +79 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.d.ts +78 -5
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js +119 -24
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.d.ts +151 -10
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js +316 -90
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js +45 -2
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js +50 -3
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/ip-address/package.json +6 -4
- package/node_modules/playwright/node_modules/playwright-core/bundles/utils/package-lock.json +6 -6
- package/node_modules/playwright/node_modules/playwright-core/lib/cli/program.js +18 -9
- package/node_modules/playwright/node_modules/playwright-core/lib/mcpBundleImpl/index.js +47 -47
- package/node_modules/playwright/node_modules/playwright-core/lib/server/codegen/skyramp/jsonlReader.js +3 -0
- package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +42 -0
- package/node_modules/playwright/node_modules/playwright-core/lib/utilsBundleImpl/index.js +121 -121
- package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/{index.B7KbSQcC.js → index.BAkLd5DX.js} +1 -1
- package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/index.html +1 -1
- package/node_modules/playwright/node_modules/playwright-core/package.json +1 -1
- package/node_modules/playwright/node_modules/playwright-core/src/cli/program.ts +31 -9
- package/node_modules/playwright/node_modules/playwright-core/src/server/codegen/skyramp/jsonlReader.ts +1 -0
- package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/recorderRunner.ts +57 -1
- package/node_modules/playwright/package.json +2 -2
- package/package.json +7 -6
- package/plugin/prompts/code-reuse/hand-off.md +30 -0
- package/plugin/prompts/generate-tests/generation.md +1 -1
- package/plugin/prompts/plan-tests.md +14 -14
- package/plugin/prompts/testbot-task1.md +4 -2
- package/plugin/skills/enhance-assertions/SKILL.md +25 -0
- package/plugin/skills/enhance-assertions/reference/contract.md +51 -0
- package/plugin/skills/enhance-assertions/reference/integration.md +58 -0
- package/plugin/skills/enhance-assertions/reference/shared-rules.md +220 -0
- package/plugin/skills/enhance-assertions/reference/ui.md +373 -0
- package/plugin/skills/fix-test-import-errors/SKILL.md +44 -50
- package/plugin/skills/validate-assertion-alignment-post-execution/SKILL.md +32 -0
- package/plugin/skills/validate-assertion-alignment-post-execution/reference/checks.md +44 -0
- package/plugin/skills/validate-assertion-alignment-post-execution/reference/evidence.md +47 -0
- package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.js +0 -29
- package/build/prompts/enhance-assertions/integrationAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/integrationAssertionsPrompt.js +0 -36
- package/build/prompts/enhance-assertions/sharedAssertionRules.d.ts +0 -16
- package/build/prompts/enhance-assertions/sharedAssertionRules.js +0 -284
- package/build/prompts/enhance-assertions/uiAssertionsPrompt.d.ts +0 -2
- package/build/prompts/enhance-assertions/uiAssertionsPrompt.js +0 -388
- package/node_modules/playwright/node_modules/playwright-core/.DS_Store +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { enhanceAssertionsMaintenanceCall } from "../../skills/enhanceAssertionsSkill.js";
|
|
1
2
|
/**
|
|
2
3
|
* Prompt language for skyramp_actions output — the LLM_INSTRUCTIONS block
|
|
3
4
|
* emitted to the agent that applies UPDATE, REGENERATE, and DELETE actions.
|
|
@@ -5,6 +6,7 @@
|
|
|
5
6
|
* Kept separate from actionsTool.ts so prompt text is co-located with other
|
|
6
7
|
* maintenance prompts and can be reviewed/edited without touching tool logic.
|
|
7
8
|
*/
|
|
9
|
+
import { regenerateCodeReuse } from "../reuse-hand-off.js";
|
|
8
10
|
/** Strategy string for URL-path find-and-replace updates. */
|
|
9
11
|
export function buildRenameStrategy() {
|
|
10
12
|
return `For each file, find-and-replace all occurrences of oldPath with newPath. Do NOT regenerate or restructure the test — only update the URL paths.`;
|
|
@@ -13,23 +15,28 @@ export function buildRenameStrategy() {
|
|
|
13
15
|
export function buildFileRenameStrategy() {
|
|
14
16
|
return `After updating path content in each file, rename the file using 'mv' or equivalent. Use git mv if the repo tracks the file.`;
|
|
15
17
|
}
|
|
16
|
-
/** Strategy string for in-place UPDATE edits.
|
|
17
|
-
|
|
18
|
+
/** Strategy string for in-place UPDATE edits. `withPostEditSteps` is set when at
|
|
19
|
+
* least one update_context entry carries post_edit_steps — the modularize → reuse
|
|
20
|
+
* pair an updated test owes, which skyramp_execute_test refuses the file without. */
|
|
21
|
+
export function buildUpdateStrategy(withPostEditSteps = false) {
|
|
18
22
|
return `Apply each file in update_context yourself with the Edit tool. Read the file first, then make the changes described in context. Preserve all existing test logic — only add or adjust what context describes.
|
|
19
23
|
|
|
20
24
|
When a file provides edit_sites, apply each site directly using its anchor as the Edit target — do not re-grep or re-page the file to relocate the sites; they were already found for you.
|
|
21
25
|
|
|
22
26
|
UPDATE is an in-place edit to the existing baseline file — do not create a new test file to cover the same page or component.
|
|
23
27
|
|
|
24
|
-
After editing, re-read each file to confirm the change landed,
|
|
28
|
+
After editing, re-read each file to confirm the change landed${withPostEditSteps ? `. For an entry that carries post_edit_steps, run them next, in the order given: they are the modularize → reuse steps the updated test now owes, and skyramp_execute_test refuses the file until they have run. Then ${enhanceAssertionsMaintenanceCall()}` : `, then ${enhanceAssertionsMaintenanceCall()}`}.`;
|
|
25
29
|
}
|
|
26
30
|
/** Strategy string for UPDATE entries that refresh visual-snapshot baselines (SKYR-4298). */
|
|
27
31
|
export function buildRebaselineStrategy() {
|
|
28
32
|
return `Some update_context entries carry rebaseline_snapshots: the diff changed how the page or element those toHaveScreenshot() baselines capture looks, so the committed PNGs are stale and must be replaced, not the spec. For those baselines do NOT edit the toHaveScreenshot() call, do NOT raise maxDiffPixelRatio, do NOT remove the assertion, and do NOT touch the PNG yourself. Refresh them at the final execution: call skyramp_execute_test for that spec with rebaselineSnapshots set to exactly the listed filenames — SmartPlaywright re-captures each one and the new PNG lands beside the spec, where the Testbot PR shows it as an image diff for review. An entry with edit_required: false (no context) has nothing to edit: skip the Edit/re-read/skyramp_enhance_assertions steps for that file — the refresh at final execution is its whole maintenance. When you call skyramp_execute_test for the refresh, set testFile to the entry's spec_file (NOT its file, which is the page object for a POM-backed update). The execution result names which baselines were refreshed and which were not; report only the refreshed ones as refreshed. Never pass rebaselineSnapshots on the phase: "before" run — that run is the evidence that the baseline is stale.`;
|
|
29
33
|
}
|
|
30
|
-
/** Strategy string for REGENERATE — call generation tool to overwrite the file.
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
/** Strategy string for REGENERATE — call generation tool to overwrite the file.
|
|
35
|
+
* `withGenerationArgs` is set when at least one regenerate_context entry carries
|
|
36
|
+
* generation_args — the codeReuse options that arm the modularize → reuse chain the
|
|
37
|
+
* regenerated file owes. */
|
|
38
|
+
export function buildRegenerateStrategy(withGenerationArgs = false) {
|
|
39
|
+
return `For each file in regenerate_context, call the appropriate generation tool (skyramp_integration_test_generation or skyramp_contract_test_generation) with outputDir set to the file's directory and output set to the filename${withGenerationArgs ? `, and, when the entry carries generation_args, every one of those arguments as well — they ask for the code reuse the regenerated file owes, and the generation result then carries its modularize → reuse steps` : ""}. The generation tool will overwrite the file. Do NOT use skyramp_ui_test_generation here — UI test regeneration requires a recorded trace (playwrightInput) and must be handled separately.`;
|
|
33
40
|
}
|
|
34
41
|
/** Strategy string for DELETE — remove obsolete test files whose covered endpoints/UI no longer exist. */
|
|
35
42
|
export function buildDeleteStrategy() {
|
|
@@ -37,46 +44,60 @@ export function buildDeleteStrategy() {
|
|
|
37
44
|
}
|
|
38
45
|
/** Per-file instruction block for a single UPDATE recommendation. */
|
|
39
46
|
export function buildUpdateFileInstruction(params) {
|
|
40
|
-
const { testFile, renames, suggestedNewFile, updateInstructions, rationale } = params;
|
|
47
|
+
const { testFile, renames, suggestedNewFile, updateInstructions, rationale, postEditSteps, } = params;
|
|
41
48
|
const rebaselineSnapshots = params.rebaselineSnapshots ?? [];
|
|
42
|
-
const renameTable = renames.length > 0
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
const renameTable = renames.length > 0
|
|
50
|
+
? [
|
|
51
|
+
`**Endpoint Rename Detected — Path Substitution Required:**\n`,
|
|
52
|
+
`| Old Path | New Path | Method |`,
|
|
53
|
+
`|----------|----------|--------|`,
|
|
54
|
+
...renames.map((r) => `| \`${r.oldPath}\` | \`${r.newPath}\` | ${r.method} |`),
|
|
55
|
+
``,
|
|
56
|
+
`**Action:** Find-and-replace all occurrences of the old path with the new path in this test file. Do NOT change any test logic, assertions, or structure — only update the URL paths.\n`,
|
|
57
|
+
...(suggestedNewFile
|
|
58
|
+
? [
|
|
59
|
+
`**File Rename:** After updating the paths, rename this file:`,
|
|
60
|
+
`- From: \`${testFile.split("/").pop()}\``,
|
|
61
|
+
`- To: \`${suggestedNewFile.split("/").pop()}\`\n`,
|
|
62
|
+
]
|
|
63
|
+
: []),
|
|
64
|
+
].join("\n")
|
|
65
|
+
: "";
|
|
55
66
|
const changeBlock = updateInstructions
|
|
56
67
|
? `**What to change:**\n\n${updateInstructions}\n`
|
|
57
68
|
: renames.length === 0 && rebaselineSnapshots.length === 0
|
|
58
69
|
? [
|
|
59
70
|
rationale ? `**Why:** ${rationale}\n` : "",
|
|
60
71
|
`**Action:** Update this test file based on the rationale above.\n`,
|
|
61
|
-
]
|
|
72
|
+
]
|
|
73
|
+
.filter(Boolean)
|
|
74
|
+
.join("\n")
|
|
62
75
|
: "";
|
|
63
76
|
const rebaselineBlock = rebaselineSnapshots.length > 0
|
|
64
77
|
? [
|
|
65
78
|
`**Visual baselines to refresh:** ${rebaselineSnapshots.map((s) => `\`${s}\``).join(", ")}`,
|
|
66
79
|
rationale && !updateInstructions ? `**Why:** ${rationale}` : "",
|
|
67
80
|
`**Action:** Do not edit these \`toHaveScreenshot()\` calls, their \`maxDiffPixelRatio\`, or the PNGs. At the final execution, call \`skyramp_execute_test\` for this spec with \`rebaselineSnapshots: ${JSON.stringify(rebaselineSnapshots)}\` so SmartPlaywright re-captures them; the refreshed PNGs are delivered with the Testbot PR as image diffs.\n`,
|
|
68
|
-
]
|
|
81
|
+
]
|
|
82
|
+
.filter(Boolean)
|
|
83
|
+
.join("\n")
|
|
69
84
|
: "";
|
|
70
|
-
|
|
85
|
+
const stepsBlock = postEditSteps ? `\n${postEditSteps}\n` : "";
|
|
86
|
+
return `\n### ${testFile}\n\n${renameTable}${changeBlock}${rebaselineBlock}${stepsBlock}`;
|
|
71
87
|
}
|
|
72
88
|
/** Per-file instruction block for a single REGENERATE recommendation. */
|
|
73
89
|
export function buildRegenerateFileInstruction(params) {
|
|
74
|
-
const { testFile, updateInstructions, outputDir, outputFile } = params;
|
|
75
|
-
const whatChanged = updateInstructions
|
|
90
|
+
const { testFile, updateInstructions, outputDir, outputFile, testType, language, } = params;
|
|
91
|
+
const whatChanged = updateInstructions
|
|
92
|
+
? `**What changed:**\n\n${updateInstructions}\n\n`
|
|
93
|
+
: "";
|
|
94
|
+
// The regenerated file goes through the same modularize → reuse chain a generated
|
|
95
|
+
// one does: the generation tool's result carries the steps when the call asks for
|
|
96
|
+
// codeReuse, so the clause here is what arms it.
|
|
76
97
|
return [
|
|
77
98
|
`\n### ${testFile}\n`,
|
|
78
99
|
`**Action: REGENERATE** — the response shape changed too drastically for targeted edits.\n`,
|
|
79
100
|
whatChanged,
|
|
80
|
-
`Call the appropriate generation tool (e.g. \`skyramp_integration_test_generation\`, \`skyramp_contract_test_generation\`) with \`outputDir: "${outputDir}"\` and \`output: "${outputFile}"
|
|
101
|
+
`Call the appropriate generation tool (e.g. \`skyramp_integration_test_generation\`, \`skyramp_contract_test_generation\`) with \`outputDir: "${outputDir}"\` and \`output: "${outputFile}"\`${regenerateCodeReuse(testType, language)?.clause ?? ""} to overwrite this file from scratch. Use the provided existing file content for context on the endpoint, auth pattern, and test structure — replicate the test type and language.\n`,
|
|
81
102
|
].join("\n");
|
|
82
103
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildActionDecisionTree, buildCheckAdditiveFields, buildCheckEndpointExistence, buildCheckResponseShape, buildCheckAuthAndAuthorization, buildCheckBehavioralContract, buildCheckAssignAction, buildDriftOutputChecklist, } from "./driftAnalysisSections.js";
|
|
2
2
|
import { buildUiActionDecisionTree, buildUiCheckRouteExistence, buildUiCheckSelectors, buildUiCheckPageObjects, buildUiCheckBehavioralChanges, buildUiCheckAssignAction, buildUiDriftOutputChecklist, } from "./uiDriftAnalysisSections.js";
|
|
3
|
-
import { RECOMMENDATIONS_INSTRUCTION, buildSymbolDiscoveryStep } from "./driftAnalysisShared.js";
|
|
3
|
+
import { RECOMMENDATIONS_INSTRUCTION, buildSymbolDiscoveryStep, } from "./driftAnalysisShared.js";
|
|
4
4
|
import { PromptPlan } from "../test-recommendation/promptPlan.js";
|
|
5
5
|
/**
|
|
6
6
|
* Render CONFIRMED failing tests from prior external-exec runs, plus the §4.5
|
|
@@ -117,7 +117,8 @@ For each test in \`<tests_to_assess>\`, read it to determine its type, then appl
|
|
|
117
117
|
</ui_analysis_context>
|
|
118
118
|
|
|
119
119
|
`;
|
|
120
|
-
parts.push(contextHeader +
|
|
120
|
+
parts.push(contextHeader +
|
|
121
|
+
`<ui_drift_analysis_rules>\n${_uiPlan.render({ stateFile, tests: ui.tests, blueprintCaptured: ui.blueprintCaptured })}\n</ui_drift_analysis_rules>`);
|
|
121
122
|
}
|
|
122
123
|
parts.push(RECOMMENDATIONS_INSTRUCTION);
|
|
123
124
|
return parts.join("\n\n");
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* mirroring the recommendationSections.ts pattern.
|
|
4
4
|
*/
|
|
5
5
|
import { AUTH_MIDDLEWARE_PATTERNS_STR } from "../../utils/workspaceAuth.js";
|
|
6
|
-
import { buildApiAssignAction, EMPTY_TEST_LIST_PLACEHOLDER, NO_PRELOADED_TESTS_NOTE } from "./driftAnalysisShared.js";
|
|
6
|
+
import { buildApiAssignAction, EMPTY_TEST_LIST_PLACEHOLDER, NO_PRELOADED_TESTS_NOTE, } from "./driftAnalysisShared.js";
|
|
7
7
|
// TODO: Replace the open-ended diff-line categories below with a two-tier structure:
|
|
8
8
|
// Tier 1 — mechanical patterns (specific token + file-path criteria, zero judgment needed).
|
|
9
9
|
// Tier 2 — residual open-ended scan for anything observable not covered by tier 1.
|
|
@@ -197,10 +197,12 @@ export function buildDriftOutputChecklist(stateFile, existingTests) {
|
|
|
197
197
|
const finalStep = `Call \`skyramp_actions\` with \`stateFile: "${stateFile ?? "<stateFile>"}"\`.`;
|
|
198
198
|
const hasTests = (existingTests?.length ?? 0) > 0;
|
|
199
199
|
const testList = hasTests
|
|
200
|
-
? existingTests
|
|
200
|
+
? existingTests
|
|
201
|
+
.map((t) => {
|
|
201
202
|
const label = (t.source ?? "skyramp") === "external" ? " [external]" : "";
|
|
202
203
|
return `- ${t.testFile}${label}`;
|
|
203
|
-
})
|
|
204
|
+
})
|
|
205
|
+
.join("\n")
|
|
204
206
|
: EMPTY_TEST_LIST_PLACEHOLDER;
|
|
205
207
|
const noTestsNote = !hasTests ? NO_PRELOADED_TESTS_NOTE : "";
|
|
206
208
|
const existingTestSection = `**Existing tests (${existingTests?.length ?? 0} total) — assess ALL of the following:**
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export function buildSymbolDiscoveryStep(hasTests, repoPaths) {
|
|
8
8
|
const repoList = repoPaths && repoPaths.length > 1
|
|
9
|
-
? repoPaths.map(p => `\`${p}\``).join(", ")
|
|
10
|
-
: repoPaths?.[0]
|
|
9
|
+
? repoPaths.map((p) => `\`${p}\``).join(", ")
|
|
10
|
+
: repoPaths?.[0]
|
|
11
|
+
? `\`${repoPaths[0]}\``
|
|
12
|
+
: "the repository";
|
|
11
13
|
// When no tests were pre-loaded this step is REQUIRED, not optional: in PR mode external
|
|
12
14
|
// (user-written) tests are discovered by the agent, not pre-loaded, so an empty list means
|
|
13
15
|
// "not yet discovered", not "none exist". Suppressing this step in that case is the bug that
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* (RTL/Flutter widget/vue-test-utils/angular-testbed) read the same text.
|
|
9
9
|
* Component tests always use source-only analysis regardless of blueprintCaptured.
|
|
10
10
|
*/
|
|
11
|
-
import { buildUiAssignAction, EMPTY_TEST_LIST_PLACEHOLDER, NO_PRELOADED_TESTS_NOTE } from "./driftAnalysisShared.js";
|
|
11
|
+
import { buildUiAssignAction, EMPTY_TEST_LIST_PLACEHOLDER, NO_PRELOADED_TESTS_NOTE, } from "./driftAnalysisShared.js";
|
|
12
12
|
/**
|
|
13
13
|
* Build the UI Action Decision Tree section.
|
|
14
14
|
* This is the main entry point for UI drift analysis.
|
|
@@ -103,7 +103,7 @@ Actions:
|
|
|
103
103
|
* Check if page objects/fixtures referenced by the test still exist.
|
|
104
104
|
*/
|
|
105
105
|
export function buildUiCheckPageObjects() {
|
|
106
|
-
return `Do the page objects or fixture files imported by this UI test still exist, and are their underlying selectors still valid?
|
|
106
|
+
return (`Do the page objects or fixture files imported by this UI test still exist, and are their underlying selectors still valid?
|
|
107
107
|
|
|
108
108
|
**Always follow imports to find page objects — regardless of whether blueprints were captured.**
|
|
109
109
|
Page objects can live anywhere in the repo (not just \`page-objects/\` or \`fixtures/\`). Do not assume a fixed directory. The only reliable way to find them is to follow the spec file's \`import\` statements.
|
|
@@ -127,7 +127,8 @@ Actions:
|
|
|
127
127
|
- Page object import path changed in the diff → **UPDATE** (fix the import in the spec)
|
|
128
128
|
- Page object file deleted, no replacement found → **UPDATE** (inline selectors or find alternative)
|
|
129
129
|
- Selectors in page object unchanged and diff does not affect them → **IGNORE**
|
|
130
|
-
- **All POM selectors are gone with no migration path in the diff** (the component's interaction model changed fundamentally — no ` +
|
|
130
|
+
- **All POM selectors are gone with no migration path in the diff** (the component's interaction model changed fundamentally — no ` +
|
|
131
|
+
` lines showing replacement selectors) → **REGENERATE**. Do not stay at VERIFY after reading the POM and confirming this — escalate once you have confirmed the failure.`);
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
134
|
* Check for component behavior changes that affect assertions.
|
|
@@ -164,7 +165,9 @@ export function buildUiDriftOutputChecklist(stateFile, tests) {
|
|
|
164
165
|
const finalStep = `Call \`skyramp_actions\` with \`stateFile: "${stateFile ?? "<stateFile>"}"\`.`;
|
|
165
166
|
const hasTests = (tests?.length ?? 0) > 0;
|
|
166
167
|
const testList = hasTests
|
|
167
|
-
? tests
|
|
168
|
+
? tests
|
|
169
|
+
.map((t) => `- ${t.testFile}${t.source === "external" ? " [external]" : ""}`)
|
|
170
|
+
.join("\n")
|
|
168
171
|
: EMPTY_TEST_LIST_PLACEHOLDER;
|
|
169
172
|
const noTestsNote = !hasTests ? NO_PRELOADED_TESTS_NOTE : "";
|
|
170
173
|
const existingTestSection = `**Tests (${tests?.length ?? 0} total) — assess ALL of the following:**
|
|
@@ -3,7 +3,7 @@ import { sectionBody } from "../promptAssets.js";
|
|
|
3
3
|
import { readPromptAsset } from "../promptAssets.js";
|
|
4
4
|
import { fillPlaceholders } from "../../recommendation/verifierContracts.js";
|
|
5
5
|
import { resolveServiceDetailsRef } from "../../utils/utils.js";
|
|
6
|
-
import { getAuthScheme, isAuthorizationHeaderName } from "../../utils/workspaceAuth.js";
|
|
6
|
+
import { getAuthScheme, isAuthorizationHeaderName, } from "../../utils/workspaceAuth.js";
|
|
7
7
|
// Cached at module-load — flags are process-wide and cannot change per call.
|
|
8
8
|
const CONSUMER_MODE_ENABLED = isContractConsumerModeEnabled();
|
|
9
9
|
const SERVICE_REFS = resolveServiceDetailsRef();
|
|
@@ -83,15 +83,18 @@ export function buildToolWorkflows(authHeaderValue, authTypeValue = "", explicit
|
|
|
83
83
|
let authGuidance;
|
|
84
84
|
let authParams;
|
|
85
85
|
if (noAuth) {
|
|
86
|
-
authGuidance = variant("## Auth verification required", {
|
|
86
|
+
authGuidance = variant("## Auth verification required", {
|
|
87
|
+
enrichStep: enrichStepLabel,
|
|
88
|
+
});
|
|
87
89
|
authParams = { authHeader: "" };
|
|
88
90
|
}
|
|
89
91
|
else if (isAuthorizationHeader) {
|
|
90
92
|
// Use getAuthScheme (single source of truth) instead of capitalizing the raw slug.
|
|
91
93
|
// Pass explicitScheme so custom schemes from workspace.yml (e.g. "Ghost", "Hawk") are used.
|
|
92
94
|
const wsType = authTypeValue;
|
|
93
|
-
const resolvedScheme =
|
|
94
|
-
? (getAuthScheme(wsType, explicitScheme) ??
|
|
95
|
+
const resolvedScheme = authTypeValue && authTypeValue !== "none"
|
|
96
|
+
? (getAuthScheme(wsType, explicitScheme) ??
|
|
97
|
+
"<scheme e.g. Bearer, Token or empty>")
|
|
95
98
|
: "<scheme e.g. Bearer, Token or empty>";
|
|
96
99
|
authParams = { authHeader: "Authorization", authScheme: resolvedScheme };
|
|
97
100
|
// One ladder for both cases: only the first line differs, and step 3 states
|
|
@@ -105,7 +108,9 @@ export function buildToolWorkflows(authHeaderValue, authTypeValue = "", explicit
|
|
|
105
108
|
}
|
|
106
109
|
else {
|
|
107
110
|
authParams = { authHeader: authHeaderValue };
|
|
108
|
-
authGuidance = variant("## Auth header, not Authorization", {
|
|
111
|
+
authGuidance = variant("## Auth header, not Authorization", {
|
|
112
|
+
authHeader: authHeaderValue,
|
|
113
|
+
});
|
|
109
114
|
}
|
|
110
115
|
const hasWorkspaceAuthType = !!authTypeValue && authTypeValue !== "none";
|
|
111
116
|
const authCallParams = serializeAuthCallParams(authParams);
|
|
@@ -114,9 +119,13 @@ export function buildToolWorkflows(authHeaderValue, authTypeValue = "", explicit
|
|
|
114
119
|
// NOTE: scenario generation always uses full authCallParams so auth is embedded in the test file
|
|
115
120
|
// and the executor sends the correct Authorization header at run time.
|
|
116
121
|
const integrationAuthNote = hasWorkspaceAuthType
|
|
117
|
-
? variant("## Integration auth, workspace handles it", {
|
|
122
|
+
? variant("## Integration auth, workspace handles it", {
|
|
123
|
+
authConflictError: AUTH_CONFLICT_ERROR_MSG,
|
|
124
|
+
})
|
|
118
125
|
: variant("## Integration auth, header only", {
|
|
119
|
-
authHeaderOnlyParams: serializeAuthCallParams({
|
|
126
|
+
authHeaderOnlyParams: serializeAuthCallParams({
|
|
127
|
+
authHeader: authParams.authHeader,
|
|
128
|
+
}),
|
|
120
129
|
});
|
|
121
130
|
const authHeaderLine = noAuth
|
|
122
131
|
? variant("## Auth line, none configured", {})
|
|
@@ -129,6 +138,8 @@ export function buildToolWorkflows(authHeaderValue, authTypeValue = "", explicit
|
|
|
129
138
|
pathParamUuidGuidance: buildPathParamGuidance(),
|
|
130
139
|
frontendTestDir: SERVICE_REFS.frontendTestDirRef,
|
|
131
140
|
enrichStep: enrichStepLabel,
|
|
132
|
-
contractModeSelection: variant(CONSUMER_MODE_ENABLED
|
|
141
|
+
contractModeSelection: variant(CONSUMER_MODE_ENABLED
|
|
142
|
+
? "## Contract modes, consumer enabled"
|
|
143
|
+
: "## Contract modes, provider only", {}),
|
|
133
144
|
});
|
|
134
145
|
}
|
|
@@ -42,7 +42,9 @@ export function registerRecommendTestsPrompt(server) {
|
|
|
42
42
|
const memData = getSessionData(sessionId);
|
|
43
43
|
if (memData?.analysis) {
|
|
44
44
|
fullAnalysis = memData.analysis;
|
|
45
|
-
logger.debug("Loaded fullAnalysis from process memory", {
|
|
45
|
+
logger.debug("Loaded fullAnalysis from process memory", {
|
|
46
|
+
sessionId,
|
|
47
|
+
});
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
if (!fullAnalysis) {
|
|
@@ -73,7 +75,8 @@ export function registerRecommendTestsPrompt(server) {
|
|
|
73
75
|
// the user-facing param value "branch_diff". Map it explicitly so diff-mode detection
|
|
74
76
|
// works correctly on state created before this deployment (2-hour TTL window).
|
|
75
77
|
const rawScope = state.analysisScope;
|
|
76
|
-
const analysisScope = rawScope === "branch_diff" ||
|
|
78
|
+
const analysisScope = rawScope === "branch_diff" ||
|
|
79
|
+
rawScope === AnalysisScope.CurrentBranchDiff
|
|
77
80
|
? AnalysisScope.CurrentBranchDiff
|
|
78
81
|
: AnalysisScope.FullRepo;
|
|
79
82
|
const rejectionWarning = "";
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { AnalysisScope, isDiff, } from "../../types/RepositoryAnalysis.js";
|
|
2
|
-
import { WorkspaceAuthType, getDefaultAuthHeader, AUTH_MIDDLEWARE_PATTERNS_STR } from "../../utils/workspaceAuth.js";
|
|
2
|
+
import { WorkspaceAuthType, getDefaultAuthHeader, AUTH_MIDDLEWARE_PATTERNS_STR, } from "../../utils/workspaceAuth.js";
|
|
3
3
|
import { logger } from "../../utils/logger.js";
|
|
4
4
|
import { buildArchitectPreamble, buildContextFetchingGuidance, buildReasoningProtocol, buildToolWorkflows, buildVerificationChecklist, } from "./recommendationSections.js";
|
|
5
5
|
import { buildExecutionPlan, EXEC_STEP_ENRICH } from "./diffExecutionPlan.js";
|
|
6
6
|
import { readPromptAsset } from "../promptAssets.js";
|
|
7
7
|
import { fillPlaceholders } from "../../recommendation/verifierContracts.js";
|
|
8
|
-
import { TASK_GENERATE, taskRef
|
|
8
|
+
import { TASK_GENERATE, taskRef } from "./recommendationShared.js";
|
|
9
9
|
// Re-export for backward compatibility (tests and external callers import this from this module)
|
|
10
10
|
function formatTestLocations(locs) {
|
|
11
11
|
const entries = Object.entries(locs || {});
|
|
12
12
|
if (entries.length === 0)
|
|
13
13
|
return "";
|
|
14
|
-
const rows = entries
|
|
14
|
+
const rows = entries
|
|
15
|
+
.map(([type, files]) => `| ${type.padEnd(12)} | ${files} |`)
|
|
16
|
+
.join("\n");
|
|
15
17
|
return ("\n**Existing test coverage (Skyramp + external):**\n" +
|
|
16
18
|
"| Test type | File (covers: endpoints) |\n" +
|
|
17
19
|
"|--------------|---------------------------------------------------------|\n" +
|
|
18
|
-
rows +
|
|
20
|
+
rows +
|
|
21
|
+
"\n");
|
|
19
22
|
}
|
|
20
23
|
// ── Execution Plan (replaces pre-ranked + scenarios + heuristic sections) ──
|
|
21
24
|
// Prevents bot-committed test files from being treated as application changes
|
|
@@ -38,7 +41,7 @@ export function buildRecommendationPrompt(analysis, analysisScope = AnalysisScop
|
|
|
38
41
|
const diffContext = analysis.branchDiffContext;
|
|
39
42
|
const openApiSpec = analysis.artifacts?.openApiSpecs?.[0];
|
|
40
43
|
const filteredChangedFiles = diffContext
|
|
41
|
-
? diffContext.changedFiles.filter(f => !SKYRAMP_TEST_FILE_PATTERN.test(f))
|
|
44
|
+
? diffContext.changedFiles.filter((f) => !SKYRAMP_TEST_FILE_PATTERN.test(f))
|
|
42
45
|
: [];
|
|
43
46
|
const hasTraces = (analysis.artifacts?.traceFiles?.length ?? 0) > 0 ||
|
|
44
47
|
(analysis.artifacts?.playwrightRecordings?.length ?? 0) > 0;
|
|
@@ -90,14 +93,14 @@ Use it for contract tests (\`apiSchema: "${openApiSpec.path}"\`) and to extract
|
|
|
90
93
|
// ── PR History ──
|
|
91
94
|
let prHistorySection = "";
|
|
92
95
|
if (prContext && prContext.previousRecommendations.length > 0) {
|
|
93
|
-
const implemented = prContext.previousRecommendations.filter(r => r.status === "implemented");
|
|
96
|
+
const implemented = prContext.previousRecommendations.filter((r) => r.status === "implemented");
|
|
94
97
|
let historyBody = "";
|
|
95
98
|
if (implemented.length > 0) {
|
|
96
99
|
const implLines = implemented
|
|
97
100
|
.map((r) => ` - ${r.testType} — ${r.endpoint}`)
|
|
98
101
|
.join("\n");
|
|
99
102
|
const fileLines = prContext.implementedTestFiles.length > 0
|
|
100
|
-
? `\nExisting test files (in working tree):\n${prContext.implementedTestFiles.map(f => " - \`" + f + "\`").join("\n")}\n`
|
|
103
|
+
? `\nExisting test files (in working tree):\n${prContext.implementedTestFiles.map((f) => " - \`" + f + "\`").join("\n")}\n`
|
|
101
104
|
: "";
|
|
102
105
|
historyBody += `### Previously Generated Tests
|
|
103
106
|
${implLines}${fileLines}`;
|