iac-code 0.11.1__tar.gz → 0.11.2__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.
- {iac_code-0.11.1 → iac_code-0.11.2}/PKG-INFO +1 -1
- iac_code-0.11.2/src/iac_code/__init__.py +2 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/dispatcher.py +13 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/config.py +1 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.po +28 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.po +28 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.po +27 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.po +27 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.po +27 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.po +23 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/handoff.py +14 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/anthropic_provider.py +6 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/dashscope_provider.py +2 -2
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/deepseek_provider.py +5 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/manager.py +5 -1
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/registry.py +7 -2
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/thinking.py +78 -13
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/context_manager.py +5 -2
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/constants.py +3 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py +25 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/PKG-INFO +1 -1
- iac_code-0.11.1/src/iac_code/__init__.py +0 -2
- {iac_code-0.11.1 → iac_code-0.11.2}/LICENSE +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/MANIFEST.in +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/README.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/pyproject.toml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/setup.cfg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/setup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/agent_card.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/app.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/artifacts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/backup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/client.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/executor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/exposure.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/jsonrpc_passthrough.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/metadata_redaction.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/metrics.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/parts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/persistence.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_delta_coalescing.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_executor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_flow_monitor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_journal.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_outbound.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_paths.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_performance.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_recovery.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_snapshot.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_stream.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/pipeline_transport_delivery.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/projection.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/push.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/push_queue.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/push_secrets.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/push_worker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/router.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/runtime_overrides.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/runtime_registry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/signing.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/task_store.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/thinking_metadata.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transport.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/base.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/grpc.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/grpc_jsonrpc.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/http.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/redis_streams.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/stdio.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/unix.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/transports/websocket.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/a2a/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/convert.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/http_sse.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/mcp.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/metrics.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/runner.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/server.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/session.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/slash_registry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/state.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/acp/version.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/agent_loop.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/agent_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/agent_types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/message.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/agent/system_prompt.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/headless.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/install_git_bash.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/main.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/output_formats.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/process_events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/process_mode.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/process_protocol.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/cli/update.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/auth.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/clear.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/compact.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/debug.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/effort.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/exit.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/help.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/mcp.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/memory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/model.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/prompt.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/registry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/rename.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/resume.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/skills.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/status.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/tasks.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/commands/thinking_enabled.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/html_extractor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/cli.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/client.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/config.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/env_expansion.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/errors.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/manager.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/oauth.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/output.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/progress.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/prompt_dispatch.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/prompts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/redaction.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/skills.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/storage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/mcp/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/memory/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/memory/memory_manager.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/memory/memory_tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/memory/project_memory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/memory/recall.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/config.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/constants.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/display_names.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_graph.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_meta.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_metas/Categories.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_metas/config.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_metas/products.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_resource_inventory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_rule_candidates.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_rule_drafts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_rule_facts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_rules.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_rules.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/architecture_semantic_planning.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/ask_user_question_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/cleanup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/complete_step_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/completion_guard_state.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/context.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/display_replay.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/interrupt.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/loader.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/observability.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/pipeline_runner.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/prerequisites.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/prompts/interrupt_judge.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/public_errors.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/recovery.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/resume_recovery.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/session.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/show_diagram_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/state_machine.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/step_executor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/step_spec.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/sub_pipeline_executor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/transcript_storage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/ui_contract.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/engine/user_input.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/hooks/deploying.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/pipeline.yaml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/architecture_planning.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/confirm_and_select.a2a.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/confirm_and_select.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/cost_estimating.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/deploying.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/evaluate_candidates.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/intent_parsing.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/reviewing.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/prompts/template_generating.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/ecs.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/oss.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/rds.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/redis.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/slb.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/cloud-products/vpc.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/ros-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/template-parameters.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/references/terraform-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/ecs.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/oss.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/rds.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/redis.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/slb.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/vpc.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/ros-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameters.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/terraform-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/ecs.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/oss.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/rds.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/redis.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/slb.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/vpc.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/ros-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameters.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/terraform-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/evals.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/ecs.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/oss.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/rds.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/redis.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/slb.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/vpc.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/ros-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameters.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/terraform-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/tools/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/tools/infraguard_scan_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/tools/ros_deploy_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/tools/ros_template_tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/pipeline/selling/tools/show_candidate_detail_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/azure_openai_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/base.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/gemini_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/kimi_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/lmstudio_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/minimax_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/modelscope_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/ollama_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/openai_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/openrouter_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/request_logging.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/request_policy.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/retry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/siliconflow_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/stream_watchdog.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/volcengine_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/providers/zhipu_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/agent_factory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/capabilities/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/capabilities/auto_detect.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/capabilities/multimodal.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/cloud_credentials.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/audit.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/loader.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/pipeline.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/rule_scope.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/storage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/permissions/trusted_roots.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/providers/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/providers/aliyun.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/providers/aliyun_oauth.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/qwenpaw_source.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_backup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_backup_state.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_index.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_layout.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_metadata.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_resolver.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_storage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/session_usage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/attributes.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/client.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/config.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/content_serializer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/fallback.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/identity.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/metrics.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/names.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/sanitize.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/scope.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/sink.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/tracing.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/telemetry/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/token_budget.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/token_counter.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/services/update_checker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/auto_trigger.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/auto_trigger.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/ecs.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/oss.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/rds.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/redis.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/slb.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/vpc.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/ros-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameters.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/references/terraform-template.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/iac_aliyun/scripts/tf2ros.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/pac_aliyun/SKILL.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/pac_aliyun/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/pac_aliyun/auto_trigger.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/pac_aliyun/references/infraguard-policy-generation.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/bundled/simplify.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/discovery.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/frontmatter.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/listing.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/loader.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/management.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/processor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/renderer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/settings.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/skill_definition.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/skills/skill_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/state/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/state/app_state.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tasks/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tasks/notification_queue.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tasks/task_state.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tasks/task_tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/base.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/argv_safety.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/bash_tool.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/command_parser.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/mode_validation.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/path_validation.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/permissions.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/readonly_commands.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/rule_matching.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/bash/safety_checks.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/acs3_transport.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/aliyun_api.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/aliyun_api_doc.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/aliyun_doc_search.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/api_contract.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/api_hooks.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/api_identifiers.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/contract_store.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/README.md +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/endpoints/catalog.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/endpoints/generation_report.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/endpoints/legacy.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/endpoints/overrides.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/endpoints/unavailable.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/openmeta/api_overrides.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/openmeta/exclusions.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_aliases.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_catalog.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/oss/operation_catalog.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/validation/judgments.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/data/validation/overrides.yml +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/endpoint_resolver.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/hooks/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/hooks/ros_parameters.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/hooks/ros_validate.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/openmeta.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/oss_v4_adapter.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/product_resolver.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/public_errors.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/result_contract.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/retry_policy.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_client.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_stack.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_stack_instances.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_template_tools.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/action_policy.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/association_property_specs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/count.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_association_property_specs.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_official_resource_index.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_resource_value_specs.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_template_body_action_policies.json +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/facts.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/function_specs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/model.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/outcome.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/parser.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/renderer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/resource_value_specs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/association_property.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/base.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/registry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/symbols.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/template_kind.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_validation/validator.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/ros_yaml.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/runtime.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/template_source.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/user_agent.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/aliyun/validation_policy.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/base_api.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/base_stack.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/registry.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/cloud/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/edit_file.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/glob.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/grep.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/list_files.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/path_safety.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/read_file.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/result_storage.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/tool_executor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/web_fetch.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/tools/write_file.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/types/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/types/permissions.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/types/skill_source.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/types/stream_events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/banner.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/candidate_selection.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/dialog.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/divider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/fuzzy_picker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/parallel_tabs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/progress_bar.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/search_box.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/select.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/status_icon.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/components/tabs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/in_place_render.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/input_history.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/key_event.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/prompt_input.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/raw_input.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/raw_input_win.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/core/screen.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/diagram_rendering.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/global_search.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/history_search.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/mcp_manager.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/memory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/memory_editor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/model_picker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/quick_open.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/resume_picker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/dialogs/skills_picker.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/keybindings/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/keybindings/manager.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/pipeline_display_replay.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/pipeline_styles.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/renderer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/repl.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/spinner.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/stream_accumulator.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/aggregator.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/command_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/directory_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/file_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/shell_history_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/skill_provider.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/token_extractor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/suggestions/types.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/ui/transcript_view.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/async_lifecycle.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/background_housekeeping.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/cleanup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/console.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/file_security.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/clipboard.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/format_detect.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/pasted_content.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/processor.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/resizer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/image/store.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/json_utils.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/log.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/path_components.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/path_locks.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/platform.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/project_paths.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/public_errors.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/public_paths.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/signals.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/state_io.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/tool_input_parser.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/tool_result_redaction.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/utils/windows_paths.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/__init__.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/app.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/cleanup.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/commands.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/diagram_cache.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/diagram_optimizer.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/diagrams.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/events.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/files.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/images.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/mcp_settings.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/memory.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/outputs.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/permissions.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/pipeline.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/pipeline_actions.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/pipeline_prerequisites.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/pipeline_transcript.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/runtime.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/security.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/server.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/session_manager.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/session_titler.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/settings.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/shell.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/skills.py +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/icons/sidebar-new-thread.svg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/icons/sidebar-project-open.svg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/icons/sidebar-search.svg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/icons/sidebar-settings.svg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/icons/sidebar-skills.svg +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/index.html +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/api.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/app.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/blocking.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/composer.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/image_lightbox.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/output_panel.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/pipeline.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/tool_cards.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/components/workspace.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/events.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/i18n.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/mermaid_render.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/vendor/markdown-it.LICENSE +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/vendor/markdown-it.min.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/vendor/mermaid.LICENSE +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/js/vendor/mermaid.min.js +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code/web/static/styles.css +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/SOURCES.txt +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/dependency_links.txt +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/entry_points.txt +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/requires.txt +0 -0
- {iac_code-0.11.1 → iac_code-0.11.2}/src/iac_code.egg-info/top_level.txt +0 -0
|
@@ -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
|
|
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
|
|
@@ -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.
|
|
22
|
+
DEFAULT_MODEL = "qwen3.8-max"
|
|
23
23
|
|
|
24
24
|
# Configuration directory
|
|
25
25
|
_CONFIG_DIR_NAME = ".iac-code"
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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"
|
|
@@ -7693,6 +7693,33 @@ msgstr "Fn::GetAtt verweist auf nicht vorhandene Ressource {}."
|
|
|
7693
7693
|
msgid "The resource logical name or Count instance name is invalid."
|
|
7694
7694
|
msgstr "Der logische Ressourcenname oder Count-Instanzname ist ungültig."
|
|
7695
7695
|
|
|
7696
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7697
|
+
#, python-brace-format
|
|
7698
|
+
msgid ""
|
|
7699
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7700
|
+
"Outputs.<nested_stack_output_name>."
|
|
7701
|
+
msgstr ""
|
|
7702
|
+
"Fn::GetAtt für den verschachtelten Stack {} muss "
|
|
7703
|
+
"Outputs.<nested_stack_output_name> verwenden."
|
|
7704
|
+
|
|
7705
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7706
|
+
msgid ""
|
|
7707
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7708
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7709
|
+
msgstr ""
|
|
7710
|
+
"ALIYUN::ROS::Stack stellt Ausgaben des untergeordneten Stacks nur über "
|
|
7711
|
+
"das feste Präfix Outputs. bereit, gefolgt von einem nicht leeren "
|
|
7712
|
+
"Ausgabenamen."
|
|
7713
|
+
|
|
7714
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7715
|
+
#, python-brace-format
|
|
7716
|
+
msgid ""
|
|
7717
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7718
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7719
|
+
msgstr ""
|
|
7720
|
+
"Ändern Sie das zweite Argument in Outputs.<nested_stack_output_name>, zum"
|
|
7721
|
+
" Beispiel Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7722
|
+
|
|
7696
7723
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7697
7724
|
#, python-brace-format
|
|
7698
7725
|
msgid ""
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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"
|
|
@@ -7646,6 +7646,33 @@ msgstr "Fn::GetAtt referencias recurso inexistente {}."
|
|
|
7646
7646
|
msgid "The resource logical name or Count instance name is invalid."
|
|
7647
7647
|
msgstr "El nombre lógico de recurso o el nombre de instancia Count es inválido."
|
|
7648
7648
|
|
|
7649
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7650
|
+
#, python-brace-format
|
|
7651
|
+
msgid ""
|
|
7652
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7653
|
+
"Outputs.<nested_stack_output_name>."
|
|
7654
|
+
msgstr ""
|
|
7655
|
+
"Fn::GetAtt para la pila anidada {} debe usar "
|
|
7656
|
+
"Outputs.<nested_stack_output_name>."
|
|
7657
|
+
|
|
7658
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7659
|
+
msgid ""
|
|
7660
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7661
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7662
|
+
msgstr ""
|
|
7663
|
+
"ALIYUN::ROS::Stack expone las salidas de la pila secundaria únicamente "
|
|
7664
|
+
"mediante el prefijo fijo Outputs., seguido de un nombre de salida no "
|
|
7665
|
+
"vacío."
|
|
7666
|
+
|
|
7667
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7668
|
+
#, python-brace-format
|
|
7669
|
+
msgid ""
|
|
7670
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7671
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7672
|
+
msgstr ""
|
|
7673
|
+
"Cambie el segundo argumento a Outputs.<nested_stack_output_name>, por "
|
|
7674
|
+
"ejemplo Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7675
|
+
|
|
7649
7676
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7650
7677
|
#, python-brace-format
|
|
7651
7678
|
msgid ""
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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"
|
|
@@ -7684,6 +7684,32 @@ msgstr "Fn::GetAtt références ressource inexistante {}."
|
|
|
7684
7684
|
msgid "The resource logical name or Count instance name is invalid."
|
|
7685
7685
|
msgstr "Le nom logique de la ressource ou le nom d'instance Count est invalide."
|
|
7686
7686
|
|
|
7687
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7688
|
+
#, python-brace-format
|
|
7689
|
+
msgid ""
|
|
7690
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7691
|
+
"Outputs.<nested_stack_output_name>."
|
|
7692
|
+
msgstr ""
|
|
7693
|
+
"Fn::GetAtt pour la pile imbriquée {} doit utiliser "
|
|
7694
|
+
"Outputs.<nested_stack_output_name>."
|
|
7695
|
+
|
|
7696
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7697
|
+
msgid ""
|
|
7698
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7699
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7700
|
+
msgstr ""
|
|
7701
|
+
"ALIYUN::ROS::Stack expose les sorties de la pile enfant uniquement via le"
|
|
7702
|
+
" préfixe fixe Outputs., suivi d’un nom de sortie non vide."
|
|
7703
|
+
|
|
7704
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7705
|
+
#, python-brace-format
|
|
7706
|
+
msgid ""
|
|
7707
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7708
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7709
|
+
msgstr ""
|
|
7710
|
+
"Remplacez le deuxième argument par Outputs.<nested_stack_output_name>, "
|
|
7711
|
+
"par exemple Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7712
|
+
|
|
7687
7713
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7688
7714
|
#, python-brace-format
|
|
7689
7715
|
msgid ""
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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"
|
|
@@ -7156,6 +7156,32 @@ msgstr "Fn::GetAtt は、存在しないリソース {} を参照します。"
|
|
|
7156
7156
|
msgid "The resource logical name or Count instance name is invalid."
|
|
7157
7157
|
msgstr "リソース論理名またはCountインスタンス名は無効です。"
|
|
7158
7158
|
|
|
7159
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7160
|
+
#, python-brace-format
|
|
7161
|
+
msgid ""
|
|
7162
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7163
|
+
"Outputs.<nested_stack_output_name>."
|
|
7164
|
+
msgstr ""
|
|
7165
|
+
"ネストされたスタック {} の Fn::GetAtt では Outputs.<nested_stack_output_name> "
|
|
7166
|
+
"を使用する必要があります。"
|
|
7167
|
+
|
|
7168
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7169
|
+
msgid ""
|
|
7170
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7171
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7172
|
+
msgstr ""
|
|
7173
|
+
"ALIYUN::ROS::Stack では、固定プレフィックス Outputs. "
|
|
7174
|
+
"の後に空でない出力名を指定した場合にのみ、子スタックの出力を参照できます。"
|
|
7175
|
+
|
|
7176
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7177
|
+
#, python-brace-format
|
|
7178
|
+
msgid ""
|
|
7179
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7180
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7181
|
+
msgstr ""
|
|
7182
|
+
"2 番目の引数を Outputs.<nested_stack_output_name> に変更してください。例: Fn::GetAtt: [{},"
|
|
7183
|
+
" Outputs.MyOutput]。"
|
|
7184
|
+
|
|
7159
7185
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7160
7186
|
#, python-brace-format
|
|
7161
7187
|
msgid ""
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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"
|
|
@@ -7571,6 +7571,32 @@ msgstr "Referências Fn::GetAtt recurso inexistente {}."
|
|
|
7571
7571
|
msgid "The resource logical name or Count instance name is invalid."
|
|
7572
7572
|
msgstr "O nome lógico do recurso ou o nome da instância Count é inválido."
|
|
7573
7573
|
|
|
7574
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7575
|
+
#, python-brace-format
|
|
7576
|
+
msgid ""
|
|
7577
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7578
|
+
"Outputs.<nested_stack_output_name>."
|
|
7579
|
+
msgstr ""
|
|
7580
|
+
"Fn::GetAtt para a pilha aninhada {} deve usar "
|
|
7581
|
+
"Outputs.<nested_stack_output_name>."
|
|
7582
|
+
|
|
7583
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7584
|
+
msgid ""
|
|
7585
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7586
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7587
|
+
msgstr ""
|
|
7588
|
+
"ALIYUN::ROS::Stack expõe as saídas da pilha filha somente por meio do "
|
|
7589
|
+
"prefixo fixo Outputs., seguido de um nome de saída não vazio."
|
|
7590
|
+
|
|
7591
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7592
|
+
#, python-brace-format
|
|
7593
|
+
msgid ""
|
|
7594
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7595
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7596
|
+
msgstr ""
|
|
7597
|
+
"Altere o segundo argumento para Outputs.<nested_stack_output_name>, por "
|
|
7598
|
+
"exemplo, Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7599
|
+
|
|
7574
7600
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7575
7601
|
#, python-brace-format
|
|
7576
7602
|
msgid ""
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: iac-code 0.11.
|
|
7
|
+
"Project-Id-Version: iac-code 0.11.2\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-04-02 00:00+0000\n"
|
|
@@ -6993,6 +6993,28 @@ msgstr "Fn::GetAtt 引用了不存在的资源 {}。"
|
|
|
6993
6993
|
msgid "The resource logical name or Count instance name is invalid."
|
|
6994
6994
|
msgstr "资源逻辑名或 Count 实例名无效。"
|
|
6995
6995
|
|
|
6996
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
6997
|
+
#, python-brace-format
|
|
6998
|
+
msgid ""
|
|
6999
|
+
"Fn::GetAtt for nested stack {} must use "
|
|
7000
|
+
"Outputs.<nested_stack_output_name>."
|
|
7001
|
+
msgstr "嵌套资源栈 {} 的 Fn::GetAtt 必须使用 Outputs.<nested_stack_output_name>。"
|
|
7002
|
+
|
|
7003
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7004
|
+
msgid ""
|
|
7005
|
+
"ALIYUN::ROS::Stack exposes child stack outputs only through the fixed "
|
|
7006
|
+
"Outputs. prefix, followed by a non-empty output name."
|
|
7007
|
+
msgstr "ALIYUN::ROS::Stack 只能通过固定的 Outputs. 前缀访问子资源栈输出,前缀后必须跟一个非空的输出名称。"
|
|
7008
|
+
|
|
7009
|
+
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
7010
|
+
#, python-brace-format
|
|
7011
|
+
msgid ""
|
|
7012
|
+
"Change the second argument to Outputs.<nested_stack_output_name>, for "
|
|
7013
|
+
"example Fn::GetAtt: [{}, Outputs.MyOutput]."
|
|
7014
|
+
msgstr ""
|
|
7015
|
+
"请将第二个参数改为 Outputs.<nested_stack_output_name>,例如 Fn::GetAtt: [{}, "
|
|
7016
|
+
"Outputs.MyOutput]。"
|
|
7017
|
+
|
|
6996
7018
|
#: src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py
|
|
6997
7019
|
#, python-brace-format
|
|
6998
7020
|
msgid ""
|
|
@@ -43,5 +43,18 @@ def build_handoff_summary(
|
|
|
43
43
|
if missing:
|
|
44
44
|
lines.extend(["", "Missing context fields:"])
|
|
45
45
|
lines.extend(f"- {field_name}" for field_name in missing)
|
|
46
|
-
lines.extend(
|
|
46
|
+
lines.extend(
|
|
47
|
+
[
|
|
48
|
+
"",
|
|
49
|
+
"Safety requirements for normal chat:",
|
|
50
|
+
(
|
|
51
|
+
"- Before performing any operation that releases, deletes, or otherwise destroys a resource, "
|
|
52
|
+
"obtain a fresh, explicit confirmation from the user in normal chat. Any confirmation given "
|
|
53
|
+
"during the pipeline does not count."
|
|
54
|
+
),
|
|
55
|
+
("- Exception: pipeline-managed automatic cleanup may proceed without this additional confirmation."),
|
|
56
|
+
"",
|
|
57
|
+
"Use this context when answering follow-up questions after the pipeline handoff.",
|
|
58
|
+
]
|
|
59
|
+
)
|
|
47
60
|
return "\n".join(lines)
|
|
@@ -144,7 +144,12 @@ class AnthropicProvider(Provider):
|
|
|
144
144
|
|
|
145
145
|
kwargs: dict[str, Any] = {}
|
|
146
146
|
if self._thinking_disabled():
|
|
147
|
-
|
|
147
|
+
forbidden_disable_efforts = {item.value for item in spec.disable_forbidden_efforts}
|
|
148
|
+
if effort in forbidden_disable_efforts:
|
|
149
|
+
raise ValueError(
|
|
150
|
+
f"Anthropic thinking cannot be disabled for {self._model} at {effort} effort; use high or lower"
|
|
151
|
+
)
|
|
152
|
+
if spec.supports_disable:
|
|
148
153
|
kwargs["thinking"] = {"type": "disabled"}
|
|
149
154
|
elif not spec.adaptive_always_on and (effort is not None or self._thinking_forced()):
|
|
150
155
|
kwargs["thinking"] = {"type": "adaptive"}
|
|
@@ -17,7 +17,7 @@ DASHSCOPE_TOKEN_PLAN_BASE_URL = "https://token-plan.cn-beijing.maas.aliyuncs.com
|
|
|
17
17
|
# Prefix-matched against the model name. Extend when new models are added.
|
|
18
18
|
# Ref: https://help.aliyun.com/zh/model-studio/context-cache
|
|
19
19
|
_EXPLICIT_CACHE_MODEL_PREFIXES: tuple[str, ...] = (
|
|
20
|
-
"qwen3.8-max
|
|
20
|
+
"qwen3.8-max",
|
|
21
21
|
"qwen3.7-max",
|
|
22
22
|
"qwen3.7-plus",
|
|
23
23
|
"qwen3-coder-plus",
|
|
@@ -33,7 +33,7 @@ _EXPLICIT_CACHE_MODEL_PREFIXES: tuple[str, ...] = (
|
|
|
33
33
|
# Models documented to accept extra_body.preserve_thinking. Keep this list
|
|
34
34
|
# separate from thinking support: sending the parameter to other models fails.
|
|
35
35
|
_PRESERVE_THINKING_MODEL_PREFIXES: tuple[str, ...] = (
|
|
36
|
-
"qwen3.8-max
|
|
36
|
+
"qwen3.8-max",
|
|
37
37
|
"qwen3.7-max",
|
|
38
38
|
"qwen3.7-plus",
|
|
39
39
|
"qwen3.6-max-preview",
|
|
@@ -14,7 +14,9 @@ class DeepSeekProvider(OpenAIProvider):
|
|
|
14
14
|
|
|
15
15
|
DeepSeek uses ``reasoning_effort`` plus
|
|
16
16
|
``extra_body.thinking.type=enabled``; the registry's ``allowed_efforts``
|
|
17
|
-
constrains the effort vocabulary to ``high`` / ``max`` for
|
|
17
|
+
constrains the effort vocabulary to ``low`` / ``high`` / ``max`` for
|
|
18
|
+
DeepSeek V4. Non-thinking mode is selected with
|
|
19
|
+
``extra_body.thinking.type=disabled``.
|
|
18
20
|
|
|
19
21
|
Reasoning content is captured via ``reasoning_content`` in the stream
|
|
20
22
|
and echoed back as ``reasoning_content`` on subsequent assistant
|
|
@@ -48,6 +50,8 @@ class DeepSeekProvider(OpenAIProvider):
|
|
|
48
50
|
)
|
|
49
51
|
|
|
50
52
|
def _build_thinking_kwargs(self) -> dict[str, Any]:
|
|
53
|
+
if self._thinking_disabled():
|
|
54
|
+
return {"extra_body": {"thinking": {"type": "disabled"}}}
|
|
51
55
|
kwargs = super()._build_thinking_kwargs()
|
|
52
56
|
if not kwargs:
|
|
53
57
|
return {}
|
|
@@ -304,6 +304,7 @@ def _error_event_from_exception(exc: BaseException) -> ErrorEvent:
|
|
|
304
304
|
|
|
305
305
|
MODEL_FALLBACK_MAP = {
|
|
306
306
|
"claude-fable-5": "claude-opus-4-8",
|
|
307
|
+
"claude-opus-5": "claude-opus-4-8",
|
|
307
308
|
"claude-opus-4-8": "claude-sonnet-5",
|
|
308
309
|
"claude-opus-4-7": "claude-haiku-4-5-20251001",
|
|
309
310
|
"claude-opus-4-6": "claude-haiku-4-5-20251001",
|
|
@@ -315,17 +316,20 @@ MODEL_FALLBACK_MAP = {
|
|
|
315
316
|
"gpt-5.6-terra": "gpt-5.6-luna",
|
|
316
317
|
"gpt-5.5": "gpt-5.4",
|
|
317
318
|
"gpt-5.4": "gpt-5.4-mini",
|
|
318
|
-
"qwen3.8-max
|
|
319
|
+
"qwen3.8-max": "qwen3.7-plus",
|
|
320
|
+
"qwen3.8-max-preview": "qwen3.8-max",
|
|
319
321
|
"qwen3.7-max": "qwen3.7-plus",
|
|
320
322
|
"kimi/kimi-k3": "kimi-k2.7-code",
|
|
321
323
|
"kimi-k3": "kimi-k2.7-code",
|
|
322
324
|
"glm-5.2-fast-preview": "glm-5.2",
|
|
323
325
|
"glm-5.2": "glm-5.1",
|
|
324
326
|
"deepseek-v4-pro": "deepseek-v4-flash",
|
|
327
|
+
"deepseek-v4-flash-0731": "deepseek-v4-flash",
|
|
325
328
|
}
|
|
326
329
|
|
|
327
330
|
_MODEL_REFUSAL_FALLBACK_MAP = {
|
|
328
331
|
"claude-fable-5": "claude-opus-4-8",
|
|
332
|
+
"claude-opus-5": "claude-opus-4-8",
|
|
329
333
|
}
|
|
330
334
|
|
|
331
335
|
_PROVIDER_MODEL_FALLBACK_MAP = {
|
|
@@ -45,7 +45,8 @@ PROVIDER_REGISTRY: dict[str, ProviderDescriptor] = {
|
|
|
45
45
|
provider_class="iac_code.providers.dashscope_provider.DashScopeProvider",
|
|
46
46
|
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
47
47
|
models=[
|
|
48
|
-
ModelEntry("qwen3.
|
|
48
|
+
ModelEntry("qwen3.8-max", is_default=True, support_multimodal=True),
|
|
49
|
+
ModelEntry("qwen3.7-max"),
|
|
49
50
|
ModelEntry("qwen3.7-plus", support_multimodal=True),
|
|
50
51
|
ModelEntry("qwen3.6-plus", support_multimodal=True),
|
|
51
52
|
ModelEntry("qwen3.6-flash", support_multimodal=True),
|
|
@@ -65,6 +66,7 @@ PROVIDER_REGISTRY: dict[str, ProviderDescriptor] = {
|
|
|
65
66
|
ModelEntry("kimi-k2.6", support_multimodal=True),
|
|
66
67
|
ModelEntry("kimi-k2.5", support_multimodal=True),
|
|
67
68
|
ModelEntry("deepseek-v4-pro"),
|
|
69
|
+
ModelEntry("deepseek-v4-flash-0731"),
|
|
68
70
|
ModelEntry("deepseek-v4-flash"),
|
|
69
71
|
ModelEntry("glm-5.2-fast-preview"),
|
|
70
72
|
ModelEntry("glm-5.2"),
|
|
@@ -81,12 +83,14 @@ PROVIDER_REGISTRY: dict[str, ProviderDescriptor] = {
|
|
|
81
83
|
provider_class="iac_code.providers.dashscope_provider.DashScopeProvider",
|
|
82
84
|
base_url="https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
|
|
83
85
|
models=[
|
|
84
|
-
ModelEntry("qwen3.8-max
|
|
86
|
+
ModelEntry("qwen3.8-max", is_default=True, support_multimodal=True),
|
|
87
|
+
ModelEntry("qwen3.8-max-preview", support_multimodal=True),
|
|
85
88
|
ModelEntry("qwen3.7-max"),
|
|
86
89
|
ModelEntry("qwen3.7-plus", support_multimodal=True),
|
|
87
90
|
ModelEntry("qwen3.6-plus", support_multimodal=True),
|
|
88
91
|
ModelEntry("qwen3.6-flash", support_multimodal=True),
|
|
89
92
|
ModelEntry("deepseek-v4-pro"),
|
|
93
|
+
ModelEntry("deepseek-v4-flash-0731"),
|
|
90
94
|
ModelEntry("deepseek-v4-flash"),
|
|
91
95
|
ModelEntry("deepseek-v3.2"),
|
|
92
96
|
ModelEntry("glm-5.2"),
|
|
@@ -129,6 +133,7 @@ PROVIDER_REGISTRY: dict[str, ProviderDescriptor] = {
|
|
|
129
133
|
base_url=None,
|
|
130
134
|
models=[
|
|
131
135
|
ModelEntry("claude-fable-5", is_default=True, support_multimodal=True),
|
|
136
|
+
ModelEntry("claude-opus-5", support_multimodal=True),
|
|
132
137
|
ModelEntry("claude-opus-4-8", support_multimodal=True),
|
|
133
138
|
ModelEntry("claude-sonnet-5", support_multimodal=True),
|
|
134
139
|
ModelEntry("claude-opus-4-7", support_multimodal=True),
|
|
@@ -77,6 +77,8 @@ class ThinkingSpec:
|
|
|
77
77
|
uses_reasoning_effort_param: bool = False
|
|
78
78
|
adaptive_always_on: bool = False
|
|
79
79
|
supports_disable: bool = True
|
|
80
|
+
thinking_enabled_by_default: bool = False
|
|
81
|
+
disable_forbidden_efforts: tuple[EffortLevel, ...] = ()
|
|
80
82
|
|
|
81
83
|
@property
|
|
82
84
|
def supports_effort(self) -> bool:
|
|
@@ -155,8 +157,24 @@ _ANTHROPIC_46_EFFORTS: tuple[EffortLevel, ...] = (
|
|
|
155
157
|
EffortLevel.AUTO,
|
|
156
158
|
)
|
|
157
159
|
|
|
158
|
-
# DeepSeek
|
|
159
|
-
|
|
160
|
+
# The official DeepSeek endpoint exposes low/high/max — MEDIUM and XHIGH are
|
|
161
|
+
# intentionally skipped because the API rejects them.
|
|
162
|
+
_DEEPSEEK_EFFORTS: tuple[EffortLevel, ...] = (
|
|
163
|
+
EffortLevel.LOW,
|
|
164
|
+
EffortLevel.HIGH,
|
|
165
|
+
EffortLevel.MAX,
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# DashScope accepts the full effort vocabulary for its hosted DeepSeek V4
|
|
169
|
+
# models. Low/medium currently map to high and xhigh maps to max server-side,
|
|
170
|
+
# but keeping the accepted wire values lets callers migrate without a 400.
|
|
171
|
+
_DASHSCOPE_DEEPSEEK_EFFORTS: tuple[EffortLevel, ...] = (
|
|
172
|
+
EffortLevel.LOW,
|
|
173
|
+
EffortLevel.MEDIUM,
|
|
174
|
+
EffortLevel.HIGH,
|
|
175
|
+
EffortLevel.XHIGH,
|
|
176
|
+
EffortLevel.MAX,
|
|
177
|
+
)
|
|
160
178
|
|
|
161
179
|
_GLM_EFFORTS: tuple[EffortLevel, ...] = (
|
|
162
180
|
EffortLevel.NONE,
|
|
@@ -209,11 +227,20 @@ _DASHSCOPE_GLM51_SPEC = ThinkingSpec(
|
|
|
209
227
|
)
|
|
210
228
|
|
|
211
229
|
_DASHSCOPE_QWEN38_SPEC = ThinkingSpec(
|
|
230
|
+
ThinkingFamily.DASHSCOPE,
|
|
231
|
+
(EffortLevel.LOW, EffortLevel.MEDIUM, EffortLevel.XHIGH),
|
|
232
|
+
EffortLevel.XHIGH,
|
|
233
|
+
uses_reasoning_effort_param=True,
|
|
234
|
+
thinking_enabled_by_default=True,
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
_DASHSCOPE_QWEN38_PREVIEW_SPEC = ThinkingSpec(
|
|
212
238
|
ThinkingFamily.DASHSCOPE,
|
|
213
239
|
(EffortLevel.LOW, EffortLevel.MEDIUM, EffortLevel.XHIGH),
|
|
214
240
|
EffortLevel.XHIGH,
|
|
215
241
|
uses_reasoning_effort_param=True,
|
|
216
242
|
supports_disable=False,
|
|
243
|
+
thinking_enabled_by_default=True,
|
|
217
244
|
)
|
|
218
245
|
|
|
219
246
|
_DASHSCOPE_KIMI_K3_SPEC = ThinkingSpec(
|
|
@@ -230,6 +257,14 @@ _ANTHROPIC_ADAPTIVE_SPEC = ThinkingSpec(
|
|
|
230
257
|
EffortLevel.HIGH,
|
|
231
258
|
)
|
|
232
259
|
|
|
260
|
+
_ANTHROPIC_OPUS5_SPEC = ThinkingSpec(
|
|
261
|
+
ThinkingFamily.ANTHROPIC_ADAPTIVE,
|
|
262
|
+
_ANTHROPIC_MODERN_EFFORTS,
|
|
263
|
+
EffortLevel.HIGH,
|
|
264
|
+
thinking_enabled_by_default=True,
|
|
265
|
+
disable_forbidden_efforts=(EffortLevel.XHIGH, EffortLevel.MAX),
|
|
266
|
+
)
|
|
267
|
+
|
|
233
268
|
_ANTHROPIC_46_ADAPTIVE_SPEC = ThinkingSpec(
|
|
234
269
|
ThinkingFamily.ANTHROPIC_ADAPTIVE,
|
|
235
270
|
_ANTHROPIC_46_EFFORTS,
|
|
@@ -250,6 +285,12 @@ _OPENAI_GPT55_SPEC = ThinkingSpec(ThinkingFamily.OPENAI, _OPENAI_EFFORTS, Effort
|
|
|
250
285
|
_OPENAI_REASONING_SPEC = ThinkingSpec(ThinkingFamily.OPENAI, _OPENAI_EFFORTS, EffortLevel.HIGH)
|
|
251
286
|
_OPENAI_CODEX_SPEC = ThinkingSpec(ThinkingFamily.OPENAI, _OPENAI_CODEX_EFFORTS, EffortLevel.MEDIUM)
|
|
252
287
|
_OPENAI_O_SERIES_SPEC = ThinkingSpec(ThinkingFamily.OPENAI, _OPENAI_O_SERIES_EFFORTS, EffortLevel.HIGH)
|
|
288
|
+
_DEEPSEEK_SPEC = ThinkingSpec(
|
|
289
|
+
ThinkingFamily.OPENAI,
|
|
290
|
+
_DEEPSEEK_EFFORTS,
|
|
291
|
+
EffortLevel.HIGH,
|
|
292
|
+
thinking_enabled_by_default=True,
|
|
293
|
+
)
|
|
253
294
|
_KIMI_K3_SPEC = ThinkingSpec(ThinkingFamily.KIMI, _KIMI_K3_EFFORTS, EffortLevel.MAX)
|
|
254
295
|
_ZHIPU_GLM52_SPEC = ThinkingSpec(
|
|
255
296
|
ThinkingFamily.ZHIPU,
|
|
@@ -262,6 +303,7 @@ _ZHIPU_GLM52_SPEC = ThinkingSpec(
|
|
|
262
303
|
MODEL_THINKING: dict[str, dict[str, ThinkingSpec]] = {
|
|
263
304
|
"anthropic": {
|
|
264
305
|
"claude-fable-5": _ANTHROPIC_ADAPTIVE_ALWAYS_ON_SPEC,
|
|
306
|
+
"claude-opus-5": _ANTHROPIC_OPUS5_SPEC,
|
|
265
307
|
"claude-sonnet-5": _ANTHROPIC_ADAPTIVE_SPEC,
|
|
266
308
|
"claude-opus-4-8": _ANTHROPIC_ADAPTIVE_SPEC,
|
|
267
309
|
"claude-opus-4-7": _ANTHROPIC_ADAPTIVE_SPEC,
|
|
@@ -291,10 +333,11 @@ MODEL_THINKING: dict[str, dict[str, ThinkingSpec]] = {
|
|
|
291
333
|
"o4-mini": _OPENAI_O_SERIES_SPEC,
|
|
292
334
|
},
|
|
293
335
|
"deepseek": {
|
|
294
|
-
"deepseek-v4-pro":
|
|
295
|
-
"deepseek-v4-flash":
|
|
336
|
+
"deepseek-v4-pro": _DEEPSEEK_SPEC,
|
|
337
|
+
"deepseek-v4-flash": _DEEPSEEK_SPEC,
|
|
296
338
|
},
|
|
297
339
|
"dashscope": {
|
|
340
|
+
"qwen3.8-max": _DASHSCOPE_QWEN38_SPEC,
|
|
298
341
|
"qwen3.7-max": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
299
342
|
"qwen3.7-plus": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
300
343
|
"qwen3.6-max-preview": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
@@ -314,16 +357,34 @@ MODEL_THINKING: dict[str, dict[str, ThinkingSpec]] = {
|
|
|
314
357
|
"glm-5.1": _DASHSCOPE_GLM51_SPEC,
|
|
315
358
|
"MiniMax-M2.5": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
316
359
|
"MiniMax/MiniMax-M3": ThinkingSpec(ThinkingFamily.MINIMAX),
|
|
317
|
-
"deepseek-v4-pro": ThinkingSpec(
|
|
318
|
-
|
|
360
|
+
"deepseek-v4-pro": ThinkingSpec(
|
|
361
|
+
ThinkingFamily.DASHSCOPE,
|
|
362
|
+
_DASHSCOPE_DEEPSEEK_EFFORTS,
|
|
363
|
+
EffortLevel.HIGH,
|
|
364
|
+
uses_reasoning_effort_param=True,
|
|
365
|
+
),
|
|
366
|
+
"deepseek-v4-flash-0731": ThinkingSpec(
|
|
367
|
+
ThinkingFamily.DASHSCOPE,
|
|
368
|
+
_DASHSCOPE_DEEPSEEK_EFFORTS,
|
|
369
|
+
EffortLevel.HIGH,
|
|
370
|
+
uses_reasoning_effort_param=True,
|
|
371
|
+
),
|
|
372
|
+
"deepseek-v4-flash": ThinkingSpec(
|
|
373
|
+
ThinkingFamily.DASHSCOPE,
|
|
374
|
+
_DASHSCOPE_DEEPSEEK_EFFORTS,
|
|
375
|
+
EffortLevel.HIGH,
|
|
376
|
+
uses_reasoning_effort_param=True,
|
|
377
|
+
),
|
|
319
378
|
},
|
|
320
379
|
"dashscope_token_plan": {
|
|
321
|
-
"qwen3.8-max
|
|
380
|
+
"qwen3.8-max": _DASHSCOPE_QWEN38_SPEC,
|
|
381
|
+
"qwen3.8-max-preview": _DASHSCOPE_QWEN38_PREVIEW_SPEC,
|
|
322
382
|
"qwen3.7-max": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
323
383
|
"qwen3.7-plus": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
324
384
|
"qwen3.6-plus": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
325
385
|
"qwen3.6-flash": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
326
386
|
"deepseek-v4-pro": ThinkingSpec(ThinkingFamily.DASHSCOPE, _DEEPSEEK_EFFORTS, EffortLevel.HIGH),
|
|
387
|
+
"deepseek-v4-flash-0731": ThinkingSpec(ThinkingFamily.DASHSCOPE, _DEEPSEEK_EFFORTS, EffortLevel.HIGH),
|
|
327
388
|
"deepseek-v4-flash": ThinkingSpec(ThinkingFamily.DASHSCOPE, _DEEPSEEK_EFFORTS, EffortLevel.HIGH),
|
|
328
389
|
"deepseek-v3.2": ThinkingSpec(ThinkingFamily.DASHSCOPE),
|
|
329
390
|
"glm-5.1": _DASHSCOPE_GLM51_SPEC,
|
|
@@ -473,9 +534,9 @@ _THINKING_DISABLE_EFFORTS: frozenset[str] = frozenset({"none", "off", "disable",
|
|
|
473
534
|
# Families whose providers emit an explicit "thinking on" directive by default
|
|
474
535
|
# when the user has NOT configured ``thinkingEnabled`` (DashScope
|
|
475
536
|
# ``enable_thinking=True``, Kimi/Zhipu ``thinking.type=enabled``). For these an
|
|
476
|
-
# unset config still means the next turn thinks.
|
|
477
|
-
# (OpenAI/Anthropic/Gemini) instead emit nothing when unset and
|
|
478
|
-
#
|
|
537
|
+
# unset config still means the next turn thinks. Most reasoning-effort models
|
|
538
|
+
# (OpenAI/Anthropic/Gemini) instead emit nothing when unset and resolve to off;
|
|
539
|
+
# models with a documented server-side thinking default opt in explicitly.
|
|
479
540
|
_DEFAULT_ON_FAMILIES: frozenset[ThinkingFamily] = frozenset(
|
|
480
541
|
{ThinkingFamily.DASHSCOPE, ThinkingFamily.KIMI, ThinkingFamily.ZHIPU}
|
|
481
542
|
)
|
|
@@ -498,15 +559,19 @@ def resolve_thinking_active(
|
|
|
498
559
|
spec = get_thinking_spec(provider_key or "", model or "")
|
|
499
560
|
if spec.family is ThinkingFamily.NONE:
|
|
500
561
|
return False
|
|
562
|
+
normalized_effort = normalize_effort(effort)
|
|
501
563
|
if thinking_enabled is False:
|
|
502
|
-
|
|
564
|
+
if not spec.supports_disable:
|
|
565
|
+
return True
|
|
566
|
+
forbidden = {item.value for item in spec.disable_forbidden_efforts}
|
|
567
|
+
return normalized_effort in forbidden
|
|
503
568
|
# DashScope disable-effort tokens force thinking off even when configured on.
|
|
504
|
-
if spec.family is ThinkingFamily.DASHSCOPE and
|
|
569
|
+
if spec.family is ThinkingFamily.DASHSCOPE and normalized_effort in _THINKING_DISABLE_EFFORTS:
|
|
505
570
|
return False
|
|
506
571
|
if thinking_enabled is True:
|
|
507
572
|
return True
|
|
508
573
|
# thinking_enabled is None (not configured): use the family default.
|
|
509
|
-
return spec.family in _DEFAULT_ON_FAMILIES
|
|
574
|
+
return spec.thinking_enabled_by_default or spec.adaptive_always_on or spec.family in _DEFAULT_ON_FAMILIES
|
|
510
575
|
|
|
511
576
|
|
|
512
577
|
# Anthropic extended-thinking budget tokens per effort level.
|