@creatoria/miniapp-mcp 0.1.3 → 0.2.2
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/README.md +131 -66
- package/dist/app/cli/index.d.ts +6 -0
- package/dist/app/cli/index.d.ts.map +1 -0
- package/dist/app/cli/index.js +6 -0
- package/dist/app/cli/index.js.map +1 -0
- package/dist/app/index.d.ts +6 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +6 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/server/index.d.ts +7 -0
- package/dist/app/server/index.d.ts.map +1 -0
- package/dist/app/server/index.js +6 -0
- package/dist/app/server/index.js.map +1 -0
- package/dist/capabilities/assert/handlers/assert-handlers.d.ts +98 -0
- package/dist/capabilities/assert/handlers/assert-handlers.d.ts.map +1 -0
- package/dist/capabilities/assert/handlers/assert-handlers.js +179 -0
- package/dist/capabilities/assert/handlers/assert-handlers.js.map +1 -0
- package/dist/capabilities/assert/handlers/index.d.ts +7 -0
- package/dist/capabilities/assert/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/assert/handlers/index.js +7 -0
- package/dist/capabilities/assert/handlers/index.js.map +1 -0
- package/dist/capabilities/assert/index.d.ts +15 -0
- package/dist/capabilities/assert/index.d.ts.map +1 -0
- package/dist/capabilities/assert/index.js +90 -0
- package/dist/capabilities/assert/index.js.map +1 -0
- package/dist/capabilities/assert/schemas/index.d.ts +101 -0
- package/dist/capabilities/assert/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/assert/schemas/index.js +62 -0
- package/dist/capabilities/assert/schemas/index.js.map +1 -0
- package/dist/capabilities/automator/handlers/close.d.ts +18 -0
- package/dist/capabilities/automator/handlers/close.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/close.js +45 -0
- package/dist/capabilities/automator/handlers/close.js.map +1 -0
- package/dist/capabilities/automator/handlers/connect.d.ts +24 -0
- package/dist/capabilities/automator/handlers/connect.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/connect.js +51 -0
- package/dist/capabilities/automator/handlers/connect.js.map +1 -0
- package/dist/capabilities/automator/handlers/disconnect.d.ts +16 -0
- package/dist/capabilities/automator/handlers/disconnect.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/disconnect.js +44 -0
- package/dist/capabilities/automator/handlers/disconnect.js.map +1 -0
- package/dist/capabilities/automator/handlers/index.d.ts +8 -0
- package/dist/capabilities/automator/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/index.js +8 -0
- package/dist/capabilities/automator/handlers/index.js.map +1 -0
- package/dist/capabilities/automator/handlers/launch.d.ts +25 -0
- package/dist/capabilities/automator/handlers/launch.d.ts.map +1 -0
- package/dist/capabilities/automator/handlers/launch.js +61 -0
- package/dist/capabilities/automator/handlers/launch.js.map +1 -0
- package/dist/capabilities/automator/index.d.ts +15 -0
- package/dist/capabilities/automator/index.d.ts.map +1 -0
- package/dist/capabilities/automator/index.js +55 -0
- package/dist/capabilities/automator/index.js.map +1 -0
- package/dist/capabilities/automator/schemas/close.d.ts +5 -0
- package/dist/capabilities/automator/schemas/close.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/close.js +11 -0
- package/dist/capabilities/automator/schemas/close.js.map +1 -0
- package/dist/capabilities/automator/schemas/connect.d.ts +11 -0
- package/dist/capabilities/automator/schemas/connect.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/connect.js +19 -0
- package/dist/capabilities/automator/schemas/connect.js.map +1 -0
- package/dist/capabilities/automator/schemas/disconnect.d.ts +5 -0
- package/dist/capabilities/automator/schemas/disconnect.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/disconnect.js +11 -0
- package/dist/capabilities/automator/schemas/disconnect.js.map +1 -0
- package/dist/capabilities/automator/schemas/index.d.ts +9 -0
- package/dist/capabilities/automator/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/index.js +14 -0
- package/dist/capabilities/automator/schemas/index.js.map +1 -0
- package/dist/capabilities/automator/schemas/launch.d.ts +17 -0
- package/dist/capabilities/automator/schemas/launch.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/launch.js +26 -0
- package/dist/capabilities/automator/schemas/launch.js.map +1 -0
- package/dist/capabilities/element/handlers/element-handlers.d.ts +212 -0
- package/dist/capabilities/element/handlers/element-handlers.d.ts.map +1 -0
- package/dist/capabilities/element/handlers/element-handlers.js +383 -0
- package/dist/capabilities/element/handlers/element-handlers.js.map +1 -0
- package/dist/capabilities/element/handlers/index.d.ts +7 -0
- package/dist/capabilities/element/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/element/handlers/index.js +27 -0
- package/dist/capabilities/element/handlers/index.js.map +1 -0
- package/dist/capabilities/element/index.d.ts +20 -0
- package/dist/capabilities/element/index.d.ts.map +1 -0
- package/dist/capabilities/element/index.js +199 -0
- package/dist/capabilities/element/index.js.map +1 -0
- package/dist/capabilities/element/schemas/index.d.ts +325 -0
- package/dist/capabilities/element/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/element/schemas/index.js +168 -0
- package/dist/capabilities/element/schemas/index.js.map +1 -0
- package/dist/capabilities/index.d.ts +34 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +40 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/loader.d.ts +61 -0
- package/dist/capabilities/loader.d.ts.map +1 -0
- package/dist/capabilities/loader.js +164 -0
- package/dist/capabilities/loader.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.d.ts +24 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.js +37 -0
- package/dist/capabilities/miniprogram/handlers/call-wx.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.d.ts +32 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.js +51 -0
- package/dist/capabilities/miniprogram/handlers/evaluate.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/index.d.ts +12 -0
- package/dist/capabilities/miniprogram/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/index.js +12 -0
- package/dist/capabilities/miniprogram/handlers/index.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/navigate.d.ts +26 -0
- package/dist/capabilities/miniprogram/handlers/navigate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/navigate.js +56 -0
- package/dist/capabilities/miniprogram/handlers/navigate.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.d.ts +20 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.js +37 -0
- package/dist/capabilities/miniprogram/handlers/page-stack.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.d.ts +33 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.js +132 -0
- package/dist/capabilities/miniprogram/handlers/screenshot.js.map +1 -0
- package/dist/capabilities/miniprogram/handlers/system-info.d.ts +17 -0
- package/dist/capabilities/miniprogram/handlers/system-info.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/handlers/system-info.js +31 -0
- package/dist/capabilities/miniprogram/handlers/system-info.js.map +1 -0
- package/dist/capabilities/miniprogram/index.d.ts +15 -0
- package/dist/capabilities/miniprogram/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/index.js +69 -0
- package/dist/capabilities/miniprogram/index.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.d.ts +15 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.js +11 -0
- package/dist/capabilities/miniprogram/schemas/call-wx.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.d.ts +15 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.js +11 -0
- package/dist/capabilities/miniprogram/schemas/evaluate.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/index.d.ts +10 -0
- package/dist/capabilities/miniprogram/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/index.js +10 -0
- package/dist/capabilities/miniprogram/schemas/index.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/navigate.d.ts +18 -0
- package/dist/capabilities/miniprogram/schemas/navigate.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/navigate.js +22 -0
- package/dist/capabilities/miniprogram/schemas/navigate.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.d.ts +6 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.js +6 -0
- package/dist/capabilities/miniprogram/schemas/page-stack.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.d.ts +18 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.js +21 -0
- package/dist/capabilities/miniprogram/schemas/screenshot.js.map +1 -0
- package/dist/capabilities/miniprogram/schemas/system-info.d.ts +6 -0
- package/dist/capabilities/miniprogram/schemas/system-info.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/schemas/system-info.js +6 -0
- package/dist/capabilities/miniprogram/schemas/system-info.js.map +1 -0
- package/dist/capabilities/network/handlers/index.d.ts +7 -0
- package/dist/capabilities/network/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/network/handlers/index.js +7 -0
- package/dist/capabilities/network/handlers/index.js.map +1 -0
- package/dist/capabilities/network/handlers/network-handlers.d.ts +53 -0
- package/dist/capabilities/network/handlers/network-handlers.d.ts.map +1 -0
- package/dist/capabilities/network/handlers/network-handlers.js +127 -0
- package/dist/capabilities/network/handlers/network-handlers.js.map +1 -0
- package/dist/capabilities/network/index.d.ts +15 -0
- package/dist/capabilities/network/index.d.ts.map +1 -0
- package/dist/capabilities/network/index.js +69 -0
- package/dist/capabilities/network/index.js.map +1 -0
- package/dist/capabilities/network/schemas/index.d.ts +53 -0
- package/dist/capabilities/network/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/network/schemas/index.js +33 -0
- package/dist/capabilities/network/schemas/index.js.map +1 -0
- package/dist/capabilities/page/handlers/index.d.ts +7 -0
- package/dist/capabilities/page/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/page/handlers/index.js +7 -0
- package/dist/capabilities/page/handlers/index.js.map +1 -0
- package/dist/capabilities/page/handlers/page-handlers.d.ts +165 -0
- package/dist/capabilities/page/handlers/page-handlers.d.ts.map +1 -0
- package/dist/capabilities/page/handlers/page-handlers.js +258 -0
- package/dist/capabilities/page/handlers/page-handlers.js.map +1 -0
- package/dist/capabilities/page/index.d.ts +15 -0
- package/dist/capabilities/page/index.d.ts.map +1 -0
- package/dist/capabilities/page/index.js +83 -0
- package/dist/capabilities/page/index.js.map +1 -0
- package/dist/capabilities/page/schemas/index.d.ts +91 -0
- package/dist/capabilities/page/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/page/schemas/index.js +55 -0
- package/dist/capabilities/page/schemas/index.js.map +1 -0
- package/dist/capabilities/record/handlers/index.d.ts +7 -0
- package/dist/capabilities/record/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/record/handlers/index.js +7 -0
- package/dist/capabilities/record/handlers/index.js.map +1 -0
- package/dist/capabilities/record/handlers/record-handlers.d.ts +76 -0
- package/dist/capabilities/record/handlers/record-handlers.d.ts.map +1 -0
- package/dist/capabilities/record/handlers/record-handlers.js +255 -0
- package/dist/capabilities/record/handlers/record-handlers.js.map +1 -0
- package/dist/capabilities/record/index.d.ts +15 -0
- package/dist/capabilities/record/index.d.ts.map +1 -0
- package/dist/capabilities/record/index.js +69 -0
- package/dist/capabilities/record/index.js.map +1 -0
- package/dist/capabilities/record/schemas/index.d.ts +47 -0
- package/dist/capabilities/record/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/record/schemas/index.js +33 -0
- package/dist/capabilities/record/schemas/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +138 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +261 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/capabilities/schema-registry.d.ts +4 -0
- package/dist/capabilities/schema-registry.d.ts.map +1 -0
- package/dist/capabilities/schema-registry.js +18 -0
- package/dist/capabilities/schema-registry.js.map +1 -0
- package/dist/capabilities/schema-types.d.ts +22 -0
- package/dist/capabilities/schema-types.d.ts.map +1 -0
- package/dist/capabilities/schema-types.js +2 -0
- package/dist/capabilities/schema-types.js.map +1 -0
- package/dist/capabilities/snapshot/handlers/index.d.ts +7 -0
- package/dist/capabilities/snapshot/handlers/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/handlers/index.js +7 -0
- package/dist/capabilities/snapshot/handlers/index.js.map +1 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts +75 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.d.ts.map +1 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.js +201 -0
- package/dist/capabilities/snapshot/handlers/snapshot-handlers.js.map +1 -0
- package/dist/capabilities/snapshot/index.d.ts +15 -0
- package/dist/capabilities/snapshot/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/index.js +48 -0
- package/dist/capabilities/snapshot/index.js.map +1 -0
- package/dist/capabilities/snapshot/schemas/index.d.ts +47 -0
- package/dist/capabilities/snapshot/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/schemas/index.js +28 -0
- package/dist/capabilities/snapshot/schemas/index.js.map +1 -0
- package/dist/config/loader.js +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/core/element-ref.d.ts +1 -43
- package/dist/core/element-ref.d.ts.map +1 -1
- package/dist/core/element-ref.js +1 -212
- package/dist/core/element-ref.js.map +1 -1
- package/dist/core/logger.d.ts +1 -54
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +1 -377
- package/dist/core/logger.js.map +1 -1
- package/dist/core/output.d.ts +1 -20
- package/dist/core/output.d.ts.map +1 -1
- package/dist/core/output.js +1 -55
- package/dist/core/output.js.map +1 -1
- package/dist/core/report-generator.d.ts +1 -23
- package/dist/core/report-generator.d.ts.map +1 -1
- package/dist/core/report-generator.js +1 -211
- package/dist/core/report-generator.js.map +1 -1
- package/dist/core/session.d.ts +2 -82
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +2 -305
- package/dist/core/session.js.map +1 -1
- package/dist/core/timeout.d.ts +1 -48
- package/dist/core/timeout.d.ts.map +1 -1
- package/dist/core/timeout.js +1 -66
- package/dist/core/timeout.js.map +1 -1
- package/dist/core/tool-logger.d.ts +1 -82
- package/dist/core/tool-logger.d.ts.map +1 -1
- package/dist/core/tool-logger.js +1 -452
- package/dist/core/tool-logger.js.map +1 -1
- package/dist/core/validation.d.ts +1 -38
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +1 -92
- package/dist/core/validation.js.map +1 -1
- package/dist/runtime/element/element-ref.d.ts +44 -0
- package/dist/runtime/element/element-ref.d.ts.map +1 -0
- package/dist/runtime/element/element-ref.js +214 -0
- package/dist/runtime/element/element-ref.js.map +1 -0
- package/dist/runtime/element/index.d.ts +2 -0
- package/dist/runtime/element/index.d.ts.map +1 -0
- package/dist/runtime/element/index.js +2 -0
- package/dist/runtime/element/index.js.map +1 -0
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +11 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/logging/index.d.ts +3 -0
- package/dist/runtime/logging/index.d.ts.map +1 -0
- package/dist/runtime/logging/index.js +3 -0
- package/dist/runtime/logging/index.js.map +1 -0
- package/dist/runtime/logging/logger.d.ts +55 -0
- package/dist/runtime/logging/logger.d.ts.map +1 -0
- package/dist/runtime/logging/logger.js +379 -0
- package/dist/runtime/logging/logger.js.map +1 -0
- package/dist/runtime/logging/tool-logger.d.ts +83 -0
- package/dist/runtime/logging/tool-logger.d.ts.map +1 -0
- package/dist/runtime/logging/tool-logger.js +454 -0
- package/dist/runtime/logging/tool-logger.js.map +1 -0
- package/dist/runtime/outputs/index.d.ts +3 -0
- package/dist/runtime/outputs/index.d.ts.map +1 -0
- package/dist/runtime/outputs/index.js +3 -0
- package/dist/runtime/outputs/index.js.map +1 -0
- package/dist/runtime/outputs/output-manager.d.ts +12 -0
- package/dist/runtime/outputs/output-manager.d.ts.map +1 -0
- package/dist/runtime/outputs/output-manager.js +39 -0
- package/dist/runtime/outputs/output-manager.js.map +1 -0
- package/dist/runtime/outputs/report-generator.d.ts +5 -0
- package/dist/runtime/outputs/report-generator.d.ts.map +1 -0
- package/dist/runtime/outputs/report-generator.js +175 -0
- package/dist/runtime/outputs/report-generator.js.map +1 -0
- package/dist/runtime/retry/index.d.ts +5 -0
- package/dist/runtime/retry/index.d.ts.map +1 -0
- package/dist/runtime/retry/index.js +5 -0
- package/dist/runtime/retry/index.js.map +1 -0
- package/dist/runtime/retry/retry.d.ts +61 -0
- package/dist/runtime/retry/retry.d.ts.map +1 -0
- package/dist/runtime/retry/retry.js +90 -0
- package/dist/runtime/retry/retry.js.map +1 -0
- package/dist/runtime/session/index.d.ts +3 -0
- package/dist/runtime/session/index.d.ts.map +1 -0
- package/dist/runtime/session/index.js +3 -0
- package/dist/runtime/session/index.js.map +1 -0
- package/dist/runtime/session/store.d.ts +28 -0
- package/dist/runtime/session/store.d.ts.map +1 -0
- package/dist/runtime/session/store.js +154 -0
- package/dist/runtime/session/store.js.map +1 -0
- package/dist/runtime/session/utils/cleanup.d.ts +3 -0
- package/dist/runtime/session/utils/cleanup.d.ts.map +1 -0
- package/dist/runtime/session/utils/cleanup.js +78 -0
- package/dist/runtime/session/utils/cleanup.js.map +1 -0
- package/dist/runtime/timeout/index.d.ts +2 -0
- package/dist/runtime/timeout/index.d.ts.map +1 -0
- package/dist/runtime/timeout/index.js +2 -0
- package/dist/runtime/timeout/index.js.map +1 -0
- package/dist/runtime/timeout/timeout.d.ts +59 -0
- package/dist/runtime/timeout/timeout.d.ts.map +1 -0
- package/dist/runtime/timeout/timeout.js +77 -0
- package/dist/runtime/timeout/timeout.js.map +1 -0
- package/dist/runtime/validation/index.d.ts +2 -0
- package/dist/runtime/validation/index.d.ts.map +1 -0
- package/dist/runtime/validation/index.js +2 -0
- package/dist/runtime/validation/index.js.map +1 -0
- package/dist/runtime/validation/validation.d.ts +39 -0
- package/dist/runtime/validation/validation.d.ts.map +1 -0
- package/dist/runtime/validation/validation.js +93 -0
- package/dist/runtime/validation/validation.js.map +1 -0
- package/dist/schemas/automator/miniprogram_close.json +12 -0
- package/dist/schemas/automator/miniprogram_connect.json +19 -0
- package/dist/schemas/automator/miniprogram_disconnect.json +12 -0
- package/dist/schemas/automator/miniprogram_launch.json +30 -0
- package/dist/server.js +5 -5
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/miniprogram.d.ts +11 -2
- package/dist/tools/miniprogram.d.ts.map +1 -1
- package/dist/tools/miniprogram.js +111 -41
- package/dist/tools/miniprogram.js.map +1 -1
- package/dist/tools/page.js +2 -2
- package/dist/tools/page.js.map +1 -1
- package/docs/current/01-architecture-migration.md +337 -0
- package/docs/current/02-screenshot-timeout-fix.md +589 -0
- package/docs/current/README.md +226 -0
- package/docs/directory-structure-and-code-style-best-practices.md +91 -0
- package/docs/migration/README.md +34 -0
- package/docs/migration/TC-ALIGN-01-notes.md +35 -0
- package/docs/migration/runtime-skeleton.md +50 -0
- package/docs/migration/tool-schema-strategy.md +75 -0
- package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +14 -14
- package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +7 -7
- package/package.json +4 -2
- package/docs/SIMPLE_USAGE.md +0 -210
- package/docs/architecture.E-Docs.md +0 -1359
- package/docs/architecture.F1.md +0 -720
- package/docs/architecture.F2.md +0 -871
- package/docs/architecture.F3.md +0 -905
- package/docs/architecture.md +0 -90
- package/docs/charter.A1.align.yaml +0 -170
- package/docs/charter.A2.align.yaml +0 -199
- package/docs/charter.A3.align.yaml +0 -242
- package/docs/charter.A4.align.yaml +0 -227
- package/docs/charter.B1.align.yaml +0 -179
- package/docs/charter.B2.align.yaml +0 -200
- package/docs/charter.B3.align.yaml +0 -200
- package/docs/charter.B4.align.yaml +0 -188
- package/docs/charter.C1.align.yaml +0 -190
- package/docs/charter.C2.align.yaml +0 -202
- package/docs/charter.C3.align.yaml +0 -211
- package/docs/charter.C4.align.yaml +0 -263
- package/docs/charter.C5.align.yaml +0 -220
- package/docs/charter.D1.align.yaml +0 -190
- package/docs/charter.D2.align.yaml +0 -234
- package/docs/charter.D3.align.yaml +0 -206
- package/docs/charter.E-Docs.align.yaml +0 -294
- package/docs/charter.F1.align.yaml +0 -193
- package/docs/charter.F2.align.yaml +0 -248
- package/docs/charter.F3.align.yaml +0 -287
- package/docs/charter.G.align.yaml +0 -174
- package/docs/charter.align.yaml +0 -111
- package/docs/maintenance.md +0 -682
- package/docs/playwright-mcp/350/260/203/347/240/224.md +0 -53
- package/docs/setup-guide.md +0 -775
- package/docs/tasks.A1.atomize.md +0 -296
- package/docs/tasks.A2.atomize.md +0 -408
- package/docs/tasks.A3.atomize.md +0 -564
- package/docs/tasks.A4.atomize.md +0 -496
- package/docs/tasks.B1.atomize.md +0 -352
- package/docs/tasks.B2.atomize.md +0 -561
- package/docs/tasks.B3.atomize.md +0 -508
- package/docs/tasks.B4.atomize.md +0 -504
- package/docs/tasks.C1.atomize.md +0 -540
- package/docs/tasks.C2.atomize.md +0 -665
- package/docs/tasks.C3.atomize.md +0 -745
- package/docs/tasks.C4.atomize.md +0 -908
- package/docs/tasks.C5.atomize.md +0 -755
- package/docs/tasks.D1.atomize.md +0 -547
- package/docs/tasks.D2.atomize.md +0 -619
- package/docs/tasks.D3.atomize.md +0 -790
- package/docs/tasks.E-Docs.atomize.md +0 -1204
- package/docs/tasks.atomize.md +0 -189
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
# Charter: [C5] 工具注册器
|
|
2
|
-
|
|
3
|
-
task_id: C5
|
|
4
|
-
task_name: 工具注册器实现(registerTools 函数 + 元数据系统)
|
|
5
|
-
stage: C
|
|
6
|
-
phase: Align (Retrospective)
|
|
7
|
-
created_at: "2025-10-02"
|
|
8
|
-
status: COMPLETED
|
|
9
|
-
estimated_hours: 3-4
|
|
10
|
-
actual_hours: 4
|
|
11
|
-
|
|
12
|
-
## Goal (目标)
|
|
13
|
-
|
|
14
|
-
实现统一的工具注册系统,按 capabilities 动态注册工具,提供工具分类、元数据管理和验证机制。
|
|
15
|
-
|
|
16
|
-
**核心交付物**:
|
|
17
|
-
- `src/tools/index.ts` - registerTools 函数 + 元数据系统 (1433 lines)
|
|
18
|
-
- `tests/unit/tool-registration.test.ts` - 单元测试 (400 lines, 46 tests)
|
|
19
|
-
- 功能:
|
|
20
|
-
- registerTools(server, context) 函数
|
|
21
|
-
- 6 个工具分类系统(AUTOMATOR, MINIPROGRAM, PAGE, ELEMENT, ASSERT, SNAPSHOT)
|
|
22
|
-
- TOOL_CATEGORIES 元数据(工具分类、描述、数量统计)
|
|
23
|
-
- Capabilities 过滤机制
|
|
24
|
-
- Schema 验证和 handler 绑定
|
|
25
|
-
|
|
26
|
-
## Non-Goals (非目标)
|
|
27
|
-
|
|
28
|
-
- ❌ 不实现工具的具体逻辑(由 C1-C4 完成)
|
|
29
|
-
- ❌ 不实现动态工具加载(静态注册)
|
|
30
|
-
- ❌ 不实现工具版本管理
|
|
31
|
-
- ❌ 不实现工具权限控制
|
|
32
|
-
|
|
33
|
-
## Scope (范围)
|
|
34
|
-
|
|
35
|
-
### In Scope (包含)
|
|
36
|
-
|
|
37
|
-
1. **registerTools 函数**
|
|
38
|
-
- ✅ 接收 MCP Server 实例
|
|
39
|
-
- ✅ 接收 ToolContext(getSession, deleteSession 回调)
|
|
40
|
-
- ✅ 根据 capabilities 过滤工具
|
|
41
|
-
- ✅ 批量注册工具到 Server
|
|
42
|
-
- ✅ 返回已注册工具列表
|
|
43
|
-
|
|
44
|
-
2. **工具分类系统**
|
|
45
|
-
- ✅ AUTOMATOR_TOOLS: 4 个工具(launch, connect, disconnect, close)
|
|
46
|
-
- ✅ MINIPROGRAM_TOOLS: 6 个工具(navigate, callWx, evaluate, screenshot, getPageStack, getSystemInfo)
|
|
47
|
-
- ✅ PAGE_TOOLS: 8 个工具(query, queryAll, waitFor, getData, setData, callMethod, getSize, getScrollTop)
|
|
48
|
-
- ✅ ELEMENT_TOOLS: 23 个核心工具 + 子类操作
|
|
49
|
-
- ✅ ASSERT_TOOLS: 断言工具(Stage D)
|
|
50
|
-
- ✅ SNAPSHOT_TOOLS: 快照工具(Stage D)
|
|
51
|
-
|
|
52
|
-
3. **TOOL_CATEGORIES 元数据**
|
|
53
|
-
- ✅ 工具分类名称和描述
|
|
54
|
-
- ✅ 每个分类包含的工具列表
|
|
55
|
-
- ✅ 工具数量统计
|
|
56
|
-
- ✅ Capability 映射关系
|
|
57
|
-
|
|
58
|
-
4. **Capabilities 过滤**
|
|
59
|
-
- ✅ 支持 'core'(Automator + MiniProgram + Page + Element)
|
|
60
|
-
- ✅ 支持 'assert'(Assert 工具)
|
|
61
|
-
- ✅ 支持 'snapshot'(Snapshot 工具)
|
|
62
|
-
- ✅ 支持 'record'(Record 工具)
|
|
63
|
-
- ✅ 支持 'network'(Network Mock 工具)
|
|
64
|
-
- ✅ 支持 'tracing'(Tracing 工具)
|
|
65
|
-
- ✅ 支持组合 capabilities
|
|
66
|
-
|
|
67
|
-
5. **工具验证**
|
|
68
|
-
- ✅ Schema 定义验证
|
|
69
|
-
- ✅ Handler 函数存在性检查
|
|
70
|
-
- ✅ 工具名称唯一性检查
|
|
71
|
-
- ✅ 错误日志和异常处理
|
|
72
|
-
|
|
73
|
-
6. **ToolContext 接口**
|
|
74
|
-
- ✅ getSession(sessionId): Session
|
|
75
|
-
- ✅ deleteSession(sessionId): void
|
|
76
|
-
- ✅ 传递给所有工具 handler
|
|
77
|
-
|
|
78
|
-
### Out of Scope (不包含)
|
|
79
|
-
|
|
80
|
-
- ❌ 工具具体实现(C1-C4)
|
|
81
|
-
- ❌ 动态工具加载
|
|
82
|
-
- ❌ 工具版本管理
|
|
83
|
-
- ❌ 工具权限控制
|
|
84
|
-
- ❌ 工具使用统计
|
|
85
|
-
|
|
86
|
-
## Constraints (约束)
|
|
87
|
-
|
|
88
|
-
### Technical Constraints (技术约束)
|
|
89
|
-
|
|
90
|
-
1. **MCP SDK 兼容**
|
|
91
|
-
- 使用 Server.setRequestHandler(CallToolRequestSchema, ...)
|
|
92
|
-
- 遵循 MCP 工具定义规范
|
|
93
|
-
- 正确返回工具列表和执行结果
|
|
94
|
-
|
|
95
|
-
2. **工具命名规范**
|
|
96
|
-
- 格式: `miniapp_{level}_{action}`
|
|
97
|
-
- 示例: `miniapp_automator_launch`, `miniapp_element_tap`
|
|
98
|
-
- 全局唯一性
|
|
99
|
-
|
|
100
|
-
3. **Capabilities 映射**
|
|
101
|
-
- core: Automator + MiniProgram + Page + Element
|
|
102
|
-
- assert: Assert 工具
|
|
103
|
-
- snapshot: Snapshot 工具
|
|
104
|
-
- record: Record 工具
|
|
105
|
-
- network: Network Mock 工具
|
|
106
|
-
- tracing: Tracing 工具
|
|
107
|
-
|
|
108
|
-
4. **ToolContext 依赖注入**
|
|
109
|
-
- 通过参数传递 getSession/deleteSession
|
|
110
|
-
- 避免全局状态
|
|
111
|
-
- 便于测试和扩展
|
|
112
|
-
|
|
113
|
-
### Business Constraints (业务约束)
|
|
114
|
-
|
|
115
|
-
1. **注册时间**: <100ms
|
|
116
|
-
2. **工具总数**: 当前 ~60 个工具(core + assert + snapshot)
|
|
117
|
-
3. **内存占用**: 注册后 <10MB
|
|
118
|
-
|
|
119
|
-
## Success Criteria (成功标准)
|
|
120
|
-
|
|
121
|
-
### Functional Criteria (功能标准)
|
|
122
|
-
|
|
123
|
-
- ✅ registerTools 正确注册工具
|
|
124
|
-
- ✅ capabilities 过滤正确
|
|
125
|
-
- ✅ 工具 handler 正确绑定
|
|
126
|
-
- ✅ schema 验证通过
|
|
127
|
-
- ✅ 返回正确的工具列表
|
|
128
|
-
- ✅ TOOL_CATEGORIES 元数据完整
|
|
129
|
-
|
|
130
|
-
### Quality Criteria (质量标准)
|
|
131
|
-
|
|
132
|
-
- ✅ TypeScript 编译 0 错误
|
|
133
|
-
- ✅ 单元测试覆盖率 >80%
|
|
134
|
-
- ✅ 46 个测试用例全部通过
|
|
135
|
-
- ✅ 无 ESLint 错误
|
|
136
|
-
- ✅ JSDoc 注释完整
|
|
137
|
-
|
|
138
|
-
### Documentation Criteria (文档标准)
|
|
139
|
-
|
|
140
|
-
- ✅ registerTools 函数有详细注释
|
|
141
|
-
- ✅ TOOL_CATEGORIES 有清晰说明
|
|
142
|
-
- ✅ Capabilities 映射文档完整
|
|
143
|
-
- ⏳ charter.C5.align.yaml (本文档)
|
|
144
|
-
- ⏳ tasks.C5.atomize.md (任务卡)
|
|
145
|
-
|
|
146
|
-
## Definition of Done (完成标准)
|
|
147
|
-
|
|
148
|
-
**代码**:
|
|
149
|
-
- ✅ `src/tools/index.ts` 实现完成 (1433 lines)
|
|
150
|
-
- ✅ TypeScript 编译通过
|
|
151
|
-
- ✅ registerTools 函数正确工作
|
|
152
|
-
|
|
153
|
-
**测试**:
|
|
154
|
-
- ✅ `tests/unit/tool-registration.test.ts` (400 lines)
|
|
155
|
-
- ✅ 46 个测试用例全部通过
|
|
156
|
-
- ✅ 覆盖所有 capabilities 组合
|
|
157
|
-
- ✅ Mock Server 和 Context
|
|
158
|
-
|
|
159
|
-
**文档**:
|
|
160
|
-
- ⏳ charter.C5.align.yaml (追溯)
|
|
161
|
-
- ⏳ tasks.C5.atomize.md (追溯)
|
|
162
|
-
- ✅ README 工具列表更新
|
|
163
|
-
|
|
164
|
-
**Git**:
|
|
165
|
-
- ✅ 已提交(Stage C 提交)
|
|
166
|
-
|
|
167
|
-
## Dependencies (依赖)
|
|
168
|
-
|
|
169
|
-
**前置任务**:
|
|
170
|
-
- ✅ C1: Automator 工具
|
|
171
|
-
- ✅ C2: MiniProgram 工具
|
|
172
|
-
- ✅ C3: Page 工具
|
|
173
|
-
- ✅ C4: Element 工具
|
|
174
|
-
- ✅ B1: MCP Server 骨架
|
|
175
|
-
|
|
176
|
-
**后续任务**:
|
|
177
|
-
- C5 → E3 (CLI 传递 capabilities 参数)
|
|
178
|
-
- C5 → D1 (Assert 工具注册)
|
|
179
|
-
- C5 → D2 (Snapshot 工具注册)
|
|
180
|
-
|
|
181
|
-
## Risks (风险)
|
|
182
|
-
|
|
183
|
-
### Technical Risks (技术风险)
|
|
184
|
-
|
|
185
|
-
1. **工具数量增长** - 🟡 中风险
|
|
186
|
-
- 影响:工具过多可能影响性能
|
|
187
|
-
- 缓解:按 capabilities 分组加载
|
|
188
|
-
|
|
189
|
-
2. **命名冲突** - 🟢 已缓解
|
|
190
|
-
- 风险:工具名称重复
|
|
191
|
-
- 缓解:注册时检查唯一性
|
|
192
|
-
|
|
193
|
-
3. **Schema 验证失败** - 🟢 已缓解
|
|
194
|
-
- 风险:Schema 定义错误导致注册失败
|
|
195
|
-
- 缓解:单元测试覆盖所有工具
|
|
196
|
-
|
|
197
|
-
### Business Risks (业务风险)
|
|
198
|
-
|
|
199
|
-
1. **注册时间过长** - 🟢 已缓解
|
|
200
|
-
- 影响:启动慢
|
|
201
|
-
- 缓解:优化注册逻辑,<100ms
|
|
202
|
-
|
|
203
|
-
## Open Questions (未决问题)
|
|
204
|
-
|
|
205
|
-
- ❓ 是否需要支持动态工具加载?(当前静态注册)
|
|
206
|
-
- ❓ 是否需要工具版本管理?(当前无版本)
|
|
207
|
-
- ❓ 是否需要工具使用统计?(当前不收集)
|
|
208
|
-
|
|
209
|
-
## References (参考资料)
|
|
210
|
-
|
|
211
|
-
- `docs/完整实现方案.md` - 工具分层设计
|
|
212
|
-
- `docs/微信小程序自动化完整操作手册.md` - 完整 API 参考
|
|
213
|
-
- `@modelcontextprotocol/sdk` 文档
|
|
214
|
-
- C1-C4 任务文档
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
**Approval**: ✅ RETROSPECTIVE APPROVED
|
|
219
|
-
**Implementation**: ✅ COMPLETED (1433 lines + 46 tests)
|
|
220
|
-
**Documentation**: ⏳ IN PROGRESS
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
# Charter: [D1] 断言工具集
|
|
2
|
-
|
|
3
|
-
task_id: D1
|
|
4
|
-
task_name: 断言工具集实现
|
|
5
|
-
stage: D
|
|
6
|
-
phase: Align (Retrospective)
|
|
7
|
-
created_at: "2025-10-02"
|
|
8
|
-
status: COMPLETED
|
|
9
|
-
estimated_hours: 2-3
|
|
10
|
-
actual_hours: 2.5
|
|
11
|
-
|
|
12
|
-
## Goal (目标)
|
|
13
|
-
|
|
14
|
-
实现完整的断言工具集,为小程序自动化测试提供强大的验证能力。
|
|
15
|
-
|
|
16
|
-
**核心交付物**:
|
|
17
|
-
- `src/tools/assert.ts` - 9 个断言工具实现 (465 lines)
|
|
18
|
-
- `tests/unit/assert.test.ts` - 单元测试 (394 lines, 27 tests)
|
|
19
|
-
- 工具: assertExists, assertNotExists, assertText, assertTextContains, assertValue, assertAttribute, assertProperty, assertData, assertVisible
|
|
20
|
-
|
|
21
|
-
## Non-Goals (非目标)
|
|
22
|
-
|
|
23
|
-
- ❌ 不实现自定义断言逻辑(仅标准断言)
|
|
24
|
-
- ❌ 不实现软断言(所有断言失败即抛错)
|
|
25
|
-
- ❌ 不实现断言结果聚合报告(留给未来)
|
|
26
|
-
- ❌ 不实现快照比对(属于 D2)
|
|
27
|
-
|
|
28
|
-
## Scope (范围)
|
|
29
|
-
|
|
30
|
-
### In Scope (包含)
|
|
31
|
-
|
|
32
|
-
1. **元素存在性断言**
|
|
33
|
-
- ✅ assertExists - 断言元素存在
|
|
34
|
-
- ✅ assertNotExists - 断言元素不存在
|
|
35
|
-
- ✅ 支持 selector 和 pagePath 参数
|
|
36
|
-
|
|
37
|
-
2. **文本内容断言**
|
|
38
|
-
- ✅ assertText - 精确文本匹配
|
|
39
|
-
- ✅ assertTextContains - 文本包含子串
|
|
40
|
-
- ✅ 返回期望值和实际值对比
|
|
41
|
-
|
|
42
|
-
3. **表单值断言**
|
|
43
|
-
- ✅ assertValue - input/textarea 值断言
|
|
44
|
-
- ✅ 支持任意表单组件
|
|
45
|
-
|
|
46
|
-
4. **属性和状态断言**
|
|
47
|
-
- ✅ assertAttribute - HTML 属性断言
|
|
48
|
-
- ✅ assertProperty - JavaScript 属性断言
|
|
49
|
-
- ✅ assertVisible - 可见性断言(基于尺寸)
|
|
50
|
-
|
|
51
|
-
5. **页面数据断言**
|
|
52
|
-
- ✅ assertData - Page data 断言
|
|
53
|
-
- ✅ 支持嵌套路径访问
|
|
54
|
-
|
|
55
|
-
### Out of Scope (不包含)
|
|
56
|
-
|
|
57
|
-
- ❌ 正则表达式匹配(使用字符串精确/包含匹配)
|
|
58
|
-
- ❌ 数值范围断言(使用精确匹配)
|
|
59
|
-
- ❌ 数组长度/内容断言(使用 JSON 比较)
|
|
60
|
-
- ❌ 自定义匹配器
|
|
61
|
-
|
|
62
|
-
## Constraints (约束)
|
|
63
|
-
|
|
64
|
-
### Technical Constraints (技术约束)
|
|
65
|
-
|
|
66
|
-
1. **工具依赖**
|
|
67
|
-
- 复用 Page 工具(query, getData)
|
|
68
|
-
- 复用 Element 工具(getText, getValue, getAttribute, etc.)
|
|
69
|
-
- 通过函数调用而非直接 SessionState 访问
|
|
70
|
-
|
|
71
|
-
2. **错误格式**
|
|
72
|
-
- 所有断言失败抛出 Error
|
|
73
|
-
- 错误消息格式: `Assertion failed: <详细说明>`
|
|
74
|
-
- 包含期望值 vs 实际值对比
|
|
75
|
-
|
|
76
|
-
3. **返回值结构**
|
|
77
|
-
- 成功: `{ success: true, message: string, actual?: any }`
|
|
78
|
-
- 失败: 抛出 Error(不返回 success: false)
|
|
79
|
-
|
|
80
|
-
4. **日志记录**
|
|
81
|
-
- 使用 session.logger 记录所有断言
|
|
82
|
-
- 包含 info(成功)和 error(失败)
|
|
83
|
-
|
|
84
|
-
### Business Constraints (业务约束)
|
|
85
|
-
|
|
86
|
-
1. **执行时间**: 单个断言 <500ms
|
|
87
|
-
2. **错误信息**: 必须清晰指明失败原因
|
|
88
|
-
3. **可组合性**: 可在测试流程中链式使用
|
|
89
|
-
|
|
90
|
-
## Success Criteria (成功标准)
|
|
91
|
-
|
|
92
|
-
### Functional Criteria (功能标准)
|
|
93
|
-
|
|
94
|
-
- ✅ assertExists 正确检测元素存在性
|
|
95
|
-
- ✅ assertNotExists 正确检测元素不存在
|
|
96
|
-
- ✅ assertText 精确匹配文本内容
|
|
97
|
-
- ✅ assertTextContains 检测子串包含
|
|
98
|
-
- ✅ assertValue 验证表单值
|
|
99
|
-
- ✅ assertAttribute 验证 HTML 属性
|
|
100
|
-
- ✅ assertProperty 验证 JS 属性
|
|
101
|
-
- ✅ assertData 验证页面数据(含嵌套)
|
|
102
|
-
- ✅ assertVisible 验证元素可见性(非零尺寸)
|
|
103
|
-
|
|
104
|
-
### Quality Criteria (质量标准)
|
|
105
|
-
|
|
106
|
-
- ✅ TypeScript 编译 0 错误
|
|
107
|
-
- ✅ 单元测试覆盖率 >90%
|
|
108
|
-
- ✅ 27 个测试用例全部通过
|
|
109
|
-
- ✅ 无 ESLint 错误
|
|
110
|
-
- ✅ JSDoc 注释完整
|
|
111
|
-
|
|
112
|
-
### Documentation Criteria (文档标准)
|
|
113
|
-
|
|
114
|
-
- ✅ 每个工具有函数签名和 JSDoc
|
|
115
|
-
- ✅ 错误消息格式统一
|
|
116
|
-
- ⏳ charter.D1.align.yaml (本文档)
|
|
117
|
-
- ⏳ tasks.D1.atomize.md (任务卡)
|
|
118
|
-
|
|
119
|
-
## Definition of Done (完成标准)
|
|
120
|
-
|
|
121
|
-
**代码**:
|
|
122
|
-
- ✅ `src/tools/assert.ts` 实现完成 (465 lines)
|
|
123
|
-
- ✅ 9 个断言工具全部实现
|
|
124
|
-
- ✅ TypeScript 编译通过
|
|
125
|
-
|
|
126
|
-
**测试**:
|
|
127
|
-
- ✅ `tests/unit/assert.test.ts` (394 lines)
|
|
128
|
-
- ✅ 27 个测试用例全部通过
|
|
129
|
-
- ✅ 覆盖成功和失败场景
|
|
130
|
-
- ✅ Mock page/element 工具依赖
|
|
131
|
-
|
|
132
|
-
**文档**:
|
|
133
|
-
- ⏳ charter.D1.align.yaml (追溯)
|
|
134
|
-
- ⏳ tasks.D1.atomize.md (追溯)
|
|
135
|
-
- ✅ 代码注释完整
|
|
136
|
-
|
|
137
|
-
**Git**:
|
|
138
|
-
- ✅ 已提交(commit: feat: [D1] 断言工具集实现)
|
|
139
|
-
|
|
140
|
-
## Dependencies (依赖)
|
|
141
|
-
|
|
142
|
-
**前置任务**:
|
|
143
|
-
- ✅ C3: Page 工具(query, getData)
|
|
144
|
-
- ✅ C4: Element 工具(getText, getValue, getAttribute, getProperty, getSize)
|
|
145
|
-
- ✅ B2: SessionState 和日志系统
|
|
146
|
-
|
|
147
|
-
**后续任务**:
|
|
148
|
-
- D1 → Stage E (集成到工具注册器)
|
|
149
|
-
- D1 → Stage F (端到端测试示例)
|
|
150
|
-
|
|
151
|
-
## Risks (风险)
|
|
152
|
-
|
|
153
|
-
### Technical Risks (技术风险)
|
|
154
|
-
|
|
155
|
-
1. **断言性能** - 🟢 低风险
|
|
156
|
-
- 影响:大量断言可能拖慢测试
|
|
157
|
-
- 缓解:每个断言基于单次元素/数据查询
|
|
158
|
-
|
|
159
|
-
2. **错误消息可读性** - 🟢 已缓解
|
|
160
|
-
- 风险:期望值 vs 实际值不清晰
|
|
161
|
-
- 缓解:统一格式 `Expected: "...", Actual: "..."`
|
|
162
|
-
|
|
163
|
-
3. **深度嵌套数据比较** - 🟡 中风险
|
|
164
|
-
- 风险:JSON.stringify 可能无法正确比较复杂对象
|
|
165
|
-
- 缓解:当前使用 JSON 序列化比较,未来可引入深度比较库
|
|
166
|
-
|
|
167
|
-
### Business Risks (业务风险)
|
|
168
|
-
|
|
169
|
-
1. **断言失败定位** - 🟢 已缓解
|
|
170
|
-
- 影响:用户不知道哪个断言失败
|
|
171
|
-
- 缓解:错误消息包含 selector/refId/path 信息
|
|
172
|
-
|
|
173
|
-
## Open Questions (未决问题)
|
|
174
|
-
|
|
175
|
-
- ❓ 是否需要支持正则表达式匹配?(当前仅字符串)
|
|
176
|
-
- ❓ 是否需要软断言(收集所有失败后统一报告)?(当前硬断言)
|
|
177
|
-
- ❓ 是否需要自定义匹配器扩展机制?(当前固定 9 个工具)
|
|
178
|
-
|
|
179
|
-
## References (参考资料)
|
|
180
|
-
|
|
181
|
-
- `docs/完整实现方案.md` - 工具分层设计
|
|
182
|
-
- `src/tools/page.ts` - Page 工具依赖
|
|
183
|
-
- `src/tools/element.ts` - Element 工具依赖
|
|
184
|
-
- Playwright Assertions - 断言设计参考
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
**Approval**: ✅ RETROSPECTIVE APPROVED
|
|
189
|
-
**Implementation**: ✅ COMPLETED
|
|
190
|
-
**Documentation**: ⏳ IN PROGRESS
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# Charter: [D2] 快照工具集
|
|
2
|
-
|
|
3
|
-
task_id: D2
|
|
4
|
-
task_name: 快照工具集实现
|
|
5
|
-
stage: D
|
|
6
|
-
phase: Align (Retrospective)
|
|
7
|
-
created_at: "2025-10-02"
|
|
8
|
-
status: COMPLETED
|
|
9
|
-
estimated_hours: 2-3
|
|
10
|
-
actual_hours: 2
|
|
11
|
-
|
|
12
|
-
## Goal (目标)
|
|
13
|
-
|
|
14
|
-
实现完整的快照工具集,为小程序自动化测试提供状态捕获和回溯能力。
|
|
15
|
-
|
|
16
|
-
**核心交付物**:
|
|
17
|
-
- `src/tools/snapshot.ts` - 3 个快照工具实现 (352 lines)
|
|
18
|
-
- `tests/unit/snapshot.test.ts` - 单元测试 (251 lines, 10 tests)
|
|
19
|
-
- 工具: snapshotPage, snapshotFull, snapshotElement
|
|
20
|
-
|
|
21
|
-
## Non-Goals (非目标)
|
|
22
|
-
|
|
23
|
-
- ❌ 不实现快照比对(diff)功能
|
|
24
|
-
- ❌ 不实现快照回放(restore)功能
|
|
25
|
-
- ❌ 不实现快照压缩/归档(仅原始 JSON + PNG)
|
|
26
|
-
- ❌ 不实现多快照管理(仅单次捕获)
|
|
27
|
-
|
|
28
|
-
## Scope (范围)
|
|
29
|
-
|
|
30
|
-
### In Scope (包含)
|
|
31
|
-
|
|
32
|
-
1. **snapshotPage - 页面快照**
|
|
33
|
-
- ✅ 捕获当前页面数据(data + query)
|
|
34
|
-
- ✅ 可选截图(PNG 格式)
|
|
35
|
-
- ✅ 保存为 JSON + 可选 PNG
|
|
36
|
-
- ✅ 返回文件路径
|
|
37
|
-
|
|
38
|
-
2. **snapshotFull - 完整应用快照**
|
|
39
|
-
- ✅ 捕获系统信息(systemInfo)
|
|
40
|
-
- ✅ 捕获页面栈(pageStack)
|
|
41
|
-
- ✅ 捕获当前页面数据
|
|
42
|
-
- ✅ 可选截图(PNG 格式)
|
|
43
|
-
- ✅ 保存为 JSON + 可选 PNG
|
|
44
|
-
|
|
45
|
-
3. **snapshotElement - 元素快照**
|
|
46
|
-
- ✅ 捕获元素文本(text)
|
|
47
|
-
- ✅ 捕获元素尺寸(size)
|
|
48
|
-
- ✅ 捕获元素位置(offset)
|
|
49
|
-
- ✅ 可选截图(PNG 格式)
|
|
50
|
-
- ✅ 保存为 JSON + 可选 PNG
|
|
51
|
-
|
|
52
|
-
4. **通用功能**
|
|
53
|
-
- ✅ 自动生成文件名(带时间戳)
|
|
54
|
-
- ✅ 支持自定义文件名
|
|
55
|
-
- ✅ 使用 OutputManager 管理文件
|
|
56
|
-
- ✅ 时间戳记录(ISO8601 格式)
|
|
57
|
-
|
|
58
|
-
### Out of Scope (不包含)
|
|
59
|
-
|
|
60
|
-
- ❌ 快照比对(diff)
|
|
61
|
-
- ❌ 快照恢复(restore)
|
|
62
|
-
- ❌ 快照版本控制(git-like)
|
|
63
|
-
- ❌ 快照压缩(zip/tar)
|
|
64
|
-
|
|
65
|
-
## Constraints (约束)
|
|
66
|
-
|
|
67
|
-
### Technical Constraints (技术约束)
|
|
68
|
-
|
|
69
|
-
1. **工具依赖**
|
|
70
|
-
- 复用 MiniProgram 工具(getPageStack, getSystemInfo, screenshot)
|
|
71
|
-
- 复用 Page 工具(getData)
|
|
72
|
-
- 复用 Element 工具(getText, getSize, getOffset)
|
|
73
|
-
- 使用 OutputManager 管理文件输出
|
|
74
|
-
|
|
75
|
-
2. **文件格式**
|
|
76
|
-
- JSON: 结构化数据,包含时间戳
|
|
77
|
-
- PNG: 截图文件(可选)
|
|
78
|
-
- 文件命名: `snapshot-{timestamp}.json` 或自定义
|
|
79
|
-
|
|
80
|
-
3. **数据结构**
|
|
81
|
-
- **snapshotPage**:
|
|
82
|
-
```typescript
|
|
83
|
-
{
|
|
84
|
-
timestamp: string // ISO8601
|
|
85
|
-
pagePath: string // 当前页面路径
|
|
86
|
-
pageData: any // 页面 data
|
|
87
|
-
pageQuery: Record<string, any> // 页面 query
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
- **snapshotFull**:
|
|
91
|
-
```typescript
|
|
92
|
-
{
|
|
93
|
-
timestamp: string
|
|
94
|
-
systemInfo: any // 系统信息
|
|
95
|
-
pageStack: Array<{path, query}> // 页面栈
|
|
96
|
-
currentPage: {
|
|
97
|
-
path: string
|
|
98
|
-
query: Record<string, any>
|
|
99
|
-
data: any
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
```
|
|
103
|
-
- **snapshotElement**:
|
|
104
|
-
```typescript
|
|
105
|
-
{
|
|
106
|
-
timestamp: string
|
|
107
|
-
refId: string
|
|
108
|
-
text?: string
|
|
109
|
-
attributes: Record<string, any>
|
|
110
|
-
size: {width, height} | null
|
|
111
|
-
offset: {left, top} | null
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
4. **返回值结构**
|
|
116
|
-
```typescript
|
|
117
|
-
{
|
|
118
|
-
success: boolean
|
|
119
|
-
message: string
|
|
120
|
-
snapshotPath: string // JSON 文件路径
|
|
121
|
-
screenshotPath?: string // PNG 文件路径(可选)
|
|
122
|
-
data: {/* 快照数据 */}
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### Business Constraints (业务约束)
|
|
127
|
-
|
|
128
|
-
1. **执行时间**: 单次快照 <2s(含截图)
|
|
129
|
-
2. **文件大小**: JSON <1MB, PNG <5MB
|
|
130
|
-
3. **存储位置**: 默认 `outputDir`,可配置
|
|
131
|
-
|
|
132
|
-
## Success Criteria (成功标准)
|
|
133
|
-
|
|
134
|
-
### Functional Criteria (功能标准)
|
|
135
|
-
|
|
136
|
-
- ✅ snapshotPage 正确捕获页面数据和截图
|
|
137
|
-
- ✅ snapshotFull 正确捕获应用全局状态
|
|
138
|
-
- ✅ snapshotElement 正确捕获元素状态
|
|
139
|
-
- ✅ JSON 文件包含完整数据和时间戳
|
|
140
|
-
- ✅ 截图可选(includeScreenshot 参数)
|
|
141
|
-
- ✅ 支持自定义文件名
|
|
142
|
-
- ✅ 文件保存到正确路径
|
|
143
|
-
|
|
144
|
-
### Quality Criteria (质量标准)
|
|
145
|
-
|
|
146
|
-
- ✅ TypeScript 编译 0 错误
|
|
147
|
-
- ✅ 单元测试覆盖率 >80%
|
|
148
|
-
- ✅ 10 个测试用例全部通过
|
|
149
|
-
- ✅ 无 ESLint 错误
|
|
150
|
-
- ✅ JSDoc 注释完整
|
|
151
|
-
|
|
152
|
-
### Documentation Criteria (文档标准)
|
|
153
|
-
|
|
154
|
-
- ✅ 每个工具有函数签名和 JSDoc
|
|
155
|
-
- ✅ 数据结构定义清晰
|
|
156
|
-
- ⏳ charter.D2.align.yaml (本文档)
|
|
157
|
-
- ⏳ tasks.D2.atomize.md (任务卡)
|
|
158
|
-
|
|
159
|
-
## Definition of Done (完成标准)
|
|
160
|
-
|
|
161
|
-
**代码**:
|
|
162
|
-
- ✅ `src/tools/snapshot.ts` 实现完成 (352 lines)
|
|
163
|
-
- ✅ 3 个快照工具全部实现
|
|
164
|
-
- ✅ TypeScript 编译通过
|
|
165
|
-
|
|
166
|
-
**测试**:
|
|
167
|
-
- ✅ `tests/unit/snapshot.test.ts` (251 lines)
|
|
168
|
-
- ✅ 10 个测试用例全部通过
|
|
169
|
-
- ✅ 覆盖成功和失败场景
|
|
170
|
-
- ✅ Mock miniprogram/page/element 工具依赖
|
|
171
|
-
|
|
172
|
-
**文档**:
|
|
173
|
-
- ⏳ charter.D2.align.yaml (追溯)
|
|
174
|
-
- ⏳ tasks.D2.atomize.md (追溯)
|
|
175
|
-
- ✅ 代码注释完整
|
|
176
|
-
|
|
177
|
-
**Git**:
|
|
178
|
-
- ✅ 已提交(commit: feat: [D2] 快照能力实现)
|
|
179
|
-
|
|
180
|
-
## Dependencies (依赖)
|
|
181
|
-
|
|
182
|
-
**前置任务**:
|
|
183
|
-
- ✅ C2: MiniProgram 工具(getPageStack, getSystemInfo, screenshot)
|
|
184
|
-
- ✅ C3: Page 工具(getData)
|
|
185
|
-
- ✅ C4: Element 工具(getText, getSize, getOffset)
|
|
186
|
-
- ✅ B3: OutputManager 实现
|
|
187
|
-
|
|
188
|
-
**后续任务**:
|
|
189
|
-
- D2 → Stage E (集成到工具注册器)
|
|
190
|
-
- D2 → Stage F (端到端测试示例)
|
|
191
|
-
|
|
192
|
-
## Risks (风险)
|
|
193
|
-
|
|
194
|
-
### Technical Risks (技术风险)
|
|
195
|
-
|
|
196
|
-
1. **大数据量快照** - 🟡 中风险
|
|
197
|
-
- 影响:页面数据过大导致 JSON 文件巨大
|
|
198
|
-
- 缓解:当前无限制,未来可添加大小警告
|
|
199
|
-
|
|
200
|
-
2. **截图失败** - 🟢 已缓解
|
|
201
|
-
- 风险:截图工具失败导致快照失败
|
|
202
|
-
- 缓解:截图为可选(includeScreenshot: false 可跳过)
|
|
203
|
-
|
|
204
|
-
3. **文件名冲突** - 🟢 已缓解
|
|
205
|
-
- 风险:时间戳相同导致文件覆盖
|
|
206
|
-
- 缓解:OutputManager 使用 `Date.now()` 精确到毫秒
|
|
207
|
-
|
|
208
|
-
### Business Risks (业务风险)
|
|
209
|
-
|
|
210
|
-
1. **存储空间** - 🟡 中风险
|
|
211
|
-
- 影响:大量快照占用磁盘空间
|
|
212
|
-
- 缓解:用户自行管理 outputDir 清理
|
|
213
|
-
|
|
214
|
-
## Open Questions (未决问题)
|
|
215
|
-
|
|
216
|
-
- ❓ 是否需要快照压缩(zip)以节省空间?(当前原始文件)
|
|
217
|
-
- ❓ 是否需要快照比对功能?(当前仅捕获)
|
|
218
|
-
- ❓ 是否需要快照恢复功能?(当前仅只读)
|
|
219
|
-
- ❓ 是否需要限制单个快照文件大小?(当前无限制)
|
|
220
|
-
|
|
221
|
-
## References (参考资料)
|
|
222
|
-
|
|
223
|
-
- `docs/完整实现方案.md` - 工具分层设计
|
|
224
|
-
- `src/tools/miniprogram.ts` - MiniProgram 工具依赖
|
|
225
|
-
- `src/tools/page.ts` - Page 工具依赖
|
|
226
|
-
- `src/tools/element.ts` - Element 工具依赖
|
|
227
|
-
- `src/core/output.ts` - OutputManager 实现
|
|
228
|
-
- Playwright Screenshots - 截图功能参考
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
**Approval**: ✅ RETROSPECTIVE APPROVED
|
|
233
|
-
**Implementation**: ✅ COMPLETED
|
|
234
|
-
**Documentation**: ⏳ IN PROGRESS
|