iac-code 0.11.1__tar.gz → 0.11.3__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 (619) hide show
  1. {iac_code-0.11.1 → iac_code-0.11.3}/PKG-INFO +1 -1
  2. iac_code-0.11.3/src/iac_code/__init__.py +2 -0
  3. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/dispatcher.py +13 -1
  4. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/main.py +11 -1
  5. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/config.py +3 -22
  6. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.mo +0 -0
  7. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.po +54 -1
  8. iac_code-0.11.3/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.mo +0 -0
  9. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.po +70 -0
  10. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.mo +0 -0
  11. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.po +52 -1
  12. iac_code-0.11.3/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.mo +0 -0
  13. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.po +69 -0
  14. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.mo +0 -0
  15. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.po +51 -1
  16. iac_code-0.11.3/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.mo +0 -0
  17. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.po +70 -0
  18. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
  19. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.po +51 -1
  20. iac_code-0.11.3/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.mo +0 -0
  21. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.po +62 -0
  22. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.mo +0 -0
  23. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.po +53 -1
  24. iac_code-0.11.3/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.mo +0 -0
  25. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.po +69 -0
  26. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.mo +0 -0
  27. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.po +47 -1
  28. iac_code-0.11.3/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.mo +0 -0
  29. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.po +62 -0
  30. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/handoff.py +14 -1
  31. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/intent_parsing.md +1 -0
  32. iac_code-0.11.3/src/iac_code/pipeline/selling/references/solutions/iac-code-web.md +32 -0
  33. iac_code-0.11.3/src/iac_code/pipeline/selling/references/solutions/iac-code-web.ros.yml +318 -0
  34. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/SKILL.md +3 -0
  35. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/solutions/iac-code-web.md +32 -0
  36. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/solutions/iac-code-web.ros.yml +318 -0
  37. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/SKILL.md +1 -0
  38. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/solutions/iac-code-web.md +32 -0
  39. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/solutions/iac-code-web.ros.yml +318 -0
  40. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/SKILL.md +4 -0
  41. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/solutions/iac-code-web.md +32 -0
  42. iac_code-0.11.3/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/solutions/iac-code-web.ros.yml +318 -0
  43. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/anthropic_provider.py +6 -1
  44. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/dashscope_provider.py +2 -2
  45. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/deepseek_provider.py +5 -1
  46. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/manager.py +8 -6
  47. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/registry.py +7 -2
  48. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/thinking.py +78 -13
  49. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/context_manager.py +5 -2
  50. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/providers/aliyun_oauth.py +69 -10
  51. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/constants.py +3 -0
  52. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/identity.py +9 -2
  53. iac_code-0.11.3/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.md +32 -0
  54. iac_code-0.11.3/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.ros.yml +318 -0
  55. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_stack.py +15 -0
  56. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py +25 -0
  57. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/base_stack.py +3 -1
  58. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/types.py +1 -0
  59. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/app.py +33 -2
  60. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/server.py +20 -4
  61. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/settings.py +101 -15
  62. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/index.html +2 -2
  63. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/api.js +143 -9
  64. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/app.js +14 -5
  65. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/composer.js +12 -3
  66. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/workspace.js +17 -3
  67. iac_code-0.11.3/src/iac_code/web/static/js/token_transport.js +441 -0
  68. iac_code-0.11.3/src/iac_code/web/static/js/vendor/token-crypto.js +302 -0
  69. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/styles.css +93 -0
  70. iac_code-0.11.3/src/iac_code/web/token_transport.py +594 -0
  71. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/PKG-INFO +1 -1
  72. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/SOURCES.txt +14 -1
  73. iac_code-0.11.1/src/iac_code/__init__.py +0 -2
  74. iac_code-0.11.1/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.mo +0 -0
  75. iac_code-0.11.1/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.mo +0 -0
  76. iac_code-0.11.1/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.mo +0 -0
  77. iac_code-0.11.1/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.mo +0 -0
  78. iac_code-0.11.1/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.mo +0 -0
  79. iac_code-0.11.1/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.mo +0 -0
  80. {iac_code-0.11.1 → iac_code-0.11.3}/LICENSE +0 -0
  81. {iac_code-0.11.1 → iac_code-0.11.3}/MANIFEST.in +0 -0
  82. {iac_code-0.11.1 → iac_code-0.11.3}/README.md +0 -0
  83. {iac_code-0.11.1 → iac_code-0.11.3}/pyproject.toml +0 -0
  84. {iac_code-0.11.1 → iac_code-0.11.3}/setup.cfg +0 -0
  85. {iac_code-0.11.1 → iac_code-0.11.3}/setup.py +0 -0
  86. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/__init__.py +0 -0
  87. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/agent_card.py +0 -0
  88. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/app.py +0 -0
  89. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/artifacts.py +0 -0
  90. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/backup.py +0 -0
  91. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/client.py +0 -0
  92. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/events.py +0 -0
  93. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/executor.py +0 -0
  94. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/exposure.py +0 -0
  95. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/jsonrpc_passthrough.py +0 -0
  96. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/metadata_redaction.py +0 -0
  97. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/metrics.py +0 -0
  98. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/parts.py +0 -0
  99. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/persistence.py +0 -0
  100. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_delta_coalescing.py +0 -0
  101. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_events.py +0 -0
  102. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_executor.py +0 -0
  103. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_flow_monitor.py +0 -0
  104. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_journal.py +0 -0
  105. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_outbound.py +0 -0
  106. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_paths.py +0 -0
  107. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_performance.py +0 -0
  108. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_recovery.py +0 -0
  109. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_snapshot.py +0 -0
  110. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_stream.py +0 -0
  111. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/pipeline_transport_delivery.py +0 -0
  112. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/projection.py +0 -0
  113. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/push.py +0 -0
  114. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/push_queue.py +0 -0
  115. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/push_secrets.py +0 -0
  116. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/push_worker.py +0 -0
  117. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/router.py +0 -0
  118. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/runtime_overrides.py +0 -0
  119. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/runtime_registry.py +0 -0
  120. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/signing.py +0 -0
  121. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/task_store.py +0 -0
  122. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/thinking_metadata.py +0 -0
  123. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transport.py +0 -0
  124. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/__init__.py +0 -0
  125. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/base.py +0 -0
  126. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/grpc.py +0 -0
  127. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/grpc_jsonrpc.py +0 -0
  128. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/http.py +0 -0
  129. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/redis_streams.py +0 -0
  130. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/stdio.py +0 -0
  131. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/unix.py +0 -0
  132. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/transports/websocket.py +0 -0
  133. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/a2a/types.py +0 -0
  134. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/__init__.py +0 -0
  135. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/convert.py +0 -0
  136. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/http_sse.py +0 -0
  137. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/mcp.py +0 -0
  138. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/metrics.py +0 -0
  139. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/runner.py +0 -0
  140. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/server.py +0 -0
  141. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/session.py +0 -0
  142. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/slash_registry.py +0 -0
  143. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/state.py +0 -0
  144. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/tools.py +0 -0
  145. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/types.py +0 -0
  146. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/acp/version.py +0 -0
  147. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/__init__.py +0 -0
  148. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/agent_loop.py +0 -0
  149. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/agent_tool.py +0 -0
  150. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/agent_types.py +0 -0
  151. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/message.py +0 -0
  152. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/agent/system_prompt.py +0 -0
  153. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/__init__.py +0 -0
  154. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/headless.py +0 -0
  155. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/install_git_bash.py +0 -0
  156. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/output_formats.py +0 -0
  157. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/process_events.py +0 -0
  158. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/process_mode.py +0 -0
  159. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/process_protocol.py +0 -0
  160. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/cli/update.py +0 -0
  161. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/__init__.py +0 -0
  162. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/auth.py +0 -0
  163. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/clear.py +0 -0
  164. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/compact.py +0 -0
  165. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/debug.py +0 -0
  166. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/effort.py +0 -0
  167. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/exit.py +0 -0
  168. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/help.py +0 -0
  169. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/mcp.py +0 -0
  170. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/memory.py +0 -0
  171. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/model.py +0 -0
  172. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/prompt.py +0 -0
  173. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/registry.py +0 -0
  174. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/rename.py +0 -0
  175. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/resume.py +0 -0
  176. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/skills.py +0 -0
  177. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/status.py +0 -0
  178. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/tasks.py +0 -0
  179. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/commands/thinking_enabled.py +0 -0
  180. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/__init__.py +0 -0
  181. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/i18n/html_extractor.py +0 -0
  182. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/__init__.py +0 -0
  183. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/cli.py +0 -0
  184. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/client.py +0 -0
  185. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/config.py +0 -0
  186. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/env_expansion.py +0 -0
  187. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/errors.py +0 -0
  188. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/manager.py +0 -0
  189. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/oauth.py +0 -0
  190. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/output.py +0 -0
  191. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/progress.py +0 -0
  192. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/prompt_dispatch.py +0 -0
  193. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/prompts.py +0 -0
  194. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/redaction.py +0 -0
  195. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/skills.py +0 -0
  196. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/storage.py +0 -0
  197. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/tools.py +0 -0
  198. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/mcp/types.py +0 -0
  199. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/memory/__init__.py +0 -0
  200. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/memory/memory_manager.py +0 -0
  201. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/memory/memory_tools.py +0 -0
  202. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/memory/project_memory.py +0 -0
  203. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/memory/recall.py +0 -0
  204. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/__init__.py +0 -0
  205. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/config.py +0 -0
  206. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/constants.py +0 -0
  207. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/display_names.py +0 -0
  208. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/__init__.py +0 -0
  209. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_graph.py +0 -0
  210. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_meta.py +0 -0
  211. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_metas/Categories.json +0 -0
  212. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_metas/config.json +0 -0
  213. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_metas/products.json +0 -0
  214. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_resource_inventory.py +0 -0
  215. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_rule_candidates.py +0 -0
  216. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_rule_drafts.py +0 -0
  217. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_rule_facts.py +0 -0
  218. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_rules.json +0 -0
  219. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_rules.py +0 -0
  220. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/architecture_semantic_planning.py +0 -0
  221. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/ask_user_question_tool.py +0 -0
  222. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/cleanup.py +0 -0
  223. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/complete_step_tool.py +0 -0
  224. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/completion_guard_state.py +0 -0
  225. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/context.py +0 -0
  226. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/display_replay.py +0 -0
  227. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/events.py +0 -0
  228. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/interrupt.py +0 -0
  229. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/loader.py +0 -0
  230. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/observability.py +0 -0
  231. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/pipeline_runner.py +0 -0
  232. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/prerequisites.py +0 -0
  233. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/prompts/interrupt_judge.md +0 -0
  234. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/public_errors.py +0 -0
  235. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/recovery.py +0 -0
  236. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/resume_recovery.py +0 -0
  237. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/session.py +0 -0
  238. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/show_diagram_tool.py +0 -0
  239. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/state_machine.py +0 -0
  240. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/step_executor.py +0 -0
  241. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/step_spec.py +0 -0
  242. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/sub_pipeline_executor.py +0 -0
  243. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/transcript_storage.py +0 -0
  244. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/types.py +0 -0
  245. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/ui_contract.py +0 -0
  246. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/engine/user_input.py +0 -0
  247. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/hooks/deploying.py +0 -0
  248. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/pipeline.yaml +0 -0
  249. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/architecture_planning.md +0 -0
  250. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/confirm_and_select.a2a.md +0 -0
  251. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/confirm_and_select.md +0 -0
  252. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/cost_estimating.md +0 -0
  253. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/deploying.md +0 -0
  254. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/evaluate_candidates.md +0 -0
  255. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/reviewing.md +0 -0
  256. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/prompts/template_generating.md +0 -0
  257. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/ecs.md +0 -0
  258. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/oss.md +0 -0
  259. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/rds.md +0 -0
  260. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/redis.md +0 -0
  261. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/slb.md +0 -0
  262. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/cloud-products/vpc.md +0 -0
  263. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/ros-template.md +0 -0
  264. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/template-parameter-recommendation.md +0 -0
  265. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/template-parameters.md +0 -0
  266. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/references/terraform-template.md +0 -0
  267. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/evals.json +0 -0
  268. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/SKILL.md +0 -0
  269. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/evals.json +0 -0
  270. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/ecs.md +0 -0
  271. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/oss.md +0 -0
  272. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/rds.md +0 -0
  273. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/redis.md +0 -0
  274. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/slb.md +0 -0
  275. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/vpc.md +0 -0
  276. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/ros-template.md +0 -0
  277. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameter-recommendation.md +0 -0
  278. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameters.md +0 -0
  279. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/terraform-template.md +0 -0
  280. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/evals.json +0 -0
  281. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/ecs.md +0 -0
  282. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/oss.md +0 -0
  283. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/rds.md +0 -0
  284. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/redis.md +0 -0
  285. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/slb.md +0 -0
  286. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/vpc.md +0 -0
  287. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/ros-template.md +0 -0
  288. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameter-recommendation.md +0 -0
  289. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameters.md +0 -0
  290. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/terraform-template.md +0 -0
  291. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/SKILL.md +0 -0
  292. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/evals.json +0 -0
  293. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/SKILL.md +0 -0
  294. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/evals.json +0 -0
  295. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/evals.json +0 -0
  296. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/ecs.md +0 -0
  297. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/oss.md +0 -0
  298. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/rds.md +0 -0
  299. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/redis.md +0 -0
  300. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/slb.md +0 -0
  301. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/vpc.md +0 -0
  302. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/ros-template.md +0 -0
  303. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameter-recommendation.md +0 -0
  304. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameters.md +0 -0
  305. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/terraform-template.md +0 -0
  306. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/tools/__init__.py +0 -0
  307. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/tools/infraguard_scan_tool.py +0 -0
  308. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/tools/ros_deploy_tool.py +0 -0
  309. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/tools/ros_template_tools.py +0 -0
  310. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/pipeline/selling/tools/show_candidate_detail_tool.py +0 -0
  311. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/__init__.py +0 -0
  312. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/azure_openai_provider.py +0 -0
  313. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/base.py +0 -0
  314. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/gemini_provider.py +0 -0
  315. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/kimi_provider.py +0 -0
  316. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/lmstudio_provider.py +0 -0
  317. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/minimax_provider.py +0 -0
  318. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/modelscope_provider.py +0 -0
  319. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/ollama_provider.py +0 -0
  320. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/openai_provider.py +0 -0
  321. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/openrouter_provider.py +0 -0
  322. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/request_logging.py +0 -0
  323. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/request_policy.py +0 -0
  324. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/retry.py +0 -0
  325. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/siliconflow_provider.py +0 -0
  326. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/stream_watchdog.py +0 -0
  327. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/volcengine_provider.py +0 -0
  328. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/providers/zhipu_provider.py +0 -0
  329. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/__init__.py +0 -0
  330. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/agent_factory.py +0 -0
  331. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/capabilities/__init__.py +0 -0
  332. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/capabilities/auto_detect.py +0 -0
  333. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/capabilities/multimodal.py +0 -0
  334. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/cloud_credentials.py +0 -0
  335. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/__init__.py +0 -0
  336. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/audit.py +0 -0
  337. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/loader.py +0 -0
  338. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/pipeline.py +0 -0
  339. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/rule_scope.py +0 -0
  340. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/storage.py +0 -0
  341. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/permissions/trusted_roots.py +0 -0
  342. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/providers/__init__.py +0 -0
  343. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/providers/aliyun.py +0 -0
  344. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/qwenpaw_source.py +0 -0
  345. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_backup.py +0 -0
  346. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_backup_state.py +0 -0
  347. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_index.py +0 -0
  348. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_layout.py +0 -0
  349. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_metadata.py +0 -0
  350. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_resolver.py +0 -0
  351. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_storage.py +0 -0
  352. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/session_usage.py +0 -0
  353. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/__init__.py +0 -0
  354. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/attributes.py +0 -0
  355. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/client.py +0 -0
  356. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/config.py +0 -0
  357. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/content_serializer.py +0 -0
  358. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/events.py +0 -0
  359. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/fallback.py +0 -0
  360. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/metrics.py +0 -0
  361. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/names.py +0 -0
  362. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/sanitize.py +0 -0
  363. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/scope.py +0 -0
  364. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/sink.py +0 -0
  365. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/tracing.py +0 -0
  366. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/telemetry/types.py +0 -0
  367. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/token_budget.py +0 -0
  368. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/token_counter.py +0 -0
  369. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/services/update_checker.py +0 -0
  370. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/__init__.py +0 -0
  371. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/auto_trigger.py +0 -0
  372. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/__init__.py +0 -0
  373. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/SKILL.md +0 -0
  374. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/__init__.py +0 -0
  375. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/auto_trigger.py +0 -0
  376. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/ecs.md +0 -0
  377. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/oss.md +0 -0
  378. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/rds.md +0 -0
  379. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/redis.md +0 -0
  380. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/slb.md +0 -0
  381. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/vpc.md +0 -0
  382. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/ros-template.md +0 -0
  383. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameter-recommendation.md +0 -0
  384. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameters.md +0 -0
  385. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/references/terraform-template.md +0 -0
  386. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/iac_aliyun/scripts/tf2ros.py +0 -0
  387. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/pac_aliyun/SKILL.md +0 -0
  388. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/pac_aliyun/__init__.py +0 -0
  389. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/pac_aliyun/auto_trigger.py +0 -0
  390. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/pac_aliyun/references/infraguard-policy-generation.md +0 -0
  391. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/bundled/simplify.py +0 -0
  392. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/discovery.py +0 -0
  393. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/frontmatter.py +0 -0
  394. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/listing.py +0 -0
  395. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/loader.py +0 -0
  396. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/management.py +0 -0
  397. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/processor.py +0 -0
  398. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/renderer.py +0 -0
  399. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/settings.py +0 -0
  400. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/skill_definition.py +0 -0
  401. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/skills/skill_tool.py +0 -0
  402. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/state/__init__.py +0 -0
  403. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/state/app_state.py +0 -0
  404. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tasks/__init__.py +0 -0
  405. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tasks/notification_queue.py +0 -0
  406. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tasks/task_state.py +0 -0
  407. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tasks/task_tools.py +0 -0
  408. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/__init__.py +0 -0
  409. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/base.py +0 -0
  410. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/__init__.py +0 -0
  411. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/argv_safety.py +0 -0
  412. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/bash_tool.py +0 -0
  413. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/command_parser.py +0 -0
  414. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/mode_validation.py +0 -0
  415. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/path_validation.py +0 -0
  416. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/permissions.py +0 -0
  417. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/readonly_commands.py +0 -0
  418. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/rule_matching.py +0 -0
  419. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/bash/safety_checks.py +0 -0
  420. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/__init__.py +0 -0
  421. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/__init__.py +0 -0
  422. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/acs3_transport.py +0 -0
  423. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/aliyun_api.py +0 -0
  424. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/aliyun_api_doc.py +0 -0
  425. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/aliyun_doc_search.py +0 -0
  426. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/api_contract.py +0 -0
  427. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/api_hooks.py +0 -0
  428. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/api_identifiers.py +0 -0
  429. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/contract_store.py +0 -0
  430. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/README.md +0 -0
  431. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/endpoints/catalog.json +0 -0
  432. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/endpoints/generation_report.json +0 -0
  433. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/endpoints/legacy.yml +0 -0
  434. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/endpoints/overrides.yml +0 -0
  435. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/endpoints/unavailable.json +0 -0
  436. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/openmeta/api_overrides.yml +0 -0
  437. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/openmeta/exclusions.yml +0 -0
  438. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_aliases.yml +0 -0
  439. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_catalog.json +0 -0
  440. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/oss/operation_catalog.json +0 -0
  441. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/validation/judgments.yml +0 -0
  442. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/data/validation/overrides.yml +0 -0
  443. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/endpoint_resolver.py +0 -0
  444. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/hooks/__init__.py +0 -0
  445. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/hooks/ros_parameters.py +0 -0
  446. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/hooks/ros_validate.py +0 -0
  447. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/openmeta.py +0 -0
  448. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/oss_v4_adapter.py +0 -0
  449. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/product_resolver.py +0 -0
  450. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/public_errors.py +0 -0
  451. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/result_contract.py +0 -0
  452. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/retry_policy.py +0 -0
  453. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_client.py +0 -0
  454. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_stack_instances.py +0 -0
  455. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_template_tools.py +0 -0
  456. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/__init__.py +0 -0
  457. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/action_policy.py +0 -0
  458. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/association_property_specs.py +0 -0
  459. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/count.py +0 -0
  460. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_association_property_specs.json +0 -0
  461. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_official_resource_index.json +0 -0
  462. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_resource_value_specs.json +0 -0
  463. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_template_body_action_policies.json +0 -0
  464. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/facts.py +0 -0
  465. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/function_specs.py +0 -0
  466. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/model.py +0 -0
  467. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/outcome.py +0 -0
  468. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/parser.py +0 -0
  469. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/renderer.py +0 -0
  470. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/resource_value_specs.py +0 -0
  471. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/__init__.py +0 -0
  472. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/association_property.py +0 -0
  473. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/base.py +0 -0
  474. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/registry.py +0 -0
  475. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/symbols.py +0 -0
  476. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/template_kind.py +0 -0
  477. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/types.py +0 -0
  478. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_validation/validator.py +0 -0
  479. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/ros_yaml.py +0 -0
  480. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/runtime.py +0 -0
  481. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/template_source.py +0 -0
  482. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/user_agent.py +0 -0
  483. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/aliyun/validation_policy.py +0 -0
  484. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/base_api.py +0 -0
  485. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/cloud/registry.py +0 -0
  486. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/edit_file.py +0 -0
  487. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/glob.py +0 -0
  488. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/grep.py +0 -0
  489. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/list_files.py +0 -0
  490. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/path_safety.py +0 -0
  491. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/read_file.py +0 -0
  492. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/result_storage.py +0 -0
  493. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/tool_executor.py +0 -0
  494. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/web_fetch.py +0 -0
  495. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/tools/write_file.py +0 -0
  496. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/types/__init__.py +0 -0
  497. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/types/permissions.py +0 -0
  498. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/types/skill_source.py +0 -0
  499. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/types/stream_events.py +0 -0
  500. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/__init__.py +0 -0
  501. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/banner.py +0 -0
  502. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/__init__.py +0 -0
  503. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/candidate_selection.py +0 -0
  504. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/dialog.py +0 -0
  505. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/divider.py +0 -0
  506. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/fuzzy_picker.py +0 -0
  507. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/parallel_tabs.py +0 -0
  508. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/progress_bar.py +0 -0
  509. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/search_box.py +0 -0
  510. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/select.py +0 -0
  511. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/status_icon.py +0 -0
  512. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/components/tabs.py +0 -0
  513. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/__init__.py +0 -0
  514. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/in_place_render.py +0 -0
  515. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/input_history.py +0 -0
  516. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/key_event.py +0 -0
  517. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/prompt_input.py +0 -0
  518. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/raw_input.py +0 -0
  519. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/raw_input_win.py +0 -0
  520. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/core/screen.py +0 -0
  521. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/diagram_rendering.py +0 -0
  522. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/__init__.py +0 -0
  523. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/global_search.py +0 -0
  524. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/history_search.py +0 -0
  525. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/mcp_manager.py +0 -0
  526. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/memory.py +0 -0
  527. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/memory_editor.py +0 -0
  528. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/model_picker.py +0 -0
  529. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/quick_open.py +0 -0
  530. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/resume_picker.py +0 -0
  531. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/dialogs/skills_picker.py +0 -0
  532. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/keybindings/__init__.py +0 -0
  533. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/keybindings/manager.py +0 -0
  534. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/pipeline_display_replay.py +0 -0
  535. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/pipeline_styles.py +0 -0
  536. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/renderer.py +0 -0
  537. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/repl.py +0 -0
  538. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/spinner.py +0 -0
  539. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/stream_accumulator.py +0 -0
  540. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/__init__.py +0 -0
  541. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/aggregator.py +0 -0
  542. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/command_provider.py +0 -0
  543. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/directory_provider.py +0 -0
  544. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/file_provider.py +0 -0
  545. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/shell_history_provider.py +0 -0
  546. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/skill_provider.py +0 -0
  547. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/token_extractor.py +0 -0
  548. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/suggestions/types.py +0 -0
  549. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/ui/transcript_view.py +0 -0
  550. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/__init__.py +0 -0
  551. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/async_lifecycle.py +0 -0
  552. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/background_housekeeping.py +0 -0
  553. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/cleanup.py +0 -0
  554. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/console.py +0 -0
  555. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/file_security.py +0 -0
  556. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/__init__.py +0 -0
  557. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/clipboard.py +0 -0
  558. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/format_detect.py +0 -0
  559. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/pasted_content.py +0 -0
  560. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/processor.py +0 -0
  561. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/resizer.py +0 -0
  562. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/image/store.py +0 -0
  563. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/json_utils.py +0 -0
  564. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/log.py +0 -0
  565. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/path_components.py +0 -0
  566. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/path_locks.py +0 -0
  567. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/platform.py +0 -0
  568. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/project_paths.py +0 -0
  569. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/public_errors.py +0 -0
  570. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/public_paths.py +0 -0
  571. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/signals.py +0 -0
  572. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/state_io.py +0 -0
  573. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/tool_input_parser.py +0 -0
  574. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/tool_result_redaction.py +0 -0
  575. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/utils/windows_paths.py +0 -0
  576. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/__init__.py +0 -0
  577. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/cleanup.py +0 -0
  578. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/commands.py +0 -0
  579. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/diagram_cache.py +0 -0
  580. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/diagram_optimizer.py +0 -0
  581. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/diagrams.py +0 -0
  582. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/events.py +0 -0
  583. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/files.py +0 -0
  584. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/images.py +0 -0
  585. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/mcp_settings.py +0 -0
  586. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/memory.py +0 -0
  587. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/outputs.py +0 -0
  588. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/permissions.py +0 -0
  589. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/pipeline.py +0 -0
  590. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/pipeline_actions.py +0 -0
  591. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/pipeline_prerequisites.py +0 -0
  592. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/pipeline_transcript.py +0 -0
  593. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/runtime.py +0 -0
  594. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/security.py +0 -0
  595. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/session_manager.py +0 -0
  596. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/session_titler.py +0 -0
  597. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/shell.py +0 -0
  598. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/skills.py +0 -0
  599. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/icons/sidebar-new-thread.svg +0 -0
  600. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/icons/sidebar-project-open.svg +0 -0
  601. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/icons/sidebar-search.svg +0 -0
  602. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/icons/sidebar-settings.svg +0 -0
  603. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/icons/sidebar-skills.svg +0 -0
  604. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/blocking.js +0 -0
  605. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/image_lightbox.js +0 -0
  606. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/output_panel.js +0 -0
  607. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/pipeline.js +0 -0
  608. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/components/tool_cards.js +0 -0
  609. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/events.js +0 -0
  610. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/i18n.js +0 -0
  611. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/mermaid_render.js +0 -0
  612. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/vendor/markdown-it.LICENSE +0 -0
  613. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/vendor/markdown-it.min.js +0 -0
  614. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/vendor/mermaid.LICENSE +0 -0
  615. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code/web/static/js/vendor/mermaid.min.js +0 -0
  616. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/dependency_links.txt +0 -0
  617. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/entry_points.txt +0 -0
  618. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/requires.txt +0 -0
  619. {iac_code-0.11.1 → iac_code-0.11.3}/src/iac_code.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iac_code
