algo-cli-runtime 0.20.0__tar.gz → 0.20.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/CHANGELOG.md +181 -0
  2. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/PKG-INFO +24 -17
  3. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/README.md +23 -16
  4. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/__init__.py +1 -1
  5. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/action_registry.py +9 -62
  6. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/agent_blocks.py +3 -2
  7. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/agent_pipeline.py +307 -188
  8. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/agent_threads.py +19 -1
  9. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/chatgpt_auth.py +4 -6
  10. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/chatgpt_client.py +149 -18
  11. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/cli_config.py +148 -0
  12. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/code_rag.py +130 -13
  13. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/config.py +86 -15
  14. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/context_budget.py +81 -29
  15. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/continuum_memory.py +52 -2
  16. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/continuum_tools.py +46 -1
  17. algo_cli_runtime-0.20.3/algo_cli/decision_catalog.py +90 -0
  18. algo_cli_runtime-0.20.3/algo_cli/decision_checkpoints.py +433 -0
  19. algo_cli_runtime-0.20.3/algo_cli/decision_clm_bridge.py +36 -0
  20. algo_cli_runtime-0.20.3/algo_cli/decision_coordinator.py +299 -0
  21. algo_cli_runtime-0.20.3/algo_cli/decision_layer.py +738 -0
  22. algo_cli_runtime-0.20.3/algo_cli/decision_readiness.py +83 -0
  23. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/display.py +374 -234
  24. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/dorothy_perf_telemetry.py +4 -4
  25. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/embedding_binding.py +2 -2
  26. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/grounded_answers.py +3 -3
  27. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/nathan_agent_runtime_hardening.py +16 -0
  28. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/scorecard_grading.py +15 -7
  29. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/google_workspace_auth.py +6 -6
  30. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/harness.py +371 -129
  31. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/identity.py +68 -22
  32. algo_cli_runtime-0.20.3/algo_cli/index_compute_lab.py +80 -0
  33. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/flow_dag.py +7 -2
  34. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/rate_limiter.py +45 -26
  35. algo_cli_runtime-0.20.3/algo_cli/intelligence/team_execution.py +144 -0
  36. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/irene_memory_path_policy.py +2 -2
  37. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/irene_search.py +8 -1
  38. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/james_dispatch.py +1 -0
  39. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/jev_kernel.py +39 -13
  40. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/julia_memory_candidates.py +22 -0
  41. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/julia_memory_runtime.py +80 -21
  42. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/kernels/manifest.py +31 -1
  43. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/main.py +484 -817
  44. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/marcus_authority.py +15 -1
  45. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/model_routing.py +11 -1
  46. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/nathan_program_runtime.py +3 -3
  47. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/nathan_runtime.py +288 -12
  48. algo_cli_runtime-0.20.3/algo_cli/oauth_loopback.py +89 -0
  49. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_oneshot.py +8 -4
  50. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_slash_dispatch.py +33 -136
  51. algo_cli_runtime-0.20.3/algo_cli/prompt_rules.py +68 -0
  52. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/boron_public_browser.Dockerfile +8 -8
  53. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/samuel_policy.py +1 -1
  54. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/samuel_policy_engine.py +17 -2
  55. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/search_execution.py +94 -6
  56. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/session_commands.py +1 -1
  57. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/session_mode.py +3 -2
  58. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/sticky_status.py +7 -4
  59. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/theodore_runtime_services.py +19 -5
  60. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/tool_context.py +93 -16
  61. algo_cli_runtime-0.20.3/algo_cli/tool_schema.py +121 -0
  62. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/tools.py +500 -327
  63. algo_cli_runtime-0.20.3/algo_cli/ui/__init__.py +0 -0
  64. algo_cli_runtime-0.20.3/algo_cli/ui/contrast.py +125 -0
  65. algo_cli_runtime-0.20.3/algo_cli/ui/detect.py +107 -0
  66. algo_cli_runtime-0.20.3/algo_cli/ui/markdown.py +88 -0
  67. algo_cli_runtime-0.20.3/algo_cli/ui/tokens.py +467 -0
  68. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/version_manifest.py +2 -18
  69. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/xai_auth.py +12 -2
  70. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/continuum-memory.md +19 -2
  71. algo_cli_runtime-0.20.3/docs/index-compute-lab-integration.md +25 -0
  72. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/privacy-and-context.md +15 -13
  73. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/runtime-capability-catalog.md +6 -6
  74. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/harness-gateway/go.mod +1 -1
  75. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/harness-gateway/main.go +30 -2
  76. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/harness-indexer/src/main.rs +95 -2
  77. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/memory-recall-ritual.md +14 -17
  78. algo_cli_runtime-0.20.3/skills/smart-error-recovery.md +52 -0
  79. algo_cli_runtime-0.20.0/algo_cli/index_compute_lab.py +0 -228
  80. algo_cli_runtime-0.20.0/algo_cli/intelligence/team_execution.py +0 -122
  81. algo_cli_runtime-0.20.0/algo_cli/tool_schema.py +0 -50
  82. algo_cli_runtime-0.20.0/docs/index-compute-lab-integration.md +0 -45
  83. algo_cli_runtime-0.20.0/skills/smart-error-recovery.md +0 -56
  84. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/.gitignore +0 -0
  85. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/CONTRIBUTING.md +0 -0
  86. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/LICENSE +0 -0
  87. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/SECURITY.md +0 -0
  88. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo-cli.cmd +0 -0
  89. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo-cli.ps1 +0 -0
  90. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/__main__.py +0 -0
  91. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/_internal/__init__.py +0 -0
  92. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/_internal/policy_chain.py +0 -0
  93. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_control_journal.py +0 -0
  94. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_credential_registry.py +0 -0
  95. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_private_event_store.py +0 -0
  96. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_supply_chain_manifest.py +0 -0
  97. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_task_ledger.py +0 -0
  98. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/ada_uninstall_recovery.py +0 -0
  99. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/agent_context.py +0 -0
  100. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/agent_run_journal.py +0 -0
  101. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/alice_artifact_store.py +0 -0
  102. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/animations.py +0 -0
  103. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/argon_extensions_manifest.py +0 -0
  104. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/arthur_control_doctor.py +0 -0
  105. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/arthur_control_readiness.py +0 -0
  106. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/arthur_outcomes.py +0 -0
  107. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/austin_desktop_simulator.py +0 -0
  108. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/austin_install_finalizer.py +0 -0
  109. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/austin_release_packager.py +0 -0
  110. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/austin_thomas_binding.py +0 -0
  111. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/boron_browser_entry.py +0 -0
  112. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/boron_browser_isolation.py +0 -0
  113. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/boron_browser_wrapper.py +0 -0
  114. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/cache_admission.py +0 -0
  115. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/capability_mask.py +0 -0
  116. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/carbon_browser_binding.py +0 -0
  117. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/chat_protocol.py +0 -0
  118. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/clara_effect_ledger.py +0 -0
  119. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/cobalt_browser_service.py +0 -0
  120. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/credential_helpers.py +0 -0
  121. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/daemon.py +0 -0
  122. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/daemon_rpc.py +0 -0
  123. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/david_control_kernel.py +0 -0
  124. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/david_control_runtime.py +0 -0
  125. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/deliberation.py +0 -0
  126. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/elsie_keyring_anchors.py +0 -0
  127. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/__init__.py +0 -0
  128. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/algorithm_effectiveness.py +0 -0
  129. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/competitive_harness_rating.py +0 -0
  130. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/cot_quality.py +0 -0
  131. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/diagnostic_graph.py +0 -0
  132. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/grounded_retrieval.py +0 -0
  133. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/grounded_retrieval_validation.py +0 -0
  134. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/harness_retrieval_benchmark.py +0 -0
  135. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/pattern_comparison.py +0 -0
  136. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/pattern_evidence.py +0 -0
  137. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/performance_regression.py +0 -0
  138. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/session_distribution.py +0 -0
  139. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evals/tool_context_efficiency.py +0 -0
  140. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/evelyn_context_supersession.py +0 -0
  141. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/execution_guardrails.py +0 -0
  142. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/git_evidence.py +0 -0
  143. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/git_publish.py +0 -0
  144. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/google_workspace.py +0 -0
  145. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/grace_key_store.py +0 -0
  146. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/grace_memory_receipts.py +0 -0
  147. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/henry_effect_control.py +0 -0
  148. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/henry_hardening_qualification.py +0 -0
  149. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/inference_harness.py +0 -0
  150. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/__init__.py +0 -0
  151. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/actionability.py +0 -0
  152. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/adversarial_audit.py +0 -0
  153. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/agent_arena.py +0 -0
  154. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/agent_benchmark.py +0 -0
  155. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/agent_runtime.py +0 -0
  156. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/agents_as_tools.py +0 -0
  157. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/artifact_binding.py +0 -0
  158. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/autonomous_engineer.py +0 -0
  159. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/backpressure.py +0 -0
  160. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/bloom_filter.py +0 -0
  161. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/bonferroni.py +0 -0
  162. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/boundary_compaction.py +0 -0
  163. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/catalog_verifier.py +0 -0
  164. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/cavecrew.py +0 -0
  165. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/changelog.py +0 -0
  166. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/checkpoint_resume.py +0 -0
  167. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/circuit_breaker.py +0 -0
  168. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/clarification_gate.py +0 -0
  169. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/code_graph.py +0 -0
  170. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/coderank.py +0 -0
  171. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/consistent_hash.py +0 -0
  172. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/consortium_synthesis.py +0 -0
  173. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/content_extractor.py +0 -0
  174. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/context_adaptive.py +0 -0
  175. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/context_ops.py +0 -0
  176. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/count_min.py +0 -0
  177. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/cow_state.py +0 -0
  178. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/critic_loop.py +0 -0
  179. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/cross_source.py +0 -0
  180. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/daemon_mode.py +0 -0
  181. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/dag_orchestration.py +0 -0
  182. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/deep_research.py +0 -0
  183. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/degenerate_detector.py +0 -0
  184. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/delta_report.py +0 -0
  185. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/discovery_event_log.py +0 -0
  186. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/document_ingest.py +0 -0
  187. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/dual_layer_validate.py +0 -0
  188. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/echo_fidelity.py +0 -0
  189. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/ema_tuning.py +0 -0
  190. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/event_log.py +0 -0
  191. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/evidence_graph.py +0 -0
  192. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/extension_host.py +0 -0
  193. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/extension_manifest.py +0 -0
  194. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/falsification_suite.py +0 -0
  195. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/finding_record.py +0 -0
  196. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/gatherer.py +0 -0
  197. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/golden_master.py +0 -0
  198. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/graph_rag.py +0 -0
  199. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/group_chat.py +0 -0
  200. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/hash_dedup.py +0 -0
  201. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/hyperloglog.py +0 -0
  202. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/incremental_index.py +0 -0
  203. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/index_store.py +0 -0
  204. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/iteration_plan.py +0 -0
  205. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/kernel_plugins.py +0 -0
  206. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/lesson_catalog.py +0 -0
  207. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/llm_fallback.py +0 -0
  208. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/log2_histogram.py +0 -0
  209. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/lsp_integration.py +0 -0
  210. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/memory_evolution.py +0 -0
  211. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/minhash_lsh.py +0 -0
  212. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/multi_model_score.py +0 -0
  213. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/multi_tier_grade.py +0 -0
  214. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/negative_controls.py +0 -0
  215. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/numeric_clamp.py +0 -0
  216. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/occ_editor.py +0 -0
  217. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/output_normalize.py +0 -0
  218. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/parallel_delegation.py +0 -0
  219. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/parallel_fanout.py +0 -0
  220. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/permission_modes.py +0 -0
  221. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/pre_push_gate.py +0 -0
  222. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/prefetch.py +0 -0
  223. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/process_framework.py +0 -0
  224. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/project_graph.py +0 -0
  225. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/query_expansion.py +0 -0
  226. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/ralph_loop.py +0 -0
  227. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/refactor_transaction.py +0 -0
  228. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/repo_map.py +0 -0
  229. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/research_workspace.py +0 -0
  230. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/retraction_ledger.py +0 -0
  231. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/saga_pattern.py +0 -0
  232. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/session_fork.py +0 -0
  233. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/shadow_editor.py +0 -0
  234. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/shell_session.py +0 -0
  235. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/source_registry.py +0 -0
  236. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/spawn_scales.py +0 -0
  237. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/stat_stability.py +0 -0
  238. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/structural_validator.py +0 -0
  239. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/subagent_spawner.py +0 -0
  240. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/symmetric_verify.py +0 -0
  241. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/task_classifier.py +0 -0
  242. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/tiered_access.py +0 -0
  243. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intelligence/utility_registry.py +0 -0
  244. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intuition_engine.py +0 -0
  245. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/intuition_injector.py +0 -0
  246. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/irene_privacy_views.py +0 -0
  247. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/kernels/__init__.py +0 -0
  248. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/model_aliases.py +0 -0
  249. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/model_info.py +0 -0
  250. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/model_profile.py +0 -0
  251. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/nathan_approval_channel.py +0 -0
  252. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/nathan_approval_reviewer.py +0 -0
  253. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/nathan_provider_protocol.py +0 -0
  254. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/neon_browser_native_host.py +0 -0
  255. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/neon_browser_simulator.py +0 -0
  256. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_authority_rotation.py +0 -0
  257. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_control_installation.py +0 -0
  258. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_control_installer.py +0 -0
  259. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/oliver_control_uninstall.py +0 -0
  260. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/pattern_catalog.py +0 -0
  261. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/pattern_runtime.py +0 -0
  262. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/protected_memory_preflight.py +0 -0
  263. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/quantization/__init__.py +0 -0
  264. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/quantization/lloyd_max.py +0 -0
  265. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/quantization/turbo_quant.py +0 -0
  266. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/__init__.py +0 -0
  267. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/combinatorial.py +0 -0
  268. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/graph_of_thought.py +0 -0
  269. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/mcts.py +0 -0
  270. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/neuro_symbolic.py +0 -0
  271. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/react.py +0 -0
  272. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/reflexion.py +0 -0
  273. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning/tree_of_thought.py +0 -0
  274. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reasoning_bridge.py +0 -0
  275. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reconciliation.py +0 -0
  276. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/reflex.py +0 -0
  277. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/boron_browser_wrapper.sh +0 -0
  278. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/boron_managed_policy.json +0 -0
  279. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/boron_public_browser.Dockerfile.dockerignore +0 -0
  280. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/boron_seccomp_profile.json +0 -0
  281. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/carbon_native_browser.Dockerfile +0 -0
  282. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/carbon_native_browser.Dockerfile.dockerignore +0 -0
  283. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/xenon_egress_broker.Dockerfile +0 -0
  284. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/xenon_egress_broker.Dockerfile.dockerignore +0 -0
  285. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/boron_browser/xenon_egress_broker.sh +0 -0
  286. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/neon_extension/neon_manifest_template.json +0 -0
  287. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/neon_extension/neon_popup.html +0 -0
  288. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/neon_extension/neon_popup.js +0 -0
  289. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/neon_extension/neon_service_worker.js +0 -0
  290. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/resources/prompts/yolo_mode.md +0 -0
  291. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/retrieval_algorithms.py +0 -0
  292. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/run_contract.py +0 -0
  293. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/skills.py +0 -0
  294. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/small_context.py +0 -0
  295. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/spawn_budget.py +0 -0
  296. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/task_router.py +0 -0
  297. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/theodore_runtime_qos.py +0 -0
  298. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/tool_contract.py +0 -0
  299. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/updater.py +0 -0
  300. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/url_scheme.py +0 -0
  301. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/verify.py +0 -0
  302. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/vision_screenshot_verify.py +0 -0
  303. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/william_plugins.py +0 -0
  304. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/workspace_resolver.py +0 -0
  305. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/worktree_runtime.py +0 -0
  306. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/x_account.py +0 -0
  307. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/xai_client.py +0 -0
  308. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/xenon_browser_broker.py +0 -0
  309. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/xenon_browser_egress.py +0 -0
  310. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/algo_cli/xenon_browser_entry.py +0 -0
  311. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/ALGO.md +0 -0
  312. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/ada-algo-cli-memory-lifecycle-contract.md +0 -0
  313. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/algo-cli-algorithm-evidence-contract.md +0 -0
  314. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/algo-cli-execution-verification-contract.md +0 -0
  315. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/external-agent-store-operations.md +0 -0
  316. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/harness-extension-cleanup-recommendation.md +0 -0
  317. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/inference-harness-loop-blueprint-2026-06.md +0 -0
  318. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/main-split-map.md +0 -0
  319. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/provider-auth-recovery.md +0 -0
  320. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/reflex-loop-v0.2.md +0 -0
  321. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/supervised-action-review.md +0 -0
  322. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/docs/t3-code-parity-2026-07.md +0 -0
  323. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/harness-indexer/Cargo.lock +0 -0
  324. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/harness-indexer/Cargo.toml +0 -0
  325. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/ollama_cli/__init__.py +0 -0
  326. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/pyproject.toml +0 -0
  327. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/README.md +0 -0
  328. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/algo-cli.md +0 -0
  329. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/edit-file-precision.md +0 -0
  330. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/harness-search-first.md +0 -0
  331. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/homebrew-helper-catalog.md +0 -0
  332. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/qol-algorithms.md +0 -0
  333. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/session-yolo-mode.md +0 -0
  334. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/sleeper-agent-model-review.md +0 -0
  335. {algo_cli_runtime-0.20.0 → algo_cli_runtime-0.20.3}/skills/tool-selection-cheatsheet.md +0 -0
