stackgen-sdk 0.1.7__tar.gz → 0.2.0__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 (242) hide show
  1. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/.gitignore +2 -0
  2. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/PKG-INFO +1 -1
  3. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/_version.py +2 -2
  4. stackgen_sdk-0.2.0/src/stackgen/aiden/models.py +225 -0
  5. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/namespace.py +163 -0
  6. stackgen_sdk-0.2.0/src/stackgen/aiden/resources.py +250 -0
  7. stackgen_sdk-0.2.0/src/stackgen/aiden/subscribe.py +87 -0
  8. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/config.py +4 -1
  9. stackgen_sdk-0.2.0/src/stackgen/generated/.openapi-generator/FILES +603 -0
  10. stackgen_sdk-0.2.0/src/stackgen/generated/__init__.py +439 -0
  11. stackgen_sdk-0.2.0/src/stackgen/generated/api/aiden_api.py +21040 -0
  12. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/api/sre_api.py +11 -16
  13. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/api_client.py +2 -2
  14. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/configuration.py +3 -31
  15. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/exceptions.py +2 -2
  16. stackgen_sdk-0.2.0/src/stackgen/generated/models/__init__.py +211 -0
  17. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_app_mcp_binding.py +89 -0
  18. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_health_check.py +92 -0
  19. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_health_response.py +99 -0
  20. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_info.py +381 -0
  21. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_lifecycle_status.py +38 -0
  22. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_model_config.py +95 -0
  23. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_schedule.py +123 -0
  24. stackgen_sdk-0.2.0/src/stackgen/generated/models/agent_status.py +93 -0
  25. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_analysis_status.py +3 -3
  26. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_attention.py +3 -3
  27. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_categorization_summary.py +2 -2
  28. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_role.py +3 -3
  29. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_sort_by.py +2 -2
  30. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_status.py +2 -2
  31. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_summary.py +2 -2
  32. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_sync_run_status.py +2 -2
  33. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/alert_v1.py +6 -6
  34. stackgen_sdk-0.2.0/src/stackgen/generated/models/approval_item.py +158 -0
  35. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/artifact_info.py +2 -2
  36. stackgen_sdk-0.2.0/src/stackgen/generated/models/ask_execution_mode.py +37 -0
  37. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/ask_guild_request.py +16 -19
  38. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/ask_guild_start_response.py +11 -11
  39. stackgen_sdk-0.2.0/src/stackgen/generated/models/attach_policy_request.py +93 -0
  40. stackgen_sdk-0.2.0/src/stackgen/generated/models/audit_event.py +134 -0
  41. stackgen_sdk-0.1.7/src/stackgen/generated/models/prior_session_policy.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/audit_event_list_response.py +21 -28
  42. stackgen_sdk-0.2.0/src/stackgen/generated/models/audit_facets.py +93 -0
  43. stackgen_sdk-0.2.0/src/stackgen/generated/models/auto_approve_tool_rule.py +89 -0
  44. stackgen_sdk-0.2.0/src/stackgen/generated/models/autonomy_budget_config.py +97 -0
  45. stackgen_sdk-0.2.0/src/stackgen/generated/models/autonomy_budget_snapshot.py +107 -0
  46. stackgen_sdk-0.2.0/src/stackgen/generated/models/autonomy_budget_tier.py +38 -0
  47. stackgen_sdk-0.2.0/src/stackgen/generated/models/autonomy_budget_tier_reason.py +40 -0
  48. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/candidate_type.py +3 -3
  49. stackgen_sdk-0.2.0/src/stackgen/generated/models/container_image.py +89 -0
  50. stackgen_sdk-0.2.0/src/stackgen/generated/models/cost_band.py +93 -0
  51. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_document_request.py +104 -0
  52. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_knowledge_base_request.py +97 -0
  53. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_policy_request.py +98 -0
  54. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_remote_runner_request.py +100 -0
  55. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_remote_runner_response.py +89 -0
  56. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_schedule_request.py +119 -0
  57. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_skill_companion_file.py +98 -0
  58. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_skill_request.py +98 -0
  59. stackgen_sdk-0.2.0/src/stackgen/generated/models/create_webhook_request.py +112 -0
  60. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/dag_edge.py +6 -6
  61. stackgen_sdk-0.2.0/src/stackgen/generated/models/dag_node.py +128 -0
  62. stackgen_sdk-0.2.0/src/stackgen/generated/models/diary_compression.py +38 -0
  63. stackgen_sdk-0.2.0/src/stackgen/generated/models/diary_config.py +105 -0
  64. stackgen_sdk-0.2.0/src/stackgen/generated/models/discovered_tool.py +93 -0
  65. stackgen_sdk-0.2.0/src/stackgen/generated/models/document_ingest_status.py +109 -0
  66. stackgen_sdk-0.2.0/src/stackgen/generated/models/document_ingest_workflow_status.py +39 -0
  67. stackgen_sdk-0.2.0/src/stackgen/generated/models/document_processing_status.py +39 -0
  68. stackgen_sdk-0.2.0/src/stackgen/generated/models/duration_band.py +93 -0
  69. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/entity_ref.py +4 -4
  70. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/error_response.py +2 -2
  71. stackgen_sdk-0.2.0/src/stackgen/generated/models/eval_config.py +108 -0
  72. stackgen_sdk-0.2.0/src/stackgen/generated/models/evaluate_policy_request.py +96 -0
  73. stackgen_sdk-0.2.0/src/stackgen/generated/models/evaluate_policy_response.py +98 -0
  74. stackgen_sdk-0.2.0/src/stackgen/generated/models/execution_list_item.py +118 -0
  75. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/execution_meta.py +21 -11
  76. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/execution_structured_output.py +8 -8
  77. stackgen_sdk-0.2.0/src/stackgen/generated/models/execution_tool_call.py +99 -0
  78. stackgen_sdk-0.2.0/src/stackgen/generated/models/execution_tool_call_list.py +95 -0
  79. stackgen_sdk-0.2.0/src/stackgen/generated/models/fork_session_request.py +89 -0
  80. stackgen_sdk-0.2.0/src/stackgen/generated/models/git_config.py +93 -0
  81. stackgen_sdk-0.2.0/src/stackgen/generated/models/guild_integration.py +152 -0
  82. stackgen_sdk-0.1.7/src/stackgen/generated/models/json_error.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/guild_json_error.py +6 -6
  83. stackgen_sdk-0.2.0/src/stackgen/generated/models/guild_platform_config.py +101 -0
  84. stackgen_sdk-0.2.0/src/stackgen/generated/models/hal_guard_config.py +92 -0
  85. stackgen_sdk-0.2.0/src/stackgen/generated/models/health_check_status.py +38 -0
  86. stackgen_sdk-0.1.7/src/stackgen/generated/models/stage_binding_write.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/hitl_config.py +12 -18
  87. stackgen_sdk-0.2.0/src/stackgen/generated/models/ingested_document.py +145 -0
  88. stackgen_sdk-0.2.0/src/stackgen/generated/models/ingested_document1.py +145 -0
  89. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_mcp_auth_promotion.py +91 -0
  90. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_remote_runner.py +95 -0
  91. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_scope.py +38 -0
  92. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_sidecar_launch.py +97 -0
  93. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_test_result.py +101 -0
  94. stackgen_sdk-0.2.0/src/stackgen/generated/models/integration_type_info.py +125 -0
  95. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigate_alert_request.py +7 -4
  96. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigate_response.py +2 -2
  97. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation.py +2 -2
  98. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_evidence.py +3 -3
  99. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_evidence_kind.py +2 -2
  100. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_evidence_source.py +2 -2
  101. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_hypothesis.py +2 -2
  102. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_plain_summary.py +2 -2
  103. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_prior_incident.py +2 -2
  104. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_recommended_next_step.py +2 -2
  105. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_ref.py +5 -5
  106. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_status.py +3 -3
  107. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_structured_hypothesis_entry.py +2 -2
  108. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_structured_limitation_entry.py +2 -2
  109. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_structured_rca.py +2 -2
  110. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/investigation_triage_metadata.py +2 -2
  111. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_base.py +131 -0
  112. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_config.py +87 -0
  113. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_item.py +151 -0
  114. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_item_backend.py +37 -0
  115. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_item_operation.py +39 -0
  116. stackgen_sdk-0.2.0/src/stackgen/generated/models/knowledge_type.py +37 -0
  117. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/list_alerts_response.py +6 -4
  118. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/list_investigations_response.py +2 -2
  119. stackgen_sdk-0.2.0/src/stackgen/generated/models/list_remote_runner_tasks_response.py +97 -0
  120. stackgen_sdk-0.2.0/src/stackgen/generated/models/list_remote_runners_response.py +95 -0
  121. stackgen_sdk-0.2.0/src/stackgen/generated/models/llm_provider_type.py +44 -0
  122. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config.py +145 -0
  123. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_circuit_breaker.py +93 -0
  124. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_concurrency.py +89 -0
  125. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_context_mode.py +110 -0
  126. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_context_mode_per_tool_value.py +95 -0
  127. stackgen_sdk-0.1.7/src/stackgen/generated/models/register_agent_request_hitl.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_metrics.py +10 -10
  128. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_rate_limit.py +91 -0
  129. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_retry.py +89 -0
  130. stackgen_sdk-0.1.7/src/stackgen/generated/models/workflow_stage_write.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_sanitize.py +10 -16
  131. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_timeout.py +89 -0
  132. stackgen_sdk-0.1.7/src/stackgen/generated/models/register_agent_request_auto_approve_tools_inner.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_tracing.py +11 -11
  133. stackgen_sdk-0.2.0/src/stackgen/generated/models/middleware_config_validation.py +87 -0
  134. stackgen_sdk-0.1.7/src/stackgen/generated/models/execution_list_item.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/model_pricing.py +31 -35
  135. stackgen_sdk-0.2.0/src/stackgen/generated/models/model_provider_config.py +96 -0
  136. stackgen_sdk-0.2.0/src/stackgen/generated/models/navigation_mode.py +37 -0
  137. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/pagination.py +2 -2
  138. stackgen_sdk-0.1.7/src/stackgen/generated/models/register_agent_request.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/persona_variant_config.py +19 -21
  139. stackgen_sdk-0.2.0/src/stackgen/generated/models/pii_redaction_config.py +112 -0
  140. stackgen_sdk-0.2.0/src/stackgen/generated/models/pii_regex_rule.py +90 -0
  141. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy.py +115 -0
  142. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input.py +140 -0
  143. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_agent.py +91 -0
  144. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_approver.py +101 -0
  145. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_environment.py +93 -0
  146. stackgen_sdk-0.1.7/src/stackgen/generated/models/agent_status.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_principal.py +10 -10
  147. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_project_membership.py +91 -0
  148. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_requester.py +89 -0
  149. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_input_tool.py +91 -0
  150. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_evaluation_outcome.py +39 -0
  151. stackgen_sdk-0.2.0/src/stackgen/generated/models/policy_type.py +41 -0
  152. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/qualified_candidate.py +6 -6
  153. stackgen_sdk-0.2.0/src/stackgen/generated/models/rca_config.py +99 -0
  154. stackgen_sdk-0.2.0/src/stackgen/generated/models/reasoning_effort_setting.py +43 -0
  155. stackgen_sdk-0.2.0/src/stackgen/generated/models/register_agent_request.py +244 -0
  156. stackgen_sdk-0.2.0/src/stackgen/generated/models/registered_model.py +127 -0
  157. stackgen_sdk-0.2.0/src/stackgen/generated/models/remote_runner_info.py +125 -0
  158. stackgen_sdk-0.2.0/src/stackgen/generated/models/remote_runner_task_info.py +124 -0
  159. stackgen_sdk-0.2.0/src/stackgen/generated/models/resolve_approval_request.py +105 -0
  160. stackgen_sdk-0.2.0/src/stackgen/generated/models/run_workflow_request.py +104 -0
  161. stackgen_sdk-0.2.0/src/stackgen/generated/models/run_workflow_response.py +103 -0
  162. stackgen_sdk-0.2.0/src/stackgen/generated/models/runbook_config.py +95 -0
  163. stackgen_sdk-0.2.0/src/stackgen/generated/models/runner_capability.py +91 -0
  164. stackgen_sdk-0.2.0/src/stackgen/generated/models/runner_status.py +39 -0
  165. stackgen_sdk-0.2.0/src/stackgen/generated/models/scan_finding.py +102 -0
  166. stackgen_sdk-0.2.0/src/stackgen/generated/models/schedule_history.py +112 -0
  167. stackgen_sdk-0.2.0/src/stackgen/generated/models/schedule_run_list_response.py +97 -0
  168. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/schedule_run_status.py +2 -2
  169. stackgen_sdk-0.2.0/src/stackgen/generated/models/schedule_source.py +38 -0
  170. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/schedule_target_type.py +2 -2
  171. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session.py +2 -2
  172. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_export.py +7 -7
  173. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_export_part.py +5 -5
  174. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_export_part_kind.py +3 -3
  175. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_list_response.py +3 -3
  176. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_responder_kind.py +2 -2
  177. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/session_summary.py +26 -20
  178. stackgen_sdk-0.2.0/src/stackgen/generated/models/sidecar_health_probes.py +89 -0
  179. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/signal_severity.py +2 -2
  180. stackgen_sdk-0.2.0/src/stackgen/generated/models/skill.py +132 -0
  181. stackgen_sdk-0.1.7/src/stackgen/generated/models/dag_node.py → stackgen_sdk-0.2.0/src/stackgen/generated/models/skill_file.py +19 -24
  182. stackgen_sdk-0.2.0/src/stackgen/generated/models/skill_summary.py +120 -0
  183. stackgen_sdk-0.2.0/src/stackgen/generated/models/stage_binding.py +130 -0
  184. stackgen_sdk-0.2.0/src/stackgen/generated/models/stage_expectation.py +95 -0
  185. stackgen_sdk-0.2.0/src/stackgen/generated/models/start_chat_json_body.py +93 -0
  186. stackgen_sdk-0.2.0/src/stackgen/generated/models/start_chat_response.py +91 -0
  187. stackgen_sdk-0.2.0/src/stackgen/generated/models/subagent_spawn_contract.py +109 -0
  188. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/sync_response.py +2 -2
  189. stackgen_sdk-0.2.0/src/stackgen/generated/models/task_error_category.py +41 -0
  190. stackgen_sdk-0.2.0/src/stackgen/generated/models/task_status.py +42 -0
  191. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/terminate_session_response.py +6 -6
  192. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/trace_dag_response.py +7 -7
  193. stackgen_sdk-0.2.0/src/stackgen/generated/models/trigger_schedule202_response.py +89 -0
  194. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/trigger_webhook202_response.py +4 -8
  195. stackgen_sdk-0.2.0/src/stackgen/generated/models/update_agent_request.py +238 -0
  196. stackgen_sdk-0.2.0/src/stackgen/generated/models/upsert_integration_request.py +123 -0
  197. stackgen_sdk-0.2.0/src/stackgen/generated/models/version_status.py +39 -0
  198. stackgen_sdk-0.2.0/src/stackgen/generated/models/webhook.py +117 -0
  199. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/webhook_run.py +2 -2
  200. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/webhook_run_detail.py +2 -2
  201. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/models/webhook_run_list_response.py +2 -2
  202. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow.py +209 -0
  203. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_metadata.py +97 -0
  204. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_output_contract.py +97 -0
  205. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_run_expectations.py +135 -0
  206. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_stage.py +93 -0
  207. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_tool_middleware.py +97 -0
  208. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_tool_middleware_circuit_breaker.py +91 -0
  209. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_tool_middleware_concurrency.py +91 -0
  210. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_trigger.py +94 -0
  211. stackgen_sdk-0.2.0/src/stackgen/generated/models/workflow_trigger_type.py +37 -0
  212. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/rest.py +2 -2
  213. stackgen_sdk-0.1.7/src/stackgen/generated/.openapi-generator/FILES +0 -219
  214. stackgen_sdk-0.1.7/src/stackgen/generated/__init__.py +0 -183
  215. stackgen_sdk-0.1.7/src/stackgen/generated/api/aiden_api.py +0 -6054
  216. stackgen_sdk-0.1.7/src/stackgen/generated/models/__init__.py +0 -83
  217. stackgen_sdk-0.1.7/src/stackgen/generated/models/workflow.py +0 -117
  218. stackgen_sdk-0.1.7/src/stackgen/generated/models/workflow_write.py +0 -129
  219. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/README.md +0 -0
  220. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/pyproject.toml +0 -0
  221. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/__init__.py +0 -0
  222. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/_http.py +0 -0
  223. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/__init__.py +0 -0
  224. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/ask.py +0 -0
  225. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/run_status.py +0 -0
  226. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/runs.py +0 -0
  227. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/sessions.py +0 -0
  228. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/webhook.py +0 -0
  229. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/webhook_ops.py +0 -0
  230. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/workflow_builder.py +0 -0
  231. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/aiden/workflow_publish.py +0 -0
  232. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/cli.py +0 -0
  233. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/client.py +0 -0
  234. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/errors.py +0 -0
  235. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/.openapi-generator/VERSION +0 -0
  236. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/.openapi-generator-ignore +0 -0
  237. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/api/__init__.py +0 -0
  238. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/generated/api_response.py +0 -0
  239. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/sre/__init__.py +0 -0
  240. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/sre/namespace.py +0 -0
  241. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/vault/__init__.py +0 -0
  242. {stackgen_sdk-0.1.7 → stackgen_sdk-0.2.0}/src/stackgen/vault/namespace.py +0 -0
