iac-code 0.12.0__tar.gz → 0.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iac_code-0.12.0 → iac_code-0.13.0}/PKG-INFO +33 -15
- {iac_code-0.12.0 → iac_code-0.13.0}/README.md +32 -14
- iac_code-0.13.0/src/iac_code/__init__.py +2 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/app.py +20 -9
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/events.py +60 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/executor.py +189 -6
- iac_code-0.13.0/src/iac_code/a2a/input_required.py +665 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_events.py +15 -72
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_executor.py +194 -40
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_snapshot.py +1 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_stream.py +486 -64
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/runtime_overrides.py +14 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/task_store.py +38 -3
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/dispatcher.py +48 -9
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/websocket.py +4 -3
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/convert.py +6 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/agent_loop.py +8 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/config.py +7 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/__init__.py +29 -0
- iac_code-0.13.0/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.po +222 -5
- iac_code-0.13.0/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.po +220 -5
- iac_code-0.13.0/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.po +216 -5
- iac_code-0.13.0/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.po +211 -5
- iac_code-0.13.0/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.po +220 -5
- iac_code-0.13.0/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.po +209 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/hard_constraints.py +4 -3
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/loader.py +10 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/pipeline_runner.py +12 -2
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/step_executor.py +102 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/step_spec.py +7 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/pipeline.yaml +92 -3
- iac_code-0.13.0/src/iac_code/pipeline/selling/prompts/confirm_and_select.a2a.rich.md +74 -0
- iac_code-0.13.0/src/iac_code/pipeline/selling/references/cloud-products/ga.md +130 -0
- {iac_code-0.12.0/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating → iac_code-0.13.0/src/iac_code/pipeline/selling}/references/solutions/iac-code-web.md +7 -4
- {iac_code-0.12.0/src/iac_code/pipeline/selling/skills/iac-aliyun-cost → iac_code-0.13.0/src/iac_code/pipeline/selling}/references/solutions/iac-code-web.ros.yml +38 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/SKILL.md +1 -1
- iac_code-0.13.0/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/ga.md +130 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/solutions/iac-code-web.md +7 -4
- {iac_code-0.12.0/src/iac_code/pipeline/selling → iac_code-0.13.0/src/iac_code/pipeline/selling/skills/iac-aliyun-cost}/references/solutions/iac-code-web.ros.yml +38 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/SKILL.md +1 -1
- iac_code-0.13.0/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/ga.md +130 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/solutions/iac-code-web.md +7 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/solutions/iac-code-web.ros.yml +38 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/SKILL.md +1 -1
- iac_code-0.13.0/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/ga.md +130 -0
- {iac_code-0.12.0/src/iac_code/pipeline/selling → iac_code-0.13.0/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating}/references/solutions/iac-code-web.md +7 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/solutions/iac-code-web.ros.yml +38 -5
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/tools/ros_deploy_tool.py +78 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/manager.py +7 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/registry.py +9 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/thinking.py +39 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/zhipu_provider.py +10 -2
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/agent_factory.py +7 -0
- iac_code-0.13.0/src/iac_code/services/configuration_readiness.py +131 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/context_manager.py +4 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/pipeline.py +10 -4
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_backup.py +10 -1
- iac_code-0.13.0/src/iac_code/services/session_backup_staging.py +674 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/constants.py +4 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/content_serializer.py +6 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/SKILL.md +2 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/auto_trigger.py +18 -1
- iac_code-0.13.0/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/ga.md +130 -0
- iac_code-0.13.0/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.md +38 -0
- iac_code-0.13.0/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.ros.yml +399 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/base.py +5 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/aliyun_api.py +188 -21
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/public_errors.py +5 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/result_contract.py +6 -0
- iac_code-0.13.0/src/iac_code/tools/cloud/aliyun/ros_lifecycle.py +217 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_stack_instances.py +6 -2
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/runtime.py +132 -2
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/base_stack.py +17 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/registry.py +23 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/write_file.py +12 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/types/stream_events.py +1 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/index.html +1 -1
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/app.js +14 -3
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/composer.js +6 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/tool_cards.js +20 -3
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/workspace.js +4 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code.egg-info/PKG-INFO +33 -15
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code.egg-info/SOURCES.txt +10 -0
- iac_code-0.12.0/src/iac_code/__init__.py +0 -2
- iac_code-0.12.0/src/iac_code/i18n/locales/de/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/i18n/locales/es/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.mo +0 -0
- iac_code-0.12.0/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.md +0 -35
- iac_code-0.12.0/src/iac_code/skills/bundled/iac_aliyun/references/solutions/iac-code-web.ros.yml +0 -366
- {iac_code-0.12.0 → iac_code-0.13.0}/LICENSE +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/MANIFEST.in +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/pyproject.toml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/setup.cfg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/setup.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/agent_card.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/artifacts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/backup.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/client.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/exposure.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/jsonrpc_passthrough.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/metadata_redaction.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/metrics.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/parts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/persistence.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_delta_coalescing.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_flow_monitor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_journal.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_outbound.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_paths.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_performance.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_recovery.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/pipeline_transport_delivery.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/projection.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/push.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/push_queue.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/push_secrets.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/push_worker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/router.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/runtime_registry.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/signing.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/thinking_metadata.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transport.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/base.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/grpc.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/grpc_jsonrpc.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/http.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/redis_streams.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/stdio.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/transports/unix.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/a2a/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/http_sse.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/mcp.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/metrics.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/runner.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/server.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/session.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/slash_registry.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/state.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/acp/version.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/agent_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/agent_types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/message.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/agent/system_prompt.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/headless.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/install_git_bash.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/main.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/output_formats.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/process_events.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/process_mode.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/process_protocol.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/cli/update.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/auth.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/clear.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/compact.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/debug.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/effort.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/exit.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/help.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/mcp.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/memory.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/model.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/prompt.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/registry.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/rename.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/resume.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/skills.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/status.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/tasks.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/commands/thinking_enabled.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/__main__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/control.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/controller.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/diagnostics.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/download_journal.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/external_env.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/git_bash.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/install_lock.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/loop_runner.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/native_preload_manifest.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/ports.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/probe_worker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/runtime.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/desktop/tool_paths.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/html_extractor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/de/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/es/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/ja/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.mo +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/i18n/locales/zh/LC_MESSAGES/webui.po +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/cli.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/client.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/config.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/env_expansion.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/errors.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/manager.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/oauth.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/output.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/progress.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/prompt_dispatch.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/prompts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/redaction.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/skills.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/storage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/mcp/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/memory/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/memory/memory_manager.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/memory/memory_tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/memory/project_memory.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/memory/recall.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/config.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/constants.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/display_names.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_graph.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_meta.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_metas/Categories.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_metas/config.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_metas/products.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_resource_inventory.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_rule_candidates.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_rule_drafts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_rule_facts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_rules.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_rules.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/architecture_semantic_planning.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/ask_user_question_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/cleanup.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/complete_step_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/completion_guard_state.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/context.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/display_replay.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/events.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/handoff.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/interrupt.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/observability.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/prerequisites.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/prompts/interrupt_judge.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/public_errors.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/recovery.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/resume_recovery.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/session.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/show_diagram_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/state_machine.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/sub_pipeline_executor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/transcript_storage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/ui_contract.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/engine/user_input.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/hooks/deploying.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/architecture_planning.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/confirm_and_select.a2a.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/confirm_and_select.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/cost_estimating.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/deploying.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/evaluate_candidates.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/intent_parsing.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/reviewing.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/prompts/template_generating.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/ecs.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/oss.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/rds.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/redis.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/slb.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/cloud-products/vpc.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/ros-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/template-parameters.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/references/terraform-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/SKILL.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-architecture/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/ecs.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/oss.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/rds.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/redis.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/slb.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/cloud-products/vpc.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/ros-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/template-parameters.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-cost/references/terraform-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/ecs.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/oss.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/rds.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/redis.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/slb.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/cloud-products/vpc.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/ros-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/template-parameters.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-deploying/references/terraform-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/SKILL.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-intent/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/SKILL.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-review/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/evals.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/ecs.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/oss.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/rds.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/redis.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/slb.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/cloud-products/vpc.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/ros-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/template-parameters.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/skills/iac-aliyun-template-generating/references/terraform-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/tools/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/tools/infraguard_scan_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/tools/ros_template_tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/pipeline/selling/tools/show_candidate_detail_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/anthropic_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/azure_openai_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/base.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/dashscope_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/deepseek_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/gemini_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/kimi_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/lmstudio_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/minimax_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/modelscope_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/ollama_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/openai_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/openrouter_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/request_logging.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/request_policy.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/retry.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/siliconflow_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/stream_watchdog.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/providers/volcengine_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/capabilities/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/capabilities/auto_detect.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/capabilities/multimodal.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/cloud_credentials.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/git_bash.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/audit.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/loader.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/rule_scope.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/storage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/permissions/trusted_roots.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/providers/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/providers/aliyun.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/providers/aliyun_credentials_runtime.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/providers/aliyun_oauth.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/qwenpaw_source.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_backup_state.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_index.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_layout.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_logging.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_metadata.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_resolver.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_storage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/session_usage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/attributes.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/client.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/config.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/events.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/fallback.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/identity.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/metrics.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/names.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/sanitize.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/scope.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/sink.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/tracing.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/telemetry/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/token_budget.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/token_counter.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/services/update_checker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/auto_trigger.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/ecs.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/oss.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/rds.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/redis.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/slb.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/cloud-products/vpc.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/ros-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameter-recommendation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/template-parameters.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/references/terraform-template.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/iac_aliyun/scripts/tf2ros.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/pac_aliyun/SKILL.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/pac_aliyun/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/pac_aliyun/auto_trigger.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/pac_aliyun/references/infraguard-policy-generation.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/bundled/simplify.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/discovery.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/frontmatter.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/listing.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/loader.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/management.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/processor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/renderer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/settings.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/skill_definition.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/skills/skill_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/state/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/state/app_state.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tasks/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tasks/notification_queue.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tasks/task_state.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tasks/task_tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/argv_safety.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/bash_tool.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/command_parser.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/mode_validation.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/path_validation.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/permissions.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/readonly_commands.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/rule_matching.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/bash/safety_checks.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/acs3_transport.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/aliyun_api_doc.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/aliyun_doc_search.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/api_contract.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/api_hooks.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/api_identifiers.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/contract_store.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/README.md +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/endpoints/catalog.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/endpoints/generation_report.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/endpoints/legacy.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/endpoints/overrides.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/endpoints/unavailable.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/openmeta/api_overrides.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/openmeta/exclusions.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_aliases.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/openmeta/product_catalog.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/oss/operation_catalog.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/validation/judgments.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/data/validation/overrides.yml +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ecs_credential_errors.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/endpoint_resolver.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/hooks/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/hooks/ros_parameters.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/hooks/ros_validate.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/openmeta.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/oss_v4_adapter.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/product_resolver.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/retry_policy.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_client.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_stack.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_template_tools.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/action_policy.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/analyzer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/association_property_specs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/count.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_association_property_specs.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_official_resource_index.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_resource_value_specs.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/data/ros_template_body_action_policies.json +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/facts.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/function_specs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/model.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/outcome.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/parser.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/renderer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/resource_value_specs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/association_property.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/base.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/rules/registry.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/symbols.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/template_kind.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_validation/validator.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/ros_yaml.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/template_source.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/user_agent.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/aliyun/validation_policy.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/base_api.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/cloud/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/edit_file.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/glob.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/grep.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/list_files.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/path_safety.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/read_file.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/result_storage.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/tool_executor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/tools/web_fetch.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/types/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/types/permissions.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/types/skill_source.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/assets/iac-code-terminal-logo.png +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/banner.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/candidate_selection.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/dialog.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/divider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/fuzzy_picker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/parallel_tabs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/progress_bar.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/search_box.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/select.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/status_icon.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/components/tabs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/in_place_render.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/input_history.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/key_event.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/prompt_input.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/raw_input.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/raw_input_win.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/core/screen.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/diagram_rendering.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/global_search.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/history_search.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/mcp_manager.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/memory.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/memory_editor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/model_picker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/quick_open.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/resume_picker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/dialogs/skills_picker.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/keybindings/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/keybindings/manager.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/pipeline_display_replay.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/pipeline_styles.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/renderer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/repl.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/spinner.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/stream_accumulator.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/aggregator.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/command_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/directory_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/file_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/shell_history_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/skill_provider.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/token_extractor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/suggestions/types.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/terminal_image.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/ui/transcript_view.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/async_lifecycle.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/background_housekeeping.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/cleanup.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/console.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/file_security.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/clipboard.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/format_detect.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/pasted_content.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/processor.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/resizer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/image/store.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/json_utils.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/log.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/path_components.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/path_locks.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/platform.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/project_paths.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/public_errors.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/public_paths.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/signals.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/state_io.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/tool_input_parser.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/tool_result_redaction.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/utils/windows_paths.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/__init__.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/app.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/cleanup.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/commands.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/diagram_cache.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/diagram_optimizer.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/diagrams.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/events.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/files.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/images.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/mcp_settings.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/memory.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/outputs.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/permissions.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/pipeline.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/pipeline_actions.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/pipeline_prerequisites.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/pipeline_transcript.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/runtime.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/security.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/server.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/session_manager.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/session_titler.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/settings.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/shell.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/skills.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/iac-code-logo.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/sidebar-new-thread.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/sidebar-project-open.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/sidebar-search.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/sidebar-settings.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/icons/sidebar-skills.svg +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/api.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/blocking.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/image_lightbox.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/output_panel.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/components/pipeline.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/events.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/i18n.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/mermaid_render.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/token_transport.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/vendor/markdown-it.LICENSE +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/vendor/markdown-it.min.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/vendor/mermaid.LICENSE +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/vendor/mermaid.min.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/js/vendor/token-crypto.js +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/static/styles.css +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code/web/token_transport.py +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code.egg-info/dependency_links.txt +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code.egg-info/entry_points.txt +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/src/iac_code.egg-info/requires.txt +0 -0
- {iac_code-0.12.0 → iac_code-0.13.0}/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.
|
|
3
|
+
Version: 0.13.0
|
|
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
|
|
@@ -36,14 +36,36 @@ License-File: LICENSE
|
|
|
36
36
|
> **Documentation**: [https://aliyun.github.io/iac-code/](https://aliyun.github.io/iac-code/)
|
|
37
37
|
|
|
38
38
|
<p align="center">
|
|
39
|
-
<
|
|
39
|
+
<a href="https://github.com/aliyun/iac-code/releases/latest"><img src="https://img.shields.io/badge/Download-IaC%20Code%20Desktop-5268f2?style=for-the-badge" alt="Download IaC Code Desktop"></a>
|
|
40
|
+
<br>
|
|
41
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-macos-arm64.dmg">macOS Apple Silicon</a> ·
|
|
42
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-windows-x64.exe">Windows x64</a> ·
|
|
43
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-linux-x64.AppImage">Linux AppImage</a> ·
|
|
44
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-linux-x64.deb">Linux deb</a> ·
|
|
45
|
+
<a href="https://github.com/aliyun/iac-code/releases/latest">All release files</a>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
## Desktop App
|
|
49
|
+
|
|
50
|
+
No Python, pip, or terminal setup required — download the native app and start building cloud infrastructure right away. Get the package for your platform from the [latest GitHub Release](https://github.com/aliyun/iac-code/releases/latest):
|
|
51
|
+
|
|
52
|
+
- macOS Apple Silicon: `.dmg`
|
|
53
|
+
- Windows x64: setup `.exe`
|
|
54
|
+
- Linux x64: `.AppImage` or `.deb`
|
|
55
|
+
|
|
56
|
+
The Desktop app runs the same IaC Code engine and uses the same providers, cloud credentials, settings, projects, and sessions as the CLI and Web app. On first launch, select the project directory you want IaC Code to work in. Windows also checks for Git Bash and guides you through installation if it is missing.
|
|
57
|
+
|
|
58
|
+
<p align="center">
|
|
59
|
+
<img src="website/static/img/screenshots/iac-code-desktop-en.jpg" alt="IaC Code Desktop app" width="100%">
|
|
40
60
|
</p>
|
|
41
61
|
|
|
62
|
+
macOS, Windows, and AppImage builds can check for and apply cryptographically signed updates in the app. The deb package is updated by installing a newer package. Stable macOS packages are signed with Apple Developer ID and notarized by Apple; stable Windows packages carry an Authenticode publisher signature. Always download from the official release page and verify the accompanying `SHA256SUMS`. See the [Desktop App guide](https://aliyun.github.io/iac-code/docs/desktop-app) for installation and troubleshooting details.
|
|
63
|
+
|
|
42
64
|
## Installation
|
|
43
65
|
|
|
44
|
-
|
|
66
|
+
The CLI and Web app below run on Python 3.10 or later, on macOS, Linux, and Windows. If you only use the Desktop app, you can skip this section.
|
|
45
67
|
|
|
46
|
-
> **Windows note**: On Windows, [Git for Windows](https://gitforwindows.org/) must be installed to provide the bash shell used by the tool execution environment. If Git Bash is installed but not on PATH, set the `IAC_CODE_GIT_BASH_PATH` environment variable.
|
|
68
|
+
> **Windows note**: On Windows, [Git for Windows](https://gitforwindows.org/) must be installed to provide the bash shell used by the tool execution environment. If Git Bash is installed but not on PATH, set the `IAC_CODE_GIT_BASH_PATH` environment variable. If it is not installed yet, run `iac-code install-git-bash` to install Git for Windows automatically (downloaded via the npmmirror mirror).
|
|
47
69
|
|
|
48
70
|
```bash
|
|
49
71
|
pip install iac-code
|
|
@@ -61,6 +83,10 @@ Run directly to enter the interactive REPL:
|
|
|
61
83
|
iac-code
|
|
62
84
|
```
|
|
63
85
|
|
|
86
|
+
<p align="center">
|
|
87
|
+
<img src="website/static/img/demo_en.gif" alt="iac-code demo" width="100%">
|
|
88
|
+
</p>
|
|
89
|
+
|
|
64
90
|
### Non-Interactive Mode
|
|
65
91
|
|
|
66
92
|
Pass a one-shot prompt via `--prompt`:
|
|
@@ -86,17 +112,9 @@ iac-code web
|
|
|
86
112
|
|
|
87
113
|
By default it opens `http://127.0.0.1:8766` in your browser (loopback only). See the [Web App guide](https://aliyun.github.io/iac-code/web-app) for details.
|
|
88
114
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- macOS Apple Silicon: `.dmg`
|
|
94
|
-
- Windows x64: setup `.exe`
|
|
95
|
-
- Linux x64: `.AppImage` or `.deb`
|
|
96
|
-
|
|
97
|
-
The Desktop app runs the same IaC Code engine and uses the same providers, cloud credentials, settings, projects, and sessions as the CLI and Web app. On first launch, select the project directory you want IaC Code to work in. Windows also checks for Git Bash and guides you through installation if it is missing.
|
|
98
|
-
|
|
99
|
-
macOS, Windows, and AppImage builds can check for and apply cryptographically signed updates in the app. The deb package is updated by installing a newer package. Release installers do not yet carry commercial publisher signatures, so macOS or Windows may display an unknown-developer warning; verify the accompanying `SHA256SUMS` before installation. See the [Desktop App guide](https://aliyun.github.io/iac-code/docs/desktop-app) for installation and troubleshooting details.
|
|
115
|
+
<p align="center">
|
|
116
|
+
<img src="website/static/img/screenshots/iac-code-web-en.jpg" alt="IaC Code Web app" width="100%">
|
|
117
|
+
</p>
|
|
100
118
|
|
|
101
119
|
## Contributing
|
|
102
120
|
|
|
@@ -16,14 +16,36 @@
|
|
|
16
16
|
> **Documentation**: [https://aliyun.github.io/iac-code/](https://aliyun.github.io/iac-code/)
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<
|
|
19
|
+
<a href="https://github.com/aliyun/iac-code/releases/latest"><img src="https://img.shields.io/badge/Download-IaC%20Code%20Desktop-5268f2?style=for-the-badge" alt="Download IaC Code Desktop"></a>
|
|
20
|
+
<br>
|
|
21
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-macos-arm64.dmg">macOS Apple Silicon</a> ·
|
|
22
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-windows-x64.exe">Windows x64</a> ·
|
|
23
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-linux-x64.AppImage">Linux AppImage</a> ·
|
|
24
|
+
<a href="https://ros-public-tools.oss-cn-beijing.aliyuncs.com/github-releases/aliyun/iac-code/desktop/stable/iac-code-linux-x64.deb">Linux deb</a> ·
|
|
25
|
+
<a href="https://github.com/aliyun/iac-code/releases/latest">All release files</a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
## Desktop App
|
|
29
|
+
|
|
30
|
+
No Python, pip, or terminal setup required — download the native app and start building cloud infrastructure right away. Get the package for your platform from the [latest GitHub Release](https://github.com/aliyun/iac-code/releases/latest):
|
|
31
|
+
|
|
32
|
+
- macOS Apple Silicon: `.dmg`
|
|
33
|
+
- Windows x64: setup `.exe`
|
|
34
|
+
- Linux x64: `.AppImage` or `.deb`
|
|
35
|
+
|
|
36
|
+
The Desktop app runs the same IaC Code engine and uses the same providers, cloud credentials, settings, projects, and sessions as the CLI and Web app. On first launch, select the project directory you want IaC Code to work in. Windows also checks for Git Bash and guides you through installation if it is missing.
|
|
37
|
+
|
|
38
|
+
<p align="center">
|
|
39
|
+
<img src="website/static/img/screenshots/iac-code-desktop-en.jpg" alt="IaC Code Desktop app" width="100%">
|
|
20
40
|
</p>
|
|
21
41
|
|
|
42
|
+
macOS, Windows, and AppImage builds can check for and apply cryptographically signed updates in the app. The deb package is updated by installing a newer package. Stable macOS packages are signed with Apple Developer ID and notarized by Apple; stable Windows packages carry an Authenticode publisher signature. Always download from the official release page and verify the accompanying `SHA256SUMS`. See the [Desktop App guide](https://aliyun.github.io/iac-code/docs/desktop-app) for installation and troubleshooting details.
|
|
43
|
+
|
|
22
44
|
## Installation
|
|
23
45
|
|
|
24
|
-
|
|
46
|
+
The CLI and Web app below run on Python 3.10 or later, on macOS, Linux, and Windows. If you only use the Desktop app, you can skip this section.
|
|
25
47
|
|
|
26
|
-
> **Windows note**: On Windows, [Git for Windows](https://gitforwindows.org/) must be installed to provide the bash shell used by the tool execution environment. If Git Bash is installed but not on PATH, set the `IAC_CODE_GIT_BASH_PATH` environment variable.
|
|
48
|
+
> **Windows note**: On Windows, [Git for Windows](https://gitforwindows.org/) must be installed to provide the bash shell used by the tool execution environment. If Git Bash is installed but not on PATH, set the `IAC_CODE_GIT_BASH_PATH` environment variable. If it is not installed yet, run `iac-code install-git-bash` to install Git for Windows automatically (downloaded via the npmmirror mirror).
|
|
27
49
|
|
|
28
50
|
```bash
|
|
29
51
|
pip install iac-code
|
|
@@ -41,6 +63,10 @@ Run directly to enter the interactive REPL:
|
|
|
41
63
|
iac-code
|
|
42
64
|
```
|
|
43
65
|
|
|
66
|
+
<p align="center">
|
|
67
|
+
<img src="website/static/img/demo_en.gif" alt="iac-code demo" width="100%">
|
|
68
|
+
</p>
|
|
69
|
+
|
|
44
70
|
### Non-Interactive Mode
|
|
45
71
|
|
|
46
72
|
Pass a one-shot prompt via `--prompt`:
|
|
@@ -66,17 +92,9 @@ iac-code web
|
|
|
66
92
|
|
|
67
93
|
By default it opens `http://127.0.0.1:8766` in your browser (loopback only). See the [Web App guide](https://aliyun.github.io/iac-code/web-app) for details.
|
|
68
94
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- macOS Apple Silicon: `.dmg`
|
|
74
|
-
- Windows x64: setup `.exe`
|
|
75
|
-
- Linux x64: `.AppImage` or `.deb`
|
|
76
|
-
|
|
77
|
-
The Desktop app runs the same IaC Code engine and uses the same providers, cloud credentials, settings, projects, and sessions as the CLI and Web app. On first launch, select the project directory you want IaC Code to work in. Windows also checks for Git Bash and guides you through installation if it is missing.
|
|
78
|
-
|
|
79
|
-
macOS, Windows, and AppImage builds can check for and apply cryptographically signed updates in the app. The deb package is updated by installing a newer package. Release installers do not yet carry commercial publisher signatures, so macOS or Windows may display an unknown-developer warning; verify the accompanying `SHA256SUMS` before installation. See the [Desktop App guide](https://aliyun.github.io/iac-code/docs/desktop-app) for installation and troubleshooting details.
|
|
95
|
+
<p align="center">
|
|
96
|
+
<img src="website/static/img/screenshots/iac-code-web-en.jpg" alt="IaC Code Web app" width="100%">
|
|
97
|
+
</p>
|
|
80
98
|
|
|
81
99
|
## Contributing
|
|
82
100
|
|
|
@@ -25,6 +25,7 @@ from starlette.requests import Request
|
|
|
25
25
|
from starlette.responses import JSONResponse, Response
|
|
26
26
|
from starlette.routing import BaseRoute, Route
|
|
27
27
|
|
|
28
|
+
from iac_code import __version__
|
|
28
29
|
from iac_code.a2a.agent_card import agent_card_to_client_dict
|
|
29
30
|
from iac_code.a2a.jsonrpc_passthrough import (
|
|
30
31
|
install_jsonrpc_error_data_passthrough,
|
|
@@ -37,6 +38,8 @@ from iac_code.a2a.projection import (
|
|
|
37
38
|
resolve_a2a_public_path_roots_for_data,
|
|
38
39
|
)
|
|
39
40
|
from iac_code.i18n import _
|
|
41
|
+
from iac_code.pipeline.config import get_run_mode
|
|
42
|
+
from iac_code.services.configuration_readiness import configuration_readiness
|
|
40
43
|
|
|
41
44
|
logger = logging.getLogger(__name__)
|
|
42
45
|
_V03_JSONRPC_METHODS = frozenset(
|
|
@@ -161,7 +164,7 @@ class A2AProjectionMiddleware(BaseHTTPMiddleware):
|
|
|
161
164
|
request_data = await _a2a_request_data(request)
|
|
162
165
|
response = await call_next(request)
|
|
163
166
|
request_data = _with_a2a_path_parameters(request, request_data)
|
|
164
|
-
if request.url.path in {"/health", AGENT_CARD_WELL_KNOWN_PATH}:
|
|
167
|
+
if request.url.path in {"/health", "/iac-code/readiness", AGENT_CARD_WELL_KNOWN_PATH}:
|
|
165
168
|
return response
|
|
166
169
|
|
|
167
170
|
content_type = response.headers.get("content-type", "").lower()
|
|
@@ -291,7 +294,7 @@ def _take_sse_frame(data: bytes) -> tuple[bytes, bytes | None, bytes]:
|
|
|
291
294
|
|
|
292
295
|
|
|
293
296
|
async def health(request: Request) -> JSONResponse:
|
|
294
|
-
return JSONResponse({"status": "healthy"})
|
|
297
|
+
return JSONResponse({"status": "healthy", "version": __version__, "mode": get_run_mode().value})
|
|
295
298
|
|
|
296
299
|
|
|
297
300
|
async def normalize_v03_jsonrpc_version(request: Request) -> None:
|
|
@@ -370,11 +373,12 @@ def create_app(
|
|
|
370
373
|
|
|
371
374
|
@asynccontextmanager
|
|
372
375
|
async def lifespan(app: Starlette):
|
|
373
|
-
await components.task_store.start_cleanup_loop()
|
|
374
376
|
push_worker_task: asyncio.Task[None] | None = None
|
|
375
|
-
|
|
376
|
-
push_worker_task = asyncio.create_task(components.push_worker.serve_forever())
|
|
377
|
+
components.start_background_services()
|
|
377
378
|
try:
|
|
379
|
+
await components.task_store.start_cleanup_loop()
|
|
380
|
+
if components.push_worker is not None:
|
|
381
|
+
push_worker_task = asyncio.create_task(components.push_worker.serve_forever())
|
|
378
382
|
yield
|
|
379
383
|
finally:
|
|
380
384
|
if push_worker_task is not None:
|
|
@@ -397,6 +401,9 @@ def create_app(
|
|
|
397
401
|
return Response(status_code=304, headers=card_cache_headers)
|
|
398
402
|
return JSONResponse(card_data, headers=card_cache_headers)
|
|
399
403
|
|
|
404
|
+
async def get_readiness(request: Request) -> JSONResponse:
|
|
405
|
+
return JSONResponse(configuration_readiness(model=model))
|
|
406
|
+
|
|
400
407
|
recovery_service = A2APipelineRecoveryService(task_store=components.task_store)
|
|
401
408
|
|
|
402
409
|
async def recovery_path_roots(*, context_id: str | None, task_id: str | None) -> list[dict[str, str]]:
|
|
@@ -442,6 +449,7 @@ def create_app(
|
|
|
442
449
|
routes: list[BaseRoute] = [
|
|
443
450
|
Route("/health", health, methods=["GET"]),
|
|
444
451
|
Route(AGENT_CARD_WELL_KNOWN_PATH, get_agent_card, methods=["GET"]),
|
|
452
|
+
Route("/iac-code/readiness", get_readiness, methods=["GET"]),
|
|
445
453
|
Route("/iac-code/pipeline/state", get_pipeline_state, methods=["GET"]),
|
|
446
454
|
]
|
|
447
455
|
install_jsonrpc_error_data_passthrough()
|
|
@@ -701,12 +709,15 @@ def run_server(
|
|
|
701
709
|
|
|
702
710
|
|
|
703
711
|
async def _serve_async_transport(server, *, components) -> None:
|
|
704
|
-
await components.task_store.start_cleanup_loop()
|
|
705
712
|
push_worker_task: asyncio.Task[None] | None = None
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
713
|
+
start_background_services = getattr(components, "start_background_services", None)
|
|
714
|
+
if start_background_services is not None:
|
|
715
|
+
start_background_services()
|
|
709
716
|
try:
|
|
717
|
+
await components.task_store.start_cleanup_loop()
|
|
718
|
+
if components.push_worker is not None:
|
|
719
|
+
push_worker_task = asyncio.create_task(components.push_worker.serve_forever())
|
|
720
|
+
await asyncio.sleep(0)
|
|
710
721
|
await server.serve()
|
|
711
722
|
finally:
|
|
712
723
|
if push_worker_task is not None:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import asyncio
|
|
3
4
|
import copy
|
|
4
5
|
import inspect
|
|
5
6
|
import logging
|
|
@@ -162,7 +163,7 @@ def _extract_artifact_metadata(result: Any, artifact_store: Any | None) -> dict[
|
|
|
162
163
|
if not path.is_file():
|
|
163
164
|
return None
|
|
164
165
|
metadata = artifact_store.save_bytes(filename=filename, content=path.read_bytes(), media_type=str(media_type))
|
|
165
|
-
return metadata.to_dict()
|
|
166
|
+
return {**metadata.to_dict(), "sourcePath": str(path.resolve())}
|
|
166
167
|
raw_bytes = raw.get("raw")
|
|
167
168
|
if isinstance(raw_bytes, bytes):
|
|
168
169
|
metadata = artifact_store.save_bytes(filename=filename, content=raw_bytes, media_type=str(media_type))
|
|
@@ -219,6 +220,9 @@ def _artifact_update_event(*, task_id: str, context_id: str, metadata: dict[str,
|
|
|
219
220
|
"byteSize": metadata["byteSize"],
|
|
220
221
|
"sha256": metadata["sha256"],
|
|
221
222
|
}
|
|
223
|
+
source_path = metadata.get("sourcePath")
|
|
224
|
+
if isinstance(source_path, str) and source_path:
|
|
225
|
+
artifact_metadata["sourcePath"] = source_path
|
|
222
226
|
artifact = Artifact(
|
|
223
227
|
artifact_id=str(metadata["artifactId"]),
|
|
224
228
|
name=str(metadata["filename"]),
|
|
@@ -280,6 +284,7 @@ async def publish_stream_event(
|
|
|
280
284
|
event: Any,
|
|
281
285
|
artifact_store: Any | None = None,
|
|
282
286
|
permission_resolver: A2APermissionResolver | None = None,
|
|
287
|
+
permission_input_registry: Any | None = None,
|
|
283
288
|
auto_approve_permissions: bool = False,
|
|
284
289
|
exposure_types: Any = None,
|
|
285
290
|
iac_code_session_id: str | None = None,
|
|
@@ -372,6 +377,8 @@ async def publish_stream_event(
|
|
|
372
377
|
|
|
373
378
|
if isinstance(event, ToolResultEvent):
|
|
374
379
|
artifact_metadata = _extract_artifact_metadata(event.result, artifact_store)
|
|
380
|
+
if artifact_metadata is None:
|
|
381
|
+
artifact_metadata = _extract_artifact_metadata(event.metadata, artifact_store)
|
|
375
382
|
if A2AExposureType.TOOL_TRACE not in enabled_exposure_types:
|
|
376
383
|
if artifact_metadata is not None:
|
|
377
384
|
await event_queue.enqueue_event(
|
|
@@ -429,6 +436,58 @@ async def publish_stream_event(
|
|
|
429
436
|
|
|
430
437
|
permission_event = _permission_request_event(event)
|
|
431
438
|
if permission_event is not None:
|
|
439
|
+
if permission_input_registry is not None and permission_resolver is None and not auto_approve_permissions:
|
|
440
|
+
pending = await permission_input_registry.register(
|
|
441
|
+
permission_event,
|
|
442
|
+
task_id=task_id,
|
|
443
|
+
context_id=context_id,
|
|
444
|
+
)
|
|
445
|
+
try:
|
|
446
|
+
await _enqueue_status(
|
|
447
|
+
event_queue,
|
|
448
|
+
task_id=task_id,
|
|
449
|
+
context_id=context_id,
|
|
450
|
+
state=TaskState.TASK_STATE_INPUT_REQUIRED,
|
|
451
|
+
metadata={
|
|
452
|
+
"iac_code": {
|
|
453
|
+
"input": pending.envelope(),
|
|
454
|
+
"permission": {
|
|
455
|
+
"autoApproved": False,
|
|
456
|
+
"pending": True,
|
|
457
|
+
"toolName": permission_event.tool_name,
|
|
458
|
+
"toolUseId": permission_event.tool_use_id,
|
|
459
|
+
},
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
iac_code_session_id=iac_code_session_id,
|
|
463
|
+
)
|
|
464
|
+
future = permission_event.response_future
|
|
465
|
+
if future is None:
|
|
466
|
+
await permission_input_registry.fail(pending)
|
|
467
|
+
return None
|
|
468
|
+
await asyncio.shield(future)
|
|
469
|
+
await _enqueue_status(
|
|
470
|
+
event_queue,
|
|
471
|
+
task_id=task_id,
|
|
472
|
+
context_id=context_id,
|
|
473
|
+
state=TaskState.TASK_STATE_WORKING,
|
|
474
|
+
metadata={
|
|
475
|
+
"iac_code": {
|
|
476
|
+
"inputReceived": {
|
|
477
|
+
"kind": "permission",
|
|
478
|
+
"inputId": pending.input_id,
|
|
479
|
+
"toolUseId": permission_event.tool_use_id,
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
iac_code_session_id=iac_code_session_id,
|
|
484
|
+
)
|
|
485
|
+
except BaseException:
|
|
486
|
+
await permission_input_registry.fail(pending)
|
|
487
|
+
raise
|
|
488
|
+
finally:
|
|
489
|
+
await permission_input_registry.complete(pending)
|
|
490
|
+
return None
|
|
432
491
|
approved = auto_approve_permissions
|
|
433
492
|
if permission_resolver is not None:
|
|
434
493
|
decision = permission_resolver(permission_event)
|