@epoint-testtech/ep-stage-skill 0.0.4-alpha.1 → 0.0.6

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 (213) hide show
  1. package/SKILL.md +27 -27
  2. package/codex-skill/ep-stage/glue-create-project/SKILL.md +223 -206
  3. package/codex-skill/ep-stage/glue-generate-testcase/SKILL.md +275 -274
  4. package/codex-skill/ep-stage/glue-generate-testcase/examples/observable-testcase.json +40 -40
  5. package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-schema.md +95 -112
  6. package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-tpl.md +72 -72
  7. package/codex-skill/ep-stage/glue-run-test/SKILL.md +295 -289
  8. package/codex-skill/ep-stage/glue-run-test/references/ai-runtime-loop.md +30 -0
  9. package/codex-skill/ep-stage/glue-run-test/references/crud-pipeline.md +132 -145
  10. package/codex-skill/ep-stage/glue-run-test/references/gap-review-protocol.md +44 -43
  11. package/codex-skill/ep-stage/glue-run-test/references/harness-principles.md +46 -46
  12. package/codex-skill/ep-stage/glue-run-test/references/playwright-cli-odav.md +166 -0
  13. package/codex-skill/ep-stage/glue-run-test/scripts/extract-page-elements-eval.mjs +233 -0
  14. package/codex-skill/ep-stage/glue-run-test/scripts/generate-crud-spec.mjs +149 -149
  15. package/codex-skill/ep-stage/page-element-scan/SKILL.md +91 -0
  16. package/codex-skill/ep-stage/page-element-scan/evals/evals.json +37 -0
  17. package/codex-skill/ep-stage/page-element-scan/evals/fixtures/sample-list-page.html +85 -0
  18. package/codex-skill/ep-stage/page-element-scan/references/pagination-controls.md +153 -0
  19. package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements-eval.mjs +233 -0
  20. package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements.mjs +298 -0
  21. package/codex-skill/ep-stage/page-element-scan/scripts/scan-page.mjs +749 -0
  22. package/codex-skill/ep-stage/recording-to-glue/SKILL.md +28 -28
  23. package/codex-skill/ep-stage/scripts/validate-skill.mjs +98 -95
  24. package/dist/src/cli/generate-testcase.d.ts +17 -51
  25. package/dist/src/cli/generate-testcase.d.ts.map +1 -1
  26. package/dist/src/cli/generate-testcase.js +74 -181
  27. package/dist/src/cli/index.d.ts +3 -2
  28. package/dist/src/cli/index.d.ts.map +1 -1
  29. package/dist/src/cli/index.js +51 -17
  30. package/dist/src/cli/run.d.ts +136 -29
  31. package/dist/src/cli/run.d.ts.map +1 -1
  32. package/dist/src/cli/run.js +507 -65
  33. package/dist/src/cli/spec.d.ts +17 -13
  34. package/dist/src/cli/spec.d.ts.map +1 -1
  35. package/dist/src/cli/spec.js +59 -33
  36. package/dist/src/contracts/crud-business-module.d.ts +6 -0
  37. package/dist/src/contracts/crud-business-module.d.ts.map +1 -1
  38. package/dist/src/contracts/glue-contract-v1.d.ts +98 -0
  39. package/dist/src/contracts/glue-contract-v1.d.ts.map +1 -0
  40. package/dist/src/contracts/glue-contract-v1.js +9 -0
  41. package/dist/src/contracts/observable-chain.d.ts +4 -0
  42. package/dist/src/contracts/observable-chain.d.ts.map +1 -1
  43. package/dist/src/extractors/code-list-json5.d.ts +192 -0
  44. package/dist/src/extractors/code-list-json5.d.ts.map +1 -0
  45. package/dist/src/extractors/code-list-json5.js +91 -0
  46. package/dist/src/extractors/html-page.d.ts +9 -0
  47. package/dist/src/extractors/html-page.d.ts.map +1 -1
  48. package/dist/src/extractors/html-page.js +26 -2
  49. package/dist/src/extractors/prd-extractor.d.ts +70 -0
  50. package/dist/src/extractors/prd-extractor.d.ts.map +1 -0
  51. package/dist/src/extractors/prd-extractor.js +248 -0
  52. package/dist/src/generators/agent-inferred-workflow-script.js +66 -66
  53. package/dist/src/generators/stage-skeleton-script.d.ts +87 -20
  54. package/dist/src/generators/stage-skeleton-script.d.ts.map +1 -1
  55. package/dist/src/generators/stage-skeleton-script.js +647 -238
  56. package/dist/src/index.d.ts +2 -2
  57. package/dist/src/index.d.ts.map +1 -1
  58. package/dist/src/index.js +1 -1
  59. package/dist/src/normalizers/crud-contract.d.ts +3 -0
  60. package/dist/src/normalizers/crud-contract.d.ts.map +1 -1
  61. package/dist/src/normalizers/crud-contract.js +3 -0
  62. package/dist/src/runtime/ai-runtime-trace.d.ts +88 -0
  63. package/dist/src/runtime/ai-runtime-trace.d.ts.map +1 -0
  64. package/dist/src/runtime/ai-runtime-trace.js +119 -0
  65. package/dist/src/testcase/button-interaction-inference.d.ts +37 -0
  66. package/dist/src/testcase/button-interaction-inference.d.ts.map +1 -0
  67. package/dist/src/testcase/button-interaction-inference.js +385 -0
  68. package/dist/src/testcase/contract-testcase-assembler.d.ts +44 -0
  69. package/dist/src/testcase/contract-testcase-assembler.d.ts.map +1 -0
  70. package/dist/src/testcase/contract-testcase-assembler.js +806 -0
  71. package/dist/src/testcase/prd-button-mapper.d.ts +72 -0
  72. package/dist/src/testcase/prd-button-mapper.d.ts.map +1 -0
  73. package/dist/src/testcase/prd-button-mapper.js +148 -0
  74. package/dist/src/testcase/runtime-context.d.ts +9 -0
  75. package/dist/src/testcase/runtime-context.d.ts.map +1 -0
  76. package/dist/src/testcase/runtime-context.js +1 -0
  77. package/dist/src/testcase/test-access.d.ts +38 -0
  78. package/dist/src/testcase/test-access.d.ts.map +1 -0
  79. package/dist/src/testcase/test-access.js +106 -0
  80. package/dist/src/testcase/testcase-execution-fields.d.ts +10 -0
  81. package/dist/src/testcase/testcase-execution-fields.d.ts.map +1 -0
  82. package/dist/src/testcase/testcase-execution-fields.js +1 -0
  83. package/dist/src/testcase/testcase-generator.d.ts.map +1 -1
  84. package/dist/src/testcase/testcase-generator.js +6 -0
  85. package/dist/src/testcase/testcase-markdown.d.ts +11 -0
  86. package/dist/src/testcase/testcase-markdown.d.ts.map +1 -0
  87. package/dist/src/testcase/testcase-markdown.js +181 -0
  88. package/dist/src/testcase/testcase-skeleton.d.ts +4 -0
  89. package/dist/src/testcase/testcase-skeleton.d.ts.map +1 -1
  90. package/dist/src/testcase/testcase-spec-assembly.d.ts +4 -0
  91. package/dist/src/testcase/testcase-spec-assembly.d.ts.map +1 -1
  92. package/dist/src/testcase/testcase-v1-draft.d.ts +58 -0
  93. package/dist/src/testcase/testcase-v1-draft.d.ts.map +1 -0
  94. package/dist/src/testcase/testcase-v1-draft.js +13 -0
  95. package/dist/src/validation/contract.d.ts +14 -0
  96. package/dist/src/validation/contract.d.ts.map +1 -0
  97. package/dist/src/validation/contract.js +132 -0
  98. package/dist/src/validation/credentials.d.ts +7 -2
  99. package/dist/src/validation/credentials.d.ts.map +1 -1
  100. package/dist/src/validation/credentials.js +15 -4
  101. package/dist/src/validation/index.d.ts +1 -0
  102. package/dist/src/validation/index.d.ts.map +1 -1
  103. package/dist/src/validation/index.js +1 -0
  104. package/dist/src/validation/testcase.d.ts +9 -7
  105. package/dist/src/validation/testcase.d.ts.map +1 -1
  106. package/dist/src/validation/testcase.js +181 -34
  107. package/docs/README.md +124 -134
  108. package/docs/mvp-usage-guide.md +298 -298
  109. package/examples/schemeresource-observable-docs/schemeresource.context.md +20 -20
  110. package/examples/schemeresource.module-hints.json +38 -38
  111. package/examples/schemeresource.observable.code_list.md +37 -37
  112. package/examples/zwplace-observable-docs/zwplace.context.md +16 -16
  113. package/examples/zwplace-placecategory-validation.json +29 -29
  114. package/examples/zwplace.module-hints.json +69 -69
  115. package/examples/zwplace.observable.code_list.md +37 -37
  116. package/package.json +2 -2
  117. package/codex-skill/ep-stage/.omc/state/sessions/d636ad35-5fc9-4d5e-85b0-2bcad7d86ee5/pre-tool-advisory-throttle.json +0 -10
  118. package/dist/test/cli/extract-contract.test.d.ts +0 -2
  119. package/dist/test/cli/extract-contract.test.d.ts.map +0 -1
  120. package/dist/test/cli/extract-contract.test.js +0 -32
  121. package/dist/test/cli/generate-testcase-inference.test.d.ts +0 -2
  122. package/dist/test/cli/generate-testcase-inference.test.d.ts.map +0 -1
  123. package/dist/test/cli/generate-testcase-inference.test.js +0 -63
  124. package/dist/test/cli/generate-testcase-paths.test.d.ts +0 -2
  125. package/dist/test/cli/generate-testcase-paths.test.d.ts.map +0 -1
  126. package/dist/test/cli/generate-testcase-paths.test.js +0 -165
  127. package/dist/test/cli/generate-testcase-requirements.test.d.ts +0 -2
  128. package/dist/test/cli/generate-testcase-requirements.test.d.ts.map +0 -1
  129. package/dist/test/cli/generate-testcase-requirements.test.js +0 -229
  130. package/dist/test/cli/generate-testcase.test.d.ts +0 -2
  131. package/dist/test/cli/generate-testcase.test.d.ts.map +0 -1
  132. package/dist/test/cli/generate-testcase.test.js +0 -130
  133. package/dist/test/cli/index.test.d.ts +0 -2
  134. package/dist/test/cli/index.test.d.ts.map +0 -1
  135. package/dist/test/cli/index.test.js +0 -113
  136. package/dist/test/cli/probe.test.d.ts +0 -2
  137. package/dist/test/cli/probe.test.d.ts.map +0 -1
  138. package/dist/test/cli/probe.test.js +0 -31
  139. package/dist/test/cli/run.test.d.ts +0 -2
  140. package/dist/test/cli/run.test.d.ts.map +0 -1
  141. package/dist/test/cli/run.test.js +0 -149
  142. package/dist/test/cli/spec-boundary.test.d.ts +0 -2
  143. package/dist/test/cli/spec-boundary.test.d.ts.map +0 -1
  144. package/dist/test/cli/spec-boundary.test.js +0 -198
  145. package/dist/test/cli/spec.test.d.ts +0 -2
  146. package/dist/test/cli/spec.test.d.ts.map +0 -1
  147. package/dist/test/cli/spec.test.js +0 -196
  148. package/dist/test/code-list.test.d.ts +0 -2
  149. package/dist/test/code-list.test.d.ts.map +0 -1
  150. package/dist/test/code-list.test.js +0 -39
  151. package/dist/test/crud-contract.test.d.ts +0 -2
  152. package/dist/test/crud-contract.test.d.ts.map +0 -1
  153. package/dist/test/crud-contract.test.js +0 -799
  154. package/dist/test/gap-inference.test.d.ts +0 -2
  155. package/dist/test/gap-inference.test.d.ts.map +0 -1
  156. package/dist/test/gap-inference.test.js +0 -597
  157. package/dist/test/generalization.test.d.ts +0 -2
  158. package/dist/test/generalization.test.d.ts.map +0 -1
  159. package/dist/test/generalization.test.js +0 -73
  160. package/dist/test/inference/module-hints-inference.test.d.ts +0 -2
  161. package/dist/test/inference/module-hints-inference.test.d.ts.map +0 -1
  162. package/dist/test/inference/module-hints-inference.test.js +0 -25
  163. package/dist/test/inference/source-analysis.test.d.ts +0 -2
  164. package/dist/test/inference/source-analysis.test.d.ts.map +0 -1
  165. package/dist/test/inference/source-analysis.test.js +0 -23
  166. package/dist/test/material-inventory.test.d.ts +0 -2
  167. package/dist/test/material-inventory.test.d.ts.map +0 -1
  168. package/dist/test/material-inventory.test.js +0 -154
  169. package/dist/test/observable-chain.test.d.ts +0 -2
  170. package/dist/test/observable-chain.test.d.ts.map +0 -1
  171. package/dist/test/observable-chain.test.js +0 -123
  172. package/dist/test/observable-pipeline.test.d.ts +0 -2
  173. package/dist/test/observable-pipeline.test.d.ts.map +0 -1
  174. package/dist/test/observable-pipeline.test.js +0 -470
  175. package/dist/test/page-structure.test.d.ts +0 -2
  176. package/dist/test/page-structure.test.d.ts.map +0 -1
  177. package/dist/test/page-structure.test.js +0 -45
  178. package/dist/test/scenario-inference.test.d.ts +0 -2
  179. package/dist/test/scenario-inference.test.d.ts.map +0 -1
  180. package/dist/test/scenario-inference.test.js +0 -73
  181. package/dist/test/stage-context.test.d.ts +0 -2
  182. package/dist/test/stage-context.test.d.ts.map +0 -1
  183. package/dist/test/stage-context.test.js +0 -395
  184. package/dist/test/testcase-generator.test.d.ts +0 -2
  185. package/dist/test/testcase-generator.test.d.ts.map +0 -1
  186. package/dist/test/testcase-generator.test.js +0 -276
  187. package/dist/test/testcase-skeleton.test.d.ts +0 -2
  188. package/dist/test/testcase-skeleton.test.d.ts.map +0 -1
  189. package/dist/test/testcase-skeleton.test.js +0 -185
  190. package/dist/test/testcase-spec-assembly.test.d.ts +0 -2
  191. package/dist/test/testcase-spec-assembly.test.d.ts.map +0 -1
  192. package/dist/test/testcase-spec-assembly.test.js +0 -105
  193. package/dist/test/util/credentials.test.d.ts +0 -2
  194. package/dist/test/util/credentials.test.d.ts.map +0 -1
  195. package/dist/test/util/credentials.test.js +0 -64
  196. package/dist/test/util/i18n-testcase.test.d.ts +0 -2
  197. package/dist/test/util/i18n-testcase.test.d.ts.map +0 -1
  198. package/dist/test/util/i18n-testcase.test.js +0 -119
  199. package/dist/test/util/softlink.test.d.ts +0 -2
  200. package/dist/test/util/softlink.test.d.ts.map +0 -1
  201. package/dist/test/util/softlink.test.js +0 -82
  202. package/dist/test/validation/credentials.test.d.ts +0 -2
  203. package/dist/test/validation/credentials.test.d.ts.map +0 -1
  204. package/dist/test/validation/credentials.test.js +0 -72
  205. package/dist/test/validation/projects-index.test.d.ts +0 -2
  206. package/dist/test/validation/projects-index.test.d.ts.map +0 -1
  207. package/dist/test/validation/projects-index.test.js +0 -48
  208. package/dist/test/validation/testcase.test.d.ts +0 -2
  209. package/dist/test/validation/testcase.test.d.ts.map +0 -1
  210. package/dist/test/validation/testcase.test.js +0 -129
  211. package/dist/vitest.config.d.ts +0 -3
  212. package/dist/vitest.config.d.ts.map +0 -1
  213. package/dist/vitest.config.js +0 -7
