aukeys-opscli 0.0.25__tar.gz → 0.0.26__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.25 → aukeys_opscli-0.0.26}/PKG-INFO +37 -1
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/README.md +36 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/README_MCP.md +47 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/change-log-pending.md +109 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide/opscli/345/221/275/344/273/244/347/224/250/344/276/213/346/211/213/345/206/214.md +63 -2
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/query.py +43 -2
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/commands/cli.py +34 -5
- aukeys_opscli-0.0.26/opscli/query/services/manager.py +1214 -0
- aukeys_opscli-0.0.26/opscli/query/transport/client.py +290 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/commands/cli.py +5 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/SKILL.md +232 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/ads_metrics_guide.md +4 -4
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/campaign_optimization_playbook.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/cli.md +140 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-dataset-query → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer}/references/data-query-service-dev-guide.md +9 -9
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references}/dataset_fields_mapping.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/mcp.md +255 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator.py +64 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency_mcp.py +81 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos.py +78 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos_mcp.py +80 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/core.py +251 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/SKILL.md +231 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/cli.md +209 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-asin-health-diagnoser/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references}/dataset_fields_mapping.md +2 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/mcp.md +363 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references/query-essential-guide.md +149 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-asin-health-diagnoser/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/references}/threshold_reference.md +18 -18
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score.py +110 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score_mcp.py +168 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-asin-health-diagnoser/scripts/core.py +388 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/SKILL.md +171 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/cli.md +134 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-competitive-intelligence-analyst/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references}/dataset_fields_mapping.md +9 -9
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/mcp.md +189 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis_mcp.py +63 -0
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/competitive_analysis.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/scripts/core.py +67 -335
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/SKILL.md +168 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/bsr_filtering_rules.md +2 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/cli.md +124 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/dataset_fields_mapping.md +8 -8
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/mcp.md +177 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-cross-border-product-selector/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references}/quadrant_matrix_guide.md +23 -22
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/core.py +66 -404
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-cross-border-product-selector/scripts/product_selector_mcp.py +63 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/SKILL.md +1 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/references/cli.md +56 -13
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-dataset-query/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/references/mcp.md +31 -3
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze.py +4 -2
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_map.py +72 -9
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_map_mcp.py +69 -7
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/SKILL.md +180 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/cli.md +114 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/dataset_fields_mapping.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/mcp.md +177 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references/query-essential-guide.md +149 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/replenishment_formula.md +9 -9
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health.py +69 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health_mcp.py +73 -0
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/scripts/calculate_inventory_health.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/core.py +65 -83
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan.py +74 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan_mcp.py +78 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/SKILL.md +174 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/cli.md +174 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-perspective-builder/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references}/dataset_fields_mapping.md +14 -14
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/mcp.md +237 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-perspective-builder/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references}/perspective_catalog.md +24 -24
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config.py +75 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config_mcp.py +76 -0
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-perspective-builder/scripts/build_perspective_config.py → aukeys_opscli-0.0.26/opscli/skills/templates/ops-perspective-builder/scripts/core.py +20 -261
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/SKILL.md +171 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/data/VERSION.json +4 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/3d_tag_dictionary.md +4 -4
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/attribute_mapping_table.md +1 -1
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/cli.md +114 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references}/dataset_fields_mapping.md +2 -2
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/market_portrait_template.md +37 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/mcp.md +189 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo_mcp.py +71 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share.py +68 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share_mcp.py +72 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/core.py +208 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait.py +68 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait_mcp.py +72 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/SKILL.md +169 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/cli.md +104 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-profit-structure-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references}/dataset_fields_mapping.md +5 -5
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/mcp.md +153 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/scripts/core.py +194 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/SKILL.md +169 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/data/VERSION.json +4 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/cli.md +124 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/data-query-service-dev-guide.md +1173 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-refund-priority-matrix/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references}/dataset_fields_mapping.md +4 -4
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/mcp.md +177 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/query-essential-guide.md +149 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/references/refund_reasons_catalog.md +49 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix.py +62 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix_mcp.py +67 -0
- aukeys_opscli-0.0.26/opscli/skills/templates/ops-refund-priority-matrix/scripts/core.py +202 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/pyproject.toml +1 -1
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/query/test_cli.py +8 -2
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/query/test_client.py +64 -1
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/query/test_manager.py +183 -0
- aukeys_opscli-0.0.25/opscli/query/services/manager.py +0 -687
- aukeys_opscli-0.0.25/opscli/query/transport/client.py +0 -82
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/SKILL.md +0 -231
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/ads_budget_allocator.py +0 -149
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/analyze_ads_efficiency.py +0 -253
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-advertising-efficiency-optimizer/scripts/calculate_roas_acos.py +0 -125
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-asin-health-diagnoser/SKILL.md +0 -107
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-asin-health-diagnoser/scripts/calculate_health_score.py +0 -299
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-competitive-intelligence-analyst/SKILL.md +0 -204
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-cross-border-product-selector/SKILL.md +0 -228
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/SKILL.md +0 -226
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/scripts/generate_replenishment_plan.py +0 -153
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-perspective-builder/SKILL.md +0 -195
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/SKILL.md +0 -182
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/reference/market_portrait_template.md +0 -37
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/scripts/analyze_attribute_combo.py +0 -135
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/scripts/calculate_weighted_share.py +0 -136
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-product-attribute-analyzer/scripts/generate_market_portrait.py +0 -155
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-profit-structure-analyzer/SKILL.md +0 -245
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-profit-structure-analyzer/scripts/analyze_cost_structure.py +0 -402
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-refund-priority-matrix/SKILL.md +0 -267
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-refund-priority-matrix/reference/refund_reasons_catalog.md +0 -49
- aukeys_opscli-0.0.25/opscli/skills/templates/ops-refund-priority-matrix/scripts/calculate_priority_matrix.py +0 -391
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.agents/plugins/marketplace.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.agents/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.agents/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/CLAUDE.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/agents/super-dev.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/commands/super-dev-seeai.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/commands/super-dev.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/settings.local.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.claude-plugin/marketplace.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.github/workflows/cross-platform-preflight.yml +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.gitignore +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/.super-dev/install-manifest.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/AGENTS.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/CLAUDE.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis/Skill/346/226/271/346/263/225/350/256/272/346/267/261/345/272/246/345/210/206/346/236/220/344/270/216/346/225/260/346/215/256/351/233/206/350/236/215/345/220/210/345/244/215/347/224/250/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis/amazon-monitor/346/216/245/345/205/245/345/210/206/346/236/220.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis/opscli/347/263/273/347/273/237/346/236/266/346/236/204/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis//344/272/232/351/251/254/351/200/212/344/272/247/345/223/201/345/205/250/347/273/264/345/210/206/346/236/220/344/275/223/347/263/273_v1.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis//344/272/232/351/251/254/351/200/212/344/272/247/345/223/201/345/205/250/347/273/264/345/210/206/346/236/220/344/275/223/347/263/273_/347/254/254/344/270/200/346/255/245/351/200/217/350/247/206/345/233/276/346/236/204/345/273/272/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/analysis//346/216/210/346/235/203/346/250/241/345/274/217/345/257/271/346/257/224/345/210/206/346/236/220/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/1.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/AI/345/217/226/346/225/260/350/203/275/345/212/233/345/272/225/345/272/247/345/274/200/345/217/221/351/234/200/346/261/202.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/CLI/345/212/250/346/200/201/346/250/241/345/235/227/345/212/240/350/275/275/346/224/271/351/200/240/345/256/236/346/226/275/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/Skills/345/244/232/345/267/245/345/205/267/350/260/203/347/240/224/350/247/204/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/amazon/345/273/272/350/241/250SQL/350/215/211/346/241/210/344/270/216ops API/350/257/267/346/261/202/344/275/223/345/256/232/344/271/211.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/amazon/346/225/260/346/215/256/346/250/241/345/236/213/344/270/216API/351/242/204/347/225/231/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/ops-amazon Skill/350/247/204/345/210/222/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/opscli-session/345/205/261/347/224/250/346/200/247/345/210/206/346/236/220/344/270/216/344/274/230/345/214/226/346/226/271/346/241/210/346/212/245/345/221/212.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/opscli/346/216/210/346/235/203/346/265/201/347/250/213/346/267/261/345/272/246/345/210/206/346/236/220.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design/query/346/250/241/345/235/227/350/256/276/350/256/241.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/225/260/346/215/256/346/237/245/350/257/242/346/234/215/345/212/241/345/274/200/345/217/221/350/257/264/346/230/216/346/226/207/346/241/243.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/225/260/346/215/256/351/233/206/345/255/227/346/256/265/346/212/200/350/203/275/347/263/273/347/273/237/346/212/200/346/234/257/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/345/215/217/350/256/256/344/270/216/346/217/222/344/273/266/346/263/250/345/206/214/346/216/245/345/217/243/350/256/276/350/256/241.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/345/256/211/350/243/205/345/210/206/345/261/202/344/270/216/351/273/230/350/256/244/345/217/221/350/241/214/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/346/217/222/344/273/266/345/214/226/344/270/216/345/244/232/345/233/242/351/230/237/346/262/273/347/220/206/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//346/250/241/345/235/227/347/233/256/345/275/225/345/210/206/345/261/202/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/design//351/200/232/347/224/250Skill/347/211/210/346/234/254/346/216/247/345/210/266/346/236/266/346/236/204.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide/MCP/345/267/245/345/205/267/344/275/277/347/224/250/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide/Skills/345/237/272/347/241/200/345/274/200/345/217/221/345/237/271/350/256/255/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide//344/273/216/351/233/266/345/256/211/350/243/205/351/203/250/347/275/262/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide//350/256/244/350/257/201/346/250/241/345/235/227/344/275/277/347/224/250/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/guide//350/267/250/345/271/263/345/217/260/345/217/221/345/270/203/345/211/215/346/243/200/346/237/245.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans/2026-04-22-p1-contract-version-governance.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans/MCP/346/234/215/345/212/241/345/256/214/345/226/204/346/225/264/346/224/271/350/256/241/345/210/222/344/271/246.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/211/251/344/275/231/344/273/273/345/212/241.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/217/221/345/270/203/346/243/200/346/237/245/346/270/205/345/215/225.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/345/274/200/345/217/221/350/256/241/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/350/201/224/350/260/203/350/256/260/345/275/225.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//345/217/226/346/225/260/345/272/225/345/272/247/344/270/200/346/234/237/351/252/214/346/224/266/346/211/213/345/206/214.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//350/256/244/350/257/201/346/250/241/345/235/227/345/256/236/346/226/275/350/256/241/345/210/222.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/plans//350/256/244/350/257/201/346/250/241/345/235/227/350/256/276/350/256/241/346/226/271/346/241/210.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/release//345/244/232/345/214/205/345/217/221/345/270/203/344/270/216/350/201/232/345/220/210/345/217/221/350/241/214/347/255/226/347/225/245.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/release//346/211/223/345/214/205/345/217/221/345/270/203/346/214/207/345/215/227.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/01-asin-health-diagnoser.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/02-profit-structure-analyzer.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/03-refund-priority-matrix.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/04-product-attribute-analyzer.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/05-advertising-efficiency-optimizer.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/06-inventory-health-monitor.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/07-ops-perspective-builder.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/08-competitive-intelligence-analyst.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/09-cross-border-product-selector.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/skills/README.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/spec/MCP/346/250/241/345/235/227/346/216/245/345/205/245/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/docs/spec//345/274/200/345/217/221/350/247/204/350/214/203.md" +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/client.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/commands/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/domain/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/parser.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/scraper.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/parser.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/scraping/scraper.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/services/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/services/manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/amazon/transport/client.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/commands/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/config.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/core/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/core/device_flow.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/core/system_registry.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/core/token_manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/storage/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/storage/credential_store.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/auth/storage/crypto.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/config.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/auth_middleware.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/context.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/credential_cache.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/server.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/amazon.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/auth.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/chatgpt.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/helpers.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/tools/skills.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/mcp/user_store.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/client.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/domain/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/services/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/query/transport/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/shared/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/shared/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/shared/http.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/shared/logging.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/commands/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/detector.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/discovery/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/discovery/detector.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/domain/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/domain/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/domain/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/exceptions.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/models.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/services/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/services/manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/sync/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/sync/updater.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-amazon/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-amazon/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-amazon/references/cli.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-amazon/references/mcp.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-auth/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-auth/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-auth/references/cli.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-auth/references/mcp.md +0 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-competitive-intelligence-analyst/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-competitive-intelligence-analyst/references}/porter_template.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/dataset_fields.csv +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/datasets.csv +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/data/query_metadata.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_mcp.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/core.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/excel_export.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/excel_export_mcp.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/query.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/query_mcp.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/search.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/updater.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-dataset-query/scripts/updater_mcp.py +0 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-inventory-health-monitor/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-inventory-health-monitor/references}/inventory_thresholds.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-mcp/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-mcp/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.25/opscli/skills/templates/ops-profit-structure-analyzer/reference → aukeys_opscli-0.0.26/opscli/skills/templates/ops-profit-structure-analyzer/references}/four_actions_template.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/SKILL_MCP.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/templates/ops-skills/data/VERSION.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/skills/updater.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/opscli/version.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-payload-sample-shell.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-payload-sample.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-scrape-sample-shell.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-scrape-sample.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-search-sample-shell.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/amazon-search-sample.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/maintenance/host-onboard-smoke-20260423-082206.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/maintenance/host-onboard-smoke-20260423-082206.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/code_analysis.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/config_patterns/config_patterns.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/config_patterns/config_patterns.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.dot +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/dependency_graph.mmd +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/dependencies/statistics.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/documentation_index.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/extraction_summary.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/output/opscli-codebase/references/documentation/templates/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/.claude-plugin/plugin.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/README.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-claude/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/.codex-plugin/plugin.json +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/README.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/skills/super-dev/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/plugins/super-dev-codex/skills/super-dev-seeai/SKILL.md +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/publish.sh +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/scripts/release_preflight.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/amazon/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/amazon/test_cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/amazon/test_client.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/amazon/test_manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/amazon/test_parser.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/test_credential_store.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/test_crypto.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/test_device_flow.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/test_system_registry.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/auth/test_token_manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/benchmark_credential_read.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/conftest.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_context.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_credential_cache.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_multi_user_isolation.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_tools.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/mcp/test_user_store.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/shared/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/shared/test_shared.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/__init__.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/test_cli.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/test_detector.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/test_manager.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/test_ops_dataset_query_search.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/skills/test_updater.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/test_session_sharing.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/tests/test_version_consistency.py +0 -0
- {aukeys_opscli-0.0.25 → aukeys_opscli-0.0.26}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aukeys-opscli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.26
|
|
4
4
|
Summary: Aukeys 运营 CLI 工具集
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: cryptography>=38
|
|
@@ -827,6 +827,42 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
827
827
|
|
|
828
828
|
> 每个 query 独立执行,失败不影响其他 query;合并结果中每行附加 `_query_index` 标识来源。
|
|
829
829
|
|
|
830
|
+
### `opscli query chart-doc` - 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
# 生成图表 API 调用文档
|
|
834
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
835
|
+
|
|
836
|
+
# 将 Markdown 文档写入指定文件
|
|
837
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
| 参数 | 必需 | 说明 |
|
|
841
|
+
|------|------|------|
|
|
842
|
+
| `--uuid` | 是 | 图表 UUID(chart_uuid) |
|
|
843
|
+
| `--output` | 否 | 将 Markdown 文档写入指定文件路径 |
|
|
844
|
+
| `--pretty` | 否 | 格式化 JSON 输出 |
|
|
845
|
+
|
|
846
|
+
**返回结构**:
|
|
847
|
+
|
|
848
|
+
```json
|
|
849
|
+
{
|
|
850
|
+
"success": true,
|
|
851
|
+
"command": "query chart-doc",
|
|
852
|
+
"data": {
|
|
853
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
854
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
855
|
+
"query_count": 3,
|
|
856
|
+
"dataset_aliases": ["sales_order_d"],
|
|
857
|
+
"dataset_count": 1,
|
|
858
|
+
"output_path": "/path/to/chart-doc.md"
|
|
859
|
+
},
|
|
860
|
+
"error": null
|
|
861
|
+
}
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
> 生成的 Markdown 文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
865
|
+
|
|
830
866
|
## Skills 使用
|
|
831
867
|
|
|
832
868
|
### `opscli skills list`
|
|
@@ -809,6 +809,42 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
809
809
|
|
|
810
810
|
> 每个 query 独立执行,失败不影响其他 query;合并结果中每行附加 `_query_index` 标识来源。
|
|
811
811
|
|
|
812
|
+
### `opscli query chart-doc` - 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
813
|
+
|
|
814
|
+
```bash
|
|
815
|
+
# 生成图表 API 调用文档
|
|
816
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
817
|
+
|
|
818
|
+
# 将 Markdown 文档写入指定文件
|
|
819
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
| 参数 | 必需 | 说明 |
|
|
823
|
+
|------|------|------|
|
|
824
|
+
| `--uuid` | 是 | 图表 UUID(chart_uuid) |
|
|
825
|
+
| `--output` | 否 | 将 Markdown 文档写入指定文件路径 |
|
|
826
|
+
| `--pretty` | 否 | 格式化 JSON 输出 |
|
|
827
|
+
|
|
828
|
+
**返回结构**:
|
|
829
|
+
|
|
830
|
+
```json
|
|
831
|
+
{
|
|
832
|
+
"success": true,
|
|
833
|
+
"command": "query chart-doc",
|
|
834
|
+
"data": {
|
|
835
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
836
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
837
|
+
"query_count": 3,
|
|
838
|
+
"dataset_aliases": ["sales_order_d"],
|
|
839
|
+
"dataset_count": 1,
|
|
840
|
+
"output_path": "/path/to/chart-doc.md"
|
|
841
|
+
},
|
|
842
|
+
"error": null
|
|
843
|
+
}
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
> 生成的 Markdown 文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
847
|
+
|
|
812
848
|
## Skills 使用
|
|
813
849
|
|
|
814
850
|
### `opscli skills list`
|
|
@@ -315,6 +315,53 @@ query_build_and_run(
|
|
|
315
315
|
|
|
316
316
|
---
|
|
317
317
|
|
|
318
|
+
#### `query_chart_doc`
|
|
319
|
+
|
|
320
|
+
通过 chart_uuid 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。**需要认证**。
|
|
321
|
+
|
|
322
|
+
文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。适合 Skill / AI Agent 直接消费。
|
|
323
|
+
|
|
324
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
325
|
+
|------|------|------|------|
|
|
326
|
+
| `chart_uuid` | string | 是 | 图表唯一标识 |
|
|
327
|
+
| `output_path` | string | 否 | 将 Markdown 写入指定文件路径 |
|
|
328
|
+
| `session_id` | string | **是** | 用户授权后获得的 session_id |
|
|
329
|
+
| `jwt` | string | 否 | JWT,不传则自动用 session_id 换取 |
|
|
330
|
+
|
|
331
|
+
**返回示例:**
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"success": true,
|
|
335
|
+
"data": {
|
|
336
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
337
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
338
|
+
"query_count": 3,
|
|
339
|
+
"dataset_aliases": ["sales_order_d"],
|
|
340
|
+
"dataset_count": 1,
|
|
341
|
+
"output_path": "/path/to/chart-doc.md"
|
|
342
|
+
},
|
|
343
|
+
"error": null
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**典型用法:**
|
|
348
|
+
```python
|
|
349
|
+
# 生成图表文档(Markdown 在返回数据中)
|
|
350
|
+
query_chart_doc(
|
|
351
|
+
chart_uuid="32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
352
|
+
session_id="860b0636485b5188a2b9b4ed5210e736",
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
# 生成文档并写入本地文件
|
|
356
|
+
query_chart_doc(
|
|
357
|
+
chart_uuid="32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
358
|
+
output_path="/tmp/chart-doc.md",
|
|
359
|
+
session_id="860b0636485b5188a2b9b4ed5210e736",
|
|
360
|
+
)
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
318
365
|
### 认证(auth_*)
|
|
319
366
|
|
|
320
367
|
#### `auth_login_start`
|
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# 待归档变更记录
|
|
2
2
|
|
|
3
|
+
## 2026-04-29 opscli - 实现 Skill 委托模式,防止 AI 猜测字段名
|
|
4
|
+
|
|
5
|
+
**变更原因**:测试调用记录显示,AI 在执行数据集查询时经常直接猜测字段名(如 `ds_pdTYjvLRCadv.asin`),导致 `INVALID_PAYLOAD` 错误。需要显式声明业务逻辑层 Skill 应将数据查询工作委托给 `ops-dataset-query` Skill,由其负责字段发现、metadata 验证和 payload 构造。
|
|
6
|
+
|
|
7
|
+
**改动点**:
|
|
8
|
+
- 为 9 个数据查询类 Skill 的 `SKILL.md` 添加"## 技能委托声明"部分
|
|
9
|
+
- ops-asin-health-diagnoser(之前已完成)
|
|
10
|
+
- ops-competitive-intelligence-analyst
|
|
11
|
+
- ops-cross-border-product-selector
|
|
12
|
+
- ops-advertising-efficiency-optimizer
|
|
13
|
+
- ops-inventory-health-monitor
|
|
14
|
+
- ops-product-attribute-analyzer
|
|
15
|
+
- ops-perspective-builder
|
|
16
|
+
- ops-profit-structure-analyzer
|
|
17
|
+
- ops-refund-priority-matrix
|
|
18
|
+
- 每个委托声明包含:
|
|
19
|
+
- 责任边界表(数据查询层 → ops-dataset-query,业务逻辑层 → 当前 Skill)
|
|
20
|
+
- 委托触发规则表(5 场景,标注 ✅ 必须委托 / ❌ 可直接执行)
|
|
21
|
+
- 委托调用方式示例(→ 调用 / ← 返回)
|
|
22
|
+
- 反例警告(禁止直接猜测字段名)
|
|
23
|
+
- 插入位置统一为"阅读入口"和"使用原则"之间
|
|
24
|
+
|
|
25
|
+
**验证结果**:
|
|
26
|
+
- `grep -l "## 技能委托声明" opscli/skills/templates/ops-*/SKILL.md | wc -l` 返回 9
|
|
27
|
+
- 所有 9 个数据查询类 Skill 已包含完整委托声明
|
|
28
|
+
|
|
29
|
+
**影响范围**:
|
|
30
|
+
- AI Agent 在调用这些 Skill 时,会优先切换到 ops-dataset-query 进行字段发现
|
|
31
|
+
- 减少 INVALID_PAYLOAD 错误,避免额外的往返修复
|
|
32
|
+
- 不影响 CLI 模式用户直接使用 opscli query 命令
|
|
33
|
+
|
|
34
|
+
**回滚方式**:
|
|
35
|
+
- 删除各 SKILL.md 中"## 技能委托声明"部分(从 `---` 到下一个 `---`)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
3
39
|
## 2026-04-27 opscli - 新增 chart_analyze_mcp.py
|
|
4
40
|
|
|
5
41
|
**变更原因**:为 ops-dataset-query Skill 新增 MCP 无状态模式的图表异常检测脚本,原 `chart_analyze.py` 依赖 `opscli` CLI(subprocess),无法在纯 MCP 环境中使用。
|
|
@@ -172,3 +208,76 @@
|
|
|
172
208
|
**回滚方式**:删除 CLAUDE.md 中【铁律19】至【铁律22】段落
|
|
173
209
|
|
|
174
210
|
---
|
|
211
|
+
|
|
212
|
+
## 2026-04-29 auto-scheduler + opscli - 图表查询接口增加过滤字段及新增 chart-doc 指令
|
|
213
|
+
|
|
214
|
+
**变更原因**:
|
|
215
|
+
1. 服务端 `latest-request-data` 接口需要返回当前图表数据集支持的过滤条件字段,供 opscli 侧了解可用 WHERE 条件
|
|
216
|
+
2. opscli 侧需要在图表查询结果中透传过滤字段信息
|
|
217
|
+
3. 新增 `opscli query chart-doc` 指令,支持通过 chart_uuid 自动生成完整 API 调用 Markdown 文档
|
|
218
|
+
|
|
219
|
+
**改动点**:
|
|
220
|
+
|
|
221
|
+
### 服务端(auto-scheduler)
|
|
222
|
+
- 修改 `vendor/aukey/data-metrics/src/Http/Controllers/CliQueryApiController.php`
|
|
223
|
+
- 引入 `Aukey\DataMetrics\Models\SelectColumnRelation`
|
|
224
|
+
- `latestRequestData` 方法新增逻辑:通过 `query.from.alias` → `dm_tables.dataset_alias` → `dm_select_column_relations.dataset_alias` 查询启用的过滤字段
|
|
225
|
+
- 返回结构扩展:每个 query item 新增 `filterable_fields` 字段(含 `column_name`、`verbose_name`、`source_column_name`)
|
|
226
|
+
- 按 `dataset_alias` 缓存避免重复查询
|
|
227
|
+
|
|
228
|
+
### opscli 侧
|
|
229
|
+
- 修改 `opscli/query/services/manager.py`
|
|
230
|
+
- `run_chart_queries` 方法透传 `filterable_fields` 和 `query_structure` 到每个 query 结果中
|
|
231
|
+
- 新增 `generate_chart_doc(chart_uuid)` 方法:生成完整 Markdown 文档,含数据集概览、过滤字段表、查询结构说明、API 调用顺序、Payload 示例、WHERE 条件构建指南
|
|
232
|
+
- 示例中敏感字段(`table`/`permission`)使用占位符,不返回 `userEmail`
|
|
233
|
+
- 修改 `opscli/query/commands/cli.py`
|
|
234
|
+
- 新增 `chart-doc` 子命令:`opscli query chart-doc --uuid <chart_uuid> [--output <file>] [--pretty]`
|
|
235
|
+
- 支持将 Markdown 文档直接写入文件
|
|
236
|
+
|
|
237
|
+
**验证结果**:
|
|
238
|
+
- `python -m py_compile opscli/query/services/manager.py opscli/query/commands/cli.py` 语法检查通过
|
|
239
|
+
- 服务端 PHP 文件未引入语法错误(新增 import + 扩展已有循环逻辑)
|
|
240
|
+
|
|
241
|
+
**影响范围**:
|
|
242
|
+
- 服务端 `latest-request-data` 接口返回结构向后兼容扩展(新增字段)
|
|
243
|
+
- opscli `query chart` 和 `query chart-run` 返回的每个 query 中新增 `filterable_fields` 和 `query_structure`
|
|
244
|
+
- 新增 `query chart-doc` 命令,不影响现有命令
|
|
245
|
+
|
|
246
|
+
**回滚方式**:
|
|
247
|
+
- 服务端:回退 `CliQueryApiController.php` 的 `latestRequestData` 方法修改
|
|
248
|
+
- opscli:回退 `manager.py` 中 `run_chart_queries` 和 `generate_chart_doc`,回退 `cli.py` 中 `chart_doc` 命令
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 2026-04-29 query - 优化 chart-doc 生成文档结构
|
|
253
|
+
|
|
254
|
+
**变更原因**:生成的文档存在三个缺陷:可过滤字段在多 Query 时重复渲染浪费 token;7.1 字段映射表列数达 8 列宽表 AI 不友好;缺少字段命名约定说明导致 AI 无法处理边界场景
|
|
255
|
+
**改动点**:
|
|
256
|
+
1. `opscli/query/services/manager.py - generate_chart_doc`:
|
|
257
|
+
- §2 新增"字段命名约定"小节(§2.2),说明 query_alias / global_alias / origin_name / expr 的格式规律、生成方式和使用场景,及公式字段边界说明
|
|
258
|
+
- §7.1 输出字段映射由 1 张 8 列宽表拆分为 2 张 4 列表(表A字段语义 + 表B字段引用),以 field_name 作连接键,expr 列去掉并在表B注释中说明
|
|
259
|
+
- §7.3 可过滤字段新增去重逻辑:对比当前 Query 与所属数据集(§5.2)的 filterable_fields 集合,完全相同时只输出一行引用语句,不同才完整渲染
|
|
260
|
+
2. `tests/query/test_manager.py`:更新两个受影响的测试断言匹配新双表格式和去重引用格式
|
|
261
|
+
**验证结果**:pytest tests/query/ 39 passed
|
|
262
|
+
**影响范围**:opscli query chart-doc 命令输出的 Markdown 文档结构;不影响 API 调用逻辑
|
|
263
|
+
**回滚方式**:git revert 此次改动,恢复 manager.py 和 test_manager.py 对应段落
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 2026-04-29 skills/templates - 精简所有 Skill 的 references 文档
|
|
267
|
+
|
|
268
|
+
**变更原因**:`data-query-service-dev-guide.md`(1173行)在 9 个业务 Skill 中存在完全相同的 10 份副本,占每个 Skill 文档总量的 60-75%;其中大量章节(多次查询、MOY/ACC/PPT、缓存、PHP 伪代码)对 Skill 执行无用,造成 AI 上下文浪费和维护困难
|
|
269
|
+
|
|
270
|
+
**改动点**:
|
|
271
|
+
1. 新建 `query-essential-guide.md`(149行):从完整 dev-guide 中提取 Skill 真正需要的内容(WHERE 操作符、SELECT 格式、日期规范、dataComparison、错误码),复制到 9 个业务 Skill 的 references/
|
|
272
|
+
2. 删除 9 个业务 Skill 中的 `data-query-service-dev-guide.md`,保留 `ops-dataset-query/references/` 中的唯一完整版
|
|
273
|
+
3. 精简 `ops-asin-health-diagnoser/references/dataset_fields_mapping.md`(134行→65行):去掉静态 payload 模板,保留数据集索引 + 核心字段业务语义 + chart-doc 使用指引
|
|
274
|
+
4. 更新 9 个 Skill 的 `SKILL.md`、`references/cli.md`、`references/mcp.md` 中的文件名引用(data-query-service-dev-guide → query-essential-guide)
|
|
275
|
+
|
|
276
|
+
**验证结果**:
|
|
277
|
+
- dev-guide 残留检查通过(9 个业务 Skill 均已删除)
|
|
278
|
+
- query-essential-guide 分布:9 个 Skill 均已到位
|
|
279
|
+
- 各 Skill 文档总行数:平均从 ~1800 行降至 ~737 行,减少约 59%
|
|
280
|
+
|
|
281
|
+
**影响范围**:所有业务类 Skill 的 references 目录结构;ops-dataset-query 不受影响
|
|
282
|
+
**回滚方式**:从 ops-dataset-query/references/data-query-service-dev-guide.md 重新 cp 到各 Skill,删除 query-essential-guide.md,恢复文件名引用
|
|
283
|
+
---
|
|
@@ -39,7 +39,8 @@ opscli
|
|
|
39
39
|
│ ├── metadata
|
|
40
40
|
│ ├── run
|
|
41
41
|
│ ├── build
|
|
42
|
-
│
|
|
42
|
+
│ ├── chart
|
|
43
|
+
│ └── chart-doc
|
|
43
44
|
└── skills
|
|
44
45
|
├── list
|
|
45
46
|
├── install
|
|
@@ -632,6 +633,66 @@ opscli query chart --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --run --dry-run -
|
|
|
632
633
|
|
|
633
634
|
---
|
|
634
635
|
|
|
636
|
+
---
|
|
637
|
+
|
|
638
|
+
### 6.5 `opscli query chart-doc`
|
|
639
|
+
|
|
640
|
+
通过 `chart_uuid` 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。
|
|
641
|
+
|
|
642
|
+
**用法**
|
|
643
|
+
|
|
644
|
+
```bash
|
|
645
|
+
opscli query chart-doc --uuid <chart_uuid> [--output <file>] [--pretty]
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
**参数**
|
|
649
|
+
|
|
650
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
651
|
+
| --- | --- | --- | --- |
|
|
652
|
+
| `--uuid` | 是 | - | 图表 UUID(chart_uuid) |
|
|
653
|
+
| `--output` | 否 | - | 将 Markdown 文档写入指定文件路径 |
|
|
654
|
+
| `--pretty` | 否 | `false` | 美化 JSON 输出 |
|
|
655
|
+
|
|
656
|
+
**说明**
|
|
657
|
+
|
|
658
|
+
- 该命令通过 `chart_uuid` 获取图表的查询结构,自动生成一份完整 Markdown 文档。
|
|
659
|
+
- 生成的文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、字段明细表、过滤规则、查询拆解与样例。
|
|
660
|
+
- 使用 `--output` 可将 Markdown 内容直接写入文件,方便保存和分发。
|
|
661
|
+
|
|
662
|
+
**示例**
|
|
663
|
+
|
|
664
|
+
生成文档并在终端查看:
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --pretty
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
将文档写入文件:
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
opscli query chart-doc --uuid 32f660fd-f62a-45c4-a443-e21f2edb0779 --output chart-doc.md --pretty
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**返回结构**
|
|
677
|
+
|
|
678
|
+
```json
|
|
679
|
+
{
|
|
680
|
+
"success": true,
|
|
681
|
+
"command": "query chart-doc",
|
|
682
|
+
"data": {
|
|
683
|
+
"chart_uuid": "32f660fd-f62a-45c4-a443-e21f2edb0779",
|
|
684
|
+
"markdown": "# 图表查询 API 开发文档\n...",
|
|
685
|
+
"query_count": 3,
|
|
686
|
+
"dataset_aliases": ["sales_order_d"],
|
|
687
|
+
"dataset_count": 1,
|
|
688
|
+
"output_path": "/path/to/chart-doc.md"
|
|
689
|
+
},
|
|
690
|
+
"error": null
|
|
691
|
+
}
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
---
|
|
695
|
+
|
|
635
696
|
### 6.3 `opscli query build`
|
|
636
697
|
|
|
637
698
|
基于简化参数构造标准 query payload;也可以直接执行。
|
|
@@ -948,5 +1009,5 @@ opscli skills upgrade ops-dataset-query --pretty
|
|
|
948
1009
|
| Token | `opscli auth token status`、`get`、`check`、`refresh` |
|
|
949
1010
|
| 系统管理 | `opscli auth system list`、`sync`、`add`、`remove` |
|
|
950
1011
|
| Amazon | `opscli amazon scrape`、`payload`、`search`、`schema`、`history` |
|
|
951
|
-
| 查询 | `opscli query metadata`、`run`、`build`、`chart` |
|
|
1012
|
+
| 查询 | `opscli query metadata`、`run`、`build`、`chart`、`chart-doc` |
|
|
952
1013
|
| Skills | `opscli skills list`、`install`、`status`、`upgrade` |
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
- query_run — 读取本地 payload 文件并执行查询
|
|
7
7
|
- query_build_and_run — 构造 payload 并立即执行,一步返回结果
|
|
8
8
|
- query_chart — 通过 chart_uuid 获取/执行图表查询
|
|
9
|
+
- query_chart_doc — 通过 chart_uuid 生成图表 API 调用 Markdown 文档
|
|
9
10
|
|
|
10
11
|
所有工具函数定义在模块级,可直接导入调用(测试友好)。
|
|
11
12
|
调用 register(mcp) 将以上工具批量注册到指定 MCP 实例。
|
|
@@ -218,8 +219,47 @@ async def query_chart(
|
|
|
218
219
|
return _ok(result)
|
|
219
220
|
else:
|
|
220
221
|
# 仅获取图表查询结构,不执行
|
|
221
|
-
|
|
222
|
-
return _ok(
|
|
222
|
+
chart_bundle = manager.fetch_chart_bundle(chart_uuid)
|
|
223
|
+
return _ok(chart_bundle)
|
|
224
|
+
except Exception as exc:
|
|
225
|
+
return _err(exc)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
async def query_chart_doc(
|
|
229
|
+
chart_uuid: str,
|
|
230
|
+
output_path: str | None = None,
|
|
231
|
+
session_id: str | None = None,
|
|
232
|
+
jwt: str | None = None,
|
|
233
|
+
) -> dict:
|
|
234
|
+
"""通过 chart_uuid 生成图表 API 调用 Markdown 文档,包含查询结构、字段映射、过滤规则与样例。
|
|
235
|
+
|
|
236
|
+
生成的文档包含七大章节:使用方式、关键术语、图表概览、API 调用流程、
|
|
237
|
+
字段明细表、过滤规则、查询拆解与样例。适合 Skill / AI Agent 消费。
|
|
238
|
+
|
|
239
|
+
如果未提供 session_id / jwt,会自动尝试从本地加载已保存的凭据。
|
|
240
|
+
|
|
241
|
+
Args:
|
|
242
|
+
chart_uuid: 图表唯一标识
|
|
243
|
+
output_path: 可选,将 Markdown 写入指定文件路径
|
|
244
|
+
session_id: 可选,OAuth 授权后的 Session ID(为空则自动加载本地保存的)
|
|
245
|
+
jwt: 可选,已有 JWT(为空则自动加载本地缓存的)
|
|
246
|
+
"""
|
|
247
|
+
from opscli.mcp.tools.helpers import _get_auth_pair
|
|
248
|
+
|
|
249
|
+
sid, jw = _get_auth_pair("ops", session_id, jwt)
|
|
250
|
+
if not sid:
|
|
251
|
+
return _err(ValueError("无 session_id:请完成授权登录,或传入有效的 session_id"))
|
|
252
|
+
manager = _query_manager(jwt=jw, session_id=sid)
|
|
253
|
+
try:
|
|
254
|
+
result = manager.generate_chart_doc(chart_uuid=chart_uuid)
|
|
255
|
+
if output_path:
|
|
256
|
+
from pathlib import Path
|
|
257
|
+
|
|
258
|
+
p = Path(output_path).expanduser()
|
|
259
|
+
p.parent.mkdir(parents=True, exist_ok=True)
|
|
260
|
+
p.write_text(result["markdown"], encoding="utf-8")
|
|
261
|
+
result["output_path"] = str(p)
|
|
262
|
+
return _ok(result)
|
|
223
263
|
except Exception as exc:
|
|
224
264
|
return _err(exc)
|
|
225
265
|
|
|
@@ -231,6 +271,7 @@ _ALL_TOOLS = [
|
|
|
231
271
|
query_run,
|
|
232
272
|
query_build_and_run,
|
|
233
273
|
query_chart,
|
|
274
|
+
query_chart_doc,
|
|
234
275
|
]
|
|
235
276
|
|
|
236
277
|
|
|
@@ -102,14 +102,11 @@ def chart(
|
|
|
102
102
|
"error": None,
|
|
103
103
|
}
|
|
104
104
|
else:
|
|
105
|
-
|
|
105
|
+
chart_bundle = manager.fetch_chart_bundle(uuid)
|
|
106
106
|
payload = {
|
|
107
107
|
"success": True,
|
|
108
108
|
"command": "query chart",
|
|
109
|
-
"data":
|
|
110
|
-
"chart_uuid": uuid,
|
|
111
|
-
"queries": chart_items,
|
|
112
|
-
},
|
|
109
|
+
"data": chart_bundle,
|
|
113
110
|
"error": None,
|
|
114
111
|
}
|
|
115
112
|
except Exception as exc:
|
|
@@ -119,6 +116,38 @@ def chart(
|
|
|
119
116
|
_emit(payload, pretty)
|
|
120
117
|
|
|
121
118
|
|
|
119
|
+
@app.command("chart-doc")
|
|
120
|
+
def chart_doc(
|
|
121
|
+
uuid: str = typer.Option(..., "--uuid", help="图表 UUID(chart_uuid)"),
|
|
122
|
+
output: str | None = typer.Option(None, "--output", help="将 Markdown 文档写入指定文件路径"),
|
|
123
|
+
pretty: bool = typer.Option(False, "--pretty", help="格式化输出 JSON 包装体"),
|
|
124
|
+
):
|
|
125
|
+
"""通过 chart_uuid 生成图表 API 调用 Markdown 文档。"""
|
|
126
|
+
manager = QueryManager()
|
|
127
|
+
try:
|
|
128
|
+
result = manager.generate_chart_doc(chart_uuid=uuid)
|
|
129
|
+
|
|
130
|
+
# 如果指定了输出文件,将 Markdown 写入文件
|
|
131
|
+
if output:
|
|
132
|
+
from pathlib import Path
|
|
133
|
+
output_path = Path(output).expanduser()
|
|
134
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
135
|
+
output_path.write_text(result["markdown"], encoding="utf-8")
|
|
136
|
+
result["output_path"] = str(output_path)
|
|
137
|
+
|
|
138
|
+
payload = {
|
|
139
|
+
"success": True,
|
|
140
|
+
"command": "query chart-doc",
|
|
141
|
+
"data": result,
|
|
142
|
+
"error": None,
|
|
143
|
+
}
|
|
144
|
+
except Exception as exc:
|
|
145
|
+
_emit(_error_payload("query chart-doc", exc), pretty)
|
|
146
|
+
raise typer.Exit(1)
|
|
147
|
+
|
|
148
|
+
_emit(payload, pretty)
|
|
149
|
+
|
|
150
|
+
|
|
122
151
|
@app.command("build")
|
|
123
152
|
def build(
|
|
124
153
|
dataset: str | None = typer.Option(None, "--dataset", help="dataset_alias"),
|