stackgen-sdk 0.4.0rc35__tar.gz → 0.4.0rc37__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 (341) hide show
  1. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/PKG-INFO +1 -1
  2. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/_http.py +11 -8
  3. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/_version.py +2 -2
  4. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/client.py +4 -1
  5. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/config.py +4 -0
  6. stackgen_sdk-0.4.0rc37/src/stackgen/devops/__init__.py +5 -0
  7. stackgen_sdk-0.4.0rc37/src/stackgen/devops/namespace.py +374 -0
  8. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/.openapi-generator/FILES +156 -0
  9. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/__init__.py +105 -1
  10. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/api/__init__.py +1 -0
  11. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/api/aiden_api.py +39 -4
  12. stackgen_sdk-0.4.0rc37/src/stackgen/generated/api/dev_ops_api.py +5684 -0
  13. stackgen_sdk-0.4.0rc37/src/stackgen/generated/api/sre_api.py +3884 -0
  14. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/api/vault_api.py +1 -1
  15. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/api_client.py +1 -1
  16. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/configuration.py +1 -1
  17. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/exceptions.py +1 -1
  18. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/__init__.py +52 -1
  19. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/activate_break_glass_request.py +1 -1
  20. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_app_mcp_binding.py +1 -1
  21. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_health_check.py +1 -1
  22. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_health_response.py +1 -1
  23. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_info.py +1 -1
  24. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_lifecycle_status.py +1 -1
  25. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_model_config.py +1 -1
  26. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_schedule.py +1 -1
  27. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/agent_status.py +1 -1
  28. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_analysis_status.py +1 -1
  29. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_attention.py +1 -1
  30. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_categorization_summary.py +1 -1
  31. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_role.py +1 -1
  32. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_sort_by.py +1 -1
  33. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_status.py +1 -1
  34. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_summary.py +1 -1
  35. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_sync_run_status.py +1 -1
  36. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/alert_v1.py +1 -1
  37. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/app_integration_binding.py +95 -0
  38. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/approval_item.py +1 -1
  39. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/approve_request_body.py +89 -0
  40. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/artifact_info.py +1 -1
  41. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ask_execution_mode.py +1 -1
  42. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ask_guild_request.py +1 -1
  43. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ask_guild_route_decision.py +1 -1
  44. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ask_guild_route_response.py +1 -1
  45. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ask_guild_start_response.py +1 -1
  46. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/attach_policy_request.py +1 -1
  47. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/audit_event.py +1 -1
  48. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/audit_event_list_response.py +1 -1
  49. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/audit_facets.py +1 -1
  50. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/auto_approve_tool_rule.py +1 -1
  51. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/automation_eligible.py +38 -0
  52. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/autonomy_budget_config.py +1 -1
  53. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/autonomy_budget_snapshot.py +1 -1
  54. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/autonomy_budget_tier.py +1 -1
  55. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/autonomy_budget_tier_reason.py +1 -1
  56. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/break_glass_state.py +1 -1
  57. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/candidate_type.py +1 -1
  58. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/chat_channel_selector.py +1 -1
  59. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/chat_subscription.py +1 -1
  60. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/chat_subscription_list_response.py +1 -1
  61. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/chat_subscription_target_type.py +1 -1
  62. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/chat_subscription_trigger_type.py +1 -1
  63. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/combining_algorithm.py +1 -1
  64. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/combining_algorithm_request.py +1 -1
  65. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/container_image.py +1 -1
  66. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/cost_band.py +1 -1
  67. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_chat_subscription_request.py +1 -1
  68. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/create_discovered_workflow_body.py +91 -0
  69. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/create_discovered_workflow_response.py +87 -0
  70. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_document_request.py +1 -1
  71. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_knowledge_base_request.py +1 -1
  72. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_policy_request.py +1 -1
  73. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_remote_runner_request.py +1 -1
  74. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_remote_runner_response.py +1 -1
  75. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/create_request_workflow_body.py +108 -0
  76. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/create_request_workflow_response.py +93 -0
  77. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_schedule_request.py +1 -1
  78. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_skill_companion_file.py +1 -1
  79. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_skill_request.py +1 -1
  80. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/create_webhook_request.py +1 -1
  81. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/dag_edge.py +1 -1
  82. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/dag_node.py +1 -1
  83. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/devops_request_v1.py +204 -0
  84. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/diary_compression.py +1 -1
  85. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/diary_config.py +1 -1
  86. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/discovered_tool.py +1 -1
  87. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/document_ingest_status.py +1 -1
  88. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/document_ingest_workflow_status.py +1 -1
  89. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/document_processing_status.py +1 -1
  90. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/duration_band.py +1 -1
  91. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/eligible_workflow_v1.py +91 -0
  92. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/entity_ref.py +1 -1
  93. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/error_response.py +1 -1
  94. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/eval_config.py +1 -1
  95. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/evaluate_policy_request.py +1 -1
  96. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/evaluate_policy_response.py +1 -1
  97. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/execution_list_item.py +1 -1
  98. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/execution_meta.py +1 -1
  99. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/execution_status.py +39 -0
  100. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/execution_structured_output.py +1 -1
  101. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/execution_tool_call.py +1 -1
  102. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/execution_tool_call_list.py +1 -1
  103. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/external_secret_reference.py +1 -1
  104. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/fetch_request_by_identifier_body.py +88 -0
  105. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/fork_investigation_request.py +87 -0
  106. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/fork_session_request.py +1 -1
  107. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/funnel_metrics_response.py +96 -0
  108. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/funnel_period.py +38 -0
  109. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/git_config.py +1 -1
  110. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/guild_integration.py +1 -1
  111. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/guild_json_error.py +1 -1
  112. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/guild_platform_config.py +1 -1
  113. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/hal_guard_config.py +1 -1
  114. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/health_check_status.py +1 -1
  115. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/hitl_config.py +1 -1
  116. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ingested_document.py +1 -1
  117. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/ingested_document1.py +1 -1
  118. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_availability_reason.py +1 -1
  119. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_availability_status.py +1 -1
  120. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_mcp_auth_promotion.py +1 -1
  121. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_remote_runner.py +1 -1
  122. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_scope.py +1 -1
  123. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_sidecar_launch.py +1 -1
  124. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_test_result.py +1 -1
  125. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/integration_type_info.py +1 -1
  126. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigate_alert_request.py +1 -1
  127. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigate_response.py +1 -1
  128. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation.py +1 -1
  129. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_evidence.py +1 -1
  130. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_evidence_kind.py +1 -1
  131. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_evidence_source.py +1 -1
  132. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/investigation_group.py +121 -0
  133. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_hypothesis.py +1 -1
  134. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_plain_summary.py +1 -1
  135. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_prior_incident.py +1 -1
  136. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_recommended_next_step.py +1 -1
  137. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_ref.py +3 -3
  138. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_status.py +1 -1
  139. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_structured_hypothesis_entry.py +1 -1
  140. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_structured_limitation_entry.py +1 -1
  141. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_structured_rca.py +1 -1
  142. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/investigation_triage_metadata.py +1 -1
  143. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/judge_execution_request.py +1 -1
  144. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/key_definition_type.py +1 -1
  145. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_base.py +1 -1
  146. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_config.py +1 -1
  147. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_item.py +1 -1
  148. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_item_backend.py +1 -1
  149. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_item_operation.py +1 -1
  150. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/knowledge_type.py +1 -1
  151. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/list_alerts_response.py +1 -1
  152. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/list_eligible_workflows_response.py +95 -0
  153. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/list_investigation_groups_response.py +101 -0
  154. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/list_investigations_response.py +1 -1
  155. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/list_post_remediation_verifications_response.py +95 -0
  156. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/list_remote_runner_tasks_response.py +1 -1
  157. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/list_remote_runners_response.py +1 -1
  158. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/list_requests_response.py +101 -0
  159. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/list_sync_runs_response.py +97 -0
  160. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/llm_provider_type.py +2 -1
  161. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/metadata.py +1 -1
  162. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config.py +1 -1
  163. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_circuit_breaker.py +1 -1
  164. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_concurrency.py +1 -1
  165. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_context_mode.py +1 -1
  166. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_context_mode_per_tool_value.py +1 -1
  167. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_metrics.py +1 -1
  168. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_rate_limit.py +1 -1
  169. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_retry.py +1 -1
  170. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_sanitize.py +1 -1
  171. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_timeout.py +1 -1
  172. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_tracing.py +1 -1
  173. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/middleware_config_validation.py +1 -1
  174. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/model_pricing.py +1 -1
  175. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/model_provider_config.py +1 -1
  176. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/navigation_mode.py +1 -1
  177. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/o_auth_support.py +1 -1
  178. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/owner_type.py +1 -1
  179. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/pagination.py +6 -6
  180. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/persona_variant_config.py +1 -1
  181. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/pii_redaction_config.py +1 -1
  182. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/pii_regex_rule.py +1 -1
  183. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy.py +1 -1
  184. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input.py +1 -1
  185. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_agent.py +1 -1
  186. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_approver.py +1 -1
  187. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_environment.py +1 -1
  188. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_principal.py +1 -1
  189. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_project_membership.py +1 -1
  190. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_requester.py +1 -1
  191. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_input_tool.py +1 -1
  192. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_evaluation_outcome.py +1 -1
  193. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/policy_type.py +1 -1
  194. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/post_remediation_verification.py +113 -0
  195. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/post_source_comment_body.py +87 -0
  196. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/qualified_candidate.py +1 -1
  197. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/rca_config.py +1 -1
  198. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/reasoning_effort_setting.py +1 -1
  199. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/register_agent_request.py +1 -1
  200. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/registered_model.py +1 -1
  201. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/remote_runner_info.py +1 -1
  202. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/remote_runner_task_info.py +1 -1
  203. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/reopen_request_body.py +88 -0
  204. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/request_category.py +41 -0
  205. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/request_priority.py +38 -0
  206. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/request_related_pull_request_v1.py +91 -0
  207. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/request_related_ticket_v1.py +94 -0
  208. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/request_status.py +44 -0
  209. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/resolve_approval_request.py +1 -1
  210. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/run_workflow_request.py +1 -1
  211. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/run_workflow_response.py +1 -1
  212. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/runbook_config.py +1 -1
  213. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/runner_capability.py +1 -1
  214. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/runner_status.py +1 -1
  215. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/runtime_approval_binding.py +1 -1
  216. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/runtime_approval_item.py +1 -1
  217. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/scan_finding.py +1 -1
  218. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/schedule_history.py +1 -1
  219. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/schedule_run_list_response.py +1 -1
  220. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/schedule_run_status.py +1 -1
  221. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/schedule_source.py +1 -1
  222. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/schedule_target_type.py +1 -1
  223. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/secret.py +1 -1
  224. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/secret_sub_category.py +1 -1
  225. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session.py +1 -1
  226. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_activity_status.py +1 -1
  227. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_export.py +1 -1
  228. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_export_part.py +1 -1
  229. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_export_part_kind.py +1 -1
  230. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_list_response.py +1 -1
  231. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_responder_kind.py +1 -1
  232. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/session_summary.py +1 -1
  233. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/setup_status.py +101 -0
  234. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/sidecar_health_probes.py +1 -1
  235. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/signal_severity.py +1 -1
  236. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/skill.py +1 -1
  237. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/skill_file.py +1 -1
  238. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/skill_summary.py +1 -1
  239. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/source_comment_result_v1.py +93 -0
  240. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/stage_binding.py +2 -2
  241. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/stage_expectation.py +1 -1
  242. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/start_ask_guild200_response.py +1 -1
  243. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/start_chat_json_body.py +1 -1
  244. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/start_chat_response.py +1 -1
  245. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/start_workflow_discovery_body.py +96 -0
  246. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/subagent_spawn_contract.py +1 -1
  247. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/suggest_request_workflow_body.py +89 -0
  248. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/suggest_request_workflow_response.py +110 -0
  249. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/suggested_workflow_draft_v1.py +117 -0
  250. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/supported_formats.py +1 -1
  251. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/supported_formats_keys_inner.py +1 -1
  252. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/sync_request.py +99 -0
  253. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/sync_requests_response.py +95 -0
  254. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/sync_response.py +1 -1
  255. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/task_error_category.py +1 -1
  256. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/task_status.py +1 -1
  257. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/terminate_session_response.py +1 -1
  258. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/test_model_request.py +1 -1
  259. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/test_model_response.py +1 -1
  260. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/ticket_source.py +38 -0
  261. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/toggle_chat_subscription_request.py +1 -1
  262. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/trace_dag_response.py +1 -1
  263. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/trigger_schedule202_response.py +1 -1
  264. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/trigger_webhook202_response.py +1 -1
  265. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/update_agent_request.py +1 -1
  266. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/update_alert_request.py +119 -0
  267. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/update_alert_status.py +37 -0
  268. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/update_chat_subscription_request.py +1 -1
  269. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/update_investigations_status_request.py +91 -0
  270. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/update_investigations_status_response.py +97 -0
  271. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/update_request_body.py +100 -0
  272. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/update_secret_by_id_request.py +1 -1
  273. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/update_session_metadata_request.py +1 -1
  274. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/update_webhook_request.py +1 -1
  275. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/upsert_integration_request.py +1 -1
  276. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/version_status.py +1 -1
  277. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook.py +1 -1
  278. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_filter_preview_header.py +1 -1
  279. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_filter_preview_request.py +1 -1
  280. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_filter_preview_response.py +1 -1
  281. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_run.py +1 -1
  282. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_run_detail.py +1 -1
  283. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/webhook_run_list_response.py +1 -1
  284. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow.py +1 -1
  285. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_class_v1.py +138 -0
  286. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_evidence_v1.py +104 -0
  287. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_plan_step_v1.py +92 -0
  288. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_run_v1.py +124 -0
  289. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_status.py +38 -0
  290. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_discovery_ticket_v1.py +104 -0
  291. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_draft_stage_v1.py +89 -0
  292. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_integration_hint_v1.py +104 -0
  293. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_metadata.py +1 -1
  294. stackgen_sdk-0.4.0rc37/src/stackgen/generated/models/workflow_near_miss_v1.py +93 -0
  295. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_output_contract.py +1 -1
  296. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_run_expectations.py +1 -1
  297. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_stage.py +1 -1
  298. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_tool_middleware.py +1 -1
  299. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_tool_middleware_circuit_breaker.py +1 -1
  300. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_tool_middleware_concurrency.py +1 -1
  301. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_trigger.py +1 -1
  302. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/models/workflow_trigger_type.py +1 -1
  303. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/rest.py +1 -1
  304. stackgen_sdk-0.4.0rc37/src/stackgen/sre/namespace.py +390 -0
  305. stackgen_sdk-0.4.0rc35/src/stackgen/generated/api/sre_api.py +0 -1613
  306. stackgen_sdk-0.4.0rc35/src/stackgen/sre/namespace.py +0 -57
  307. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/.gitignore +0 -0
  308. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/README.md +0 -0
  309. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/pyproject.toml +0 -0
  310. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/__init__.py +0 -0
  311. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/__init__.py +0 -0
  312. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/ask.py +0 -0
  313. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/audit.py +0 -0
  314. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/integration_secrets.py +0 -0
  315. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/models.py +0 -0
  316. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/namespace.py +0 -0
  317. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/resources.py +0 -0
  318. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/run_status.py +0 -0
  319. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/runs.py +0 -0
  320. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/sessions.py +0 -0
  321. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/steer.py +0 -0
  322. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/stream_events.py +0 -0
  323. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/subscribe.py +0 -0
  324. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/subscribe_frames.py +0 -0
  325. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/transient.py +0 -0
  326. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/webhook.py +0 -0
  327. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/webhook_ops.py +0 -0
  328. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/workflow_builder.py +0 -0
  329. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/aiden/workflow_publish.py +0 -0
  330. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/cli.py +0 -0
  331. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/errors.py +0 -0
  332. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/.openapi-generator/VERSION +0 -0
  333. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/.openapi-generator-ignore +0 -0
  334. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/generated/api_response.py +0 -0
  335. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/logging.py +0 -0
  336. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/orgs/__init__.py +0 -0
  337. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/orgs/namespace.py +0 -0
  338. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/sre/__init__.py +0 -0
  339. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/vault/__init__.py +0 -0
  340. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/vault/metadata.py +0 -0
  341. {stackgen_sdk-0.4.0rc35 → stackgen_sdk-0.4.0rc37}/src/stackgen/vault/namespace.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stackgen-sdk
