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.
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/.gitignore +1 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/CHANGELOG.md +75 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/CLAUDE.md +3 -4
- agentic_cli-0.5.0/PKG-INFO +835 -0
- agentic_cli-0.5.0/README.md +789 -0
- agentic_cli-0.5.0/examples/research_demo/__init__.py +23 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/__main__.py +3 -2
- agentic_cli-0.5.0/examples/research_demo/agents.py +247 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/app.py +8 -18
- agentic_cli-0.5.0/examples/research_demo/commands.py +189 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/research_demo/settings.py +14 -6
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/webfetch_demo.py +4 -4
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/websearch_demo.py +5 -5
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/pyproject.toml +14 -4
- agentic_cli-0.5.0/requirements.txt +4 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/__init__.py +4 -3
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/__init__.py +2 -4
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/app.py +61 -50
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/builtin_commands.py +139 -20
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/commands.py +0 -25
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/message_processor.py +192 -192
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_introspection.py +0 -26
- agentic_cli-0.5.0/src/agentic_cli/cli/usage_tracker.py +154 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/workflow_controller.py +21 -104
- agentic_cli-0.5.0/src/agentic_cli/config.py +338 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/constants.py +1 -1
- agentic_cli-0.5.0/src/agentic_cli/file_utils.py +75 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/__init__.py +3 -0
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/_mock_bm25.py +93 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/_mocks.py +19 -9
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/bm25_index.py +44 -0
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/concepts.py +349 -0
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/embeddings.py +264 -0
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/manager.py +1074 -0
- agentic_cli-0.5.0/src/agentic_cli/knowledge_base/sidecar.py +133 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/vector_store.py +74 -55
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/logging.py +0 -14
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/persistence/__init__.py +0 -4
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/persistence/session.py +40 -80
- agentic_cli-0.5.0/src/agentic_cli/settings_mixins.py +108 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/settings_persistence.py +25 -9
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/__init__.py +21 -93
- agentic_cli-0.5.0/src/agentic_cli/tools/_core/__init__.py +1 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/_core/planning.py +31 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/_core/tasks.py +180 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/adk/__init__.py +1 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/adk/state_tools.py +114 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_source.py +498 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/arxiv_tools.py +325 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/execution_tools.py +14 -1
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/executor.py +60 -11
- agentic_cli-0.5.0/src/agentic_cli/tools/factories.py +567 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_write.py +1 -1
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/glob_tool.py +1 -7
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/grep_tool.py +3 -1
- agentic_cli-0.5.0/src/agentic_cli/tools/hitl_tools.py +81 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/interaction_tools.py +6 -4
- agentic_cli-0.5.0/src/agentic_cli/tools/knowledge_tools.py +804 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/__init__.py +1 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/langgraph/state_tools.py +132 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/memory_tools.py +554 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/pdf_utils.py +55 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/reflection_tools.py +144 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/registry.py +17 -13
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/__init__.py +56 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/__init__.py +5 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/base.py +46 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/backends/jupyter_local.py +238 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/manager.py +174 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/sandbox/models.py +16 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/search.py +7 -7
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/__init__.py +11 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/config.py +32 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/executor.py +7 -66
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/__init__.py +101 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/base.py +128 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/bubblewrap.py +167 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/detect.py +79 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/policy.py +147 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt.py +139 -0
- agentic_cli-0.5.0/src/agentic_cli/tools/shell/os_sandbox/seatbelt_profile.py +186 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/sandbox.py +51 -11
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/converter.py +6 -18
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch_tool.py +26 -15
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/__init__.py +12 -36
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/__init__.py +3 -3
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/event_processor.py +4 -105
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/adk/manager.py +238 -173
- 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
- agentic_cli-0.5.0/src/agentic_cli/workflow/adk/task_progress_plugin.py +65 -0
- agentic_cli-0.5.0/src/agentic_cli/workflow/base_manager.py +783 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/config.py +2 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/events.py +42 -47
- agentic_cli-0.5.0/src/agentic_cli/workflow/factory.py +112 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/__init__.py +0 -4
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/graph_builder.py +116 -44
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/manager.py +194 -93
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/state.py +4 -18
- agentic_cli-0.5.0/src/agentic_cli/workflow/models.py +508 -0
- agentic_cli-0.5.0/src/agentic_cli/workflow/retry.py +47 -0
- agentic_cli-0.5.0/src/agentic_cli/workflow/service_registry.py +91 -0
- agentic_cli-0.5.0/src/agentic_cli/workflow/settings.py +491 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/tool_summaries.py +9 -20
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/conftest.py +19 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_adk_integration.py +56 -98
- agentic_cli-0.5.0/tests/integration/test_kb_research_flow.py +95 -0
- agentic_cli-0.5.0/tests/test_adk_event_processor.py +54 -0
- agentic_cli-0.5.0/tests/test_adk_plugins.py +631 -0
- agentic_cli-0.5.0/tests/test_arxiv_tools.py +985 -0
- agentic_cli-0.5.0/tests/test_bm25_index.py +67 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_commands.py +0 -49
- agentic_cli-0.5.0/tests/test_concept_store.py +429 -0
- agentic_cli-0.5.0/tests/test_concurrent_stores.py +187 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_config.py +42 -34
- agentic_cli-0.5.0/tests/test_context_trimming.py +249 -0
- agentic_cli-0.5.0/tests/test_context_window.py +89 -0
- agentic_cli-0.5.0/tests/test_dual_thinking_boxes.py +402 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_embeddings.py +106 -18
- agentic_cli-0.5.0/tests/test_grep_tool_cache.py +29 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_hitl.py +2 -35
- agentic_cli-0.5.0/tests/test_input_callback.py +26 -0
- agentic_cli-0.5.0/tests/test_kb_concepts.py +129 -0
- agentic_cli-0.5.0/tests/test_kb_helpers.py +83 -0
- agentic_cli-0.5.0/tests/test_kb_index_md.py +87 -0
- agentic_cli-0.5.0/tests/test_kb_ingest_log.py +54 -0
- agentic_cli-0.5.0/tests/test_kb_sidecar.py +604 -0
- agentic_cli-0.5.0/tests/test_kb_tool_renames.py +76 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_knowledge_base.py +102 -1
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_knowledge_tools.py +298 -235
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_langgraph.py +2 -89
- agentic_cli-0.5.0/tests/test_langgraph_confirmation.py +134 -0
- agentic_cli-0.5.0/tests/test_memory.py +523 -0
- agentic_cli-0.5.0/tests/test_model_registry.py +500 -0
- agentic_cli-0.5.0/tests/test_planning.py +105 -0
- agentic_cli-0.5.0/tests/test_reflection.py +74 -0
- agentic_cli-0.5.0/tests/test_session_save_resume.py +488 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_settings_persistence.py +36 -6
- agentic_cli-0.5.0/tests/test_task_tools.py +253 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_tool_summaries.py +17 -61
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_tools.py +102 -64
- agentic_cli-0.5.0/tests/test_update_setting.py +21 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_usage_tracker.py +84 -2
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_webfetch.py +92 -94
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_workflow.py +7 -8
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_workflow_controller.py +20 -19
- agentic_cli-0.5.0/tests/tools/test_adk_state_tools.py +226 -0
- agentic_cli-0.5.0/tests/tools/test_bubblewrap.py +429 -0
- agentic_cli-0.5.0/tests/tools/test_core_planning.py +63 -0
- agentic_cli-0.5.0/tests/tools/test_core_tasks.py +346 -0
- agentic_cli-0.5.0/tests/tools/test_factories.py +276 -0
- agentic_cli-0.5.0/tests/tools/test_langgraph_state_tools.py +273 -0
- agentic_cli-0.5.0/tests/tools/test_os_sandbox.py +540 -0
- agentic_cli-0.5.0/tests/tools/test_sandbox.py +579 -0
- agentic_cli-0.5.0/tests/tools/test_seatbelt_profile.py +343 -0
- agentic_cli-0.5.0/tests/workflow/__init__.py +0 -0
- agentic_cli-0.5.0/tests/workflow/test_task_progress_plugin.py +175 -0
- agentic_cli-0.5.0/tests/workflow/test_tool_assembly.py +191 -0
- agentic_cli-0.4.3/PKG-INFO +0 -727
- agentic_cli-0.4.3/README.md +0 -687
- agentic_cli-0.4.3/examples/planning_demo.py +0 -149
- agentic_cli-0.4.3/examples/research_demo/__init__.py +0 -20
- agentic_cli-0.4.3/examples/research_demo/agents.py +0 -209
- agentic_cli-0.4.3/examples/research_demo/commands.py +0 -269
- agentic_cli-0.4.3/requirements.txt +0 -13
- agentic_cli-0.4.3/src/agentic_cli/cli/settings.py +0 -58
- agentic_cli-0.4.3/src/agentic_cli/cli/usage_tracker.py +0 -87
- agentic_cli-0.4.3/src/agentic_cli/config.py +0 -610
- agentic_cli-0.4.3/src/agentic_cli/knowledge_base/embeddings.py +0 -185
- agentic_cli-0.4.3/src/agentic_cli/knowledge_base/manager.py +0 -696
- agentic_cli-0.4.3/src/agentic_cli/persistence/_utils.py +0 -33
- agentic_cli-0.4.3/src/agentic_cli/persistence/artifacts.py +0 -258
- agentic_cli-0.4.3/src/agentic_cli/resolvers.py +0 -28
- agentic_cli-0.4.3/src/agentic_cli/tools/arxiv_source.py +0 -221
- agentic_cli-0.4.3/src/agentic_cli/tools/arxiv_tools.py +0 -191
- agentic_cli-0.4.3/src/agentic_cli/tools/hitl_tools.py +0 -205
- agentic_cli-0.4.3/src/agentic_cli/tools/knowledge_tools.py +0 -613
- agentic_cli-0.4.3/src/agentic_cli/tools/memory_tools.py +0 -232
- agentic_cli-0.4.3/src/agentic_cli/tools/planning_tools.py +0 -158
- agentic_cli-0.4.3/src/agentic_cli/tools/task_tools.py +0 -355
- agentic_cli-0.4.3/src/agentic_cli/workflow/base_manager.py +0 -482
- agentic_cli-0.4.3/src/agentic_cli/workflow/context.py +0 -33
- agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/__init__.py +0 -28
- agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/file_search.py +0 -170
- agentic_cli-0.4.3/src/agentic_cli/workflow/langgraph/tools/shell.py +0 -171
- agentic_cli-0.4.3/src/agentic_cli/workflow/settings.py +0 -153
- agentic_cli-0.4.3/src/agentic_cli/workflow/task_progress.py +0 -154
- agentic_cli-0.4.3/src/agentic_cli/workflow/thinking.py +0 -54
- agentic_cli-0.4.3/tests/test_arxiv_tools.py +0 -380
- agentic_cli-0.4.3/tests/test_memory.py +0 -234
- agentic_cli-0.4.3/tests/test_planning.py +0 -158
- agentic_cli-0.4.3/tests/test_task_tools.py +0 -704
- agentic_cli-0.4.3/tests/test_thinking.py +0 -117
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/LICENSE +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/environment.yml +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/arxiv_demo.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/fileops_demo.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/hello_agent.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/hello_langgraph.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/memory_demo.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/examples/shell_demo.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/requirements-dev.txt +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/cli/settings_command.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/models.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/knowledge_base/sources.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/file_read.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/audit.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/classifier.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/models.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/path_analyzer.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/preprocessor.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/risk_assessor.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/shell/tokenizer.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/__init__.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/fetcher.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/robots.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/summarizer.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/tools/webfetch/validator.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/__init__.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/checkpointers.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/src/agentic_cli/workflow/langgraph/persistence/stores.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/__init__.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/__init__.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/conftest.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/helpers.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_langgraph_integration.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/integration/test_live.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_persistence.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_token_caching.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/test_vector_store.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/tools/__init__.py +0 -0
- {agentic_cli-0.4.3 → agentic_cli-0.5.0}/tests/tools/test_shell_security.py +0 -0
|
@@ -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 #
|
|
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
|
-
- **
|
|
136
|
-
- **
|
|
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
|