LICENSE
NOTICE
README.md
pyproject.toml
src/fabri/__init__.py
src/fabri/admin.py
src/fabri/cli.py
src/fabri/config.py
src/fabri/events.py
src/fabri/paths.py
src/fabri/pricing.py
src/fabri/runtime.py
src/fabri/scaffold.py
src/fabri/tool_scaffold.py
src/fabri/toon.py
src/fabri.egg-info/PKG-INFO
src/fabri.egg-info/SOURCES.txt
src/fabri.egg-info/dependency_links.txt
src/fabri.egg-info/entry_points.txt
src/fabri.egg-info/requires.txt
src/fabri.egg-info/top_level.txt
src/fabri/benchmarks/__init__.py
src/fabri/benchmarks/longmemeval/__init__.py
src/fabri/benchmarks/longmemeval/__main__.py
src/fabri/benchmarks/longmemeval/runner.py
src/fabri/benchmarks/retrieval_eval/__init__.py
src/fabri/benchmarks/retrieval_eval/__main__.py
src/fabri/benchmarks/retrieval_eval/metrics.py
src/fabri/benchmarks/retrieval_eval/runner.py
src/fabri/benchmarks/session_delta/__init__.py
src/fabri/benchmarks/session_delta/__main__.py
src/fabri/benchmarks/session_delta/runner.py
src/fabri/builder/__init__.py
src/fabri/builder/discovery.py
src/fabri/builder/ideator.py
src/fabri/builder/prompt_kit.py
src/fabri/builder/skills.py
src/fabri/builder/tool_writer.py
src/fabri/builder/waves.py
src/fabri/builder/skills_examples/clock/config.yaml
src/fabri/builder/skills_examples/clock/skill.yaml
src/fabri/builder/skills_examples/clock/prompts/clock.md
src/fabri/builder/skills_examples/clock/tools/now.json
src/fabri/builder/skills_examples/clock/tools/now.py
src/fabri/builder/skills_examples/syslog-adapter/config.yaml
src/fabri/builder/skills_examples/syslog-adapter/skill.yaml
src/fabri/builder/skills_examples/syslog-adapter/tools/syslog_adapter.json
src/fabri/builder/skills_examples/syslog-adapter/tools/syslog_adapter.py
src/fabri/core/__init__.py
src/fabri/core/agent.py
src/fabri/core/decompose.py
src/fabri/core/llm.py
src/fabri/core/logging_setup.py
src/fabri/core/outcome.py
src/fabri/core/planner.py
src/fabri/core/run_config.py
src/fabri/core/structured.py
src/fabri/ingest/__init__.py
src/fabri/ingest/api.py
src/fabri/ingest/improver.py
src/fabri/ingest/registry.py
src/fabri/ingest/sources.py
src/fabri/ingest/summary.py
src/fabri/ingest/adapters/__init__.py
src/fabri/ingest/adapters/base.py
src/fabri/ingest/adapters/builtins.py
src/fabri/ingest/adapters/configmap.py
src/fabri/ingest/adapters/tool.py
src/fabri/memory/__init__.py
src/fabri/memory/compress.py
src/fabri/memory/embedded_store.py
src/fabri/memory/embeddings.py
src/fabri/memory/pruning.py
src/fabri/memory/schema.py
src/fabri/memory/store.py
src/fabri/orchestrator/__init__.py
src/fabri/orchestrator/pipeline.py
src/fabri/orchestrator/retrieval.py
src/fabri/orchestrator/trace_render.py
src/fabri/orchestrator/traces.py
src/fabri/reports/__init__.py
src/fabri/reports/aggregate.py
src/fabri/reports/chart.py
src/fabri/reports/render.py
src/fabri/sandbox/Dockerfile.base
src/fabri/sandbox/__init__.py
src/fabri/sandbox/docker_sandbox.py
src/fabri/service/__init__.py
src/fabri/service/binding.py
src/fabri/service/http_server.py
src/fabri/service/launcher.py
src/fabri/service/service.py
src/fabri/service/sync.py
src/fabri/service/tailer.py
src/fabri/tools/__init__.py
src/fabri/tools/agent_runner_tool.py
src/fabri/tools/agent_tool.py
src/fabri/tools/manifest_schema.py
src/fabri/tools/mcp_client.py
src/fabri/tools/mcp_server.py
src/fabri/tools/registry.py
src/fabri/tools/result.py
src/fabri/tools/runner.py
src/fabri/tools/examples/ask_user.json
src/fabri/tools/examples/ask_user.py
src/fabri/tools/examples/bash.json
src/fabri/tools/examples/bash.py
src/fabri/tools/examples/batch.json
src/fabri/tools/examples/broken_tool.json
src/fabri/tools/examples/broken_tool.py
src/fabri/tools/examples/echo_tool.json
src/fabri/tools/examples/echo_tool.py
src/fabri/tools/examples/edit_file.json
src/fabri/tools/examples/edit_file.py
src/fabri/tools/examples/fetch_url.json
src/fabri/tools/examples/fetch_url.py
src/fabri/tools/examples/file_stats.json
src/fabri/tools/examples/grep.json
src/fabri/tools/examples/grep.py
src/fabri/tools/examples/list_dir.json
src/fabri/tools/examples/list_dir.py
src/fabri/tools/examples/mcp_tool.json
src/fabri/tools/examples/mcp_tool.py
src/fabri/tools/examples/python_exec.json
src/fabri/tools/examples/python_exec.py
src/fabri/tools/examples/read_file.json
src/fabri/tools/examples/read_file.py
src/fabri/tools/examples/regex_lines.json
src/fabri/tools/examples/spawn_subagent.json
src/fabri/tools/examples/spawn_subagent.py
src/fabri/tools/examples/sum_tool.json
src/fabri/tools/examples/web_search.json
src/fabri/tools/examples/web_search.py
src/fabri/tools/examples/write_file.json
src/fabri/tools/examples/write_file.py
src/fabri/tools/examples/example_go_tool/go.mod
src/fabri/tools/examples/example_go_tool/main.go
src/fabri/tools/examples/example_node_tool/index.js
src/fabri/tools/examples/example_rust_tool/Cargo.toml
src/fabri/tools/examples/example_rust_tool/src/main.rs
src/fabri/tools/recipes/README.md
src/fabri/tools/recipes/__init__.py
src/fabri/tools/recipes/fetch_url.json
src/fabri/tools/recipes/fetch_url.py
src/fabri/tools/recipes/git_diff.json
src/fabri/tools/recipes/git_diff.py
src/fabri/tools/recipes/grep_dir.json
src/fabri/tools/recipes/grep_dir.py
src/fabri/tools/recipes/python_eval.json
src/fabri/tools/recipes/python_eval.py
src/fabri/tools/recipes/run_shell_safe.json
src/fabri/tools/recipes/run_shell_safe.py
tests/test_ask_user.py
tests/test_cli_init.py
tests/test_cli_run_exit_code.py
tests/test_compress.py
tests/test_config_prompt_spawn_thorough.py
tests/test_cost_rollup_thorough.py
tests/test_cost_tracking.py
tests/test_discrepancy.py
tests/test_docker_sandbox.py
tests/test_e2e_agent_loop.py
tests/test_e2e_config_and_admin.py
tests/test_e2e_first_run_smoke.py
tests/test_e2e_structured_output.py
tests/test_ideator.py
tests/test_ingest.py
tests/test_llm_backends_thorough.py
tests/test_memory_store.py
tests/test_parallel_dispatch.py
tests/test_pricing_thorough.py
tests/test_prompt_kit.py
tests/test_pruning.py
tests/test_repair_loop.py
tests/test_retrieval.py
tests/test_retrieval_eval_gate.py
tests/test_runner_ergonomics.py
tests/test_sandbox.py
tests/test_service.py
tests/test_skills.py
tests/test_spawn_subagent.py
tests/test_system_prompt_frugality.py
tests/test_tool_runner.py
tests/test_tool_writer.py
tests/test_toon.py
tests/test_unit_agent_runner_tool.py
tests/test_unit_batch.py
tests/test_unit_bedrock_backend.py
tests/test_unit_config_qdrant_env.py
tests/test_unit_decompose.py
tests/test_unit_file_tools.py
tests/test_unit_gemini_backend.py
tests/test_unit_hybrid_retrieval.py
tests/test_unit_llm_caching.py
tests/test_unit_manifest_schema.py
tests/test_unit_max_tokens_retry.py
tests/test_unit_mcp_client.py
tests/test_unit_memory_diff.py
tests/test_unit_memory_eviction.py
tests/test_unit_memory_health.py
tests/test_unit_narrator.py
tests/test_unit_new_tools.py
tests/test_unit_openrouter_backend.py
tests/test_unit_outcome_classification.py
tests/test_unit_p3_hardening.py
tests/test_unit_planner.py
tests/test_unit_postmortem.py
tests/test_unit_registry.py
tests/test_unit_reports.py
tests/test_unit_retrieval_event.py
tests/test_unit_role_resolution.py
tests/test_unit_run_config.py
tests/test_unit_runtime.py
tests/test_unit_scaffold_templates.py
tests/test_unit_security_hardening.py
tests/test_unit_sqlite_fts5.py
tests/test_unit_structured_output.py
tests/test_unit_subagent_telemetry.py
tests/test_unit_tool_scaffold.py
tests/test_unit_trace_render.py
tests/test_unit_v072_features.py
tests/test_unit_v075_features.py
tests/test_waves.py