3
- Version: 0.4.0rc35
3
+ Version: 0.4.0rc37
4
4
  Summary: StackGen SDK — Aiden, SRE, and Vault from one client
5
5
  Project-URL: Homepage, https://appcd-dev.github.io/stackgen-sdk/
6
6
  Project-URL: Documentation, https://appcd-dev.github.io/stackgen-sdk/
@@ -113,16 +113,17 @@ def request(
113
113
  retries: int = 3,
114
114
  timeout_seconds: float | None = None,
115
115
  transient_retry_budget_ms: float | int | None = None,
116
- retry_gateway_outage: bool = False,
116
+ retry_gateway_outage: bool = True,
117
+ org_id: str | None = None,
117
118
  ) -> Any:
118
- """Bearer HTTP call with retries on transient failures for idempotent methods.
119
+ """Bearer HTTP call with retries on transient failures.
119
120
 
120
121
  Gateway 502/503/504 and network errors retry until
121
- ``transient_retry_budget_ms`` elapses (default 120s). Other retryable
122
- statuses use the short ``retries`` attempt budget. POST/PATCH fail fast
123
- unless ``retry_gateway_outage`` is set, which retries only 502/503/504
124
- and transport errors (a CloudFront drop), not application 500s.
125
- Webhook trigger, vault secret store, and org create set that flag.
122
+ ``transient_retry_budget_ms`` elapses (default 120s) for every method —
123
+ a CloudFront drop means the edge never delivered the request. Pass
124
+ ``retry_gateway_outage=False`` to fail fast on POST/PATCH instead.
125
+ Other retryable statuses (429, 499, application 500, …) still use the
126
+ short ``retries`` attempt budget and only for idempotent methods.
126
127
 
