agentic-cli 0.4.4__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 (222) hide show
  1. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/.gitignore +1 -0
  2. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/CHANGELOG.md +43 -0
  3. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/CLAUDE.md +3 -3
  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.4 → 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.4 → 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.4 → agentic_cli-0.5.0}/examples/webfetch_demo.py +4 -4
  12. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/pyproject.toml +12 -4
  13. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/__init__.py +1 -1
  14. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/__init__.py +1 -3
  15. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/app.py +3 -34
  16. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/builtin_commands.py +1 -4
  17. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/message_processor.py +99 -137
  18. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/workflow_controller.py +2 -2
  19. agentic_cli-0.4.4/src/agentic_cli/persistence/_utils.py → agentic_cli-0.5.0/src/agentic_cli/file_utils.py +11 -17
  20. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/__init__.py +3 -0
  21. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/_mock_bm25.py +93 -0
  22. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/_mocks.py +19 -9
  23. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/bm25_index.py +44 -0
  24. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/concepts.py +349 -0
  25. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/embeddings.py +264 -0
  26. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/manager.py +426 -42
  27. agentic_cli-0.5.0/src/agentic_cli/knowledge_base/sidecar.py +133 -0
  28. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/vector_store.py +1 -1
  29. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/persistence/__init__.py +0 -4
  30. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/persistence/session.py +2 -75
  31. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/settings_mixins.py +0 -12
  32. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/settings_persistence.py +1 -1
  33. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/__init__.py +19 -93
  34. agentic_cli-0.5.0/src/agentic_cli/tools/_core/__init__.py +1 -0
  35. agentic_cli-0.5.0/src/agentic_cli/tools/_core/planning.py +31 -0
  36. agentic_cli-0.5.0/src/agentic_cli/tools/_core/tasks.py +180 -0
  37. agentic_cli-0.5.0/src/agentic_cli/tools/adk/__init__.py +1 -0
  38. agentic_cli-0.5.0/src/agentic_cli/tools/adk/state_tools.py +114 -0
  39. agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_source.py +498 -0
  40. agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_tools.py +325 -0
  41. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/execution_tools.py +13 -0
  42. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/executor.py +54 -9
  43. agentic_cli-0.5.0/src/agentic_cli/tools/factories.py +567 -0
  44. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_write.py +1 -1
  45. agentic_cli-0.5.0/src/agentic_cli/tools/hitl_tools.py +81 -0
  46. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/interaction_tools.py +2 -2
  47. agentic_cli-0.5.0/src/agentic_cli/tools/knowledge_tools.py +804 -0
  48. agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/__init__.py +1 -0
  49. agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/state_tools.py +132 -0
  50. agentic_cli-0.5.0/src/agentic_cli/tools/memory_tools.py +554 -0
  51. agentic_cli-0.5.0/src/agentic_cli/tools/reflection_tools.py +144 -0
  52. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/registry.py +5 -40
  53. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/__init__.py +4 -5
  54. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/manager.py +1 -1
  55. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/__init__.py +11 -0
  56. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/config.py +32 -0
  57. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/executor.py +5 -2
  58. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/__init__.py +101 -0
  59. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/base.py +128 -0
  60. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/bubblewrap.py +167 -0
  61. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/detect.py +79 -0
  62. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/policy.py +147 -0
  63. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt.py +139 -0
  64. agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt_profile.py +186 -0
  65. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/sandbox.py +51 -11
  66. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch_tool.py +4 -10
  67. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/__init__.py +4 -34
  68. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/__init__.py +3 -3
  69. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/event_processor.py +4 -11
  70. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/manager.py +78 -148
  71. agentic_cli-0.4.4/src/agentic_cli/workflow/adk/llm_event_logger.py → agentic_cli-0.5.0/src/agentic_cli/workflow/adk/plugins.py +174 -125
  72. agentic_cli-0.5.0/src/agentic_cli/workflow/adk/task_progress_plugin.py +65 -0
  73. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/base_manager.py +245 -134
  74. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/config.py +2 -0
  75. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/__init__.py +0 -2
  76. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/graph_builder.py +72 -43
  77. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/manager.py +65 -60
  78. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/state.py +4 -0
  79. agentic_cli-0.5.0/src/agentic_cli/workflow/service_registry.py +91 -0
  80. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/settings.py +44 -1
  81. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/tool_summaries.py +4 -20
  82. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/conftest.py +19 -0
  83. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/test_adk_integration.py +39 -65
  84. agentic_cli-0.5.0/tests/integration/test_kb_research_flow.py +95 -0
  85. agentic_cli-0.5.0/tests/test_adk_event_processor.py +54 -0
  86. agentic_cli-0.5.0/tests/test_adk_plugins.py +631 -0
  87. agentic_cli-0.5.0/tests/test_arxiv_tools.py +985 -0
  88. agentic_cli-0.5.0/tests/test_bm25_index.py +67 -0
  89. agentic_cli-0.5.0/tests/test_concept_store.py +429 -0
  90. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_concurrent_stores.py +61 -66
  91. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_config.py +2 -7
  92. agentic_cli-0.5.0/tests/test_dual_thinking_boxes.py +402 -0
  93. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_embeddings.py +106 -18
  94. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_hitl.py +2 -35
  95. agentic_cli-0.5.0/tests/test_kb_concepts.py +129 -0
  96. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_kb_helpers.py +28 -8
  97. agentic_cli-0.5.0/tests/test_kb_index_md.py +87 -0
  98. agentic_cli-0.5.0/tests/test_kb_ingest_log.py +54 -0
  99. agentic_cli-0.5.0/tests/test_kb_sidecar.py +604 -0
  100. agentic_cli-0.5.0/tests/test_kb_tool_renames.py +76 -0
  101. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_knowledge_base.py +102 -1
  102. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_knowledge_tools.py +296 -370
  103. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_langgraph.py +0 -59
  104. agentic_cli-0.5.0/tests/test_langgraph_confirmation.py +134 -0
  105. agentic_cli-0.5.0/tests/test_memory.py +523 -0
  106. agentic_cli-0.5.0/tests/test_planning.py +105 -0
  107. agentic_cli-0.5.0/tests/test_reflection.py +74 -0
  108. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_session_save_resume.py +5 -7
  109. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_settings_persistence.py +1 -1
  110. agentic_cli-0.5.0/tests/test_task_tools.py +253 -0
  111. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_tool_summaries.py +7 -28
  112. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_tools.py +60 -172
  113. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_webfetch.py +66 -68
  114. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_workflow.py +7 -7
  115. agentic_cli-0.5.0/tests/tools/test_adk_state_tools.py +226 -0
  116. agentic_cli-0.5.0/tests/tools/test_bubblewrap.py +429 -0
  117. agentic_cli-0.5.0/tests/tools/test_core_planning.py +63 -0
  118. agentic_cli-0.5.0/tests/tools/test_core_tasks.py +346 -0
  119. agentic_cli-0.5.0/tests/tools/test_factories.py +276 -0
  120. agentic_cli-0.5.0/tests/tools/test_langgraph_state_tools.py +273 -0
  121. agentic_cli-0.5.0/tests/tools/test_os_sandbox.py +540 -0
  122. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/tools/test_sandbox.py +9 -9
  123. agentic_cli-0.5.0/tests/tools/test_seatbelt_profile.py +343 -0
  124. agentic_cli-0.5.0/tests/workflow/__init__.py +0 -0
  125. agentic_cli-0.5.0/tests/workflow/test_task_progress_plugin.py +175 -0
  126. agentic_cli-0.5.0/tests/workflow/test_tool_assembly.py +191 -0
  127. agentic_cli-0.4.4/PKG-INFO +0 -729
  128. agentic_cli-0.4.4/README.md +0 -687
  129. agentic_cli-0.4.4/examples/planning_demo.py +0 -149
  130. agentic_cli-0.4.4/examples/research_demo/__init__.py +0 -20
  131. agentic_cli-0.4.4/examples/research_demo/agents.py +0 -210
  132. agentic_cli-0.4.4/examples/research_demo/commands.py +0 -269
  133. agentic_cli-0.4.4/src/agentic_cli/knowledge_base/embeddings.py +0 -185
  134. agentic_cli-0.4.4/src/agentic_cli/persistence/artifacts.py +0 -285
  135. agentic_cli-0.4.4/src/agentic_cli/tools/arxiv_source.py +0 -221
  136. agentic_cli-0.4.4/src/agentic_cli/tools/arxiv_tools.py +0 -199
  137. agentic_cli-0.4.4/src/agentic_cli/tools/hitl_tools.py +0 -233
  138. agentic_cli-0.4.4/src/agentic_cli/tools/knowledge_tools.py +0 -676
  139. agentic_cli-0.4.4/src/agentic_cli/tools/memory_tools.py +0 -232
  140. agentic_cli-0.4.4/src/agentic_cli/tools/planning_tools.py +0 -158
  141. agentic_cli-0.4.4/src/agentic_cli/tools/task_tools.py +0 -378
  142. agentic_cli-0.4.4/src/agentic_cli/workflow/context.py +0 -35
  143. agentic_cli-0.4.4/src/agentic_cli/workflow/langgraph/tools/__init__.py +0 -28
  144. agentic_cli-0.4.4/src/agentic_cli/workflow/langgraph/tools/file_search.py +0 -170
  145. agentic_cli-0.4.4/src/agentic_cli/workflow/langgraph/tools/shell.py +0 -171
  146. agentic_cli-0.4.4/src/agentic_cli/workflow/task_progress.py +0 -154
  147. agentic_cli-0.4.4/src/agentic_cli/workflow/thinking.py +0 -54
  148. agentic_cli-0.4.4/tests/test_arxiv_tools.py +0 -380
  149. agentic_cli-0.4.4/tests/test_memory.py +0 -224
  150. agentic_cli-0.4.4/tests/test_planning.py +0 -159
  151. agentic_cli-0.4.4/tests/test_task_tools.py +0 -704
  152. agentic_cli-0.4.4/tests/test_thinking.py +0 -117
  153. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/LICENSE +0 -0
  154. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/environment.yml +0 -0
  155. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/arxiv_demo.py +0 -0
  156. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/fileops_demo.py +0 -0
  157. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/hello_agent.py +0 -0
  158. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/hello_langgraph.py +0 -0
  159. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/memory_demo.py +0 -0
  160. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/research_demo/settings.py +0 -0
  161. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/shell_demo.py +0 -0
  162. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/examples/websearch_demo.py +0 -0
  163. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/requirements-dev.txt +0 -0
  164. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/requirements.txt +0 -0
  165. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/commands.py +0 -0
  166. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_command.py +0 -0
  167. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_introspection.py +0 -0
  168. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/cli/usage_tracker.py +0 -0
  169. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/config.py +0 -0
  170. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/constants.py +0 -0
  171. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/models.py +0 -0
  172. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/sources.py +0 -0
  173. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/logging.py +0 -0
  174. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_read.py +0 -0
  175. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/glob_tool.py +0 -0
  176. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/grep_tool.py +0 -0
  177. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/pdf_utils.py +0 -0
  178. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/backends/__init__.py +0 -0
  179. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/backends/base.py +0 -0
  180. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/backends/jupyter_local.py +0 -0
  181. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/sandbox/models.py +0 -0
  182. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/search.py +0 -0
  183. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/audit.py +0 -0
  184. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/classifier.py +0 -0
  185. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/models.py +0 -0
  186. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/path_analyzer.py +0 -0
  187. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/preprocessor.py +0 -0
  188. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/risk_assessor.py +0 -0
  189. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/tokenizer.py +0 -0
  190. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/__init__.py +0 -0
  191. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/converter.py +0 -0
  192. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/fetcher.py +0 -0
  193. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/robots.py +0 -0
  194. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/summarizer.py +0 -0
  195. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/validator.py +0 -0
  196. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/events.py +0 -0
  197. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/factory.py +0 -0
  198. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/__init__.py +0 -0
  199. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/checkpointers.py +0 -0
  200. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/stores.py +0 -0
  201. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/models.py +0 -0
  202. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/src/agentic_cli/workflow/retry.py +0 -0
  203. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/__init__.py +0 -0
  204. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/__init__.py +0 -0
  205. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/conftest.py +0 -0
  206. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/helpers.py +0 -0
  207. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/test_langgraph_integration.py +0 -0
  208. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/integration/test_live.py +0 -0
  209. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_commands.py +0 -0
  210. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_context_trimming.py +0 -0
  211. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_context_window.py +0 -0
  212. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_grep_tool_cache.py +0 -0
  213. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_input_callback.py +0 -0
  214. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_model_registry.py +0 -0
  215. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_persistence.py +0 -0
  216. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_token_caching.py +0 -0
  217. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_update_setting.py +0 -0
  218. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_usage_tracker.py +0 -0
  219. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_vector_store.py +0 -0
  220. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/test_workflow_controller.py +0 -0
  221. {agentic_cli-0.4.4 → agentic_cli-0.5.0}/tests/tools/__init__.py +0 -0
  222. {agentic_cli-0.4.4 → 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,49 @@ 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
+
8
51
  ## [0.4.4] - 2026-03-11
9
52
 
10
53
  ### Added
@@ -49,7 +49,7 @@ agentic-cli/
49
49
  │ ├── tools/
50
50
  │ │ ├── registry.py # ToolRegistry, @register_tool, ToolCategory, PermissionLevel
51
51
  │ │ ├── executor.py # SafePythonExecutor
52
- │ │ ├── knowledge_tools.py # search_knowledge_base, ingest_to_knowledge_base
52
+ │ │ ├── knowledge_tools.py # kb_search, kb_ingest, kb_list, kb_read
53
53
  │ │ ├── arxiv_tools.py # search_arxiv, fetch_arxiv_paper, analyze_arxiv_paper
54
54
  │ │ ├── execution_tools.py # execute_python
55
55
  │ │ ├── interaction_tools.py # ask_clarification
@@ -131,8 +131,8 @@ Workflow:
131
131
  ### Key Design Patterns
132
132
  - **Tool error handling**: All tools return `{"success": bool, ...}` dicts. Never raise `ToolError`.
133
133
  - **Tool registration**: Use `@register_tool(category=..., permission_level=..., description=...)` decorator. Tools are auto-discovered via the global `ToolRegistry`.
134
- - **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.
135
- - **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.
136
136
  - **Atomic writes**: Use `atomic_write_json`/`atomic_write_text` from `persistence/_utils.py` for file persistence.
137
137
 
138
138
  ### Console Output