aukeys-opscli 0.0.74__tar.gz → 0.0.76__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.
Files changed (180) hide show
  1. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/PKG-INFO +1 -1
  2. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/PKG-INFO +1 -1
  3. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/SOURCES.txt +5 -0
  4. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/domain/models.c +36 -35
  5. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/services/manager.c +18 -18
  6. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/QUERY_SPEC.md +35 -27
  7. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/SKILL.md +24 -3
  8. aukeys_opscli-0.0.76/opscli/skills/templates/ops-dataset-query/references/ask-user-question-guide.md +192 -0
  9. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/cli.md +4 -2
  10. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/mcp.md +4 -2
  11. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/rules.md +57 -23
  12. aukeys_opscli-0.0.76/opscli/telemetry/__init__.py +21 -0
  13. aukeys_opscli-0.0.76/opscli/telemetry/collector.c +9072 -0
  14. aukeys_opscli-0.0.76/opscli/telemetry/device_id.c +7991 -0
  15. aukeys_opscli-0.0.76/opscli/telemetry/reporter.c +9065 -0
  16. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/version.c +7 -7
  17. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/pyproject.toml +1 -1
  18. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/MANIFEST.in +0 -0
  19. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/README.md +0 -0
  20. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/dependency_links.txt +0 -0
  21. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/entry_points.txt +0 -0
  22. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/requires.txt +0 -0
  23. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/aukeys_opscli.egg-info/top_level.txt +0 -0
  24. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/__init__.py +0 -0
  25. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/__init__.py +0 -0
  26. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/client.c +0 -0
  27. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/commands/__init__.py +0 -0
  28. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/domain/__init__.py +0 -0
  29. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/domain/exceptions.c +0 -0
  30. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/domain/models.c +0 -0
  31. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/exceptions.c +0 -0
  32. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/manager.c +0 -0
  33. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/models.c +0 -0
  34. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/parser.c +0 -0
  35. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/scraper.c +0 -0
  36. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/scraping/__init__.py +0 -0
  37. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/scraping/parser.c +0 -0
  38. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/scraping/scraper.c +0 -0
  39. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/services/__init__.py +0 -0
  40. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/services/manager.c +0 -0
  41. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/transport/__init__.py +0 -0
  42. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon/transport/client.c +0 -0
  43. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/__init__.py +0 -0
  44. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/commands/__init__.py +0 -0
  45. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/domain/__init__.py +0 -0
  46. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/domain/exceptions.c +0 -0
  47. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/domain/models.c +0 -0
  48. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/runtime/__init__.py +0 -0
  49. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/runtime/country_map.c +0 -0
  50. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/__init__.py +0 -0
  51. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/answer_report_formatter.c +0 -0
  52. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/browser.c +0 -0
  53. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/manager.c +0 -0
  54. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/parser.c +0 -0
  55. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/question_bank.c +0 -0
  56. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/services/replay.c +0 -0
  57. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/transport/__init__.py +0 -0
  58. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/amazon_rufus/transport/client.c +0 -0
  59. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/__init__.py +0 -0
  60. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/commands/__init__.py +0 -0
  61. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/config.c +0 -0
  62. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/core/__init__.py +0 -0
  63. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/core/device_flow.c +0 -0
  64. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/core/system_registry.c +0 -0
  65. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/core/token_manager.c +0 -0
  66. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/domain/__init__.py +0 -0
  67. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/domain/exceptions.c +0 -0
  68. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/exceptions.c +0 -0
  69. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/storage/__init__.py +0 -0
  70. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/storage/credential_store.c +0 -0
  71. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/auth/storage/crypto.c +0 -0
  72. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/config.c +0 -0
  73. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/__init__.py +0 -0
  74. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/client.c +0 -0
  75. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/commands/__init__.py +0 -0
  76. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/domain/__init__.py +0 -0
  77. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/domain/exceptions.c +0 -0
  78. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/exceptions.c +0 -0
  79. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/manager.c +0 -0
  80. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/services/__init__.py +0 -0
  81. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/services/manager.c +0 -0
  82. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/transport/__init__.py +0 -0
  83. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/feedback/transport/client.c +0 -0
  84. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/__init__.py +0 -0
  85. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/auth_middleware.c +0 -0
  86. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/context.c +0 -0
  87. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/credential_cache.c +0 -0
  88. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/key_based_storage.c +0 -0
  89. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/tools/__init__.py +0 -0
  90. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/mcp/user_store.c +0 -0
  91. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/__init__.py +0 -0
  92. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/client.c +0 -0
  93. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/commands/__init__.py +0 -0
  94. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/domain/__init__.py +0 -0
  95. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/domain/exceptions.c +0 -0
  96. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/domain/models.c +0 -0
  97. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/exceptions.c +0 -0
  98. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/manager.c +0 -0
  99. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/models.c +0 -0
  100. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/services/__init__.py +0 -0
  101. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/transport/__init__.py +0 -0
  102. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/query/transport/client.c +0 -0
  103. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/__init__.py +0 -0
  104. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/commands/__init__.py +0 -0
  105. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/domain/__init__.py +0 -0
  106. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/domain/exceptions.c +0 -0
  107. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/domain/models.c +0 -0
  108. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/scraping/__init__.py +0 -0
  109. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/scraping/api_recorder.c +0 -0
  110. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/scraping/archiver.c +0 -0
  111. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/scraping/captcha.c +0 -0
  112. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/scraping/scraper.c +0 -0
  113. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/services/__init__.py +0 -0
  114. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/services/account_store.c +0 -0
  115. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/seller_sprite/services/manager.c +0 -0
  116. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/shared/__init__.py +0 -0
  117. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/shared/exceptions.c +0 -0
  118. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/shared/http.c +0 -0
  119. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/shared/logging.c +0 -0
  120. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/shared/update_check.c +0 -0
  121. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/__init__.py +0 -0
  122. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/commands/__init__.py +0 -0
  123. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/detector.c +0 -0
  124. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/discovery/__init__.py +0 -0
  125. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/discovery/detector.c +0 -0
  126. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/domain/__init__.py +0 -0
  127. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/domain/exceptions.c +0 -0
  128. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/domain/models.c +0 -0
  129. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/exceptions.c +0 -0
  130. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/link/__init__.py +0 -0
  131. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/link/linker.c +0 -0
  132. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/manager.c +0 -0
  133. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/models.c +0 -0
  134. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/packaging.c +0 -0
  135. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/services/__init__.py +0 -0
  136. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/services/manager.c +0 -0
  137. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/services/rule_injector.c +0 -0
  138. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/sync/__init__.py +0 -0
  139. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/sync/updater.c +0 -0
  140. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/manifest.json +0 -0
  141. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-auth/SKILL.md +0 -0
  142. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-auth/data/VERSION.json +0 -0
  143. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-auth/references/cli.md +0 -0
  144. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-auth/references/mcp.md +0 -0
  145. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/.gitignore +0 -0
  146. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/data/VERSION.json +0 -0
  147. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/data/dataset_catalog.json +0 -0
  148. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/data/dataset_fields.csv +0 -0
  149. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/data/datasets.csv +0 -0
  150. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/data/query_metadata.json +0 -0
  151. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/cli-simple-guide.md +0 -0
  152. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/mcp-simple-guide.md +0 -0
  153. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/references/simple-query-guide.md +0 -0
  154. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze.py +0 -0
  155. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_core.py +0 -0
  156. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_analyze_mcp.py +0 -0
  157. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_data_loader.py +0 -0
  158. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_map.py +0 -0
  159. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_map_core.py +0 -0
  160. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/chart_map_mcp.py +0 -0
  161. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/core.py +0 -0
  162. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/excel_export.py +0 -0
  163. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/excel_export_core.py +0 -0
  164. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/excel_export_mcp.py +0 -0
  165. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/query.py +0 -0
  166. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/search.py +0 -0
  167. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/updater.py +0 -0
  168. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-dataset-query/scripts/updater_mcp.py +0 -0
  169. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-feedback/SKILL.md +0 -0
  170. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-feedback/data/FEEDBACK_RULE.md +0 -0
  171. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-feedback/data/VERSION.json +0 -0
  172. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-feedback/references/cli.md +0 -0
  173. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-feedback/references/mcp.md +0 -0
  174. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-skills/SKILL.md +0 -0
  175. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/templates/ops-skills/data/VERSION.json +0 -0
  176. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/opscli/skills/updater.c +0 -0
  177. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/setup.cfg +0 -0
  178. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/setup.py +0 -0
  179. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/tests/test_session_sharing.py +0 -0
  180. {aukeys_opscli-0.0.74 → aukeys_opscli-0.0.76}/tests/test_version_consistency.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aukeys-opscli