@@ -4,6 +4,187 @@ All notable changes to Algo CLI are documented here. The format follows [Keep a
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ### 0.20.3 Core CLI Candidate
8
+
9
+ - Prepare the Continuum-only runtime, bounded Jev coordinator and interrupted
10
+ stream/cancellation reliability repairs for exact-source qualification.
11
+ - Require deterministic evidence for exact calculations; preserve decision
12
+ uncertainty, shell approvals and independent workspace verification. Add
13
+ machine-keyed graph/probability and confident-wrong-answer regressions.
14
+ - Align protected draft capture with the fresh 0.20.3 candidate; do not reuse
15
+ the immutable 0.20.2 tag or its draft evidence.
16
+ - Include Go 1.26.9 and qualified website dependency repairs. Keep signed native
17
+ features disabled and the public catalog free of owner data.
18
+ - Publication remains conditional on local and hosted core-release gates;
19
+ see `docs/henry-release-0.20.3.md` for scope and excluded native features.
20
+
21
+ ## [0.20.2] - 2026-09-25
22
+
23
+ A patch release. It closes a secret-redaction gap in captured session command
24
+ output, refreshes the managed-browser security pin, and carries the
25
+ runtime-reliability and terminal-theme work merged since 0.20.1.
26
+
27
+ ### Security
28
+
29
+ - Strip terminal control sequences from captured `session_command` output
30
+ before redaction. With `FORCE_COLOR` set, a color code directly before
31
+ `access_token=` defeated the secret pattern's word boundary, and a `/google`
32
+ error reached the model with the token unredacted; 0.20.1 is affected. The
33
+ secret and Bearer patterns no longer depend on a leading word boundary.
34
+
35
+ ### Fixed
36
+
37
+ - `jev_kernel_status` had no reachable grant in any mode; it is now a local
38
+ runtime read in the baseline set. `jev_question_contract` stays
39
+ approval-gated.
40
+ - `jev_question_contract` in its default `lint` mode resolved to the provider
41
+ target and was denied as a setup gap that no approval could resolve. Local
42
+ lint now resolves to a runtime target with baseline access; `review`, `run`
43
+ and `followup` keep provider scope, data-egress capability and session
44
+ approval.
45
+ - `/agent team` options are parsed with quote awareness: `--roles="planner, critic"`
46
+ is accepted, and `--roles` inside quoted task text stays part of the task
47
+ instead of selecting specialists or being removed.
48
+ - A team specialist that was already inside its locked status write when the run
49
+ was cancelled can no longer move its thread back to `running` or finish it as
50
+ another status: the thread store refuses in-progress writes over a terminal
51
+ status, and a cancelled thread can only be finished as cancelled.
52
+ - Missing-grant denials name the action, target and missing scope, say whether
53
+ the denial is policy or a setup gap, and give the recovery step.
54
+ - An identical denied call is not retried within the turn and gets no second
55
+ approval prompt; three identical blocks stop the run.
56
+ - `action_search` indexes slash-command capabilities such as
57
+ `/google gmail-list`, maps email, mail and inbox to Gmail, and reports
58
+ "no match" instead of "unavailable". `available_actions(topic)` matches the
59
+ same way.
60
+ - Harness stats and the index-quality recommendation explain why the last
61
+ embedding pass did not run.
62
+ - Rich cannot resolve compound styles such as `bold primary`, so about thirty
63
+ surfaces (logo, banner, error label, thinking text, headings) rendered
64
+ unstyled and several footer chips failed contrast. Every style is now a
65
+ named token with contrast floors, and `/reload` no longer leaves the footer
66
+ on the previous theme.
67
+
68
+ ### Changed
69
+
70
+ - One color profile (truecolor, 256, 16 or mono) is detected once from
71
+ `COLORTERM`, `TERM`, `NO_COLOR`, `FORCE_COLOR` and the Windows console and
72
+ applied to output, prompt and footer together. 16-color terminals keep
73
+ success, warning, error and info distinct; `NO_COLOR` and `TERM=dumb` use
74
+ bold, dim and reverse only; `FORCE_COLOR` raises the detected depth.
75
+ - Assistant Markdown and code blocks follow the active theme instead of Rich's
76
+ defaults. All seven themes, including `redeye`, are documented.
77
+ - Jev tool text states that Jev returns advisory judgments only and names the
78
+ routes that can browse, read mail or act.
79
+ - Refresh the Boron managed-browser pin to Chrome `154.0.8037.57` with its
80
+ package checksum, release timestamp, regenerated dpkg lock and coupled
81
+ fixtures, keeping the 72-hour security-update limit.
82
+ - The predecessor upgrade smoke baseline moves to public `0.20.1`.
83
+
84
+ ### Release Limits
85
+
86
+ - M8 retains five blocked external-browser metrics and M9 retains thirteen
87
+ blocked requirements. No external-browser or model-quality qualification is
88
+ claimed from local deterministic evidence.
89
+
90
+ ## [0.20.1] - 2026-09-23
91
+
92
+ A patch release from a whole-codebase bug hunt. Candidate issues were
93
+ confirmed by reading or running the code, independently challenged, and fixed
94
+ with a regression test each.
95
+
96
+ ### Fixed
97
+
98
+ - Tool-call and tool-result lines no longer parse tool arguments or output as
99
+ Rich markup. Text such as `ls [/tmp]` used to crash the turn and leave an
100
+ unanswered tool call in history, and code previews silently dropped
101
+ bracketed text (`d[key]` showed as `d`). Recalled-context and info lines
102
+ get the same treatment.
103
+ - Tool failures reported as `Error reading/writing/listing ...` are now
104
+ classified as failures instead of "worked".
105
+ - `search_files` keeps ripgrep matches when ripgrep also reports errors (for
106
+ example one unreadable folder) and marks the result as partial. Long
107
+ stderr no longer stops the search early. The Python fallback now honors
108
+ path globs such as `**/*.py`, `dir/*.py` and `!*.md`, case-insensitively on
109
+ Windows.
110
+ - `run_shell` keeps leading whitespace on the first output line, so formats
111
+ such as `git status --short` stay intact.
112
+ - A schemeless `OLLAMA_HOST` (for example `127.0.0.1:11434`) no longer fails
113
+ the readiness check and blocks every prompt, and the supplemental gateway
114
+ receives a normalized host.
115
+ - Agent-block models are routed to Ollama Cloud or local Ollama by the block's
116
+ own model instead of the active model.
117
+ - `--oneshot --json` always ends with a `done` event, reporting `partial` when
118
+ saving the configuration fails.
119
+ - `/agent` fixes: a model error marks the block as failed; tasks that begin
120
+ with `show`, `switch`, `resume` or `fork` are only treated as thread
121
+ commands when followed by a thread reference; apostrophes and quotes in the
122
+ task no longer drop `--pipeline` or `--roles`; Ctrl+C on a team run stops
123
+ waiting for running specialists.
124
+ - Saving a memory never overwrites a `memory.json` that exists but cannot be
125
+ read safely; an empty file still counts as no memories. One invalid legacy
126
+ fact no longer breaks `/remember` or turns off recall, and the load error
127
+ clears after a successful repair.
128
+ - Lessons written as paragraphs (the template format) are indexed, not only
129
+ `## ` sections.
130
+ - Automatic memory capture rejects complaints and reported speech such as
131
+ "You always forget to run the tests".
132
+ - When the context summarizer fails, the lossy fallback summary is reported
133
+ instead of being used silently.
134
+ - Code-RAG re-embeds chunks after an embedding-width or embedder change
135
+ instead of failing on every turn, keeps older indexes usable after upgrade,
136
+ and drops deleted files from the repository map.
137
+ - A source file with a future modification time no longer forces a full
138
+ harness re-index on every load.
139
+ - Ctrl+C during a streamed answer keeps the partial answer in the
140
+ conversation and says so.
141
+ - `/agent resume` and `/agent fork` no longer treat English words made of hex
142
+ letters (`add`, `beef`, `decade`) as thread references; a reference followed
143
+ by a task must contain a digit or match a full thread id.
144
+ - A schemeless `OLLAMA_HOST` now also works for embedding identity and the
145
+ gateway upstream, so code, lesson and memory retrieval stay semantic.
146
+ - File contents that happen to begin like a tool error are no longer recorded
147
+ as failed tool calls, in the chat loop, `/agent`, one-shot and program runs.
148
+ - Partial search results are recorded as not fully successful.
149
+ - Malformed search globs such as `*[^]` no longer crash the Python fallback.
150
+ - `/agent team` cancellation stops `write_file` before it writes and
151
+ terminates a running `run_shell` command.
152
+ - Ctrl+C during a parallel tool batch returns within a bounded wait and keeps
153
+ every tool call paired with a result.
154
+ - `/diff`, `/changes`, agent-block panels, `/help`, the memory table and the
155
+ runtime overview show bracketed text literally instead of treating it as
156
+ Rich markup.
157
+ - Existing lesson indexes are rebuilt with the new chunker, and lesson text
158
+ containing comment markers is kept intact.
159
+ - Memory capture: `needed`/`embedded` standing rules are accepted, and
160
+ first-person complaints (`I always forget ...`) are rejected.
161
+ - Files created after the last code-RAG scan are found on the next scan.
162
+ - The settled thinking panel shows both the opening and the ending of long
163
+ reasoning, and the live panel keeps indentation.
164
+
165
+ ### Changed
166
+
167
+ - Ctrl+C at the prompt clears a half-typed line; on an empty line it asks for
168
+ a second Ctrl+C (or Ctrl+D) before exiting.
169
+ - The footer reflects `/safe`, `/auto`, `/theme` and `/cd` changes
170
+ immediately.
171
+ - The model-wait spinner shows the elapsed time, and switches to "loading" for
172
+ slow local model loads.
173
+ - The live thinking panel follows the newest reasoning instead of freezing
174
+ after the first 1,200 characters.
175
+ - Errors show their class and, for connection, timeout and missing-model
176
+ failures, a short hint about what to check.
177
+
178
+ ### Security
179
+
180
+ - The public-release scan also rejects local keychain item names used for
181
+ companion credentials, in source and in built artifacts.
182
+
183
+ ### Release Limits
184
+
185
+ - Native signing, M8 external-browser metrics and other blocked hardening
186
+ work remain blocked and are not claimed.
187
+
7
188
  ## [0.20.0] - 2026-09-20
8
189
 
9
190
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: algo-cli-runtime
3
- Version: 0.20.0
3
+ Version: 0.20.3
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
@@ -149,7 +149,7 @@ echo "what changed in main.py?" | algo-cli --oneshot --json
149
149
  algo-cli --oneshot --json --approval-mode auto --cwd /path/to/project "fix the failing test"
150
150
  ```
151
151
 
152
- Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA_API_KEY` is only required for the direct Cloud API route (`--cloud` / `/cloud on` when an API key is present) and web tools. Embedding indexes currently use local Ollama models only; a configured cloud embedding backend falls back to local until Ollama Cloud exposes embedding models.
152
+ Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA_API_KEY` is only required for the direct Cloud API route (`--cloud` / `/cloud on` when an API key is present) and web tools. Native Continuum owns memory without a CLI embedding pipeline. Local reference lookup is lexical; no automatic embedding model is loaded.
153
153
 
154
154
  `--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.
155
155
 
@@ -181,13 +181,11 @@ xAI's public API uses `XAI_API_KEY`; API calls can consume paid usage, so setup
181
181
 
182
182
  Every normal chat request sends the active conversation and the assembled Algo CLI system context to the selected inference provider. That context includes `SOUL.md`, `IDENTITY.md`, `USER.md`, saved memories, and relevant retrieved lessons when available. With a cloud model, this content may leave the machine. Automatic memory capture is off by default. `/memory-auto on` records explicit consent for the current capture policy and enables bounded capture after successful turns. `/memory-auto off` stops future automatic captures and clears that consent (it does not delete existing memories).
183
183
 
184
- The installed harness corpus contains only public Algo CLI docs, skills, and runtime metadata. Other local agent stores, working-directory code retrieval, index-compute-lab, and skill run-history capture are off by default because retrieved or summarized content can become part of a model request.
184
+ The installed reference corpus contains public Algo CLI docs, skills and runtime metadata. Continuum owns memory; Echo Veil, Lab-index, vector Code RAG and embedding routes are retired. External local references remain opt-in because retrieved content can become part of a model request.
185
185
 
186
186
  - `/harness external on` opts in to supported Codex, Claude, OpenClaw, Mercury, and shared agent stores.
187
- - `/icl on` opts in to `~/index-compute-lab`; override its root with `ALGO_CLI_INDEX_COMPUTE_LAB_ROOT`.
188
- - `/code-rag on` opts in to indexing source files beneath the active cwd and adding relevant snippets to model requests. `/code-rag off` disables retrieval and purges persisted code indexes.
189
187
  - `/skills on` opts in to bounded run-summary capture under `~/.algo_cli/private/run_history.jsonl` and automatic skill-candidate crystallization by a genuinely local, non-embedding Ollama model. There is no cloud fallback.
190
- - `/harness external off` and `/icl off` rebuild the generated index without those records.
188
+ - `/harness external off` rebuilds the generated reference index without external records.
191
189
 
192
190
  Common credential forms are redacted and connector/MCP JSON is metadata-only, but redaction is not a substitute for reviewing the sources you enable. See [Privacy and local context](docs/privacy-and-context.md).
193
191
 
@@ -214,11 +212,8 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
214
212
  | `/thinking effort [MODEL] LEVEL` | Set Codex reasoning effort (`low`, `medium`, `high`, `xhigh`, or GPT-5.6 `max`) |
215
213
  | `/agent team ...` | Algo's multi-agent counterpart to Codex Ultra; fan out specialists, then integrate and verify |
216
214
  | `/memory-auto [on\|off\|status]` | Inspect or toggle bounded, privacy-gated automatic memory capture after successful turns |
217
- | `/code-rag [on\|off\|status]` | Opt in or out of cwd source indexing and prompt retrieval; `off` purges persisted indexes |
218
215
  | `/skills [on\|off\|status\|crystallize]` | Opt in to local run-history capture and review local-only skill candidates |
219
216
  | `/remember FACT` | Save a long-term memory |
220
- | `/intuition [on|off|status|add|list|forget|reindex]` | Manage embedded recall blocks |
221
- | `/icl [on\|off\|status\|ask\|path]` | index-compute-lab knowledge graph (auto-injected each turn when on) |
222
217
  | `/harness external [on\|off\|status]` | Opt in or out of indexing other local agent stores |
223
218
  | `/route TASK` | Preview task classification, pipeline, advisory budget, and tool policy |
224
219
  | `/agent init` | Write a starter `~/.algo_cli/blocks.toml` without overwriting an existing file |
@@ -259,7 +254,7 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
259
254
 
260
255
  Typing `/` in the prompt shows inline slash-command completions.
261
256
 
262
- For the assistant/model, slash commands are session controls, not prose. The model is prompted to use `session_slash` for deterministic `/read`, `/ls`, `/cd`, and `/cwd`; `session_command` for non-file session controls such as `/status`, `/mode`, `/context`, `/code-rag status`, `/harness refresh`, `/route`, and `/agent`; and normal model-callable tools for actual work (`write_file` for edits, `run_shell` for tests/builds). Read-only/status `session_command` calls run without approval; state-changing commands, including `/code-rag on` and `/code-rag off`, and agent execution require approval. Runtime-triggered `/agent` calls are allowed from the parent chat loop, but recursive delegation from inside an Agent Blocks run is rejected. Toggle commands accept explicit idempotent forms such as `/auto on`, `/safe off`, `/code-rag status`, `/thinking status`, `/verify on`, and `/cloud off`.
257
+ For the assistant/model, slash commands are session controls, not prose. The model is prompted to use `session_slash` for deterministic `/read`, `/ls`, `/cd`, and `/cwd`; `session_command` for non-file session controls such as `/status`, `/mode`, `/context`, `/context status`, `/harness refresh`, `/route`, and `/agent`; and normal model-callable tools for actual work (`write_file` for edits, `run_shell` for tests/builds). Read-only/status `session_command` calls run without approval; state-changing commands and agent execution require approval. Runtime-triggered `/agent` calls are allowed from the parent chat loop, but recursive delegation from inside an Agent Blocks run is rejected. Toggle commands accept explicit idempotent forms such as `/auto on`, `/safe off`, `/context status`, `/thinking status`, `/verify on`, and `/cloud off`.
263
258
 
264
259
  `/reason` is called out in the model prompt as a reasoning-posture control. Use `/reason status` or `/reason guide` before changing it. Keep `react` for ordinary tool loops and simple edits; use `reflexion` after failed/partial attempts; `tot`, `got`, or `mcts` for ambiguous multi-path planning/search; `qcr` for comparing candidate solutions; and `neuro_symbolic` for verification-heavy logic, code invariants, contracts, math, or claim checking. Changing `/reason` does not replace evidence gathering or tool verification.
265
260
 
@@ -287,7 +282,7 @@ Every turn semantically supersedes older successful snapshots of the same resour
287
282
 
288
283
  When a `requires_change` block completes on recorded `write_file` evidence but Git verification is unavailable, the manual-confirmation notice is carried on a dedicated verification field. The block's output stays untouched; the warning is rendered on the completion panel and passed to downstream blocks in a separate `## Verification` section.
289
284
 
290
- Agent Block runs use enabled intuition recall before the first block and display any recalled context. For medium-risk coding tasks with policy enforcement enabled, write and shell tools remain available subject to approval; high-risk tasks remain read-only.
285
+ Agent Block runs use native Continuum context when selected; retired Intuition recall is not injected. For medium-risk coding tasks with policy enforcement enabled, write and shell tools remain available subject to approval; high-risk tasks remain read-only.
291
286
 
292
287
  The built-in `code-change` plan block may perform up to four local read-only inspection turns before planning, so implementation starts from observed Python paths instead of guessed project structure.
293
288
 
@@ -307,7 +302,7 @@ The model can call these tools during a conversation:
307
302
 
308
303
  **Memory:** `remember`, `append_lesson`, `update_user_profile`
309
304
 
310
- **Multimodal:** `embed_text`, `vision_describe`
305
+ **Multimodal:** `vision_describe`
311
306
 
312
307
  **Programmatic actions:** `action_search` retrieves a small set of exact deferred action schemas; discovery does not bypass the active capability ceiling, runtime policy, or approval. `action_program` compiles a bounded typed dataflow plan—never arbitrary Python or JavaScript—and routes every nested action through its existing ActionSpec policy, guardrails, approval, attempt ledger, and telemetry. Its wall-clock budget is cooperative: the remaining budget is propagated into timeout-aware actions and checked around every step, while actions without a timeout contract can only be marked over-budget after they return. Large intermediate values are content-addressed in the private runtime store; compact results retain hash-chained mutation and verification receipts. Successful program verifiers reconcile into the outer completion ledger, so the latest passing post-mutation check supersedes earlier failures without relying on model phrasing.
313
308
 
@@ -317,9 +312,9 @@ The model can call these tools during a conversation:
317
312
 
318
313
  **Files and Git:** `read_file`, `read_pdf`, `render_pdf_pages`, `edit_file`, `write_file`, `list_directory`, `search_files`, `find_unique_anchor`, `batch_edit`, `git_status`, `git_diff`
319
314
 
320
- **Harness:** `available_actions`, `harness_stats`, `harness_search`, `harness_read`, `harness_refresh`, `query_knowledge_graph`
315
+ **References:** `available_actions`, `harness_stats`, `harness_search`, `harness_read`, `harness_refresh`. These use lexical search, not an embedding provider.
321
316
 
322
- After `/icl on`, `query_knowledge_graph` reads the configured index-compute-lab ranked association index through its public query CLI. Set `ALGO_CLI_INDEX_COMPUTE_LAB_ROOT` to use a different local checkout.
317
+ **Memory:** explicit scoped native Continuum tools. Retired graph/embedding commands refuse calls and do not select a fallback backend.
323
318
 
324
319
  `write_file`, `run_shell`, `model_delete`, and `model_create` require approval unless `/auto` is enabled. A typed program is not blanket-approved: each nested mutation or external action keeps its own approval decision, and restricted Agent Blocks supply their own runtime-owned capability ceiling. Safe mode blocks destructive shell patterns by default. Agent Blocks with `requires_change = true` are instructed prescriptively that file creation, edits, appends, and deletes must go through `write_file`; `run_shell` is restricted to read-only verification (status, tests, lint, diff, grep, ls). Shell-based file mutation (heredocs, output redirection, `sed -i`, `Set-Content`, `Out-File`, etc.) is not counted as evidence of a change, and the model is told to stop and report rather than route edits through shell when `write_file` is unavailable.
325
320
 
@@ -335,7 +330,7 @@ The CLI retrieves relevant records from a local index. The public built-in corpu
335
330
 
336
331
  **Default sources:** packaged Algo CLI docs and skills, user-created `~/.algo_cli` records, and explicit `harness_roots.json` entries.
337
332
 
338
- **Opt-in sources:** Codex, Claude, OpenClaw, shared agents, Mercury, CLI Agent, Pi, and index-compute-lab.
333
+ **Opt-in reference sources:** Codex, Claude, OpenClaw, shared agents, Mercury, CLI Agent and Pi. These do not replace Continuum memory.
339
334
 
340
335
  **Harness commands:**
341
336
  ```
@@ -381,7 +376,17 @@ cd harness-gateway
381
376
  go run . -addr 127.0.0.1:8765
382
377
  ```
383
378
 
384
- Endpoints: `GET /healthz`, `GET /harness/stats`, `GET /harness/search`, `POST /supplemental/embed`
379
+ Gateway endpoints include `GET /healthz`, `GET /harness/stats` and
380
+ `GET /harness/search`. CLI readiness uses the public health check; the CLI does
381
+ not call the historical embedding endpoint.
382
+
383
+ Index search and statistics are disabled unless `ALGO_CLI_GATEWAY_TOKEN` is set
384
+ in the gateway process environment. Use a cryptographically generated URL-safe
385
+ token of 32 to 512 characters and send it as a single
386
+ `Authorization: Bearer <token>` header. Query-string tokens are not accepted.
387
+ Missing or malformed server configuration returns 503; missing or invalid caller
388
+ credentials return 401. Do not put the token in a URL, shell argument, repository
389
+ or shared log. The health check does not require this index credential.
385
390
 
386
391
  Override: `ALGO_CLI_GATEWAY_URL`, `ALGO_CLI_GATEWAY_BIN` (legacy `OLLAMA_CLI_*` names are still accepted).
387
392
 
@@ -394,8 +399,10 @@ Config is stored in `~/.algo_cli/` by default (data from `~/.ollama_cli` is auto
394
399
  | `ALGO_CLI_CONFIG_DIR` | Override config directory |
395
400
  | `ALGO_CLI_ENV_FILE` | Override runtime env file path (`env` is preferred; `.env` is supported as a fallback) |
396
401
  | `ALGO_CLI_MODEL` | Default model |
397
- | `ALGO_CLI_THEME` | Default theme (`tokyo-night`, `catppuccin-mocha`, `dracula`, `nord`, `gruvbox`, `dolphie`) |
402
+ | `ALGO_CLI_THEME` | Default theme (`tokyo-night`, `catppuccin-mocha`, `dracula`, `nord`, `gruvbox`, `dolphie`, `redeye`) |
403
+ | `NO_COLOR`, `COLORTERM`, `TERM`, `FORCE_COLOR` | Colour depth, detected once for the whole UI: `NO_COLOR` or `TERM=dumb` renders with bold, dim and reverse only; `COLORTERM=truecolor` gives 24-bit, `*-256color` 256 colours, and `FORCE_COLOR=1/2/3` raises (never lowers) the depth; any other terminal uses a 16-colour ANSI palette in which every theme shares one map that keeps success, warning, error and info distinct |
398
404
  | `ALGO_CLI_GATEWAY_URL` | Go gateway URL |
405
+ | `ALGO_CLI_GATEWAY_TOKEN` | Optional gateway index API credential; keep private and transmit only in the Bearer header |
399
406
  | `ALGO_CLI_HARNESS_INDEXER` | Optional Rust harness indexer binary |
400
407
  | `OPENAI_OAUTH_CLIENT_ID` | Optional override for the bundled ChatGPT/Codex browser OAuth client |
401
408
  | `OPENAI_CODEX_CLIENT_ID` | Optional override for the bundled Codex OAuth client |
@@ -81,7 +81,7 @@ echo "what changed in main.py?" | algo-cli --oneshot --json
81
81
  algo-cli --oneshot --json --approval-mode auto --cwd /path/to/project "fix the failing test"
82
82
  ```
83
83
 
84
- Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA_API_KEY` is only required for the direct Cloud API route (`--cloud` / `/cloud on` when an API key is present) and web tools. Embedding indexes currently use local Ollama models only; a configured cloud embedding backend falls back to local until Ollama Cloud exposes embedding models.
84
+ Signed-in local Ollama can run `:cloud` models without `OLLAMA_API_KEY`. `OLLAMA_API_KEY` is only required for the direct Cloud API route (`--cloud` / `/cloud on` when an API key is present) and web tools. Native Continuum owns memory without a CLI embedding pipeline. Local reference lookup is lexical; no automatic embedding model is loaded.
85
85
 
86
86
  `--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.
87
87
 
@@ -113,13 +113,11 @@ xAI's public API uses `XAI_API_KEY`; API calls can consume paid usage, so setup
113
113
 
114
114
  Every normal chat request sends the active conversation and the assembled Algo CLI system context to the selected inference provider. That context includes `SOUL.md`, `IDENTITY.md`, `USER.md`, saved memories, and relevant retrieved lessons when available. With a cloud model, this content may leave the machine. Automatic memory capture is off by default. `/memory-auto on` records explicit consent for the current capture policy and enables bounded capture after successful turns. `/memory-auto off` stops future automatic captures and clears that consent (it does not delete existing memories).
115
115
 
116
- The installed harness corpus contains only public Algo CLI docs, skills, and runtime metadata. Other local agent stores, working-directory code retrieval, index-compute-lab, and skill run-history capture are off by default because retrieved or summarized content can become part of a model request.
116
+ The installed reference corpus contains public Algo CLI docs, skills and runtime metadata. Continuum owns memory; Echo Veil, Lab-index, vector Code RAG and embedding routes are retired. External local references remain opt-in because retrieved content can become part of a model request.
117
117
 
118
118
  - `/harness external on` opts in to supported Codex, Claude, OpenClaw, Mercury, and shared agent stores.
119
- - `/icl on` opts in to `~/index-compute-lab`; override its root with `ALGO_CLI_INDEX_COMPUTE_LAB_ROOT`.
120
- - `/code-rag on` opts in to indexing source files beneath the active cwd and adding relevant snippets to model requests. `/code-rag off` disables retrieval and purges persisted code indexes.
121
119
  - `/skills on` opts in to bounded run-summary capture under `~/.algo_cli/private/run_history.jsonl` and automatic skill-candidate crystallization by a genuinely local, non-embedding Ollama model. There is no cloud fallback.
122
- - `/harness external off` and `/icl off` rebuild the generated index without those records.
120
+ - `/harness external off` rebuilds the generated reference index without external records.
123
121
 
124
122
  Common credential forms are redacted and connector/MCP JSON is metadata-only, but redaction is not a substitute for reviewing the sources you enable. See [Privacy and local context](docs/privacy-and-context.md).
125
123
 
@@ -146,11 +144,8 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
146
144
  | `/thinking effort [MODEL] LEVEL` | Set Codex reasoning effort (`low`, `medium`, `high`, `xhigh`, or GPT-5.6 `max`) |
147
145
  | `/agent team ...` | Algo's multi-agent counterpart to Codex Ultra; fan out specialists, then integrate and verify |
148
146
  | `/memory-auto [on\|off\|status]` | Inspect or toggle bounded, privacy-gated automatic memory capture after successful turns |
149
- | `/code-rag [on\|off\|status]` | Opt in or out of cwd source indexing and prompt retrieval; `off` purges persisted indexes |
150
147
  | `/skills [on\|off\|status\|crystallize]` | Opt in to local run-history capture and review local-only skill candidates |
151
148
  | `/remember FACT` | Save a long-term memory |
152
- | `/intuition [on|off|status|add|list|forget|reindex]` | Manage embedded recall blocks |
153
- | `/icl [on\|off\|status\|ask\|path]` | index-compute-lab knowledge graph (auto-injected each turn when on) |
154
149
  | `/harness external [on\|off\|status]` | Opt in or out of indexing other local agent stores |
155
150
  | `/route TASK` | Preview task classification, pipeline, advisory budget, and tool policy |
156
151
  | `/agent init` | Write a starter `~/.algo_cli/blocks.toml` without overwriting an existing file |
@@ -191,7 +186,7 @@ Common credential forms are redacted and connector/MCP JSON is metadata-only, bu
191
186
 
192
187
  Typing `/` in the prompt shows inline slash-command completions.
193
188
 
194
- For the assistant/model, slash commands are session controls, not prose. The model is prompted to use `session_slash` for deterministic `/read`, `/ls`, `/cd`, and `/cwd`; `session_command` for non-file session controls such as `/status`, `/mode`, `/context`, `/code-rag status`, `/harness refresh`, `/route`, and `/agent`; and normal model-callable tools for actual work (`write_file` for edits, `run_shell` for tests/builds). Read-only/status `session_command` calls run without approval; state-changing commands, including `/code-rag on` and `/code-rag off`, and agent execution require approval. Runtime-triggered `/agent` calls are allowed from the parent chat loop, but recursive delegation from inside an Agent Blocks run is rejected. Toggle commands accept explicit idempotent forms such as `/auto on`, `/safe off`, `/code-rag status`, `/thinking status`, `/verify on`, and `/cloud off`.
189
+ For the assistant/model, slash commands are session controls, not prose. The model is prompted to use `session_slash` for deterministic `/read`, `/ls`, `/cd`, and `/cwd`; `session_command` for non-file session controls such as `/status`, `/mode`, `/context`, `/context status`, `/harness refresh`, `/route`, and `/agent`; and normal model-callable tools for actual work (`write_file` for edits, `run_shell` for tests/builds). Read-only/status `session_command` calls run without approval; state-changing commands and agent execution require approval. Runtime-triggered `/agent` calls are allowed from the parent chat loop, but recursive delegation from inside an Agent Blocks run is rejected. Toggle commands accept explicit idempotent forms such as `/auto on`, `/safe off`, `/context status`, `/thinking status`, `/verify on`, and `/cloud off`.
195
190
 
196
191
  `/reason` is called out in the model prompt as a reasoning-posture control. Use `/reason status` or `/reason guide` before changing it. Keep `react` for ordinary tool loops and simple edits; use `reflexion` after failed/partial attempts; `tot`, `got`, or `mcts` for ambiguous multi-path planning/search; `qcr` for comparing candidate solutions; and `neuro_symbolic` for verification-heavy logic, code invariants, contracts, math, or claim checking. Changing `/reason` does not replace evidence gathering or tool verification.
197
192
 
@@ -219,7 +214,7 @@ Every turn semantically supersedes older successful snapshots of the same resour
219
214
 
220
215
  When a `requires_change` block completes on recorded `write_file` evidence but Git verification is unavailable, the manual-confirmation notice is carried on a dedicated verification field. The block's output stays untouched; the warning is rendered on the completion panel and passed to downstream blocks in a separate `## Verification` section.
221
216
 
222
- Agent Block runs use enabled intuition recall before the first block and display any recalled context. For medium-risk coding tasks with policy enforcement enabled, write and shell tools remain available subject to approval; high-risk tasks remain read-only.
217
+ Agent Block runs use native Continuum context when selected; retired Intuition recall is not injected. For medium-risk coding tasks with policy enforcement enabled, write and shell tools remain available subject to approval; high-risk tasks remain read-only.
223
218
 
224
219
  The built-in `code-change` plan block may perform up to four local read-only inspection turns before planning, so implementation starts from observed Python paths instead of guessed project structure.
225
220
 
@@ -239,7 +234,7 @@ The model can call these tools during a conversation:
239
234
 
240
235
  **Memory:** `remember`, `append_lesson`, `update_user_profile`
241
236
 
242
- **Multimodal:** `embed_text`, `vision_describe`
237
+ **Multimodal:** `vision_describe`
243
238
 
244
239
  **Programmatic actions:** `action_search` retrieves a small set of exact deferred action schemas; discovery does not bypass the active capability ceiling, runtime policy, or approval. `action_program` compiles a bounded typed dataflow plan—never arbitrary Python or JavaScript—and routes every nested action through its existing ActionSpec policy, guardrails, approval, attempt ledger, and telemetry. Its wall-clock budget is cooperative: the remaining budget is propagated into timeout-aware actions and checked around every step, while actions without a timeout contract can only be marked over-budget after they return. Large intermediate values are content-addressed in the private runtime store; compact results retain hash-chained mutation and verification receipts. Successful program verifiers reconcile into the outer completion ledger, so the latest passing post-mutation check supersedes earlier failures without relying on model phrasing.
245
240
 
@@ -249,9 +244,9 @@ The model can call these tools during a conversation:
249
244
 
250
245
  **Files and Git:** `read_file`, `read_pdf`, `render_pdf_pages`, `edit_file`, `write_file`, `list_directory`, `search_files`, `find_unique_anchor`, `batch_edit`, `git_status`, `git_diff`
251
246
 
252
- **Harness:** `available_actions`, `harness_stats`, `harness_search`, `harness_read`, `harness_refresh`, `query_knowledge_graph`
247
+ **References:** `available_actions`, `harness_stats`, `harness_search`, `harness_read`, `harness_refresh`. These use lexical search, not an embedding provider.
253
248
 
254
- After `/icl on`, `query_knowledge_graph` reads the configured index-compute-lab ranked association index through its public query CLI. Set `ALGO_CLI_INDEX_COMPUTE_LAB_ROOT` to use a different local checkout.
249
+ **Memory:** explicit scoped native Continuum tools. Retired graph/embedding commands refuse calls and do not select a fallback backend.
255
250
 
256
251
  `write_file`, `run_shell`, `model_delete`, and `model_create` require approval unless `/auto` is enabled. A typed program is not blanket-approved: each nested mutation or external action keeps its own approval decision, and restricted Agent Blocks supply their own runtime-owned capability ceiling. Safe mode blocks destructive shell patterns by default. Agent Blocks with `requires_change = true` are instructed prescriptively that file creation, edits, appends, and deletes must go through `write_file`; `run_shell` is restricted to read-only verification (status, tests, lint, diff, grep, ls). Shell-based file mutation (heredocs, output redirection, `sed -i`, `Set-Content`, `Out-File`, etc.) is not counted as evidence of a change, and the model is told to stop and report rather than route edits through shell when `write_file` is unavailable.
257
252
 
@@ -267,7 +262,7 @@ The CLI retrieves relevant records from a local index. The public built-in corpu
267
262
 
268
263
  **Default sources:** packaged Algo CLI docs and skills, user-created `~/.algo_cli` records, and explicit `harness_roots.json` entries.
269
264
 
270
- **Opt-in sources:** Codex, Claude, OpenClaw, shared agents, Mercury, CLI Agent, Pi, and index-compute-lab.
265
+ **Opt-in reference sources:** Codex, Claude, OpenClaw, shared agents, Mercury, CLI Agent and Pi. These do not replace Continuum memory.
271
266
 
272
267
  **Harness commands:**
273
268
  ```
@@ -313,7 +308,17 @@ cd harness-gateway
313
308
  go run . -addr 127.0.0.1:8765
314
309
  ```
315
310
 
316
- Endpoints: `GET /healthz`, `GET /harness/stats`, `GET /harness/search`, `POST /supplemental/embed`
311
+ Gateway endpoints include `GET /healthz`, `GET /harness/stats` and
312
+ `GET /harness/search`. CLI readiness uses the public health check; the CLI does
313
+ not call the historical embedding endpoint.
314
+
315
+ Index search and statistics are disabled unless `ALGO_CLI_GATEWAY_TOKEN` is set
316
+ in the gateway process environment. Use a cryptographically generated URL-safe
317
+ token of 32 to 512 characters and send it as a single
318
+ `Authorization: Bearer <token>` header. Query-string tokens are not accepted.
319
+ Missing or malformed server configuration returns 503; missing or invalid caller
320
+ credentials return 401. Do not put the token in a URL, shell argument, repository
321
+ or shared log. The health check does not require this index credential.
317
322
 
318
323
  Override: `ALGO_CLI_GATEWAY_URL`, `ALGO_CLI_GATEWAY_BIN` (legacy `OLLAMA_CLI_*` names are still accepted).
319
324
 
@@ -326,8 +331,10 @@ Config is stored in `~/.algo_cli/` by default (data from `~/.ollama_cli` is auto
326
331
  | `ALGO_CLI_CONFIG_DIR` | Override config directory |
327
332
  | `ALGO_CLI_ENV_FILE` | Override runtime env file path (`env` is preferred; `.env` is supported as a fallback) |
328
333
  | `ALGO_CLI_MODEL` | Default model |
329
- | `ALGO_CLI_THEME` | Default theme (`tokyo-night`, `catppuccin-mocha`, `dracula`, `nord`, `gruvbox`, `dolphie`) |
334
+ | `ALGO_CLI_THEME` | Default theme (`tokyo-night`, `catppuccin-mocha`, `dracula`, `nord`, `gruvbox`, `dolphie`, `redeye`) |
335
+ | `NO_COLOR`, `COLORTERM`, `TERM`, `FORCE_COLOR` | Colour depth, detected once for the whole UI: `NO_COLOR` or `TERM=dumb` renders with bold, dim and reverse only; `COLORTERM=truecolor` gives 24-bit, `*-256color` 256 colours, and `FORCE_COLOR=1/2/3` raises (never lowers) the depth; any other terminal uses a 16-colour ANSI palette in which every theme shares one map that keeps success, warning, error and info distinct |
330
336
  | `ALGO_CLI_GATEWAY_URL` | Go gateway URL |
337
+ | `ALGO_CLI_GATEWAY_TOKEN` | Optional gateway index API credential; keep private and transmit only in the Bearer header |
331
338
  | `ALGO_CLI_HARNESS_INDEXER` | Optional Rust harness indexer binary |
332
339
  | `OPENAI_OAUTH_CLIENT_ID` | Optional override for the bundled ChatGPT/Codex browser OAuth client |
333
340
  | `OPENAI_CODEX_CLIENT_ID` | Optional override for the bundled Codex OAuth client |
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  from importlib import import_module
6
6
  from types import ModuleType
7
7
 
8
- __version__ = "0.20.0"
8
+ __version__ = "0.20.3"
9
9
 
10
10
  _RENAMED_INTERNAL_MODULES = {
11
11
  "elsie_memory_path_policy": "irene_memory_path_policy",
@@ -276,18 +276,6 @@ ACTION_SPECS: tuple[ActionSpec, ...] = (
276
276
  requires_network=True,
277
277
  requires_provider="ollama-cloud",
278
278
  ),
279
- _spec(
280
- "query_knowledge_graph",
281
- "tool",
282
- "Query index-compute-lab ranked associations.",
283
- "read",
284
- ("icl", "knowledge-graph", "read-only"),
285
- "Detects local knowledge graph readiness for grounded context.",
286
- "low",
287
- False,
288
- False,
289
- True,
290
- ),
291
279
  _spec(
292
280
  "remember",
293
281
  "tool",
@@ -361,21 +349,6 @@ ACTION_SPECS: tuple[ActionSpec, ...] = (
361
349
  True,
362
350
  True,
363
351
  ),
364
- _spec(
365
- "/code-rag",
366
- "slash",
367
- "Show or toggle working-directory code retrieval.",
368
- "harness",
369
- ("code-rag", "privacy", "local-index", "toggle"),
370
- "Requires explicit versioned consent before cwd snippets can enter model prompts.",
371
- "medium",
372
- True,
373
- True,
374
- True,
375
- known_limitations=(
376
- "When enabled, retrieved snippets join the active provider request; /code-rag off purges persisted indexes.",
377
- ),
378
- ),
379
352
  _spec(
380
353
  "/actions",
381
354
  "slash",
@@ -1400,6 +1373,14 @@ def _first_doc_line(obj: Any, fallback: str) -> str:
1400
1373
  return first or fallback
1401
1374
 
1402
1375
 
1376
+ # Discovery vocabulary only; policy still comes from policy_for_action. Gmail,
1377
+ # Drive, and Calendar are reachable solely as /google slash commands, so
1378
+ # session_command must answer to their domain words.
1379
+ _GENERATED_TOOL_DISCOVERY_TAGS: dict[str, tuple[str, ...]] = {
1380
+ "session_command": ("slash", "google", "gmail", "email", "mail", "inbox", "drive", "calendar"),
1381
+ }
1382
+
1383
+
1403
1384
  def _generated_tool_spec(name: str, fn: Any) -> ActionSpec:
1404
1385
  policy = policy_for_action(name)
1405
1386
  memory_tool = name.startswith("memory_")
@@ -1429,7 +1410,7 @@ def _generated_tool_spec(name: str, fn: Any) -> ActionSpec:
1429
1410
  (
1430
1411
  ("continuum", "memory", "curated-runtime", "tool")
1431
1412
  if memory_tool
1432
- else ("curated-runtime", "runtime", "tool")
1413
+ else ("curated-runtime", "runtime", "tool", *_GENERATED_TOOL_DISCOVERY_TAGS.get(name, ()))
1433
1414
  if policy.curated
1434
1415
  else ("unclassified", "runtime", "tool")
1435
1416
  ),
@@ -1806,40 +1787,6 @@ def build_doctor_report(cfg: Any) -> DoctorReport:
1806
1787
  )
1807
1788
  )
1808
1789
 
1809
- from . import index_compute_lab
1810
-
1811
- root = index_compute_lab.resolve_lab_root()
1812
- icl_enabled = bool(getattr(cfg, "index_compute_lab_auto_inject", False))
1813
- if not icl_enabled:
1814
- findings.append(
1815
- DoctorFinding(
1816
- "ready",
1817
- "index-compute-lab",
1818
- "optional index-compute-lab context is disabled",
1819
- "Use /icl on only when this local source is appropriate for the selected model provider.",
1820
- )
1821
- )
1822
- elif not root.exists():
1823
- findings.append(
1824
- DoctorFinding(
1825
- "degraded",
1826
- "index-compute-lab",
1827
- f"enabled index-compute-lab root is missing: {root}",
1828
- "Set ALGO_CLI_INDEX_COMPUTE_LAB_ROOT or clone/build the lab.",
1829
- )
1830
- )
1831
- elif index_compute_lab.lab_available():
1832
- findings.append(DoctorFinding("ready", "index-compute-lab", "index-compute-lab graph ready"))
1833
- else:
1834
- findings.append(
1835
- DoctorFinding(
1836
- "degraded",
1837
- "index-compute-lab",
1838
- "index-compute-lab root exists but query assets are missing",
1839
- "Need query.py, atoms/ranked-association-map.json, and atoms/alias-table.json.",
1840
- )
1841
- )
1842
-
1843
1790
  if bool(getattr(cfg, "safe_mode", True)):
1844
1791
  findings.append(DoctorFinding("ready", "safety", "safe mode enabled"))
1845
1792
  else:
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from dataclasses import dataclass, field
6
+ from importlib import import_module
6
7
  from pathlib import Path
7
8
  from typing import Any
8
9
 
@@ -10,10 +11,10 @@ from .config import CONFIG_DIR, _atomic_write_text
10
11
  from .samuel_policy import TOOL_GROUP_MAP, expand_tool_groups
11
12
 
12
13
  try:
13
- import tomllib # type: ignore[import-not-found]
14
+ tomllib = import_module("tomllib")
14
15
  except ImportError: # Python 3.10: fall back to the tomli backport.
15
16
  try:
16
- import tomli as tomllib
17
+ tomllib = import_module("tomli")
17
18
  except ImportError: # pragma: no cover - tomli is a declared 3.10 dependency.
18
19
  tomllib = None # type: ignore[assignment]
19
20