agentic-cli 0.4.3__tar.gz → 0.5.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.
Files changed (231) hide show
  1. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/.gitignore +1 -0
  2. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/CHANGELOG.md +75 -0
  3. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/CLAUDE.md +3 -4
  4. agentic_cli-0.5.0/PKG-INFO +835 -0
  5. agentic_cli-0.5.0/README.md +789 -0
  6. agentic_cli-0.5.0/examples/research_demo/__init__.py +23 -0
  7. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/__main__.py +3 -2
  8. agentic_cli-0.5.0/examples/research_demo/agents.py +247 -0
  9. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/app.py +8 -18
  10. agentic_cli-0.5.0/examples/research_demo/commands.py +189 -0
  11. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/settings.py +14 -6
  12. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/webfetch_demo.py +4 -4
  13. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/websearch_demo.py +5 -5
  14. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/pyproject.toml +14 -4
  15. agentic_cli-0.5.0/requirements.txt +4 -0
  16. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/__init__.py +4 -3
  17. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/__init__.py +2 -4
  18. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/app.py +61 -50
  19. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/builtin_commands.py +139 -20
  20. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/commands.py +0 -25
  21. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/message_processor.py +192 -192
  22. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_introspection.py +0 -26
  23. agentic_cli-0.5.0/src/agentic_cli/cli/usage_tracker.py +154 -0
  24. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/workflow_controller.py +21 -104
  25. agentic_cli-0.5.0/src/agentic_cli/config.py +338 -0
  26. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/constants.py +1 -1
  27. agentic_cli-0.5.0/src/agentic_cli/file_utils.py +75 -0
  28. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/__init__.py +3 -0
  29. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/_mock_bm25.py +93 -0
  30. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/_mocks.py +19 -9
  31. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/bm25_index.py +44 -0
  32. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/concepts.py +349 -0
  33. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/embeddings.py +264 -0
  34. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/manager.py +1074 -0
  35. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/sidecar.py +133 -0
  36. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/vector_store.py +74 -55
  37. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/logging.py +0 -14
  38. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/persistence/__init__.py +0 -4
  39. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/persistence/session.py +40 -80
  40. agentic_cli-0.5.0/src/agentic_cli/settings_mixins.py +108 -0
  41. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/settings_persistence.py +25 -9
  42. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/__init__.py +21 -93
  43. agentic_cli-0.5.0/src/agentic_cli/tools/_core/__init__.py +1 -0
  44. agentic_cli-0.5.0/src/agentic_cli/tools/_core/planning.py +31 -0
  45. agentic_cli-0.5.0/src/agentic_cli/tools/_core/tasks.py +180 -0
  46. agentic_cli-0.5.0/src/agentic_cli/tools/adk/__init__.py +1 -0
  47. agentic_cli-0.5.0/src/agentic_cli/tools/adk/state_tools.py +114 -0
  48. agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_source.py +498 -0
  49. agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_tools.py +325 -0
  50. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/execution_tools.py +14 -1
  51. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/executor.py +60 -11
  52. agentic_cli-0.5.0/src/agentic_cli/tools/factories.py +567 -0
  53. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_write.py +1 -1
  54. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/glob_tool.py +1 -7
  55. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/grep_tool.py +3 -1
  56. agentic_cli-0.5.0/src/agentic_cli/tools/hitl_tools.py +81 -0
  57. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/interaction_tools.py +6 -4
  58. agentic_cli-0.5.0/src/agentic_cli/tools/knowledge_tools.py +804 -0
  59. agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/__init__.py +1 -0
  60. agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/state_tools.py +132 -0
  61. agentic_cli-0.5.0/src/agentic_cli/tools/memory_tools.py +554 -0
  62. agentic_cli-0.5.0/src/agentic_cli/tools/pdf_utils.py +55 -0
  63. agentic_cli-0.5.0/src/agentic_cli/tools/reflection_tools.py +144 -0
  64. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/registry.py +17 -13
  65. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/__init__.py +56 -0
  66. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/__init__.py +5 -0
  67. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/base.py +46 -0
  68. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/jupyter_local.py +238 -0
  69. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/manager.py +174 -0
  70. agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/models.py +16 -0
  71. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/search.py +7 -7
  72. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/__init__.py +11 -0
  73. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/config.py +32 -0
  74. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/executor.py +7 -66
  75. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/__init__.py +101 -0
  76. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/base.py +128 -0
  77. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/bubblewrap.py +167 -0
  78. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/detect.py +79 -0
  79. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/policy.py +147 -0
  80. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt.py +139 -0
  81. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt_profile.py +186 -0
  82. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/sandbox.py +51 -11
  83. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/converter.py +6 -18
  84. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch_tool.py +26 -15
  85. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/__init__.py +12 -36
  86. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/__init__.py +3 -3
  87. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/event_processor.py +4 -105
  88. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/manager.py +238 -173
  89. agentic_cli-0.4.3/src/agentic_cli/workflow/adk/llm_event_logger.py → agentic_cli-0.5.0/src/agentic_cli/workflow/adk/plugins.py +174 -125
  90. agentic_cli-0.5.0/src/agentic_cli/workflow/adk/task_progress_plugin.py +65 -0
  91. agentic_cli-0.5.0/src/agentic_cli/workflow/base_manager.py +783 -0
  92. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/config.py +2 -0
  93. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/events.py +42 -47
  94. agentic_cli-0.5.0/src/agentic_cli/workflow/factory.py +112 -0
  95. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/__init__.py +0 -4
  96. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/graph_builder.py +116 -44
  97. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/manager.py +194 -93
  98. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/state.py +4 -18
  99. agentic_cli-0.5.0/src/agentic_cli/workflow/models.py +508 -0
  100. agentic_cli-0.5.0/src/agentic_cli/workflow/retry.py +47 -0
  101. agentic_cli-0.5.0/src/agentic_cli/workflow/service_registry.py +91 -0
  102. agentic_cli-0.5.0/src/agentic_cli/workflow/settings.py +491 -0
  103. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/tool_summaries.py +9 -20
  104. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/conftest.py +19 -0
  105. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_adk_integration.py +56 -98
  106. agentic_cli-0.5.0/tests/integration/test_kb_research_flow.py +95 -0
  107. agentic_cli-0.5.0/tests/test_adk_event_processor.py +54 -0
  108. agentic_cli-0.5.0/tests/test_adk_plugins.py +631 -0
  109. agentic_cli-0.5.0/tests/test_arxiv_tools.py +985 -0
  110. agentic_cli-0.5.0/tests/test_bm25_index.py +67 -0
  111. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_commands.py +0 -49
  112. agentic_cli-0.5.0/tests/test_concept_store.py +429 -0
  113. agentic_cli-0.5.0/tests/test_concurrent_stores.py +187 -0
  114. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_config.py +42 -34
  115. agentic_cli-0.5.0/tests/test_context_trimming.py +249 -0
  116. agentic_cli-0.5.0/tests/test_context_window.py +89 -0
  117. agentic_cli-0.5.0/tests/test_dual_thinking_boxes.py +402 -0
  118. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_embeddings.py +106 -18
  119. agentic_cli-0.5.0/tests/test_grep_tool_cache.py +29 -0
  120. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_hitl.py +2 -35
  121. agentic_cli-0.5.0/tests/test_input_callback.py +26 -0
  122. agentic_cli-0.5.0/tests/test_kb_concepts.py +129 -0
  123. agentic_cli-0.5.0/tests/test_kb_helpers.py +83 -0
  124. agentic_cli-0.5.0/tests/test_kb_index_md.py +87 -0
  125. agentic_cli-0.5.0/tests/test_kb_ingest_log.py +54 -0
  126. agentic_cli-0.5.0/tests/test_kb_sidecar.py +604 -0
  127. agentic_cli-0.5.0/tests/test_kb_tool_renames.py +76 -0
  128. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_knowledge_base.py +102 -1
  129. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_knowledge_tools.py +298 -235
  130. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_langgraph.py +2 -89
  131. agentic_cli-0.5.0/tests/test_langgraph_confirmation.py +134 -0
  132. agentic_cli-0.5.0/tests/test_memory.py +523 -0
  133. agentic_cli-0.5.0/tests/test_model_registry.py +500 -0
  134. agentic_cli-0.5.0/tests/test_planning.py +105 -0
  135. agentic_cli-0.5.0/tests/test_reflection.py +74 -0
  136. agentic_cli-0.5.0/tests/test_session_save_resume.py +488 -0
  137. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_settings_persistence.py +36 -6
  138. agentic_cli-0.5.0/tests/test_task_tools.py +253 -0
  139. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_tool_summaries.py +17 -61
  140. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_tools.py +102 -64
  141. agentic_cli-0.5.0/tests/test_update_setting.py +21 -0
  142. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_usage_tracker.py +84 -2
  143. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_webfetch.py +92 -94
  144. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_workflow.py +7 -8
  145. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_workflow_controller.py +20 -19
  146. agentic_cli-0.5.0/tests/tools/test_adk_state_tools.py +226 -0
  147. agentic_cli-0.5.0/tests/tools/test_bubblewrap.py +429 -0
  148. agentic_cli-0.5.0/tests/tools/test_core_planning.py +63 -0
  149. agentic_cli-0.5.0/tests/tools/test_core_tasks.py +346 -0
  150. agentic_cli-0.5.0/tests/tools/test_factories.py +276 -0
  151. agentic_cli-0.5.0/tests/tools/test_langgraph_state_tools.py +273 -0
  152. agentic_cli-0.5.0/tests/tools/test_os_sandbox.py +540 -0
  153. agentic_cli-0.5.0/tests/tools/test_sandbox.py +579 -0
  154. agentic_cli-0.5.0/tests/tools/test_seatbelt_profile.py +343 -0
  155. agentic_cli-0.5.0/tests/workflow/__init__.py +0 -0
  156. agentic_cli-0.5.0/tests/workflow/test_task_progress_plugin.py +175 -0
  157. agentic_cli-0.5.0/tests/workflow/test_tool_assembly.py +191 -0
  158. agentic_cli-0.4.3/PKG-INFO +0 -727
  159. agentic_cli-0.4.3/README.md +0 -687
  160. agentic_cli-0.4.3/examples/planning_demo.py +0 -149
  161. agentic_cli-0.4.3/examples/research_demo/__init__.py +0 -20
  162. agentic_cli-0.4.3/examples/research_demo/agents.py +0 -209
  163. agentic_cli-0.4.3/examples/research_demo/commands.py +0 -269
  164. agentic_cli-0.4.3/requirements.txt +0 -13
  165. agentic_cli-0.4.3/src/agentic_cli/cli/settings.py +0 -58
  166. agentic_cli-0.4.3/src/agentic_cli/cli/usage_tracker.py +0 -87
  167. agentic_cli-0.4.3/src/agentic_cli/config.py +0 -610
  168. agentic_cli-0.4.3/src/agentic_cli/knowledge_base/embeddings.py +0 -185
  169. agentic_cli-0.4.3/src/agentic_cli/knowledge_base/manager.py +0 -696
  170. agentic_cli-0.4.3/src/agentic_cli/persistence/_utils.py +0 -33
  171. agentic_cli-0.4.3/src/agentic_cli/persistence/artifacts.py +0 -258
  172. agentic_cli-0.4.3/src/agentic_cli/resolvers.py +0 -28
  173. agentic_cli-0.4.3/src/agentic_cli/tools/arxiv_source.py +0 -221
  174. agentic_cli-0.4.3/src/agentic_cli/tools/arxiv_tools.py +0 -191
  175. agentic_cli-0.4.3/src/agentic_cli/tools/hitl_tools.py +0 -205
  176. agentic_cli-0.4.3/src/agentic_cli/tools/knowledge_tools.py +0 -613
  177. agentic_cli-0.4.3/src/agentic_cli/tools/memory_tools.py +0 -232
  178. agentic_cli-0.4.3/src/agentic_cli/tools/planning_tools.py +0 -158
  179. agentic_cli-0.4.3/src/agentic_cli/tools/task_tools.py +0 -355
  180. agentic_cli-0.4.3/src/agentic_cli/workflow/base_manager.py +0 -482
  181. agentic_cli-0.4.3/src/agentic_cli/workflow/context.py +0 -33
  182. agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/__init__.py +0 -28
  183. agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/file_search.py +0 -170
  184. agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/shell.py +0 -171
  185. agentic_cli-0.4.3/src/agentic_cli/workflow/settings.py +0 -153
  186. agentic_cli-0.4.3/src/agentic_cli/workflow/task_progress.py +0 -154
  187. agentic_cli-0.4.3/src/agentic_cli/workflow/thinking.py +0 -54
  188. agentic_cli-0.4.3/tests/test_arxiv_tools.py +0 -380
  189. agentic_cli-0.4.3/tests/test_memory.py +0 -234
  190. agentic_cli-0.4.3/tests/test_planning.py +0 -158
  191. agentic_cli-0.4.3/tests/test_task_tools.py +0 -704
  192. agentic_cli-0.4.3/tests/test_thinking.py +0 -117
  193. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/LICENSE +0 -0
  194. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/environment.yml +0 -0
  195. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/arxiv_demo.py +0 -0
  196. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/fileops_demo.py +0 -0
  197. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/hello_agent.py +0 -0
  198. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/hello_langgraph.py +0 -0
  199. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/memory_demo.py +0 -0
  200. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/shell_demo.py +0 -0
  201. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/requirements-dev.txt +0 -0
  202. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_command.py +0 -0
  203. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/models.py +0 -0
  204. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/sources.py +0 -0
  205. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_read.py +0 -0
  206. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/audit.py +0 -0
  207. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/classifier.py +0 -0
  208. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/models.py +0 -0
  209. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/path_analyzer.py +0 -0
  210. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/preprocessor.py +0 -0
  211. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/risk_assessor.py +0 -0
  212. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/tokenizer.py +0 -0
  213. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/__init__.py +0 -0
  214. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/fetcher.py +0 -0
  215. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/robots.py +0 -0
  216. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/summarizer.py +0 -0
  217. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/validator.py +0 -0
  218. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/__init__.py +0 -0
  219. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/checkpointers.py +0 -0
  220. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/stores.py +0 -0
  221. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/__init__.py +0 -0
  222. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/__init__.py +0 -0
  223. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/conftest.py +0 -0
  224. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/helpers.py +0 -0
  225. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_langgraph_integration.py +0 -0
  226. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_live.py +0 -0
  227. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_persistence.py +0 -0
  228. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_token_caching.py +0 -0
  229. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_vector_store.py +0 -0
  230. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/tools/__init__.py +0 -0
  231. {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/tools/test_shell_security.py +0 -0
@@ -48,6 +48,7 @@ plans/
48
48
  docs/
49
49
  changes/
50
50
  findings/
51
+ demo_dir/
51
52
 
52
53
  # Git worktrees
53
54
  .worktrees/
@@ -5,6 +5,81 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.0] - 2026-04-17
9
+
10
+ ### Added
11
+ - **Knowledge Base concept pages** (PR #70): Agent-authored concept/summary pages via `kb_write_concept` and `kb_search_concepts`. Title-weighted case-insensitive search, slug-based addressing, merge-on-overwrite, UTC timestamps.
12
+ - **Hybrid BM25 + vector KB search** (PR #69): `kb_search` fuses BM25 and vector results with Reciprocal Rank Fusion. New `create_bm25_index` abstraction, structure-aware document chunking.
13
+ - **Per-document KB sidecars**: Markdown sidecars written at ingest, surfaced via async `kb_read`. Lazy-regenerated on first read if missing. Append-only `ingest_log.md` audit trail and auto-maintained `index.md`. New `backfill_sidecars()` with per-document locking and in-progress guard.
14
+ - **KB tool bundles**: `KB_READER_TOOLS` and `KB_WRITER_TOOLS` for convenient agent wiring.
15
+ - **MemoryStore lifecycle** (PR #66): Embedding-backed semantic search, contradiction detection (`store_with_similarity_check`), `ForgettingPolicy` + `apply_forgetting()`, archive filtering, `update_memory` and `delete_memory` tools.
16
+ - **Tool Reflection Store**: Bounded per-tool heuristic memory (`save_reflection`) learned from failures, wired via session-end hook.
17
+ - **OS-native sandboxing** (PR #63): macOS seatbelt and Linux namespace sandboxes for shell and Python execution.
18
+ - **Dual thinking boxes** (PR #62): Persistent task-progress box alongside the ephemeral LLM-events box; task state persists across turns. New status icons (`[✓]`, `[▸]`).
19
+ - **ADK `ConfirmationPlugin` + LangGraph tool wrapper**: Framework-level HITL for `DANGEROUS` tools.
20
+ - **ADK `LLMLoggingPlugin`** replaces `LLMEventLogger` for structured LLM traffic logging. **`TaskProgressPlugin`** emits task progress events.
21
+ - **Dual-backend state tools**: Native planning/task tools for ADK (`tools/adk/state_tools.py`) and LangGraph (`tools/langgraph/state_tools.py`) built on shared `tools/_core/` logic.
22
+ - **`research_demo` is now a pip-installable console script**; new `/kb-backfill` demo command.
23
+
24
+ ### Changed
25
+ - **KB tool naming**: `search_knowledge_base` → `kb_search`, `ingest_to_knowledge_base` → `kb_ingest`. Added `kb_read`, `kb_list`.
26
+ - **Service registry** (PR #65): Replaced 8 per-concern ContextVars with a unified service registry; tools reach KB, memory, sandbox, reflection stores, etc. through it. Self-contained, backend-specific tool factories.
27
+ - **ArXiv flow** (PR #67, #68): `ArxivSearchSource` is service-registered, async-safe, and handles PDF download + ID parsing. ArXiv ingestion moved to `arxiv_tools.ingest_arxiv_paper`. Search results expose `pdf_url`/`abs_url`/`src_url`. Id-indexed entry cache.
28
+ - **Workflow manager simplification** (PR #64): Private internals, removed public `graph` property, inlined native `part.thought` check, simplified initialization.
29
+ - **KB ingestion** uses async LLM summarizer; densified sidecar prompt with higher output budget; `embedding_device` autodetection.
30
+ - **`persistence/_utils.py` → `file_utils.py`** at the package top level.
31
+ - **Cross-KB search** uses RRF fusion; `PlanStore` decoupled from task progress display.
32
+
33
+ ### Removed
34
+ - **`@requires` decorator** — replaced by service-registry detection.
35
+ - **`open_document` tool** (CLI-app concern, not framework) and **`unified_search` tool** (buggy, redundant).
36
+ - **`ArtifactManager`** and activity-logging dead code.
37
+ - **`context.py`**, **`task_progress.py` module**, legacy `planning_tools.py` and `task_tools.py` — state tools auto-inject per backend.
38
+ - **`ThinkingDetector`** (inlined into native `part.thought` check).
39
+ - **Old HITL infrastructure** — superseded by `ConfirmationPlugin` and the LangGraph tool wrapper.
40
+
41
+ ### Fixed
42
+ - Concept timestamps use UTC with trailing `Z`; `kb_search` rejects whitespace-only queries.
43
+ - `kb_read` PDF lazy-gen fallback; drops frontmatter; adds scope.
44
+ - `KnowledgeBase.clear()` removes sidecars and rebuilds index; `delete` drops lock entry.
45
+ - KB audit log uses UTF-8 + UTC timestamps.
46
+ - Tags sentinel handling, `load_all` filter, re-embedding on update, contradiction-detection edge cases in `MemoryStore`.
47
+ - Eager detection for missing ML deps; `Content-Type` PDF detection in `web_fetch`.
48
+ - Final task-progress emission at end of event stream; full-color styling for the task box.
49
+ - Research demo: stale prompts, bundle/tool-name alignment, path-placeholder escaping, service-registry push in `/kb-backfill`.
50
+
51
+ ## [0.4.4] - 2026-03-11
52
+
53
+ ### Added
54
+ - **Session Save/Resume**: Persistent conversations across CLI exits with `/save` and `/resume`
55
+ - **Sandbox Executor**: Stateful multi-turn Python code execution with sandboxing and default deps
56
+ - **Context Window Management**: Native ADK and LangGraph context trimming with source-level detection
57
+ - **Context Window Visibility**: Trim detection, status bar token display, and `/status` breakdown
58
+ - **Dynamic Model Registry**: Replace static model lists with live API discovery from Google/Anthropic
59
+ - **Task Progress Display**: Rich-colored task progress in thinking box, persisted across turns
60
+
61
+ ### Changed
62
+ - **Architecture**: Separated workflow+tools layer from UI/CLI layer; composable settings mixins
63
+ - **DRY/SOLID Cleanup** (PR #59, #60): Deduplicated config paths, ArXiv parsing, session persistence, artifact loading; extracted `drain_trim_events()`, `format_detail_rows()`, `format_task_checklist()`; removed dead code (`get_help()`, `FinanceResearchState`, unused settings introspection); replaced dynamic `type()` with `_SessionEvent` class; moved token-drop heuristic into `UsageTracker`
64
+ - **MessageProcessor**: Removed dead code, unused params, cleaner state init
65
+ - **HITL**: Removed dead Future-based machinery, simplified callback path
66
+ - **Ripgrep**: Cache availability check with `lru_cache`
67
+
68
+ ### Fixed
69
+ - Executor import validation blocking allowed submodules
70
+ - Settings not persisting (replaced `exclude_defaults` with explicit exclusion)
71
+ - `verbose_thinking` not persisting across restarts
72
+ - Thread safety, path traversal, and TOCTOU race conditions in persistence
73
+ - VectorStore crash safety: write mappings before FAISS index
74
+ - Embeddings: update in-memory state after `ingest_document`
75
+ - `open_document`: extension allowlist, DANGEROUS permission, audit logging
76
+
77
+ ### Removed
78
+ - `FinanceResearchState` (domain-specific code in shared library)
79
+ - Dead `get_help()`, `get_ui_section`, `is_ui_hidden` methods
80
+ - Dead `generate_tool_summary`, `clear_context`/`unbind_context`, model constant re-exports
81
+ - Dead `cli/settings.py` re-export shim
82
+
8
83
  ## [0.4.3] - 2026-02-12
9
84
 
10
85
  ### Changed
@@ -20,7 +20,6 @@ agentic-cli/
20
20
  │ ├── __init__.py # Package exports, lazy imports
21
21
  │ ├── config.py # BaseSettings (pydantic-settings)
22
22
  │ ├── constants.py # Shared constants, truncate()
23
- │ ├── resolvers.py # Model/path constants (GOOGLE_MODELS, etc.)
24
23
  │ ├── settings_persistence.py
25
24
  │ ├── logging.py
26
25
  │ ├── cli/
@@ -50,7 +49,7 @@ agentic-cli/
50
49
  │ ├── tools/
51
50
  │ │ ├── registry.py # ToolRegistry, @register_tool, ToolCategory, PermissionLevel
52
51
  │ │ ├── executor.py # SafePythonExecutor
53
- │ │ ├── knowledge_tools.py # search_knowledge_base, ingest_to_knowledge_base
52
+ │ │ ├── knowledge_tools.py # kb_search, kb_ingest, kb_list, kb_read
54
53
  │ │ ├── arxiv_tools.py # search_arxiv, fetch_arxiv_paper, analyze_arxiv_paper
55
54
  │ │ ├── execution_tools.py # execute_python
56
55
  │ │ ├── interaction_tools.py # ask_clarification
@@ -132,8 +131,8 @@ Workflow:
132
131
  ### Key Design Patterns
133
132
  - **Tool error handling**: All tools return `{"success": bool, ...}` dicts. Never raise `ToolError`.
134
133
  - **Tool registration**: Use `@register_tool(category=..., permission_level=..., description=...)` decorator. Tools are auto-discovered via the global `ToolRegistry`.
135
- - **Store consolidation**: Stores and managers (MemoryStore, PlanStore, TaskStore, ApprovalManager) live inside their tool files (e.g. `memory_tools.py`, `hitl_tools.py`), not in separate packages.
136
- - **Context access**: Tools use `get_context_*()` functions from `workflow.context` to access managers and stores via ContextVars.
134
+ - **Service registry**: Tools access services and shared state via `get_service(key)` from `workflow.service_registry`. A single ContextVar holds a `dict[str, Any]` set by the workflow manager during processing. Complex services (KBManager, SandboxManager, MemoryStore) are lazily created; simple state (plan string, task list) lives directly in the registry dict.
135
+ - **Manager detection**: Tools decorated with `@requires("kb_manager")` etc. are scanned by `BaseWorkflowManager._detect_required_managers()` which lazily creates only the needed services.
137
136
  - **Atomic writes**: Use `atomic_write_json`/`atomic_write_text` from `persistence/_utils.py` for file persistence.
138
137
 
139
138
  ### Console Output