3
- Version: 0.0.74
3
+ Version: 0.0.76
4
4
  Summary: Aukeys 运营 CLI 工具集
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aukeys-opscli
3
- Version: 0.0.74
3
+ Version: 0.0.76
4
4
  Summary: Aukeys 运营 CLI 工具集
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -169,6 +169,7 @@ opscli/skills/templates/ops-dataset-query/data/dataset_catalog.json
169
169
  opscli/skills/templates/ops-dataset-query/data/dataset_fields.csv
170
170
  opscli/skills/templates/ops-dataset-query/data/datasets.csv
171
171
  opscli/skills/templates/ops-dataset-query/data/query_metadata.json
172
+ opscli/skills/templates/ops-dataset-query/references/ask-user-question-guide.md
172
173
  opscli/skills/templates/ops-dataset-query/references/cli-simple-guide.md
173
174
  opscli/skills/templates/ops-dataset-query/references/cli.md
174
175
  opscli/skills/templates/ops-dataset-query/references/mcp-simple-guide.md
@@ -222,5 +223,9 @@ opscli/skills/templates/ops-seller-sprite/SKILL_MCP.md
222
223
  opscli/skills/templates/ops-seller-sprite/data/VERSION.json
223
224
  opscli/skills/templates/ops-skills/SKILL.md
