@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
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# 当前待实施改动总览
|
|
2
|
+
|
|
3
|
+
> 最后更新: 2025-12-27
|
|
4
|
+
> 版本: 0.3.0 (规划中)
|
|
5
|
+
|
|
6
|
+
## 概述
|
|
7
|
+
|
|
8
|
+
本目录包含两个待实施的改动计划:
|
|
9
|
+
|
|
10
|
+
1. **架构迁移**:完全使用新架构(capabilities + runtime)
|
|
11
|
+
2. **截图修复**:解决截图超时卡住问题
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 改动一览
|
|
16
|
+
|
|
17
|
+
| 改动 | 类型 | 优先级 | 预计工时 | 文档 |
|
|
18
|
+
|------|------|--------|---------|------|
|
|
19
|
+
| 架构迁移 | 重构 | 高 | 18-25h | [01-architecture-migration.md](./01-architecture-migration.md) |
|
|
20
|
+
| 截图修复 | Bug Fix | 紧急 | 8-9h | [02-screenshot-timeout-fix.md](./02-screenshot-timeout-fix.md) |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 改动一:架构迁移
|
|
25
|
+
|
|
26
|
+
### 背景
|
|
27
|
+
|
|
28
|
+
项目当前处于混合架构状态:
|
|
29
|
+
- 运行时服务 (runtime/) 已完成迁移:100%
|
|
30
|
+
- 工具实现 (tools/) 完全未迁移:0%
|
|
31
|
+
- 能力框架 (capabilities/) 仅作为代理:50%
|
|
32
|
+
|
|
33
|
+
### 目标
|
|
34
|
+
|
|
35
|
+
将 5,244 行工具代码从 `src/tools/` 迁移到 `src/capabilities/`,实现:
|
|
36
|
+
- 模块化工具组织
|
|
37
|
+
- Schema 驱动的输入验证
|
|
38
|
+
- 动态工具加载
|
|
39
|
+
- 删除旧的 tools/ 和 core/ 目录
|
|
40
|
+
|
|
41
|
+
### 核心改动
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
当前结构: 目标结构:
|
|
45
|
+
src/ src/
|
|
46
|
+
├── tools/ ❌ 5,244行 ├── capabilities/ 🆕 模块化
|
|
47
|
+
│ ├── index.ts 1,645行 │ ├── automator/
|
|
48
|
+
│ ├── automator.ts │ │ ├── schemas/
|
|
49
|
+
│ ├── miniprogram.ts │ │ └── handlers/
|
|
50
|
+
│ └── ... │ ├── miniprogram/
|
|
51
|
+
├── core/ ❌ 兼容层 │ │ ├── schemas/
|
|
52
|
+
│ └── *.ts → runtime │ │ └── handlers/
|
|
53
|
+
└── runtime/ ✅ 保持 │ ├── page/
|
|
54
|
+
│ ├── element/
|
|
55
|
+
│ ├── loader.ts 🆕
|
|
56
|
+
│ └── registry.ts 🆕
|
|
57
|
+
└── runtime/ ✅ 保持
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 工作量
|
|
61
|
+
|
|
62
|
+
| 阶段 | 内容 | 预计时间 |
|
|
63
|
+
|------|------|---------|
|
|
64
|
+
| Phase 1 | 基础设施(loader/registry) | 3-4h |
|
|
65
|
+
| Phase 2 | Automator 迁移(4工具) | 2-3h |
|
|
66
|
+
| Phase 3 | MiniProgram 迁移(6工具) | 2-3h |
|
|
67
|
+
| Phase 4 | Page 迁移(8工具) | 2-3h |
|
|
68
|
+
| Phase 5 | Element 迁移(23工具) | 3-4h |
|
|
69
|
+
| Phase 6 | Assert/Snapshot/Record/Network | 4-5h |
|
|
70
|
+
| Phase 7 | 清理与测试 | 2-3h |
|
|
71
|
+
| **总计** | - | **18-25h** |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 改动二:截图超时修复
|
|
76
|
+
|
|
77
|
+
### 问题
|
|
78
|
+
|
|
79
|
+
`miniprogram_screenshot` 工具调用时经常卡住:
|
|
80
|
+
- 无超时保护:Promise 永不 resolve/reject
|
|
81
|
+
- base64 返回被删除:必须走文件保存路径
|
|
82
|
+
- 级联影响:所有 snapshot 工具都会卡住
|
|
83
|
+
|
|
84
|
+
### 根本原因
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// ❌ 当前代码 - 无超时保护
|
|
88
|
+
const screenshotBuffer = await session.miniProgram.screenshot({
|
|
89
|
+
path: fullPath,
|
|
90
|
+
fullPage,
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
// ✅ 应该使用 withTimeout
|
|
94
|
+
const screenshotBuffer = await withTimeout(
|
|
95
|
+
session.miniProgram.screenshot({ ... }),
|
|
96
|
+
timeoutMs,
|
|
97
|
+
'Screenshot capture'
|
|
98
|
+
)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 核心改动
|
|
102
|
+
|
|
103
|
+
1. **P0**:为 screenshot 添加 withTimeout 保护
|
|
104
|
+
2. **P0**:恢复 returnBase64 参数和 base64 返回
|
|
105
|
+
3. **P1**:为其他 miniprogram 操作添加超时
|
|
106
|
+
4. **P1**:添加重试机制
|
|
107
|
+
5. **P2**:优化 fullPage 超时配置
|
|
108
|
+
|
|
109
|
+
### 工作量
|
|
110
|
+
|
|
111
|
+
| 任务 | 预计时间 | 优先级 |
|
|
112
|
+
|------|---------|--------|
|
|
113
|
+
| screenshot 超时保护 | 1h | P0 |
|
|
114
|
+
| 恢复 base64 返回 | 1h | P0 |
|
|
115
|
+
| 其他操作超时保护 | 2h | P1 |
|
|
116
|
+
| 重试机制 | 1.5h | P1 |
|
|
117
|
+
| 配置优化 | 1h | P2 |
|
|
118
|
+
| 测试 | 2h | P1 |
|
|
119
|
+
| **总计** | **8-9h** | - |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 建议实施顺序
|
|
124
|
+
|
|
125
|
+
### 方案 A:先修复后迁移(推荐)
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Week 1: 截图修复 (8-9h)
|
|
129
|
+
├─ Day 1-2: P0 任务(超时保护 + base64)
|
|
130
|
+
└─ Day 3-4: P1 任务(其他超时 + 重试)
|
|
131
|
+
|
|
132
|
+
Week 2-3: 架构迁移 (18-25h)
|
|
133
|
+
├─ Day 1: Phase 1(基础设施)
|
|
134
|
+
├─ Day 2-3: Phase 2-4(核心工具)
|
|
135
|
+
├─ Day 4-5: Phase 5-6(剩余工具)
|
|
136
|
+
└─ Day 6: Phase 7(清理测试)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**优势**:
|
|
140
|
+
- 先解决紧急问题
|
|
141
|
+
- 迁移时可以同时应用超时保护
|
|
142
|
+
|
|
143
|
+
### 方案 B:迁移时同步修复
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
直接进行架构迁移,迁移 miniprogram 工具时顺带修复超时
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**优势**:
|
|
150
|
+
- 避免重复修改同一文件
|
|
151
|
+
- 代码只需 review 一次
|
|
152
|
+
|
|
153
|
+
**劣势**:
|
|
154
|
+
- 紧急问题需要等待更长时间
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 文件变更汇总
|
|
159
|
+
|
|
160
|
+
### 新建文件(约 40 个)
|
|
161
|
+
|
|
162
|
+
| 目录 | 文件数 | 描述 |
|
|
163
|
+
|------|--------|------|
|
|
164
|
+
| capabilities/*/schemas/ | ~20 | Zod schema 定义 |
|
|
165
|
+
| capabilities/*/handlers/ | ~12 | 工具处理器 |
|
|
166
|
+
| capabilities/ | 3 | loader/registry/index |
|
|
167
|
+
| runtime/retry/ | 2 | 重试机制 |
|
|
168
|
+
| tests/ | 3 | 新增测试 |
|
|
169
|
+
|
|
170
|
+
### 修改文件(约 10 个)
|
|
171
|
+
|
|
172
|
+
| 文件 | 改动 |
|
|
173
|
+
|------|------|
|
|
174
|
+
| src/server.ts | 使用新的 capabilities 入口 |
|
|
175
|
+
| src/tools/miniprogram.ts | 添加超时保护(临时,迁移后删除) |
|
|
176
|
+
| src/config/defaults.ts | 新增超时配置 |
|
|
177
|
+
| src/types.ts | 更新类型定义 |
|
|
178
|
+
| tests/**/*.test.ts | 更新导入路径 |
|
|
179
|
+
|
|
180
|
+
### 删除文件(约 17 个)
|
|
181
|
+
|
|
182
|
+
| 目录 | 文件数 | 描述 |
|
|
183
|
+
|------|--------|------|
|
|
184
|
+
| src/tools/ | 9 | 全部工具文件 |
|
|
185
|
+
| src/core/ | 8 | 全部兼容层文件 |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 风险评估
|
|
190
|
+
|
|
191
|
+
| 风险 | 概率 | 影响 | 缓解措施 |
|
|
192
|
+
|------|------|------|---------|
|
|
193
|
+
| 迁移过程中引入 bug | 中 | 高 | 逐阶段提交,完整测试 |
|
|
194
|
+
| 超时时间设置不合理 | 低 | 中 | 配置化,允许用户调整 |
|
|
195
|
+
| 测试覆盖不足 | 低 | 中 | 先补充测试再迁移 |
|
|
196
|
+
| 文档不同步 | 低 | 低 | 同步更新 README |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 验收标准
|
|
201
|
+
|
|
202
|
+
### 架构迁移
|
|
203
|
+
|
|
204
|
+
- [ ] 所有 65 个工具迁移到 capabilities/
|
|
205
|
+
- [ ] tools/ 和 core/ 目录删除
|
|
206
|
+
- [ ] 所有工具有 Zod schema
|
|
207
|
+
- [ ] 单元测试 100% 通过
|
|
208
|
+
- [ ] 集成测试通过
|
|
209
|
+
- [ ] TypeScript 编译无错误
|
|
210
|
+
|
|
211
|
+
### 截图修复
|
|
212
|
+
|
|
213
|
+
- [ ] 截图 10s 内返回或超时
|
|
214
|
+
- [ ] fullPage 截图 30s 内返回或超时
|
|
215
|
+
- [ ] returnBase64=true 正确返回 base64
|
|
216
|
+
- [ ] 所有 miniprogram 操作有超时保护
|
|
217
|
+
- [ ] 超时测试覆盖
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 相关文档
|
|
222
|
+
|
|
223
|
+
- [01-architecture-migration.md](./01-architecture-migration.md) - 架构迁移详细计划
|
|
224
|
+
- [02-screenshot-timeout-fix.md](./02-screenshot-timeout-fix.md) - 截图修复详细方案
|
|
225
|
+
- [../directory-structure-and-code-style-best-practices.md](../directory-structure-and-code-style-best-practices.md) - 代码规范
|
|
226
|
+
- [../migration/](../migration/) - 历史迁移文档
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Creatoria MiniApp MCP 目录结构与代码规范建议
|
|
2
|
+
|
|
3
|
+
本文档总结 Creatoria MiniApp MCP 迁移阶段的目录与代码规范建议,帮助团队在重构过程中保持一致的工程节奏。
|
|
4
|
+
|
|
5
|
+
## 目标与原则
|
|
6
|
+
- **分层清晰**:运行时(runtime)、应用入口(app)、能力工具(capabilities)各自独立,减少跨层耦合。
|
|
7
|
+
- **能力可扩展**:工具数量超过 60 个,必须按能力分组并支持自动生成文档与类型。
|
|
8
|
+
- **交付可验证**:每一步都应有脚本化校验(lint、typecheck、tests、smoke)。
|
|
9
|
+
- **文档同步**:代码、schema、使用手册保持同源,避免漂移。
|
|
10
|
+
|
|
11
|
+
## 推荐目录蓝图
|
|
12
|
+
```
|
|
13
|
+
.
|
|
14
|
+
├── docs/
|
|
15
|
+
│ ├── migration/ 迁移策略与阶段总结
|
|
16
|
+
│ └── playbook/ 操作手册、调试指南
|
|
17
|
+
├── examples/
|
|
18
|
+
│ └── scenarios/ 可复用的自动化脚本示例
|
|
19
|
+
├── scripts/
|
|
20
|
+
│ ├── generate-tools-docs.ts 根据 schema 生成工具文档
|
|
21
|
+
│ └── verify-release.ts 发布前巡检脚本(lint/typecheck/tests)
|
|
22
|
+
├── src/
|
|
23
|
+
│ ├── app/
|
|
24
|
+
│ │ ├── cli/ CLI 解析、日志初始化
|
|
25
|
+
│ │ └── server/ MCP server 入口
|
|
26
|
+
│ ├── runtime/
|
|
27
|
+
│ │ ├── session/ 会话存储、清理、钩子
|
|
28
|
+
│ │ ├── logging/ 统一日志接口与实现
|
|
29
|
+
│ │ ├── outputs/ 会话产物(截图、报告)管理
|
|
30
|
+
│ │ ├── timeout/ 超时与重试策略
|
|
31
|
+
│ │ ├── validation/ 输入校验工具
|
|
32
|
+
│ │ └── element/ ElementRef 解析与缓存
|
|
33
|
+
│ ├── capabilities/
|
|
34
|
+
│ │ ├── automator/
|
|
35
|
+
│ │ ├── miniprogram/
|
|
36
|
+
│ │ ├── page/
|
|
37
|
+
│ │ ├── element/
|
|
38
|
+
│ │ ├── assert/
|
|
39
|
+
│ │ ├── snapshot/
|
|
40
|
+
│ │ ├── record/
|
|
41
|
+
│ │ └── network/
|
|
42
|
+
│ │ └── schemas/ Zod 输入输出 schema
|
|
43
|
+
│ ├── adapters/
|
|
44
|
+
│ │ ├── wechat-devtools/ IDE 进程、端口管理
|
|
45
|
+
│ │ └── storage/ 产物持久化策略
|
|
46
|
+
│ ├── config/ 默认配置、加载器、环境变量映射
|
|
47
|
+
│ ├── types/ 公共类型与错误定义
|
|
48
|
+
│ └── index.ts 项目主导出
|
|
49
|
+
├── tests/
|
|
50
|
+
│ ├── unit/
|
|
51
|
+
│ ├── integration/
|
|
52
|
+
│ └── smoke/ CLI+会话生命周期巡检
|
|
53
|
+
└── tools.json 自动生成的工具清单
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 代码规范要点
|
|
57
|
+
- **Schema 驱动**:
|
|
58
|
+
- 使用 `zod` 描述每个工具的输入/输出,导出 `z.infer` 类型给实现复用。
|
|
59
|
+
- 借助 `zod-to-json-schema` 生成 MCP `inputSchema`,统一由脚本写回文档。
|
|
60
|
+
- **Session 管理**:
|
|
61
|
+
- Session 日志统一走 `runtime/logging`,避免直接使用 `console.*`。
|
|
62
|
+
- 在 `runtime/session` 内新增 `SessionHooks`(beforeCleanup/afterCleanup)便于扩展 trace、性能采集。
|
|
63
|
+
- **错误处理**:
|
|
64
|
+
- 定义 `McpError` 树(配置错误、执行错误、底层自动化错误),在 server 层统一序列化。
|
|
65
|
+
- 提供 `wrapToolError(handler)` 高阶函数约束日志格式。
|
|
66
|
+
- **产物输出**:
|
|
67
|
+
- 将截图、DOM dump、网络日志统一放在 `~/.creatoria-miniapp-mcp/<session-id>`。
|
|
68
|
+
- OutputManager 负责命名策略与元数据回写。
|
|
69
|
+
- **Runtime 实现**:
|
|
70
|
+
- `src/runtime/**` 已承载 session/logging/timeout/validation/element 等核心实现;`src/core/**` 仅保留兼容性再导出,后续可逐步清理。
|
|
71
|
+
- **TypeScript 设定**:
|
|
72
|
+
- 保持 `strict`,启用 `exactOptionalPropertyTypes`、`moduleDetection: "force"`。
|
|
73
|
+
- 为测试单独维护 `tsconfig.test.json`,保持编译边界干净。
|
|
74
|
+
- **Lint & Format**:
|
|
75
|
+
- 使用 `@typescript-eslint` 严格模式(`plugin:@typescript-eslint/recommended-type-checked`)。
|
|
76
|
+
- Markdown 文档执行 `prettier --check` 或 markdownlint,保证 changelog、指南格式一致。
|
|
77
|
+
- **测试策略**:
|
|
78
|
+
- Unit:覆盖 `runtime`、`config`、`adapters` 等纯逻辑模块。
|
|
79
|
+
- Integration:基于 `test-miniapp/` 执行真实 automator 流程。
|
|
80
|
+
- Smoke:`scripts/smoke-test.sh` 验证 CLI、session 生命周期。
|
|
81
|
+
- 推荐在 CI 中分段执行:`lint → typecheck → unit → integration → smoke`。
|
|
82
|
+
- **发布前检查**:
|
|
83
|
+
- `verify-release.ts` 聚合 build、工具文档生成、smoke test。
|
|
84
|
+
- `package.json` 中 `files` 字段保留 `dist/*.d.ts` 与 `tools.json`,确保发布包自带类型与元数据。
|
|
85
|
+
|
|
86
|
+
## 文档协同
|
|
87
|
+
- 迁移相关资料统一放入 `docs/migration/`,并通过 `docs/migration/README.md` 汇总索引。
|
|
88
|
+
- 各能力目录可在 `docs/playbook/` 内补充操作示例或故障排查手册。
|
|
89
|
+
- 更新文档时与 `.llm/task_cards/` 对应任务保持同步,确保任务状态可追踪。
|
|
90
|
+
|
|
91
|
+
以上规范为迁移阶段的基线,可在任务卡执行过程中持续补充细节。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Creatoria MiniApp MCP 迁移总览
|
|
2
|
+
|
|
3
|
+
本页汇总迁移阶段的关键资料、任务卡与协作规则,便于团队快速掌握当前进展。
|
|
4
|
+
|
|
5
|
+
## 当前分支与目标
|
|
6
|
+
- **分支**:`migration-structure-prep`
|
|
7
|
+
- **阶段**:迁移规划与骨架搭建
|
|
8
|
+
- **目标**:在保持现有 0.1.x 功能稳定的前提下,完成目录重组、schema 策略制定与文档对齐。
|
|
9
|
+
|
|
10
|
+
## 已完成迁移
|
|
11
|
+
- Session / Outputs / Logging / Timeout / Validation / ElementRef 实现已迁移至 `src/runtime` 对应目录。
|
|
12
|
+
- Automator 工具首批 Zod schema 与 `scripts/generate-tool-schemas.ts` 已落地,可通过 `pnpm generate:schemas` 产出 JSON Schema。
|
|
13
|
+
- `src/core` 目录目前仅保留再导出,未来阶段可清理或移除。
|
|
14
|
+
|
|
15
|
+
## 关键文档
|
|
16
|
+
- `docs/directory-structure-and-code-style-best-practices.md`:目录规划与代码规范建议
|
|
17
|
+
- `docs/migration/runtime-skeleton.md`:旧实现与新骨架的映射表
|
|
18
|
+
- `docs/migration/tool-schema-strategy.md`:工具 schema 驱动方案
|
|
19
|
+
- `.llm/task_cards/`:迁移阶段的 6A 任务卡集合
|
|
20
|
+
|
|
21
|
+
## 任务追踪
|
|
22
|
+
- `.llm/state.json`:记录当前阶段、待办任务、已完成卡片
|
|
23
|
+
- 建议流程:完成任务卡 → 更新对应文档 → 同步 `.llm/state.json` → 准备评审
|
|
24
|
+
|
|
25
|
+
## 协作守则(摘录)
|
|
26
|
+
1. **不破坏现有 CLI/工具行为**:所有代码迁移需先创建桥接层,再逐步替换实现。
|
|
27
|
+
2. **文档与代码同步**:新增或调整目录后必须更新映射表与任务卡。
|
|
28
|
+
3. **Schema 先行**:在实现新工具或改动入参前,优先补充 Zod schema 与自动化脚本。
|
|
29
|
+
4. **语言一致性**:中文文档保持术语一致(例如“能力”“工具”“会话”),英文文档聚焦使用指南。
|
|
30
|
+
|
|
31
|
+
## 下一步
|
|
32
|
+
- 审阅开放问题(详见 `tool-schema-strategy.md`),确认输出 schema 与 JSON Schema 的存放策略。
|
|
33
|
+
- 扩展剩余能力(MiniProgram/Page/Element 等)的 schema 与自动生成流程。
|
|
34
|
+
- 评估 `src/core` 再导出是否可以在下一阶段完全移除,并更新发布脚本。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# TC-ALIGN-01 · Migration Scope Alignment Notes
|
|
2
|
+
|
|
3
|
+
## Scope Focus (Cycle 1)
|
|
4
|
+
- 引入 `src/app`, `src/runtime`, `src/capabilities` 三层骨架,并通过 re-export 保持现有入口 (`src/server.ts`, `src/index.ts`, `dist/cli.js`) 行为不变。
|
|
5
|
+
- 先行整理 `runtime/session` 与 `runtime/logging` 的职责边界,拆分清理/产物逻辑,准备后续测试。
|
|
6
|
+
- 设计 schema 驱动的工具目录结构,但首轮仅输出目录与文档占位符,代码迁移留待后续任务。
|
|
7
|
+
- 建立 `docs/migration` 板块作为迁移期间的单一信息源,配套更新 `.llm/task_cards/` 进度。
|
|
8
|
+
|
|
9
|
+
## Stability Requirements
|
|
10
|
+
- **CLI 接口**:`pnpm build/start`, `dist/cli.js`, `bin.miniprogram-mcp` 与 `creatoria-miniapp-mcp` 命令、现有 CLI 参数必须保持兼容,帮助文本暂不调整。
|
|
11
|
+
- **配置加载**:`loadConfig` 行为与优先级(CLI > env > config > defaults)不能改变,`package.json` 中 `main` 和 `files` 字段保持当前路径。
|
|
12
|
+
- **工具清单**:`scripts/update-readme.ts` 与 smoke test 依赖 65 个工具计数,迁移前不得移除或重命名现有工具导出。
|
|
13
|
+
- **测试与脚本**:`pnpm lint|typecheck|test:unit|test:integration|smoke-test` 需要可执行,即使短期跳过某些校验,也必须在文档中说明原因。
|
|
14
|
+
- **发布资产**:`dist/` 结构、类型声明、NPM 发布配置不做变更;保留 `README.md`、`CHANGELOG.md` 与现有示例的可访问性。
|
|
15
|
+
|
|
16
|
+
## Immediate Priorities
|
|
17
|
+
1. 整理 `runtime` 与 `capabilities` 的目录映射表,为后续任务卡(TC-STRUCT-02)提供输入。
|
|
18
|
+
2. 与维护者确认 `.workflow/` 与历史文档删除是否属于旧进度清理,防止误删必需资产。
|
|
19
|
+
3. 建立迁移状态同步节奏:完成每张任务卡后更新 `.llm/state.json` 的 `open_tasks` 与 `stage`。
|
|
20
|
+
|
|
21
|
+
## Deferred Topics
|
|
22
|
+
- Schema 自动化脚本实现(归入 TC-SCHEMA-03)。
|
|
23
|
+
- 重命名或裁剪工具清单(待完成新架构后评估)。
|
|
24
|
+
- 引入新的依赖(如 `zod-to-json-schema`)需等到策略确认。
|
|
25
|
+
|
|
26
|
+
## Open Questions
|
|
27
|
+
| 编号 | 问题 | 建议负责人 | 备注 |
|
|
28
|
+
|------|------|------------|------|
|
|
29
|
+
| Q1 | `.workflow/` 目录是否属于后续自动化需求? | Samuel / 项目 Owner | 当前仓库中出现为未跟踪文件,需要确认保留或清理。 |
|
|
30
|
+
| Q2 | 迁移阶段是否需要锁定 `pnpm` 版本或提供 npm/yarn 指南? | Maintainers | Smoke test 与发布脚本依赖 pnpm@9,需确认团队环境。 |
|
|
31
|
+
| Q3 | 是否需要在迁移前建立快照(tag 或 release branch)以便回滚? | Maintainers | 当前版本为 v0.1.3,建议在结构调整前做标记。 |
|
|
32
|
+
|
|
33
|
+
## Next Steps
|
|
34
|
+
- 将本笔记分享给相关干系人确认(完成 6A 中的 Approve)。
|
|
35
|
+
- 根据反馈更新任务卡或新增卡片,然后进入 TC-STRUCT-02 执行阶段。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Runtime Skeleton Mapping
|
|
2
|
+
|
|
3
|
+
本文件用于跟踪迁移阶段的新目录骨架与现有实现之间的对应关系,确保在逐步搬迁代码时不会破坏对外接口。
|
|
4
|
+
|
|
5
|
+
## 应用层 (src/app)
|
|
6
|
+
| 新路径 | 现有实现 | 说明 |
|
|
7
|
+
|--------|----------|------|
|
|
8
|
+
| `src/app/server/index.ts` | `src/server.ts` | 暂时对外导出 `startServer` 与 `ServerConfig` 类型,后续将 server 启动逻辑迁移至该目录。 |
|
|
9
|
+
| `src/app/cli/index.ts` | `src/cli.ts` | 占位导出,保持 CLI 入口仍由 legacy 文件提供。 |
|
|
10
|
+
| `src/app/index.ts` | 组合 `app/server` 与 `app/cli` | 为未来统一应用入口做准备。 |
|
|
11
|
+
|
|
12
|
+
## 运行时层 (src/runtime)
|
|
13
|
+
| 新路径 | 现有实现 | 说明 |
|
|
14
|
+
|--------|----------|------|
|
|
15
|
+
| `src/runtime/session/index.ts` | `src/runtime/session/store.ts` | 暴露 SessionStore 及清理工具函数。 |
|
|
16
|
+
| `src/runtime/session/store.ts` | `src/core/session.ts` | SessionStore 实现迁移至 runtime。 |
|
|
17
|
+
| `src/runtime/session/utils/cleanup.ts` | `src/core/session.ts` | 会话资源清理逻辑独立封装。 |
|
|
18
|
+
| `src/runtime/element/element-ref.ts` | `src/core/element-ref.ts` | 元素定位与缓存逻辑迁移至 runtime。 |
|
|
19
|
+
| `src/runtime/logging/index.ts` | `src/runtime/logging/*` | 汇总日志接口,指向新的 runtime 实现。 |
|
|
20
|
+
| `src/runtime/logging/logger.ts` | `src/core/logger.ts` | 结构化日志实现迁移至 runtime。 |
|
|
21
|
+
| `src/runtime/logging/tool-logger.ts` | `src/core/tool-logger.ts` | ToolLogger 封装迁移至 runtime。 |
|
|
22
|
+
| `src/runtime/outputs/index.ts` | `src/runtime/outputs/*` | 聚合产物与报告逻辑。 |
|
|
23
|
+
| `src/runtime/outputs/output-manager.ts` | `src/core/output.ts` | 输出管理器实现迁移至 runtime。 |
|
|
24
|
+
| `src/runtime/outputs/report-generator.ts` | `src/core/report-generator.ts` | 会话报告生成迁移至 runtime。 |
|
|
25
|
+
| `src/runtime/timeout/index.ts` | `src/runtime/timeout/timeout.ts` | 暴露超时工具。 |
|
|
26
|
+
| `src/runtime/timeout/timeout.ts` | `src/core/timeout.ts` | 超时实现迁移至 runtime。 |
|
|
27
|
+
| `src/runtime/validation/index.ts` | `src/runtime/validation/validation.ts` | 暴露校验工具。 |
|
|
28
|
+
| `src/runtime/validation/validation.ts` | `src/core/validation.ts` | 校验工具实现迁移至 runtime。 |
|
|
29
|
+
| `src/runtime/index.ts` | 聚合上述模块 | 统一导出 runtime 功能,为后续模块化做准备。 |
|
|
30
|
+
|
|
31
|
+
## 能力层 (src/capabilities)
|
|
32
|
+
| 新路径 | 现有实现 | 说明 |
|
|
33
|
+
|--------|----------|------|
|
|
34
|
+
| `src/capabilities/automator/index.ts` | `src/tools/automator.ts` | 直接 re-export。 |
|
|
35
|
+
| `src/capabilities/automator/schemas/*.ts` | 新增 | Automator 工具 Zod schema 定义(launch/connect/disconnect/close)。 |
|
|
36
|
+
| `src/capabilities/miniprogram/index.ts` | `src/tools/miniprogram.ts` | 直接 re-export。 |
|
|
37
|
+
| `src/capabilities/page/index.ts` | `src/tools/page.ts` | 直接 re-export。 |
|
|
38
|
+
| `src/capabilities/element/index.ts` | `src/tools/element.ts` | 直接 re-export。 |
|
|
39
|
+
| `src/capabilities/assert/index.ts` | `src/tools/assert.ts` | 直接 re-export。 |
|
|
40
|
+
| `src/capabilities/snapshot/index.ts` | `src/tools/snapshot.ts` | 直接 re-export。 |
|
|
41
|
+
| `src/capabilities/record/index.ts` | `src/tools/record.ts` | 直接 re-export。 |
|
|
42
|
+
| `src/capabilities/network/index.ts` | `src/tools/network.ts` | 直接 re-export。 |
|
|
43
|
+
| `src/capabilities/index.ts` | `src/tools/index.ts` | 暂时继续导出全部工具注册逻辑,后续将拆分能力开关。 |
|
|
44
|
+
|
|
45
|
+
## 后续动作提示
|
|
46
|
+
1. 当实际逻辑迁移至新目录时,更新本表,确保每个功能模块都有明确归属。
|
|
47
|
+
2. 在 TC-SCHEMA-03 中补充 schema 目录 (`src/capabilities/*/schemas`) 与自动生成脚本。
|
|
48
|
+
3. 使用 `pnpm generate:schemas` 从注册表导出 JSON Schema,保持 MCP 契约同步。
|
|
49
|
+
4. Session/输出模块迁移后,旧 `src/core/*` 文件仅保留再导出,后续可以清理。
|
|
50
|
+
5. 完成迁移后,逐步让现有模块引用新路径,最终删除 legacy 文件。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Tool Schema Strategy
|
|
2
|
+
|
|
3
|
+
本策略用于规划 Creatoria MiniApp MCP 在迁移阶段的工具 schema 体系,目标是在保持现有 65 个工具可用的前提下,引入可维护、可生成文档的 Zod 驱动流程。
|
|
4
|
+
|
|
5
|
+
## 目标
|
|
6
|
+
- **统一定义**:每个工具的输入/输出同源于 Zod schema,避免 TypeScript 定义、JSON Schema、文档三者漂移。
|
|
7
|
+
- **自动产出**:通过 `scripts/generate-tool-schemas.ts` 生成 MCP `inputSchema`,后续扩展类型声明与文档片段,减少手工维护成本。
|
|
8
|
+
- **渐进迁移**:保留当前 `src/tools/index.ts` 行为,逐步让工具依赖新 schema,而非一次性重写。
|
|
9
|
+
|
|
10
|
+
## 模块组织
|
|
11
|
+
```
|
|
12
|
+
src/
|
|
13
|
+
└── capabilities/
|
|
14
|
+
├── automator/
|
|
15
|
+
│ ├── handlers/ # 现有工具实现(后续迁移)
|
|
16
|
+
│ └── schemas/
|
|
17
|
+
│ ├── launch.ts # Zod schema 定义
|
|
18
|
+
│ └── index.ts # 导出所有 automator schema
|
|
19
|
+
├── miniprogram/
|
|
20
|
+
│ └── schemas/
|
|
21
|
+
├── ...
|
|
22
|
+
└── schema-registry.ts # 聚合所有 capability schema
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- **命名约定**:`<tool-name>.schema.ts` 或在共享情况下使用 `<domain>.shared.ts`。
|
|
26
|
+
- **导出格式**:每个 schema 文件导出 `inputSchema`, `outputSchema?`, `ToolMetadata`(含描述、能力标签)。
|
|
27
|
+
- **类型复用**:结合 `z.infer<typeof schema>` 声明 TypeScript 类型,供 handlers 引用。
|
|
28
|
+
|
|
29
|
+
## 运行时集成
|
|
30
|
+
1. **Zod 校验**:在 `schema-registry.ts` 中维护 `Record<string, ToolSchema>`,加载时完成 `inputSchema.parse(args)`,替换现有手写校验。
|
|
31
|
+
2. **JSON Schema 生成**:新增 `scripts/generate-tool-schemas.ts`,使用 `zod-to-json-schema` 导出 JSON Schema:
|
|
32
|
+
```ts
|
|
33
|
+
import { zodToJsonSchema } from 'zod-to-json-schema'
|
|
34
|
+
const jsonSchema = zodToJsonSchema(schema, toolName)
|
|
35
|
+
```
|
|
36
|
+
3. **工具注册**:`src/tools/index.ts` 不再声明 `inputSchema`,改为从生成的 `dist/schemas/<tool>.json` 读取或直接从 registry 获取。
|
|
37
|
+
4. **构建产物**:在 `pnpm build` 前执行 schema 生成,确保 `dist/` 中包含 JSON schema 与 `.d.ts`。
|
|
38
|
+
5. **错误处理**:为每个 schema 注册友好的校验错误格式(例如 `schema.safeParse` + 自定义错误信息)。
|
|
39
|
+
|
|
40
|
+
## 文档生成流程
|
|
41
|
+
- 扩展现有 `scripts/update-readme.ts`:读取 schema registry,输出参数表(字段、类型、必填、描述)。
|
|
42
|
+
- 新增 `docs/playbook/tool-reference.md`(自动生成),列出每个工具的入参/出参。
|
|
43
|
+
- 通过 `package.json` 增加脚本:
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"scripts": {
|
|
47
|
+
"generate:schemas": "tsx scripts/generate-tool-schemas.ts"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
- 在 CI / smoke-test 中插入 `pnpm generate:schemas && pnpm docs:tools`,保证文档与实现同步。
|
|
52
|
+
|
|
53
|
+
## 渐进落地步骤
|
|
54
|
+
1. **阶段一**:引入 schema 目录与 registry(无行为改动),在 `tools/index.ts` 中引入可选的 `useSchemas` flag。
|
|
55
|
+
2. **阶段二**:为 Automator 工具编写首批 schema,验证生成脚本;文档仍引用旧结构。
|
|
56
|
+
3. **阶段三**:完成所有工具的 schema,切换工具注册逻辑;废弃 legacy JSON schema。
|
|
57
|
+
4. **阶段四**:拓展输出 schema、错误定义,并与测试(unit/integration)结合验证。
|
|
58
|
+
|
|
59
|
+
## 兼容性与风险
|
|
60
|
+
- 保留现有 `scripts/update-readme.ts` 行为,直到新脚本产出结果等效。
|
|
61
|
+
- 更新依赖需评估包体:`zod-to-json-schema`、可能的 `ts-node`/`tsx` 版本。
|
|
62
|
+
- 生成 JSON Schema 时注意 `z.union`、`z.discriminatedUnion` 与 `enum` 的映射,避免客户端解析问题。
|
|
63
|
+
- 调整 `SessionStore` 或工具 handler 时,确保 `args` 类型已切换为 schema 导出的类型。
|
|
64
|
+
|
|
65
|
+
## 开放问题
|
|
66
|
+
| 编号 | 问题 | 负责人 | 备注 |
|
|
67
|
+
|------|------|--------|------|
|
|
68
|
+
| Q1 | 是否需要为所有工具定义输出 schema,还是仅在需要结构化响应时启用? | Maintainers | 当前 MCP 仅要求输入校验,但输出 schema 有助于客户端推断类型。 |
|
|
69
|
+
| Q2 | JSON Schema 存储位置选择:保存在 `dist/schemas/` 还是内嵌到构建产物? | Maintainers | 影响发布包体积与消费方式。 |
|
|
70
|
+
| Q3 | 是否需要向后兼容旧 JSON schema 导出的文档格式? | Docs Owner | 现有 README 表格依赖固定格式,需要确认迁移策略。 |
|
|
71
|
+
|
|
72
|
+
## 下一步
|
|
73
|
+
- 评审此策略并确认落地顺序。
|
|
74
|
+
- 在 TC-DOCS-04 中更新文档导航,提示 schema 目录及脚本位置。
|
|
75
|
+
- 进入下一阶段前,为 Automator 工具起草首个 schema 示例,验证生成脚本可行性。
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## 1. 背景与目标
|
|
4
4
|
- 将微信官方自动化 SDK(`miniprogram-automator`)包装为符合 Model Context Protocol (MCP) 的服务,供各类 LLM / Agent 以自然语言编排端到端测试与运维流程。
|
|
5
|
-
-
|
|
6
|
-
- 保持与需求文档、《微信小程序自动化 API
|
|
5
|
+
- 构建工具粒度清晰、配置灵活、可观测性良好的工程体系,聚焦 Creatoria MiniApp MCP 的落地实践。
|
|
6
|
+
- 保持与需求文档、《微信小程序自动化 API 完整文档》一致的能力覆盖,同时吸收成熟的上下文管理、能力开关、自动文档等工程手段。
|
|
7
7
|
|
|
8
8
|
## 2. 总体架构
|
|
9
9
|
```
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
[本地小程序项目]
|
|
22
22
|
```
|
|
23
23
|
- MCP Server 负责解析工具调用、维护会话状态、调度 `miniprogram-automator` 与 IDE 自动化端口。
|
|
24
|
-
-
|
|
24
|
+
- 会话上下文遵循统一管理:懒加载启动 IDE、持有 MiniProgram/Page/Element 句柄、统一回收资源。
|
|
25
25
|
- 支持多 Host 并发接入,通过 MCP sessionId 隔离状态。
|
|
26
26
|
|
|
27
27
|
## 3. MCP 服务设计
|
|
@@ -39,16 +39,16 @@
|
|
|
39
39
|
- `elements`: refId → Element 缓存(页面切换后自动失效)。
|
|
40
40
|
- `outputs`: 当次会话的截图/数据快照目录。
|
|
41
41
|
- 生命周期:首次请求创建,`miniProgram.close` 或会话断开时释放;异常时触发兜底清理。
|
|
42
|
-
-
|
|
42
|
+
- 引入统一的 Context 能力:加入 `outputFile()`、`log()`、`lookupSecret()` 等辅助方法以统一产物写入和敏感信息保护。
|
|
43
43
|
|
|
44
44
|
### 3.3 工具体系
|
|
45
45
|
- **Automator 级**:`launch`、`connect`、`disconnect`、`close`。
|
|
46
46
|
- **MiniProgram 级**:导航(`navigate_to`/`redirect_to`/`switch_tab`/...)、系统信息、`call_wx_method`、`mock_wx_method`、`evaluate`、`screenshot`、`page_scroll_to`、`test_accounts` 等。
|
|
47
47
|
- **Page 级**:`wait_for`、`query`/`query_all`、`xpath` 系列、`data`/`set_data`、`call_method`、`size`、`scroll_top`。
|
|
48
48
|
- **Element 级**:`text`、`attribute`、`value`、`property`、`style`、`tap`、`longpress`、`trigger`、`touch*`、子类专属(`input`、`scroll_to`、`swipe_to`、`move_to`、`slider_slide_to`、`context_call`、`custom_set_data` 等)。
|
|
49
|
-
-
|
|
49
|
+
- **扩展工具**(覆盖高级能力开关):
|
|
50
50
|
- `snapshot_page`(结构化 DOM 报文);
|
|
51
|
-
|
|
51
|
+
- `assert` 系列(exists/text/data 等);
|
|
52
52
|
- `record_actions` / `replay_actions`;
|
|
53
53
|
- `storage_get/set/clear`;
|
|
54
54
|
- `network_mock`(基于 `mockWxMethod` 或注入脚本);
|
|
@@ -67,7 +67,7 @@ type ElementRef = {
|
|
|
67
67
|
};
|
|
68
68
|
```
|
|
69
69
|
- 优先级:`refId` > `xpath` > `selector`;若页面刷新导致失效,自动抛错并提示重新查询。
|
|
70
|
-
-
|
|
70
|
+
- 解析成功后按需缓存,类似常见的多标签页面管理模式。
|
|
71
71
|
|
|
72
72
|
## 4. API 映射策略
|
|
73
73
|
- 对照《微信小程序自动化 API 完整文档》,确保 MiniProgram/Page/Element 方法全部可通过工具触达。
|
|
@@ -76,7 +76,7 @@ type ElementRef = {
|
|
|
76
76
|
|
|
77
77
|
## 5. 配置体系
|
|
78
78
|
### 5.1 配置来源
|
|
79
|
-
1. **CLI
|
|
79
|
+
1. **CLI 参数**:项目路径、CLI 路径、自动化端口、headless、输出目录、超时、能力开关等。
|
|
80
80
|
2. **配置文件**:JSON/TS(通过 `--config` 指定),可嵌套定义项目列表、默认页面、Mock 脚本、Secrets。
|
|
81
81
|
3. **环境变量**:用于注入敏感信息(token、账号),配合 `lookupSecret` 管理。
|
|
82
82
|
|
|
@@ -97,13 +97,13 @@ type ElementRef = {
|
|
|
97
97
|
| `snapshot` | 页面结构化快照 + 截图 | `snapshot_page`、`capture_artifacts` |
|
|
98
98
|
| `record` | 录制/回放工具 | Action Recorder 存储 |
|
|
99
99
|
| `network` | `mock_wx`、`mock_plugin_wx` 扩展 | 注入脚本/Mock 配置 |
|
|
100
|
-
| `tracing` |
|
|
100
|
+
| `tracing` | 每会话生成行为日志(与行业 trace 实践一致) | 输出目录 |
|
|
101
101
|
| `vision` | 未来支持坐标/截图分析(可选) | 视觉模型/IDE 截图 |
|
|
102
102
|
|
|
103
103
|
## 6. 输出与观测
|
|
104
104
|
- **日志**:
|
|
105
105
|
- 控制台输出结构化 JSON(tool、duration、result),便于 Host 呈现。
|
|
106
|
-
- 可选写入 `session.log
|
|
106
|
+
- 可选写入 `session.log`,遵循统一的会话追踪格式。
|
|
107
107
|
- **产物**:
|
|
108
108
|
- 截图:`miniProgram.screenshot`;失败时自动抓取。
|
|
109
109
|
- 页面数据快照:`page.data()` + 元素树;断言失败时附带 diff。
|
|
@@ -118,7 +118,7 @@ type ElementRef = {
|
|
|
118
118
|
3. **自动化测试**:
|
|
119
119
|
- 单元:针对 ElementRef 解析、配置解析编写 Jest/TS 测试。
|
|
120
120
|
- 集成:使用示例小程序项目 + CI Runner(macOS/Windows)跑回归脚本。
|
|
121
|
-
-
|
|
121
|
+
- 借鉴成熟的端到端测试实践,构建 `tests/` 用例驱动 CLI。
|
|
122
122
|
4. **CI/CD**:
|
|
123
123
|
- 采用 GitHub Actions/Moore pipeline:
|
|
124
124
|
1. 安装依赖与微信 IDE(或缓存);
|
|
@@ -133,7 +133,7 @@ type ElementRef = {
|
|
|
133
133
|
- 会话超时与 watchdog:长期未活动自动关闭 IDE。
|
|
134
134
|
- 断言/操作前增加 `page.waitFor`/`wait_for_selector`,减少竞态失败。
|
|
135
135
|
|
|
136
|
-
## 9.
|
|
136
|
+
## 9. 行业对标与增值点
|
|
137
137
|
- **工具 Schema 自动生成文档**:实现 `docs/update-readme.ts`,遍历工具注册,输出参数说明。
|
|
138
138
|
- **能力分层**:使用 `capabilities` 控制高级功能开启,与 CLI `--caps` 对齐。
|
|
139
139
|
- **上下文复用**:提供 `sharedMiniProgram` 模式,支持多个会话共享 IDE(类似 `SharedContextFactory`)。
|
|
@@ -149,7 +149,7 @@ type ElementRef = {
|
|
|
149
149
|
2. 多端兼容(真机云测、远程调试接入);
|
|
150
150
|
3. 与团队测试平台集成(结果上报、用例管理);
|
|
151
151
|
4. 选择器智能推荐(结合页面结构快照与静态标记 `data-testid`);
|
|
152
|
-
5.
|
|
152
|
+
5. 扩展到混合 H5 场景时可引入视觉识别等高级能力。
|
|
153
153
|
|
|
154
154
|
---
|
|
155
|
-
该方案汇总了需求文档的能力诉求、API
|
|
155
|
+
该方案汇总了需求文档的能力诉求、API 覆盖范围,以及业内成熟自动化平台的工程化经验,可作为后续开发与评审的基准文档。
|