alysis-code 0.13.7__tar.gz → 0.14.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.
- {alysis_code-0.13.7 → alysis_code-0.14.0}/.gitignore +5 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/PKG-INFO +16 -8
- {alysis_code-0.13.7 → alysis_code-0.14.0}/README.md +11 -5
- {alysis_code-0.13.7 → alysis_code-0.14.0}/docs/CHANGELOG.md +74 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/pyproject.toml +5 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/__init__.py +1 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/_build_info.py +3 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/account_login.py +8 -6
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/README.md +5 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/acceptance_contract.py +437 -46
- alysis_code-0.14.0/src/alysis_code/agent/anytime_checkpoint.py +506 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/blast_radius.py +495 -52
- alysis_code-0.14.0/src/alysis_code/agent/checkpoint_worker.py +180 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/completion_certificate.py +20 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/completion_gate.py +40 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/llm_calls.py +116 -43
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/prompt_context.py +783 -281
- alysis_code-0.14.0/src/alysis_code/agent/prompt_families.py +169 -0
- alysis_code-0.14.0/src/alysis_code/agent/prompt_guidance.py +179 -0
- alysis_code-0.14.0/src/alysis_code/agent/read_ledger.py +449 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/regression_baseline.py +46 -7
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/sensitive_output.py +19 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/session.py +628 -144
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/steering.py +66 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/subagent_execution.py +1595 -266
- alysis_code-0.14.0/src/alysis_code/agent/subagent_workspace.py +1435 -0
- alysis_code-0.14.0/src/alysis_code/agent/task_evidence.py +215 -0
- alysis_code-0.14.0/src/alysis_code/agent/task_state.py +1263 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/tools_assembly.py +597 -165
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/__init__.py +5 -5
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/core.py +1914 -1001
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/exploration.py +80 -7
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/read_cache.py +97 -54
- alysis_code-0.14.0/src/alysis_code/agent/turn/subagent_progress.py +1132 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn_path.py +75 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/verification.py +1097 -192
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/verification_commands.py +193 -41
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/verification_evidence.py +58 -6
- alysis_code-0.14.0/src/alysis_code/agent/verification_result.py +58 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_loop.py +97 -17
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/codex_cli.py +4 -3
- alysis_code-0.14.0/src/alysis_code/agentbox_client.py +416 -0
- alysis_code-0.14.0/src/alysis_code/agentbox_integration.py +310 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/approval_scope.py +81 -0
- alysis_code-0.14.0/src/alysis_code/assets/local_tools.py +309 -0
- alysis_code-0.14.0/src/alysis_code/assets/owl/index.html +98 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/budget_policy.py +5 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/build_identity.py +121 -7
- alysis_code-0.14.0/src/alysis_code/cancellation.py +226 -0
- alysis_code-0.14.0/src/alysis_code/checkpoint_settings.py +22 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/__init__.py +0 -12
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/commands.py +188 -221
- alysis_code-0.14.0/src/alysis_code/cli_impl/chat/forge_visibility.py +35 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/loop.py +593 -691
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/mid_turn_policy.py +41 -9
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/rendering.py +5 -63
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat/state.py +8 -9
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat_resume.py +36 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/chat_slash_completer.py +23 -8
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/chat_resume_helpers.py +231 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/chat_state.py +2 -9
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/chat_status.py +48 -101
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/chat_terminal.py +1 -30
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/cli_common.py +9 -32
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/forge.py +2 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/forge_helpers.py +0 -18
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/prompt_helpers.py +37 -32
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/root.py +15 -19
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/startup.py +5 -19
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/welcome.py +51 -54
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/config_menu.py +124 -73
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/forge.py +24 -6
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/setup_wizard.py +17 -8
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/app.py +1521 -313
- alysis_code-0.14.0/src/alysis_code/cli_impl/tui/attachments.py +557 -0
- alysis_code-0.14.0/src/alysis_code/cli_impl/tui/composer.py +335 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/config_flow.py +30 -18
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/config_overlay.py +14 -7
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/content.py +67 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/footer.py +11 -3
- alysis_code-0.14.0/src/alysis_code/cli_impl/tui/links.py +339 -0
- alysis_code-0.14.0/src/alysis_code/cli_impl/tui/markdown.py +396 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/owl.py +16 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/setup_flow.py +1 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/state.py +14 -19
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/subagent_identity.py +1 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/surface.py +153 -30
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/transcript.py +26 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/workspace_guard.py +121 -11
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/compaction/conversation_compactor.py +304 -5
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/compaction/tool_output_offload.py +29 -112
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/config.py +320 -17
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/conflict_auto_resolver.py +10 -2
- alysis_code-0.14.0/src/alysis_code/consumer_verification.py +626 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/durable_service_manager.py +607 -63
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/execution_budget.py +3 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/execution_context.py +78 -115
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/execution_deadline.py +59 -5
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/execution_shared.py +113 -110
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/feedback_report.py +262 -31
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/git_evidence.py +198 -0
- alysis_code-0.14.0/src/alysis_code/git_safe.py +111 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/host_browser.py +30 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/integration_gate.py +10 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/internal_artifacts.py +43 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/anthropic_messages.py +62 -6
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/cache_capabilities.py +12 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/cache_policy.py +9 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/factory.py +42 -7
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/gemini_generate_content.py +43 -9
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/gemini_interactions.py +9 -2
- alysis_code-0.14.0/src/alysis_code/llm/http_cancellation.py +509 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/metadata.py +27 -4
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/openai_compat.py +386 -74
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/openai_responses.py +58 -11
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/protocols.py +1 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/provider_limits.py +88 -12
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/request_plan.py +71 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/temperature_compat.py +9 -0
- alysis_code-0.14.0/src/alysis_code/llm/tool_call_markup.py +95 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/managed_host_deadline.py +89 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/transport_stdio.py +15 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_catalog/chatgpt_codex_subscription_snapshot.json +106 -23
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_registry.py +296 -32
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/personas.py +1 -1
- alysis_code-0.14.0/src/alysis_code/private_artifact_io.py +117 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/process_reaping.py +14 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/profile_presets.py +320 -249
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/profiles.py +13 -0
- alysis_code-0.14.0/src/alysis_code/prompt_guidance_catalog.py +298 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_auth/base.py +5 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_auth/openai_codex.py +60 -15
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_diagnostics.py +16 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_telemetry.py +185 -33
- alysis_code-0.14.0/src/alysis_code/provider_url.py +140 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/reasoning_contracts.py +87 -17
- alysis_code-0.14.0/src/alysis_code/run_outcome.py +201 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/run_provenance.py +18 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/sandbox_doctor.py +46 -10
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/sandbox_runner.py +110 -2
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/sandbox_settings.py +13 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/app.py +1 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/worker_runner.py +35 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/service_persistence.py +21 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/session_artifacts.py +80 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/session_metrics.py +7 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/session_store.py +468 -13
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/README.md +2 -2
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/__init__.py +0 -22
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/eval_models.py +7 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/evals.py +14 -2
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/prompting.py +3 -2
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/step_budget.py +1 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/subagents.py +174 -55
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/events.py +7 -7
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/rich_surface.py +89 -58
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/types.py +32 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_orchestrator.py +14 -2
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_trace.py +10 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_worker.py +122 -37
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/terminal_manager.py +16 -14
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/artifacts.py +48 -12
- alysis_code-0.14.0/src/alysis_code/tools/availability.py +348 -0
- alysis_code-0.14.0/src/alysis_code/tools/capability_readiness.py +74 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/fs.py +216 -81
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/git.py +117 -6
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/registry.py +358 -102
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/symbols.py +115 -21
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/test_discovery.py +27 -27
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web.py +196 -35
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/transport_retry.py +9 -6
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/verification_command_analysis.py +49 -1
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/verification_contract.py +7 -3
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/verification_repair.py +8 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/verify_gate.py +90 -16
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/web_research.py +76 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/workspace_isolation.py +5 -3
- alysis_code-0.13.7/src/alysis_code/agent/read_ledger.py +0 -253
- alysis_code-0.13.7/src/alysis_code/agent/subagent_workspace.py +0 -666
- alysis_code-0.13.7/src/alysis_code/cancellation.py +0 -53
- alysis_code-0.13.7/src/alysis_code/cli_impl/tui/markdown.py +0 -244
- alysis_code-0.13.7/src/alysis_code/git_safe.py +0 -62
- alysis_code-0.13.7/src/alysis_code/interactive_plan_mode.py +0 -26
- alysis_code-0.13.7/src/alysis_code/plan_mode.py +0 -393
- alysis_code-0.13.7/src/alysis_code/provider_url.py +0 -75
- alysis_code-0.13.7/src/alysis_code/run_outcome.py +0 -58
- alysis_code-0.13.7/src/alysis_code/skills/selection.py +0 -226
- alysis_code-0.13.7/src/alysis_code/tools/availability.py +0 -188
- {alysis_code-0.13.7 → alysis_code-0.14.0}/LICENSE +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/NOTICE +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/__main__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/cache_keepalive.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/empty_response_stall.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/errors.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/mutation_classification.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/reproduction_first.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/events.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/interventions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn/snapshot.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent/turn_contract.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/base.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/builtins.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/host.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/registry.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/agent_runtimes/service.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/alysis_cloud.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/asset_read_core.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/budget_allocator.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/comprehender.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/index.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/ingestion.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/legacy_migration.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/models.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/ocr.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-000.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-001.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-002.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-003.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-004.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-005.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-006.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-007.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-008.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-009.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-010.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-011.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-012.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-013.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-014.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-015.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-016.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-017.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-018.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-019.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/ascii/f-020.txt +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/owl/show-owl.sh +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/paths.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/plan_binding.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/planner_context.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/planner_tools.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/prompts.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/replanner_context.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/surface.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/untrusted_content.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/usage_logger.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/worker_mirror.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/worker_section.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/assets/worker_tools.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/atomic_io.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/auth_diagnostics.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/background_runner.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/branding.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/builtin_hooks/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/builtin_hooks/notify_done_windows.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/bwrap_etc.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/capabilities.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/chatgpt_codex_static_provider.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/assets_cli.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/assets_modal.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/_shared.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/auth.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/chat_tui_panels.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/cli_surface.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/config.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/conventions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/execution_helpers.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/extensions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/forge_asset_view.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/hooks.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/ide_bridge.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/mcp.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/profile.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/report.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/sandbox.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/server.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/sessions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/skills.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/tools.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/commands/update.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/forge_recovery.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/config.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/forge_status.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/plan_meta.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/selection_bindings.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/setup_app.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/subagent_panel.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/tips.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/cli_impl/tui/update_prompt.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/clipboard.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/code_review.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/compaction/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/compaction/importance.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/compaction/settings.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/context/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/context/tool_schema_budgeter.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/crash_diagnostics.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/discovery.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/runtime.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/session.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/custom_tools/trust.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/diff_paths.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/direction_change.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/dispatch_timing.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/edit_discipline.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/error_text.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/activation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/install.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/manifest.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/models.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/paths.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/registry.json +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/registry.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/state.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/extensions/workspace_trust.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/failed_task_evidence.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/failure_category.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/file_classification.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/forge.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/forge_completion.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/forge_events.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/frontmatter_utils.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/git_ops.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/git_worktrees.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/audit.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/config.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/dispatcher.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/models.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/hooks/trust.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/host_actions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/activity_events.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/approvals.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/artifacts.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/browser_egress_proxy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/cdp_websocket_transport.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/change_ledger.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/context_blocks.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/event_stream.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/forge_protocol.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/forge_request_ledger.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/health.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/managed_browser.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/management_protocol.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/mcp_oauth_coordinator.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/mcp_oauth_lifecycle.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/prompt_queue.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/protocol.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/resumable_swarm.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/session_search.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/stdio_bridge.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/structured_state.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/ide/swarm_protocol.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/interactive_input_guard.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/knowledge_base.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/knowledge_capture.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/knowledge_librarian.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/language_policy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/litellm_static_provider.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/base.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/cache_control_blocks.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/request_shape.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/streaming.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/types.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm/usage_normalization.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/llm_error_display.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/logging_redaction.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/client.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/config.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/errors.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/forge_scope.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/jsonrpc.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/manager.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/models.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/oauth.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/oauth_runtime.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/oauth_store.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/prompts.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/resources.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/roots.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/server_requests.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/token_store.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/transport_http.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/mcp/untrusted_content.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/merge_conflict_reviewer.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_catalog/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.json +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_catalog/litellm_model_prices_snapshot.meta.json +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_metadata_policy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_metadata_utils.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/model_router.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/permission_policy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/pipeline_facts.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/plan_assistant.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/plan_reconciliation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/plan_repair.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/plan_validation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/planning_constraints.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/policy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/preview_server.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_auth/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_auth/registry.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_auth/store.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/provider_model_catalog.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/remote_sync.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/replanning.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/repo_scan.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/request_estimation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/review_gate.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/run_lock.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/run_state.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/runtime_artifacts.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/runtime_context_features.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/runtime_kind.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/safety/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/safety/mcp_sanitize.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/safety/safe_http.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/safety/subagent_report.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/serialized_paths.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/auth.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/job_config.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/settings.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/server/store.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/address-pr-comments/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/code-review/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/commit/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/debug/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/fix-ci/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/release-notes/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/security-review/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/bundled/skill-creator/SKILL.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/conventions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/discovery.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/eval_runner.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/install.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/loader.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/matching.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/models.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/paths.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/scaffold.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/state.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/transactions.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/skills/validation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/subagent_labels.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/base.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/console.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/hidden_surface.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/noop_surface.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/styles.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/surface/theme.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_backend.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_scheduler.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/swarm_write_guard.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/task_dependencies.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/task_readiness.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/task_scope.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/terminal_ownership.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/text_normalization.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/token_budget.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/README.md +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/__init__.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/history.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/http_timeout.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/image_generation.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/repo_map.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/search.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/shell.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web_search.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web_search_dashscope.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web_search_ddgs.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web_search_provider_adapters.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/tools/web_search_tavily.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/updates.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/usage_tracker.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/verification_failure_summary.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/web_search_adapters.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/web_search_policy.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/workspace_binding.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/workspace_binding_ui.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/workspace_context.py +0 -0
- {alysis_code-0.13.7 → alysis_code-0.14.0}/src/alysis_code/workspace_provisioning.py +0 -0
|
@@ -14,6 +14,7 @@ venv/
|
|
|
14
14
|
|
|
15
15
|
# Tooling
|
|
16
16
|
.dev/
|
|
17
|
+
.worktrees/
|
|
17
18
|
.pytest_cache/
|
|
18
19
|
.pytest-*/
|
|
19
20
|
.ruff_cache/
|
|
@@ -45,6 +46,10 @@ extensions/*/out/
|
|
|
45
46
|
extensions/*/*.vsix
|
|
46
47
|
|
|
47
48
|
# Local review/context bundles
|
|
49
|
+
# Retired internal report directories, regardless of artifact format.
|
|
50
|
+
/docs/internal/
|
|
51
|
+
/docs/subagents/
|
|
52
|
+
/docs/tooling/
|
|
48
53
|
*_context_review.zip
|
|
49
54
|
owner-scoping.patch
|
|
50
55
|
alysis_ecs.tar.gz
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alysis-code
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.14.0
|
|
4
|
+
Summary: Local CLI coding agent powered by any API.
|
|
5
5
|
Project-URL: Changelog, https://github.com/AlysisAi/alysis-code/blob/main/docs/CHANGELOG.md
|
|
6
6
|
Project-URL: Documentation, https://github.com/AlysisAi/alysis-code/tree/main/docs
|
|
7
7
|
Project-URL: Funding, https://github.com/sponsors/AlysisAi
|
|
@@ -25,17 +25,19 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
25
25
|
Classifier: Topic :: Software Development
|
|
26
26
|
Classifier: Topic :: Utilities
|
|
27
27
|
Requires-Python: >=3.11
|
|
28
|
+
Requires-Dist: anyio>=4.14.2
|
|
28
29
|
Requires-Dist: click>=8.0.0
|
|
29
30
|
Requires-Dist: cryptography>=50.0.0
|
|
30
31
|
Requires-Dist: ddgs>=9.0.0
|
|
31
|
-
Requires-Dist: h2>=4.4.1
|
|
32
32
|
Requires-Dist: httpcore<2.0.0,>=1.0.0
|
|
33
33
|
Requires-Dist: httpx>=0.27.0
|
|
34
34
|
Requires-Dist: keyring>=25.0.0
|
|
35
|
+
Requires-Dist: markdown-it-py<5.0.0,>=4.2.0
|
|
35
36
|
Requires-Dist: packaging>=23.0
|
|
36
37
|
Requires-Dist: pillow>=12.3.0
|
|
37
38
|
Requires-Dist: platformdirs>=4.2.0
|
|
38
39
|
Requires-Dist: prompt-toolkit>=3.0.43
|
|
40
|
+
Requires-Dist: psutil<8.0,>=7.2.2
|
|
39
41
|
Requires-Dist: pydantic>=2.6.0
|
|
40
42
|
Requires-Dist: pygments<3.0.0,>=2.17.0
|
|
41
43
|
Requires-Dist: rich>=13.7.1
|
|
@@ -148,16 +150,18 @@ Shell and verification commands default to strict sandboxing. Verification can r
|
|
|
148
150
|
sandbox only when explicitly configured with `verify_sandbox.mode="off"` or
|
|
149
151
|
`ALYSIS_VERIFY_SANDBOX_MODE=off`.
|
|
150
152
|
|
|
151
|
-
##
|
|
153
|
+
## Permissions & Personas
|
|
152
154
|
|
|
153
155
|
Two layers control what the agent may do — one enforces, one focuses.
|
|
154
156
|
|
|
155
|
-
**
|
|
156
|
-
with `/
|
|
157
|
+
**Permissions** are the enforcement layer. Choose one per command with `--mode`, select the next
|
|
158
|
+
message's level in chat with `/permissions` or **Shift+Tab**, or set a default with
|
|
159
|
+
`alysis-code config set default_mode <mode>`. A selection takes effect when the next user message
|
|
160
|
+
starts; it does not change a turn already running:
|
|
157
161
|
|
|
158
162
|
| Mode | Behavior |
|
|
159
163
|
| --- | --- |
|
|
160
|
-
| `readonly` | Inspection only — no file writes, shell, MCP, or
|
|
164
|
+
| `readonly` | Inspection plus top-level read-only delegation — no file writes, shell, MCP, candidate apply/discard, or nested delegation. |
|
|
161
165
|
| `review` | The safe default — previews and asks before every write and shell command. |
|
|
162
166
|
| `auto` | Applies routine edits with fewer prompts; dangerous operations stay blocked. |
|
|
163
167
|
| `fullaccess` | No mode-level prompts for trusted workspaces — the denylist and audit log stay active. |
|
|
@@ -176,6 +180,10 @@ A persona is a convention, never a permission: it can keep or lower your executi
|
|
|
176
180
|
never raise it. Define your own in `.alysis_personas/*.md`.
|
|
177
181
|
[Learn more](https://alysiscode.com/docs/concepts/personas)
|
|
178
182
|
|
|
183
|
+
Use `/persona architect` for planning in chat, or `/forge` for a plan-driven execution workflow.
|
|
184
|
+
The former chat `/plan` commands have been removed; Forge retains its plan views and editor.
|
|
185
|
+
Persona changes made during a running turn apply after that turn finishes.
|
|
186
|
+
|
|
179
187
|
## Project Links
|
|
180
188
|
|
|
181
189
|
- [Website](https://alysiscode.com/)
|
|
@@ -209,4 +217,4 @@ More questions? See the [full FAQ](https://alysiscode.com/docs/faq).
|
|
|
209
217
|
|
|
210
218
|
---
|
|
211
219
|
|
|
212
|
-
**Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](
|
|
220
|
+
**Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/alysis-code/issues)
|
|
@@ -89,16 +89,18 @@ Shell and verification commands default to strict sandboxing. Verification can r
|
|
|
89
89
|
sandbox only when explicitly configured with `verify_sandbox.mode="off"` or
|
|
90
90
|
`ALYSIS_VERIFY_SANDBOX_MODE=off`.
|
|
91
91
|
|
|
92
|
-
##
|
|
92
|
+
## Permissions & Personas
|
|
93
93
|
|
|
94
94
|
Two layers control what the agent may do — one enforces, one focuses.
|
|
95
95
|
|
|
96
|
-
**
|
|
97
|
-
with `/
|
|
96
|
+
**Permissions** are the enforcement layer. Choose one per command with `--mode`, select the next
|
|
97
|
+
message's level in chat with `/permissions` or **Shift+Tab**, or set a default with
|
|
98
|
+
`alysis-code config set default_mode <mode>`. A selection takes effect when the next user message
|
|
99
|
+
starts; it does not change a turn already running:
|
|
98
100
|
|
|
99
101
|
| Mode | Behavior |
|
|
100
102
|
| --- | --- |
|
|
101
|
-
| `readonly` | Inspection only — no file writes, shell, MCP, or
|
|
103
|
+
| `readonly` | Inspection plus top-level read-only delegation — no file writes, shell, MCP, candidate apply/discard, or nested delegation. |
|
|
102
104
|
| `review` | The safe default — previews and asks before every write and shell command. |
|
|
103
105
|
| `auto` | Applies routine edits with fewer prompts; dangerous operations stay blocked. |
|
|
104
106
|
| `fullaccess` | No mode-level prompts for trusted workspaces — the denylist and audit log stay active. |
|
|
@@ -117,6 +119,10 @@ A persona is a convention, never a permission: it can keep or lower your executi
|
|
|
117
119
|
never raise it. Define your own in `.alysis_personas/*.md`.
|
|
118
120
|
[Learn more](https://alysiscode.com/docs/concepts/personas)
|
|
119
121
|
|
|
122
|
+
Use `/persona architect` for planning in chat, or `/forge` for a plan-driven execution workflow.
|
|
123
|
+
The former chat `/plan` commands have been removed; Forge retains its plan views and editor.
|
|
124
|
+
Persona changes made during a running turn apply after that turn finishes.
|
|
125
|
+
|
|
120
126
|
## Project Links
|
|
121
127
|
|
|
122
128
|
- [Website](https://alysiscode.com/)
|
|
@@ -150,4 +156,4 @@ More questions? See the [full FAQ](https://alysiscode.com/docs/faq).
|
|
|
150
156
|
|
|
151
157
|
---
|
|
152
158
|
|
|
153
|
-
**Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](
|
|
159
|
+
**Join the community** — [X](https://x.com/alysiscode) | [GitHub Issues](https://github.com/AlysisAi/alysis-code/issues)
|
|
@@ -8,6 +8,77 @@ Notable user-facing changes to Alysis Code are recorded here. This project follo
|
|
|
8
8
|
|
|
9
9
|
No user-facing changes yet.
|
|
10
10
|
|
|
11
|
+
## [0.14.0] - 2026-09-24
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Add GPT-6 Sol and GPT-6 Luna to the OpenAI API and ChatGPT subscription model
|
|
16
|
+
choices, with pricing, context limits, and reasoning settings. Subscription
|
|
17
|
+
availability follows the live account catalog.
|
|
18
|
+
- Add Claude Opus 5.5 to Anthropic and OpenRouter, Grok 4.7 to xAI and OpenRouter,
|
|
19
|
+
Mistral's hosted GLM 5.3, and current OpenRouter model routes.
|
|
20
|
+
- Show DeepSeek V4.1 Flash and GLM 5.3 Flash as hosted account model choices.
|
|
21
|
+
- Add `/objective` commands to inspect, replace, and amend the current task across
|
|
22
|
+
retries and resumed sessions.
|
|
23
|
+
- Allow a configurable set of public package registries for `web_fetch` while
|
|
24
|
+
retaining URL and network safety checks.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Show clearer model names in setup and move the request timeout control to
|
|
29
|
+
Advanced settings.
|
|
30
|
+
- Improve subagent scheduling, task evidence, and verification reporting.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Suppress unexecuted tool-call markup in replies, retry once with structured
|
|
35
|
+
tool calls, and report a failure if the model repeats the malformed output.
|
|
36
|
+
- Require AnyIO 4.14.2 or newer in the HTTP runtime dependency set.
|
|
37
|
+
- Keep hosted account credentials on the selected gateway when an unsupported
|
|
38
|
+
model is chosen, and preserve retired Xiaomi selections without silently
|
|
39
|
+
redirecting them to a different provider's model.
|
|
40
|
+
- Omit unsupported temperature settings for GPT-6 reasoning requests and reject
|
|
41
|
+
attempts to disable reasoning for always-thinking OpenRouter models.
|
|
42
|
+
- Improve session recovery and deadline handling for long running work.
|
|
43
|
+
- Verify durable service listener ownership on macOS without requiring root access.
|
|
44
|
+
|
|
45
|
+
## [0.13.8] - 2026-09-16
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- Remove legacy chat Plan Mode, its draft/approve flow, and its prompts and toolbar
|
|
50
|
+
state. Use the Architect persona for planning in chat; Forge retains its plan views
|
|
51
|
+
and editor.
|
|
52
|
+
- Replace `/mode` with `/permissions`. Permission selections and Shift+Tab apply to
|
|
53
|
+
the next user message, with the pending choice visible beside the active permissions.
|
|
54
|
+
- Apply persona changes and approved persona-switch proposals only after the active
|
|
55
|
+
turn finishes. Preserve pending permission selections when resuming a conversation.
|
|
56
|
+
- Show pending steering messages and queued follow-ups. Shift+Left recalls the newest
|
|
57
|
+
queued message for editing. Interruptions preserve undelivered work and wait for the
|
|
58
|
+
current worker to finish before another turn starts.
|
|
59
|
+
- Read large Git diffs in complete pages with a content identifier that detects
|
|
60
|
+
changes between pages. The agent can select a path or inspect staged changes.
|
|
61
|
+
- Allow a background-process wait of up to 900 seconds, bounded by the remaining
|
|
62
|
+
run budget and returning early when its requested condition is met.
|
|
63
|
+
- Explain how to correct rejected verification commands, including how to use the
|
|
64
|
+
session's configured verification contract.
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- Keep plain assistant replies in conversation history so follow-up requests retain
|
|
69
|
+
the previous answer even when the provider returns no extra metadata.
|
|
70
|
+
- Redact credential fields inside nested JSON, tool arguments, feedback text, and
|
|
71
|
+
support bundles. Omit data that exceeds the safe redaction depth and non-UTF-8
|
|
72
|
+
diagnostic artifacts that cannot be sanitized reliably.
|
|
73
|
+
- Clean up incomplete support bundles after cancellation or I/O errors, support long
|
|
74
|
+
Windows export paths, and open report drafts without disrupting terminal output.
|
|
75
|
+
- Inspect Git changes without running configured diff programs, text converters,
|
|
76
|
+
filesystem monitors, or content filters. Worktree reads that require content
|
|
77
|
+
filters or submodule helpers return guidance for an approved shell command;
|
|
78
|
+
staged diffs and unaffected scoped paths remain available.
|
|
79
|
+
- Preserve hosted-account explanations for rolling usage limits, concurrent requests,
|
|
80
|
+
reserved credits, and temporary routing or capacity problems.
|
|
81
|
+
|
|
11
82
|
## [0.13.7] - 2026-09-11
|
|
12
83
|
|
|
13
84
|
### Added
|
|
@@ -271,7 +342,9 @@ Public launch and repository-layout refresh.
|
|
|
271
342
|
Release notes for versions before 0.9.8 remain available in the
|
|
272
343
|
[GitHub Releases archive](https://github.com/AlysisAi/alysis-code/releases).
|
|
273
344
|
|
|
274
|
-
[Unreleased]: https://github.com/AlysisAi/alysis-code/compare/v0.
|
|
345
|
+
[Unreleased]: https://github.com/AlysisAi/alysis-code/compare/v0.14.0...HEAD
|
|
346
|
+
[0.14.0]: https://github.com/AlysisAi/alysis-code/compare/v0.13.8...v0.14.0
|
|
347
|
+
[0.13.8]: https://github.com/AlysisAi/alysis-code/compare/v0.13.7...v0.13.8
|
|
275
348
|
[0.13.7]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.2...v0.13.7
|
|
276
349
|
[0.13.6.2]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6.1...v0.13.6.2
|
|
277
350
|
[0.13.6.1]: https://github.com/AlysisAi/alysis-code/compare/v0.13.6...v0.13.6.1
|
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "alysis-code"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.14.0"
|
|
8
|
+
description = "Local CLI coding agent powered by any API."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
license = { text = "Apache-2.0" }
|
|
@@ -32,18 +32,20 @@ classifiers = [
|
|
|
32
32
|
"Topic :: Utilities",
|
|
33
33
|
]
|
|
34
34
|
dependencies = [
|
|
35
|
+
"anyio>=4.14.2",
|
|
35
36
|
"click>=8.0.0",
|
|
36
37
|
"cryptography>=50.0.0",
|
|
37
38
|
"ddgs>=9.0.0",
|
|
38
|
-
"h2>=4.4.1",
|
|
39
39
|
"httpcore>=1.0.0,<2.0.0",
|
|
40
40
|
"httpx>=0.27.0",
|
|
41
41
|
"keyring>=25.0.0",
|
|
42
|
+
"markdown-it-py>=4.2.0,<5.0.0",
|
|
42
43
|
"packaging>=23.0",
|
|
43
44
|
"pillow>=12.3.0",
|
|
44
45
|
"platformdirs>=4.2.0",
|
|
45
46
|
"pydantic>=2.6.0",
|
|
46
47
|
"prompt-toolkit>=3.0.43",
|
|
48
|
+
"psutil>=7.2.2,<8.0",
|
|
47
49
|
"pygments>=2.17.0,<3.0.0",
|
|
48
50
|
"rich>=13.7.1",
|
|
49
51
|
"tiktoken>=0.7.0",
|
|
@@ -8,7 +8,9 @@ stale commit hash.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
BUILD_COMMIT = ""
|
|
11
|
+
BUILD_COMMIT_SUBJECT = ""
|
|
11
12
|
BUILD_TIMESTAMP = ""
|
|
12
13
|
BUILD_DIRTY = True
|
|
13
14
|
BUILD_SOURCE = "dev-default"
|
|
14
|
-
|
|
15
|
+
BUILD_RESOLVED_ORIGIN_MAIN = "unavailable"
|
|
16
|
+
BUILD_INFO_SCHEMA_VERSION = 2
|
|
@@ -37,7 +37,7 @@ from .config import (
|
|
|
37
37
|
save_persisted_profile_key,
|
|
38
38
|
)
|
|
39
39
|
from .host_browser import open_url
|
|
40
|
-
from .profile_presets import get_preset, make_profile_from_preset
|
|
40
|
+
from .profile_presets import canonical_model_alias_for_preset, get_preset, make_profile_from_preset
|
|
41
41
|
from .profiles import ProfileSpec, add_profile, get_profile, set_active_profile
|
|
42
42
|
|
|
43
43
|
# Matches the server-side device-code expiry (15 min) so we poll until the code
|
|
@@ -49,7 +49,7 @@ _DEFAULT_POLL_INTERVAL_S = 5.0
|
|
|
49
49
|
# model picker, so an offline/slow gateway must not stall the menu for long.
|
|
50
50
|
_MODELS_TIMEOUT_S = 6.0
|
|
51
51
|
|
|
52
|
-
_FRESH_LOGIN_DEFAULT_MODEL = "deepseek-
|
|
52
|
+
_FRESH_LOGIN_DEFAULT_MODEL = "deepseek-flash"
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
class AlysisLoginError(Exception):
|
|
@@ -441,11 +441,11 @@ def _format_token_usage(used: int | None, total: int | None) -> str | None:
|
|
|
441
441
|
def _activate_alysis_profile(cfg: AppConfig, *, email: str | None) -> LoginResult:
|
|
442
442
|
"""Create + activate the `alysis` profile, keeping any model the user chose.
|
|
443
443
|
|
|
444
|
-
Fresh logins default to
|
|
445
|
-
|
|
444
|
+
Fresh logins default to V4.1 Flash (``deepseek-flash``) so
|
|
445
|
+
connect → login → chat works with zero extra steps. Re-logins preserve
|
|
446
446
|
whatever model the user selected since, so logging in again never undoes
|
|
447
|
-
|
|
448
|
-
|
|
447
|
+
supported choices. Retired Flash/beta ids are remapped to the current
|
|
448
|
+
default via the preset's model_aliases, including on re-login.
|
|
449
449
|
"""
|
|
450
450
|
preset = get_preset(cloud.PROFILE_KEY)
|
|
451
451
|
if preset is not None:
|
|
@@ -456,6 +456,8 @@ def _activate_alysis_profile(cfg: AppConfig, *, email: str | None) -> LoginResul
|
|
|
456
456
|
existing = get_profile(cfg, cloud.PROFILE_KEY)
|
|
457
457
|
existing_model = str(getattr(existing, "default_model", "") or "").strip() if existing else ""
|
|
458
458
|
chosen_model = existing_model or _FRESH_LOGIN_DEFAULT_MODEL
|
|
459
|
+
if preset is not None:
|
|
460
|
+
chosen_model = canonical_model_alias_for_preset(preset, chosen_model)
|
|
459
461
|
|
|
460
462
|
# Always pin to the live gateway URL (env-overridable for tests); keep the
|
|
461
463
|
# user's chosen model.
|
|
@@ -12,6 +12,11 @@ managed execution flows.
|
|
|
12
12
|
- [turn_path.py](turn_path.py) defines execution posture and reply-language directives.
|
|
13
13
|
- [prompt_context.py](prompt_context.py) prepares workspace, convention, skill, plugin, and
|
|
14
14
|
verification context.
|
|
15
|
+
- [task_state.py](task_state.py) holds the host-owned task identity (`SessionTaskState`):
|
|
16
|
+
the accepted objective, its originating user event, and its transitions.
|
|
17
|
+
The pinned `<task_brief>` is a bounded rendering of it, installed before the
|
|
18
|
+
first model request of a turn; it is never inferred from edits, tool output,
|
|
19
|
+
or model text, and it grants no permission.
|
|
15
20
|
- [verification.py](verification.py) and [verification_commands.py](verification_commands.py)
|
|
16
21
|
support verification flows.
|
|
17
22
|
|