224
225
  opscli/skills/templates/ops-skills/data/VERSION.json
226
+ opscli/telemetry/__init__.py
227
+ opscli/telemetry/collector.c
228
+ opscli/telemetry/device_id.c
229
+ opscli/telemetry/reporter.c
225
230
  tests/test_session_sharing.py
226
231
  tests/test_version_consistency.py
@@ -1885,7 +1885,7 @@ typedef struct {
1885
1885
  PyObject *__pyx_empty_bytes;
1886
1886
  PyObject *__pyx_empty_unicode;
1887
1887
  PyObject *__pyx_tuple[3];
1888
- PyObject *__pyx_string_tab[60];
1888
+ PyObject *__pyx_string_tab[61];
1889
1889
  /* #### Code section: module_state_contents ### */
1890
1890
  /* CodeObjectCache.module_state_decls */
1891
1891
  struct __Pyx_CodeObjectCache __pyx_code_cache;
@@ -1918,7 +1918,7 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati
1918
1918
  #define __pyx_kp_u_ __pyx_string_tab[0]
1919
1919
  #define __pyx_kp_u_array_null_references_only __pyx_string_tab[1]
1920
1920
  #define __pyx_kp_u_array_optional __pyx_string_tab[2]
1921
- #define __pyx_kp_u_bug_feature_data_issue_ux_docs_o __pyx_string_tab[3]
1921
+ #define __pyx_kp_u_bug_feature_data_issue_ux_docs_q __pyx_string_tab[3]
1922
1922
  #define __pyx_kp_u_cli_mcp_skill_api __pyx_string_tab[4]
1923
1923
  #define __pyx_kp_u_low_medium_high_critical __pyx_string_tab[5]
1924
1924
  #define __pyx_kp_u_object_concrete_important_parame __pyx_string_tab[6]
@@ -1964,17 +1964,18 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati
1964
1964
  #define __pyx_n_u_other __pyx_string_tab[46]
1965
1965
  #define __pyx_n_u_payload __pyx_string_tab[47]
1966
1966
  #define __pyx_n_u_qualname __pyx_string_tab[48]
1967
- #define __pyx_n_u_reason __pyx_string_tab[49]
1968
- #define __pyx_n_u_setdefault __pyx_string_tab[50]
1969
- #define __pyx_n_u_severity __pyx_string_tab[51]
1970
- #define __pyx_n_u_skill __pyx_string_tab[52]
1971
- #define __pyx_n_u_source __pyx_string_tab[53]
1972
- #define __pyx_n_u_successful_calls __pyx_string_tab[54]
1973
- #define __pyx_n_u_summary __pyx_string_tab[55]
1974
- #define __pyx_n_u_test __pyx_string_tab[56]
1975
- #define __pyx_n_u_title __pyx_string_tab[57]
1976
- #define __pyx_n_u_tool __pyx_string_tab[58]
1977
- #define __pyx_n_u_ux __pyx_string_tab[59]
1967
+ #define __pyx_n_u_query_result __pyx_string_tab[49]
1968
+ #define __pyx_n_u_reason __pyx_string_tab[50]
1969
+ #define __pyx_n_u_setdefault __pyx_string_tab[51]
1970
+ #define __pyx_n_u_severity __pyx_string_tab[52]
1971
+ #define __pyx_n_u_skill __pyx_string_tab[53]
1972
+ #define __pyx_n_u_source __pyx_string_tab[54]
1973
+ #define __pyx_n_u_successful_calls __pyx_string_tab[55]
1974
+ #define __pyx_n_u_summary __pyx_string_tab[56]
1975
+ #define __pyx_n_u_test __pyx_string_tab[57]
1976
+ #define __pyx_n_u_title __pyx_string_tab[58]
1977
+ #define __pyx_n_u_tool __pyx_string_tab[59]
1978
+ #define __pyx_n_u_ux __pyx_string_tab[60]
1978
1979
  /* #### Code section: module_state_clear ### */
1979
1980
  #if CYTHON_USE_MODULE_STATE
1980
1981
  static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
@@ -1990,7 +1991,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
1990
1991
  __Pyx_State_RemoveModule(NULL);
1991
1992
  #endif
1992
1993
  for (int i=0; i<3; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
1993
- for (int i=0; i<60; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
1994
+ for (int i=0; i<61; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
1994
1995
  /* #### Code section: module_state_clear_contents ### */
1995
1996
  /* #### Code section: module_state_clear_end ### */
1996
1997
  return 0;
@@ -2008,7 +2009,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void
2008
2009
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
2009
2010
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
2010
2011
  for (int i=0; i<3; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
2011
- for (int i=0; i<60; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
2012
+ for (int i=0; i<61; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
2012
2013
  /* #### Code section: module_state_traverse_contents ### */
2013
2014
  /* #### Code section: module_state_traverse_end ### */
2014
2015
  return 0;
@@ -2370,7 +2371,7 @@ __Pyx_RefNannySetupContext("PyInit_models", 0);
2370
2371
  /* "opscli/feedback/domain/models.py":5
2371
2372
  * from __future__ import annotations
2372
2373
  *
2373
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other") # <<<<<<<<<<<<<<
2374
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other") # <<<<<<<<<<<<<<
2374
2375
  * SEVERITIES = ("low", "medium", "high", "critical")
2375
2376
  * SOURCES = ("cli", "mcp", "skill", "api")
2376
2377
  */
@@ -2378,7 +2379,7 @@ __Pyx_RefNannySetupContext("PyInit_models", 0);
2378
2379
 
2379
2380
  /* "opscli/feedback/domain/models.py":6
2380
2381
  *
2381
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other")
2382
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other")
2382
2383
  * SEVERITIES = ("low", "medium", "high", "critical") # <<<<<<<<<<<<<<
2383
2384
  * SOURCES = ("cli", "mcp", "skill", "api")
2384
2385
  *
@@ -2386,7 +2387,7 @@ __Pyx_RefNannySetupContext("PyInit_models", 0);
2386
2387
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SEVERITIES, __pyx_mstate_global->__pyx_tuple[1]) < (0)) __PYX_ERR(0, 6, __pyx_L1_error)
2387
2388
 
2388
2389
  /* "opscli/feedback/domain/models.py":7
2389
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other")
2390
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other")
2390
2391
  * SEVERITIES = ("low", "medium", "high", "critical")
2391
2392
  * SOURCES = ("cli", "mcp", "skill", "api") # <<<<<<<<<<<<<<
2392
2393
  *
@@ -2398,13 +2399,13 @@ __Pyx_RefNannySetupContext("PyInit_models", 0);
2398
2399
  *
2399
2400
  * FEEDBACK_SCHEMA = {
2400
2401
  * "source": "cli|mcp|skill|api", # <<<<<<<<<<<<<<
2401
- * "feedback_type": "bug|feature|data_issue|ux|docs|other",
2402
+ * "feedback_type": "bug|feature|data_issue|ux|docs|query_result|other",
2402
2403
  * "severity": "low|medium|high|critical",
2403
2404
  */
2404
2405
  __pyx_t_2 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
2405
2406
  __Pyx_GOTREF(__pyx_t_2);
2406
2407
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_source, __pyx_mstate_global->__pyx_kp_u_cli_mcp_skill_api) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
2407
- if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_feedback_type, __pyx_mstate_global->__pyx_kp_u_bug_feature_data_issue_ux_docs_o) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
2408
+ if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_feedback_type, __pyx_mstate_global->__pyx_kp_u_bug_feature_data_issue_ux_docs_q) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
2408
2409
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_severity, __pyx_mstate_global->__pyx_kp_u_low_medium_high_critical) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
2409
2410
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_title, __pyx_mstate_global->__pyx_kp_u_string_required_200_chars) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
2410
2411
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_content, __pyx_mstate_global->__pyx_kp_u_string_required) < (0)) __PYX_ERR(0, 10, __pyx_L1_error)
@@ -2518,17 +2519,17 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
2518
2519
  /* "opscli/feedback/domain/models.py":5
2519
2520
  * from __future__ import annotations
2520
2521
  *
2521
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other") # <<<<<<<<<<<<<<
2522
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other") # <<<<<<<<<<<<<<
2522
2523
  * SEVERITIES = ("low", "medium", "high", "critical")
2523
2524
  * SOURCES = ("cli", "mcp", "skill", "api")
2524
2525
  */