@@ -9,8 +9,8 @@ export { extractJavaAction } from './extractors/java-action.js';
9
9
  export type { ExtractedJavaAction } from './extractors/java-action.js';
10
10
  export { buildCrudBusinessModuleContract } from './normalizers/crud-contract.js';
11
11
  export type { BuildCrudContractInput, ButtonLabelConfig } from './normalizers/crud-contract.js';
12
- export { generateStageSkeletonCrudSpec, mapContractToStageSkeletonCrudSlots, renderStageSkeletonCrudSlots } from './generators/stage-skeleton-script.js';
13
- export type { StageSkeletonCrudDataValueStrategy, StageSkeletonCrudDeletePolicy, StageSkeletonCrudFlowSlots, StageSkeletonScriptOptions } from './generators/stage-skeleton-script.js';
12
+ export { generateStageSkeletonCrudSpecFromSlots, renderStageSkeletonCrudSlots } from './generators/stage-skeleton-script.js';
13
+ export type { GenerateStageSkeletonCrudSpecFromSlotsOptions, StageSkeletonCrudDataValueStrategy, StageSkeletonCrudDeletePolicy, StageSkeletonCrudFlowSlots } from './generators/stage-skeleton-script.js';
14
14
  export type { ActionCandidate, AgentInferredWorkflow, GapActionType, GapExplorationResult, GapInferDraft, GapListItem, GapSignalType, GapWorkflowStatus, SkeletonCoverage } from './contracts/gap-inference.js';