3
- Version: 0.11.1
3
+ Version: 0.11.3
4
4
  Summary: Your AI-powered Infrastructure as Code assistant
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -0,0 +1,2 @@
1
+ __version__ = "0.11.3"
2
+ __release_date__ = "2026-08-04"
@@ -795,10 +795,22 @@ class IacCodeRequestHandler(DefaultRequestHandler):
795
795
  raise TaskNotFoundError(f"Task {params.id} not found")
796
796
  if isinstance(self.task_store, A2ATaskStore) and not await self.task_store.is_task_active(params.id):
797
797
  raise TaskNotFoundError(f"Task {params.id} is not active")
798
+ terminal_state_seen = False
798
799
  async for event in super().on_subscribe_to_task(params, context):
800
+ event_state = _task_event_state(event)
801
+ terminal_state_seen = terminal_state_seen or event_state in TERMINAL_TASK_STATES
799
802
  yield event
800
- if _task_event_state(event) in INTERRUPTED_TASK_STATES:
803
+ if event_state in INTERRUPTED_TASK_STATES:
801
804
  return
805
+ if terminal_state_seen:
806
+ return
807
+
808
+ # a2a-sdk 1.1 can close its subscriber queue after the producer finishes but
809
+ # before the consumer publishes the last update. Recover the persisted terminal
810
+ # snapshot so subscribers do not observe a silent, non-terminal stream ending.
811
+ final_task = await self.task_store.get(params.id, context)
812
+ if final_task is not None and final_task.status.state in TERMINAL_TASK_STATES:
813
+ yield final_task
802
814
 