2525
- __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(6, __pyx_mstate_global->__pyx_n_u_bug, __pyx_mstate_global->__pyx_n_u_feature, __pyx_mstate_global->__pyx_n_u_data_issue, __pyx_mstate_global->__pyx_n_u_ux, __pyx_mstate_global->__pyx_n_u_docs, __pyx_mstate_global->__pyx_n_u_other); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 5, __pyx_L1_error)
2526
+ __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(7, __pyx_mstate_global->__pyx_n_u_bug, __pyx_mstate_global->__pyx_n_u_feature, __pyx_mstate_global->__pyx_n_u_data_issue, __pyx_mstate_global->__pyx_n_u_ux, __pyx_mstate_global->__pyx_n_u_docs, __pyx_mstate_global->__pyx_n_u_query_result, __pyx_mstate_global->__pyx_n_u_other); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 5, __pyx_L1_error)
2526
2527
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
2527
2528
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);
2528
2529
 
2529
2530
  /* "opscli/feedback/domain/models.py":6
2530
2531
  *
2531
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other")
2532
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other")
2532
2533
  * SEVERITIES = ("low", "medium", "high", "critical") # <<<<<<<<<<<<<<
2533
2534
  * SOURCES = ("cli", "mcp", "skill", "api")
2534
2535
  *
@@ -2538,7 +2539,7 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
2538
2539
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);
2539
2540
 
2540
2541
  /* "opscli/feedback/domain/models.py":7
2541
- * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "other")
2542
+ * FEEDBACK_TYPES = ("bug", "feature", "data_issue", "ux", "docs", "query_result", "other")
2542
2543
  * SEVERITIES = ("low", "medium", "high", "critical")
2543
2544
  * SOURCES = ("cli", "mcp", "skill", "api") # <<<<<<<<<<<<<<
2544
2545
  *
@@ -2577,31 +2578,31 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
2577
2578
  static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
2578
2579
  CYTHON_UNUSED_VAR(__pyx_mstate);
2579
2580
  {
2580
- const struct { const unsigned int length: 6; } index[] = {{1},{27},{15},{36},{17},{24},{54},{51},{44},{38},{44},{32},{33},{35},{16},{29},{38},{15},{14},{10},{7},{3},{11},{3},{11},{3},{18},{7},{7},{8},{10},{4},{13},{17},{12},{7},{13},{16},{14},{4},{3},{8},{3},{6},{10},{8},{5},{7},{12},{6},{10},{8},{5},{6},{16},{7},{8},{5},{4},{2}};
2581
- #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (589 bytes) */
2582
- const char* const cstring = "BZh91AY&SYv3\236r\000\000#\337\200@\000@\006\320\006\277j\337 \277\377\377\344@\002:\353\214\016\333\204\252\237\251\244\332\236\232\203&#\321\003F\2154\r\003 h \321S\332jO\312\217\324\3242\000\000\006M\006\251\340\222zOP\364@\000\000\001\240z\201)\251\220\232\nza&Q\352mFCM\000\006\2332q*\366\033\3532 \235\020\302\026\362\222\211\315\234\357RS\240\346\014\222'P:\206S\030\212\023\004>\226\372\323$\223g\232'\024\352*\343\254\332\033\212y\362\252\254R1U\265\341\260Yc\370A&\337\010\362\213\337\310GN\376\357\323\365]\376\017\274}\013\036(\204.\267\270\274lQv\017r\245e\2610-\013\222\365\r\031\000\332?^?\243\347\325\032\\\\\361\034YHD\201>\345}8\347\367\240E\307>3:=\3200&\216q\016mi`\301qQ\252\206[\317a\304\305\215*\212\310M$%x\202\275\365;\266B5\345\026\376-\256\022\272J\2051gL\261E\032\360\203\211\215\013F\033\023K\301\326\243H+\350\020\315\3210\372\255gq!\033\372R\274\274\355\005\244IJh\n\363\354\024\215Yg\221L+\013i\231\233li\217\020\256o\322\373\213N\3408`\306mq\003\345.\322\305\272\264\302v\352\214\272*\264\221\212s\212~9i\203CA1$\271\013w\263L\213\313v\316z\3637D\271X\354\2261\335<K\021\224<:@\274\361\320r\215<\204\350\004\017\022e\203Q\265\341\310\333K\211\247/d#\010\223\265Z*\270\240K\\8[\022oIo\231\354\307<\370!\354\354\343gR\327\232\322\272:\024\340M\n\304Z\3009KX\224\204\004\314aV7\003A\357\276\261s\357ST\005\251\316gR\021\"B\354\014\343\003F$\025\"\252\325\232\341_\220\325HBE\222\305f\242\3431h\234D\034\033;M\360 '\\\352\211\336\347\376\271\252\256hP\336\255\260i\341|\205\256\315\030\340o\247\r)uU\266T\032L\211q\251\0361\210\247.Z\034\335\314'\222v\177\027rE8P\220v3\236r";
2583
- PyObject *data = __Pyx_DecompressString(cstring, 589, 2);
2581
+ const struct { const unsigned int length: 6; } index[] = {{1},{27},{15},{49},{17},{24},{54},{51},{44},{38},{44},{32},{33},{35},{16},{29},{38},{15},{14},{10},{7},{3},{11},{3},{11},{3},{18},{7},{7},{8},{10},{4},{13},{17},{12},{7},{13},{16},{14},{4},{3},{8},{3},{6},{10},{8},{5},{7},{12},{12},{6},{10},{8},{5},{6},{16},{7},{8},{5},{4},{2}};
2582
+ #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (599 bytes) */
2583
+ const char* const cstring = "BZh91AY&SY8\300 \322\000\000#\337\200@\000@\006\320\006\277j\337 \277\377\377\344@\002:\352\350\005a\252z$\362\237\251\244<\232#\020dh\323@\3202\006\246)\202OI\351<\240\006\200\000\000\002*~!C\020\311\246\004h0\000\002z\201)\251\222\031\t\2024I\350FCM\000\320h\360u\016R\227\034\210D\016\323 1\240V\200\336IR\264Z\t\202\334\t5\212\230\013\201( d\220PE\351p\254\263>i&l\342\275b\316;\006\340*\025\363\345e\231^i\265\210\014U\327?\214\022n7\307\234U\374\304u\360\356\364~\365\341\342\374c\350P\362D!Zw\326\005\345Qe\330\017r\225\242\366\230\027\201\201b\220\300j\014\247\366\"\031>}H\3258\301\001\315\316\"\025\215=\233n\232W\323\241'\337\331\277\005\214\342\304\025\224C\035\234\345\251p\373\344g\212o\351e&\220\221\034M\034js\315H\260\304Z\342St\003cxK\352\254\240>f\372\225H\326*\333\342\347=\344_r\223t\270\355\227M\254\214\rU\324\036x\222J\032\324O'\312\273\024-\257[-\347\353H)\"JS@[\323\200\244j\313,K/\266\026\32326\330\323\016AnO\326\267\024\235\300g{\0315\304\017\214\267(S\275\246\023\247z1\352\255i#\004\347$\374\261\322\366\206\202bIs\027\027\243L\"\2457\234\365\350qD\271\320\341,#\272x\024#\030xt\201z\341\240\345\215<D\350\004\017\022e{X\332\347\314\333K\211\247*\310E\361'kZ-\\\220%\255\371\323\002od\270\344v\341\226Y\241\350a\r\003eq[\315l\236\216\2058\023Q\"\244R\320\034\262\224%!\002\234\344\342\211g\231<iNQ\245\224\343\256\230\030\333&\263A\337Dm\201\235p4Y \222\"\221\"\347L\"\340+\251\214z\240\215JPL[\022i42\201w\rk<\255`\276\\2D\352\344\177\255\311HytBv\354\332\366\231z\252\026\27341\260J\346\271YVF\362P\201\006\325\272\004\222\004`\223:\345\246vTb\202}\007\374]\311\024\341B@\343\000\203H";
2584
+ PyObject *data = __Pyx_DecompressString(cstring, 599, 2);
2584
2585
  if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