15
15
  export type { ObservableArtifactRef, ObservableGate, ObservableStageName, ObservableStagePayload, ObservableStageSummary, ReasoningEvidence, ReasoningSummary, TraceWriterOptions } from './contracts/observable-chain.js';
16
16
  export { createTraceWriter, } from './trace/trace-writer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,gCAAgC,EAChC,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,SAAS,EACT,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EACnB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,+BAA+B,EAChC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,+BAA+B,EAC/B,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,0BAA0B,GAC3B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACL,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,2CAA2C,GAC5C,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,mCAAmC,EACnC,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,YAAY,EACZ,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,sBAAsB,EACtB,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACT,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -3,7 +3,7 @@ export { extractSpecYaml } from './extractors/spec-yaml.js';
3
3
  export { extractCodeListSummary } from './extractors/code-list.js';
4
4
  export { extractJavaAction } from './extractors/java-action.js';
5
5
  export { buildCrudBusinessModuleContract } from './normalizers/crud-contract.js';
6
- export { generateStageSkeletonCrudSpec, mapContractToStageSkeletonCrudSlots, renderStageSkeletonCrudSlots } from './generators/stage-skeleton-script.js';
6
+ export { generateStageSkeletonCrudSpecFromSlots, renderStageSkeletonCrudSlots } from './generators/stage-skeleton-script.js';
7
7
  export { createTraceWriter, } from './trace/trace-writer.js';
