aukeys-opscli 0.0.41__tar.gz → 0.0.43__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.
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/PKG-INFO +1 -1
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/PKG-INFO +1 -1
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/SKILL.md +31 -1
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/references/cli.md +43 -2
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/references/mcp.md +44 -5
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/references/query-patterns.md +19 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/references/simple-query-guide.md +103 -17
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/version.c +7 -7
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/pyproject.toml +1 -1
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/MANIFEST.in +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/README.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/SOURCES.txt +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/dependency_links.txt +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/entry_points.txt +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/requires.txt +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/aukeys_opscli.egg-info/top_level.txt +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/parser.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/scraper.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/scraping/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/scraping/parser.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/scraping/scraper.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon/transport/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/runtime/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/runtime/country_map.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/answer_report_formatter.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/browser.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/parser.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/question_bank.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/replay.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/transport/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/config.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/core/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/core/device_flow.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/core/system_registry.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/core/token_manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/storage/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/storage/credential_store.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/auth/storage/crypto.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/config.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/feedback/transport/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/auth_middleware.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/context.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/credential_cache.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/tools/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/mcp/user_store.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/query/transport/client.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/scraping/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/scraping/api_recorder.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/scraping/archiver.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/scraping/captcha.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/scraping/scraper.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/services/account_store.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/seller_sprite/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/shared/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/shared/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/shared/http.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/shared/logging.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/detector.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/discovery/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/discovery/detector.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/domain/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/domain/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/exceptions.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/models.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/packaging.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/services/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/services/manager.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/services/rule_injector.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/sync/__init__.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/sync/updater.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/manifest.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/SKILL.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/references/cli.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/references/mcp.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/.gitignore +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/data/dataset_catalog.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/data/dataset_fields.csv +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/data/datasets.csv +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/data/query_metadata.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/references/data-query-service-dev-guide.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_mcp.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/chart_map.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/chart_map_mcp.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/core.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/excel_export.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/excel_export_mcp.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/query.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/query_mcp.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/search.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/updater.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/scripts/updater_mcp.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/SKILL.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/data/FEEDBACK_RULE.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/references/cli.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/references/mcp.md +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/updater.c +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/setup.cfg +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/setup.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/tests/test_session_sharing.py +0 -0
- {aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/tests/test_version_consistency.py +0 -0
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/SKILL.md
RENAMED
|
@@ -66,13 +66,41 @@ version: see data/VERSION.json
|
|
|
66
66
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
|
+
## 【强制】意图分析流程(数据集选择)
|
|
70
|
+
|
|
71
|
+
> 当用户给出自然语言需求、没有明确指定 dataset 时,**必须**按以下流程选择数据集,禁止跳过远程 catalog 直接用本地搜索猜测。
|
|
72
|
+
|
|
73
|
+
**标准流程**:
|
|
74
|
+
|
|
75
|
+
1. **远程 catalog 优先**:调用 `opscli query catalog --pretty`(CLI)或 `query_catalog()`(MCP),读取远端最新的 `intents` 列表
|
|
76
|
+
2. **意图匹配**:将用户需求与 `intents` 中的 `use_cases`、`keywords`、`scenario_description` 逐条匹配,按 `priority` 选择最佳候选数据集
|
|
77
|
+
3. **获取 table_id 和 default_filters**:从命中的 intent 中提取 `table_id`、`dataset_alias`、`default_filters`、`comparison_strategy` 等参数
|
|
78
|
+
4. **验证 default_filters(强制)**:catalog 的 `default_filters` 可能与实际数据不匹配。首次使用某数据集的 `default_filters` 时,必须先发一个轻量探查查询(不带 `default_filters`,仅带日期范围 + 1 个指标 SUM,limit=1)确认数据集有数据;再加上 `default_filters` 重试;若加上后返回 0 行,则去掉该 `default_filters` 继续查询,并在结果中告知用户已跳过不可用的默认过滤条件
|
|
79
|
+
5. **字段校验**:用本地 `data/dataset_fields.csv` 或 `query_metadata` 校验目标字段是否存在
|
|
80
|
+
6. **构造查询**:基于 catalog 提供的 `table_id`、验证通过的 `default_filters`、`comparison_strategy` 构造查询
|
|
81
|
+
|
|
82
|
+
**降级规则**:
|
|
83
|
+
|
|
84
|
+
| 优先级 | 场景 | 动作 |
|
|
85
|
+
|--------|------|------|
|
|
86
|
+
| 1(最优) | 远程 catalog 可用 | 直接使用远端 `intents` 匹配 |
|
|
87
|
+
| 2(回退) | 远程 catalog 失败且 `fallback_local=true` | 自动回退本地缓存 `data/dataset_catalog.json` |
|
|
88
|
+
| 3(兜底) | catalog 为空或 intents 无法匹配 | 回退到 `search`(MCP)/ `search.py`(CLI)+ `datasets.csv` 关键词检索 |
|
|
89
|
+
|
|
90
|
+
**禁止行为**:
|
|
91
|
+
- 跳过远程 catalog,直接用本地 `search.py` / `search` 工具猜测数据集
|
|
92
|
+
- **盲信** catalog 的 `default_filters` 而不做验证——`default_filters` 可能因数据源变更、字段值不一致等原因导致查询返回 0 行
|
|
93
|
+
- 忽略 catalog 中的 `comparison_strategy`,未按推荐策略构造对比查询
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
69
97
|
## 使用原则
|
|
70
98
|
|
|
71
99
|
- **简化接口优先**:普通聚合、数据对比、MOY 趋势、子查询等场景,优先使用简化接口(`opscli query simple` / `query_simple`),参数结构见 `references/simple-query-guide.md`
|
|
72
100
|
- 仅当简化接口不满足需求时(如复杂的 `joins`、`union`、自定义子查询),才手写完整 query payload + `opscli query run` / `query_run`
|
|
73
101
|
- 所有远端查询动作必须统一走选定模式下的正式查询入口,禁止直接调用后端 HTTP 接口
|
|
74
102
|
- 认证检查按动作触发:本地只读检索(`catalog --source local` / `query_catalog(source="local")` / `metadata` / `search` / `fetch`)不要求登录;默认远端 catalog、远端执行、图表运行和 Skill 升级前必须确认认证
|
|
75
|
-
-
|
|
103
|
+
- **【强制】意图分析必须远程 catalog 优先**:用户未指定 dataset 时,必须先调用远程 catalog 匹配 intents;仅当 catalog 不可用或 intents 无法匹配时,才回退到本地关键词检索
|
|
76
104
|
- 查询前优先检查目标 `dataset_alias`、`field_name`、`global_alias`、`verbose_name` 是否存在于本地索引或 metadata;不要先猜字段再直接构造 payload
|
|
77
105
|
- **【强制】本地搜索结果为空时,必须先确认数据是否已初始化**:若 `updater_mcp.py --check`、`opscli skills status` 或本地文件统计显示数据为空/placeholder,先升级再重试;若数据已初始化但搜索为空,再告知用户当前索引未覆盖
|
|
78
106
|
- 如果字段或数据集不存在,优先执行当前模式下的 Skill 升级,再重新检查一次
|
|
@@ -81,4 +109,6 @@ version: see data/VERSION.json
|
|
|
81
109
|
- 涉及环比、同比、上期对比等汇总对比时,优先使用服务端 `dataComparison` 能力;**必须同时传主周期日期 `filters` + 对比周期 `dataComparison`**,不能只传 `dataComparison`
|
|
82
110
|
- 普通时间范围查询只用 `filters`;只有需要对比时才同时使用 `filters` 与 `dataComparison`
|
|
83
111
|
- 如果 `query_simple` / `opscli query simple` 携带 `dataComparison` 后出现 SQL 解析错误(如 `QS-EXE-005 missing ')' at '{'`),先检查是否缺少主周期日期 `filters`;缺少时自动补上当前周期 `>=`、`<=` 或 `between` 日期过滤后重试,仍失败再降级为纯 `filters` 查询或多次查询本地合并
|
|
112
|
+
- **子查询数据集(`inner_where_enabled=true`)已支持 `dataComparison`**:使用方式与普通数据集一致,必须同时传主周期 `filters` 和 `dataComparison`。若极端情况下仍未返回 `last_*`、`diff_*`、`pct_*` 对比字段,可降级为"分别查询两个周期 + 本地合并计算环比"策略
|
|
113
|
+
- **【已知限制】子查询数据集必须至少包含一个业务过滤条件**:`inner_where_enabled=true` 的数据集在无任何业务 `filters` 时,`innerWhere` 占位符无法填充,会导致 `QS-EXE-005` SQL 解析错误。查询此类数据集时,必须至少传入一个日期范围过滤条件
|
|
84
114
|
- 处理 chart 查询时,优先采用服务端返回的 `datasets + queries` 双层结构:`datasets` 负责公共字段语义,`queries` 负责执行结构;本地 CSV 仅作字段映射兜底
|
|
@@ -1128,13 +1128,54 @@ python3 -c "import json; print(json.load(open('/tmp/result.json'))['data']['resu
|
|
|
1128
1128
|
|
|
1129
1129
|
## 典型工作流
|
|
1130
1130
|
|
|
1131
|
-
###
|
|
1131
|
+
### 意图分析 → 数据集选择 → 构造 → 执行(推荐)
|
|
1132
|
+
|
|
1133
|
+
> **【强制】用户未指定 dataset 时,必须从远程 catalog 意图匹配开始,禁止跳过直接用本地搜索猜测。**
|
|
1134
|
+
|
|
1135
|
+
```bash
|
|
1136
|
+
# 0. 先检查认证状态;如未登录则调用 ops-auth 完成登录
|
|
1137
|
+
opscli auth token status
|
|
1138
|
+
|
|
1139
|
+
# 1.【强制】远程 catalog 意图分析(默认远端优先,失败自动回退本地缓存)
|
|
1140
|
+
opscli query catalog --pretty
|
|
1141
|
+
# 从返回的 intents 中匹配用户需求:
|
|
1142
|
+
# - 比对 use_cases / keywords / scenario_description
|
|
1143
|
+
# - 按 priority 选择最佳候选
|
|
1144
|
+
# - 提取 table_id、dataset_alias、default_filters、comparison_strategy
|
|
1145
|
+
|
|
1146
|
+
# 2. 用本地索引校验目标字段是否存在
|
|
1147
|
+
python scripts/search.py <field_name> --dataset <dataset_alias> -n 20
|
|
1148
|
+
# 或查看完整 metadata
|
|
1149
|
+
opscli query metadata --dataset <dataset_alias> --pretty
|
|
1150
|
+
|
|
1151
|
+
# 3. 基于 catalog 提供的 table_id + default_filters + comparison_strategy 构造查询
|
|
1152
|
+
opscli query simple \
|
|
1153
|
+
--table-id <table_id> \
|
|
1154
|
+
--json '{
|
|
1155
|
+
"dimensions": [...],
|
|
1156
|
+
"metrics": [...],
|
|
1157
|
+
"filters": [<default_filters>, <用户指定的日期/维度过滤>],
|
|
1158
|
+
"limit": 50
|
|
1159
|
+
}' \
|
|
1160
|
+
--run --pretty
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
**意图匹配示例**:
|
|
1164
|
+
|
|
1165
|
+
用户说"查广告数据" → catalog 返回 `intent_code: instant_advertising_analysis`:
|
|
1166
|
+
- `table_id: 15`,`dataset_alias: ds_0759e20F0DrG`
|
|
1167
|
+
- `default_filters: [{"field": "amazon_cat", "value": "Amazon", "operator": "="}]`
|
|
1168
|
+
- `comparison_strategy: {"trend_compare": "MOM", "summary_compare": "dataComparison"}`
|
|
1169
|
+
|
|
1170
|
+
→ 直接用 `table_id=15` + `platform_name in ["Amazon"]` 构造查询,无需猜测数据集。
|
|
1171
|
+
|
|
1172
|
+
### 探索数据集 → 构造 → 执行(已知数据集时)
|
|
1132
1173
|
|
|
1133
1174
|
```bash
|
|
1134
1175
|
# 0. 先检查认证状态;如未登录则调用 ops-auth 完成登录
|
|
1135
1176
|
opscli auth token status
|
|
1136
1177
|
|
|
1137
|
-
# 1.
|
|
1178
|
+
# 1. 通过本地索引确认字段名
|
|
1138
1179
|
# 2. 查看完整 metadata(获取 table_id 和字段信息)
|
|
1139
1180
|
opscli query metadata --dataset sales_order_d --pretty
|
|
1140
1181
|
# 3. 使用简化接口构造并执行
|
|
@@ -868,15 +868,55 @@ result_prev = query_simple(
|
|
|
868
868
|
|
|
869
869
|
## 典型工作流
|
|
870
870
|
|
|
871
|
-
###
|
|
871
|
+
### 意图分析 → 数据集选择 → 构造 → 执行(推荐)
|
|
872
|
+
|
|
873
|
+
> **【强制】用户未指定 dataset 时,必须从远程 catalog 意图匹配开始,禁止跳过直接用本地搜索猜测。**
|
|
872
874
|
|
|
873
875
|
```python
|
|
874
876
|
# 0. 先检查 session;如无效则重新 Device Flow 授权
|
|
875
877
|
auth_is_authenticated(session_id="xxx")
|
|
876
878
|
|
|
877
|
-
# 1
|
|
879
|
+
# 1.【强制】远程 catalog 意图分析(默认远端优先,失败自动回退本地缓存)
|
|
880
|
+
query_catalog()
|
|
881
|
+
# 从返回的 intents 中匹配用户需求:
|
|
882
|
+
# - 比对 use_cases / keywords / scenario_description
|
|
883
|
+
# - 按 priority 选择最佳候选
|
|
884
|
+
# - 提取 table_id、dataset_alias、default_filters、comparison_strategy
|
|
885
|
+
|
|
886
|
+
# 2. 用本地索引校验目标字段
|
|
887
|
+
search(query="<field_name>")
|
|
888
|
+
# 或查看完整 metadata
|
|
889
|
+
query_metadata(dataset="<dataset_alias>")
|
|
890
|
+
|
|
891
|
+
# 3. 基于 catalog 提供的 table_id + default_filters + comparison_strategy 构造查询
|
|
892
|
+
query_simple(
|
|
893
|
+
table_id=<table_id>, # 从 catalog intent 获取
|
|
894
|
+
dimensions=[...],
|
|
895
|
+
metrics=[...],
|
|
896
|
+
filters=[...], # 合并 default_filters + 用户指定的日期/维度过滤
|
|
897
|
+
limit=50,
|
|
898
|
+
session_id="xxx"
|
|
899
|
+
)
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
**意图匹配示例**:
|
|
903
|
+
|
|
904
|
+
用户说"查广告数据" → catalog 返回 `intent_code: instant_advertising_analysis`:
|
|
905
|
+
- `table_id: 15`,`dataset_alias: ds_0759e20F0DrG`
|
|
906
|
+
- `default_filters: [{"field": "amazon_cat", "value": "Amazon", "operator": "="}]`
|
|
907
|
+
- `comparison_strategy: {"trend_compare": "MOM", "summary_compare": "dataComparison"}`
|
|
908
|
+
|
|
909
|
+
→ 直接用 `table_id=15` + `platform_name in ["Amazon"]` 构造查询,无需猜测数据集。
|
|
910
|
+
|
|
911
|
+
### 探索数据集 → 构造 → 执行(已知数据集时)
|
|
912
|
+
|
|
913
|
+
```python
|
|
914
|
+
# 0. 先检查 session;如无效则重新 Device Flow 授权
|
|
915
|
+
auth_is_authenticated(session_id="xxx")
|
|
916
|
+
|
|
917
|
+
# 1. 通过本地索引确认字段名
|
|
878
918
|
# 2. 查看完整 metadata
|
|
879
|
-
query_metadata(dataset="sales_order_d"
|
|
919
|
+
query_metadata(dataset="sales_order_d")
|
|
880
920
|
|
|
881
921
|
# 3. 使用简化接口构造并执行
|
|
882
922
|
query_simple(
|
|
@@ -886,8 +926,7 @@ query_simple(
|
|
|
886
926
|
filters=[{"field": "date_id", "operator": "between", "value": ["2026-04-01", "2026-04-22"]}],
|
|
887
927
|
order_by=[{"field": "f_fee_sum", "desc": True}],
|
|
888
928
|
limit=50,
|
|
889
|
-
session_id="
|
|
890
|
-
skills_dir="/Users/mask/.config/opencode/skills"
|
|
929
|
+
session_id="xxx"
|
|
891
930
|
)
|
|
892
931
|
```
|
|
893
932
|
|
|
@@ -87,6 +87,25 @@ description: 数据对比与高级计算通用参考(CLI / MCP 共享)
|
|
|
87
87
|
|
|
88
88
|
**适用场景**:当期(如本月 1-22 日) vs 对比期(如上月同期 1-22 日)的汇总数据对比,**同期天数对等**,适合月度/季度环比汇总看板。
|
|
89
89
|
|
|
90
|
+
**注意事项**:
|
|
91
|
+
|
|
92
|
+
| 事项 | 说明 |
|
|
93
|
+
|------|------|
|
|
94
|
+
| 子查询数据集已支持 | `inner_where_enabled=true` 的数据集(如 table_id=15 广告数据集)已支持 `dataComparison`,使用方式与普通数据集一致 |
|
|
95
|
+
| 必须同时传主周期 filters | 只传 `dataComparison` 不传日期 `filters` 会导致 SQL 解析错误,始终同时传 `filters`(主周期日期)+ `dataComparison`(对比周期日期) |
|
|
96
|
+
|
|
97
|
+
**极端降级流程**(仅在服务端未返回对比字段时使用):
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
1. 使用 dataComparison 查询
|
|
101
|
+
2. 检查返回结果是否包含 last_* 字段
|
|
102
|
+
├── 包含 → 正常使用(预期路径)
|
|
103
|
+
└── 不包含 → 降级:分别查询两个周期 + 本地合并
|
|
104
|
+
├── 查询主周期(filters 限定当期日期)
|
|
105
|
+
├── 查询对比周期(filters 限定上期日期)
|
|
106
|
+
└── 按维度匹配,计算 diff 和 pct
|
|
107
|
+
```
|
|
108
|
+
|
|
90
109
|
---
|
|
91
110
|
|
|
92
111
|
## MOY 同环比(高级计算)
|
|
@@ -68,30 +68,84 @@ description: 简化查询接口指南 — 7 个纯业务概念完成数据查询
|
|
|
68
68
|
|
|
69
69
|
```json
|
|
70
70
|
[
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
{"field": "dept_name", "alias": "f_dept"},
|
|
72
|
+
{"field": "date_id", "alias": "f_month", "format": "%Y-%m"}
|
|
73
|
+
]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
- `field`:字段的 origin_name(不含数据集前缀,服务端自动拼接)
|
|
77
|
+
- `alias`:返回结果中的列名(建议使用 global_alias)
|
|
78
|
+
- `format`(可选):日期格式化,如 `%Y-%m` 按月分组
|
|
79
|
+
|
|
80
|
+
### metrics — 指标
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
[
|
|
84
|
+
{"field": "price", "aggregation": "SUM", "alias": "f_price_sum"},
|
|
85
|
+
{"field": "price", "aggregation": "SUM", "alias": "f_price_moy", "comparison": "MOY", "moyType": "MOM_MONTH"}
|
|
86
|
+
]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
- `aggregation`:聚合方式(`SUM`、`COUNT`、`AVG`、`MAX`、`MIN`)
|
|
90
|
+
- `comparison`(可选):`MOY`(月环比/年同比趋势)、`ACC`(累计)、`PPT`(百分点)
|
|
91
|
+
- `moyType`(可选):`MOM_MONTH`(月环比)、`YOY_YEAR`(年同比)
|
|
92
|
+
|
|
93
|
+
### filters — 过滤条件
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
[
|
|
97
|
+
{"field": "platform_name", "operator": "in", "value": ["Amazon"]},
|
|
98
|
+
{"field": "date_id", "operator": "between", "value": ["2026-04-01", "2026-04-22"]}
|
|
99
|
+
]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- `operator`:`=`、`!=`、`>`、`>=`、`<`、`<=`、`in`、`not in`、`between`
|
|
103
|
+
- 子查询数据集中,服务端自动将业务条件放入 `innerWhere`,日期条件放入外层 `where`
|
|
104
|
+
|
|
105
|
+
### dataComparison — 数据对比
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"field": "date_id",
|
|
110
|
+
"startDate": "2026-03-01",
|
|
111
|
+
"endDate": "2026-03-22"
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- 必须同时传 `filters` 中的主周期日期,否则报 `QS-EXE-005`
|
|
116
|
+
- 返回字段:`last_{alias}`(上期值)、`diff_{alias}`(差值)、`pct_{alias}`(环比百分比)
|
|
117
|
+
|
|
118
|
+
### orderBy — 排序
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
[
|
|
122
|
+
{"field": "f_price_sum", "desc": true}
|
|
123
|
+
]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
- `field`:使用 metric/dimension 的 `alias`
|
|
127
|
+
- `desc`:`true` 降序,`false` 升序
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 完整示例
|
|
132
|
+
|
|
133
|
+
### 示例 1:普通聚合查询
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"tableId": 1,
|
|
138
|
+
"dimensions": [
|
|
139
|
+
{"field": "dept_name", "alias": "f_dept"}
|
|
73
140
|
],
|
|
74
141
|
"metrics": [
|
|
75
|
-
{"field": "
|
|
76
|
-
{"field": "price", "aggregation": "SUM", "alias": "f_price_moy", "comparison": "MOY", "moyType": "MOM_MONTH"}
|
|
142
|
+
{"field": "fi_first_leg_trailer_fee", "aggregation": "SUM", "alias": "f_fee_sum"}
|
|
77
143
|
],
|
|
78
144
|
"filters": [
|
|
79
|
-
{"field": "platform_name", "operator": "in", "value": ["Amazon"]},
|
|
80
145
|
{"field": "date_id", "operator": "between", "value": ["2026-04-01", "2026-04-22"]}
|
|
81
146
|
],
|
|
82
|
-
"dataComparison": {
|
|
83
|
-
"field": "date_id",
|
|
84
|
-
"startDate": "2026-03-01",
|
|
85
|
-
"endDate": "2026-03-22"
|
|
86
|
-
},
|
|
87
147
|
"orderBy": [
|
|
88
|
-
{"field": "
|
|
89
|
-
],
|
|
90
|
-
"metrics": [
|
|
91
|
-
{"field": "fi_first_leg_trailer_fee", "aggregation": "SUM", "alias": "f_fee_sum"}
|
|
92
|
-
],
|
|
93
|
-
"filters": [
|
|
94
|
-
{"field": "date_id", "operator": "between", "value": ["2026-04-01", "2026-04-22"]}
|
|
148
|
+
{"field": "f_fee_sum", "desc": true}
|
|
95
149
|
],
|
|
96
150
|
"limit": 10
|
|
97
151
|
}
|
|
@@ -179,6 +233,35 @@ description: 简化查询接口指南 — 7 个纯业务概念完成数据查询
|
|
|
179
233
|
|
|
180
234
|
---
|
|
181
235
|
|
|
236
|
+
## 子查询数据集注意事项(inner_where_enabled=true)
|
|
237
|
+
|
|
238
|
+
子查询类型数据集(如 `table_id=15` 广告数据集)有以下特殊约束:
|
|
239
|
+
|
|
240
|
+
### 1. 必须至少包含一个日期过滤条件
|
|
241
|
+
|
|
242
|
+
子查询数据集的 SQL 模板包含 `innerWhere` 占位符,当 `filters` 完全为空时,占位符无法填充,服务端会生成非法 SQL 并返回 `QS-EXE-005` 错误。
|
|
243
|
+
|
|
244
|
+
**最低要求**:至少传入一个日期范围过滤条件(`date_id >= xxx` 或 `date_id between [xxx, yyy]`)。
|
|
245
|
+
|
|
246
|
+
```json
|
|
247
|
+
// 错误:无任何 filters,会导致 QS-EXE-005
|
|
248
|
+
{"tableId": 15, "dimensions": [...], "metrics": [...], "filters": []}
|
|
249
|
+
|
|
250
|
+
// 正确:至少带日期过滤
|
|
251
|
+
{"tableId": 15, "dimensions": [...], "metrics": [...],
|
|
252
|
+
"filters": [{"field": "date_id", "operator": "between", "value": ["2026-02-01", "2026-02-28"]}]}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### 2. dataComparison 已支持子查询数据集
|
|
256
|
+
|
|
257
|
+
子查询数据集现已支持 `dataComparison`,服务端会正确返回 `last_*`、`diff_*`、`pct_*` 对比字段。使用方式与普通数据集一致,必须同时传主周期 `filters` 和 `dataComparison`。
|
|
258
|
+
|
|
259
|
+
### 3. catalog default_filters 需验证
|
|
260
|
+
|
|
261
|
+
catalog 中 `default_filters`(如 `amazon_cat=Amazon`)可能与实际数据不匹配。首次使用时应先不带 `default_filters` 探查数据是否存在,确认后再决定是否加上。若加上后返回 0 行,则去掉继续查询。
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
182
265
|
## CLI 调用方式
|
|
183
266
|
|
|
184
267
|
```bash
|
|
@@ -247,6 +330,9 @@ query_simple(
|
|
|
247
330
|
| 缺少必填 alias | 400 | dimension / metric 必须提供 `alias` |
|
|
248
331
|
| 不支持 comparison 类型 | 400 | 仅支持 `MOY`、`ACC`、`PPT` |
|
|
249
332
|
| `dataComparison` SQL 解析错误 | `QS-EXE-005` 等 | 先检查是否缺少主周期日期 `filters`;缺少时补上当前周期日期过滤后重试,仍失败再降级为纯 `filters` 查询 |
|
|
333
|
+
| 子查询数据集无 filters | `QS-EXE-005` | `inner_where_enabled=true` 的数据集必须至少传一个日期过滤条件,否则 innerWhere 占位符无法填充 |
|
|
334
|
+
| `dataComparison` 未返回对比字段 | 无错误码 | 子查询数据集已支持 `dataComparison`;若仍未返回对比字段,降级为分别查询两个周期后本地合并计算 |
|
|
335
|
+
| catalog `default_filters` 返回 0 行 | 无错误码 | `default_filters` 可能与实际数据不匹配,去掉后重试 |
|
|
250
336
|
|
|
251
337
|
---
|
|
252
338
|
|
|
@@ -2282,7 +2282,7 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati
|
|
|
2282
2282
|
#endif
|
|
2283
2283
|
/* #### Code section: constant_name_defines ### */
|
|
2284
2284
|
#define __pyx_kp_u_ __pyx_string_tab[0]
|
|
2285
|
-
#define
|
|
2285
|
+
#define __pyx_kp_u_0_0_43_dev __pyx_string_tab[1]
|
|
2286
2286
|
#define __pyx_kp_u__2 __pyx_string_tab[2]
|
|
2287
2287
|
#define __pyx_kp_u_aukeys_opscli __pyx_string_tab[3]
|
|
2288
2288
|
#define __pyx_kp_u_opscli_version_py __pyx_string_tab[4]
|
|
@@ -2939,7 +2939,7 @@ __Pyx_RefNannySetupContext("PyInit_version", 0);
|
|
|
2939
2939
|
* from importlib.metadata import PackageNotFoundError, version
|
|
2940
2940
|
*
|
|
2941
2941
|
* PACKAGE_NAME = "aukeys-opscli" # <<<<<<<<<<<<<<
|
|
2942
|
-
* FALLBACK_VERSION = "0.0.
|
|
2942
|
+
* FALLBACK_VERSION = "0.0.43-dev"
|
|
2943
2943
|
*
|
|
2944
2944
|
*/
|
|
2945
2945
|
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PACKAGE_NAME, __pyx_mstate_global->__pyx_kp_u_aukeys_opscli) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
|
|
@@ -2947,11 +2947,11 @@ __Pyx_RefNannySetupContext("PyInit_version", 0);
|
|
|
2947
2947
|
/* "opscli/version.py":11
|
|
2948
2948
|
*
|
|
2949
2949
|
* PACKAGE_NAME = "aukeys-opscli"
|
|
2950
|
-
* FALLBACK_VERSION = "0.0.
|
|
2950
|
+
* FALLBACK_VERSION = "0.0.43-dev" # <<<<<<<<<<<<<<
|
|
2951
2951
|
*
|
|
2952
2952
|
*
|
|
2953
2953
|
*/
|
|
2954
|
-
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FALLBACK_VERSION, __pyx_mstate_global->
|
|
2954
|
+
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FALLBACK_VERSION, __pyx_mstate_global->__pyx_kp_u_0_0_43_dev) < (0)) __PYX_ERR(0, 11, __pyx_L1_error)
|
|
2955
2955
|
|
|
2956
2956
|
/* "opscli/version.py":14
|
|
2957
2957
|
*
|
|
@@ -3044,7 +3044,7 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
|
|
|
3044
3044
|
{
|
|
3045
3045
|
const struct { const unsigned int length: 5; } index[] = {{1},{10},{1},{13},{17},{16},{12},{20},{20},{18},{18},{8},{11},{18},{13},{5},{8},{10},{8},{14},{12},{6},{12},{10},{3},{8},{6},{7},{25}};
|
|
3046
3046
|
#if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (314 bytes) */
|
|
3047
|
-
const char* const cstring = "BZh91AY&
|
|
3047
|
+
const char* const cstring = "BZh91AY&SY\307\363\312\360\000\000\007\177\343FL\202\000\000\003\314\000\277\257\371\000\277\257\377\340\000@@\000@@@\0000\000\355Y\206\250i\240A\264\324\311\240\320\304i\352\r\001\246\217F\232\203T\364\231\033SS\023M\251\352\r4\032\000\000\000\320\032\236\243T\364\322h\321\243\322\003@\000\032\001\240\002\251\013ml<\360t\326\3748\263\235\236D\202VR\211\267\321\306\251\302\221Z<6\227;\362\017\220OY\347<s\240\374\270\271\"\230\317\254y\036\310\232/\024fb\022[\n@\022\205\241\niXm\033\t\005\312\235\366\0237\326\244\250\316\031\226D@E\301\302\226\033Qu\347a\331u\234\217\346\001\246\2434\020\256\343\246\266\360\373\006\272\275F\210\221\211*\000\304r\n\300\206\221\003\r\"\251xZt\2532!,Y\347%=\010)\310\005\025\303\214V\335\211\0137\245\374\312\0238~E\244U8\010\231\223J\024F\026\003\361\023N\253NPQ\010\216A\024\017\333\203\212\027Ab\216B\020\256\267!\216l\024\306R\022\360\245\303\273\014$_\361w$S\205\t\014\177<\257\000";
|
|
3048
3048
|
PyObject *data = __Pyx_DecompressString(cstring, 314, 2);
|
|
3049
3049
|
if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
3050
3050
|
const char* const bytes = __Pyx_PyBytes_AsString(data);
|
|
@@ -3052,7 +3052,7 @@ const char* const cstring = "BZh91AY&SY3PY\360\000\000\007\177\343FL\202\000\000
|
|
|
3052
3052
|
if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
|
|
3053
3053
|
#endif
|
|
3054
3054
|
#elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (253 bytes) */
|
|
3055
|
-
const char* const cstring = "x\332=OMK\303@\020\365\240 (x\362gt
|
|
3055
|
+
const char* const cstring = "x\332=OMK\303@\020\365\240 (x\362gt-\350]\242\246\"\326\030[\360:L7\323\262t?\222\335\331\330\374\003\217\371i\036{\364\247\270!\301\201\231y\274a\336\233\021s1\027w\267\263\212\332{\214{\352\302\314\325Aj5\326\233\226|P\316\212\272[d\313\345C\366\370\n\237\371j\375\362^\224\tg\3179\024\331[^\242\334\343\216\n\307\013\027m\225{\357<@\331\035R>)\311P\320\201W\264\305\320Y\251\234\220\316\273\310\312\322\340a\t\224\005\366(i\223t\000\266\321J\200\0351L\356\312\324\316\263V\033a\210\261BFP\001\376E\024\223\t\000\006\223L\n\343\252\250i@\026M\352\343'b\322\002h\"\352q\342\211\243OLHV#\223P\225\316\214\232\003\247\017\230\002\003\264\250#\205i\377\347\344\272\377\370==;\236_}\177\365\3307\307\213\313\0017\177Q\255\200/";
|
|
3056
3056
|
PyObject *data = __Pyx_DecompressString(cstring, 253, 1);
|
|
3057
3057
|
if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
|
|
3058
3058
|
const char* const bytes = __Pyx_PyBytes_AsString(data);
|
|
@@ -3060,7 +3060,7 @@ const char* const cstring = "x\332=OMK\303@\020\365\240 (x\362gt\255\340]\242\24
|
|
|
3060
3060
|
if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
|
|
3061
3061
|
#endif
|
|
3062
3062
|
#else /* compression: none (330 bytes) */
|
|
3063
|
-
const char* const bytes = ".0.0.
|
|
3063
|
+
const char* const bytes = ".0.0.43-dev?aukeys-opscliopscli/version.pyFALLBACK_VERSIONPACKAGE_NAMEPackageNotFoundError__Pyx_PyDict_NextRefasyncio.coroutinescline_in_traceback__func__get_versionimportlib.metadata_is_coroutineitems__main____module____name__opscli.version__qualname__return__set_name__setdefaultstr__test__valuesversion\320\000\025\220Q\340\004\005\330\010\017\210w\220a\220q\330\013\014\330\010\017\210q";
|
|
3064
3064
|
PyObject *data = NULL;
|
|
3065
3065
|
CYTHON_UNUSED_VAR(__Pyx_DecompressString);
|
|
3066
3066
|
#endif
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/amazon_rufus/services/answer_report_formatter.c
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/data/VERSION.json
RENAMED
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/references/cli.md
RENAMED
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-auth/references/mcp.md
RENAMED
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-dataset-query/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/data/VERSION.json
RENAMED
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/references/cli.md
RENAMED
|
File without changes
|
{aukeys_opscli-0.0.41 → aukeys_opscli-0.0.43}/opscli/skills/templates/ops-feedback/references/mcp.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|