2585
2586
  const char* const bytes = __Pyx_PyBytes_AsString(data);
2586
2587
  #if !CYTHON_ASSUME_SAFE_MACROS
2587
2588
  if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
2588
2589
  #endif
2589
- #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (511 bytes) */
2590
- const char* const cstring = "x\332]\222a\217\3230\014\206\377J~\300\320N|\006\241c\024qB\010t;\220\370\024y\211\333\205\245I\317qn\255\224\037\217\323\265\233\356\252\252jk;\266\337\367\371\004D0\225\220\275\337(\302\026\t\203\301\244b\360\323\034\332\2508\260\213\001\374!w\245E\340LX,0h\227R\306\222\307b\243I%\362\021\311xWz3\224tr\336\027\030\234\217\347\322\243u\271/G\327\035\213!\307\316\200\217\207\177hx\243L\014\206\220Q\271~\210\304\020X\r@\320\313/J\n\202U\255Co\325\013\370\214\351R\265Lkb\337K\302\226c\364\333\271\341\366E\212d\326\2559\333z2\343\310\257J\010\316*1eS\227\220\243\021\355\001\314IZN>\202\225\220\013\335F\201\225\235k\334\215*\222\nr\214J\271\3530U%\326,\0039a\215\3438xg\034\373I\365@')ta\025r\315]\327\254\303\326\232e\3705\336:\021X\364O\331\363\255%\343\260&Dr\335\234\203Ds\271\305m\217)Aw\355A\370\234\235\254\365\366{\243>||\177w\247\314\021(\275\r\252\303$\006\247wW)\366U\310\257M\363\345\363\375\356\273\336\357\2765?\356\257\237O\177\1775\373}\363\247y|xz\220\267\237\277\037w\315^l\006f0\307\036\003'\301D\374\365z\2661\t\020r\007\324.h&0X\233\314\326\004^\034Z\221\2701Uy\232\367\324\313\2128\242\311U{\235\262\350FS\013\316\243\325\265QZ\230\\7\320<\r8\353\251E\317\350\347:qR\337\034\254$\n\230Z\367 ci\001\366\202\250\274F\233=j\271\2020\250\365\014\365B\207\326\317\031\374\345?!$!\001\331b\013\342YBA\317\3614c\230b&\261>\033y\2446\373\313\230\313\344Z\263\014!O\341\005+\ry\374\017\0278`\275";
2591
- PyObject *data = __Pyx_DecompressString(cstring, 511, 1);
2590
+ #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (518 bytes) */
2591
+ const char* const cstring = "x\332]\222\341\216\3230\014\307_%\0170\264\023\237A\350\030E\234\020\002\335\016$>E^\342vai\3229\316\255\225\362\3608]\273\203\253\252(\211\355\330\376\373\367\001\210`*!{\277Q\204-\022\006\203I\305\340\247\331\264Qq`\027\003\370C\356J\213\300\231\260X`\320.\245\214%\217\305F\223\3129#M\2320e\317%\362\021\311xWz3\224tr\336\027\030\234\217\227\322\243u\271/G\327\035\213!\307\316\200\217\207?hx\243L\014\206\220Q\271~\210\304\020X\r@\320\313\025%\005\301\252\326\241\267\352\031|\306t\215ZJ7\261\357\305a\3131\372\355\234p\373,AR\370\326\\l}\231q\344\377B\010.*1eS;\222\247\021\355\001\314IRN>\202\025\223\013\335F\201\025\001\252\335\215*\222\n\362\214J\271\3530UYV/\0039a\265\3438xg\034\373I\365@'\ttaUu\365]\333\254\305\326\230\245\370\325\336:Q[]\225|I\3118\254\016\221\\7\373 \321\034nq\333cJ\320\335r\020\236\263\223\266^\2377\352\335\373\267ww\312\034\201\322k\243:L2\355\364\346&\305\276\n\371\271i>}\274\337}\325\373\335\227\346\333\375\355\370\364\373G\263\3377\277\232\307\207\247\007\331}\377\371\270k\3662f`\006s\3541p\022fd\276^\317cL\002\204\374\001\265\013\232\t\014\326$\363h\002/\023Z\221x\001\254\3025\367\251\227\026qD\223\253\366:e\321\215\246\026\234G\253k\242\264\000\272v\240y\032p\326\263\222\031\375\034'\223\324/\023\254$\n\230Z\367 ei\001\366\212\250l\243\315\036\265|A\030\324z\206z\241C\353s\006\177\275\377\227|BHB\005\262\305\026\344\234P0t<\315H\246\230I0\310F\226\324f\177-y\351Bk\226\202d\025v\260\222\221\307\277\027\334k\241";
2592
+ PyObject *data = __Pyx_DecompressString(cstring, 518, 1);
2592
2593
  if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