127
128
  ``timeout_seconds`` is an optional per-call abort budget. When the deadline
128
129
  expires, raises :class:`~stackgen.errors.TimeoutError`. Omit to wait until
@@ -135,10 +136,12 @@ def request(
135
136
  method = method.upper()
136
137
  budget_ms = resolve_transient_retry_budget_ms(transient_retry_budget_ms)
137
138
  idempotent = is_idempotent_http_method(method)
138
- retry_outage = idempotent or retry_gateway_outage
139
+ retry_outage = bool(retry_gateway_outage)
139
140
  headers = {"Authorization": f"Bearer {token}"}
140
141
  if content_type:
141
142
  headers["Content-Type"] = content_type
143
+ if org_id:
144
+ headers["X-Appcd-Org"] = org_id
142
145
 
143
146
  started = time.monotonic()
144
147
  attempt = 0
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.4.0rc35'
22
- __version_tuple__ = version_tuple = (0, 4, 0, 'rc35')
21
+ __version__ = version = '0.4.0rc37'
22
+ __version_tuple__ = version_tuple = (0, 4, 0, 'rc37')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,9 +1,10 @@
1
- """StackgenClient — one entrypoint for Aiden, SRE, and Vault."""
1
+ """StackgenClient — one entrypoint for Aiden, SRE, DevOps, and Vault."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
5
  from stackgen.aiden import AidenNamespace
6
6
  from stackgen.config import StackgenConfig
7
+ from stackgen.devops import DevOpsNamespace
7
8
  from stackgen.orgs import OrgsNamespace
8
9
  from stackgen.sre import SRENamespace
9
10
  from stackgen.vault import VaultNamespace
@@ -15,6 +16,7 @@ class StackgenClient:
15
16
  Namespaces:
16
17
  - ``aiden`` — platform automations, sessions, session-report download
17
18
  - ``sre`` — alerts and investigations
19
+ - ``devops`` — Ops Inbox requests and workflow discovery
18
20
  - ``vault`` — secrets (allowlisted separately)
19
21
  - ``orgs`` — create and delete disposable projects
20
22
  """
@@ -25,6 +27,7 @@ class StackgenClient:
25
27
  self.config = config
26
28
  self.aiden = AidenNamespace(config)
27
29
  self.sre = SRENamespace(config)
30
+ self.devops = DevOpsNamespace(config)
28
31
  self.vault = VaultNamespace(config)
29
32
  self.orgs = OrgsNamespace(config)
30
33
 
@@ -97,6 +97,10 @@ class StackgenConfig:
97
97
  """HTTP prefix for the SRE app."""
98
98
  return self.mothership() + "/app/sre"
99
99
 
100
+ def devops_url(self) -> str:
101
+ """HTTP prefix for the DevOps Ops Inbox app."""
102
+ return self.mothership() + "/app/devops"
103
+
100
104
  def vault_url(self) -> str:
101
105
  """HTTP prefix for Vault on the mothership edge (``/api/vault/v1``)."""
102
106
  return self.mothership() + "/api/vault/v1"
@@ -0,0 +1,5 @@
1
+ """DevOps Ops Inbox namespace."""
2
+
3
+ from stackgen.devops.namespace import DevOpsNamespace
4
+
5
+ __all__ = ["DevOpsNamespace"]
@@ -0,0 +1,374 @@
1
+ """DevOps namespace — Ops Inbox requests and workflow discovery."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import time
7
+ import urllib.parse
8
+ from typing import Any
9
+
10
+ from stackgen import _http
11
+ from stackgen.config import StackgenConfig
12
+ from stackgen.errors import HttpError, StackgenError, TimeoutError
13
+
14
+ _TRIAGE_WAIT = frozenset({"new", "triaging"})
15
+ _EXEC_WAIT_STATUS = frozenset({"approved", "executing"})
16
+ _EXEC_WAIT_EXEC = frozenset({"not_started", "running"})
17
+
18
+
19
+ def query_string(params: dict[str, Any]) -> str:
20
+ cleaned = {k: v for k, v in params.items() if v is not None}
21
+ if not cleaned:
22
+ return ""
23
+ return "?" + urllib.parse.urlencode(cleaned, doseq=True)
24
+
25
+
26
+ def _escape(segment: str) -> str:
27
+ return urllib.parse.quote(str(segment), safe="")
28
+
29
+
30
+ def _as_dict(value: Any, label: str) -> dict[str, Any]:
31
+ if not isinstance(value, dict):
32
+ raise StackgenError(f"unexpected {label} payload: {value!r}")
33
+ return value
34
+
35
+
36
+ class DevOpsNamespace:
37
+ """Ops Inbox requests and workflow discovery."""
38
+
39
+ def __init__(self, config: StackgenConfig) -> None:
40
+ self._config = config
41
+
42
+ def _url(self, path: str, params: dict[str, Any] | None = None) -> str:
43
+ return f"{self._config.devops_url()}/api/v1{path}{query_string(params or {})}"
44
+
45
+ def _req(self, url: str, **kwargs: Any) -> Any:
46
+ org = (self._config.org_id or "").strip() or None
47
+ return _http.request(url, self._config.api_token, org_id=org, **kwargs)
48
+
49
+ def setup_status(self) -> Any:
50
+ """GET /app/devops/api/setup"""
51
+ url = f"{self._config.devops_url()}/api/setup"
52
+ return self._req(url)
53
+
54
+ def list_requests(self, **params: Any) -> Any:
55
+ """GET /app/devops/api/v1/requests"""
56
+ return self._req(self._url("/requests", params))
57
+
58
+ def get_request(self, request_id: str) -> Any:
59
+ """GET /app/devops/api/v1/requests/{id}"""
60
+ return self._req(self._url(f"/requests/{_escape(request_id)}"),
61
+ )
62
+
63
+ def update_request(self, request_id: str, body: dict[str, Any]) -> Any:
64
+ """PATCH /app/devops/api/v1/requests/{id}"""
65
+ payload = json.dumps(body).encode("utf-8")
66
+ return self._req(self._url(f"/requests/{_escape(request_id)}"),
67
+ method="PATCH",
68
+ body=payload,
69
+ content_type="application/json",
70
+ )
71
+
72
+ def sync_requests(self) -> Any:
73
+ """POST /app/devops/api/v1/requests/sync — ticket pull finishes in this call."""
74
+ return self._req(self._url("/requests/sync"),
75
+ method="POST",
76
+ body=b"{}",
77
+ content_type="application/json",
78
+ )
79
+
80
+ def fetch_request(self, identifier: str) -> Any:
81
+ """POST /app/devops/api/v1/requests/fetch — import one ticket key."""
82
+ payload = json.dumps({"identifier": identifier}).encode("utf-8")
83
+ return self._req(self._url("/requests/fetch"),
84
+ method="POST",
85
+ body=payload,
86
+ content_type="application/json",
87
+ )
88
+
89
+ def wait_for_triage(self, request_id: str) -> dict[str, Any]:
90
+ """Poll while status is new or triaging. Returns on any other status."""
91
+ cfg = self._config
92
+ deadline = time.monotonic() + cfg.timeout_seconds
93
+ last_transient = ""
94
+ while time.monotonic() < deadline:
95
+ try:
96
+ data = _as_dict(
97
+ self._req(self._url(f"/requests/{_escape(request_id)}"),
98
+ retries=1,
99
+ ),
100
+ "getRequest",
101
+ )
102
+ last_transient = ""
103
+ status = _http.text(data.get("status")).casefold()
104
+ if status not in _TRIAGE_WAIT:
105
+ return data
106
+ except StackgenError as err:
107
+ if isinstance(err, HttpError) and _http.is_transient_http_error(err):
108
+ last_transient = _http.http_status_snippet(err)
109
+ else:
110
+ raise
111
+ remaining = deadline - time.monotonic()
112
+ if remaining <= 0:
113
+ break
114
+ time.sleep(min(cfg.poll_interval_seconds, remaining))
115
+ label = f"triage ({last_transient})" if last_transient else "triage"
116
+ raise TimeoutError(label, cfg.timeout_seconds)
117
+
118
+ def fetch_and_wait(self, identifier: str) -> dict[str, Any]:
119
+ """Fetch one ticket and wait until triage settles."""
120
+ started = _as_dict(self.fetch_request(identifier), "fetchRequest")
121
+ request_id = _http.text(started.get("id"))
122
+ if not request_id:
123
+ raise StackgenError(f"fetch_request missing id: {started!r}")
124
+ return self.wait_for_triage(request_id)
125
+
126
+ def approve_request(
127
+ self,
128
+ request_id: str,
129
+ *,
130
+ workflow_name: str | None = None,
131
+ override_reason: str | None = None,
132
+ ) -> Any:
133
+ """POST /app/devops/api/v1/requests/{id}/approve"""
134
+ body: dict[str, Any] = {}
135
+ if workflow_name is not None:
136
+ body["workflow_name"] = workflow_name
137
+ if override_reason is not None:
138
+ body["override_reason"] = override_reason
139
+ payload = json.dumps(body).encode("utf-8")
140
+ return self._req(self._url(f"/requests/{_escape(request_id)}/approve"),
141
+ method="POST",
142
+ body=payload,
143
+ content_type="application/json",
144
+ )
145
+
146
+ def wait_for_execution(self, request_id: str) -> dict[str, Any]:
147
+ """Poll while approved/executing with execution not finished."""
148
+ cfg = self._config
149
+ deadline = time.monotonic() + cfg.timeout_seconds
150
+ last_transient = ""
151
+ while time.monotonic() < deadline:
152
+ try:
153
+ data = _as_dict(
154
+ self._req(self._url(f"/requests/{_escape(request_id)}"),
155
+ retries=1,
156
+ ),
157
+ "getRequest",
158
+ )
159
+ last_transient = ""
160
+ status = _http.text(data.get("status")).casefold()
161
+ exec_status = _http.text(data.get("execution_status")).casefold()
162
+ if exec_status == "failed":
163
+ raise StackgenError(
164
+ f"request {request_id} execution failed: "
165
+ f"{data.get('execution_result') or 'no detail'}"
166
+ )
167
+ if exec_status == "completed":
168
+ return data
169
+ still_waiting = (
170
+ status in _EXEC_WAIT_STATUS and exec_status in _EXEC_WAIT_EXEC
171
+ )
172
+ if not still_waiting:
173
+ return data
174
+ except StackgenError as err:
175
+ if isinstance(err, HttpError) and _http.is_transient_http_error(err):
176
+ last_transient = _http.http_status_snippet(err)
177
+ else:
178
+ raise
179
+ remaining = deadline - time.monotonic()
180
+ if remaining <= 0:
181
+ break
182
+ time.sleep(min(cfg.poll_interval_seconds, remaining))
183
+ label = f"execution ({last_transient})" if last_transient else "execution"
184
+ raise TimeoutError(label, cfg.timeout_seconds)
185
+
186
+ def approve_and_wait(
187
+ self,
188
+ request_id: str,
189
+ *,
190
+ workflow_name: str | None = None,
191
+ override_reason: str | None = None,
192
+ ) -> dict[str, Any]:
193
+ """Approve a request and wait for the run."""
194
+ self.approve_request(
195
+ request_id,
196
+ workflow_name=workflow_name,
197
+ override_reason=override_reason,
198
+ )
199
+ return self.wait_for_execution(request_id)
200
+
201
+ def defer_request(self, request_id: str) -> Any:
202
+ return self._req(self._url(f"/requests/{_escape(request_id)}/defer"),
203
+ method="POST",
204
+ body=b"{}",
205
+ content_type="application/json",
206
+ )
207
+
208
+ def reopen_request(
209
+ self,
210
+ request_id: str,
211
+ category: str | None = None,
212
+ ) -> Any:
213
+ body: dict[str, Any] = {}
214
+ if category is not None:
215
+ body["category"] = category
216
+ payload = json.dumps(body).encode("utf-8")
217
+ return self._req(self._url(f"/requests/{_escape(request_id)}/reopen"),
218
+ method="POST",
219
+ body=payload,
220
+ content_type="application/json",
221
+ )
222
+
223
+ def retriage_request(self, request_id: str) -> Any:
224
+ return self._req(self._url(f"/requests/{_escape(request_id)}/retriage"),
225
+ method="POST",
226
+ body=b"{}",
227
+ content_type="application/json",
228
+ )
229
+
230
+ def stop_triage(self, request_id: str) -> Any:
231
+ return self._req(self._url(f"/requests/{_escape(request_id)}/stop-triage"),
232
+ method="POST",
233
+ body=b"{}",
234
+ content_type="application/json",
235
+ )
236
+
237
+ def post_source_comment(
238
+ self,
239
+ request_id: str,
240
+ body: str | None = None,
241
+ ) -> Any:
242
+ """Post a comment on the upstream ticket (default body when omitted)."""
243
+ payload_obj: dict[str, Any] = {}
244
+ if body is not None:
245
+ payload_obj["body"] = body
246
+ payload = json.dumps(payload_obj).encode("utf-8")
247
+ return self._req(self._url(f"/requests/{_escape(request_id)}/source-comment"),
248
+ method="POST",
249
+ body=payload,
250
+ content_type="application/json",
251
+ )
252
+
253
+ def list_workflows(self) -> Any:
254
+ return self._req(self._url("/workflows"))
255
+
256
+ def suggest_workflow(
257
+ self,
258
+ request_id: str,
259
+ body: dict[str, Any] | None = None,
260
+ ) -> Any:
261
+ payload = json.dumps(body or {}).encode("utf-8")
262
+ return self._req(self._url(f"/requests/{_escape(request_id)}/workflow-suggestions"),
263
+ method="POST",
264
+ body=payload,
265
+ content_type="application/json",
266
+ )
267
+
268
+ def create_request_workflow(self, request_id: str, draft: dict[str, Any]) -> Any:
269
+ payload = json.dumps({"draft": draft}).encode("utf-8")
270
+ return self._req(self._url(f"/requests/{_escape(request_id)}/workflows"),
271
+ method="POST",
272
+ body=payload,
273
+ content_type="application/json",
274
+ )
275
+
276
+ def inbox_funnel(self, period: str = "30d", source: str | None = None) -> Any:
277
+ params: dict[str, Any] = {"period": period}
278
+ if source is not None:
279
+ params["source"] = source
280
+ return self._req(self._url("/metrics/funnel", params))
281
+
282
+ def start_workflow_discovery(
283
+ self,
284
+ *,
285
+ window_days: int | None = None,
286
+ ticket_cap: int | None = None,
287
+ apply_inbox_filters: bool | None = None,
288
+ ) -> Any:
289
+ """Start discovery. On 409, return the latest in-progress run."""
290
+ body: dict[str, Any] = {}
291
+ if window_days is not None:
292
+ body["window_days"] = window_days
293
+ if ticket_cap is not None:
294
+ body["ticket_cap"] = ticket_cap
295
+ if apply_inbox_filters is not None:
296
+ body["apply_inbox_filters"] = apply_inbox_filters
297
+ payload = json.dumps(body).encode("utf-8")
298
+ try:
299
+ return self._req(self._url("/discovery/runs"),
300
+ method="POST",
301
+ body=payload,
302
+ content_type="application/json",
303
+ )
304
+ except HttpError as err:
305
+ if err.status_code != 409:
306
+ raise
307
+ return self.latest_workflow_discovery()
308
+
309
+ def latest_workflow_discovery(self) -> Any:
310
+ return self._req(self._url("/discovery/runs/latest"),
311
+ )
312
+
313
+ def wait_for_workflow_discovery(self) -> dict[str, Any]:
314
+ """Poll the latest discovery run while status is running."""
315
+ cfg = self._config
316
+ deadline = time.monotonic() + cfg.timeout_seconds
317
+ last_transient = ""
318
+ while time.monotonic() < deadline:
319
+ try:
320
+ data = _as_dict(
321
+ self._req(self._url("/discovery/runs/latest"),
322
+ retries=1,
323
+ ),
324
+ "getLatestWorkflowDiscovery",
325
+ )
326
+ last_transient = ""
327
+ status = _http.text(data.get("status")).casefold()
328
+ if status == "ready":
329
+ return data
330
+ if status == "failed":
331
+ raise StackgenError(
332
+ f"workflow discovery failed: {data.get('error') or 'no detail'}"
333
+ )
334
+ except StackgenError as err:
335
+ if isinstance(err, HttpError) and _http.is_transient_http_error(err):
336
+ last_transient = _http.http_status_snippet(err)
337
+ else:
338
+ raise
339
+ remaining = deadline - time.monotonic()
340
+ if remaining <= 0:
341
+ break
342
+ time.sleep(min(cfg.poll_interval_seconds, remaining))
343
+ label = (
344
+ f"workflow discovery ({last_transient})"
345
+ if last_transient
346
+ else "workflow discovery"
347
+ )
348
+ raise TimeoutError(label, cfg.timeout_seconds)
349
+
350
+ def create_discovered_workflow(
351
+ self,
352
+ run_id: str,
353
+ class_id: str,
354
+ draft: dict[str, Any],
355
+ ) -> Any:
356
+ payload = json.dumps({"draft": draft}).encode("utf-8")
357
+ return self._req(
358
+ self._url(
359
+ f"/discovery/runs/{_escape(run_id)}/classes/{_escape(class_id)}/workflow"
360
+ ),
361
+ method="POST",
362
+ body=payload,
363
+ content_type="application/json",
364
+ )
365
+
366
+ def dismiss_discovery_class(self, run_id: str, class_id: str) -> Any:
367
+ return self._req(
368
+ self._url(
369
+ f"/discovery/runs/{_escape(run_id)}/classes/{_escape(class_id)}/dismiss"
370
+ ),
371
+ method="POST",
372
+ body=b"{}",
373
+ content_type="application/json",
374
+ )