8
8
  export { lookupProjectByRequirement, readStageContext, resolveStageContext, writeProjectIndex, } from './context/stage-context.js';
9
9
  export { renderReviewSummary, } from './trace/review-summary.js';
@@ -1,4 +1,7 @@
1
1
  /**
2
+ * @deprecated 旧 v2 协议 Normalizer(buildCrudBusinessModuleContract)。
3
+ * 新 glue 链路不引用;仍被 gap-pipeline(run-gap-pipeline / dev/extract-contract)使用,故保留。
4
+ *
2
5
  * CRUD 业务模块契约 Normalizer
3
6
  *
4
7
  * 核心职责:
@@ -1 +1 @@
1
- {"version":3,"file":"crud-contract.d.ts","sourceRoot":"","sources":["../../../src/normalizers/crud-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAIV,0BAA0B,EAQ1B,WAAW,EASZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAuhCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG,0BAA0B,CAmDzG"}
1
+ {"version":3,"file":"crud-contract.d.ts","sourceRoot":"","sources":["../../../src/normalizers/crud-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAIV,0BAA0B,EAQ1B,WAAW,EASZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAuhCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG,0BAA0B,CAmDzG"}
@@ -1,4 +1,7 @@
1
1
  /**
2
+ * @deprecated 旧 v2 协议 Normalizer(buildCrudBusinessModuleContract)。
3
+ * 新 glue 链路不引用;仍被 gap-pipeline(run-gap-pipeline / dev/extract-contract)使用,故保留。
4
+ *
2
5
  * CRUD 业务模块契约 Normalizer
3
6
  *
4
7
  * 核心职责:
@@ -0,0 +1,88 @@
1
+ export type AiRuntimeTaskStatus = 'pending' | 'resolved' | 'blocked' | 'needs_review' | 'failed';
2
+ export type AiRuntimeTask = {
3
+ caseId: string;
4
+ title: string;
5
+ role: string;
6
+ businessIntent: string;
7
+ assertionExpectation: string;
8
+ entryContext: Record<string, unknown>;
9
+ knownContext: Record<string, unknown>;
10
+ codingRules: Record<string, unknown>;
11
+ status: AiRuntimeTaskStatus;
12
+ };
13
+ export type AiRuntimeResult = {
14
+ caseId: string;
15
+ status: AiRuntimeTaskStatus;
16
+ observation?: Record<string, unknown>;
17
+ decision?: Record<string, unknown>;
18
+ actionFlow?: string[];
19
+ verification?: Record<string, unknown>;
20
+ specSnippet?: string;
21
+ evidence?: Array<{
22
+ source: string;
23
+ note: string;
24
+ }>;
25
+ };
26
+ export type RepairRound = {
27
+ round: number;
28
+ status: 'failed' | 'repaired' | 'blocked' | 'needs_review';
29
+ failureType: string;
30
+ summary: string;
31
+ };
32
+ export type AiRuntimeTrace = {
33
+ schemaVersion: 'ep-stage-ai-runtime-trace/v1';
34
+ testcasePath: string;
35
+ createdAt: string;
36
+ tasks: AiRuntimeTask[];
37
+ results: AiRuntimeResult[];
38
+ repairRounds: RepairRound[];
39
+ };
40
+ /**
41
+ * 创建 AI Runtime Trace 初始结构。
42
+ *
43
+ * @param input - testcase 路径和本轮待执行任务。
44
+ * @returns 初始 trace。
45
+ */
46
+ export declare function createInitialAiRuntimeTrace(input: {
47
+ testcasePath: string;
48
+ tasks: AiRuntimeTask[];
49
+ }): AiRuntimeTrace;
50
+ /**
51
+ * 写入 AI Runtime Trace 文件。
52
+ *
53
+ * @param tracePath - trace 文件路径。
54
+ * @param trace - 待写入 trace 内容。
55
+ */
56
+ export declare function writeAiRuntimeTrace(tracePath: string, trace: AiRuntimeTrace): void;
57
+ /**
58
+ * 将 Playwright 执行输出归类为需要人工确认的修补方向。
59
+ *
60
+ * @param output - Playwright stdout/stderr 合并输出。
61
+ * @returns 失败类型、中文摘要和是否需要人工确认。
62
+ */
63
+ export declare function classifyRunFailure(output: string): {
64
+ failureType: string;
65
+ summary: string;
66
+ needsHumanDirection: boolean;
67
+ };
68
+ /**
69
+ * 计算下一个 repair round 编号。
70
+ *
71
+ * @param caseDir - 当前需求目录。
72
+ * @returns 从 1 开始递增的 repair round 编号。
73
+ */
74
+ export declare function nextRepairRound(caseDir: string): number;
75
+ /**
76
+ * 写入等待人审的修补报告。
77
+ *
78
+ * @param input - 需求目录、轮次、失败分类和执行输出。
79
+ * @returns repair-report.md 路径。
80
+ */
81
+ export declare function writeRepairReport(input: {
82
+ caseDir: string;
83
+ round: number;
84
+ failureType: string;
85
+ summary: string;
86
+ output: string;
87
+ }): string;
88
+ //# sourceMappingURL=ai-runtime-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-runtime-trace.d.ts","sourceRoot":"","sources":["../../../src/runtime/ai-runtime-trace.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEjG,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,8BAA8B,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,GAAG,cAAc,CASjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAGlF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAmCA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAyBT"}
@@ -0,0 +1,119 @@
1
+ import { existsSync, mkdirSync, readdirSync, writeFileSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import JSON5 from 'json5';
4
+ /**
5
+ * 创建 AI Runtime Trace 初始结构。
6
+ *
7
+ * @param input - testcase 路径和本轮待执行任务。
8
+ * @returns 初始 trace。
9
+ */
10
+ export function createInitialAiRuntimeTrace(input) {
11
+ return {
12
+ schemaVersion: 'ep-stage-ai-runtime-trace/v1',
13
+ testcasePath: input.testcasePath,
14
+ createdAt: new Date().toISOString(),
15
+ tasks: input.tasks,
16
+ results: [],
17
+ repairRounds: [],
18
+ };
19
+ }
20
+ /**
21
+ * 写入 AI Runtime Trace 文件。
22
+ *
23
+ * @param tracePath - trace 文件路径。
24
+ * @param trace - 待写入 trace 内容。
25
+ */
26
+ export function writeAiRuntimeTrace(tracePath, trace) {
27
+ mkdirSync(path.dirname(tracePath), { recursive: true });
28
+ writeFileSync(tracePath, `${JSON5.stringify(trace, null, 2)}\n`, 'utf8');
29
+ }
30
+ /**
31
+ * 将 Playwright 执行输出归类为需要人工确认的修补方向。
32
+ *
33
+ * @param output - Playwright stdout/stderr 合并输出。
34
+ * @returns 失败类型、中文摘要和是否需要人工确认。
35
+ */
36
+ export function classifyRunFailure(output) {
37
+ // 断言失败优先于 iframe/locator 关键字,因为 Playwright 错误信息里常同时包含这些词。
38
+ if (/expect\(.*\)\.(toHaveCount|toBe|toContain|toEqual|toHaveText|toBeVisible)/i.test(output)) {
39
+ return {
40
+ failureType: 'assertion_failure',
41
+ summary: '业务断言未通过(如行数、文本值不匹配)',
42
+ needsHumanDirection: true,
43
+ };
44
+ }
45
+ if (/frame|iframe/i.test(output)) {
46
+ return {
47
+ failureType: 'iframe_context_error',
48
+ summary: '疑似 iframe 上下文错误',
49
+ needsHumanDirection: true,
50
+ };
51
+ }
52
+ if (/locator|strict mode|Timeout/i.test(output)) {
53
+ return {
54
+ failureType: 'locator_or_wait_error',
55
+ summary: '疑似定位或等待时机错误',
56
+ needsHumanDirection: true,
57
+ };
58
+ }
59
+ if (/permission|403|unauthorized/i.test(output)) {
60
+ return {
61
+ failureType: 'permission_blocked',
62
+ summary: '疑似权限不足',
63
+ needsHumanDirection: true,
64
+ };
65
+ }
66
+ return {
67
+ failureType: 'unknown_failure',
68
+ summary: '未分类执行失败',
69
+ needsHumanDirection: true,
70
+ };
71
+ }
72
+ /**
73
+ * 计算下一个 repair round 编号。
74
+ *
75
+ * @param caseDir - 当前需求目录。
76
+ * @returns 从 1 开始递增的 repair round 编号。
77
+ */
78
+ export function nextRepairRound(caseDir) {
79
+ const repairRoot = path.join(caseDir, '.ep-stage', 'repair-runs');
80
+ if (!existsSync(repairRoot))
81
+ return 1;
82
+ const maxRound = readdirSync(repairRoot, { withFileTypes: true })
83
+ .filter((entry) => entry.isDirectory() && /^\d+$/.test(entry.name))
84
+ .map((entry) => Number(entry.name))
85
+ .reduce((max, current) => Math.max(max, current), 0);
86
+ return maxRound + 1;
87
+ }
88
+ /**
89
+ * 写入等待人审的修补报告。
90
+ *
91
+ * @param input - 需求目录、轮次、失败分类和执行输出。
92
+ * @returns repair-report.md 路径。
93
+ */
94
+ export function writeRepairReport(input) {
95
+ const roundName = String(input.round).padStart(3, '0');
96
+ const reportDir = path.join(input.caseDir, '.ep-stage', 'repair-runs', roundName);
97
+ mkdirSync(reportDir, { recursive: true });
98
+ const reportPath = path.join(reportDir, 'repair-report.md');
99
+ const body = [
100
+ `# 第 ${input.round} 轮修补报告`,
101
+ '',
102
+ `失败用例:完整 Playwright spec 执行失败`,
103
+ `失败类型:${input.failureType}`,
104
+ `失败摘要:${input.summary}`,
105
+ '',
106
+ '## 失败输出',
107
+ '',
108
+ '```text',
109
+ input.output.slice(0, 4000),
110
+ '```',
111
+ '',
112
+ '## 需要你确认',
113
+ '',
114
+ '请确认修补方向。Agent 不会在未确认时静默改变测试意图。',
115
+ '',
116
+ ].join('\n');
117
+ writeFileSync(reportPath, body, 'utf8');
118
+ return reportPath;
119
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 前端按钮交互行为推理器。
3
+ *
4
+ * 职责:
5
+ * 1. 从 code_list.json5 的 sourceRoot + pages.list.path 定位列表页 HTML;
6
+ * 2. 解析 HTML 中自定义按钮的 onclick 属性及同页内联脚本中的函数体;
7
+ * 3. 判断交互模式(确认弹窗 / toast / 异步调用 / 打开弹窗 / 通用);
8
+ * 4. 为每个 custom 按钮生成精确的中文步骤与断言;
9
+ * 5. 当 HTML 不可读、解析失败或模式未知时,回退到通用描述并记录原因。
10
+ */
11
+ import type { ExtractedCodeListJson5 } from '../extractors/code-list-json5.js';
12
+ /** 按钮交互模式。 */
13
+ export type ButtonInteractionPattern = 'confirm_then_execute' | 'toast' | 'async_call' | 'open_dialog' | 'generic';
14
+ /** 单按钮推理结果。 */
15
+ export type ButtonInteractionInference = {
16
+ label: string;
17
+ pattern: ButtonInteractionPattern;
18
+ functionName?: string;
19
+ steps: string;
20
+ assertion: string;
21
+ evidence: string[];
22
+ fallbackReason?: string;
23
+ };
24
+ /** 推理选项。 */
25
+ export type InferButtonInteractionsOptions = {
26
+ /** 覆盖 code_list.sourceRoot.root 的源码根目录。 */
27
+ sourceRootOverride?: string;
28
+ };
29
+ /**
30
+ * 推理所有 custom 按钮的交互行为。
31
+ *
32
+ * @param codeList - 解析后的 code_list.json5。
33
+ * @param options - 可选覆盖。
34
+ * @returns label -> 推理结果 的映射。
35
+ */
36
+ export declare function inferButtonInteractions(codeList: ExtractedCodeListJson5, options?: InferButtonInteractionsOptions): Map<string, ButtonInteractionInference>;
37
+ //# sourceMappingURL=button-interaction-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-interaction-inference.d.ts","sourceRoot":"","sources":["../../../src/testcase/button-interaction-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E,cAAc;AACd,MAAM,MAAM,wBAAwB,GAChC,sBAAsB,GACtB,OAAO,GACP,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd,eAAe;AACf,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,YAAY;AACZ,MAAM,MAAM,8BAA8B,GAAG;IAC3C,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AA0QF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,8BAA8B,GACvC,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAqIzC"}