LICENSE
NOTICE
README.md
pyproject.toml
src/fabri/__init__.py
src/fabri/admin.py
src/fabri/agency_registry.py
src/fabri/agency_scaffold.py
src/fabri/catalog.py
src/fabri/cli.py
src/fabri/company.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/agency_templates/__init__.py
src/fabri/agency_templates/blank.py
src/fabri/agency_templates/bug_crew.py
src/fabri/agency_templates/changelog.py
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/examples/__init__.py
src/fabri/examples/agencies/__init__.py
src/fabri/examples/agencies/bug-triage-crew/README.md
src/fabri/examples/agencies/bug-triage-crew/agent.openai.yaml
src/fabri/examples/agencies/bug-triage-crew/fixer.openai.yaml
src/fabri/examples/agencies/bug-triage-crew/tester.openai.yaml
src/fabri/examples/agencies/bug-triage-crew/triager.openai.yaml
src/fabri/examples/agencies/bug-triage-crew/workspace/.gitignore
src/fabri/examples/agencies/bug-triage-crew/workspace/store.py
src/fabri/examples/agencies/bug-triage-crew/workspace/test_store.py
src/fabri/examples/agencies/changelog-release-notes/README.md
src/fabri/examples/agencies/changelog-release-notes/agent.openai.yaml
src/fabri/examples/agencies/changelog-release-notes/agent.yaml
src/fabri/examples/agencies/changelog-release-notes/researcher.openai.yaml
src/fabri/examples/agencies/changelog-release-notes/researcher.yaml
src/fabri/examples/agencies/changelog-release-notes/verifier.openai.yaml
src/fabri/examples/agencies/changelog-release-notes/verifier.yaml
src/fabri/examples/agencies/changelog-release-notes/writer.openai.yaml
src/fabri/examples/agencies/changelog-release-notes/writer.yaml
src/fabri/examples/agencies/changelog-release-notes/deliverables/release_notes.md
src/fabri/examples/agencies/changelog-release-notes/prompts/researcher.md
src/fabri/examples/agencies/changelog-release-notes/prompts/verifier.md
src/fabri/examples/agencies/changelog-release-notes/prompts/writer.md
src/fabri/examples/agencies/changelog-release-notes/scripts/check_release_notes.py
src/fabri/examples/agencies/changelog-release-notes/source/release_input.json
src/fabri/examples/agencies/changelog-release-notes/tools/build_release_notes.json
src/fabri/examples/agencies/changelog-release-notes/tools/build_release_notes.py
src/fabri/examples/agencies/changelog-release-notes/tools/verify_release_notes.json
src/fabri/examples/agencies/changelog-release-notes/tools/verify_release_notes.py
src/fabri/examples/agencies/code-review-crew/README.md
src/fabri/examples/agencies/code-review-crew/agent.openai.yaml
src/fabri/examples/agencies/code-review-crew/reviewer.openai.yaml
src/fabri/examples/agencies/code-review-crew/verifier.openai.yaml
src/fabri/examples/agencies/code-review-crew/workspace/pr.diff
src/fabri/examples/agencies/personal-brand-crew/README.md
src/fabri/examples/agencies/personal-brand-crew/agent.openai.yaml
src/fabri/examples/agencies/personal-brand-crew/brand_editor.openai.yaml
src/fabri/examples/agencies/personal-brand-crew/brand_strategist.openai.yaml
src/fabri/examples/agencies/personal-brand-crew/brand_writer.openai.yaml
src/fabri/examples/agencies/personal-brand-crew/tools/fetch_url.json
src/fabri/examples/agencies/personal-brand-crew/tools/fetch_url.py
src/fabri/examples/agencies/personal-brand-crew/workspace/.gitignore
src/fabri/examples/agencies/personal-brand-crew/workspace/profile.md
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/staleness.py
src/fabri/memory/store.py
src/fabri/observability/__init__.py
src/fabri/observability/otel.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/repo/__init__.py
src/fabri/repo/base.py
src/fabri/repo/bitbucket.py
src/fabri/repo/github.py
src/fabri/repo/gitlab.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/ask_user_listener.py
src/fabri/service/auth.py
src/fabri/service/binding.py
src/fabri/service/http_server.py
src/fabri/service/launcher.py
src/fabri/service/run_store.py
src/fabri/service/service.py
src/fabri/service/slack_events.py
src/fabri/service/slack_notify.py
src/fabri/service/sync.py
src/fabri/service/tailer.py
src/fabri/service/studio_assets/__init__.py
src/fabri/service/studio_assets/index.html
src/fabri/service/studio_assets/assets/index-BGnlOGms.css
src/fabri/service/studio_assets/assets/index-D8Dn3XgJ.js
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_agency_scaffold.py
tests/test_agency_scaffold_from.py
tests/test_agent_tool.py
tests/test_ask_user.py
tests/test_auth.py
tests/test_cli_init.py
tests/test_cli_run_exit_code.py
tests/test_company_compile.py
tests/test_company_org.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_examples_bundled.py
tests/test_github_action_review.py
tests/test_ideator.py
tests/test_ingest.py
tests/test_llm_backends_thorough.py
tests/test_memory_store.py
tests/test_optional_embeddings.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_repo_github.py
tests/test_repo_providers.py
tests/test_retrieval.py
tests/test_retrieval_eval_gate.py
tests/test_run_store.py
tests/test_runner_ergonomics.py
tests/test_sandbox.py
tests/test_service.py
tests/test_service_ask_user.py
tests/test_skills.py
tests/test_slack_events.py
tests/test_slack_notify.py
tests/test_spawn_subagent.py
tests/test_staleness.py
tests/test_studio_catalog.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_otel_export.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