803
815
  async def on_create_task_push_notification_config(
804
816
  self, params: TaskPushNotificationConfig, context
@@ -89,6 +89,11 @@ app.add_typer(_mcp_app, name="mcp")
89
89
  def web(
90
90
  host: str = typer.Option("127.0.0.1", help=_("HTTP server host")),
91
91
  port: int = typer.Option(8766, help=_("HTTP server port")),
92
+ access_token_file: str | None = typer.Option(
93
+ None,
94
+ "--access-token-file",
95
+ help=_("Enable encrypted public access using the token stored in this file."),
96
+ ),
92
97
  open_browser: bool = typer.Option(
93
98
  True,
94
99
  "--open/--no-open",
@@ -101,7 +106,12 @@ def web(
101
106
 
102
107
  bootstrap_telemetry(session_id="web-server-{}".format(uuid.uuid4()))
103
108
  try:
104
- run_web_server(host=host, port=port, open_browser=open_browser)
109
+ run_web_server(
110
+ host=host,
111
+ port=port,
112
+ open_browser=open_browser,
113
+ access_token_file=access_token_file,
114
+ )
105
115
  finally:
106
116
  graceful_shutdown()
107
117
 
@@ -19,7 +19,7 @@ from iac_code.i18n import _
19
19
  from iac_code.utils.file_security import atomic_write_text, ensure_private_dir, ensure_private_file
20
20
 
21
21
  # Default LLM model used when no model is saved in settings
22
- DEFAULT_MODEL = "qwen3.7-max"
22
+ DEFAULT_MODEL = "qwen3.8-max"
23
23
 
24
24
  # Configuration directory
25
25
  _CONFIG_DIR_NAME = ".iac-code"
@@ -141,11 +141,6 @@ _MODEL_PREFIX_TO_PROVIDER: tuple[tuple[str, str], ...] = (
141
141
  ("doubao-", "volcengine_cn"),
142
142
  )
143
143
 
144
- # Module-level flag — warn once per process when IAC_CODE_BASE_URL is set
145
- # but the active provider is not OpenAICompatible. Reset by tests.
146
- _warned_base_url_ignored: bool = False
147
-
148
-
149
144
  # ---------------------------------------------------------------------------
150
145
  # Environment variable overrides
151
146
  # ---------------------------------------------------------------------------
@@ -328,12 +323,8 @@ def get_provider_config(key_name: str) -> dict[str, Any]:
328
323
  """Return the persisted per-provider config dict (empty when unset).
329
324
 
330
325
  When ``key_name`` is the active provider, IAC_CODE_MODEL and
331
- IAC_CODE_BASE_URL env values are overlaid. IAC_CODE_BASE_URL only
332
- applies when the active provider is ``openai_compatible``; setting
333
- it for other providers logs a one-time warning and is ignored.
326
+ IAC_CODE_BASE_URL env values are overlaid.
334
327
  """
335
- global _warned_base_url_ignored
336
-
337
328
  key_name = _LEGACY_KEY_NAME_ALIASES.get(key_name, key_name)
338
329
  settings = _load_yaml(get_settings_path())
339
330
  providers = settings.get("providers")
@@ -361,17 +352,7 @@ def get_provider_config(key_name: str) -> dict[str, Any]:
361
352
  if env["model"]:
362
353
  entry["model"] = env["model"]
363
354
  if env["api_base"]:
364
- if active_key == "openai_compatible":
365
- entry["apiBase"] = env["api_base"]
366
- elif not _warned_base_url_ignored:
367
- from loguru import logger
368
-
369
- logger.warning(
370
- "IAC_CODE_BASE_URL is set but active provider is "
371
- f"{active_key!r}; the value is ignored. "
372
- "IAC_CODE_BASE_URL only applies to OpenAICompatible."
373
- )
374
- _warned_base_url_ignored = True
355
+ entry["apiBase"] = env["api_base"]
375
356
 
376
357
  return entry
377
358
 
@@ -4,7 +4,7 @@
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
- "Project-Id-Version: iac-code 0.11.1\n"
7
+ "Project-Id-Version: iac-code 0.11.3\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
9
  "POT-Creation-Date: 2026-06-04 15:58+0800\n"
10
10
  "PO-Revision-Date: 2026-05-13 00:00+0000\n"
@@ -727,6 +727,12 @@ msgstr "HTTP-Server-Host"
727
727
  msgid "HTTP server port"
728
728
  msgstr "HTTP-Server-Port"
729
729
 
730
+ #: src/iac_code/cli/main.py
731
+ msgid "Enable encrypted public access using the token stored in this file."
732
+ msgstr ""
733
+ "Verschlüsselten öffentlichen Zugriff mit dem Token aus dieser Datei "
734
+ "aktivieren."
735
+
730
736
  #: src/iac_code/cli/main.py
731
737
  msgid ""
732
738
  "Open the Web app in the default browser on startup (use --no-open to "
@@ -7693,6 +7699,33 @@ msgstr "Fn::GetAtt verweist auf nicht vorhandene Ressource {}."
7693
7699
  msgid "The resource logical name or Count instance name is invalid."
7694
7700
  msgstr "Der logische Ressourcenname oder Count-Instanzname ist ungültig."
7695
7701
 
7702
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7703
+ #, python-brace-format
7704
+ msgid ""
7705
+ "Fn::GetAtt for nested stack {} must use "
7706
+ "Outputs.<nested_stack_output_name>."
7707
+ msgstr ""
7708
+ "Fn::GetAtt für den verschachtelten Stack {} muss "
7709
+ "Outputs.<nested_stack_output_name> verwenden."
7710
+
7711
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7712
+ msgid ""
7713
+ "ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
7714
+ "Outputs. prefix, followed by a non-empty output name."
7715
+ msgstr ""
7716
+ "ALIYUN::ROS::Stack stellt Ausgaben des untergeordneten Stacks nur über "
7717
+ "das feste Präfix Outputs. bereit, gefolgt von einem nicht leeren "
7718
+ "Ausgabenamen."
7719
+
7720
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7721
+ #, python-brace-format
7722
+ msgid ""
7723
+ "Change the second argument to Outputs.<nested_stack_output_name>, for "
7724
+ "example Fn::GetAtt: [{}, Outputs.MyOutput]."
7725
+ msgstr ""
7726
+ "Ändern Sie das zweite Argument in Outputs.<nested_stack_output_name>, zum"
7727
+ " Beispiel Fn::GetAtt: [{}, Outputs.MyOutput]."
7728
+
7696
7729
  #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7697
7730
  #, python-brace-format
7698
7731
  msgid ""
@@ -11938,6 +11971,10 @@ msgstr "Lokal: {}"
11938
11971
  msgid "Press Ctrl+C to stop"
11939
11972
  msgstr "Zum Beenden Strg+C drücken"
11940
11973
 
11974
+ #: src/iac_code/web/server.py
11975
+ msgid "Token mode requires an IP address as the HTTP server host."
11976
+ msgstr "Der Token-Modus erfordert eine IP-Adresse als Host des HTTP-Servers."
11977
+
11941
11978
  #: src/iac_code/web/server.py
11942
11979
  msgid ""
11943
11980
  "Web server dependencies are missing. Install with: pip install 'iac-"
@@ -12012,6 +12049,22 @@ msgstr "unbekannte Partnerquelle"
12012
12049
  msgid "unknown aliyun credential mode"
12013
12050
  msgstr "unbekannter Aliyun-Anmeldeinformationsmodus"
12014
12051
 
12052
+ #: src/iac_code/web/settings.py
12053
+ msgid "OAuth authorization flow is invalid or expired."
12054
+ msgstr "Der OAuth-Autorisierungsablauf ist ungültig oder abgelaufen."
12055
+
12056
+ #: src/iac_code/web/settings.py
12057
+ msgid "Authorization code is required."
12058
+ msgstr "Der Autorisierungscode ist erforderlich."
12059
+
12060
+ #: src/iac_code/web/settings.py
12061
+ msgid "OAuth callback URL does not match the authorization flow."
12062
+ msgstr "Die OAuth-Callback-URL stimmt nicht mit dem Autorisierungsablauf überein."
12063
+
12064
+ #: src/iac_code/web/settings.py
12065
+ msgid "OAuth callback state is invalid."
12066
+ msgstr "Der OAuth-Callback-Status ist ungültig."
12067
+
12015
12068
  #: src/iac_code/web/settings.py
12016
12069
  msgid "stored aliyun credentials are invalid"
12017
12070
  msgstr "gespeicherte Aliyun-Anmeldeinformationen sind ungültig"
@@ -283,6 +283,7 @@ msgstr "Schließen"
283
283
  #: src/iac_code/web/static/index.html src/iac_code/web/static/js/app.js
284
284
  #: src/iac_code/web/static/js/components/blocking.js
285
285
  #: src/iac_code/web/static/js/components/workspace.js
286
+ #: src/iac_code/web/static/js/token_transport.js
286
287
  msgid "Cancel"
287
288
  msgstr "Abbrechen"
288
289
 
@@ -885,6 +886,65 @@ msgstr "Keine Preisinformationen"
885
886
  msgid "Estimated monthly cost"
886
887
  msgstr "Geschätzte monatliche Kosten"
887
888
 
889
+ #: src/iac_code/web/static/js/token_transport.js
890
+ msgid "Enter Web access token"
891
+ msgstr "Web-Zugriffstoken eingeben"
892
+
893
+ #: src/iac_code/web/static/js/token_transport.js
894
+ msgid "Enter the Web access token shown on the deployment result page."
895
+ msgstr ""
896
+ "Geben Sie das auf der Bereitstellungsergebnisseite angezeigte Web-"
897
+ "Zugriffstoken ein."
898
+
899
+ #: src/iac_code/web/static/js/token_transport.js
900
+ msgid "Unlock"
901
+ msgstr "Entsperren"
902
+
903
+ #: src/iac_code/web/static/js/token_transport.js
904
+ msgid "Enter a valid access token."
905
+ msgstr "Geben Sie ein gültiges Zugriffstoken ein."
906
+
907
+ #: src/iac_code/web/static/js/token_transport.js
908
+ msgid "Unable to start an encrypted session."
909
+ msgstr "Die verschlüsselte Sitzung konnte nicht gestartet werden."
910
+
911
+ #: src/iac_code/web/static/js/token_transport.js
912
+ msgid "Unsupported encrypted transport version."
913
+ msgstr "Nicht unterstützte Version des verschlüsselten Transports."
914
+
915
+ #: src/iac_code/web/static/js/token_transport.js
916
+ msgid "The Web access token is incorrect."
917
+ msgstr "Das Web-Zugriffstoken ist falsch."
918
+
919
+ #: src/iac_code/web/static/js/token_transport.js
920
+ msgid "Complete OAuth login"
921
+ msgstr "OAuth-Anmeldung abschließen"
922
+
923
+ #: src/iac_code/web/static/js/token_transport.js
924
+ msgid ""
925
+ "Paste the complete OAuth callback URL (recommended), or paste only the "
926
+ "authorization code."
927
+ msgstr ""
928
+ "Fügen Sie die vollständige OAuth-Callback-URL (empfohlen) oder nur den "
929
+ "Autorisierungscode ein."
930
+
931
+ #: src/iac_code/web/static/js/token_transport.js
932
+ msgid "Paste callback URL or authorization code"
933
+ msgstr "Callback-URL oder Autorisierungscode einfügen"
934
+
935
+ #: src/iac_code/web/static/js/token_transport.js
936
+ msgid "Complete login"
937
+ msgstr "Anmeldung abschließen"
938
+
939
+ #: src/iac_code/web/static/js/components/workspace.js
940
+ #: src/iac_code/web/static/js/token_transport.js
941
+ msgid "OAuth login cancelled."
942
+ msgstr "OAuth-Anmeldung abgebrochen."
943
+
944
+ #: src/iac_code/web/static/js/token_transport.js
945
+ msgid "Authorization code is required."
946
+ msgstr "Der Autorisierungscode ist erforderlich."
947
+
888
948
  #: src/iac_code/web/static/js/components/blocking.js
889
949
  msgid "Authorization required"
890
950
  msgstr "Autorisierung erforderlich"
@@ -3839,3 +3899,13 @@ msgstr ""
3839
3899
  #~ msgid "Completed step: {step}"
3840
3900
  #~ msgstr "Schritt abgeschlossen: {step}"
3841
3901
 
3902
+ #~ msgid ""
3903
+ #~ "Copy the token from the deployment "
3904
+ #~ "page. It stays in this browser tab"
3905
+ #~ " and is not sent to the server."
3906
+ #~ msgstr ""
3907
+ #~ "Kopieren Sie das Token von der "
3908
+ #~ "Bereitstellungsseite. Es bleibt in diesem "
3909
+ #~ "Tab und wird nicht an den Server"
3910
+ #~ " gesendet."
3911
+
@@ -4,7 +4,7 @@
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
- "Project-Id-Version: iac-code 0.11.1\n"
7
+ "Project-Id-Version: iac-code 0.11.3\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
9
  "POT-Creation-Date: 2026-06-04 15:58+0800\n"
10
10
  "PO-Revision-Date: 2026-05-13 00:00+0000\n"
@@ -726,6 +726,10 @@ msgstr "Host del servidor HTTP"
726
726
  msgid "HTTP server port"
727
727
  msgstr "Puerto del servidor HTTP"
728
728
 
729
+ #: src/iac_code/cli/main.py
730
+ msgid "Enable encrypted public access using the token stored in this file."
731
+ msgstr "Habilitar el acceso público cifrado con el token guardado en este archivo."
732
+
729
733
  #: src/iac_code/cli/main.py
730
734
  msgid ""
731
735
  "Open the Web app in the default browser on startup (use --no-open to "
@@ -7646,6 +7650,33 @@ msgstr "Fn::GetAtt referencias recurso inexistente {}."
7646
7650
  msgid "The resource logical name or Count instance name is invalid."
7647
7651
  msgstr "El nombre lógico de recurso o el nombre de instancia Count es inválido."
7648
7652
 
7653
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7654
+ #, python-brace-format
7655
+ msgid ""
7656
+ "Fn::GetAtt for nested stack {} must use "
7657
+ "Outputs.<nested_stack_output_name>."
7658
+ msgstr ""
7659
+ "Fn::GetAtt para la pila anidada {} debe usar "
7660
+ "Outputs.<nested_stack_output_name>."
7661
+
7662
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7663
+ msgid ""
7664
+ "ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
7665
+ "Outputs. prefix, followed by a non-empty output name."
7666
+ msgstr ""
7667
+ "ALIYUN::ROS::Stack expone las salidas de la pila secundaria únicamente "
7668
+ "mediante el prefijo fijo Outputs., seguido de un nombre de salida no "
7669
+ "vacío."
7670
+
7671
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7672
+ #, python-brace-format
7673
+ msgid ""
7674
+ "Change the second argument to Outputs.<nested_stack_output_name>, for "
7675
+ "example Fn::GetAtt: [{}, Outputs.MyOutput]."
7676
+ msgstr ""
7677
+ "Cambie el segundo argumento a Outputs.<nested_stack_output_name>, por "
7678
+ "ejemplo Fn::GetAtt: [{}, Outputs.MyOutput]."
7679
+
7649
7680
  #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7650
7681
  #, python-brace-format
7651
7682
  msgid ""
@@ -11866,6 +11897,10 @@ msgstr "Local: {}"
11866
11897
  msgid "Press Ctrl+C to stop"
11867
11898
  msgstr "Presione Ctrl+C para detener"
11868
11899
 
11900
+ #: src/iac_code/web/server.py
11901
+ msgid "Token mode requires an IP address as the HTTP server host."
11902
+ msgstr "El modo token requiere una dirección IP como host del servidor HTTP."
11903
+
11869
11904
  #: src/iac_code/web/server.py
11870
11905
  msgid ""
11871
11906
  "Web server dependencies are missing. Install with: pip install 'iac-"
@@ -11940,6 +11975,22 @@ msgstr "fuente de socio desconocida"
11940
11975
  msgid "unknown aliyun credential mode"
11941
11976
  msgstr "modo de credencial de aliyun desconocido"
11942
11977
 
11978
+ #: src/iac_code/web/settings.py
11979
+ msgid "OAuth authorization flow is invalid or expired."
11980
+ msgstr "El flujo de autorización OAuth no es válido o ha caducado."
11981
+
11982
+ #: src/iac_code/web/settings.py
11983
+ msgid "Authorization code is required."
11984
+ msgstr "Se requiere el código de autorización."
11985
+
11986
+ #: src/iac_code/web/settings.py
11987
+ msgid "OAuth callback URL does not match the authorization flow."
11988
+ msgstr "La URL de callback OAuth no coincide con el flujo de autorización."
11989
+
11990
+ #: src/iac_code/web/settings.py
11991
+ msgid "OAuth callback state is invalid."
11992
+ msgstr "El estado del callback OAuth no es válido."
11993
+
11943
11994
  #: src/iac_code/web/settings.py
11944
11995
  msgid "stored aliyun credentials are invalid"
11945
11996
  msgstr "las credenciales de aliyun almacenadas no son válidas"
@@ -283,6 +283,7 @@ msgstr "Cerrar"
283
283
  #: src/iac_code/web/static/index.html src/iac_code/web/static/js/app.js
284
284
  #: src/iac_code/web/static/js/components/blocking.js
285
285
  #: src/iac_code/web/static/js/components/workspace.js
286
+ #: src/iac_code/web/static/js/token_transport.js
286
287
  msgid "Cancel"
287
288
  msgstr "Cancelar"
288
289
 
@@ -884,6 +885,65 @@ msgstr "Sin información de precios"
884
885
  msgid "Estimated monthly cost"
885
886
  msgstr "Costo mensual estimado"
886
887
 
888
+ #: src/iac_code/web/static/js/token_transport.js
889
+ msgid "Enter Web access token"
890
+ msgstr "Introduzca el token de acceso web"
891
+
892
+ #: src/iac_code/web/static/js/token_transport.js
893
+ msgid "Enter the Web access token shown on the deployment result page."
894
+ msgstr ""
895
+ "Introduzca el token de acceso web que aparece en la página de resultados "
896
+ "del despliegue."
897
+
898
+ #: src/iac_code/web/static/js/token_transport.js
899
+ msgid "Unlock"
900
+ msgstr "Desbloquear"
901
+
902
+ #: src/iac_code/web/static/js/token_transport.js
903
+ msgid "Enter a valid access token."
904
+ msgstr "Introduzca un token de acceso válido."
905
+
906
+ #: src/iac_code/web/static/js/token_transport.js
907
+ msgid "Unable to start an encrypted session."
908
+ msgstr "No se pudo iniciar una sesión cifrada."
909
+
910
+ #: src/iac_code/web/static/js/token_transport.js
911
+ msgid "Unsupported encrypted transport version."
912
+ msgstr "Versión de transporte cifrado no compatible."
913
+
914
+ #: src/iac_code/web/static/js/token_transport.js
915
+ msgid "The Web access token is incorrect."
916
+ msgstr "El token de acceso web es incorrecto."
917
+
918
+ #: src/iac_code/web/static/js/token_transport.js
919
+ msgid "Complete OAuth login"
920
+ msgstr "Completar el inicio de sesión OAuth"
921
+
922
+ #: src/iac_code/web/static/js/token_transport.js
923
+ msgid ""
924
+ "Paste the complete OAuth callback URL (recommended), or paste only the "
925
+ "authorization code."
926
+ msgstr ""
927
+ "Pegue la URL de callback OAuth completa (recomendado) o solo el código de"
928
+ " autorización."
929
+
930
+ #: src/iac_code/web/static/js/token_transport.js
931
+ msgid "Paste callback URL or authorization code"
932
+ msgstr "Pegue la URL de callback o el código de autorización"
933
+
934
+ #: src/iac_code/web/static/js/token_transport.js
935
+ msgid "Complete login"
936
+ msgstr "Completar inicio de sesión"
937
+
938
+ #: src/iac_code/web/static/js/components/workspace.js
939
+ #: src/iac_code/web/static/js/token_transport.js
940
+ msgid "OAuth login cancelled."
941
+ msgstr "Inicio de sesión OAuth cancelado."
942
+
943
+ #: src/iac_code/web/static/js/token_transport.js
944
+ msgid "Authorization code is required."
945
+ msgstr "Se requiere el código de autorización."
946
+
887
947
  #: src/iac_code/web/static/js/components/blocking.js
888
948
  msgid "Authorization required"
889
949
  msgstr "Autorización requerida"
@@ -3827,3 +3887,12 @@ msgstr ""
3827
3887
  #~ msgid "Completed step: {step}"
3828
3888
  #~ msgstr "Paso completado: {step}"
3829
3889
 
3890
+ #~ msgid ""
3891
+ #~ "Copy the token from the deployment "
3892
+ #~ "page. It stays in this browser tab"
3893
+ #~ " and is not sent to the server."
3894
+ #~ msgstr ""
3895
+ #~ "Copie el token de la página de "
3896
+ #~ "despliegue. Permanece en esta pestaña y"
3897
+ #~ " no se envía al servidor."
3898
+
@@ -4,7 +4,7 @@
4
4
  #
5
5
  msgid ""
6
6
  msgstr ""
7
- "Project-Id-Version: iac-code 0.11.1\n"
7
+ "Project-Id-Version: iac-code 0.11.3\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
9
  "POT-Creation-Date: 2026-06-04 15:58+0800\n"
10
10
  "PO-Revision-Date: 2026-05-13 00:00+0000\n"
@@ -723,6 +723,10 @@ msgstr "Hôte du serveur HTTP"
723
723
  msgid "HTTP server port"
724
724
  msgstr "Port du serveur HTTP"
725
725
 
726
+ #: src/iac_code/cli/main.py
727
+ msgid "Enable encrypted public access using the token stored in this file."
728
+ msgstr "Activer l’accès public chiffré avec le jeton enregistré dans ce fichier."
729
+
726
730
  #: src/iac_code/cli/main.py
727
731
  msgid ""
728
732
  "Open the Web app in the default browser on startup (use --no-open to "
@@ -7684,6 +7688,32 @@ msgstr "Fn::GetAtt références ressource inexistante {}."
7684
7688
  msgid "The resource logical name or Count instance name is invalid."
7685
7689
  msgstr "Le nom logique de la ressource ou le nom d'instance Count est invalide."
7686
7690
 
7691
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7692
+ #, python-brace-format
7693
+ msgid ""
7694
+ "Fn::GetAtt for nested stack {} must use "
7695
+ "Outputs.<nested_stack_output_name>."
7696
+ msgstr ""
7697
+ "Fn::GetAtt pour la pile imbriquée {} doit utiliser "
7698
+ "Outputs.<nested_stack_output_name>."
7699
+
7700
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7701
+ msgid ""
7702
+ "ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
7703
+ "Outputs. prefix, followed by a non-empty output name."
7704
+ msgstr ""
7705
+ "ALIYUN::ROS::Stack expose les sorties de la pile enfant uniquement via le"
7706
+ " préfixe fixe Outputs., suivi d’un nom de sortie non vide."
7707
+
7708
+ #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7709
+ #, python-brace-format
7710
+ msgid ""
7711
+ "Change the second argument to Outputs.<nested_stack_output_name>, for "
7712
+ "example Fn::GetAtt: [{}, Outputs.MyOutput]."
7713
+ msgstr ""
7714
+ "Remplacez le deuxième argument par Outputs.<nested_stack_output_name>, "
7715
+ "par exemple Fn::GetAtt: [{}, Outputs.MyOutput]."
7716
+
7687
7717
  #: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
7688
7718
  #, python-brace-format
7689
7719
  msgid ""
@@ -11931,6 +11961,10 @@ msgstr "Local : {}"
11931
11961
  msgid "Press Ctrl+C to stop"
11932
11962
  msgstr "Appuyez sur Ctrl+C pour arrêter"
11933
11963
 
11964
+ #: src/iac_code/web/server.py
11965
+ msgid "Token mode requires an IP address as the HTTP server host."
11966
+ msgstr "Le mode jeton exige une adresse IP comme hôte du serveur HTTP."
11967
+
11934
11968
  #: src/iac_code/web/server.py
11935
11969
  msgid ""
11936
11970
  "Web server dependencies are missing. Install with: pip install 'iac-"
@@ -12005,6 +12039,22 @@ msgstr "source de partenaire inconnue"
12005
12039
  msgid "unknown aliyun credential mode"
12006
12040
  msgstr "mode d'identifiant aliyun inconnu"
12007
12041
 
12042
+ #: src/iac_code/web/settings.py
12043
+ msgid "OAuth authorization flow is invalid or expired."
12044
+ msgstr "Le flux d’autorisation OAuth est invalide ou a expiré."
12045
+
12046
+ #: src/iac_code/web/settings.py
12047
+ msgid "Authorization code is required."
12048
+ msgstr "Le code d’autorisation est requis."
12049
+
12050
+ #: src/iac_code/web/settings.py
12051
+ msgid "OAuth callback URL does not match the authorization flow."
12052
+ msgstr "L’URL de callback OAuth ne correspond pas au flux d’autorisation."
12053
+
12054
+ #: src/iac_code/web/settings.py
12055
+ msgid "OAuth callback state is invalid."
12056
+ msgstr "L’état du callback OAuth est invalide."
12057
+
12008
12058
  #: src/iac_code/web/settings.py
12009
12059
  msgid "stored aliyun credentials are invalid"
12010
12060
  msgstr "les identifiants aliyun stockés sont invalides"
@@ -283,6 +283,7 @@ msgstr "Fermer"
283
283
  #: src/iac_code/web/static/index.html src/iac_code/web/static/js/app.js
284
284
  #: src/iac_code/web/static/js/components/blocking.js
285
285
  #: src/iac_code/web/static/js/components/workspace.js
286
+ #: src/iac_code/web/static/js/token_transport.js
286
287
  msgid "Cancel"
287
288
  msgstr "Annuler"
288
289
 
@@ -888,6 +889,65 @@ msgstr "Aucune information tarifaire"
888
889
  msgid "Estimated monthly cost"
889
890
  msgstr "Coût mensuel estimé"
890
891
 
892
+ #: src/iac_code/web/static/js/token_transport.js
893
+ msgid "Enter Web access token"
894
+ msgstr "Saisissez le jeton d’accès Web"
895
+
896
+ #: src/iac_code/web/static/js/token_transport.js
897
+ msgid "Enter the Web access token shown on the deployment result page."
898
+ msgstr ""
899
+ "Saisissez le jeton d’accès Web affiché sur la page de résultat du "
900
+ "déploiement."
901
+
902
+ #: src/iac_code/web/static/js/token_transport.js
903
+ msgid "Unlock"
904
+ msgstr "Déverrouiller"
905
+
906
+ #: src/iac_code/web/static/js/token_transport.js
907
+ msgid "Enter a valid access token."
908
+ msgstr "Saisissez un jeton d’accès valide."
909
+
910
+ #: src/iac_code/web/static/js/token_transport.js
911
+ msgid "Unable to start an encrypted session."
912
+ msgstr "Impossible de démarrer une session chiffrée."
913
+
914
+ #: src/iac_code/web/static/js/token_transport.js
915
+ msgid "Unsupported encrypted transport version."
916
+ msgstr "Version de transport chiffré non prise en charge."
917
+
918
+ #: src/iac_code/web/static/js/token_transport.js
919
+ msgid "The Web access token is incorrect."
920
+ msgstr "Le jeton d’accès Web est incorrect."
921
+
922
+ #: src/iac_code/web/static/js/token_transport.js
923
+ msgid "Complete OAuth login"
924
+ msgstr "Terminer la connexion OAuth"
925
+
926
+ #: src/iac_code/web/static/js/token_transport.js
927
+ msgid ""
928
+ "Paste the complete OAuth callback URL (recommended), or paste only the "
929
+ "authorization code."
930
+ msgstr ""
931
+ "Collez l’URL de callback OAuth complète (recommandé), ou uniquement le "
932
+ "code d’autorisation."
933
+
934
+ #: src/iac_code/web/static/js/token_transport.js
935
+ msgid "Paste callback URL or authorization code"
936
+ msgstr "Collez l’URL de callback ou le code d’autorisation"
937
+
938
+ #: src/iac_code/web/static/js/token_transport.js
939
+ msgid "Complete login"
940
+ msgstr "Terminer la connexion"
941
+
942
+ #: src/iac_code/web/static/js/components/workspace.js
943
+ #: src/iac_code/web/static/js/token_transport.js
944
+ msgid "OAuth login cancelled."
945
+ msgstr "Connexion OAuth annulée."
946
+
947
+ #: src/iac_code/web/static/js/token_transport.js
948
+ msgid "Authorization code is required."
949
+ msgstr "Le code d’autorisation est requis."
950
+
891
951
  #: src/iac_code/web/static/js/components/blocking.js
892
952
  msgid "Authorization required"
893
953
  msgstr "Autorisation requise"
@@ -3845,3 +3905,13 @@ msgstr ""
3845
3905
  #~ msgid "Completed step: {step}"
3846
3906
  #~ msgstr "Étape terminée : {step}"
3847
3907
 
3908
+ #~ msgid ""
3909
+ #~ "Copy the token from the deployment "
3910
+ #~ "page. It stays in this browser tab"
3911
+ #~ " and is not sent to the server."
3912
+ #~ msgstr ""
3913
+ #~ "Copiez le jeton depuis la page de"
3914
+ #~ " déploiement. Il reste dans cet "
3915
+ #~ "onglet et n’est pas envoyé au "
3916
+ #~ "serveur."
3917
+