@@ -6,6 +6,7 @@ __pycache__/
6
6
  dist/
7
7
  build/
8
8
  .venv/
9
+ .venv-sync/
9
10
  venv/
10
11
  .venv/**
11
12
  .pytest_cache/
@@ -40,3 +41,4 @@ docs/vendor/
40
41
 
41
42
  # hatch-vcs generated version module (written at build time)
42
43
  clients/python/src/stackgen/_version.py
44
+ .venv-sync/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stackgen-sdk
3
- Version: 0.1.7
3
+ Version: 0.2.0
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/
@@ -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.1.7'
22
- __version_tuple__ = version_tuple = (0, 1, 7)
21
+ __version__ = version = '0.2.0'
22
+ __version_tuple__ = version_tuple = (0, 2, 0)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -0,0 +1,225 @@
1
+ """Aiden model registry — providers and registered models.
2
+
3
+ Hand-written facade over Guild ``/guild/api/v1/model-providers`` and
4
+ ``/guild/api/v1/models`` (see stackgen-guild ``api-docs/openapi.yml``).
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import json
10
+ import urllib.parse
11
+ from typing import Any
12
+
13
+ from stackgen import _http
14
+ from stackgen.config import StackgenConfig
15
+ from stackgen.errors import HttpError
16
+
17
+
18
+ class ModelRegistry:
19
+ """CRUD helpers for OpenAI-compatible (and other) model providers/models."""
20
+
21
+ def __init__(self, config: StackgenConfig) -> None:
22
+ self._config = config
23
+
24
+ def _org(self) -> str:
25
+ org = (self._config.org_id or "").strip()
26
+ if not org:
27
+ raise ValueError("org_id is required for model registry calls")
28
+ return org
29
+
30
+ def _url(self, path: str) -> str:
31
+ return f"{self._config.aiden_url()}/api/v1{path}{_http.query(self._org())}"
32
+
33
+ def _json(
34
+ self,
35
+ method: str,
36
+ path: str,
37
+ body: dict[str, Any] | None = None,
38
+ ) -> Any:
39
+ payload = None
40
+ content_type = None
41
+ if body is not None:
42
+ payload = json.dumps(body).encode("utf-8")
43
+ content_type = "application/json"
44
+ return _http.request(
45
+ self._url(path),
46
+ self._config.api_token,
47
+ method=method,
48
+ body=payload,
49
+ content_type=content_type,
50
+ )
51
+
52
+ def list_providers(self) -> list[dict[str, Any]]:
53
+ """GET /guild/api/v1/model-providers."""
54
+ return _http.as_list(self._json("GET", "/model-providers"))
55
+
56
+ def get_provider(self, name: str) -> dict[str, Any]:
57
+ """GET /guild/api/v1/model-providers/{name}."""
58
+ enc = urllib.parse.quote(name, safe="")
59
+ out = self._json("GET", f"/model-providers/{enc}")
60
+ if not isinstance(out, dict):
61
+ raise HttpError(f"unexpected provider payload for {name!r}")
62
+ return out
63
+
64
+ def create_provider(
65
+ self,
66
+ *,
67
+ name: str,
68
+ provider_type: str = "openai",
69
+ host: str = "",
70
+ token_reference: str = "",
71
+ ) -> dict[str, Any]:
72
+ """POST /guild/api/v1/model-providers."""
73
+ body: dict[str, Any] = {"name": name, "provider_type": provider_type}
74
+ if host:
75
+ body["host"] = host.rstrip("/")
76
+ if token_reference:
77
+ body["token_reference"] = token_reference
78
+ out = self._json("POST", "/model-providers", body)
79
+ if not isinstance(out, dict):
80
+ raise HttpError(f"unexpected create provider payload for {name!r}")
81
+ return out
82
+
83
+ def update_provider(
84
+ self,
85
+ name: str,
86
+ *,
87
+ host: str | None = None,
88
+ token_reference: str | None = None,
89
+ provider_type: str | None = None,
90
+ ) -> dict[str, Any]:
91
+ """PUT /guild/api/v1/model-providers/{name}."""
92
+ body: dict[str, Any] = {}
93
+ if host is not None:
94
+ body["host"] = host.rstrip("/")
95
+ if token_reference is not None:
96
+ body["token_reference"] = token_reference
97
+ if provider_type is not None:
98
+ body["provider_type"] = provider_type
99
+ enc = urllib.parse.quote(name, safe="")
100
+ out = self._json("PUT", f"/model-providers/{enc}", body)
101
+ if not isinstance(out, dict):
102
+ raise HttpError(f"unexpected update provider payload for {name!r}")
103
+ return out
104
+
105
+ def ensure_provider(
106
+ self,
107
+ *,
108
+ name: str,
109
+ host: str,
110
+ provider_type: str = "openai",
111
+ token_reference: str = "",
112
+ ) -> dict[str, Any]:
113
+ """Create provider if missing, then set host (and optional token_reference)."""
114
+ try:
115
+ self.create_provider(
116
+ name=name,
117
+ provider_type=provider_type,
118
+ host=host,
119
+ token_reference=token_reference,
120
+ )
121
+ except HttpError as err:
122
+ if err.status_code != 409:
123
+ raise
124
+ return self.update_provider(
125
+ name,
126
+ host=host,
127
+ token_reference=token_reference or None,
128
+ provider_type=provider_type,
129
+ )
130
+
131
+ def list_models(self, *, provider_name: str = "") -> list[dict[str, Any]]:
132
+ """GET /guild/api/v1/models."""
133
+ base = f"{self._config.aiden_url()}/api/v1/models"
134
+ params: dict[str, str] = {"orgId": self._org()}
135
+ if provider_name:
136
+ params["provider_name"] = provider_name
137
+ q = urllib.parse.urlencode(params)
138
+ return _http.as_list(
139
+ _http.request(
140
+ f"{base}?{q}",
141
+ self._config.api_token,
142
+ method="GET",
143
+ )
144
+ )
145
+
146
+ def get_model(self, name: str) -> dict[str, Any]:
147
+ """GET /guild/api/v1/models/{name}."""
148
+ enc = urllib.parse.quote(name, safe="")
149
+ out = self._json("GET", f"/models/{enc}")
150
+ if not isinstance(out, dict):
151
+ raise HttpError(f"unexpected model payload for {name!r}")
152
+ return out
153
+
154
+ def create_model(
155
+ self,
156
+ *,
157
+ name: str,
158
+ provider_name: str,
159
+ model_id: str,
160
+ thinking: bool = False,
161
+ ) -> dict[str, Any]:
162
+ """POST /guild/api/v1/models (live-probes the provider host)."""
163
+ body: dict[str, Any] = {
164
+ "name": name,
165
+ "provider_name": provider_name,
166
+ "model_id": model_id,
167
+ "thinking": thinking,
168
+ }
169
+ out = self._json("POST", "/models", body)
170
+ if not isinstance(out, dict):
171
+ raise HttpError(f"unexpected create model payload for {name!r}")
172
+ return out
173
+
174
+ def ensure_model(
175
+ self,
176
+ *,
177
+ name: str,
178
+ provider_name: str,
179
+ model_id: str,
180
+ thinking: bool = False,
181
+ ) -> dict[str, Any]:
182
+ """Return existing model or create it (requires reachable provider host)."""
183
+ try:
184
+ return self.get_model(name)
185
+ except HttpError as err:
186
+ if err.status_code != 404:
187
+ raise
188
+ try:
189
+ return self.create_model(
190
+ name=name,
191
+ provider_name=provider_name,
192
+ model_id=model_id,
193
+ thinking=thinking,
194
+ )
195
+ except HttpError as err:
196
+ if err.status_code == 409:
197
+ return self.get_model(name)
198
+ raise
199
+
200
+ def ensure_openai_peft_model(
201
+ self,
202
+ *,
203
+ serve_url: str,
204
+ model_name: str = "sre-slm-qwen3-32b",
205
+ provider_name: str = "sre-slm-peft",
206
+ model_id: str = "sre-slm-qwen3-32b",
207
+ token_reference: str = "",
208
+ ) -> dict[str, Any]:
209
+ """Ensure OpenAI-compatible provider + model pointed at a PEFT serve URL.
210
+
211
+ ``serve_url`` should look like ``http://<ip>:8000/v1``. Create model
212
+ live-probes the host, so PEFT serve must already be up.
213
+ """
214
+ provider = self.ensure_provider(
215
+ name=provider_name,
216
+ host=serve_url,
217
+ provider_type="openai",
218
+ token_reference=token_reference,
219
+ )
220
+ model = self.ensure_model(
221
+ name=model_name,
222
+ provider_name=provider_name,
223
+ model_id=model_id,
224
+ )
225
+ return {"provider": provider, "model": model}
@@ -6,7 +6,10 @@ from pathlib import Path
6
6
  from typing import Any
7
7
 
8
8
  from stackgen.aiden.ask import AskArtifactJourney, AskArtifactResult
9
+ from stackgen.aiden.models import ModelRegistry
10
+ from stackgen.aiden.resources import AidenResources
9
11
  from stackgen.aiden.run_status import RunStatus, build_run_status, require_run_ids
12
+ from stackgen.aiden.subscribe import ExecutionSubscribe, SubscribeCompleteResult
10
13
  from stackgen.aiden.webhook import WebhookReportJourney, WebhookReportResult
11
14
  from stackgen.aiden.webhook_ops import WebhookOps
12
15
  from stackgen.aiden.workflow_builder import AgentDefinition, WorkflowDefinition
@@ -24,6 +27,9 @@ class AidenNamespace:
24
27
  self._ask = AskArtifactJourney(config)
25
28
  self._workflows = WorkflowPublishJourney(config)
26
29
  self._webhook_ops = WebhookOps(config)
30
+ self._resources = AidenResources(config)
31
+ self._subscribe = ExecutionSubscribe(config)
32
+ self.models = ModelRegistry(config)
27
33
 
28
34
  def run_webhook_and_download_report(
29
35
  self,
@@ -227,6 +233,12 @@ class AidenNamespace:
227
233
  """
228
234
  return self._ask.wait_for_execution(trace_id)
229
235
 
236
+ def wait_for_subscribe_complete(
237
+ self, trace_id: str, *, timeout_ms: int = 10 * 60 * 1000
238
+ ) -> SubscribeCompleteResult:
239
+ """GET SSE /guild/api/v1/executions/{traceId}/subscribe until complete."""
240
+ return self._subscribe.wait_for_complete(trace_id, timeout_ms=timeout_ms)
241
+
230
242
  def publish_workflow(
231
243
  self,
232
244
  workflow: WorkflowDefinition,
@@ -239,3 +251,154 @@ class AidenNamespace:
239
251
  Pass a committed builder from ``create_workflow(...).then(...).commit()``.
240
252
  """
241
253
  return self._workflows.publish(workflow, agents=agents, approve=approve)
254
+
255
+ # Expanded allowlisted surface (thin REST) — delegated to AidenResources.
256
+ def get_agent(self, name: str) -> dict[str, Any]:
257
+ return self._resources.get_agent(name)
258
+
259
+ def deregister_agent(self, name: str) -> dict[str, Any]:
260
+ return self._resources.deregister_agent(name)
261
+
262
+ def get_agent_health(self, name: str) -> dict[str, Any]:
263
+ return self._resources.get_agent_health(name)
264
+
265
+ def create_webhook(self, body: dict[str, Any]) -> dict[str, Any]:
266
+ return self._resources.create_webhook(body)
267
+
268
+ def get_webhook(self, webhook_id: str) -> dict[str, Any]:
269
+ return self._resources.get_webhook(webhook_id)
270
+
271
+ def delete_webhook(self, webhook_id: str) -> dict[str, Any]:
272
+ return self._resources.delete_webhook(webhook_id)
273
+
274
+ def create_schedule(self, body: dict[str, Any]) -> dict[str, Any]:
275
+ return self._resources.create_schedule(body)
276
+
277
+ def trigger_schedule(self, schedule_id: str) -> dict[str, Any]:
278
+ return self._resources.trigger_schedule(schedule_id)
279
+
280
+ def list_schedule_runs(self, schedule_id: str) -> list[dict[str, Any]]:
281
+ return self._resources.list_schedule_runs(schedule_id)
282
+
283
+ def delete_schedule(self, schedule_id: str) -> dict[str, Any]:
284
+ return self._resources.delete_schedule(schedule_id)
285
+
286
+ def list_integrations(self) -> list[dict[str, Any]]:
287
+ return self._resources.list_integrations()
288
+
289
+ def list_integration_types(self) -> list[dict[str, Any]]:
290
+ return self._resources.list_integration_types()
291
+
292
+ def get_integration(self, name: str) -> dict[str, Any]:
293
+ return self._resources.get_integration(name)
294
+
295
+ def upsert_integration(self, name: str, body: dict[str, Any]) -> dict[str, Any]:
296
+ return self._resources.upsert_integration(name, body)
297
+
298
+ def delete_integration(self, name: str) -> dict[str, Any]:
299
+ return self._resources.delete_integration(name)
300
+
301
+ def test_integration_connection(self, name: str) -> dict[str, Any]:
302
+ return self._resources.test_integration_connection(name)
303
+
304
+ def refresh_integration_tools(self, name: str) -> dict[str, Any]:
305
+ return self._resources.refresh_integration_tools(name)
306
+
307
+ def list_approvals(self, **params: Any) -> list[dict[str, Any]]:
308
+ return self._resources.list_approvals(**params)
309
+
310
+ def resolve_approval(self, approval_id: str, body: dict[str, Any]) -> dict[str, Any]:
311
+ return self._resources.resolve_approval(approval_id, body)
312
+
313
+ def create_policy(self, body: dict[str, Any]) -> dict[str, Any]:
314
+ return self._resources.create_policy(body)
315
+
316
+ def attach_policy(self, agent_name: str, body: dict[str, Any]) -> dict[str, Any]:
317
+ return self._resources.attach_policy(agent_name, body)
318
+
319
+ def detach_policy(self, agent_name: str, policy_id: str) -> dict[str, Any]:
320
+ return self._resources.detach_policy(agent_name, policy_id)
321
+
322
+ def delete_policy(self, policy_id: str) -> dict[str, Any]:
323
+ return self._resources.delete_policy(policy_id)
324
+
325
+ def evaluate_policy(self, body: dict[str, Any]) -> dict[str, Any]:
326
+ return self._resources.evaluate_policy(body)
327
+
328
+ def list_audit_events(self, **params: Any) -> list[dict[str, Any]]:
329
+ return self._resources.list_audit_events(**params)
330
+
331
+ def get_audit_event(self, event_id: str) -> dict[str, Any]:
332
+ return self._resources.get_audit_event(event_id)
333
+
334
+ def list_audit_facets(self, **params: Any) -> dict[str, Any]:
335
+ return self._resources.list_audit_facets(**params)
336
+
337
+ def list_models(self) -> list[dict[str, Any]]:
338
+ return self._resources.list_models()
339
+
340
+ def list_tools(self, **params: Any) -> list[dict[str, Any]]:
341
+ return self._resources.list_tools(**params)
342
+
343
+ def start_agent_chat(self, agent_name: str, body: dict[str, Any]) -> dict[str, Any]:
344
+ return self._resources.start_agent_chat(agent_name, body)
345
+
346
+ def fork_session(
347
+ self, session_id: str, body: dict[str, Any] | None = None
348
+ ) -> dict[str, Any]:
349
+ return self._resources.fork_session(session_id, body)
350
+
351
+ def list_execution_tool_calls(
352
+ self, trace_id: str, **params: Any
353
+ ) -> list[dict[str, Any]]:
354
+ return self._resources.list_execution_tool_calls(trace_id, **params)
355
+
356
+ def delete_workflow(self, name: str) -> dict[str, Any]:
357
+ return self._resources.delete_workflow(name)
358
+
359
+ def run_workflow(
360
+ self, name: str, body: dict[str, Any] | None = None
361
+ ) -> dict[str, Any]:
362
+ return self._resources.run_workflow(name, body)
363
+
364
+ def create_knowledge_base(self, body: dict[str, Any]) -> dict[str, Any]:
365
+ return self._resources.create_knowledge_base(body)
366
+
367
+ def delete_knowledge_base(self, knowledge_base_id: str) -> dict[str, Any]:
368
+ return self._resources.delete_knowledge_base(knowledge_base_id)
369
+
370
+ def create_knowledge_document(self, body: dict[str, Any]) -> dict[str, Any]:
371
+ return self._resources.create_knowledge_document(body)
372
+
373
+ def get_knowledge_document(self, document_id: str) -> dict[str, Any]:
374
+ return self._resources.get_knowledge_document(document_id)
375
+
376
+ def list_knowledge_documents(self, **params: Any) -> list[dict[str, Any]]:
377
+ return self._resources.list_knowledge_documents(**params)
378
+
379
+ def delete_knowledge_document(self, document_id: str) -> dict[str, Any]:
380
+ return self._resources.delete_knowledge_document(document_id)
381
+
382
+ def list_knowledge_items(self, **params: Any) -> list[dict[str, Any]]:
383
+ return self._resources.list_knowledge_items(**params)
384
+
385
+ def create_skill(self, body: dict[str, Any]) -> dict[str, Any]:
386
+ return self._resources.create_skill(body)
387
+
388
+ def delete_skill(self, skill_id: str) -> dict[str, Any]:
389
+ return self._resources.delete_skill(skill_id)
390
+
391
+ def create_remote_runner(self, body: dict[str, Any]) -> dict[str, Any]:
392
+ return self._resources.create_remote_runner(body)
393
+
394
+ def get_remote_runner(self, runner_id: str) -> dict[str, Any]:
395
+ return self._resources.get_remote_runner(runner_id)
396
+
397
+ def list_remote_runners(self, **params: Any) -> list[dict[str, Any]]:
398
+ return self._resources.list_remote_runners(**params)
399
+
400
+ def list_remote_runner_tasks(self, runner_id: str) -> list[dict[str, Any]]:
401
+ return self._resources.list_remote_runner_tasks(runner_id)
402
+
403
+ def revoke_remote_runner(self, runner_id: str) -> dict[str, Any]:
404
+ return self._resources.revoke_remote_runner(runner_id)