2593
2594
  const char* const bytes = __Pyx_PyBytes_AsString(data);
2594
2595
  #if !CYTHON_ASSUME_SAFE_MACROS
2595
2596
  if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
2596
2597
  #endif
2597
- #else /* compression: none (900 bytes) */
2598
- const char* const bytes = "?array|null, references onlyarray, optionalbug|feature|data_issue|ux|docs|othercli|mcp|skill|apilow|medium|high|criticalobject, concrete important parameters and field valuesobject|null, command/tool/skill/version/cwd contextobject|null, raw structured feedback payloadstring, adopted fix or next suggestionstring, cause or explicitly marked inferencestring, concrete tool or commandstring, final result or next stepstring, original error code/messagestring, requiredstring, required, <=200 charsstring, required by ops-feedback SkillFEEDBACK_SCHEMAFEEDBACK_TYPESSEVERITIESSOURCESapiattachmentsbugcall_paramsclicline_in_tracebackcontentcontextcriticaldata_issuedocserror_messageexecution_summaryfailed_callsfeaturefeedback_typefinal_resolutionfix_suggestionhighlow__main__mcpmedium__module____name__otherpayload__qualname__reasonsetdefaultseverityskillsourcesuccessful_callssummary__test__titletoolux";
2598
+ #else /* compression: none (925 bytes) */
2599
+ const char* const bytes = "?array|null, references onlyarray, optionalbug|feature|data_issue|ux|docs|query_result|othercli|mcp|skill|apilow|medium|high|criticalobject, concrete important parameters and field valuesobject|null, command/tool/skill/version/cwd contextobject|null, raw structured feedback payloadstring, adopted fix or next suggestionstring, cause or explicitly marked inferencestring, concrete tool or commandstring, final result or next stepstring, original error code/messagestring, requiredstring, required, <=200 charsstring, required by ops-feedback SkillFEEDBACK_SCHEMAFEEDBACK_TYPESSEVERITIESSOURCESapiattachmentsbugcall_paramsclicline_in_tracebackcontentcontextcriticaldata_issuedocserror_messageexecution_summaryfailed_callsfeaturefeedback_typefinal_resolutionfix_suggestionhighlow__main__mcpmedium__module____name__otherpayload__qualname__query_resultreasonsetdefaultseverityskillsourcesuccessful_callssummary__test__titletoolux";
2599
2600
  PyObject *data = NULL;
2600
2601
  CYTHON_UNUSED_VAR(__Pyx_DecompressString);
2601
2602
  #endif
2602
2603
  PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
2603
2604
  Py_ssize_t pos = 0;
2604
- for (int i = 0; i < 60; i++) {
2605
+ for (int i = 0; i < 61; i++) {
2605
2606
  Py_ssize_t bytes_length = index[i].length;
2606
2607
  PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
2607
2608
  if (likely(string) && i >= 17) PyUnicode_InternInPlace(&string);
@@ -2613,7 +2614,7 @@ const char* const bytes = "?array|null, references onlyarray, optionalbug|featur
2613
2614
  pos += bytes_length;
2614
2615
  }
2615
2616
  Py_XDECREF(data);
2616
- for (Py_ssize_t i = 0; i < 60; i++) {
2617
+ for (Py_ssize_t i = 0; i < 61; i++) {
2617
2618
  if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
2618
2619
  __PYX_ERR(0, 1, __pyx_L1_error)
2619
2620
  }