@midscene/core 1.16.2 → 1.16.6-beta-20261023073257.0
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/dist/es/agent/agent.mjs +11 -11
- package/dist/es/agent/agent.mjs.map +1 -1
- package/dist/es/agent/insight.mjs.map +1 -1
- package/dist/es/agent/tasks.mjs +72 -39
- package/dist/es/agent/tasks.mjs.map +1 -1
- package/dist/es/agent/utils.mjs +1 -1
- package/dist/es/ai-model/connectivity/run-connectivity-test.mjs +27 -22
- package/dist/es/ai-model/connectivity/run-connectivity-test.mjs.map +1 -1
- package/dist/es/ai-model/index.mjs +4 -2
- package/dist/es/ai-model/model-adapter/resolve.mjs +4 -2
- package/dist/es/ai-model/model-adapter/resolve.mjs.map +1 -1
- package/dist/es/ai-model/models/jev/adapter.mjs +6 -110
- package/dist/es/ai-model/models/jev/adapter.mjs.map +1 -1
- package/dist/es/ai-model/models/jev/boolean.mjs +48 -0
- package/dist/es/ai-model/models/jev/boolean.mjs.map +1 -0
- package/dist/es/ai-model/models/jev/image.mjs +39 -36
- package/dist/es/ai-model/models/jev/image.mjs.map +1 -1
- package/dist/es/ai-model/models/jev/locate.mjs +48 -0
- package/dist/es/ai-model/models/jev/locate.mjs.map +1 -0
- package/dist/es/ai-model/models/jev/planning-action.mjs +35 -0
- package/dist/es/ai-model/models/jev/planning-action.mjs.map +1 -0
- package/dist/es/ai-model/models/jev/planning-context.mjs +38 -0
- package/dist/es/ai-model/models/jev/planning-context.mjs.map +1 -0
- package/dist/es/ai-model/models/jev/planning-decision.mjs +68 -0
- package/dist/es/ai-model/models/jev/planning-decision.mjs.map +1 -0
- package/dist/es/ai-model/models/jev/planning.mjs +19 -131
- package/dist/es/ai-model/models/jev/planning.mjs.map +1 -1
- package/dist/es/ai-model/models/model-fallback.mjs +28 -0
- package/dist/es/ai-model/models/model-fallback.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/call-ai.mjs +54 -27
- package/dist/es/ai-model/service-caller/call-ai.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/codex/call-codex.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/index.mjs +2 -2
- package/dist/es/ai-model/service-caller/model-call.mjs +3 -3
- package/dist/es/ai-model/service-caller/model-call.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/openai/call-openai.mjs +4 -2
- package/dist/es/ai-model/service-caller/openai/call-openai.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/openai/chat-completion/chat-completion.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/openai/openai-client.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/openai/responses/responses.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/openai/siwc/authorization.mjs +117 -0
- package/dist/es/ai-model/service-caller/openai/siwc/authorization.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai/siwc/credential-storage.mjs +66 -0
- package/dist/es/ai-model/service-caller/openai/siwc/credential-storage.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai/siwc/errors.mjs +42 -0
- package/dist/es/ai-model/service-caller/openai/siwc/errors.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai/siwc/index.mjs +7 -0
- package/dist/es/ai-model/service-caller/openai/siwc/prepare-call.mjs +33 -0
- package/dist/es/ai-model/service-caller/openai/siwc/prepare-call.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai/siwc/refresh.mjs +60 -0
- package/dist/es/ai-model/service-caller/openai/siwc/refresh.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai/siwc/token-manager.mjs +51 -0
- package/dist/es/ai-model/service-caller/openai/siwc/token-manager.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/system-one/call-system-one.mjs +69 -0
- package/dist/es/ai-model/service-caller/system-one/call-system-one.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/system-one/index.mjs +3 -0
- package/dist/es/ai-model/service-caller/system-one/prepare-system-one.mjs +44 -0
- package/dist/es/ai-model/service-caller/system-one/prepare-system-one.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/system-one/schema.mjs +32 -0
- package/dist/es/ai-model/service-caller/system-one/schema.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/system-one/utils.mjs +34 -0
- package/dist/es/ai-model/service-caller/system-one/utils.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/utils.mjs +2 -2
- package/dist/es/ai-model/service-caller/utils.mjs.map +1 -1
- package/dist/es/ai-model/shared/model-locate-result/factory.mjs +7 -3
- package/dist/es/ai-model/shared/model-locate-result/factory.mjs.map +1 -1
- package/dist/es/ai-model/shared/model-locate-result/pixel-mapper.mjs +10 -4
- package/dist/es/ai-model/shared/model-locate-result/pixel-mapper.mjs.map +1 -1
- package/dist/es/ai-model/shared/model-locate-result/types.mjs.map +1 -1
- package/dist/es/ai-model/shared/model-locate-result/validation.mjs +4 -0
- package/dist/es/ai-model/shared/model-locate-result/validation.mjs.map +1 -1
- package/dist/es/ai-model/workflows/grounding/locate.mjs +2 -2
- package/dist/es/ai-model/workflows/grounding/locate.mjs.map +1 -1
- package/dist/es/ai-model/workflows/grounding/section-locate.mjs +2 -2
- package/dist/es/ai-model/workflows/grounding/section-locate.mjs.map +1 -1
- package/dist/es/ai-model/workflows/insight/boolean.mjs +1 -1
- package/dist/es/ai-model/workflows/insight/boolean.mjs.map +1 -1
- package/dist/es/ai-model/workflows/insight/extraction.mjs +3 -3
- package/dist/es/ai-model/workflows/insight/extraction.mjs.map +1 -1
- package/dist/es/ai-model/workflows/planning/standard-planning.mjs +4 -3
- package/dist/es/ai-model/workflows/planning/standard-planning.mjs.map +1 -1
- package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs +2 -2
- package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs.map +1 -1
- package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs +2 -2
- package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs.map +1 -1
- package/dist/es/device/index.mjs +7 -0
- package/dist/es/device/index.mjs.map +1 -1
- package/dist/es/report-html-template.mjs +1 -1
- package/dist/es/service/index.mjs +2 -1
- package/dist/es/service/index.mjs.map +1 -1
- package/dist/es/types.mjs.map +1 -1
- package/dist/es/utils.mjs +1 -1
- package/dist/lib/agent/agent.js +11 -11
- package/dist/lib/agent/agent.js.map +1 -1
- package/dist/lib/agent/insight.js.map +1 -1
- package/dist/lib/agent/tasks.js +72 -39
- package/dist/lib/agent/tasks.js.map +1 -1
- package/dist/lib/agent/utils.js +1 -1
- package/dist/lib/ai-model/connectivity/run-connectivity-test.js +27 -22
- package/dist/lib/ai-model/connectivity/run-connectivity-test.js.map +1 -1
- package/dist/lib/ai-model/index.js +34 -5
- package/dist/lib/ai-model/model-adapter/resolve.js +4 -2
- package/dist/lib/ai-model/model-adapter/resolve.js.map +1 -1
- package/dist/lib/ai-model/models/jev/adapter.js +6 -110
- package/dist/lib/ai-model/models/jev/adapter.js.map +1 -1
- package/dist/lib/ai-model/models/jev/boolean.js +82 -0
- package/dist/lib/ai-model/models/jev/boolean.js.map +1 -0
- package/dist/lib/ai-model/models/jev/image.js +41 -35
- package/dist/lib/ai-model/models/jev/image.js.map +1 -1
- package/dist/lib/ai-model/models/jev/locate.js +82 -0
- package/dist/lib/ai-model/models/jev/locate.js.map +1 -0
- package/dist/lib/ai-model/models/jev/planning-action.js +69 -0
- package/dist/lib/ai-model/models/jev/planning-action.js.map +1 -0
- package/dist/lib/ai-model/models/jev/planning-context.js +72 -0
- package/dist/lib/ai-model/models/jev/planning-context.js.map +1 -0
- package/dist/lib/ai-model/models/jev/planning-decision.js +102 -0
- package/dist/lib/ai-model/models/jev/planning-decision.js.map +1 -0
- package/dist/lib/ai-model/models/jev/planning.js +19 -131
- package/dist/lib/ai-model/models/jev/planning.js.map +1 -1
- package/dist/lib/ai-model/models/{task-routing.js → model-fallback.js} +11 -11
- package/dist/lib/ai-model/models/model-fallback.js.map +1 -0
- package/dist/lib/ai-model/service-caller/call-ai.js +59 -29
- package/dist/lib/ai-model/service-caller/call-ai.js.map +1 -1
- package/dist/lib/ai-model/service-caller/codex/call-codex.js.map +1 -1
- package/dist/lib/ai-model/service-caller/index.js +6 -3
- package/dist/lib/ai-model/service-caller/model-call.js +2 -2
- package/dist/lib/ai-model/service-caller/model-call.js.map +1 -1
- package/dist/lib/ai-model/service-caller/openai/call-openai.js +4 -2
- package/dist/lib/ai-model/service-caller/openai/call-openai.js.map +1 -1
- package/dist/lib/ai-model/service-caller/openai/chat-completion/chat-completion.js.map +1 -1
- package/dist/lib/ai-model/service-caller/openai/openai-client.js.map +1 -1
- package/dist/lib/ai-model/service-caller/openai/responses/responses.js.map +1 -1
- package/dist/lib/ai-model/service-caller/openai/siwc/authorization.js +157 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/authorization.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/credential-storage.js +103 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/credential-storage.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/errors.js +85 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/errors.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/index.js +64 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/index.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/prepare-call.js +67 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/prepare-call.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/refresh.js +94 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/refresh.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/token-manager.js +85 -0
- package/dist/lib/ai-model/service-caller/openai/siwc/token-manager.js.map +1 -0
- package/dist/lib/ai-model/service-caller/system-one/call-system-one.js +103 -0
- package/dist/lib/ai-model/service-caller/system-one/call-system-one.js.map +1 -0
- package/dist/lib/ai-model/service-caller/system-one/index.js +42 -0
- package/dist/lib/ai-model/service-caller/system-one/index.js.map +1 -0
- package/dist/lib/ai-model/service-caller/system-one/prepare-system-one.js +78 -0
- package/dist/lib/ai-model/service-caller/system-one/prepare-system-one.js.map +1 -0
- package/dist/lib/ai-model/service-caller/system-one/schema.js +69 -0
- package/dist/lib/ai-model/service-caller/system-one/schema.js.map +1 -0
- package/dist/lib/ai-model/service-caller/system-one/utils.js +68 -0
- package/dist/lib/ai-model/service-caller/system-one/utils.js.map +1 -0
- package/dist/lib/ai-model/service-caller/utils.js +2 -2
- package/dist/lib/ai-model/service-caller/utils.js.map +1 -1
- package/dist/lib/ai-model/shared/model-locate-result/factory.js +7 -3
- package/dist/lib/ai-model/shared/model-locate-result/factory.js.map +1 -1
- package/dist/lib/ai-model/shared/model-locate-result/pixel-mapper.js +10 -4
- package/dist/lib/ai-model/shared/model-locate-result/pixel-mapper.js.map +1 -1
- package/dist/lib/ai-model/shared/model-locate-result/types.js.map +1 -1
- package/dist/lib/ai-model/shared/model-locate-result/validation.js +4 -0
- package/dist/lib/ai-model/shared/model-locate-result/validation.js.map +1 -1
- package/dist/lib/ai-model/workflows/grounding/locate.js +1 -1
- package/dist/lib/ai-model/workflows/grounding/locate.js.map +1 -1
- package/dist/lib/ai-model/workflows/grounding/section-locate.js +1 -1
- package/dist/lib/ai-model/workflows/grounding/section-locate.js.map +1 -1
- package/dist/lib/ai-model/workflows/insight/boolean.js +1 -1
- package/dist/lib/ai-model/workflows/insight/boolean.js.map +1 -1
- package/dist/lib/ai-model/workflows/insight/extraction.js +2 -2
- package/dist/lib/ai-model/workflows/insight/extraction.js.map +1 -1
- package/dist/lib/ai-model/workflows/planning/standard-planning.js +3 -2
- package/dist/lib/ai-model/workflows/planning/standard-planning.js.map +1 -1
- package/dist/lib/ai-model/workflows/recorder-generation/playwright.js +1 -1
- package/dist/lib/ai-model/workflows/recorder-generation/playwright.js.map +1 -1
- package/dist/lib/ai-model/workflows/recorder-generation/yaml.js +1 -1
- package/dist/lib/ai-model/workflows/recorder-generation/yaml.js.map +1 -1
- package/dist/lib/device/index.js +7 -0
- package/dist/lib/device/index.js.map +1 -1
- package/dist/lib/report-html-template.js +1 -1
- package/dist/lib/service/index.js +2 -1
- package/dist/lib/service/index.js.map +1 -1
- package/dist/lib/test-runner/engine/index.js +2 -2
- package/dist/lib/test-runner/node/index.js +2 -2
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/types/agent/agent.d.ts.map +1 -1
- package/dist/types/agent/insight.d.ts +2 -2
- package/dist/types/agent/insight.d.ts.map +1 -1
- package/dist/types/agent/tasks.d.ts.map +1 -1
- package/dist/types/ai-model/connectivity/run-connectivity-test.d.ts.map +1 -1
- package/dist/types/ai-model/index.d.ts +4 -1
- package/dist/types/ai-model/index.d.ts.map +1 -1
- package/dist/types/ai-model/model-adapter/resolve.d.ts +2 -1
- package/dist/types/ai-model/model-adapter/resolve.d.ts.map +1 -1
- package/dist/types/ai-model/model-adapter/types.d.ts +8 -5
- package/dist/types/ai-model/model-adapter/types.d.ts.map +1 -1
- package/dist/types/ai-model/models/gpt.d.ts +2 -2
- package/dist/types/ai-model/models/jev/adapter.d.ts +4 -5
- package/dist/types/ai-model/models/jev/adapter.d.ts.map +1 -1
- package/dist/types/ai-model/models/jev/boolean.d.ts +3 -0
- package/dist/types/ai-model/models/jev/boolean.d.ts.map +1 -0
- package/dist/types/ai-model/models/jev/image.d.ts +11 -11
- package/dist/types/ai-model/models/jev/image.d.ts.map +1 -1
- package/dist/types/ai-model/models/jev/locate.d.ts +3 -0
- package/dist/types/ai-model/models/jev/locate.d.ts.map +1 -0
- package/dist/types/ai-model/models/jev/planning-action.d.ts +6 -0
- package/dist/types/ai-model/models/jev/planning-action.d.ts.map +1 -0
- package/dist/types/ai-model/models/jev/planning-context.d.ts +23 -0
- package/dist/types/ai-model/models/jev/planning-context.d.ts.map +1 -0
- package/dist/types/ai-model/models/jev/planning-decision.d.ts +35 -0
- package/dist/types/ai-model/models/jev/planning-decision.d.ts.map +1 -0
- package/dist/types/ai-model/models/jev/planning.d.ts.map +1 -1
- package/dist/types/ai-model/models/model-fallback.d.ts +6 -0
- package/dist/types/ai-model/models/model-fallback.d.ts.map +1 -0
- package/dist/types/ai-model/models/registry.d.ts +4 -3
- package/dist/types/ai-model/models/registry.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/call-ai.d.ts +3 -1
- package/dist/types/ai-model/service-caller/call-ai.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/codex/call-codex.d.ts +5 -3
- package/dist/types/ai-model/service-caller/codex/call-codex.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/index.d.ts +1 -1
- package/dist/types/ai-model/service-caller/index.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/model-call.d.ts +2 -2
- package/dist/types/ai-model/service-caller/model-call.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/openai/call-openai.d.ts +2 -2
- package/dist/types/ai-model/service-caller/openai/call-openai.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/openai/chat-completion/chat-completion.d.ts +4 -2
- package/dist/types/ai-model/service-caller/openai/chat-completion/chat-completion.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/openai/responses/responses.d.ts +4 -2
- package/dist/types/ai-model/service-caller/openai/responses/responses.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/openai/siwc/authorization.d.ts +42 -0
- package/dist/types/ai-model/service-caller/openai/siwc/authorization.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/credential-storage.d.ts +21 -0
- package/dist/types/ai-model/service-caller/openai/siwc/credential-storage.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/errors.d.ts +10 -0
- package/dist/types/ai-model/service-caller/openai/siwc/errors.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/index.d.ts +7 -0
- package/dist/types/ai-model/service-caller/openai/siwc/index.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/prepare-call.d.ts +8 -0
- package/dist/types/ai-model/service-caller/openai/siwc/prepare-call.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/refresh.d.ts +19 -0
- package/dist/types/ai-model/service-caller/openai/siwc/refresh.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/openai/siwc/token-manager.d.ts +10 -0
- package/dist/types/ai-model/service-caller/openai/siwc/token-manager.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/system-one/call-system-one.d.ts +4 -0
- package/dist/types/ai-model/service-caller/system-one/call-system-one.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/system-one/index.d.ts +3 -0
- package/dist/types/ai-model/service-caller/system-one/index.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/system-one/prepare-system-one.d.ts +21 -0
- package/dist/types/ai-model/service-caller/system-one/prepare-system-one.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/{system-one.d.ts → system-one/schema.d.ts} +1 -22
- package/dist/types/ai-model/service-caller/system-one/schema.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/system-one/utils.d.ts +6 -0
- package/dist/types/ai-model/service-caller/system-one/utils.d.ts.map +1 -0
- package/dist/types/ai-model/service-caller/types.d.ts +0 -3
- package/dist/types/ai-model/service-caller/types.d.ts.map +1 -1
- package/dist/types/ai-model/service-caller/utils.d.ts +3 -3
- package/dist/types/ai-model/shared/model-locate-result/factory.d.ts.map +1 -1
- package/dist/types/ai-model/shared/model-locate-result/index.d.ts +1 -1
- package/dist/types/ai-model/shared/model-locate-result/index.d.ts.map +1 -1
- package/dist/types/ai-model/shared/model-locate-result/pixel-mapper.d.ts +3 -3
- package/dist/types/ai-model/shared/model-locate-result/pixel-mapper.d.ts.map +1 -1
- package/dist/types/ai-model/shared/model-locate-result/types.d.ts +4 -0
- package/dist/types/ai-model/shared/model-locate-result/types.d.ts.map +1 -1
- package/dist/types/ai-model/shared/model-locate-result/validation.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/grounding/locate.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/grounding/section-locate.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/insight/boolean.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/insight/extraction.d.ts +2 -0
- package/dist/types/ai-model/workflows/insight/extraction.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/planning/standard-planning.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/planning/types.d.ts +2 -1
- package/dist/types/ai-model/workflows/planning/types.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/recorder-generation/playwright.d.ts.map +1 -1
- package/dist/types/ai-model/workflows/recorder-generation/yaml.d.ts.map +1 -1
- package/dist/types/device/index.d.ts +1 -0
- package/dist/types/device/index.d.ts.map +1 -1
- package/dist/types/service/index.d.ts +1 -1
- package/dist/types/service/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +14 -3
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/es/ai-model/models/task-routing.mjs +0 -28
- package/dist/es/ai-model/models/task-routing.mjs.map +0 -1
- package/dist/es/ai-model/service-caller/system-one.mjs +0 -163
- package/dist/es/ai-model/service-caller/system-one.mjs.map +0 -1
- package/dist/lib/ai-model/models/task-routing.js.map +0 -1
- package/dist/lib/ai-model/service-caller/system-one.js +0 -206
- package/dist/lib/ai-model/service-caller/system-one.js.map +0 -1
- package/dist/types/ai-model/models/task-routing.d.ts +0 -6
- package/dist/types/ai-model/models/task-routing.d.ts.map +0 -1
- package/dist/types/ai-model/service-caller/system-one.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-model/connectivity/run-connectivity-test.js","sources":["webpack/runtime/compat_get_default_export","webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/connectivity/run-connectivity-test.ts"],"sourcesContent":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ScreenshotItem } from '@/screenshot-item';\nimport Service from '@/service';\nimport type { UIContext } from '@/types';\nimport type { IModelConfig, TIntent } from '@midscene/shared/env';\nimport { getModelRuntime } from '../models';\nimport type { ModelRuntime } from '../models';\nimport { callAI } from '../service-caller';\nimport { systemOneResponseSchema } from '../service-caller/system-one';\nimport {\n CONNECTIVITY_FIXTURE_IMAGE,\n CONNECTIVITY_FIXTURE_SHOT_SIZE,\n} from './fixture';\n\nconst TEXT_EXPECTED_TOKEN = 'CONNECTIVITY_OK';\n\nexport interface ConnectivityCheckResultItem {\n name: 'text' | 'vision' | 'aiLocate';\n intent: TIntent;\n modelName: string;\n modelFamily?: string;\n passed: boolean;\n durationMs: number;\n requestCount: number;\n endpoints: string[];\n message: string;\n}\n\nexport interface ConnectivityTestResult {\n checks: ConnectivityCheckResultItem[];\n requestCount: number;\n passed: boolean;\n message?: string;\n}\n\nexport interface ConnectivityTestConfig {\n defaultModelConfig: IModelConfig;\n locateModelConfig?: IModelConfig;\n planningModelConfig: IModelConfig;\n insightModelConfig: IModelConfig;\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction hasValidCenter(value: unknown): boolean {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n isFiniteNumber(value[0]) &&\n isFiniteNumber(value[1])\n );\n}\n\nfunction buildFixtureContext(): UIContext {\n return {\n screenshot: ScreenshotItem.create(CONNECTIVITY_FIXTURE_IMAGE, Date.now()),\n shotSize: CONNECTIVITY_FIXTURE_SHOT_SIZE,\n shrunkShotToLogicalRatio: 1,\n };\n}\n\nfunction buildCheckResult(\n name: ConnectivityCheckResultItem['name'],\n modelRuntime: ModelRuntime,\n result: Omit<\n ConnectivityCheckResultItem,\n | 'name'\n | 'intent'\n | 'modelName'\n | 'modelFamily'\n | 'requestCount'\n | 'endpoints'\n >,\n): ConnectivityCheckResultItem {\n const { config } = modelRuntime;\n return {\n name,\n intent: config.intent,\n modelName: config.modelName,\n modelFamily: config.modelFamily,\n requestCount: 0,\n endpoints: [],\n ...result,\n };\n}\n\nfunction buildConnectivityModelRuntime(\n modelConfig: IModelConfig,\n): ModelRuntime {\n return getModelRuntime({ ...modelConfig, retryCount: 0 });\n}\n\nfunction formatConnectivityCheckName(\n check: ConnectivityCheckResultItem,\n): string {\n const checkName =\n check.name === 'aiLocate'\n ? 'AI locate check'\n : `${check.name[0]?.toUpperCase()}${check.name.slice(1)} check`;\n const modelLabel = check.modelName || check.intent;\n return `${checkName} - ${modelLabel} (${check.intent})`;\n}\n\nfunction buildConnectivityFailureMessage(\n checks: ConnectivityCheckResultItem[],\n): string {\n const failedChecks = checks.filter((item) => !item.passed);\n if (failedChecks.length === 0) {\n return 'Connectivity test failed, but no failed check details were generated.';\n }\n\n return failedChecks\n .map((item) => {\n const detail = item.message || 'Failed without details.';\n return `[${formatConnectivityCheckName(item)}]: ${detail}`;\n })\n .join('\\n');\n}\n\nasync function runTextConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const isJev = modelRuntime.config.modelFamily === 'jev';\n const result = await callAI(\n [\n {\n role: 'system',\n content: 'Reply with the exact token the user asks for.',\n },\n {\n role: 'user',\n content: `Return exactly ${TEXT_EXPECTED_TOKEN}`,\n },\n ],\n modelRuntime,\n isJev\n ? {\n systemOneRequest: {\n state: { token: TEXT_EXPECTED_TOKEN },\n questions: {\n result: {\n type: 'noul',\n instructions: `Does token equal ${TEXT_EXPECTED_TOKEN}?`,\n },\n },\n },\n }\n : undefined,\n );\n const content = result.content.trim();\n const answer = isJev\n ? systemOneResponseSchema.parse(JSON.parse(content)).answers.result\n : undefined;\n const passed = isJev\n ? answer?.type === 'noul' && answer.noul >= 0.5\n : content.includes(TEXT_EXPECTED_TOKEN);\n return buildCheckResult('text', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed ? '' : `Unexpected response: ${content}`,\n });\n } catch (error) {\n return buildCheckResult('text', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runVisionConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n if (modelRuntime.adapter.insight.booleanFn) {\n await new Service(buildFixtureContext()).extract(\n { Boolean: 'Does this screenshot show a form?' },\n modelRuntime,\n { screenshotIncluded: true },\n undefined,\n undefined,\n buildFixtureContext(),\n );\n } else {\n await callAI(\n [\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: 'What is the main content of this image ? It is a photo or a form ?',\n },\n {\n type: 'image',\n url: CONNECTIVITY_FIXTURE_IMAGE,\n },\n ],\n },\n ],\n modelRuntime,\n );\n }\n return buildCheckResult('vision', modelRuntime, {\n passed: true,\n durationMs: Date.now() - startTime,\n message: '',\n });\n } catch (error) {\n return buildCheckResult('vision', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runAiLocateConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const context = buildFixtureContext();\n const service = new Service(context);\n const locateResult = await service.locate(\n { prompt: 'the main todo input box' },\n {},\n modelRuntime,\n );\n const center = locateResult.element?.center;\n const passed = hasValidCenter(center);\n return buildCheckResult('aiLocate', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed\n ? ''\n : `Invalid locate result: ${JSON.stringify({\n center,\n })}`,\n });\n } catch (error) {\n return buildCheckResult('aiLocate', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport async function runConnectivityTest(\n config: ConnectivityTestConfig,\n): Promise<ConnectivityTestResult> {\n const runCheck = async (\n modelConfig: IModelConfig,\n check: (runtime: ModelRuntime) => Promise<ConnectivityCheckResultItem>,\n ) => {\n const runtime = buildConnectivityModelRuntime(modelConfig);\n let requestCount = 0;\n const endpoints = new Set<string>();\n runtime.onRequest = (endpoint) => {\n requestCount += 1;\n if (endpoint) endpoints.add(endpoint);\n };\n const result = await check(runtime);\n return { ...result, requestCount, endpoints: [...endpoints] };\n };\n const checks = await Promise.all([\n runCheck(config.planningModelConfig, runTextConnectivityCheck),\n runCheck(config.insightModelConfig, runVisionConnectivityCheck),\n runCheck(\n config.locateModelConfig ?? config.defaultModelConfig,\n runAiLocateConnectivityCheck,\n ),\n runCheck(config.defaultModelConfig, runTextConnectivityCheck),\n ]);\n\n const passed = checks.every((item) => item.passed);\n return {\n checks,\n requestCount: checks.reduce(\n (total, check) => total + check.requestCount,\n 0,\n ),\n passed,\n message: passed ? undefined : buildConnectivityFailureMessage(checks),\n };\n}\n"],"names":["__webpack_require__","module","getter","definition","key","Object","obj","prop","Symbol","TEXT_EXPECTED_TOKEN","isFiniteNumber","value","Number","hasValidCenter","Array","buildFixtureContext","ScreenshotItem","CONNECTIVITY_FIXTURE_IMAGE","Date","CONNECTIVITY_FIXTURE_SHOT_SIZE","buildCheckResult","name","modelRuntime","result","config","buildConnectivityModelRuntime","modelConfig","getModelRuntime","formatConnectivityCheckName","check","checkName","modelLabel","buildConnectivityFailureMessage","checks","failedChecks","item","detail","runTextConnectivityCheck","startTime","isJev","callAI","undefined","content","answer","systemOneResponseSchema","JSON","passed","error","Error","String","runVisionConnectivityCheck","Service","runAiLocateConnectivityCheck","context","service","locateResult","center","runConnectivityTest","runCheck","runtime","requestCount","endpoints","Set","endpoint","Promise","total"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-model/connectivity/run-connectivity-test.js","sources":["webpack/runtime/compat_get_default_export","webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/connectivity/run-connectivity-test.ts"],"sourcesContent":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ScreenshotItem } from '@/screenshot-item';\nimport Service from '@/service';\nimport type { UIContext } from '@/types';\nimport type { IModelConfig, TIntent } from '@midscene/shared/env';\nimport { getModelRuntime } from '../models';\nimport type { ModelRuntime } from '../models';\nimport { callGenerativeAI, callSystemOneAI } from '../service-caller';\nimport { systemOneResponseSchema } from '../service-caller/system-one/schema';\nimport {\n CONNECTIVITY_FIXTURE_IMAGE,\n CONNECTIVITY_FIXTURE_SHOT_SIZE,\n} from './fixture';\n\nconst TEXT_EXPECTED_TOKEN = 'CONNECTIVITY_OK';\n\nexport interface ConnectivityCheckResultItem {\n name: 'text' | 'vision' | 'aiLocate';\n intent: TIntent;\n modelName: string;\n modelFamily?: string;\n passed: boolean;\n durationMs: number;\n requestCount: number;\n endpoints: string[];\n message: string;\n}\n\nexport interface ConnectivityTestResult {\n checks: ConnectivityCheckResultItem[];\n requestCount: number;\n passed: boolean;\n message?: string;\n}\n\nexport interface ConnectivityTestConfig {\n defaultModelConfig: IModelConfig;\n locateModelConfig?: IModelConfig;\n planningModelConfig: IModelConfig;\n insightModelConfig: IModelConfig;\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction hasValidCenter(value: unknown): boolean {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n isFiniteNumber(value[0]) &&\n isFiniteNumber(value[1])\n );\n}\n\nfunction buildFixtureContext(): UIContext {\n return {\n screenshot: ScreenshotItem.create(CONNECTIVITY_FIXTURE_IMAGE, Date.now()),\n shotSize: CONNECTIVITY_FIXTURE_SHOT_SIZE,\n shrunkShotToLogicalRatio: 1,\n };\n}\n\nfunction buildCheckResult(\n name: ConnectivityCheckResultItem['name'],\n modelRuntime: ModelRuntime,\n result: Omit<\n ConnectivityCheckResultItem,\n | 'name'\n | 'intent'\n | 'modelName'\n | 'modelFamily'\n | 'requestCount'\n | 'endpoints'\n >,\n): ConnectivityCheckResultItem {\n const { config } = modelRuntime;\n return {\n name,\n intent: config.intent,\n modelName: config.modelName,\n modelFamily: config.modelFamily,\n requestCount: 0,\n endpoints: [],\n ...result,\n };\n}\n\nfunction buildConnectivityModelRuntime(\n modelConfig: IModelConfig,\n): ModelRuntime {\n return getModelRuntime({ ...modelConfig, retryCount: 0 });\n}\n\nfunction formatConnectivityCheckName(\n check: ConnectivityCheckResultItem,\n): string {\n const checkName =\n check.name === 'aiLocate'\n ? 'AI locate check'\n : `${check.name[0]?.toUpperCase()}${check.name.slice(1)} check`;\n const modelLabel = check.modelName || check.intent;\n return `${checkName} - ${modelLabel} (${check.intent})`;\n}\n\nfunction buildConnectivityFailureMessage(\n checks: ConnectivityCheckResultItem[],\n): string {\n const failedChecks = checks.filter((item) => !item.passed);\n if (failedChecks.length === 0) {\n return 'Connectivity test failed, but no failed check details were generated.';\n }\n\n return failedChecks\n .map((item) => {\n const detail = item.message || 'Failed without details.';\n return `[${formatConnectivityCheckName(item)}]: ${detail}`;\n })\n .join('\\n');\n}\n\nasync function runTextConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const isJev = modelRuntime.config.modelFamily === 'jev';\n const result = await (isJev\n ? callSystemOneAI(\n {\n state: { token: TEXT_EXPECTED_TOKEN },\n questions: {\n result: {\n type: 'noul',\n instructions: `Does token equal ${TEXT_EXPECTED_TOKEN}?`,\n },\n },\n },\n modelRuntime,\n )\n : callGenerativeAI(\n [\n {\n role: 'system',\n content: 'Reply with the exact token the user asks for.',\n },\n {\n role: 'user',\n content: `Return exactly ${TEXT_EXPECTED_TOKEN}`,\n },\n ],\n modelRuntime,\n ));\n const content = result.content.trim();\n const answer = isJev\n ? systemOneResponseSchema.parse(JSON.parse(content)).answers.result\n : undefined;\n const passed = isJev\n ? answer?.type === 'noul' && answer.noul >= 0.5\n : content.includes(TEXT_EXPECTED_TOKEN);\n return buildCheckResult('text', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed ? '' : `Unexpected response: ${content}`,\n });\n } catch (error) {\n return buildCheckResult('text', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runVisionConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n if (modelRuntime.config.modelFamily === 'jev') {\n await callSystemOneAI(\n {\n state: {},\n images: { screenshot: CONNECTIVITY_FIXTURE_IMAGE },\n questions: {\n result: {\n type: 'noul',\n instructions: 'Does `screenshot` show a form?',\n },\n },\n },\n modelRuntime,\n );\n } else {\n await callGenerativeAI(\n [\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: 'What is the main content of this image ? It is a photo or a form ?',\n },\n {\n type: 'image',\n url: CONNECTIVITY_FIXTURE_IMAGE,\n },\n ],\n },\n ],\n modelRuntime,\n );\n }\n return buildCheckResult('vision', modelRuntime, {\n passed: true,\n durationMs: Date.now() - startTime,\n message: '',\n });\n } catch (error) {\n return buildCheckResult('vision', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runAiLocateConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const context = buildFixtureContext();\n const service = new Service(context);\n const locateResult = await service.locate(\n { prompt: 'the main todo input box' },\n {},\n modelRuntime,\n );\n const center = locateResult.element?.center;\n const passed = hasValidCenter(center);\n return buildCheckResult('aiLocate', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed\n ? ''\n : `Invalid locate result: ${JSON.stringify({\n center,\n })}`,\n });\n } catch (error) {\n return buildCheckResult('aiLocate', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport async function runConnectivityTest(\n config: ConnectivityTestConfig,\n): Promise<ConnectivityTestResult> {\n const runCheck = async (\n modelConfig: IModelConfig,\n check: (runtime: ModelRuntime) => Promise<ConnectivityCheckResultItem>,\n ) => {\n const runtime = buildConnectivityModelRuntime(modelConfig);\n let requestCount = 0;\n const endpoints = new Set<string>();\n runtime.onRequest = (endpoint) => {\n requestCount += 1;\n if (endpoint) endpoints.add(endpoint);\n };\n const result = await check(runtime);\n return { ...result, requestCount, endpoints: [...endpoints] };\n };\n const checks = await Promise.all([\n runCheck(config.planningModelConfig, runTextConnectivityCheck),\n runCheck(config.insightModelConfig, runVisionConnectivityCheck),\n runCheck(\n config.locateModelConfig ?? config.defaultModelConfig,\n runAiLocateConnectivityCheck,\n ),\n runCheck(config.defaultModelConfig, runTextConnectivityCheck),\n ]);\n\n const passed = checks.every((item) => item.passed);\n return {\n checks,\n requestCount: checks.reduce(\n (total, check) => total + check.requestCount,\n 0,\n ),\n passed,\n message: passed ? undefined : buildConnectivityFailureMessage(checks),\n };\n}\n"],"names":["__webpack_require__","module","getter","definition","key","Object","obj","prop","Symbol","TEXT_EXPECTED_TOKEN","isFiniteNumber","value","Number","hasValidCenter","Array","buildFixtureContext","ScreenshotItem","CONNECTIVITY_FIXTURE_IMAGE","Date","CONNECTIVITY_FIXTURE_SHOT_SIZE","buildCheckResult","name","modelRuntime","result","config","buildConnectivityModelRuntime","modelConfig","getModelRuntime","formatConnectivityCheckName","check","checkName","modelLabel","buildConnectivityFailureMessage","checks","failedChecks","item","detail","runTextConnectivityCheck","startTime","isJev","callSystemOneAI","callGenerativeAI","content","answer","systemOneResponseSchema","JSON","undefined","passed","error","Error","String","runVisionConnectivityCheck","runAiLocateConnectivityCheck","context","service","Service","locateResult","center","runConnectivityTest","runCheck","runtime","requestCount","endpoints","Set","endpoint","Promise","total"],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
32
32
|
runConnectivityTest: ()=>external_connectivity_index_js_namespaceObject.runConnectivityTest,
|
|
33
33
|
parseActionParam: ()=>external_common_js_namespaceObject.parseActionParam,
|
|
34
34
|
createRecorderMarkdownReplayPrompt: ()=>recorder_generation_index_js_namespaceObject.createRecorderMarkdownReplayPrompt,
|
|
35
|
+
parseSiwcCallback: ()=>siwc_index_js_namespaceObject.parseSiwcCallback,
|
|
35
36
|
convertRecordLogIntoMarkdown: ()=>recorder_generation_index_js_namespaceObject.convertRecordLogIntoMarkdown,
|
|
36
37
|
AiExtractElementInfo: ()=>insight_index_js_namespaceObject.AiExtractElementInfo,
|
|
37
38
|
callAIWithStringResponse: ()=>index_js_namespaceObject.callAIWithStringResponse,
|
|
@@ -45,25 +46,35 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
45
46
|
PointSchema: ()=>external_common_js_namespaceObject.PointSchema,
|
|
46
47
|
AIResponseParseError: ()=>index_js_namespaceObject.AIResponseParseError,
|
|
47
48
|
RectSchema: ()=>external_common_js_namespaceObject.RectSchema,
|
|
49
|
+
callGenerativeAI: ()=>index_js_namespaceObject.callGenerativeAI,
|
|
50
|
+
refreshSiwcCredentials: ()=>siwc_index_js_namespaceObject.refreshSiwcCredentials,
|
|
51
|
+
tokenResponseError: ()=>errors_js_namespaceObject.tokenResponseError,
|
|
48
52
|
standardPlan: ()=>planning_index_js_namespaceObject.standardPlan,
|
|
49
53
|
generateRecorderYamlTest: ()=>recorder_generation_index_js_namespaceObject.generateRecorderYamlTest,
|
|
50
|
-
callAI: ()=>index_js_namespaceObject.callAI,
|
|
51
54
|
AiLocateElement: ()=>grounding_index_js_namespaceObject.AiLocateElement,
|
|
52
55
|
getModelRuntime: ()=>external_models_index_js_namespaceObject.getModelRuntime,
|
|
56
|
+
SIWC_AUTH_STORAGE_KEY: ()=>siwc_index_js_namespaceObject.SIWC_AUTH_STORAGE_KEY,
|
|
57
|
+
exchangeSiwcCode: ()=>siwc_index_js_namespaceObject.exchangeSiwcCode,
|
|
53
58
|
generateRecorderMarkdownReplay: ()=>recorder_generation_index_js_namespaceObject.generateRecorderMarkdownReplay,
|
|
59
|
+
createSiwcAuthorization: ()=>siwc_index_js_namespaceObject.createSiwcAuthorization,
|
|
54
60
|
findAllMidsceneLocatorField: ()=>external_common_js_namespaceObject.findAllMidsceneLocatorField,
|
|
61
|
+
callSystemOneAI: ()=>index_js_namespaceObject.callSystemOneAI,
|
|
55
62
|
generatePlaywrightTestStream: ()=>recorder_generation_index_js_namespaceObject.generatePlaywrightTestStream,
|
|
63
|
+
withSiwcStage: ()=>errors_js_namespaceObject.withSiwcStage,
|
|
56
64
|
AiLocateSection: ()=>grounding_index_js_namespaceObject.AiLocateSection,
|
|
57
|
-
TMultimodalPromptSchema: ()=>external_common_js_namespaceObject.TMultimodalPromptSchema
|
|
65
|
+
TMultimodalPromptSchema: ()=>external_common_js_namespaceObject.TMultimodalPromptSchema,
|
|
66
|
+
SiwcError: ()=>errors_js_namespaceObject.SiwcError
|
|
58
67
|
});
|
|
59
68
|
const index_js_namespaceObject = require("./service-caller/index.js");
|
|
60
69
|
const external_models_index_js_namespaceObject = require("./models/index.js");
|
|
70
|
+
const siwc_index_js_namespaceObject = require("./service-caller/openai/siwc/index.js");
|
|
61
71
|
const external_connectivity_index_js_namespaceObject = require("./connectivity/index.js");
|
|
62
72
|
const recorder_generation_index_js_namespaceObject = require("./workflows/recorder-generation/index.js");
|
|
63
73
|
const grounding_index_js_namespaceObject = require("./workflows/grounding/index.js");
|
|
64
74
|
const insight_index_js_namespaceObject = require("./workflows/insight/index.js");
|
|
65
75
|
const planning_index_js_namespaceObject = require("./workflows/planning/index.js");
|
|
66
76
|
const external_common_js_namespaceObject = require("../common.js");
|
|
77
|
+
const errors_js_namespaceObject = require("./service-caller/openai/siwc/errors.js");
|
|
67
78
|
exports.AIResponseParseError = __webpack_exports__.AIResponseParseError;
|
|
68
79
|
exports.AiExtractElementInfo = __webpack_exports__.AiExtractElementInfo;
|
|
69
80
|
exports.AiJudgeOrderSensitive = __webpack_exports__.AiJudgeOrderSensitive;
|
|
@@ -72,15 +83,20 @@ exports.AiLocateSection = __webpack_exports__.AiLocateSection;
|
|
|
72
83
|
exports.ConversationHistory = __webpack_exports__.ConversationHistory;
|
|
73
84
|
exports.PointSchema = __webpack_exports__.PointSchema;
|
|
74
85
|
exports.RectSchema = __webpack_exports__.RectSchema;
|
|
86
|
+
exports.SIWC_AUTH_STORAGE_KEY = __webpack_exports__.SIWC_AUTH_STORAGE_KEY;
|
|
87
|
+
exports.SiwcError = __webpack_exports__.SiwcError;
|
|
75
88
|
exports.SizeSchema = __webpack_exports__.SizeSchema;
|
|
76
89
|
exports.TMultimodalPromptSchema = __webpack_exports__.TMultimodalPromptSchema;
|
|
77
90
|
exports.TUserPromptSchema = __webpack_exports__.TUserPromptSchema;
|
|
78
|
-
exports.callAI = __webpack_exports__.callAI;
|
|
79
91
|
exports.callAIWithObjectResponse = __webpack_exports__.callAIWithObjectResponse;
|
|
80
92
|
exports.callAIWithStringResponse = __webpack_exports__.callAIWithStringResponse;
|
|
93
|
+
exports.callGenerativeAI = __webpack_exports__.callGenerativeAI;
|
|
94
|
+
exports.callSystemOneAI = __webpack_exports__.callSystemOneAI;
|
|
81
95
|
exports.convertRecordLogIntoMarkdown = __webpack_exports__.convertRecordLogIntoMarkdown;
|
|
82
96
|
exports.createRecorderMarkdownReplayPrompt = __webpack_exports__.createRecorderMarkdownReplayPrompt;
|
|
97
|
+
exports.createSiwcAuthorization = __webpack_exports__.createSiwcAuthorization;
|
|
83
98
|
exports.dumpActionParam = __webpack_exports__.dumpActionParam;
|
|
99
|
+
exports.exchangeSiwcCode = __webpack_exports__.exchangeSiwcCode;
|
|
84
100
|
exports.findAllMidsceneLocatorField = __webpack_exports__.findAllMidsceneLocatorField;
|
|
85
101
|
exports.generatePlaywrightTest = __webpack_exports__.generatePlaywrightTest;
|
|
86
102
|
exports.generatePlaywrightTestStream = __webpack_exports__.generatePlaywrightTestStream;
|
|
@@ -93,8 +109,12 @@ exports.generateYamlTestStream = __webpack_exports__.generateYamlTestStream;
|
|
|
93
109
|
exports.getMidsceneLocationSchema = __webpack_exports__.getMidsceneLocationSchema;
|
|
94
110
|
exports.getModelRuntime = __webpack_exports__.getModelRuntime;
|
|
95
111
|
exports.parseActionParam = __webpack_exports__.parseActionParam;
|
|
112
|
+
exports.parseSiwcCallback = __webpack_exports__.parseSiwcCallback;
|
|
113
|
+
exports.refreshSiwcCredentials = __webpack_exports__.refreshSiwcCredentials;
|
|
96
114
|
exports.runConnectivityTest = __webpack_exports__.runConnectivityTest;
|
|
97
115
|
exports.standardPlan = __webpack_exports__.standardPlan;
|
|
116
|
+
exports.tokenResponseError = __webpack_exports__.tokenResponseError;
|
|
117
|
+
exports.withSiwcStage = __webpack_exports__.withSiwcStage;
|
|
98
118
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
99
119
|
"AIResponseParseError",
|
|
100
120
|
"AiExtractElementInfo",
|
|
@@ -104,15 +124,20 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
104
124
|
"ConversationHistory",
|
|
105
125
|
"PointSchema",
|
|
106
126
|
"RectSchema",
|
|
127
|
+
"SIWC_AUTH_STORAGE_KEY",
|
|
128
|
+
"SiwcError",
|
|
107
129
|
"SizeSchema",
|
|
108
130
|
"TMultimodalPromptSchema",
|
|
109
131
|
"TUserPromptSchema",
|
|
110
|
-
"callAI",
|
|
111
132
|
"callAIWithObjectResponse",
|
|
112
133
|
"callAIWithStringResponse",
|
|
134
|
+
"callGenerativeAI",
|
|
135
|
+
"callSystemOneAI",
|
|
113
136
|
"convertRecordLogIntoMarkdown",
|
|
114
137
|
"createRecorderMarkdownReplayPrompt",
|
|
138
|
+
"createSiwcAuthorization",
|
|
115
139
|
"dumpActionParam",
|
|
140
|
+
"exchangeSiwcCode",
|
|
116
141
|
"findAllMidsceneLocatorField",
|
|
117
142
|
"generatePlaywrightTest",
|
|
118
143
|
"generatePlaywrightTestStream",
|
|
@@ -125,8 +150,12 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
125
150
|
"getMidsceneLocationSchema",
|
|
126
151
|
"getModelRuntime",
|
|
127
152
|
"parseActionParam",
|
|
153
|
+
"parseSiwcCallback",
|
|
154
|
+
"refreshSiwcCredentials",
|
|
128
155
|
"runConnectivityTest",
|
|
129
|
-
"standardPlan"
|
|
156
|
+
"standardPlan",
|
|
157
|
+
"tokenResponseError",
|
|
158
|
+
"withSiwcStage"
|
|
130
159
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
131
160
|
Object.defineProperty(exports, '__esModule', {
|
|
132
161
|
value: true
|
|
@@ -56,7 +56,8 @@ function resolveImagePreprocess(imagePreprocess) {
|
|
|
56
56
|
}
|
|
57
57
|
class ResolvedModelAdapter {
|
|
58
58
|
constructor(config, modelFamily){
|
|
59
|
-
_define_property(this, "
|
|
59
|
+
_define_property(this, "modelType", void 0);
|
|
60
|
+
_define_property(this, "supportedTaskTypes", void 0);
|
|
60
61
|
_define_property(this, "supportedProtocols", void 0);
|
|
61
62
|
_define_property(this, "jsonParser", void 0);
|
|
62
63
|
_define_property(this, "chatCompletion", void 0);
|
|
@@ -67,7 +68,8 @@ class ResolvedModelAdapter {
|
|
|
67
68
|
_define_property(this, "insight", void 0);
|
|
68
69
|
_define_property(this, "planning", void 0);
|
|
69
70
|
_define_property(this, "locate", void 0);
|
|
70
|
-
this.
|
|
71
|
+
this.modelType = config.modelType ?? 'generative';
|
|
72
|
+
this.supportedTaskTypes = config.supportedTaskTypes;
|
|
71
73
|
this.supportedProtocols = config.supportedProtocols ?? [
|
|
72
74
|
'openai-chat'
|
|
73
75
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-model/model-adapter/resolve.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/model-adapter/resolve.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { parseModelResponseJson } from '../shared/json';\nimport { resolveChatCompletion } from './chat-completion';\nimport { buildDefaultCodexAppServerParams } from './codex-app-server';\nimport { resolveInsight } from './insight';\nimport type { InsightAdapter } from './insight-protocol';\nimport { resolveLocate } from './locate';\nimport { resolveCustomPlanningDefinition, resolvePlanning } from './planning';\nimport { resolveResponses } from './responses';\nimport type {\n BuildCodexAppServerParams,\n ChatCompletionAdapter,\n ImagePreprocessPolicy,\n JsonParser,\n LocateAdapter,\n ModelAdapter,\n ModelAdapterDefinition,\n PlanningAdapter,\n ResolveImageDetail,\n ResponsesAdapter,\n} from './types';\n\nconst defaultImageDetail: ResolveImageDetail = ({ imageDetail }) =>\n imageDetail ?? 'high';\n\nfunction resolveJsonParser(\n jsonParser: ModelAdapterDefinition['jsonParser'],\n): JsonParser {\n if (!jsonParser || jsonParser === 'lenient-json') {\n return parseModelResponseJson;\n }\n\n if (typeof jsonParser === 'function') {\n return jsonParser;\n }\n\n throw new Error(`Unknown json parser preset: ${jsonParser}`);\n}\n\nfunction resolveImagePreprocess(\n imagePreprocess: ModelAdapterDefinition['imagePreprocess'],\n): ImagePreprocessPolicy {\n return {\n padBlockSize: imagePreprocess?.padBlockSize,\n };\n}\n\nexport class ResolvedModelAdapter implements ModelAdapter {\n readonly
|
|
1
|
+
{"version":3,"file":"ai-model/model-adapter/resolve.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/model-adapter/resolve.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { parseModelResponseJson } from '../shared/json';\nimport { resolveChatCompletion } from './chat-completion';\nimport { buildDefaultCodexAppServerParams } from './codex-app-server';\nimport { resolveInsight } from './insight';\nimport type { InsightAdapter } from './insight-protocol';\nimport { resolveLocate } from './locate';\nimport { resolveCustomPlanningDefinition, resolvePlanning } from './planning';\nimport { resolveResponses } from './responses';\nimport type {\n BuildCodexAppServerParams,\n ChatCompletionAdapter,\n ImagePreprocessPolicy,\n JsonParser,\n LocateAdapter,\n ModelAdapter,\n ModelAdapterDefinition,\n PlanningAdapter,\n ResolveImageDetail,\n ResponsesAdapter,\n} from './types';\n\nconst defaultImageDetail: ResolveImageDetail = ({ imageDetail }) =>\n imageDetail ?? 'high';\n\nfunction resolveJsonParser(\n jsonParser: ModelAdapterDefinition['jsonParser'],\n): JsonParser {\n if (!jsonParser || jsonParser === 'lenient-json') {\n return parseModelResponseJson;\n }\n\n if (typeof jsonParser === 'function') {\n return jsonParser;\n }\n\n throw new Error(`Unknown json parser preset: ${jsonParser}`);\n}\n\nfunction resolveImagePreprocess(\n imagePreprocess: ModelAdapterDefinition['imagePreprocess'],\n): ImagePreprocessPolicy {\n return {\n padBlockSize: imagePreprocess?.padBlockSize,\n };\n}\n\nexport class ResolvedModelAdapter implements ModelAdapter {\n readonly modelType: ModelAdapter['modelType'];\n readonly supportedTaskTypes: ModelAdapter['supportedTaskTypes'];\n readonly supportedProtocols: ModelAdapter['supportedProtocols'];\n readonly jsonParser: JsonParser;\n readonly chatCompletion: ChatCompletionAdapter;\n readonly resolveImageDetail: ResolveImageDetail;\n readonly responses: ResponsesAdapter;\n readonly buildCodexAppServerParams: BuildCodexAppServerParams;\n readonly imagePreprocess: ImagePreprocessPolicy;\n readonly insight: InsightAdapter;\n readonly planning: PlanningAdapter;\n readonly locate: LocateAdapter;\n\n constructor(config: ModelAdapterDefinition, modelFamily: string) {\n this.modelType = config.modelType ?? 'generative';\n this.supportedTaskTypes = config.supportedTaskTypes;\n this.supportedProtocols = config.supportedProtocols ?? ['openai-chat'];\n this.jsonParser = resolveJsonParser(config.jsonParser);\n this.chatCompletion = resolveChatCompletion(config.chatCompletion);\n this.resolveImageDetail = config.resolveImageDetail ?? defaultImageDetail;\n this.responses = resolveResponses(config.responses);\n this.buildCodexAppServerParams =\n config.buildCodexAppServerParams ?? buildDefaultCodexAppServerParams;\n this.imagePreprocess = resolveImagePreprocess(config.imagePreprocess);\n this.insight = resolveInsight(config.insight, {\n jsonParser: this.jsonParser,\n });\n const customPlanner =\n config.planning?.kind === 'custom' ? config.planning.planner : undefined;\n const resolvedCustomPlanner = customPlanner\n ? resolveCustomPlanningDefinition(customPlanner)\n : undefined;\n this.locate = resolveLocate(config.locate, resolvedCustomPlanner, {\n jsonParser: this.jsonParser,\n });\n this.planning = resolvePlanning(\n config.planning,\n resolvedCustomPlanner,\n { jsonParser: this.jsonParser },\n this.locate.kind === 'standard'\n ? this.locate.element.resultCodec\n : undefined,\n );\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","defaultImageDetail","imageDetail","resolveJsonParser","jsonParser","parseModelResponseJson","Error","resolveImagePreprocess","imagePreprocess","ResolvedModelAdapter","config","modelFamily","resolveChatCompletion","resolveResponses","buildDefaultCodexAppServerParams","resolveInsight","customPlanner","undefined","resolvedCustomPlanner","resolveCustomPlanningDefinition","resolveLocate","resolvePlanning"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;ACeA,MAAMI,qBAAyC,CAAC,EAAEC,WAAW,EAAE,GAC7DA,eAAe;AAEjB,SAASC,kBACPC,UAAgD;IAEhD,IAAI,CAACA,cAAcA,AAAe,mBAAfA,YACjB,OAAOC,wBAAAA,sBAAsBA;IAG/B,IAAI,AAAsB,cAAtB,OAAOD,YACT,OAAOA;IAGT,MAAM,IAAIE,MAAM,CAAC,4BAA4B,EAAEF,YAAY;AAC7D;AAEA,SAASG,uBACPC,eAA0D;IAE1D,OAAO;QACL,cAAcA,iBAAiB;IACjC;AACF;AAEO,MAAMC;IAcX,YAAYC,MAA8B,EAAEC,WAAmB,CAAE;QAbjE,uBAAS,aAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,cAAT;QACA,uBAAS,kBAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,aAAT;QACA,uBAAS,6BAAT;QACA,uBAAS,mBAAT;QACA,uBAAS,WAAT;QACA,uBAAS,YAAT;QACA,uBAAS,UAAT;QAGE,IAAI,CAAC,SAAS,GAAGD,OAAO,SAAS,IAAI;QACrC,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB;QACnD,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB,IAAI;YAAC;SAAc;QACtE,IAAI,CAAC,UAAU,GAAGP,kBAAkBO,OAAO,UAAU;QACrD,IAAI,CAAC,cAAc,GAAGE,AAAAA,IAAAA,4CAAAA,qBAAAA,AAAAA,EAAsBF,OAAO,cAAc;QACjE,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB,IAAIT;QACvD,IAAI,CAAC,SAAS,GAAGY,AAAAA,IAAAA,sCAAAA,gBAAAA,AAAAA,EAAiBH,OAAO,SAAS;QAClD,IAAI,CAAC,yBAAyB,GAC5BA,OAAO,yBAAyB,IAAII,6CAAAA,gCAAgCA;QACtE,IAAI,CAAC,eAAe,GAAGP,uBAAuBG,OAAO,eAAe;QACpE,IAAI,CAAC,OAAO,GAAGK,AAAAA,IAAAA,oCAAAA,cAAAA,AAAAA,EAAeL,OAAO,OAAO,EAAE;YAC5C,YAAY,IAAI,CAAC,UAAU;QAC7B;QACA,MAAMM,gBACJN,OAAO,QAAQ,EAAE,SAAS,WAAWA,OAAO,QAAQ,CAAC,OAAO,GAAGO;QACjE,MAAMC,wBAAwBF,gBAC1BG,AAAAA,IAAAA,qCAAAA,+BAAAA,AAAAA,EAAgCH,iBAChCC;QACJ,IAAI,CAAC,MAAM,GAAGG,AAAAA,IAAAA,mCAAAA,aAAAA,AAAAA,EAAcV,OAAO,MAAM,EAAEQ,uBAAuB;YAChE,YAAY,IAAI,CAAC,UAAU;QAC7B;QACA,IAAI,CAAC,QAAQ,GAAGG,AAAAA,IAAAA,qCAAAA,eAAAA,AAAAA,EACdX,OAAO,QAAQ,EACfQ,uBACA;YAAE,YAAY,IAAI,CAAC,UAAU;QAAC,GAC9B,AAAqB,eAArB,IAAI,CAAC,MAAM,CAAC,IAAI,GACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAC/BD;IAER;AACF"}
|
|
@@ -26,117 +26,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
27
|
jevAdapters: ()=>jevAdapters
|
|
28
28
|
});
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const index_js_namespaceObject = require("../../service-caller/index.js");
|
|
32
|
-
const system_one_js_namespaceObject = require("../../service-caller/system-one.js");
|
|
33
|
-
const multimodal_prompt_js_namespaceObject = require("../../shared/multimodal-prompt.js");
|
|
34
|
-
const external_image_js_namespaceObject = require("./image.js");
|
|
29
|
+
const external_boolean_js_namespaceObject = require("./boolean.js");
|
|
30
|
+
const external_locate_js_namespaceObject = require("./locate.js");
|
|
35
31
|
const external_planning_js_namespaceObject = require("./planning.js");
|
|
36
|
-
async function prepareReferences(prompt) {
|
|
37
|
-
const { referenceImages } = await (0, multimodal_prompt_js_namespaceObject.prepareUserPrompt)(prompt);
|
|
38
|
-
const prepared = await Promise.all(referenceImages.map(async (image, index)=>({
|
|
39
|
-
key: `reference_${index}`,
|
|
40
|
-
name: image.name,
|
|
41
|
-
image: await (0, external_image_js_namespaceObject.prepareJevImage)(image.url)
|
|
42
|
-
})));
|
|
43
|
-
return {
|
|
44
|
-
references: prepared.map(({ key, name })=>({
|
|
45
|
-
image: `\`${key}\``,
|
|
46
|
-
name
|
|
47
|
-
})),
|
|
48
|
-
images: Object.fromEntries(prepared.map(({ key, image })=>[
|
|
49
|
-
key,
|
|
50
|
-
image.imageBase64
|
|
51
|
-
]))
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
const locate = async ({ targetElementDescription, locateImage, options })=>{
|
|
55
|
-
const image = await (0, external_image_js_namespaceObject.prepareJevImage)(locateImage.imageBase64);
|
|
56
|
-
const references = await prepareReferences(targetElementDescription);
|
|
57
|
-
const target = (0, external_common_js_namespaceObject.userPromptToString)(targetElementDescription);
|
|
58
|
-
const response = await (0, index_js_namespaceObject.callAI)([], options.modelRuntime, {
|
|
59
|
-
abortSignal: options.abortSignal,
|
|
60
|
-
systemOneRequest: {
|
|
61
|
-
state: {
|
|
62
|
-
target,
|
|
63
|
-
references: references.references
|
|
64
|
-
},
|
|
65
|
-
images: {
|
|
66
|
-
screenshot: image.imageBase64,
|
|
67
|
-
...references.images
|
|
68
|
-
},
|
|
69
|
-
questions: {
|
|
70
|
-
present: {
|
|
71
|
-
type: 'noul',
|
|
72
|
-
instructions: 'Is the target described in `target` present in `screenshot`? Reference images, if any, describe the target; they are not the screenshot.'
|
|
73
|
-
},
|
|
74
|
-
target: {
|
|
75
|
-
type: 'box',
|
|
76
|
-
instructions: 'The single target described in `target`, in `screenshot`.'
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
const { answers } = system_one_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(response.content));
|
|
82
|
-
(0, utils_namespaceObject.assert)('noul' === answers.present.type && 'box' === answers.target.type, 'Invalid Jev locate answers');
|
|
83
|
-
return {
|
|
84
|
-
rawResponse: response.content,
|
|
85
|
-
usage: response.usage,
|
|
86
|
-
...answers.present.noul >= 0.5 ? {
|
|
87
|
-
locatedPixelResult: (0, external_image_js_namespaceObject.mapJevBox)(answers.target.box, image, locateImage)
|
|
88
|
-
} : {
|
|
89
|
-
errors: [
|
|
90
|
-
'The target is not present in the screenshot'
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
const adapter_boolean = async (options)=>{
|
|
96
|
-
const references = await prepareReferences({
|
|
97
|
-
prompt: '',
|
|
98
|
-
...options.multimodalPrompt
|
|
99
|
-
});
|
|
100
|
-
const frames = options.extractOption?.screenshotIncluded === false ? [] : options.context.screenshotSequence?.length ? options.context.screenshotSequence : [
|
|
101
|
-
options.context.screenshot
|
|
102
|
-
];
|
|
103
|
-
const screenshots = await Promise.all(frames.map((frame)=>(0, external_image_js_namespaceObject.prepareJevImage)(frame.base64)));
|
|
104
|
-
const result = await (0, index_js_namespaceObject.callAI)([], options.modelRuntime, {
|
|
105
|
-
abortSignal: options.abortSignal,
|
|
106
|
-
systemOneRequest: {
|
|
107
|
-
state: {
|
|
108
|
-
statement: options.dataQuery,
|
|
109
|
-
context: options.extractOption?.context,
|
|
110
|
-
pageDescription: options.pageDescription,
|
|
111
|
-
frames: screenshots.map((_, index)=>`\`frame_${index}\``),
|
|
112
|
-
references: references.references
|
|
113
|
-
},
|
|
114
|
-
images: {
|
|
115
|
-
...Object.fromEntries(screenshots.map((image, index)=>[
|
|
116
|
-
`frame_${index}`,
|
|
117
|
-
image.imageBase64
|
|
118
|
-
])),
|
|
119
|
-
...references.images
|
|
120
|
-
},
|
|
121
|
-
questions: {
|
|
122
|
-
result: {
|
|
123
|
-
type: 'noul',
|
|
124
|
-
instructions: "Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present."
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
const answer = system_one_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(result.content)).answers.result;
|
|
130
|
-
(0, utils_namespaceObject.assert)('noul' === answer.type, 'Invalid Jev boolean answer');
|
|
131
|
-
return {
|
|
132
|
-
value: answer.noul >= 0.5,
|
|
133
|
-
rawResponse: result.content,
|
|
134
|
-
usage: result.usage
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
32
|
const jevAdapters = {
|
|
138
33
|
jev: {
|
|
139
|
-
|
|
34
|
+
modelType: 'system-one',
|
|
35
|
+
supportedTaskTypes: [
|
|
140
36
|
'locate',
|
|
141
37
|
'boolean',
|
|
142
38
|
'planning'
|
|
@@ -144,10 +40,10 @@ const jevAdapters = {
|
|
|
144
40
|
supportedProtocols: [],
|
|
145
41
|
locate: {
|
|
146
42
|
kind: 'custom',
|
|
147
|
-
locateFn:
|
|
43
|
+
locateFn: external_locate_js_namespaceObject.jevLocate
|
|
148
44
|
},
|
|
149
45
|
insight: {
|
|
150
|
-
booleanFn:
|
|
46
|
+
booleanFn: external_boolean_js_namespaceObject.jevBoolean
|
|
151
47
|
},
|
|
152
48
|
planning: {
|
|
153
49
|
kind: 'custom',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-model/models/jev/adapter.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/adapter.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import
|
|
1
|
+
{"version":3,"file":"ai-model/models/jev/adapter.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/adapter.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { TModelFamily } from '@midscene/shared/env';\nimport type { ModelAdapterDefinition } from '../../model-adapter/types';\nimport { jevBoolean } from './boolean';\nimport { jevLocate } from './locate';\nimport { jevPlan } from './planning';\n\nexport const jevAdapters = {\n jev: {\n modelType: 'system-one',\n supportedTaskTypes: ['locate', 'boolean', 'planning'],\n supportedProtocols: [],\n locate: { kind: 'custom', locateFn: jevLocate },\n insight: { booleanFn: jevBoolean },\n planning: {\n kind: 'custom',\n planFn: jevPlan,\n cacheEnabled: false,\n supportsActionDeepLocate: false,\n defaultReplanningCycleLimit: 20,\n },\n },\n} satisfies Pick<Record<TModelFamily, ModelAdapterDefinition>, 'jev'>;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","jevAdapters","jevLocate","jevBoolean","jevPlan"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;ACAO,MAAMI,cAAc;IACzB,KAAK;QACH,WAAW;QACX,oBAAoB;YAAC;YAAU;YAAW;SAAW;QACrD,oBAAoB,EAAE;QACtB,QAAQ;YAAE,MAAM;YAAU,UAAUC,mCAAAA,SAASA;QAAC;QAC9C,SAAS;YAAE,WAAWC,oCAAAA,UAAUA;QAAC;QACjC,UAAU;YACR,MAAM;YACN,QAAQC,qCAAAA,OAAOA;YACf,cAAc;YACd,0BAA0B;YAC1B,6BAA6B;QAC/B;IACF;AACF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
jevBoolean: ()=>jevBoolean
|
|
28
|
+
});
|
|
29
|
+
const utils_namespaceObject = require("@midscene/shared/utils");
|
|
30
|
+
const index_js_namespaceObject = require("../../service-caller/index.js");
|
|
31
|
+
const schema_js_namespaceObject = require("../../service-caller/system-one/schema.js");
|
|
32
|
+
const external_image_js_namespaceObject = require("./image.js");
|
|
33
|
+
const jevBoolean = async (options)=>{
|
|
34
|
+
const references = await (0, external_image_js_namespaceObject.prepareReferences)({
|
|
35
|
+
prompt: '',
|
|
36
|
+
...options.multimodalPrompt
|
|
37
|
+
});
|
|
38
|
+
const frames = options.extractOption?.screenshotIncluded === false ? [] : options.context.screenshotSequence?.length ? options.context.screenshotSequence : [
|
|
39
|
+
options.context.screenshot
|
|
40
|
+
];
|
|
41
|
+
const screenshots = await Promise.all(frames.map((frame)=>(0, external_image_js_namespaceObject.prepareJevImage)(frame.base64)));
|
|
42
|
+
const result = await (0, index_js_namespaceObject.callSystemOneAI)({
|
|
43
|
+
state: {
|
|
44
|
+
statement: options.dataQuery,
|
|
45
|
+
context: options.extractOption?.context,
|
|
46
|
+
pageDescription: options.pageDescription,
|
|
47
|
+
frames: screenshots.map((_, index)=>`\`frame_${index}\``),
|
|
48
|
+
references: references.references
|
|
49
|
+
},
|
|
50
|
+
images: {
|
|
51
|
+
...Object.fromEntries(screenshots.map((image, index)=>[
|
|
52
|
+
`frame_${index}`,
|
|
53
|
+
image.imageBase64
|
|
54
|
+
])),
|
|
55
|
+
...references.images
|
|
56
|
+
},
|
|
57
|
+
questions: {
|
|
58
|
+
result: {
|
|
59
|
+
type: 'noul',
|
|
60
|
+
instructions: "Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present."
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}, options.modelRuntime, {
|
|
64
|
+
abortSignal: options.abortSignal
|
|
65
|
+
});
|
|
66
|
+
const answer = schema_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(result.content)).answers.result;
|
|
67
|
+
(0, utils_namespaceObject.assert)('noul' === answer.type, 'Invalid Jev boolean answer');
|
|
68
|
+
return {
|
|
69
|
+
value: answer.noul >= 0.5,
|
|
70
|
+
rawResponse: result.content,
|
|
71
|
+
usage: result.usage
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.jevBoolean = __webpack_exports__.jevBoolean;
|
|
75
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
76
|
+
"jevBoolean"
|
|
77
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
78
|
+
Object.defineProperty(exports, '__esModule', {
|
|
79
|
+
value: true
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=boolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-model/models/jev/boolean.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/boolean.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { assert } from '@midscene/shared/utils';\nimport { callSystemOneAI } from '../../service-caller';\nimport { systemOneResponseSchema } from '../../service-caller/system-one/schema';\nimport type { BooleanFn } from '../../workflows/insight/boolean';\nimport { prepareJevImage, prepareReferences } from './image';\n\nexport const jevBoolean: BooleanFn = async (options) => {\n const references = await prepareReferences({\n prompt: '',\n ...options.multimodalPrompt,\n });\n const frames =\n options.extractOption?.screenshotIncluded === false\n ? []\n : options.context.screenshotSequence?.length\n ? options.context.screenshotSequence\n : [options.context.screenshot];\n const screenshots = await Promise.all(\n frames.map((frame) => prepareJevImage(frame.base64)),\n );\n const result = await callSystemOneAI(\n {\n state: {\n statement: options.dataQuery,\n context: options.extractOption?.context,\n pageDescription: options.pageDescription,\n frames: screenshots.map((_, index) => `\\`frame_${index}\\``),\n references: references.references,\n },\n images: {\n ...Object.fromEntries(\n screenshots.map((image, index) => [\n `frame_${index}`,\n image.imageBase64,\n ]),\n ),\n ...references.images,\n },\n questions: {\n result: {\n type: 'noul',\n instructions:\n 'Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present.',\n },\n },\n },\n options.modelRuntime,\n { abortSignal: options.abortSignal },\n );\n const answer = systemOneResponseSchema.parse(JSON.parse(result.content))\n .answers.result;\n assert(answer.type === 'noul', 'Invalid Jev boolean answer');\n return {\n value: answer.noul >= 0.5,\n rawResponse: result.content,\n usage: result.usage,\n };\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","jevBoolean","options","references","prepareReferences","frames","screenshots","Promise","frame","prepareJevImage","result","callSystemOneAI","_","index","image","answer","systemOneResponseSchema","JSON","assert"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;ACAO,MAAMI,aAAwB,OAAOC;IAC1C,MAAMC,aAAa,MAAMC,AAAAA,IAAAA,kCAAAA,iBAAAA,AAAAA,EAAkB;QACzC,QAAQ;QACR,GAAGF,QAAQ,gBAAgB;IAC7B;IACA,MAAMG,SACJH,QAAQ,aAAa,EAAE,uBAAuB,QAC1C,EAAE,GACFA,QAAQ,OAAO,CAAC,kBAAkB,EAAE,SAClCA,QAAQ,OAAO,CAAC,kBAAkB,GAClC;QAACA,QAAQ,OAAO,CAAC,UAAU;KAAC;IACpC,MAAMI,cAAc,MAAMC,QAAQ,GAAG,CACnCF,OAAO,GAAG,CAAC,CAACG,QAAUC,AAAAA,IAAAA,kCAAAA,eAAAA,AAAAA,EAAgBD,MAAM,MAAM;IAEpD,MAAME,SAAS,MAAMC,AAAAA,IAAAA,yBAAAA,eAAAA,AAAAA,EACnB;QACE,OAAO;YACL,WAAWT,QAAQ,SAAS;YAC5B,SAASA,QAAQ,aAAa,EAAE;YAChC,iBAAiBA,QAAQ,eAAe;YACxC,QAAQI,YAAY,GAAG,CAAC,CAACM,GAAGC,QAAU,CAAC,QAAQ,EAAEA,MAAM,EAAE,CAAC;YAC1D,YAAYV,WAAW,UAAU;QACnC;QACA,QAAQ;YACN,GAAGN,OAAO,WAAW,CACnBS,YAAY,GAAG,CAAC,CAACQ,OAAOD,QAAU;oBAChC,CAAC,MAAM,EAAEA,OAAO;oBAChBC,MAAM,WAAW;iBAClB,EACF;YACD,GAAGX,WAAW,MAAM;QACtB;QACA,WAAW;YACT,QAAQ;gBACN,MAAM;gBACN,cACE;YACJ;QACF;IACF,GACAD,QAAQ,YAAY,EACpB;QAAE,aAAaA,QAAQ,WAAW;IAAC;IAErC,MAAMa,SAASC,0BAAAA,uBAAAA,CAAAA,KAA6B,CAACC,KAAK,KAAK,CAACP,OAAO,OAAO,GACnE,OAAO,CAAC,MAAM;IACjBQ,IAAAA,sBAAAA,MAAAA,AAAAA,EAAOH,AAAgB,WAAhBA,OAAO,IAAI,EAAa;IAC/B,OAAO;QACL,OAAOA,OAAO,IAAI,IAAI;QACtB,aAAaL,OAAO,OAAO;QAC3B,OAAOA,OAAO,KAAK;IACrB;AACF"}
|
|
@@ -24,59 +24,65 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
prepareReferences: ()=>prepareReferences,
|
|
27
28
|
mapJevBox: ()=>mapJevBox,
|
|
28
29
|
prepareJevImage: ()=>prepareJevImage
|
|
29
30
|
});
|
|
30
31
|
const external_node_buffer_namespaceObject = require("node:buffer");
|
|
31
32
|
const img_namespaceObject = require("@midscene/shared/img");
|
|
32
33
|
const utils_namespaceObject = require("@midscene/shared/utils");
|
|
34
|
+
const index_js_namespaceObject = require("../../shared/model-locate-result/index.js");
|
|
35
|
+
const multimodal_prompt_js_namespaceObject = require("../../shared/multimodal-prompt.js");
|
|
33
36
|
async function prepareJevImage(url) {
|
|
34
37
|
const base64 = await (0, img_namespaceObject.preProcessImageUrl)(url, true);
|
|
35
|
-
|
|
36
|
-
const scale = Math.min(1, 1568 / source.width, 1568 / source.height);
|
|
37
|
-
const contentSize = {
|
|
38
|
-
width: Math.max(1, Math.round(source.width * scale)),
|
|
39
|
-
height: Math.max(1, Math.round(source.height * scale))
|
|
40
|
-
};
|
|
41
|
-
const resized = await (0, img_namespaceObject.resizeBase64ImageToJpeg)(base64, {
|
|
42
|
-
targetSize: contentSize
|
|
43
|
-
});
|
|
44
|
-
const prepared = await (0, img_namespaceObject.padBase64ImageToMinimumSize)(resized, 280);
|
|
45
|
-
(0, utils_namespaceObject.assert)(external_node_buffer_namespaceObject.Buffer.from((0, img_namespaceObject.parseBase64)(prepared.imageBase64).body, 'base64').length <= 16777216, 'Jev image exceeds 16 MiB');
|
|
38
|
+
(0, utils_namespaceObject.assert)(external_node_buffer_namespaceObject.Buffer.from((0, img_namespaceObject.parseBase64)(base64).body, 'base64').length <= 16777216, 'Jev image exceeds 16 MiB');
|
|
46
39
|
return {
|
|
47
|
-
|
|
48
|
-
contentSize,
|
|
49
|
-
sourceSize: {
|
|
50
|
-
width: source.width,
|
|
51
|
-
height: source.height
|
|
52
|
-
}
|
|
40
|
+
imageBase64: base64
|
|
53
41
|
};
|
|
54
42
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
43
|
+
const jevBoxCodec = (0, index_js_namespaceObject.createLocateResultCodec)({
|
|
44
|
+
coordinates: {
|
|
45
|
+
shape: 'bbox',
|
|
46
|
+
normalizedBy: 1,
|
|
47
|
+
rounding: 'none',
|
|
48
|
+
boundsType: 'edges'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
function mapJevBox(box, targetSize) {
|
|
52
|
+
return jevBoxCodec.toPixelResult([
|
|
53
|
+
box.left,
|
|
54
|
+
box.top,
|
|
55
|
+
box.right,
|
|
56
|
+
box.bottom
|
|
57
|
+
], {
|
|
58
|
+
preparedSize: targetSize
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async function prepareReferences(prompt) {
|
|
62
|
+
const { referenceImages } = await (0, multimodal_prompt_js_namespaceObject.prepareUserPrompt)(prompt);
|
|
63
|
+
const prepared = await Promise.all(referenceImages.map(async (image, index)=>({
|
|
64
|
+
key: `reference_${index}`,
|
|
65
|
+
name: image.name,
|
|
66
|
+
image: await prepareJevImage(image.url)
|
|
67
|
+
})));
|
|
65
68
|
return {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
references: prepared.map(({ key, name })=>({
|
|
70
|
+
image: `\`${key}\``,
|
|
71
|
+
name
|
|
72
|
+
})),
|
|
73
|
+
images: Object.fromEntries(prepared.map(({ key, image })=>[
|
|
74
|
+
key,
|
|
75
|
+
image.imageBase64
|
|
76
|
+
]))
|
|
73
77
|
};
|
|
74
78
|
}
|
|
75
79
|
exports.mapJevBox = __webpack_exports__.mapJevBox;
|
|
76
80
|
exports.prepareJevImage = __webpack_exports__.prepareJevImage;
|
|
81
|
+
exports.prepareReferences = __webpack_exports__.prepareReferences;
|
|
77
82
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
78
83
|
"mapJevBox",
|
|
79
|
-
"prepareJevImage"
|
|
84
|
+
"prepareJevImage",
|
|
85
|
+
"prepareReferences"
|
|
80
86
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
81
87
|
Object.defineProperty(exports, '__esModule', {
|
|
82
88
|
value: true
|