bubblegum-ai 0.0.6a0__tar.gz
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.
- bubblegum_ai-0.0.6a0/LICENSE +21 -0
- bubblegum_ai-0.0.6a0/PKG-INFO +850 -0
- bubblegum_ai-0.0.6a0/README.md +800 -0
- bubblegum_ai-0.0.6a0/bubblegum/__init__.py +34 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/base.py +133 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/mobile/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/mobile/appium/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/mobile/appium/adapter.py +1378 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/web/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/web/playwright/__init__.py +1 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/web/playwright/adapter.py +878 -0
- bubblegum_ai-0.0.6a0/bubblegum/adapters/web/playwright/sync_adapter.py +160 -0
- bubblegum_ai-0.0.6a0/bubblegum/bdd/__init__.py +20 -0
- bubblegum_ai-0.0.6a0/bubblegum/bdd/dispatcher.py +222 -0
- bubblegum_ai-0.0.6a0/bubblegum/bdd/fixtures.py +80 -0
- bubblegum_ai-0.0.6a0/bubblegum/bdd/steps.py +70 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/__init__.py +27 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/__main__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/handlers.py +148 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/protocol.py +128 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/server.py +125 -0
- bubblegum_ai-0.0.6a0/bubblegum/bridge/sessions.py +162 -0
- bubblegum_ai-0.0.6a0/bubblegum/cli/__init__.py +128 -0
- bubblegum_ai-0.0.6a0/bubblegum/cli/__main__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/cli/bridge.py +40 -0
- bubblegum_ai-0.0.6a0/bubblegum/cli/record.py +90 -0
- bubblegum_ai-0.0.6a0/bubblegum/cli/repl.py +180 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/a11y.py +119 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/config.py +404 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/coordinates.py +104 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/cost.py +134 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/elements/__init__.py +21 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/elements/graph.py +239 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/elements/graph_signals.py +122 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/elements/normalized.py +177 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/elements/query.py +282 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/flaky.py +171 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/confidence.py +45 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/dom_helpers.py +93 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/engine.py +327 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/errors.py +204 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/hydrator.py +379 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/ranker.py +137 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/registry.py +135 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolver.py +106 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/accessibility_tree.py +517 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/appium_hierarchy.py +403 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/exact_text.py +146 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/explicit_selector.py +67 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/fuzzy_text.py +317 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/llm_grounding.py +252 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/memory_cache.py +202 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/ocr.py +160 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/resolvers/vision_model.py +154 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/grounding/signals.py +101 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/llm_cache.py +79 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/memory/__init__.py +15 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/memory/fingerprint.py +65 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/memory/layer.py +562 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/framework_detector.py +150 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/icon_detection.py +120 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/memory_signature.py +74 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/network_conditions.py +139 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/repeated_structure.py +164 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/scroll_discovery.py +141 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/scroll_resolution.py +129 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/system_actions.py +107 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/system_dialog.py +134 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/system_dialog_actions.py +198 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/system_dialog_guardrails.py +124 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/ui_framework_detector.py +123 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_context_selection.py +121 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_diagnostics.py +99 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_guardrails.py +130 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_readiness.py +138 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_real_driver_switch.py +207 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_switch_config.py +37 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_switch_eligibility.py +138 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/mobile/webview_switch_execution.py +153 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/anthropic_provider.py +162 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/base.py +120 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/factory.py +64 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/local_provider.py +53 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/models/openai_provider.py +146 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/network.py +105 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/ocr/__init__.py +17 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/ocr/backends/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/ocr/backends/callable.py +18 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/ocr/engine.py +114 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/parser/__init__.py +20 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/parser/instruction.py +528 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/parser/llm_decompose.py +112 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/planner/__init__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/planner/intent.py +84 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/__init__.py +32 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/capture.py +155 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/codegen.py +74 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/emit.py +77 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/js.py +161 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recorder/models.py +60 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recovery/__init__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/recovery/fallback.py +9 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/repl/__init__.py +18 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/repl/commands.py +111 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/repl/evaluate.py +99 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/schemas.py +255 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/scope.py +141 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/sdk.py +1386 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/validation/__init__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/validation/plans.py +29 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/__init__.py +21 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/backends/__init__.py +5 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/backends/anthropic.py +243 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/backends/callable.py +23 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/backends/openai.py +196 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/vision/engine.py +88 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/visual.py +150 -0
- bubblegum_ai-0.0.6a0/bubblegum/core/visual_image.py +50 -0
- bubblegum_ai-0.0.6a0/bubblegum/pytest_plugin.py +575 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/__init__.py +3 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/allure_report.py +198 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/explain.py +133 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/flaky_report.py +66 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/html_report.py +2541 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/json_report.py +142 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/junit_report.py +264 -0
- bubblegum_ai-0.0.6a0/bubblegum/reporting/suggested_fixes.py +74 -0
- bubblegum_ai-0.0.6a0/bubblegum/session.py +656 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/__init__.py +2 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/appium_driver.py +184 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/cloud.py +400 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/sample_app/dashboard.html +30 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/sample_app/login.html +49 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/sample_app/settings.html +49 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/accordion.html +76 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/checkboxes.html +37 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/combobox.html +106 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/iframe.html +19 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/iframe_inner.html +20 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/link-clicked.html +11 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/link_vs_button.html +31 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/modal.html +93 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/nameless_combobox.html +103 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/radios.html +50 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/select.html +39 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/slider.html +51 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/tabs.html +60 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/pages/widget_lab/upload.html +37 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/vendor/axe-core/NOTICE +31 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/vendor/axe-core/axe.min.js +12 -0
- bubblegum_ai-0.0.6a0/bubblegum/testing/widget_lab.py +106 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/PKG-INFO +850 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/SOURCES.txt +162 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/dependency_links.txt +1 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/entry_points.txt +5 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/requires.txt +40 -0
- bubblegum_ai-0.0.6a0/bubblegum_ai.egg-info/top_level.txt +1 -0
- bubblegum_ai-0.0.6a0/pyproject.toml +88 -0
- bubblegum_ai-0.0.6a0/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Bubblegum contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|