@aiscene/core 9.0.6 → 9.0.8
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 +24 -11
- package/dist/es/agent/agent.mjs.map +1 -1
- package/dist/es/agent/cache-config.mjs +19 -0
- package/dist/es/agent/cache-config.mjs.map +1 -0
- package/dist/es/agent/file-chooser.mjs +82 -0
- package/dist/es/agent/file-chooser.mjs.map +1 -0
- package/dist/es/agent/insight.mjs +101 -0
- package/dist/es/agent/insight.mjs.map +1 -0
- package/dist/es/agent/metrics.mjs +81 -0
- package/dist/es/agent/metrics.mjs.map +1 -0
- package/dist/es/agent/progress/ai-act-progress.mjs +199 -0
- package/dist/es/agent/progress/ai-act-progress.mjs.map +1 -0
- package/dist/es/agent/progress/index.mjs +2 -0
- package/dist/es/agent/progress/progress-bus.mjs +52 -0
- package/dist/es/agent/progress/progress-bus.mjs.map +1 -0
- package/dist/es/agent/prompt-context.mjs +25 -0
- package/dist/es/agent/prompt-context.mjs.map +1 -0
- package/dist/es/agent/record-to-report.mjs +14 -0
- package/dist/es/agent/record-to-report.mjs.map +1 -0
- package/dist/es/agent/run-gherkin-scenario.mjs +114 -0
- package/dist/es/agent/run-gherkin-scenario.mjs.map +1 -0
- package/dist/es/agent/run-markdown.mjs +62 -0
- package/dist/es/agent/run-markdown.mjs.map +1 -0
- package/dist/es/agent/screenshot-preparation.mjs +37 -0
- package/dist/es/agent/screenshot-preparation.mjs.map +1 -0
- package/dist/es/agent/ui-observer.mjs +385 -0
- package/dist/es/agent/ui-observer.mjs.map +1 -0
- package/dist/es/agent/utils.mjs +42 -4
- package/dist/es/agent/utils.mjs.map +1 -1
- package/dist/es/ai-model/connectivity/fixture.mjs +8 -0
- package/dist/es/ai-model/connectivity/fixture.mjs.map +1 -0
- package/dist/es/ai-model/connectivity/index.mjs +2 -0
- package/dist/es/ai-model/connectivity/run-connectivity-test.mjs +160 -0
- package/dist/es/ai-model/connectivity/run-connectivity-test.mjs.map +1 -0
- package/dist/es/ai-model/conversation-history.mjs.map +1 -1
- package/dist/es/ai-model/index.mjs +2 -1
- package/dist/es/ai-model/inspect.mjs +1 -1
- package/dist/es/ai-model/inspect.mjs.map +1 -1
- package/dist/es/ai-model/model-adapter/chat-completion.mjs +69 -0
- package/dist/es/ai-model/model-adapter/chat-completion.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/custom-planning-action.mjs +6 -0
- package/dist/es/ai-model/model-adapter/custom-planning-action.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/custom-planning-types.mjs +0 -0
- package/dist/es/ai-model/model-adapter/default-insight-protocol.mjs +28 -0
- package/dist/es/ai-model/model-adapter/default-insight-protocol.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/default-locate-protocol.mjs +145 -0
- package/dist/es/ai-model/model-adapter/default-locate-protocol.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/default-planning-protocol.mjs +124 -0
- package/dist/es/ai-model/model-adapter/default-planning-protocol.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/image-preprocess.mjs +27 -0
- package/dist/es/ai-model/model-adapter/image-preprocess.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/index.mjs +2 -0
- package/dist/es/ai-model/model-adapter/insight-protocol.mjs +0 -0
- package/dist/es/ai-model/model-adapter/insight.mjs +13 -0
- package/dist/es/ai-model/model-adapter/insight.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/locate-protocol.mjs +0 -0
- package/dist/es/ai-model/model-adapter/locate.mjs +53 -0
- package/dist/es/ai-model/model-adapter/locate.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/planning-protocol.mjs +0 -0
- package/dist/es/ai-model/model-adapter/planning.mjs +49 -0
- package/dist/es/ai-model/model-adapter/planning.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/resolve.mjs +54 -0
- package/dist/es/ai-model/model-adapter/resolve.mjs.map +1 -0
- package/dist/es/ai-model/model-adapter/types.mjs +0 -0
- package/dist/es/ai-model/models/auto-glm/actions.mjs +205 -0
- package/dist/es/ai-model/models/auto-glm/actions.mjs.map +1 -0
- package/dist/es/ai-model/models/auto-glm/adapter.mjs +45 -0
- package/dist/es/ai-model/models/auto-glm/adapter.mjs.map +1 -0
- package/dist/es/ai-model/models/auto-glm/locate.mjs +11 -0
- package/dist/es/ai-model/models/auto-glm/locate.mjs.map +1 -0
- package/dist/es/ai-model/models/auto-glm/parser.mjs +217 -0
- package/dist/es/ai-model/models/auto-glm/parser.mjs.map +1 -0
- package/dist/es/ai-model/models/auto-glm/planning.mjs +33 -0
- package/dist/es/ai-model/models/auto-glm/planning.mjs.map +1 -0
- package/dist/es/ai-model/models/auto-glm/prompt.mjs +214 -0
- package/dist/es/ai-model/models/auto-glm/prompt.mjs.map +1 -0
- package/dist/es/ai-model/models/deepseek/adapter.mjs +79 -0
- package/dist/es/ai-model/models/deepseek/adapter.mjs.map +1 -0
- package/dist/es/ai-model/models/deepseek/locate-protocol.mjs +89 -0
- package/dist/es/ai-model/models/deepseek/locate-protocol.mjs.map +1 -0
- package/dist/es/ai-model/models/default.mjs +13 -0
- package/dist/es/ai-model/models/default.mjs.map +1 -0
- package/dist/es/ai-model/models/doubao.mjs +95 -0
- package/dist/es/ai-model/models/doubao.mjs.map +1 -0
- package/dist/es/ai-model/models/gemini.mjs +100 -0
- package/dist/es/ai-model/models/gemini.mjs.map +1 -0
- package/dist/es/ai-model/models/glm.mjs +46 -0
- package/dist/es/ai-model/models/glm.mjs.map +1 -0
- package/dist/es/ai-model/models/gpt.mjs +43 -0
- package/dist/es/ai-model/models/gpt.mjs.map +1 -0
- package/dist/es/ai-model/models/index.mjs +2 -0
- package/dist/es/ai-model/models/kimi.mjs +102 -0
- package/dist/es/ai-model/models/kimi.mjs.map +1 -0
- package/dist/es/ai-model/models/mimo.mjs +36 -0
- package/dist/es/ai-model/models/mimo.mjs.map +1 -0
- package/dist/es/ai-model/models/qwen.mjs +139 -0
- package/dist/es/ai-model/models/qwen.mjs.map +1 -0
- package/dist/es/ai-model/models/registry.mjs +51 -0
- package/dist/es/ai-model/models/registry.mjs.map +1 -0
- package/dist/es/ai-model/models/ui-tars/actions.mjs +147 -0
- package/dist/es/ai-model/models/ui-tars/actions.mjs.map +1 -0
- package/dist/es/ai-model/models/ui-tars/adapter.mjs +102 -0
- package/dist/es/ai-model/models/ui-tars/adapter.mjs.map +1 -0
- package/dist/es/ai-model/models/ui-tars/parser.mjs +40 -0
- package/dist/es/ai-model/models/ui-tars/parser.mjs.map +1 -0
- package/dist/es/ai-model/models/ui-tars/planning.mjs +25 -0
- package/dist/es/ai-model/models/ui-tars/planning.mjs.map +1 -0
- package/dist/es/ai-model/models/ui-tars/prompt.mjs +36 -0
- package/dist/es/ai-model/models/ui-tars/prompt.mjs.map +1 -0
- package/dist/es/ai-model/models/utils/intent.mjs +6 -0
- package/dist/es/ai-model/models/utils/intent.mjs.map +1 -0
- package/dist/es/ai-model/prompt/insight/index.mjs +3 -0
- package/dist/es/ai-model/prompt/insight/system-prompt.mjs +104 -0
- package/dist/es/ai-model/prompt/insight/system-prompt.mjs.map +1 -0
- package/dist/es/ai-model/prompt/insight/user-prompt.mjs +23 -0
- package/dist/es/ai-model/prompt/insight/user-prompt.mjs.map +1 -0
- package/dist/es/ai-model/prompt/locate/element-system-prompt.mjs +12 -0
- package/dist/es/ai-model/prompt/locate/element-system-prompt.mjs.map +1 -0
- package/dist/es/ai-model/prompt/locate/grounding-rules.mjs +13 -0
- package/dist/es/ai-model/prompt/locate/grounding-rules.mjs.map +1 -0
- package/dist/es/ai-model/prompt/locate/index.mjs +4 -0
- package/dist/es/ai-model/prompt/locate/search-area-system-prompt.mjs +9 -0
- package/dist/es/ai-model/prompt/locate/search-area-system-prompt.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/action-output-example.mjs +52 -0
- package/dist/es/ai-model/prompt/planning/action-output-example.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/action-space-description.mjs +28 -0
- package/dist/es/ai-model/prompt/planning/action-space-description.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/index.mjs +6 -0
- package/dist/es/ai-model/prompt/planning/multi-turn-example.mjs +221 -0
- package/dist/es/ai-model/prompt/planning/multi-turn-example.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/planning-response-example.mjs +25 -0
- package/dist/es/ai-model/prompt/planning/planning-response-example.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/sub-goals-text.mjs +17 -0
- package/dist/es/ai-model/prompt/planning/sub-goals-text.mjs.map +1 -0
- package/dist/es/ai-model/prompt/planning/system-prompt.mjs +293 -0
- package/dist/es/ai-model/prompt/planning/system-prompt.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/codex-app-server.mjs +1 -0
- package/dist/es/ai-model/service-caller/codex-app-server.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/index.mjs +35 -16
- package/dist/es/ai-model/service-caller/index.mjs.map +1 -1
- package/dist/es/ai-model/service-caller/model-call-recorder.mjs +74 -0
- package/dist/es/ai-model/service-caller/model-call-recorder.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/openai-error.mjs +147 -0
- package/dist/es/ai-model/service-caller/openai-error.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/proxy-deps.node.mjs +9 -0
- package/dist/es/ai-model/service-caller/proxy-deps.node.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/proxy-deps.stub.mjs +12 -0
- package/dist/es/ai-model/service-caller/proxy-deps.stub.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/semantic-retry.mjs +33 -0
- package/dist/es/ai-model/service-caller/semantic-retry.mjs.map +1 -0
- package/dist/es/ai-model/service-caller/types.mjs +0 -0
- package/dist/es/ai-model/shared/action-schema.mjs +15 -0
- package/dist/es/ai-model/shared/action-schema.mjs.map +1 -0
- package/dist/es/ai-model/shared/json.mjs +63 -0
- package/dist/es/ai-model/shared/json.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/bbox.mjs +60 -0
- package/dist/es/ai-model/shared/model-locate-result/bbox.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/coordinate-distance.mjs +10 -0
- package/dist/es/ai-model/shared/model-locate-result/coordinate-distance.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/errors.mjs +9 -0
- package/dist/es/ai-model/shared/model-locate-result/errors.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/factory.mjs +39 -0
- package/dist/es/ai-model/shared/model-locate-result/factory.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/index.mjs +6 -0
- package/dist/es/ai-model/shared/model-locate-result/parse.mjs +45 -0
- package/dist/es/ai-model/shared/model-locate-result/parse.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs +67 -0
- package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/prompt-spec.mjs +110 -0
- package/dist/es/ai-model/shared/model-locate-result/prompt-spec.mjs.map +1 -0
- package/dist/es/ai-model/shared/model-locate-result/types.mjs +9 -0
- package/dist/es/ai-model/shared/model-locate-result/types.mjs.map +1 -0
- package/dist/es/ai-model/shared/multimodal-prompt.mjs +55 -0
- package/dist/es/ai-model/shared/multimodal-prompt.mjs.map +1 -0
- package/dist/es/ai-model/shared/xml.mjs +42 -0
- package/dist/es/ai-model/shared/xml.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/index.mjs +4 -0
- package/dist/es/ai-model/workflows/grounding/locate-result-rect.mjs +23 -0
- package/dist/es/ai-model/workflows/grounding/locate-result-rect.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/locate.mjs +168 -0
- package/dist/es/ai-model/workflows/grounding/locate.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/planning-action-locate.mjs +97 -0
- package/dist/es/ai-model/workflows/grounding/planning-action-locate.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/search-area-mapping.mjs +18 -0
- package/dist/es/ai-model/workflows/grounding/search-area-mapping.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/search-area.mjs +55 -0
- package/dist/es/ai-model/workflows/grounding/search-area.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/section-locate.mjs +146 -0
- package/dist/es/ai-model/workflows/grounding/section-locate.mjs.map +1 -0
- package/dist/es/ai-model/workflows/grounding/types.mjs +0 -0
- package/dist/es/ai-model/workflows/grounding/utils.mjs +50 -0
- package/dist/es/ai-model/workflows/grounding/utils.mjs.map +1 -0
- package/dist/es/ai-model/workflows/insight/extraction.mjs +101 -0
- package/dist/es/ai-model/workflows/insight/extraction.mjs.map +1 -0
- package/dist/es/ai-model/workflows/insight/index.mjs +3 -0
- package/dist/es/ai-model/workflows/insight/insight-response-parser.mjs +26 -0
- package/dist/es/ai-model/workflows/insight/insight-response-parser.mjs.map +1 -0
- package/dist/es/ai-model/workflows/insight/order-sensitive.mjs +29 -0
- package/dist/es/ai-model/workflows/insight/order-sensitive.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/conversation-history.mjs +185 -0
- package/dist/es/ai-model/workflows/planning/conversation-history.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/custom-planning.mjs +129 -0
- package/dist/es/ai-model/workflows/planning/custom-planning.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/index.mjs +4 -0
- package/dist/es/ai-model/workflows/planning/locate-normalization.mjs +41 -0
- package/dist/es/ai-model/workflows/planning/locate-normalization.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/planning-action-log.mjs +22 -0
- package/dist/es/ai-model/workflows/planning/planning-action-log.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/standard-planning-parser.mjs +99 -0
- package/dist/es/ai-model/workflows/planning/standard-planning-parser.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/standard-planning.mjs +219 -0
- package/dist/es/ai-model/workflows/planning/standard-planning.mjs.map +1 -0
- package/dist/es/ai-model/workflows/planning/types.mjs +0 -0
- package/dist/es/ai-model/workflows/recorder-generation/common.mjs +171 -0
- package/dist/es/ai-model/workflows/recorder-generation/common.mjs.map +1 -0
- package/dist/es/ai-model/workflows/recorder-generation/index.mjs +5 -0
- package/dist/es/ai-model/workflows/recorder-generation/markdown.mjs +253 -0
- package/dist/es/ai-model/workflows/recorder-generation/markdown.mjs.map +1 -0
- package/dist/es/ai-model/workflows/recorder-generation/metadata.mjs +83 -0
- package/dist/es/ai-model/workflows/recorder-generation/metadata.mjs.map +1 -0
- package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs +123 -0
- package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs.map +1 -0
- package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs +162 -0
- package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs.map +1 -0
- package/dist/es/common.mjs +12 -1
- package/dist/es/common.mjs.map +1 -1
- package/dist/es/constants.mjs +4 -0
- package/dist/es/constants.mjs.map +1 -0
- package/dist/es/device/index.mjs.map +1 -1
- package/dist/es/device/input-strategy.mjs +34 -0
- package/dist/es/device/input-strategy.mjs.map +1 -0
- package/dist/es/dump/html-utils.mjs +16 -1
- package/dist/es/dump/html-utils.mjs.map +1 -1
- package/dist/es/dump/image-reference.mjs +63 -0
- package/dist/es/dump/image-reference.mjs.map +1 -0
- package/dist/es/dump/report-action-dump.mjs +244 -0
- package/dist/es/dump/report-action-dump.mjs.map +1 -0
- package/dist/es/dump/report-dump-compactor.mjs +200 -0
- package/dist/es/dump/report-dump-compactor.mjs.map +1 -0
- package/dist/es/dump/screenshot-store.mjs +124 -37
- package/dist/es/dump/screenshot-store.mjs.map +1 -1
- package/dist/es/dump/task-service-dump.mjs +17 -0
- package/dist/es/dump/task-service-dump.mjs.map +1 -0
- package/dist/es/dump/task-status.mjs +18 -0
- package/dist/es/dump/task-status.mjs.map +1 -0
- package/dist/es/element-describer.mjs +198 -0
- package/dist/es/element-describer.mjs.map +1 -0
- package/dist/es/errors.mjs +20 -0
- package/dist/es/errors.mjs.map +1 -0
- package/dist/es/report-html-template.mjs +4 -0
- package/dist/es/report-html-template.mjs.map +1 -0
- package/dist/es/report-stats.mjs +113 -0
- package/dist/es/report-stats.mjs.map +1 -0
- package/dist/es/screenshot-item.mjs +7 -2
- package/dist/es/screenshot-item.mjs.map +1 -1
- package/dist/es/service/index.mjs +10 -5
- package/dist/es/service/index.mjs.map +1 -1
- package/dist/es/task-runner.mjs.map +1 -1
- package/dist/es/types.mjs.map +1 -1
- package/dist/es/utils.mjs +1 -1
- package/dist/es/yaml/cleanup.mjs +13 -0
- package/dist/es/yaml/cleanup.mjs.map +1 -0
- package/dist/lib/agent/agent.js +24 -11
- package/dist/lib/agent/agent.js.map +1 -1
- package/dist/lib/agent/cache-config.js +53 -0
- package/dist/lib/agent/cache-config.js.map +1 -0
- package/dist/lib/agent/file-chooser.js +125 -0
- package/dist/lib/agent/file-chooser.js.map +1 -0
- package/dist/lib/agent/insight.js +135 -0
- package/dist/lib/agent/insight.js.map +1 -0
- package/dist/lib/agent/metrics.js +115 -0
- package/dist/lib/agent/metrics.js.map +1 -0
- package/dist/lib/agent/progress/ai-act-progress.js +239 -0
- package/dist/lib/agent/progress/ai-act-progress.js.map +1 -0
- package/dist/lib/agent/progress/index.js +67 -0
- package/dist/lib/agent/progress/index.js.map +1 -0
- package/dist/lib/agent/progress/progress-bus.js +86 -0
- package/dist/lib/agent/progress/progress-bus.js.map +1 -0
- package/dist/lib/agent/prompt-context.js +62 -0
- package/dist/lib/agent/prompt-context.js.map +1 -0
- package/dist/lib/agent/record-to-report.js +48 -0
- package/dist/lib/agent/record-to-report.js.map +1 -0
- package/dist/lib/agent/run-gherkin-scenario.js +151 -0
- package/dist/lib/agent/run-gherkin-scenario.js.map +1 -0
- package/dist/lib/agent/run-markdown.js +96 -0
- package/dist/lib/agent/run-markdown.js.map +1 -0
- package/dist/lib/agent/screenshot-preparation.js +74 -0
- package/dist/lib/agent/screenshot-preparation.js.map +1 -0
- package/dist/lib/agent/ui-observer.js +425 -0
- package/dist/lib/agent/ui-observer.js.map +1 -0
- package/dist/lib/agent/utils.js +46 -2
- package/dist/lib/agent/utils.js.map +1 -1
- package/dist/lib/ai-model/connectivity/fixture.js +45 -0
- package/dist/lib/ai-model/connectivity/fixture.js.map +1 -0
- package/dist/lib/ai-model/connectivity/index.js +38 -0
- package/dist/lib/ai-model/connectivity/index.js.map +1 -0
- package/dist/lib/ai-model/connectivity/run-connectivity-test.js +204 -0
- package/dist/lib/ai-model/connectivity/run-connectivity-test.js.map +1 -0
- package/dist/lib/ai-model/conversation-history.js.map +1 -1
- package/dist/lib/ai-model/index.js +15 -11
- package/dist/lib/ai-model/inspect.js +1 -1
- package/dist/lib/ai-model/inspect.js.map +1 -1
- package/dist/lib/ai-model/model-adapter/chat-completion.js +103 -0
- package/dist/lib/ai-model/model-adapter/chat-completion.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/custom-planning-action.js +40 -0
- package/dist/lib/ai-model/model-adapter/custom-planning-action.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/custom-planning-types.js +20 -0
- package/dist/lib/ai-model/model-adapter/custom-planning-types.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/default-insight-protocol.js +62 -0
- package/dist/lib/ai-model/model-adapter/default-insight-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/default-locate-protocol.js +182 -0
- package/dist/lib/ai-model/model-adapter/default-locate-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/default-planning-protocol.js +170 -0
- package/dist/lib/ai-model/model-adapter/default-planning-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/image-preprocess.js +61 -0
- package/dist/lib/ai-model/model-adapter/image-preprocess.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/index.js +38 -0
- package/dist/lib/ai-model/model-adapter/index.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/insight-protocol.js +20 -0
- package/dist/lib/ai-model/model-adapter/insight-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/insight.js +50 -0
- package/dist/lib/ai-model/model-adapter/insight.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/locate-protocol.js +20 -0
- package/dist/lib/ai-model/model-adapter/locate-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/locate.js +87 -0
- package/dist/lib/ai-model/model-adapter/locate.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/planning-protocol.js +20 -0
- package/dist/lib/ai-model/model-adapter/planning-protocol.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/planning.js +86 -0
- package/dist/lib/ai-model/model-adapter/planning.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/resolve.js +88 -0
- package/dist/lib/ai-model/model-adapter/resolve.js.map +1 -0
- package/dist/lib/ai-model/model-adapter/types.js +20 -0
- package/dist/lib/ai-model/model-adapter/types.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/actions.js +239 -0
- package/dist/lib/ai-model/models/auto-glm/actions.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/adapter.js +79 -0
- package/dist/lib/ai-model/models/auto-glm/adapter.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/locate.js +45 -0
- package/dist/lib/ai-model/models/auto-glm/locate.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/parser.js +260 -0
- package/dist/lib/ai-model/models/auto-glm/parser.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/planning.js +67 -0
- package/dist/lib/ai-model/models/auto-glm/planning.js.map +1 -0
- package/dist/lib/ai-model/models/auto-glm/prompt.js +257 -0
- package/dist/lib/ai-model/models/auto-glm/prompt.js.map +1 -0
- package/dist/lib/ai-model/models/deepseek/adapter.js +113 -0
- package/dist/lib/ai-model/models/deepseek/adapter.js.map +1 -0
- package/dist/lib/ai-model/models/deepseek/locate-protocol.js +132 -0
- package/dist/lib/ai-model/models/deepseek/locate-protocol.js.map +1 -0
- package/dist/lib/ai-model/models/default.js +47 -0
- package/dist/lib/ai-model/models/default.js.map +1 -0
- package/dist/lib/ai-model/models/doubao.js +132 -0
- package/dist/lib/ai-model/models/doubao.js.map +1 -0
- package/dist/lib/ai-model/models/gemini.js +137 -0
- package/dist/lib/ai-model/models/gemini.js.map +1 -0
- package/dist/lib/ai-model/models/glm.js +80 -0
- package/dist/lib/ai-model/models/glm.js.map +1 -0
- package/dist/lib/ai-model/models/gpt.js +77 -0
- package/dist/lib/ai-model/models/gpt.js.map +1 -0
- package/dist/lib/ai-model/models/index.js +41 -0
- package/dist/lib/ai-model/models/index.js.map +1 -0
- package/dist/lib/ai-model/models/kimi.js +136 -0
- package/dist/lib/ai-model/models/kimi.js.map +1 -0
- package/dist/lib/ai-model/models/mimo.js +70 -0
- package/dist/lib/ai-model/models/mimo.js.map +1 -0
- package/dist/lib/ai-model/models/qwen.js +173 -0
- package/dist/lib/ai-model/models/qwen.js.map +1 -0
- package/dist/lib/ai-model/models/registry.js +91 -0
- package/dist/lib/ai-model/models/registry.js.map +1 -0
- package/dist/lib/ai-model/models/ui-tars/actions.js +181 -0
- package/dist/lib/ai-model/models/ui-tars/actions.js.map +1 -0
- package/dist/lib/ai-model/models/ui-tars/adapter.js +136 -0
- package/dist/lib/ai-model/models/ui-tars/adapter.js.map +1 -0
- package/dist/lib/ai-model/models/ui-tars/parser.js +74 -0
- package/dist/lib/ai-model/models/ui-tars/parser.js.map +1 -0
- package/dist/lib/ai-model/models/ui-tars/planning.js +59 -0
- package/dist/lib/ai-model/models/ui-tars/planning.js.map +1 -0
- package/dist/lib/ai-model/models/ui-tars/prompt.js +73 -0
- package/dist/lib/ai-model/models/ui-tars/prompt.js.map +1 -0
- package/dist/lib/ai-model/models/utils/intent.js +40 -0
- package/dist/lib/ai-model/models/utils/intent.js.map +1 -0
- package/dist/lib/ai-model/prompt/insight/index.js +45 -0
- package/dist/lib/ai-model/prompt/insight/index.js.map +1 -0
- package/dist/lib/ai-model/prompt/insight/system-prompt.js +138 -0
- package/dist/lib/ai-model/prompt/insight/system-prompt.js.map +1 -0
- package/dist/lib/ai-model/prompt/insight/user-prompt.js +60 -0
- package/dist/lib/ai-model/prompt/insight/user-prompt.js.map +1 -0
- package/dist/lib/ai-model/prompt/locate/element-system-prompt.js +46 -0
- package/dist/lib/ai-model/prompt/locate/element-system-prompt.js.map +1 -0
- package/dist/lib/ai-model/prompt/locate/grounding-rules.js +47 -0
- package/dist/lib/ai-model/prompt/locate/grounding-rules.js.map +1 -0
- package/dist/lib/ai-model/prompt/locate/index.js +46 -0
- package/dist/lib/ai-model/prompt/locate/index.js.map +1 -0
- package/dist/lib/ai-model/prompt/locate/search-area-system-prompt.js +43 -0
- package/dist/lib/ai-model/prompt/locate/search-area-system-prompt.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/action-output-example.js +92 -0
- package/dist/lib/ai-model/prompt/planning/action-output-example.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/action-space-description.js +75 -0
- package/dist/lib/ai-model/prompt/planning/action-space-description.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/index.js +63 -0
- package/dist/lib/ai-model/prompt/planning/index.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/multi-turn-example.js +255 -0
- package/dist/lib/ai-model/prompt/planning/multi-turn-example.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/planning-response-example.js +59 -0
- package/dist/lib/ai-model/prompt/planning/planning-response-example.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/sub-goals-text.js +51 -0
- package/dist/lib/ai-model/prompt/planning/sub-goals-text.js.map +1 -0
- package/dist/lib/ai-model/prompt/planning/system-prompt.js +327 -0
- package/dist/lib/ai-model/prompt/planning/system-prompt.js.map +1 -0
- package/dist/lib/ai-model/service-caller/codex-app-server.js +1 -0
- package/dist/lib/ai-model/service-caller/codex-app-server.js.map +1 -1
- package/dist/lib/ai-model/service-caller/index.js +35 -16
- package/dist/lib/ai-model/service-caller/index.js.map +1 -1
- package/dist/lib/ai-model/service-caller/model-call-recorder.js +124 -0
- package/dist/lib/ai-model/service-caller/model-call-recorder.js.map +1 -0
- package/dist/lib/ai-model/service-caller/openai-error.js +184 -0
- package/dist/lib/ai-model/service-caller/openai-error.js.map +1 -0
- package/dist/lib/ai-model/service-caller/proxy-deps.node.js +46 -0
- package/dist/lib/ai-model/service-caller/proxy-deps.node.js.map +1 -0
- package/dist/lib/ai-model/service-caller/proxy-deps.stub.js +49 -0
- package/dist/lib/ai-model/service-caller/proxy-deps.stub.js.map +1 -0
- package/dist/lib/ai-model/service-caller/semantic-retry.js +70 -0
- package/dist/lib/ai-model/service-caller/semantic-retry.js.map +1 -0
- package/dist/lib/ai-model/service-caller/types.js +20 -0
- package/dist/lib/ai-model/service-caller/types.js.map +1 -0
- package/dist/lib/ai-model/shared/action-schema.js +49 -0
- package/dist/lib/ai-model/shared/action-schema.js.map +1 -0
- package/dist/lib/ai-model/shared/json.js +103 -0
- package/dist/lib/ai-model/shared/json.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/bbox.js +106 -0
- package/dist/lib/ai-model/shared/model-locate-result/bbox.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/coordinate-distance.js +44 -0
- package/dist/lib/ai-model/shared/model-locate-result/coordinate-distance.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/errors.js +46 -0
- package/dist/lib/ai-model/shared/model-locate-result/errors.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/factory.js +76 -0
- package/dist/lib/ai-model/shared/model-locate-result/factory.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/index.js +66 -0
- package/dist/lib/ai-model/shared/model-locate-result/index.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/parse.js +88 -0
- package/dist/lib/ai-model/shared/model-locate-result/parse.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js +101 -0
- package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/prompt-spec.js +156 -0
- package/dist/lib/ai-model/shared/model-locate-result/prompt-spec.js.map +1 -0
- package/dist/lib/ai-model/shared/model-locate-result/types.js +46 -0
- package/dist/lib/ai-model/shared/model-locate-result/types.js.map +1 -0
- package/dist/lib/ai-model/shared/multimodal-prompt.js +95 -0
- package/dist/lib/ai-model/shared/multimodal-prompt.js.map +1 -0
- package/dist/lib/ai-model/shared/xml.js +79 -0
- package/dist/lib/ai-model/shared/xml.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/index.js +46 -0
- package/dist/lib/ai-model/workflows/grounding/index.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/locate-result-rect.js +60 -0
- package/dist/lib/ai-model/workflows/grounding/locate-result-rect.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/locate.js +208 -0
- package/dist/lib/ai-model/workflows/grounding/locate.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/planning-action-locate.js +131 -0
- package/dist/lib/ai-model/workflows/grounding/planning-action-locate.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/search-area-mapping.js +52 -0
- package/dist/lib/ai-model/workflows/grounding/search-area-mapping.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/search-area.js +92 -0
- package/dist/lib/ai-model/workflows/grounding/search-area.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/section-locate.js +180 -0
- package/dist/lib/ai-model/workflows/grounding/section-locate.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/types.js +20 -0
- package/dist/lib/ai-model/workflows/grounding/types.js.map +1 -0
- package/dist/lib/ai-model/workflows/grounding/utils.js +87 -0
- package/dist/lib/ai-model/workflows/grounding/utils.js.map +1 -0
- package/dist/lib/ai-model/workflows/insight/extraction.js +135 -0
- package/dist/lib/ai-model/workflows/insight/extraction.js.map +1 -0
- package/dist/lib/ai-model/workflows/insight/index.js +42 -0
- package/dist/lib/ai-model/workflows/insight/index.js.map +1 -0
- package/dist/lib/ai-model/workflows/insight/insight-response-parser.js +60 -0
- package/dist/lib/ai-model/workflows/insight/insight-response-parser.js.map +1 -0
- package/dist/lib/ai-model/workflows/insight/order-sensitive.js +63 -0
- package/dist/lib/ai-model/workflows/insight/order-sensitive.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/conversation-history.js +219 -0
- package/dist/lib/ai-model/workflows/planning/conversation-history.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/custom-planning.js +166 -0
- package/dist/lib/ai-model/workflows/planning/custom-planning.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/index.js +49 -0
- package/dist/lib/ai-model/workflows/planning/index.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/locate-normalization.js +75 -0
- package/dist/lib/ai-model/workflows/planning/locate-normalization.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/planning-action-log.js +56 -0
- package/dist/lib/ai-model/workflows/planning/planning-action-log.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/standard-planning-parser.js +142 -0
- package/dist/lib/ai-model/workflows/planning/standard-planning-parser.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/standard-planning.js +253 -0
- package/dist/lib/ai-model/workflows/planning/standard-planning.js.map +1 -0
- package/dist/lib/ai-model/workflows/planning/types.js +20 -0
- package/dist/lib/ai-model/workflows/planning/types.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/common.js +232 -0
- package/dist/lib/ai-model/workflows/recorder-generation/common.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/index.js +68 -0
- package/dist/lib/ai-model/workflows/recorder-generation/index.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/markdown.js +293 -0
- package/dist/lib/ai-model/workflows/recorder-generation/markdown.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/metadata.js +117 -0
- package/dist/lib/ai-model/workflows/recorder-generation/metadata.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/playwright.js +184 -0
- package/dist/lib/ai-model/workflows/recorder-generation/playwright.js.map +1 -0
- package/dist/lib/ai-model/workflows/recorder-generation/yaml.js +232 -0
- package/dist/lib/ai-model/workflows/recorder-generation/yaml.js.map +1 -0
- package/dist/lib/common.js +18 -1
- package/dist/lib/common.js.map +1 -1
- package/dist/lib/constants.js +38 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/device/index.js.map +1 -1
- package/dist/lib/device/input-strategy.js +80 -0
- package/dist/lib/device/input-strategy.js.map +1 -0
- package/dist/lib/dump/html-utils.js +18 -0
- package/dist/lib/dump/html-utils.js.map +1 -1
- package/dist/lib/dump/image-reference.js +115 -0
- package/dist/lib/dump/image-reference.js.map +1 -0
- package/dist/lib/dump/report-action-dump.js +284 -0
- package/dist/lib/dump/report-action-dump.js.map +1 -0
- package/dist/lib/dump/report-dump-compactor.js +234 -0
- package/dist/lib/dump/report-dump-compactor.js.map +1 -0
- package/dist/lib/dump/screenshot-store.js +146 -38
- package/dist/lib/dump/screenshot-store.js.map +1 -1
- package/dist/lib/dump/task-service-dump.js +54 -0
- package/dist/lib/dump/task-service-dump.js.map +1 -0
- package/dist/lib/dump/task-status.js +55 -0
- package/dist/lib/dump/task-status.js.map +1 -0
- package/dist/lib/element-describer.js +238 -0
- package/dist/lib/element-describer.js.map +1 -0
- package/dist/lib/errors.js +54 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/report-html-template.js +38 -0
- package/dist/lib/report-html-template.js.map +1 -0
- package/dist/lib/report-stats.js +147 -0
- package/dist/lib/report-stats.js.map +1 -0
- package/dist/lib/screenshot-item.js +7 -2
- package/dist/lib/screenshot-item.js.map +1 -1
- package/dist/lib/service/index.js +10 -5
- package/dist/lib/service/index.js.map +1 -1
- package/dist/lib/task-runner.js.map +1 -1
- package/dist/lib/types.js +2 -2
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/yaml/cleanup.js +47 -0
- package/dist/lib/yaml/cleanup.js.map +1 -0
- package/dist/types/agent/agent.d.ts +5 -9
- package/dist/types/agent/cache-config.d.ts +2 -0
- package/dist/types/agent/file-chooser.d.ts +19 -0
- package/dist/types/agent/insight.d.ts +21 -0
- package/dist/types/agent/metrics.d.ts +48 -0
- package/dist/types/agent/progress/ai-act-progress.d.ts +21 -0
- package/dist/types/agent/progress/index.d.ts +2 -0
- package/dist/types/agent/progress/progress-bus.d.ts +33 -0
- package/dist/types/agent/prompt-context.d.ts +3 -0
- package/dist/types/agent/record-to-report.d.ts +2 -0
- package/dist/types/agent/run-gherkin-scenario.d.ts +26 -0
- package/dist/types/agent/run-markdown.d.ts +6 -0
- package/dist/types/agent/screenshot-preparation.d.ts +20 -0
- package/dist/types/agent/ui-observer.d.ts +103 -0
- package/dist/types/agent/utils.d.ts +12 -1
- package/dist/types/ai-model/connectivity/fixture.d.ts +5 -0
- package/dist/types/ai-model/connectivity/index.d.ts +1 -0
- package/dist/types/ai-model/connectivity/run-connectivity-test.d.ts +11 -0
- package/dist/types/ai-model/index.d.ts +2 -0
- package/dist/types/ai-model/model-adapter/chat-completion.d.ts +2 -0
- package/dist/types/ai-model/model-adapter/custom-planning-action.d.ts +25 -0
- package/dist/types/ai-model/model-adapter/custom-planning-types.d.ts +31 -0
- package/dist/types/ai-model/model-adapter/default-insight-protocol.d.ts +2 -0
- package/dist/types/ai-model/model-adapter/default-locate-protocol.d.ts +7 -0
- package/dist/types/ai-model/model-adapter/default-planning-protocol.d.ts +25 -0
- package/dist/types/ai-model/model-adapter/image-preprocess.d.ts +30 -0
- package/dist/types/ai-model/model-adapter/index.d.ts +2 -0
- package/dist/types/ai-model/model-adapter/insight-protocol.d.ts +24 -0
- package/dist/types/ai-model/model-adapter/insight.d.ts +3 -0
- package/dist/types/ai-model/model-adapter/locate-protocol.d.ts +23 -0
- package/dist/types/ai-model/model-adapter/locate.d.ts +4 -0
- package/dist/types/ai-model/model-adapter/planning-protocol.d.ts +53 -0
- package/dist/types/ai-model/model-adapter/planning.d.ts +6 -0
- package/dist/types/ai-model/model-adapter/resolve.d.ts +12 -0
- package/dist/types/ai-model/model-adapter/types.d.ts +218 -0
- package/dist/types/ai-model/models/auto-glm/actions.d.ts +81 -0
- package/dist/types/ai-model/models/auto-glm/adapter.d.ts +5 -0
- package/dist/types/ai-model/models/auto-glm/locate.d.ts +2 -0
- package/dist/types/ai-model/models/auto-glm/parser.d.ts +14 -0
- package/dist/types/ai-model/models/auto-glm/planning.d.ts +5 -0
- package/dist/types/ai-model/models/auto-glm/prompt.d.ts +4 -0
- package/dist/types/ai-model/models/deepseek/adapter.d.ts +39 -0
- package/dist/types/ai-model/models/deepseek/locate-protocol.d.ts +5 -0
- package/dist/types/ai-model/models/default.d.ts +2 -0
- package/dist/types/ai-model/models/doubao.d.ts +7 -0
- package/dist/types/ai-model/models/gemini.d.ts +37 -0
- package/dist/types/ai-model/models/glm.d.ts +21 -0
- package/dist/types/ai-model/models/gpt.d.ts +20 -0
- package/dist/types/ai-model/models/index.d.ts +2 -0
- package/dist/types/ai-model/models/kimi.d.ts +45 -0
- package/dist/types/ai-model/models/mimo.d.ts +10 -0
- package/dist/types/ai-model/models/qwen.d.ts +33 -0
- package/dist/types/ai-model/models/registry.d.ts +187 -0
- package/dist/types/ai-model/models/ui-tars/actions.d.ts +3 -0
- package/dist/types/ai-model/models/ui-tars/adapter.d.ts +6 -0
- package/dist/types/ai-model/models/ui-tars/parser.d.ts +72 -0
- package/dist/types/ai-model/models/ui-tars/planning.d.ts +4 -0
- package/dist/types/ai-model/models/ui-tars/prompt.d.ts +2 -0
- package/dist/types/ai-model/models/utils/intent.d.ts +2 -0
- package/dist/types/ai-model/prompt/insight/index.d.ts +2 -0
- package/dist/types/ai-model/prompt/insight/system-prompt.d.ts +6 -0
- package/dist/types/ai-model/prompt/insight/user-prompt.d.ts +3 -0
- package/dist/types/ai-model/prompt/locate/element-system-prompt.d.ts +4 -0
- package/dist/types/ai-model/prompt/locate/grounding-rules.d.ts +1 -0
- package/dist/types/ai-model/prompt/locate/index.d.ts +3 -0
- package/dist/types/ai-model/prompt/locate/search-area-system-prompt.d.ts +4 -0
- package/dist/types/ai-model/prompt/planning/action-output-example.d.ts +17 -0
- package/dist/types/ai-model/prompt/planning/action-space-description.d.ts +11 -0
- package/dist/types/ai-model/prompt/planning/index.d.ts +6 -0
- package/dist/types/ai-model/prompt/planning/multi-turn-example.d.ts +10 -0
- package/dist/types/ai-model/prompt/planning/planning-response-example.d.ts +28 -0
- package/dist/types/ai-model/prompt/planning/sub-goals-text.d.ts +2 -0
- package/dist/types/ai-model/prompt/planning/system-prompt.d.ts +18 -0
- package/dist/types/ai-model/service-caller/index.d.ts +21 -6
- package/dist/types/ai-model/service-caller/model-call-recorder.d.ts +12 -0
- package/dist/types/ai-model/service-caller/openai-error.d.ts +26 -0
- package/dist/types/ai-model/service-caller/proxy-deps.node.d.ts +2 -0
- package/dist/types/ai-model/service-caller/proxy-deps.stub.d.ts +2 -0
- package/dist/types/ai-model/service-caller/semantic-retry.d.ts +30 -0
- package/dist/types/ai-model/service-caller/types.d.ts +2 -0
- package/dist/types/ai-model/shared/action-schema.d.ts +4 -0
- package/dist/types/ai-model/shared/json.d.ts +26 -0
- package/dist/types/ai-model/shared/model-locate-result/bbox.d.ts +6 -0
- package/dist/types/ai-model/shared/model-locate-result/coordinate-distance.d.ts +4 -0
- package/dist/types/ai-model/shared/model-locate-result/errors.d.ts +2 -0
- package/dist/types/ai-model/shared/model-locate-result/factory.d.ts +3 -0
- package/dist/types/ai-model/shared/model-locate-result/index.d.ts +7 -0
- package/dist/types/ai-model/shared/model-locate-result/parse.d.ts +8 -0
- package/dist/types/ai-model/shared/model-locate-result/pixel-bbox-mapper.d.ts +7 -0
- package/dist/types/ai-model/shared/model-locate-result/prompt-spec.d.ts +6 -0
- package/dist/types/ai-model/shared/model-locate-result/types.d.ts +150 -0
- package/dist/types/ai-model/shared/multimodal-prompt.d.ts +13 -0
- package/dist/types/ai-model/shared/xml.d.ts +15 -0
- package/dist/types/ai-model/workflows/grounding/index.d.ts +3 -0
- package/dist/types/ai-model/workflows/grounding/locate-result-rect.d.ts +5 -0
- package/dist/types/ai-model/workflows/grounding/locate.d.ts +7 -0
- package/dist/types/ai-model/workflows/grounding/planning-action-locate.d.ts +4 -0
- package/dist/types/ai-model/workflows/grounding/search-area-mapping.d.ts +4 -0
- package/dist/types/ai-model/workflows/grounding/search-area.d.ts +18 -0
- package/dist/types/ai-model/workflows/grounding/section-locate.d.ts +16 -0
- package/dist/types/ai-model/workflows/grounding/types.d.ts +56 -0
- package/dist/types/ai-model/workflows/grounding/utils.d.ts +25 -0
- package/dist/types/ai-model/workflows/insight/extraction.d.ts +18 -0
- package/dist/types/ai-model/workflows/insight/index.d.ts +2 -0
- package/dist/types/ai-model/workflows/insight/insight-response-parser.d.ts +4 -0
- package/dist/types/ai-model/workflows/insight/order-sensitive.d.ts +6 -0
- package/dist/types/ai-model/workflows/planning/conversation-history.d.ts +105 -0
- package/dist/types/ai-model/workflows/planning/custom-planning.d.ts +7 -0
- package/dist/types/ai-model/workflows/planning/index.d.ts +3 -0
- package/dist/types/ai-model/workflows/planning/locate-normalization.d.ts +12 -0
- package/dist/types/ai-model/workflows/planning/planning-action-log.d.ts +2 -0
- package/dist/types/ai-model/workflows/planning/standard-planning-parser.d.ts +31 -0
- package/dist/types/ai-model/workflows/planning/standard-planning.d.ts +4 -0
- package/dist/types/ai-model/workflows/planning/types.d.ts +16 -0
- package/dist/types/ai-model/workflows/recorder-generation/common.d.ts +89 -0
- package/dist/types/ai-model/workflows/recorder-generation/index.d.ts +7 -0
- package/dist/types/ai-model/workflows/recorder-generation/markdown.d.ts +7 -0
- package/dist/types/ai-model/workflows/recorder-generation/metadata.d.ts +13 -0
- package/dist/types/ai-model/workflows/recorder-generation/playwright.d.ts +26 -0
- package/dist/types/ai-model/workflows/recorder-generation/yaml.d.ts +17 -0
- package/dist/types/common.d.ts +2 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/device/index.d.ts +15 -4
- package/dist/types/device/input-strategy.d.ts +44 -0
- package/dist/types/dump/html-utils.d.ts +1 -0
- package/dist/types/dump/image-reference.d.ts +36 -0
- package/dist/types/dump/report-action-dump.d.ts +127 -0
- package/dist/types/dump/report-dump-compactor.d.ts +7 -0
- package/dist/types/dump/screenshot-store.d.ts +32 -15
- package/dist/types/dump/task-service-dump.d.ts +3 -0
- package/dist/types/dump/task-status.d.ts +41 -0
- package/dist/types/element-describer.d.ts +43 -0
- package/dist/types/errors.d.ts +5 -0
- package/dist/types/report-html-template.d.ts +1 -0
- package/dist/types/report-stats.d.ts +39 -0
- package/dist/types/screenshot-item.d.ts +1 -0
- package/dist/types/service/index.d.ts +6 -2
- package/dist/types/task-runner.d.ts +6 -0
- package/dist/types/types.d.ts +98 -5
- package/dist/types/yaml/cleanup.d.ts +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { UIObservationRecordWriter } from '@aiscene/shared/agent-tools/observation-record';
|
|
2
|
+
import type { BaseUIObserverOptions, UIObservationRecord } from '@aiscene/shared/agent-tools/types';
|
|
3
|
+
import type { TUserPrompt } from '../common';
|
|
4
|
+
import type { DeviceFrameSource } from '../device';
|
|
5
|
+
import type { AgentAssertResult, InsightAPI, ObservationAssertOptions, ObservationQueryOptions, ServiceExtractParam, UIContext } from '../types';
|
|
6
|
+
/** Options for a UI observation window. */
|
|
7
|
+
export type UIObserverOption = BaseUIObserverOptions;
|
|
8
|
+
interface UIObserverDeps {
|
|
9
|
+
openFrameSource: () => Promise<DeviceFrameSource | undefined>;
|
|
10
|
+
captureRawScreenshot: () => Promise<string>;
|
|
11
|
+
capturePreparedRepresentative: () => Promise<UIContext>;
|
|
12
|
+
createInsight: (record: UIObservationRecord) => InsightAPI;
|
|
13
|
+
onStopped?: () => void;
|
|
14
|
+
onDisposed?: () => void;
|
|
15
|
+
screenshotShrinkFactor?: number;
|
|
16
|
+
/** Test/internal persistence override; not part of the Agent SDK options. */
|
|
17
|
+
observationRecordWriter?: UIObservationRecordWriter;
|
|
18
|
+
}
|
|
19
|
+
/** A fixed screen-recording window that supports read-only AI insights. */
|
|
20
|
+
export interface UIObservation extends InsightAPI<ObservationQueryOptions, ObservationAssertOptions> {
|
|
21
|
+
/** Number of captured frames in the fixed observation window. */
|
|
22
|
+
readonly frameCount: number;
|
|
23
|
+
/** Timestamp when screen sampling started. */
|
|
24
|
+
readonly startedAt: number;
|
|
25
|
+
/** Timestamp when screen sampling ended. */
|
|
26
|
+
readonly endedAt: number;
|
|
27
|
+
/** Release image files owned by this observation. Failed cleanup is retryable. */
|
|
28
|
+
dispose(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/** Recording lifecycle returned by {@link Agent.startObserving}. */
|
|
31
|
+
export interface UIObserver {
|
|
32
|
+
/** Number of frames currently buffered while recording. */
|
|
33
|
+
readonly bufferedFrameCount: number;
|
|
34
|
+
/** Stop recording and return its fixed observation window. */
|
|
35
|
+
stop(): Promise<UIObservation>;
|
|
36
|
+
/** Stop recording if needed and release its image files. */
|
|
37
|
+
dispose(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/** @internal Concrete fixed-window implementation. */
|
|
40
|
+
export declare class UIObservationImpl implements UIObservation {
|
|
41
|
+
private readonly insight;
|
|
42
|
+
private readonly disposeRecord?;
|
|
43
|
+
private readonly onDisposed?;
|
|
44
|
+
private disposed;
|
|
45
|
+
private readonly record;
|
|
46
|
+
constructor(record: UIObservationRecord, insight: InsightAPI, disposeRecord?: (() => void) | undefined, onDisposed?: (() => void) | undefined);
|
|
47
|
+
get frameCount(): number;
|
|
48
|
+
get startedAt(): number;
|
|
49
|
+
get endedAt(): number;
|
|
50
|
+
private ensureUsable;
|
|
51
|
+
private ensureFixedWindowOptions;
|
|
52
|
+
aiQuery<ReturnType = any>(demand: ServiceExtractParam, options?: ObservationQueryOptions): Promise<ReturnType>;
|
|
53
|
+
aiBoolean(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<boolean>;
|
|
54
|
+
aiNumber(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<number>;
|
|
55
|
+
aiString(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<string>;
|
|
56
|
+
aiAsk(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<string>;
|
|
57
|
+
aiAssert(assertion: TUserPrompt, message?: string, options?: ObservationAssertOptions): Promise<AgentAssertResult | undefined>;
|
|
58
|
+
/** @internal Used only by the CLI observation artifact adapter. */
|
|
59
|
+
exportRecord(): Promise<UIObservationRecord>;
|
|
60
|
+
dispose(): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Observe an explicit screen window and produce a fixed UIObservation.
|
|
64
|
+
*/
|
|
65
|
+
export declare class UIObserverImpl implements UIObserver {
|
|
66
|
+
private readonly deps;
|
|
67
|
+
private frames;
|
|
68
|
+
private source;
|
|
69
|
+
private usingFallback;
|
|
70
|
+
private stopped;
|
|
71
|
+
private disposed;
|
|
72
|
+
private loopPromise;
|
|
73
|
+
private stopPromise;
|
|
74
|
+
private representative;
|
|
75
|
+
private representativeFrame;
|
|
76
|
+
private watchdogTimer;
|
|
77
|
+
private persistPromise;
|
|
78
|
+
private persistedByRef;
|
|
79
|
+
private observation;
|
|
80
|
+
private startedAt;
|
|
81
|
+
private readonly intervalMs;
|
|
82
|
+
private readonly maxFrames;
|
|
83
|
+
private readonly watchdogMs;
|
|
84
|
+
private readonly screenshotShrinkFactor;
|
|
85
|
+
private readonly writer;
|
|
86
|
+
constructor(deps: UIObserverDeps, opt?: UIObserverOption);
|
|
87
|
+
get bufferedFrameCount(): number;
|
|
88
|
+
start(): Promise<void>;
|
|
89
|
+
stop(): Promise<UIObservationImpl>;
|
|
90
|
+
private finalizeStop;
|
|
91
|
+
private finalizeRecord;
|
|
92
|
+
/** Release writer-owned image files after the observation is no longer needed. */
|
|
93
|
+
dispose(): Promise<void>;
|
|
94
|
+
private persistUnstoredFrames;
|
|
95
|
+
private captureOnce;
|
|
96
|
+
private runLoop;
|
|
97
|
+
private pushFrame;
|
|
98
|
+
private thinBuffer;
|
|
99
|
+
private dedupeRefs;
|
|
100
|
+
}
|
|
101
|
+
/** Rebuild model-facing temporal context from resolved image file paths. */
|
|
102
|
+
export declare function uiContextFromObservationRecord(record: UIObservationRecord): UIContext;
|
|
103
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TMultimodalPrompt, TUserPrompt } from '../common';
|
|
2
2
|
import type { AbstractInterface } from '../device';
|
|
3
|
-
import type { ElementCacheFeature, LocateResultElement, PlanningLocateParam, Rect, UIContext } from '../types';
|
|
3
|
+
import type { ElementCacheFeature, LocateResultElement, PlanningLocateParam, Rect, Size, UIContext } from '../types';
|
|
4
4
|
import type { TModelFamily } from '@aiscene/shared/env';
|
|
5
5
|
import type { TaskCache } from './task-cache';
|
|
6
6
|
export declare function commonContextParser(interfaceInstance: AbstractInterface, _opt: {
|
|
@@ -8,6 +8,9 @@ export declare function commonContextParser(interfaceInstance: AbstractInterface
|
|
|
8
8
|
screenshotShrinkFactor?: number;
|
|
9
9
|
modelFamily?: TModelFamily;
|
|
10
10
|
}): Promise<UIContext>;
|
|
11
|
+
export declare function createScreenshotBoundUIContext(screenshotBase64: string, opt: {
|
|
12
|
+
screenshotSize?: Size;
|
|
13
|
+
}): Promise<UIContext>;
|
|
11
14
|
export declare function getReportFileName(tag?: string): string;
|
|
12
15
|
export declare function printReportMsg(filepath: string): void;
|
|
13
16
|
export declare function ifPlanLocateParamIsBbox(planLocateParam: PlanningLocateParam): boolean;
|
|
@@ -21,5 +24,13 @@ export declare const parsePrompt: (prompt: TUserPrompt) => {
|
|
|
21
24
|
textPrompt: string;
|
|
22
25
|
multimodalPrompt?: TMultimodalPrompt;
|
|
23
26
|
};
|
|
27
|
+
type NormalizeFilePathsOptions = {
|
|
28
|
+
fileExists?: (path: string) => boolean;
|
|
29
|
+
isInBrowser?: boolean;
|
|
30
|
+
resolvePath?: (path: string) => string;
|
|
31
|
+
cwd?: string;
|
|
32
|
+
};
|
|
33
|
+
export declare function normalizeFilePaths(files: string[], options?: NormalizeFilePathsOptions): string[];
|
|
24
34
|
export declare const transformLogicalElementToScreenshot: (element: LocateResultElement, shrunkShotToLogicalRatio: number) => LocateResultElement;
|
|
25
35
|
export declare const transformLogicalRectToScreenshotRect: (rect: Rect, shrunkShotToLogicalRatio: number) => Rect;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const CONNECTIVITY_FIXTURE_IMAGE = "data:image/png;base64,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";
|
|
2
|
+
export declare const CONNECTIVITY_FIXTURE_SHOT_SIZE: {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { runConnectivityTest, type ConnectivityTestConfig, type ConnectivityTestResult, } from './run-connectivity-test';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IModelConfig } from '@aiscene/shared/env';
|
|
2
|
+
export interface ConnectivityTestResult {
|
|
3
|
+
passed: boolean;
|
|
4
|
+
message?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ConnectivityTestConfig {
|
|
7
|
+
defaultModelConfig: IModelConfig;
|
|
8
|
+
planningModelConfig: IModelConfig;
|
|
9
|
+
insightModelConfig: IModelConfig;
|
|
10
|
+
}
|
|
11
|
+
export declare function runConnectivityTest(config: ConnectivityTestConfig): Promise<ConnectivityTestResult>;
|
|
@@ -6,6 +6,8 @@ export { generateYamlTest, generateYamlTestStream, } from './prompt/yaml-generat
|
|
|
6
6
|
export type { YamlGenerationOptions } from './prompt/yaml-generator';
|
|
7
7
|
export type { ChatCompletionMessageParam } from 'openai/resources/index';
|
|
8
8
|
export { AiLocateElement, AiExtractElementInfo, AiLocateSection, AiJudgeOrderSensitive, } from './inspect';
|
|
9
|
+
export { getModelRuntime } from './models';
|
|
10
|
+
export type { ModelRuntime } from './models';
|
|
9
11
|
export { plan } from './llm-planning';
|
|
10
12
|
export { autoGLMPlanning } from './auto-glm/planning';
|
|
11
13
|
export { adaptBboxToRect } from '../common';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LocateResultPoint, PixelBbox, PlanningAction } from '../../types';
|
|
2
|
+
type PreNormalizedPlanningLocateParam = {
|
|
3
|
+
prompt: string;
|
|
4
|
+
point: LocateResultPoint;
|
|
5
|
+
};
|
|
6
|
+
export type LocateActionParam = {
|
|
7
|
+
locate: PreNormalizedPlanningLocateParam;
|
|
8
|
+
};
|
|
9
|
+
export type LocatePlanningAction<TType extends string> = PlanningAction<LocateActionParam> & {
|
|
10
|
+
type: TType;
|
|
11
|
+
};
|
|
12
|
+
export type ScrollPlanningAction = PlanningAction<LocateActionParam & {
|
|
13
|
+
distance: number;
|
|
14
|
+
direction: 'up' | 'down' | 'left' | 'right';
|
|
15
|
+
}> & {
|
|
16
|
+
type: 'Scroll';
|
|
17
|
+
};
|
|
18
|
+
export type DragAndDropPlanningAction = PlanningAction<{
|
|
19
|
+
from: PreNormalizedPlanningLocateParam;
|
|
20
|
+
to: PreNormalizedPlanningLocateParam;
|
|
21
|
+
}> & {
|
|
22
|
+
type: 'DragAndDrop';
|
|
23
|
+
};
|
|
24
|
+
export declare function getTapLocatedPixelBbox(actions: PlanningAction[]): PixelBbox | undefined;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PlanningAction } from '../../types';
|
|
2
|
+
import type { LocateResultCodec, LocateResultCoordinates, ResolvedLocateResultCoordinates } from '../shared/model-locate-result/types';
|
|
3
|
+
import type { PreparedUserPrompt } from '../shared/multimodal-prompt';
|
|
4
|
+
import type { PlanOptions } from '../workflows/planning/types';
|
|
5
|
+
export interface CustomPlanningInput {
|
|
6
|
+
userInstruction: PreparedUserPrompt;
|
|
7
|
+
options: PlanOptions;
|
|
8
|
+
coordinateSystem?: ResolvedLocateResultCoordinates;
|
|
9
|
+
}
|
|
10
|
+
interface CustomPlanningLifecycle<TParsed = unknown> {
|
|
11
|
+
messages: CustomPlanningMessageConfig<TParsed>;
|
|
12
|
+
parseResponse(rawResponse: string, input: CustomPlanningInput): TParsed;
|
|
13
|
+
transformActions(parsed: TParsed, input: CustomPlanningInput): PlanningAction[];
|
|
14
|
+
shouldContinuePlanning(parsed: TParsed, actions: PlanningAction[]): boolean;
|
|
15
|
+
buildResponseLog(parsed: TParsed, rawResponse: string): string;
|
|
16
|
+
}
|
|
17
|
+
export interface CustomPlanningDefinition<TParsed = unknown> extends CustomPlanningLifecycle<TParsed> {
|
|
18
|
+
coordinates: LocateResultCoordinates;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedCustomPlanningDefinition<TParsed = unknown> extends CustomPlanningLifecycle<TParsed> {
|
|
21
|
+
coordinateSystem: ResolvedLocateResultCoordinates;
|
|
22
|
+
coordinateNormalizer: LocateResultCodec;
|
|
23
|
+
}
|
|
24
|
+
export interface CustomPlanningMessageConfig<TParsed = unknown> {
|
|
25
|
+
systemPromptPlacement: 'system-message' | 'user-message';
|
|
26
|
+
buildSystemPrompt(): string;
|
|
27
|
+
historyImageLimit?: number;
|
|
28
|
+
buildUserInstruction?: (userInstruction: string) => string;
|
|
29
|
+
buildAssistantContent?: (parsed: TParsed, rawResponse: string, input: CustomPlanningInput) => string | undefined;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StandardLocateProtocol, StandardLocateProtocolContext } from './locate-protocol';
|
|
2
|
+
type DefaultLocateProtocolOptions = {
|
|
3
|
+
acceptBbox2dAlias?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const createDefaultElementProtocol: ({ jsonParser }: StandardLocateProtocolContext, options?: DefaultLocateProtocolOptions) => StandardLocateProtocol;
|
|
6
|
+
export declare const createDefaultSearchAreaProtocol: ({ jsonParser }: StandardLocateProtocolContext, options?: DefaultLocateProtocolOptions) => StandardLocateProtocol;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type JsonParser } from '../shared/json';
|
|
2
|
+
import { type LocateResultPromptSpec } from '../shared/model-locate-result';
|
|
3
|
+
import type { PlanningActionDescriptionBuildInput, PlanningActionOutputBuildInput, StandardPlanningProtocolFactory } from './planning-protocol';
|
|
4
|
+
type ActionParamDescription = {
|
|
5
|
+
type: string;
|
|
6
|
+
optional?: true;
|
|
7
|
+
description?: string;
|
|
8
|
+
default?: unknown;
|
|
9
|
+
instruction?: string;
|
|
10
|
+
};
|
|
11
|
+
type ActionDescription = {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
param?: Record<string, ActionParamDescription> | ActionParamDescription;
|
|
15
|
+
sample?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const buildActionDescription: ({ action, locateFieldDescription, actionOutputExample, }: PlanningActionDescriptionBuildInput) => ActionDescription;
|
|
18
|
+
export declare const buildLocateFieldDescription: (promptSpec?: LocateResultPromptSpec) => string;
|
|
19
|
+
export declare const buildPlanningActionOutput: ({ actionName, param, locateFields, locateResultKey, }: PlanningActionOutputBuildInput) => string;
|
|
20
|
+
export declare const createMidscenePlanningActionOutputParser: (jsonParser: JsonParser) => (content: string) => {
|
|
21
|
+
param?: any;
|
|
22
|
+
type: string;
|
|
23
|
+
} | null;
|
|
24
|
+
export declare const createDefaultMidscenePlanningProtocol: StandardPlanningProtocolFactory;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface ImagePreprocessPolicy {
|
|
2
|
+
padBlockSize?: number;
|
|
3
|
+
}
|
|
4
|
+
export interface PreparedModelImage {
|
|
5
|
+
imageBase64: string;
|
|
6
|
+
/**
|
|
7
|
+
* Size of the image sent to the model after preprocessing. This can be larger
|
|
8
|
+
* than the original screenshot when padding is applied to satisfy model block
|
|
9
|
+
* size requirements.
|
|
10
|
+
*/
|
|
11
|
+
preparedSize: {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Size of the real screenshot content inside the prepared image. Pixel bboxes
|
|
17
|
+
* are parsed against `preparedSize`, then clipped to `contentSize` so padding
|
|
18
|
+
* added for the model is not treated as valid UI content.
|
|
19
|
+
*/
|
|
20
|
+
contentSize: {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare function prepareModelImage(options: {
|
|
26
|
+
imageBase64: string;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
policy: ImagePreprocessPolicy;
|
|
30
|
+
}): Promise<PreparedModelImage>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { JsonParser } from '../shared/json';
|
|
2
|
+
export type InsightDataOutputProtocol = {
|
|
3
|
+
/** Ordered XML tags delimiting the model-specific data output. */
|
|
4
|
+
tagNames: readonly [string, ...string[]];
|
|
5
|
+
rules: string;
|
|
6
|
+
placeholder: string;
|
|
7
|
+
buildExample: (serializedData: string) => string;
|
|
8
|
+
parse: <T>(content: string) => T;
|
|
9
|
+
};
|
|
10
|
+
export type InsightProtocol = {
|
|
11
|
+
responsePrefix?: string;
|
|
12
|
+
dataOutput: InsightDataOutputProtocol;
|
|
13
|
+
};
|
|
14
|
+
export type InsightProtocolContext = {
|
|
15
|
+
jsonParser: JsonParser;
|
|
16
|
+
};
|
|
17
|
+
export type InsightProtocolFactory = (context: InsightProtocolContext) => InsightProtocol;
|
|
18
|
+
export type InsightProtocolDefinition = InsightProtocol | InsightProtocolFactory;
|
|
19
|
+
export type InsightAdapter = {
|
|
20
|
+
protocol: InsightProtocol;
|
|
21
|
+
};
|
|
22
|
+
export type InsightDefinition = {
|
|
23
|
+
protocol?: InsightProtocolDefinition;
|
|
24
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { InsightAdapter, InsightDefinition, InsightProtocol, InsightProtocolContext, InsightProtocolDefinition } from './insight-protocol';
|
|
2
|
+
export declare function resolveInsightProtocol(definition: InsightProtocolDefinition | undefined, context: InsightProtocolContext): InsightProtocol;
|
|
3
|
+
export declare function resolveInsight(insight: InsightDefinition | undefined, context: InsightProtocolContext): InsightAdapter;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { JsonParser } from '../shared/json';
|
|
2
|
+
import type { LocateResultPromptSpec, RawLocateValue } from '../shared/model-locate-result';
|
|
3
|
+
export type ParsedLocateResponse = {
|
|
4
|
+
kind: 'located';
|
|
5
|
+
target: RawLocateValue;
|
|
6
|
+
references?: RawLocateValue[];
|
|
7
|
+
error?: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'not-found';
|
|
10
|
+
error?: string;
|
|
11
|
+
};
|
|
12
|
+
export type StandardLocateProtocol = {
|
|
13
|
+
systemPromptIntroduction: string;
|
|
14
|
+
buildResponseInstructions: (locatePromptSpec: LocateResultPromptSpec) => string;
|
|
15
|
+
buildUserPrompt: (targetElementDescription: string) => string;
|
|
16
|
+
expectedJsonObjectResponse: boolean;
|
|
17
|
+
parseRawResponse: (content: string, locatePromptSpec: LocateResultPromptSpec) => ParsedLocateResponse;
|
|
18
|
+
};
|
|
19
|
+
export type StandardLocateProtocolContext = {
|
|
20
|
+
jsonParser: JsonParser;
|
|
21
|
+
};
|
|
22
|
+
export type StandardLocateProtocolFactory = (context: StandardLocateProtocolContext) => StandardLocateProtocol;
|
|
23
|
+
export type StandardLocateProtocolDefinition = StandardLocateProtocol | StandardLocateProtocolFactory;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResolvedCustomPlanningDefinition } from './custom-planning-types';
|
|
2
|
+
import type { StandardLocateProtocolContext } from './locate-protocol';
|
|
3
|
+
import type { LocateAdapter, ModelAdapterDefinition } from './types';
|
|
4
|
+
export declare function resolveLocate(locate: ModelAdapterDefinition['locate'], resolvedCustomPlanner: ResolvedCustomPlanningDefinition | undefined, protocolContext: StandardLocateProtocolContext, acceptBbox2dAlias?: boolean): LocateAdapter;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { DeviceAction, PlanningAction } from '../../types';
|
|
2
|
+
import type { JsonParser } from '../shared/json';
|
|
3
|
+
import type { LocateResultPromptSpec } from '../shared/model-locate-result';
|
|
4
|
+
export type PlanningActionOutputBuildInput = {
|
|
5
|
+
actionName: string;
|
|
6
|
+
param: Record<string, unknown>;
|
|
7
|
+
locateFields?: string[];
|
|
8
|
+
locateResultKey?: string;
|
|
9
|
+
};
|
|
10
|
+
export type ParsedPlanningLocateParameter = {
|
|
11
|
+
prompt?: unknown;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
};
|
|
14
|
+
export type PlanningActionOutputProtocol = {
|
|
15
|
+
/**
|
|
16
|
+
* Ordered tag names that delimit the raw action output. The first tag must
|
|
17
|
+
* have an opening tag and the last tag must have a closing tag; self-closing
|
|
18
|
+
* boundary tags are not supported.
|
|
19
|
+
*/
|
|
20
|
+
actionOutputTagNames: readonly [string, ...string[]];
|
|
21
|
+
actionOutputRules: string;
|
|
22
|
+
actionOutputPlaceholder: string;
|
|
23
|
+
buildActionOutput: (input: PlanningActionOutputBuildInput) => string;
|
|
24
|
+
parseActionOutput: (content: string, actionSpace: DeviceAction<any>[]) => PlanningAction | null;
|
|
25
|
+
parseRawLocateParameter: (value: unknown) => ParsedPlanningLocateParameter;
|
|
26
|
+
};
|
|
27
|
+
export type PlanningActionDescriptionBuildInput = {
|
|
28
|
+
action: DeviceAction<any>;
|
|
29
|
+
locateFieldDescription: string;
|
|
30
|
+
actionOutputExample?: string;
|
|
31
|
+
};
|
|
32
|
+
export type PlanningActionSpaceFormat = 'yaml' | 'jsonl';
|
|
33
|
+
export type PlanningActionSpaceProtocol = {
|
|
34
|
+
title: string;
|
|
35
|
+
format: PlanningActionSpaceFormat;
|
|
36
|
+
includeActionOutputExample: boolean;
|
|
37
|
+
buildLocateFieldDescription: (locatePromptSpec?: LocateResultPromptSpec) => string;
|
|
38
|
+
buildActionDescription: (input: PlanningActionDescriptionBuildInput) => unknown;
|
|
39
|
+
};
|
|
40
|
+
export type StandardPlanningProtocol = {
|
|
41
|
+
responsePrefix?: string;
|
|
42
|
+
actionSpaceProtocol: PlanningActionSpaceProtocol;
|
|
43
|
+
actionOutputProtocol: PlanningActionOutputProtocol;
|
|
44
|
+
};
|
|
45
|
+
export type StandardPlanningProtocolContext = {
|
|
46
|
+
jsonParser: JsonParser;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Defined as a factory because planning response parsing may depend on the
|
|
50
|
+
* adapter's resolved JSON parser.
|
|
51
|
+
*/
|
|
52
|
+
export type StandardPlanningProtocolFactory = (context: StandardPlanningProtocolContext) => StandardPlanningProtocol;
|
|
53
|
+
export type StandardPlanningProtocolDefinition = StandardPlanningProtocol | StandardPlanningProtocolFactory;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LocateResultCodec } from '../shared/model-locate-result';
|
|
2
|
+
import type { CustomPlanningDefinition, ResolvedCustomPlanningDefinition } from './custom-planning-types';
|
|
3
|
+
import type { StandardPlanningProtocolContext } from './planning-protocol';
|
|
4
|
+
import type { ModelAdapterDefinition, PlanningAdapter } from './types';
|
|
5
|
+
export declare function resolveCustomPlanningDefinition<TParsed>(config: CustomPlanningDefinition<TParsed>): ResolvedCustomPlanningDefinition<TParsed>;
|
|
6
|
+
export declare function resolvePlanning(planning: ModelAdapterDefinition['planning'], resolvedCustomPlanner: ResolvedCustomPlanningDefinition | undefined, protocolContext: StandardPlanningProtocolContext, defaultLocateResultCodec?: LocateResultCodec): PlanningAdapter;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InsightAdapter } from './insight-protocol';
|
|
2
|
+
import type { ChatCompletionAdapter, ImagePreprocessPolicy, JsonParser, LocateAdapter, ModelAdapter, ModelAdapterDefinition, PlanningAdapter } from './types';
|
|
3
|
+
export declare class ResolvedModelAdapter implements ModelAdapter {
|
|
4
|
+
readonly jsonParser: JsonParser;
|
|
5
|
+
readonly chatCompletion: ChatCompletionAdapter;
|
|
6
|
+
readonly acceptBbox2dAlias: boolean;
|
|
7
|
+
readonly imagePreprocess: ImagePreprocessPolicy;
|
|
8
|
+
readonly insight: InsightAdapter;
|
|
9
|
+
readonly planning: PlanningAdapter;
|
|
10
|
+
readonly locate: LocateAdapter;
|
|
11
|
+
constructor(config: ModelAdapterDefinition, modelFamily: string);
|
|
12
|
+
}
|