algo-cli-runtime 0.16.0__tar.gz → 0.18.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.
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/CHANGELOG.md +43 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/PKG-INFO +28 -13
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/README.md +27 -12
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/__init__.py +1 -1
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/action_registry.py +39 -23
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/chatgpt_auth.py +133 -55
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/chatgpt_client.py +83 -20
- algo_cli_runtime-0.18.0/algo_cli/cli_config.py +402 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/config.py +173 -22
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/context_budget.py +3 -3
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/credential_helpers.py +75 -11
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/display.py +1 -1
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/harness_retrieval_benchmark.py +199 -1
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/google_workspace.py +1 -1
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/google_workspace_auth.py +135 -38
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/harness.py +272 -16
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/main.py +162 -202
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/model_info.py +3 -3
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/runtime_services.py +39 -8
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/session_commands.py +1 -1
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/slash_dispatch.py +35 -12
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tool_runtime.py +2 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tools.py +124 -35
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/x_account.py +3 -3
- algo_cli_runtime-0.18.0/algo_cli/xai_auth.py +107 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/xai_client.py +30 -18
- algo_cli_runtime-0.18.0/docs/echo-veil-security-status.md +15 -0
- algo_cli_runtime-0.18.0/docs/external-agent-store-operations.md +17 -0
- algo_cli_runtime-0.18.0/docs/provider-auth-recovery.md +15 -0
- algo_cli_runtime-0.18.0/docs/runtime-capability-catalog.md +15 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/pyproject.toml +8 -0
- algo_cli_runtime-0.16.0/algo_cli/xai_auth.py +0 -374
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/.gitignore +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/CONTRIBUTING.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/LICENSE +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/SECURITY.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo-cli.cmd +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo-cli.ps1 +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/__main__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/_internal/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/_internal/policy_chain.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/agent_blocks.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/agent_pipeline.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/agent_threads.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/animations.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/cache_admission.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/capability_mask.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/chat_protocol.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/code_rag.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/context_supersession.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/deliberation.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/algorithm_effectiveness.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/competitive_harness_rating.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/cot_quality.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/performance_regression.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/scorecard_grading.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/session_distribution.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/evals/tool_context_efficiency.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/execution_guardrails.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/extensions_manifest.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/git_evidence.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/git_publish.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/identity.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/index_compute_lab.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/inference_harness.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_config.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_manifests.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_models.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_pipeline.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_runtime.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_security.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/acrobat_workflows.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/actionability.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/adversarial_audit.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/agent_arena.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/agent_benchmark.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/agent_runtime.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/agents_as_tools.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/artifact_binding.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/autonomous_engineer.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/backpressure.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/bloom_filter.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/bonferroni.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/boundary_compaction.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/catalog_verifier.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/cavecrew.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/changelog.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/checkpoint_resume.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/circuit_breaker.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/clarification_gate.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/code_graph.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/coderank.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/consistent_hash.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/consortium_synthesis.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/common.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/documents.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/labor_units.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/payments.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/construction/risk.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/content_extractor.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/context_adaptive.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/context_ops.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/count_min.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/cow_state.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/critic_loop.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/cross_source.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/daemon_mode.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/dag_orchestration.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/deep_research.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/degenerate_detector.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/delta_report.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/discovery_event_log.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/document_ingest.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/dual_layer_validate.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/echo_fidelity.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/ema_tuning.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/event_log.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/evidence_graph.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/extension_host.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/extension_manifest.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/falsification_suite.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/anomalies.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/ap_ar.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/cash.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/close.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/common.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/construction.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/controls.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/evidence.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/exceptions.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/reconciliations.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/revenue.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/tax.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finance/workpapers.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/finding_record.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/flow_dag.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/gatherer.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/golden_master.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/graph_rag.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/group_chat.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/hash_dedup.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/hyperloglog.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/incremental_index.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/index_store.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/iteration_plan.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/kernel_plugins.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/lesson_catalog.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/llm_fallback.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/log2_histogram.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/lsp_integration.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/memory_evolution.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/minhash_lsh.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/multi_model_score.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/multi_tier_grade.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/negative_controls.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/numeric_clamp.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/occ_editor.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/output_normalize.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/parallel_delegation.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/parallel_fanout.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/permission_modes.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/pre_push_gate.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/prefetch.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/process_framework.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/project_graph.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/query_expansion.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/ralph_loop.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/rate_limiter.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/refactor_transaction.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/repo_map.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/research_workspace.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/retraction_ledger.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/saga_pattern.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/session_fork.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/shadow_editor.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/shell_session.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/source_registry.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/spawn_scales.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/stat_stability.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/structural_validator.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/subagent_spawner.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/symmetric_verify.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/task_classifier.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/team_execution.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/tiered_access.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intelligence/utility_registry.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intuition_engine.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/intuition_injector.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/kernels/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/kernels/manifest.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/memory_candidates.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/memory_echo_veil.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/memory_runtime.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/model_aliases.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/model_profile.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/model_routing.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/oneshot.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/perf_telemetry.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/plugins.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/private_event_store.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/program_runtime.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/quantization/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/quantization/lloyd_max.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/quantization/turbo_quant.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/combinatorial.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/graph_of_thought.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/mcts.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/neuro_symbolic.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/react.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/reflexion.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning/tree_of_thought.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reasoning_bridge.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reconciliation.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/reflex.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/retrieval_algorithms.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/runtime_qos.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/session_mode.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/skills.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/small_context.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/spawn_budget.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/task_ledger.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/task_router.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tool_context.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tool_contract.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tool_policy.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/tool_schema.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/updater.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/url_scheme.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/verify.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/version_manifest.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/vision_screenshot_verify.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/workspace_resolver.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/algo_cli/worktree_runtime.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/ALGO.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/algo-cli-algorithm-evidence-contract.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/algo-cli-execution-verification-contract.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/algo-cli-memory-lifecycle-contract.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/harness-extension-cleanup-recommendation.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/index-compute-lab-integration.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/inference-harness-loop-blueprint-2026-06.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/main-split-map.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/privacy-and-context.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/reflex-loop-v0.2.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/docs/t3-code-parity-2026-07.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/harness-gateway/go.mod +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/harness-gateway/main.go +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/harness-indexer/Cargo.lock +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/harness-indexer/Cargo.toml +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/harness-indexer/src/main.rs +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/ollama_cli/__init__.py +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/README.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/algo-cli.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/edit-file-precision.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/harness-search-first.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/memory-recall-ritual.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/qol-algorithms.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/smart-error-recovery.md +0 -0
- {algo_cli_runtime-0.16.0 → algo_cli_runtime-0.18.0}/skills/tool-selection-cheatsheet.md +0 -0
|
@@ -4,6 +4,49 @@ All notable changes to Algo CLI are documented here. The format follows [Keep a
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.18.0] - 2026-07-17
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- ActionSpec tools, commands, providers, and kernels are materialized as retrievable `runtime_capability` records with policy, prerequisites, compatibility, and known limitations.
|
|
12
|
+
- The harness retrieval benchmark now includes frozen multilingual, code-switching, translated-alias, multi-hop, cross-source, and temporal-supersession workloads with recall@k, MRR, nDCG, citation precision, and a fixture digest.
|
|
13
|
+
- Harness status reports privacy-safe external-store adapter availability, indexed provenance, deterministic conflict policy, and malformed or unavailable extra-root diagnostics.
|
|
14
|
+
- Operations guides cover external stores, provider authentication recovery, runtime capability indexing, and the truthful Echo Veil activation contract.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- A 10/10 score now requires the versioned multilingual/complex retrieval-quality payload and its metric thresholds in addition to the existing stability and reusable-index performance evidence.
|
|
19
|
+
- Superseded knowledge remains explicitly searchable but is excluded from automatic context injection.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Invalidated ChatGPT/Codex OAuth sessions attempt one bounded refresh and otherwise clear unusable access state with actionable reauthentication guidance.
|
|
24
|
+
- Runtime readiness uses exact loopback host parsing and a short synchronized negative cache; timed-out web fetches release only semaphore permits owned by their request.
|
|
25
|
+
- Terminal configuration errors suggest the closest valid subcommand instead of falling through or failing ambiguously.
|
|
26
|
+
|
|
27
|
+
## [0.17.0] - 2026-07-15
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- A terminal-first `algo-cli config` workflow provides redacted provider status, guided setup, authentication, verification, and cleanup without crowding the interactive slash-command palette.
|
|
32
|
+
- Google Workspace setup now guides Desktop-app OAuth configuration and launches the PKCE loopback login flow from the normal terminal.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- xAI model and X-search access now use the documented `XAI_API_KEY` route; legacy local xAI OAuth state is detected for migration but is no longer used by the runtime.
|
|
37
|
+
- ChatGPT/Codex, Google, and xAI setup guidance is consistent across startup diagnostics, provider routing, slash commands, README documentation, and the website install page.
|
|
38
|
+
|
|
39
|
+
### Security
|
|
40
|
+
|
|
41
|
+
- OAuth token persistence and refresh are process-serialized to prevent concurrent refresh-token rotation races, and remote credential-bearing endpoint overrides require HTTPS.
|
|
42
|
+
- Shell timeouts terminate descendant process groups, timed-out web fetches have a bounded concurrency budget, and X-search cache metadata is normalized against multiline injection.
|
|
43
|
+
- Runtime state loading tolerates corrupt or unreadable JSON, rejects invalid environment keys safely, preserves private file modes, and avoids unbounded lock-file growth.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- `algo-cli config setup google` now executes the requested setup instead of falling through into the interactive agent runtime.
|
|
48
|
+
- Invalid Google redirect-port settings fall back safely, cache-write failures no longer discard valid X-search results, and OAuth error redaction preserves useful HTTP status codes while removing credentials and callback codes.
|
|
49
|
+
|
|
7
50
|
## [0.16.0] - 2026-07-14
|
|
8
51
|
|
|
9
52
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: algo-cli-runtime
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: Agent runtime for tools, durable context, and verified work
|
|
5
5
|
Project-URL: Homepage, https://algo-cli.com
|
|
6
6
|
Project-URL: Documentation, https://algo-cli.com/docs
|
|
@@ -110,7 +110,8 @@ algo-cli --model qwen3:235b-cloud
|
|
|
110
110
|
export OLLAMA_API_KEY="..."
|
|
111
111
|
algo-cli --cloud --model qwen3
|
|
112
112
|
|
|
113
|
-
# ChatGPT/Codex subscription (authenticate once
|
|
113
|
+
# ChatGPT/Codex subscription (authenticate once outside the chat REPL)
|
|
114
|
+
algo-cli config setup chatgpt
|
|
114
115
|
algo-cli --model gpt-5.6-sol
|
|
115
116
|
# Short aliases also work: sol, terra, luna
|
|
116
117
|
algo-cli --model terra
|
|
@@ -125,19 +126,29 @@ Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA
|
|
|
125
126
|
|
|
126
127
|
`--oneshot --json` emits one JSON object per line to stdout (NDJSON), suitable for subprocess consumption. `--approval-mode never` (default) denies approval-required tools and emits a `tool_denied` event; pass `--approval-mode auto` to grant them. Skill crystallization is disabled in one-shot mode. Event types: `session_start`, `thinking`, `content`, `tool_call`, `tool_result`, `tool_denied`, `error`, `done`. The bridge can rely on `session_start` first and `done` last as framing.
|
|
127
128
|
|
|
128
|
-
Runtime environment values can be stored in `~/.algo_cli/env` — the CLI loads them automatically. Point to a different file with `ALGO_CLI_ENV_FILE`. Legacy `~/.ollama_cli` locations are supported as migration aliases.
|
|
129
|
+
Runtime environment values can be stored in `~/.algo_cli/env` — the CLI loads them automatically. `algo-cli config` shows safe provider status, and `algo-cli config setup PROVIDER` writes only the selected setting with private file permissions. Point to a different file with `ALGO_CLI_ENV_FILE`. Legacy `~/.ollama_cli` locations are supported as migration aliases.
|
|
129
130
|
|
|
130
|
-
###
|
|
131
|
+
### Provider setup
|
|
131
132
|
|
|
132
|
-
|
|
133
|
+
Keep account setup outside the interactive slash palette:
|
|
133
134
|
|
|
134
135
|
```bash
|
|
135
|
-
|
|
136
|
-
algo-cli
|
|
137
|
-
|
|
136
|
+
# Safe, redacted readiness summary
|
|
137
|
+
algo-cli config status
|
|
138
|
+
|
|
139
|
+
# xAI API: prompts for XAI_API_KEY without echoing it
|
|
140
|
+
algo-cli config setup xai
|
|
141
|
+
algo-cli config auth xai verify
|
|
142
|
+
|
|
143
|
+
# Google Workspace: prompts for a Google Desktop-app OAuth client ID,
|
|
144
|
+
# then opens the PKCE loopback login flow
|
|
145
|
+
algo-cli config setup google
|
|
146
|
+
|
|
147
|
+
# ChatGPT/Codex browser or device OAuth
|
|
148
|
+
algo-cli config setup chatgpt
|
|
138
149
|
```
|
|
139
150
|
|
|
140
|
-
|
|
151
|
+
xAI's public API uses `XAI_API_KEY`; API calls can consume paid usage, so setup never makes a request until you explicitly verify or use a Grok model/tool. Google Workspace uses OAuth 2.0 + PKCE with a local loopback callback. Create a **Desktop app** OAuth client, enable only the Workspace APIs you intend to use, and keep its consent screen/test-user policy aligned with your account. The normal Google operations remain under `/google ...`; only credentials and login moved to `algo-cli config`.
|
|
141
152
|
|
|
142
153
|
### Privacy-safe context defaults
|
|
143
154
|
|
|
@@ -162,8 +173,10 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
|
|
|
162
173
|
| `/models` | List local models |
|
|
163
174
|
| `/host URL` | Set local Ollama host |
|
|
164
175
|
| `/cloud [on\|off\|status]` | Set/toggle direct Ollama Cloud API mode; local Ollama login can run `:cloud` models with `/cloud off` |
|
|
165
|
-
| `/
|
|
166
|
-
|
|
|
176
|
+
| `/config [status\|setup PROVIDER\|auth PROVIDER ACTION]` | Focused provider setup from the REPL; prefer `algo-cli config ...` in a normal terminal |
|
|
177
|
+
| `algo-cli config setup xai` | Store a redacted xAI API key; API calls may consume paid usage |
|
|
178
|
+
| `algo-cli config setup google` | Configure Google Desktop-app OAuth and launch the PKCE login flow |
|
|
179
|
+
| `algo-cli config setup chatgpt` | Authenticate ChatGPT/Codex outside the normal slash palette |
|
|
167
180
|
| `/x-account status` | Check separate X account OAuth status through `xurl` |
|
|
168
181
|
| `/x-account draft-post` / `draft-reply` | Create browser drafts for X posts/replies without publishing |
|
|
169
182
|
| `/auto [on\|off\|status]` | Set/toggle auto-approve for tool calls |
|
|
@@ -261,7 +274,7 @@ The model can call these tools during a conversation:
|
|
|
261
274
|
|
|
262
275
|
**Web:** `web_search`, `web_fetch` (requires Ollama Cloud + API key)
|
|
263
276
|
|
|
264
|
-
**X:** `x_search` uses optional xAI
|
|
277
|
+
**X:** `x_search` uses optional xAI API-key access for read/search; configure it with `algo-cli config setup xai`. xAI API calls may consume paid usage. `x_account_status`, `x_account_draft_post`, `x_account_draft_reply`, `x_account_post`, `x_account_reply`, and `x_account_post_action` use the separate X API OAuth lane through `xurl`; write actions require explicit confirmation.
|
|
265
278
|
|
|
266
279
|
`/x-account` requires the official X API CLI, `xurl`, to be installed and authenticated separately. The CLI only runs `xurl auth status` for status checks and never reads `~/.xurl` directly.
|
|
267
280
|
|
|
@@ -357,7 +370,9 @@ Config is stored in `~/.algo_cli/` by default (data from `~/.ollama_cli` is auto
|
|
|
357
370
|
| `ALGO_CLI_HARNESS_INDEXER` | Optional Rust harness indexer binary |
|
|
358
371
|
| `OPENAI_OAUTH_CLIENT_ID` | Optional override for the bundled ChatGPT/Codex browser OAuth client |
|
|
359
372
|
| `OPENAI_CODEX_CLIENT_ID` | Optional override for the bundled Codex OAuth client |
|
|
360
|
-
| `
|
|
373
|
+
| `XAI_API_KEY` | Optional xAI API key for Grok models and `x_search`; configure with `algo-cli config setup xai` |
|
|
374
|
+
| `GOOGLE_OAUTH_CLIENT_ID` | Google Desktop-app OAuth client ID for Workspace access; configure with `algo-cli config setup google` |
|
|
375
|
+
| `GOOGLE_OAUTH_CLIENT_SECRET` | Optional Google client secret for a client type that requires it; Desktop apps normally omit it |
|
|
361
376
|
| `OLLAMA_HOST` | Local Ollama host |
|
|
362
377
|
| `OLLAMA_API_KEY` | Direct Ollama Cloud API/web tools key; not required for signed-in local `:cloud` models |
|
|
363
378
|
|
|
@@ -52,7 +52,8 @@ algo-cli --model qwen3:235b-cloud
|
|
|
52
52
|
export OLLAMA_API_KEY="..."
|
|
53
53
|
algo-cli --cloud --model qwen3
|
|
54
54
|
|
|
55
|
-
# ChatGPT/Codex subscription (authenticate once
|
|
55
|
+
# ChatGPT/Codex subscription (authenticate once outside the chat REPL)
|
|
56
|
+
algo-cli config setup chatgpt
|
|
56
57
|
algo-cli --model gpt-5.6-sol
|
|
57
58
|
# Short aliases also work: sol, terra, luna
|
|
58
59
|
algo-cli --model terra
|
|
@@ -67,19 +68,29 @@ Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA
|
|
|
67
68
|
|
|
68
69
|
`--oneshot --json` emits one JSON object per line to stdout (NDJSON), suitable for subprocess consumption. `--approval-mode never` (default) denies approval-required tools and emits a `tool_denied` event; pass `--approval-mode auto` to grant them. Skill crystallization is disabled in one-shot mode. Event types: `session_start`, `thinking`, `content`, `tool_call`, `tool_result`, `tool_denied`, `error`, `done`. The bridge can rely on `session_start` first and `done` last as framing.
|
|
69
70
|
|
|
70
|
-
Runtime environment values can be stored in `~/.algo_cli/env` — the CLI loads them automatically. Point to a different file with `ALGO_CLI_ENV_FILE`. Legacy `~/.ollama_cli` locations are supported as migration aliases.
|
|
71
|
+
Runtime environment values can be stored in `~/.algo_cli/env` — the CLI loads them automatically. `algo-cli config` shows safe provider status, and `algo-cli config setup PROVIDER` writes only the selected setting with private file permissions. Point to a different file with `ALGO_CLI_ENV_FILE`. Legacy `~/.ollama_cli` locations are supported as migration aliases.
|
|
71
72
|
|
|
72
|
-
###
|
|
73
|
+
### Provider setup
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Keep account setup outside the interactive slash palette:
|
|
75
76
|
|
|
76
77
|
```bash
|
|
77
|
-
|
|
78
|
-
algo-cli
|
|
79
|
-
|
|
78
|
+
# Safe, redacted readiness summary
|
|
79
|
+
algo-cli config status
|
|
80
|
+
|
|
81
|
+
# xAI API: prompts for XAI_API_KEY without echoing it
|
|
82
|
+
algo-cli config setup xai
|
|
83
|
+
algo-cli config auth xai verify
|
|
84
|
+
|
|
85
|
+
# Google Workspace: prompts for a Google Desktop-app OAuth client ID,
|
|
86
|
+
# then opens the PKCE loopback login flow
|
|
87
|
+
algo-cli config setup google
|
|
88
|
+
|
|
89
|
+
# ChatGPT/Codex browser or device OAuth
|
|
90
|
+
algo-cli config setup chatgpt
|
|
80
91
|
```
|
|
81
92
|
|
|
82
|
-
|
|
93
|
+
xAI's public API uses `XAI_API_KEY`; API calls can consume paid usage, so setup never makes a request until you explicitly verify or use a Grok model/tool. Google Workspace uses OAuth 2.0 + PKCE with a local loopback callback. Create a **Desktop app** OAuth client, enable only the Workspace APIs you intend to use, and keep its consent screen/test-user policy aligned with your account. The normal Google operations remain under `/google ...`; only credentials and login moved to `algo-cli config`.
|
|
83
94
|
|
|
84
95
|
### Privacy-safe context defaults
|
|
85
96
|
|
|
@@ -104,8 +115,10 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
|
|
|
104
115
|
| `/models` | List local models |
|
|
105
116
|
| `/host URL` | Set local Ollama host |
|
|
106
117
|
| `/cloud [on\|off\|status]` | Set/toggle direct Ollama Cloud API mode; local Ollama login can run `:cloud` models with `/cloud off` |
|
|
107
|
-
| `/
|
|
108
|
-
|
|
|
118
|
+
| `/config [status\|setup PROVIDER\|auth PROVIDER ACTION]` | Focused provider setup from the REPL; prefer `algo-cli config ...` in a normal terminal |
|
|
119
|
+
| `algo-cli config setup xai` | Store a redacted xAI API key; API calls may consume paid usage |
|
|
120
|
+
| `algo-cli config setup google` | Configure Google Desktop-app OAuth and launch the PKCE login flow |
|
|
121
|
+
| `algo-cli config setup chatgpt` | Authenticate ChatGPT/Codex outside the normal slash palette |
|
|
109
122
|
| `/x-account status` | Check separate X account OAuth status through `xurl` |
|
|
110
123
|
| `/x-account draft-post` / `draft-reply` | Create browser drafts for X posts/replies without publishing |
|
|
111
124
|
| `/auto [on\|off\|status]` | Set/toggle auto-approve for tool calls |
|
|
@@ -203,7 +216,7 @@ The model can call these tools during a conversation:
|
|
|
203
216
|
|
|
204
217
|
**Web:** `web_search`, `web_fetch` (requires Ollama Cloud + API key)
|
|
205
218
|
|
|
206
|
-
**X:** `x_search` uses optional xAI
|
|
219
|
+
**X:** `x_search` uses optional xAI API-key access for read/search; configure it with `algo-cli config setup xai`. xAI API calls may consume paid usage. `x_account_status`, `x_account_draft_post`, `x_account_draft_reply`, `x_account_post`, `x_account_reply`, and `x_account_post_action` use the separate X API OAuth lane through `xurl`; write actions require explicit confirmation.
|
|
207
220
|
|
|
208
221
|
`/x-account` requires the official X API CLI, `xurl`, to be installed and authenticated separately. The CLI only runs `xurl auth status` for status checks and never reads `~/.xurl` directly.
|
|
209
222
|
|
|
@@ -299,7 +312,9 @@ Config is stored in `~/.algo_cli/` by default (data from `~/.ollama_cli` is auto
|
|
|
299
312
|
| `ALGO_CLI_HARNESS_INDEXER` | Optional Rust harness indexer binary |
|
|
300
313
|
| `OPENAI_OAUTH_CLIENT_ID` | Optional override for the bundled ChatGPT/Codex browser OAuth client |
|
|
301
314
|
| `OPENAI_CODEX_CLIENT_ID` | Optional override for the bundled Codex OAuth client |
|
|
302
|
-
| `
|
|
315
|
+
| `XAI_API_KEY` | Optional xAI API key for Grok models and `x_search`; configure with `algo-cli config setup xai` |
|
|
316
|
+
| `GOOGLE_OAUTH_CLIENT_ID` | Google Desktop-app OAuth client ID for Workspace access; configure with `algo-cli config setup google` |
|
|
317
|
+
| `GOOGLE_OAUTH_CLIENT_SECRET` | Optional Google client secret for a client type that requires it; Desktop apps normally omit it |
|
|
303
318
|
| `OLLAMA_HOST` | Local Ollama host |
|
|
304
319
|
| `OLLAMA_API_KEY` | Direct Ollama Cloud API/web tools key; not required for signed-in local `:cloud` models |
|
|
305
320
|
|
|
@@ -516,7 +516,7 @@ ACTION_SPECS: tuple[ActionSpec, ...] = (
|
|
|
516
516
|
"google_workspace.read", "provider", "Google Workspace access (read/write Drive/Docs/Sheets/Calendar plus Gmail read/draft creation) via OAuth.",
|
|
517
517
|
"provider",
|
|
518
518
|
("google-workspace", "oauth", "read-write", "network"),
|
|
519
|
-
"Provides Google Workspace access behind the
|
|
519
|
+
"Provides Google Workspace access behind the `algo-cli config setup google` OAuth flow; Gmail writes are limited to draft creation for user review.",
|
|
520
520
|
"medium", False, False, True,
|
|
521
521
|
requires_network=True,
|
|
522
522
|
requires_provider="google-workspace",
|
|
@@ -530,19 +530,35 @@ ACTION_SPECS: tuple[ActionSpec, ...] = (
|
|
|
530
530
|
"/google-login", "slash", "Authenticate with Google Workspace (OAuth2 + PKCE).",
|
|
531
531
|
"provider",
|
|
532
532
|
("google-workspace", "oauth", "auth"),
|
|
533
|
-
"
|
|
533
|
+
"Compatibility route for existing sessions; new setup lives under `algo-cli config`.", "medium", True, True, True,
|
|
534
|
+
archived=True,
|
|
535
|
+
archived_reason="Provider setup moved out of the normal slash palette.",
|
|
536
|
+
replacement="Use `algo-cli config auth google login`.",
|
|
534
537
|
),
|
|
535
538
|
_spec(
|
|
536
539
|
"/google-logout", "slash", "Revoke Google Workspace tokens locally.",
|
|
537
540
|
"provider",
|
|
538
541
|
("google-workspace", "auth", "logout"),
|
|
539
|
-
"
|
|
542
|
+
"Compatibility route for existing sessions; new setup lives under `algo-cli config`.", "medium", True, True, True,
|
|
543
|
+
archived=True,
|
|
544
|
+
archived_reason="Provider setup moved out of the normal slash palette.",
|
|
545
|
+
replacement="Use `algo-cli config auth google logout`.",
|
|
540
546
|
),
|
|
541
547
|
_spec(
|
|
542
548
|
"/google-status", "slash", "Show Google Workspace auth state.",
|
|
543
549
|
"provider",
|
|
544
550
|
("google-workspace", "auth", "status"),
|
|
545
|
-
"
|
|
551
|
+
"Compatibility route for existing sessions; new setup lives under `algo-cli config`.", "low", False, False, True,
|
|
552
|
+
archived=True,
|
|
553
|
+
archived_reason="Provider setup moved out of the normal slash palette.",
|
|
554
|
+
replacement="Use `algo-cli config auth google status`.",
|
|
555
|
+
),
|
|
556
|
+
_spec(
|
|
557
|
+
"/config", "slash", "Configure or inspect connected providers outside the normal slash palette.",
|
|
558
|
+
"provider",
|
|
559
|
+
("provider", "configuration", "credentials", "oauth"),
|
|
560
|
+
"`/config status` is read-only; setup and login paths can write local credential state or open a browser.",
|
|
561
|
+
"medium", True, True, False,
|
|
546
562
|
),
|
|
547
563
|
_spec(
|
|
548
564
|
"/google", "slash", "Run Google Workspace commands (Drive/Docs/Sheets/Calendar read/write plus Gmail read/drafts).",
|
|
@@ -981,39 +997,39 @@ def build_doctor_report(cfg: Any) -> DoctorReport:
|
|
|
981
997
|
"Set ALGO_CLI_ENV_FILE or ~/.algo_cli/env with OLLAMA_API_KEY, then rerun /doctor.",
|
|
982
998
|
))
|
|
983
999
|
|
|
984
|
-
# xAI
|
|
985
|
-
#
|
|
986
|
-
#
|
|
1000
|
+
# xAI API access is optional. A missing key must not make a fresh local
|
|
1001
|
+
# install look unhealthy, but the readiness report must not claim that an
|
|
1002
|
+
# undocumented consumer OAuth lane is usable.
|
|
987
1003
|
try:
|
|
988
1004
|
from . import xai_auth
|
|
989
1005
|
|
|
990
1006
|
xai_status = xai_auth.auth_status()
|
|
991
|
-
if not xai_status.get("
|
|
1007
|
+
if not xai_status.get("api_key_configured"):
|
|
992
1008
|
findings.append(DoctorFinding(
|
|
993
1009
|
"ready",
|
|
994
|
-
"xai-
|
|
995
|
-
"optional xAI
|
|
996
|
-
"
|
|
1010
|
+
"xai-api",
|
|
1011
|
+
"optional xAI API key is not configured",
|
|
1012
|
+
"Run `algo-cli config setup xai` only if you want to enable Grok API models or x_search.",
|
|
997
1013
|
))
|
|
998
|
-
|
|
1014
|
+
else:
|
|
999
1015
|
findings.append(DoctorFinding(
|
|
1000
1016
|
"ready",
|
|
1001
|
-
"xai-
|
|
1002
|
-
|
|
1017
|
+
"xai-api",
|
|
1018
|
+
"optional xAI API key configured (value redacted)",
|
|
1003
1019
|
))
|
|
1004
|
-
|
|
1020
|
+
if xai_status.get("legacy_oauth_detected"):
|
|
1005
1021
|
findings.append(DoctorFinding(
|
|
1006
|
-
"
|
|
1007
|
-
"xai-oauth",
|
|
1008
|
-
"
|
|
1009
|
-
"
|
|
1022
|
+
"degraded",
|
|
1023
|
+
"xai-legacy-oauth",
|
|
1024
|
+
"obsolete xAI OAuth state detected and ignored",
|
|
1025
|
+
"Remove it with `algo-cli config auth xai logout` or reconfigure with `algo-cli config setup xai`.",
|
|
1010
1026
|
))
|
|
1011
1027
|
except Exception as exc: # pragma: no cover - best-effort diagnostic
|
|
1012
1028
|
findings.append(DoctorFinding(
|
|
1013
1029
|
"degraded",
|
|
1014
|
-
"xai-
|
|
1030
|
+
"xai-api",
|
|
1015
1031
|
f"xai_auth import failed: {exc}",
|
|
1016
|
-
"Reinstall Algo CLI; the module is required for optional
|
|
1032
|
+
"Reinstall Algo CLI; the module is required for optional xAI API commands.",
|
|
1017
1033
|
))
|
|
1018
1034
|
|
|
1019
1035
|
from . import index_compute_lab
|
|
@@ -1069,7 +1085,7 @@ def build_doctor_report(cfg: Any) -> DoctorReport:
|
|
|
1069
1085
|
findings.append(DoctorFinding(
|
|
1070
1086
|
"degraded", "google-workspace",
|
|
1071
1087
|
"GOOGLE_OAUTH_CLIENT_ID not set",
|
|
1072
|
-
"Create
|
|
1088
|
+
"Create a Desktop app OAuth client, then run `algo-cli config setup google` before logging in.",
|
|
1073
1089
|
))
|
|
1074
1090
|
elif status.get("authenticated"):
|
|
1075
1091
|
findings.append(DoctorFinding(
|
|
@@ -1080,7 +1096,7 @@ def build_doctor_report(cfg: Any) -> DoctorReport:
|
|
|
1080
1096
|
findings.append(DoctorFinding(
|
|
1081
1097
|
"degraded", "google-workspace",
|
|
1082
1098
|
"Google OAuth client configured but no active session",
|
|
1083
|
-
"Run
|
|
1099
|
+
"Run `algo-cli config auth google login` to start the loopback flow.",
|
|
1084
1100
|
))
|
|
1085
1101
|
except Exception as exc: # pragma: no cover - best-effort diagnostic
|
|
1086
1102
|
findings.append(DoctorFinding(
|