LICENSE
README.md
pyproject.toml
../../.gitignore
../../.mailmap
../../.pre-commit-config.yaml
../../.python-version
../../.secrets.allowlist
../../CITATION.cff
../../LICENSE
../../README.md
../../citation.bib
../../pyproject.toml
../../uv.lock
../../.github/renovate.json5
../../.github/workflows/docs.yml
../../.github/workflows/publish.yml
../../.github/workflows/tests.yml
../../docs/assets/Aviary.png
../../docs/assets/ldp_chessboard.png
../../docs/assets/ldp_definition.png
../../src/ldp/__init__.py
../../src/ldp/data_structures.py
../../src/ldp/main.py
../../src/ldp/py.typed
../../src/ldp/shims.py
../../src/ldp/utils.py
../../src/ldp/agent/__init__.py
../../src/ldp/agent/agent.py
../../src/ldp/agent/agent_client.py
../../src/ldp/agent/interactive_agent.py
../../src/ldp/agent/memory_agent.py
../../src/ldp/agent/react_agent.py
../../src/ldp/agent/simple_agent.py
../../src/ldp/agent/tree_of_thoughts_agent.py
../../src/ldp/alg/__init__.py
../../src/ldp/alg/algorithms.py
../../src/ldp/alg/beam_search.py
../../src/ldp/alg/callbacks.py
../../src/ldp/alg/datasets.py
../../src/ldp/alg/rollout.py
../../src/ldp/alg/runners.py
../../src/ldp/alg/tree_search.py
../../src/ldp/alg/optimizer/__init__.py
../../src/ldp/alg/optimizer/ape.py
../../src/ldp/alg/optimizer/memory.py
../../src/ldp/alg/optimizer/opt.py
../../src/ldp/alg/optimizer/replay_buffers.py
../../src/ldp/graph/__init__.py
../../src/ldp/graph/async_torch.py
../../src/ldp/graph/common_ops.py
../../src/ldp/graph/gradient_estimators.py
../../src/ldp/graph/loss_ops.py
../../src/ldp/graph/memory.py
../../src/ldp/graph/op_utils.py
../../src/ldp/graph/ops.py
../../src/ldp/graph/torch_ops.py
../../src/ldp/graph/modules/__init__.py
../../src/ldp/graph/modules/llm_call.py
../../src/ldp/graph/modules/react.py
../../src/ldp/graph/modules/reflect.py
../../src/ldp/graph/modules/thought.py
../../src/ldp/llms/__init__.py
../../src/ldp/llms/prompts.py
../../src/ldp/nn/__init__.py
../../src/ldp/nn/lm_config.py
../../src/ldp/nn/utils.py
../../src/ldp/nn/agent/simple_local_agent.py
../../src/ldp/nn/chat_templates/README.md
../../src/ldp/nn/chat_templates/llama2_chat_template_ori.jinja
../../src/ldp/nn/chat_templates/llama3.1_chat_template_hf.jinja
../../src/ldp/nn/chat_templates/llama3.1_chat_template_nothought.jinja
../../src/ldp/nn/chat_templates/llama3.1_chat_template_thought.jinja
../../src/ldp/nn/chat_templates/llama3.1_chat_template_vllm.jinja
../../src/ldp/nn/chat_templates/llama3_chat_template_ori.jinja
../../src/ldp/nn/generation/__init__.py
../../src/ldp/nn/generation/base.py
../../src/ldp/nn/graph/llm_call_op.py
../../src/ldp/nn/handlers/chunking.py
../../src/ldp/nn/handlers/module_handler.py
../../src/ldp/nn/handlers/transformer_handler.py
../../tests/.gitignore
../../tests/__init__.py
../../tests/conftest.py
../../tests/test_agents.py
../../tests/test_algorithms.py
../../tests/test_buffers.py
../../tests/test_context_managers.py
../../tests/test_data_structures.py
../../tests/test_envs.py
../../tests/test_gradients.py
../../tests/test_loss_ops.py
../../tests/test_memory.py
../../tests/test_modules.py
../../tests/test_nn_models.py
../../tests/test_nn_ops.py
../../tests/test_ops.py
../../tests/test_optimizer.py
../../tests/test_prompts.py
../../tests/test_readme.py
../../tests/test_rollouts.py
../../tests/test_runners.py
../../tests/test_shims.py
../../tests/test_torch_ops.py
../../tests/test_utils.py
../../tests/cassettes/TestAgentState.test_no_state_mutation[agent0].yaml
../../tests/cassettes/TestAgentState.test_no_state_mutation[agent1].yaml
../../tests/cassettes/TestAgentState.test_no_state_mutation[agent2].yaml
../../tests/cassettes/TestHTTPAgentClient.test_lifecycle.yaml
../../tests/cassettes/TestLLMCallOp.test_compute_logprob[0.0].yaml
../../tests/cassettes/TestLLMCallOp.test_compute_logprob[0.5].yaml
../../tests/cassettes/TestLLMCallOp.test_compute_logprob[1.0].yaml
../../tests/cassettes/TestLLMCallOp.test_cost_tracking.yaml
../../tests/cassettes/TestLLMCallOp.test_empty_tools.yaml
../../tests/cassettes/TestLLMCallOp.test_tool_parser_with_required_tool_choice.yaml
../../tests/cassettes/TestLLMCallOp.test_validation.yaml
../../tests/cassettes/TestMemoryAgent.test_agent_grad.yaml
../../tests/cassettes/TestMemoryAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
../../tests/cassettes/TestMemoryOpt.test_lessons_memory_optimizer.yaml
../../tests/cassettes/TestNoToolsSimpleAgent.test_dummyenv[claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestNoToolsSimpleAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
../../tests/cassettes/TestParallelism.test_SimpleAgent_can_parallel_call.yaml
../../tests/cassettes/TestReActAgent.test_agent_grad[False-claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestReActAgent.test_agent_grad[False-gpt-4o].yaml
../../tests/cassettes/TestReActAgent.test_agent_grad[True-claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestReActAgent.test_agent_grad[True-gpt-4-turbo].yaml
../../tests/cassettes/TestReActAgent.test_multi_step[False].yaml
../../tests/cassettes/TestReActAgent.test_multi_step[True].yaml
../../tests/cassettes/TestReActAgent.test_react_dummyenv[False-claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestReActAgent.test_react_dummyenv[False-gpt-4o].yaml
../../tests/cassettes/TestReActAgent.test_react_dummyenv[True-claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestReActAgent.test_react_dummyenv[True-gpt-4-turbo].yaml
../../tests/cassettes/TestSimpleAgent.test_agent_grad[claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestSimpleAgent.test_agent_grad[gpt-4o-mini-2024-07-18].yaml
../../tests/cassettes/TestSimpleAgent.test_dummyenv[claude-haiku-4-5-20251001].yaml
../../tests/cassettes/TestSimpleAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
../../tests/cassettes/TestSimpleAgent.test_hide_old_action_content.yaml
../../tests/cassettes/TestSimpleAgent.test_hide_old_env_states.yaml
../../tests/cassettes/test_beam_search.yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-0-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-0-512].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-32-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-32-512].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-64-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-large-64-512].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-0-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-0-512].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-32-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-32-512].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-64-256].yaml
../../tests/cassettes/test_embedding_op[text-embedding-3-small-64-512].yaml
../../tests/cassettes/test_fallbacks_working[False].yaml
../../tests/cassettes/test_fallbacks_working[True].yaml
../../tests/cassettes/test_llm_call_graph.yaml
../../tests/cassettes/test_offline_trainer[False].yaml
../../tests/cassettes/test_offline_trainer[True].yaml
../../tests/cassettes/test_online_trainer[False].yaml
../../tests/cassettes/test_online_trainer[True].yaml
../../tests/cassettes/test_reflect_module.yaml
../../tests/cassettes/test_rollout[False].yaml
../../tests/cassettes/test_rollout[True].yaml
../../tutorials/creating_a_language_agent.ipynb
../../tutorials/evaluating_a_llama_agent.ipynb
src/fhlmi.egg-info/PKG-INFO
src/fhlmi.egg-info/SOURCES.txt
src/fhlmi.egg-info/dependency_links.txt
src/fhlmi.egg-info/requires.txt
src/fhlmi.egg-info/scm_file_list.json
src/fhlmi.egg-info/scm_version.json
src/fhlmi.egg-info/top_level.txt
src/lmi/__init__.py
src/lmi/constants.py
src/lmi/cost_tracker.py
src/lmi/embeddings.py
src/lmi/exceptions.py
src/lmi/litellm_patches.py
src/lmi/llms.py
src/lmi/py.typed
src/lmi/rate_limiter.py
src/lmi/types.py
src/lmi/utils.py
src/lmi/version.py
tests/conftest.py
tests/test_cost_tracking.py
tests/test_embeddings.py
tests/test_litellm_patches.py
tests/test_llms.py
tests/test_rate_limiter.py
tests/test_utils.py
tests/cassettes/TestCachedTokenCosts.test_anthropic_cache_creation_cost_accuracy.yaml
tests/cassettes/TestCachedTokenCosts.test_anthropic_incremental_cache_with_conversation.yaml
tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[claude-sonnet-4-5-20250929-True].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[gpt-4o-2024-11-20-False].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[claude-sonnet-4-5-20250929-True].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[gpt-4o-2024-11-20-False].yaml
tests/cassettes/TestCachedTokenEdgeCases.test_completion_cost_failure_with_cached_tokens.yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_embeddings[text-embedding-3-small].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-haiku-4-5-20251001-False].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-haiku-4-5-20251001-True].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-False].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-True].yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_caching.yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_embedding_batches.yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[with-router].yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_call[Anthropic-model].yaml
tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-1].yaml
tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-2].yaml
tests/cassettes/TestLiteLLMModel.test_call_single[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_call_single[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_call_w_multiple_models[multiple-models].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call[Anthropic-model].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call[OpenAI-model].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call_single[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call_single[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_max_token_truncation[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_max_token_truncation[without-router].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_multiple_completion[openai].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-base-model].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-type-adapter].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[structured-outputs].yaml
tests/cassettes/TestMultipleCompletion.test_parameterizing_tool_from_arg_union.yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[claude-haiku-4-5-20251001].yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_text_image_message[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestReasoning.test_deepseek_model[deepseek-reasoner].yaml
tests/cassettes/TestReasoning.test_deepseek_model[openrouter-deepseek].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-claude-sonnet-4-5-20250929].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-gpt-5-2025-08-07].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-claude-sonnet-4-5-20250929].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-gpt-5-2025-08-07].yaml
tests/cassettes/TestResponsesAPIIntegration.test_basic_call.yaml
tests/cassettes/TestResponsesAPIIntegration.test_multi_turn_stateful.yaml
tests/cassettes/TestResponsesAPIIntegration.test_responses_api_off_ignores_response_id.yaml
tests/cassettes/TestTooling.test_custom_tool_parser_from_config.yaml
tests/cassettes/TestTooling.test_empty_tools[Anthropic-empty-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[Anthropic-no-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[OpenAI-empty-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[OpenAI-no-tools].yaml
tests/cassettes/TestTooling.test_multi_response_warns_and_returns_first.yaml
tests/cassettes/TestTooling.test_tool_selection.yaml
tests/stub_data/sf_districts.png